]> git.sur5r.net Git - i3/i3/commitdiff
Some fixes/reformatting for bapt’s patch
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 23 Jul 2009 18:36:48 +0000 (20:36 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 23 Jul 2009 18:36:48 +0000 (20:36 +0200)
src/commands.c
src/config.c
src/mainx.c

index d1b77635437fd5e41e12b86e9c1baeab96cae28a..74f8f2a683755782a19c527478057a7f0b397b04 100644 (file)
@@ -908,10 +908,10 @@ void parse_command(xcb_connection_t *conn, const char *command) {
                 exit(EXIT_SUCCESS);
         }
 
-        /* Is it <reload */
+        /* Is it a <reload>? */
         if (STARTS_WITH(command, "reload")) {
-            load_configuration(conn,NULL,true);
-            return;
+                load_configuration(conn, NULL, true);
+                return;
         }
 
         /* Is it <restart>? Then restart in place. */
index 1530622f68f3387fd1f73bf8fb3e9876df6ab5e4..ee188537845cb81054628ec8072e63210ca2c1ae 100644 (file)
@@ -57,24 +57,28 @@ static void replace_variable(char *buffer, const char *key, const char *value) {
         }
 }
 
-/* UnGrab the bound keys */
-
+/*
+ * Ungrab the bound keys
+ *
+ */
 void ungrab_all_keys(xcb_connection_t *conn) {
         Binding *bind;
         TAILQ_FOREACH(bind, &bindings, bindings) {
-                LOG("UnGrabbing %d\n", bind->keycode);
-                #define UNGRAB_KEY(modifier) xcb_ungrab_key(conn,bind->keycode,root,modifier);
-                UNGRAB_KEY(bind->keycode);
+                LOG("Ungrabbing %d\n", bind->keycode);
+                xcb_ungrab_key(conn, bind->keycode, root, bind->keycode);
         }
 }
 
-/* Grab the bound keys */
+/*
+ * Grab the bound keys (tell X to send us keypress events for those keycodes)
+ *
+ */
 void grab_all_keys(xcb_connection_t *conn) {
         Binding *bind;
         TAILQ_FOREACH(bind, &bindings, bindings) {
                 LOG("Grabbing %d\n", bind->keycode);
-                if ( bind->mods & BIND_MODE_SWITCH ) 
-                        xcb_grab_key(conn, 0, root, 0, bind->keycode, 
+                if ((bind->mods & BIND_MODE_SWITCH) != 0)
+                        xcb_grab_key(conn, 0, root, 0, bind->keycode,
                                 XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_SYNC);
                 else {
                         /* Grab the key in all combinations */
@@ -94,28 +98,29 @@ void grab_all_keys(xcb_connection_t *conn) {
  * configuration file.
  *
  */
-void load_configuration(xcb_connection_t *conn, const char *override_configpath,bool reload) {
-
-        if(reload) {
+void load_configuration(xcb_connection_t *conn, const char *override_configpath, bool reload) {
+        if (reload) {
                 /* First ungrab the keys */
                 ungrab_all_keys(conn);
-                /* clean up lists */
+
+                /* Clear the old binding and assignment lists */
                 Binding *bind;
-                TAILQ_FOREACH(bind,&bindings,bindings) {
-                       TAILQ_REMOVE(&bindings,bind,bindings); 
-                       free(bind->command);
-                       free(bind);
+                while (!TAILQ_EMPTY(&bindings)) {
+                        bind = TAILQ_FIRST(&bindings);
+                        TAILQ_REMOVE(&bindings, bind, bindings);
+                        FREE(bind->command);
+                        FREE(bind);
                 }
 
                 struct Assignment *assign;
-                TAILQ_FOREACH(assign,&assignments,assignments) {
-                        TAILQ_REMOVE(&assignments,assign,assignments);
-                                free(assign->windowclass_title);
-                                free(assign)
+                while (!TAILQ_EMPTY(&assignments)) {
+                        assign = TAILQ_FIRST(&assignments);
+                        FREE(assign->windowclass_title);
+                        TAILQ_REMOVE(&assignments, assign, assignments);
+                        FREE(assign);
                 }
         }
 
-
         SLIST_HEAD(variables_head, Variable) variables;
 
 #define OPTION_STRING(name) \
@@ -293,23 +298,22 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
                 /* assign window class[/window title] → workspace */
                 if (strcasecmp(key, "assign") == 0) {
                         LOG("assign: \"%s\"\n", value);
-                        char *class_title = sstrdup(value);
+                        char *class_title;
                         char *target;
+                        char *end;
 
                         /* If the window class/title is quoted we skip quotes */
-                        if (class_title[0] == '"') {
-                                class_title++;
-                                char *end = strchr(class_title, '"');
-                                if (end == NULL)
-                                        die("Malformed assignment, couldn't find terminating quote\n");
-                                *end = '\0';
+                        if (value[0] == '"') {
+                                class_title = sstrdup(value+1);
+                                end = strchr(class_title, '"');
                         } else {
+                                class_title = sstrdup(value);
                                 /* If it is not quoted, we terminate it at the first space */
-                                char *end = strchr(class_title, ' ');
-                                if (end == NULL)
-                                        die("Malformed assignment, couldn't find terminating space\n");
-                                *end = '\0';
+                                end = strchr(class_title, ' ');
                         }
+                        if (end == NULL)
+                                die("Malformed assignment, couldn't find terminating quote\n");
+                        *end = '\0';
 
                         /* Strip trailing whitespace */
                         while (strlen(value) > 0 && value[strlen(value)-1] == ' ')
@@ -317,7 +321,7 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
 
                         /* The target is the last argument separated by a space */
                         if ((target = strrchr(value, ' ')) == NULL)
-                                die("Malformed assignment, couldn't find target\n");
+                                die("Malformed assignment, couldn't find target (\"%s\")\n", value);
                         target++;
 
                         if (strchr(target, '~') == NULL && (atoi(target) < 1 || atoi(target) > 10))
@@ -373,14 +377,13 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
                 die("Unknown configfile option: %s\n", key);
         }
         /* now grab all keys again */
-        if(reload)
-            grab_all_keys(conn);
+        if (reload)
+                grab_all_keys(conn);
         fclose(handle);
 
         REQUIRED_OPTION(terminal);
         REQUIRED_OPTION(font);
 
-
         while (!SLIST_EMPTY(&variables)) {
                 struct Variable *v = SLIST_FIRST(&variables);
                 SLIST_REMOVE_HEAD(&variables, variables);
index 56b864e3550853e8bfc620ec1c0eedb7745f131d..06330eb0629bf7a031b7e32051dc24e2add18ce3 100644 (file)
@@ -153,7 +153,7 @@ int main(int argc, char *argv[], char *env[]) {
         if (xcb_connection_has_error(conn))
                 die("Cannot open display\n");
 
-        load_configuration(conn, override_configpath,false);
+        load_configuration(conn, override_configpath, false);
 
         /* Place requests for the atoms we need as soon as possible */
         #define REQUEST_ATOM(name) atom_cookies[name] = xcb_intern_atom(conn, 0, strlen(#name), #name);