]> git.sur5r.net Git - i3/i3/blobdiff - src/commands.c
load_configuration: Remove conn argument
[i3/i3] / src / commands.c
index ed5e482dd7b7420704ea5cf9f2de4ea965a8c367..69015d92ee43a14c96482a97786c2b5fb1bc1931 100644 (file)
 #include <float.h>
 #include <stdarg.h>
 
-#ifdef I3_ASAN_ENABLED
-#include <sanitizer/lsan_interface.h>
-#endif
-
 #include "shmlog.h"
 
 // Macros to make the YAJL API a bit easier to use.
@@ -605,13 +601,17 @@ void cmd_resize(I3_CMD, const char *way, const char *direction, long resize_px,
                 const double ppt = (double)resize_ppt / 100.0;
                 if (!cmd_resize_tiling_width_height(current_match, cmd_output,
                                                     current->con, direction,
-                                                    resize_px, ppt))
+                                                    resize_px, ppt)) {
+                    yerror("Cannot resize.");
                     return;
+                }
             } else {
                 if (!cmd_resize_tiling_direction(current_match, cmd_output,
                                                  current->con, direction,
-                                                 resize_px, resize_ppt))
+                                                 resize_px, resize_ppt)) {
+                    yerror("Cannot resize.");
                     return;
+                }
             }
         }
     }
@@ -657,7 +657,7 @@ static bool resize_set_tiling(I3_CMD, Con *target, orientation_t resize_orientat
 void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, const char *mode_height) {
     DLOG("resizing to %ld %s x %ld %s\n", cwidth, mode_width, cheight, mode_height);
     if (cwidth < 0 || cheight < 0) {
-        ELOG("Resize failed: dimensions cannot be negative (was %ld %s x %ld %s)\n", cwidth, mode_width, cheight, mode_height);
+        yerror("Dimensions cannot be negative.");
         return;
     }
 
@@ -782,6 +782,7 @@ void cmd_append_layout(I3_CMD, const char *cpath) {
     char *buf = NULL;
     ssize_t len;
     if ((len = slurp(path, &buf)) < 0) {
+        yerror("Could not slurp \"%s\".", path);
         /* slurp already logged an error. */
         goto out;
     }
@@ -1113,22 +1114,13 @@ void cmd_move_workspace_to_output(I3_CMD, const char *name) {
         }
 
         Output *current_output = get_output_for_con(ws);
-        if (current_output == NULL) {
-            yerror("Cannot get current output. This is a bug in i3.");
-            return;
-        }
-
         Output *target_output = get_output_from_string(current_output, name);
         if (!target_output) {
             yerror("Could not get output from string \"%s\"", name);
             return;
         }
 
-        bool success = workspace_move_to_output(ws, target_output);
-        if (!success) {
-            yerror("Failed to move workspace to output.");
-            return;
-        }
+        workspace_move_to_output(ws, target_output);
     }
 
     cmd_output->needs_tree_render = true;
@@ -1513,7 +1505,7 @@ void cmd_layout(I3_CMD, const char *layout_str) {
 
     layout_t layout;
     if (!layout_from_name(layout_str, &layout)) {
-        ELOG("Unknown layout \"%s\", this is a mismatch between code and parser spec.\n", layout_str);
+        yerror("Unknown layout \"%s\", this is a mismatch between code and parser spec.", layout_str);
         return;
     }
 
@@ -1568,12 +1560,6 @@ void cmd_layout_toggle(I3_CMD, const char *toggle_mode) {
  */
 void cmd_exit(I3_CMD) {
     LOG("Exiting due to user command.\n");
-#ifdef I3_ASAN_ENABLED
-    __lsan_do_leak_check();
-#endif
-    ipc_shutdown(SHUTDOWN_REASON_EXIT);
-    unlink(config.ipc_socket_path);
-    xcb_disconnect(conn);
     exit(0);
 
     /* unreached */
@@ -1587,7 +1573,7 @@ void cmd_reload(I3_CMD) {
     LOG("reloading\n");
     kill_nagbar(&config_error_nagbar_pid, false);
     kill_nagbar(&command_error_nagbar_pid, false);
-    load_configuration(conn, NULL, true);
+    load_configuration(NULL, true);
     x_set_i3_atoms();
     /* Send an IPC event just in case the ws names have changed */
     ipc_send_workspace_event("reload", NULL, NULL);
@@ -1640,24 +1626,18 @@ void cmd_open(I3_CMD) {
  *
  */
 void cmd_focus_output(I3_CMD, const char *name) {
-    owindow *current;
-
-    DLOG("name = %s\n", name);
-
     HANDLE_EMPTY_MATCH;
 
-    /* get the output */
-    Output *current_output = NULL;
-    Output *output;
-
-    TAILQ_FOREACH(current, &owindows, owindows)
-    current_output = get_output_for_con(current->con);
-    assert(current_output != NULL);
+    if (TAILQ_EMPTY(&owindows)) {
+        ysuccess(true);
+        return;
+    }
 
-    output = get_output_from_string(current_output, name);
+    Output *current_output = get_output_for_con(TAILQ_FIRST(&owindows)->con);
+    Output *output = get_output_from_string(current_output, name);
 
     if (!output) {
-        yerror("No such output found.");
+        yerror("Output %s not found.", name);
         return;
     }
 
@@ -1672,7 +1652,6 @@ void cmd_focus_output(I3_CMD, const char *name) {
     workspace_show(ws);
 
     cmd_output->needs_tree_render = true;
-    // XXX: default reply for now, make this a better reply
     ysuccess(true);
 }