]> git.sur5r.net Git - i3/i3/commitdiff
fix a few warnings/places where the clang static analyzer complains
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 5 Aug 2012 14:34:38 +0000 (16:34 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 5 Aug 2012 14:34:38 +0000 (16:34 +0200)
i3-input/main.c
i3-nagbar/main.c
src/commands.c
src/con.c
src/floating.c
src/ipc.c
src/key_press.c
src/load_layout.c
src/main.c

index b570952397ccfd5f1e55ef75d1eb625f3d0f89e4..7e236ca71063e43b2e687b49d28ecc3da9915c24 100644 (file)
@@ -126,16 +126,6 @@ static int handle_expose(void *data, xcb_connection_t *conn, xcb_expose_event_t
 static int handle_key_release(void *ignored, xcb_connection_t *conn, xcb_key_release_event_t *event) {
     printf("releasing %d, state raw = %d\n", event->detail, event->state);
 
-    /* See the documentation of xcb_key_symbols_get_keysym for this one.
-     * Basically: We get either col 0 or col 1, depending on whether shift is
-     * pressed. */
-    int col = (event->state & XCB_MOD_MASK_SHIFT);
-
-    /* If modeswitch is currently active, we need to look in group 2 or 3,
-     * respectively. */
-    if (modeswitch_active)
-        col += 2;
-
     xcb_keysym_t sym = xcb_key_press_lookup_keysym(symbols, event, event->state);
     if (sym == XK_Mode_switch) {
         printf("Mode switch disabled\n");
index 1dbd77369b28a184a07ccd7973f1e0443dc57e06..872144774cb178f29b98926c5f7d5381c1b9f393 100644 (file)
@@ -216,7 +216,7 @@ static int handle_expose(xcb_connection_t *conn, xcb_expose_event_t *event) {
 }
 
 int main(int argc, char *argv[]) {
-    char *pattern = strdup("-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1");
+    char *pattern = sstrdup("-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1");
     int o, option_index = 0;
     enum { TYPE_ERROR = 0, TYPE_WARNING = 1 } bar_type = TYPE_ERROR;
 
@@ -232,7 +232,7 @@ int main(int argc, char *argv[]) {
 
     char *options_string = "b:f:m:t:vh";
 
-    prompt = strdup("Please do not run this program.");
+    prompt = sstrdup("Please do not run this program.");
 
     while ((o = getopt_long(argc, argv, options_string, long_options, &option_index)) != -1) {
         switch (o) {
@@ -241,11 +241,11 @@ int main(int argc, char *argv[]) {
                 return 0;
             case 'f':
                 FREE(pattern);
-                pattern = strdup(optarg);
+                pattern = sstrdup(optarg);
                 break;
             case 'm':
                 FREE(prompt);
-                prompt = strdup(optarg);
+                prompt = sstrdup(optarg);
                 break;
             case 't':
                 bar_type = (strcasecmp(optarg, "warning") == 0 ? TYPE_WARNING : TYPE_ERROR);
@@ -432,5 +432,7 @@ int main(int argc, char *argv[]) {
         free(event);
     }
 
+    FREE(pattern);
+
     return 0;
 }
index 44e6a23d4533f275b6ddffd15c96dd905c3899ea..964dfe29cd5be6e74f2e604f541564b524d4cd3e 100644 (file)
@@ -452,7 +452,7 @@ void cmd_move_con_to_workspace_number(I3_CMD, char *which) {
         return;
     }
 
-    LOG("should move window to workspace with number %d\n", which);
+    LOG("should move window to workspace %s\n", which);
     /* get the workspace */
     Con *output, *workspace = NULL;
 
@@ -835,7 +835,7 @@ void cmd_workspace_number(I3_CMD, char *which) {
             child->num == parsed_num);
 
     if (!workspace) {
-        LOG("There is no workspace with number %d, creating a new one.\n", parsed_num);
+        LOG("There is no workspace with number %ld, creating a new one.\n", parsed_num);
         ysuccess(true);
         /* terminate the which string after the endposition of the number */
         *endptr = '\0';
@@ -1421,6 +1421,10 @@ void cmd_layout(I3_CMD, char *layout_str) {
         layout = L_SPLITV;
     else if (strcmp(layout_str, "splith") == 0)
         layout = L_SPLITH;
+    else {
+        ELOG("Unknown layout \"%s\", this is a mismatch between code and parser spec.\n", layout_str);
+        return;
+    }
 
     DLOG("changing layout to %s (%d)\n", layout_str, layout);
 
index cb4d080501607e0911249270c4fa01727c792407..01305f1a5744ed2c894b6124e1b5f993b58f1bc9 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -1260,6 +1260,9 @@ bool con_fullscreen_permits_focusing(Con *con) {
     while (fs && fs->fullscreen_mode == CF_NONE)
         fs = fs->parent;
 
+    /* fs must be non-NULL since the workspace con doesn’t have CF_NONE and
+     * there always has to be a workspace con in the hierarchy. */
+    assert(fs != NULL);
     /* The most common case is we hit the workspace level. In this
      * situation, changing focus is also harmless. */
     assert(fs->fullscreen_mode != CF_NONE);
index 0bc5f6d65aac466814b08c62350c5c4d6fe18d3b..16aab992fc9c1afb26508a71824aead58f53d92c 100644 (file)
@@ -493,7 +493,7 @@ void drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_window_t
                 confine_to, border_t border, callback_t callback, const void *extra)
 {
     uint32_t new_x, new_y;
-    Rect old_rect;
+    Rect old_rect = { 0, 0, 0, 0 };
     if (con != NULL)
         memcpy(&old_rect, &(con->rect), sizeof(Rect));
 
index 77b8dbb391101eb50c32a80e8b69d669f7aff7a7..642b6b9770cf1c79960a3c51955d0a0302de9052 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -758,7 +758,7 @@ static int add_subscription(void *extra, const unsigned char *s,
 #endif
     ipc_client *client = extra;
 
-    DLOG("should add subscription to extra %p, sub %.*s\n", client, len, s);
+    DLOG("should add subscription to extra %p, sub %.*s\n", client, (int)len, s);
     int event = client->num_events;
 
     client->num_events++;
index 9aaea8f90d6815c19248ee209851ec692218ff98..68f3865a53492a06b999de7af5843e7d43ece115 100644 (file)
@@ -291,7 +291,7 @@ void handle_key_press(xcb_key_press_event_t *event) {
     command_failed = false;
     yajl_status state = yajl_parse(handle, reply, length);
     if (state != yajl_status_ok) {
-        ELOG("Could not parse my own reply. That's weird. reply is %.*s\n", length, reply);
+        ELOG("Could not parse my own reply. That's weird. reply is %.*s\n", (int)length, reply);
     } else {
         if (command_failed)
             start_commanderror_nagbar();
index 54735d915b456acaf117744ac9e2001d15dc583f..8596dfc452d4957023159a1ac2b58749020129f1 100644 (file)
@@ -139,7 +139,7 @@ static int json_string(void *ctx, const unsigned char *val, size_t len) {
 #else
 static int json_string(void *ctx, const unsigned char *val, unsigned int len) {
 #endif
-    LOG("string: %.*s for key %s\n", len, val, last_key);
+    LOG("string: %.*s for key %s\n", (int)len, val, last_key);
     if (parsing_swallows) {
         /* TODO: the other swallowing keys */
         if (strcasecmp(last_key, "class") == 0) {
index b8e2e08c05dbac84bb0b1800f8a6b38dc9fcab9a..aaa5817157f12d8f48f24da9a752ff317ee1ea6c 100644 (file)
@@ -424,7 +424,7 @@ int main(int argc, char *argv[]) {
             }
             optind++;
         }
-        LOG("Command is: %s (%d bytes)\n", payload, strlen(payload));
+        DLOG("Command is: %s (%zd bytes)\n", payload, strlen(payload));
         char *socket_path = root_atom_contents("I3_SOCKET_PATH");
         if (!socket_path) {
             ELOG("Could not get i3 IPC socket path\n");
@@ -660,7 +660,6 @@ int main(int argc, char *argv[]) {
     Output *output = NULL;
     if (!(pointerreply = xcb_query_pointer_reply(conn, pointercookie, NULL))) {
         ELOG("Could not query pointer position, using first screen\n");
-        output = get_first_output();
     } else {
         DLOG("Pointer at %d, %d\n", pointerreply->root_x, pointerreply->root_y);
         output = get_output_containing(pointerreply->root_x, pointerreply->root_y);