JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
try scrotwm.conf when spectrwm.conf isn't found
authorMarco Peereboom <marco@conformal.com>
Wed, 15 Feb 2012 22:14:56 +0000 (16:14 -0600)
committerMarco Peereboom <marco@conformal.com>
Wed, 15 Feb 2012 22:14:56 +0000 (16:14 -0600)
spectrwm.c

index 2928f00..5951b9e 100644 (file)
@@ -6971,16 +6971,44 @@ main(int argc, char *argv[])
        setup_spawn();
 
        /* load config */
-       snprintf(conf, sizeof conf, "%s/.%s", pwd->pw_dir, SWM_CONF_FILE);
-       if (stat(conf, &sb) != -1) {
-               if (S_ISREG(sb.st_mode))
-                       cfile = conf;
-       } else {
-               /* try global conf file */
-               snprintf(conf, sizeof conf, "/etc/%s", SWM_CONF_FILE);
-               if (!stat(conf, &sb))
-                       if (S_ISREG(sb.st_mode))
-                               cfile = conf;
+       for (i = 0; ; i++) {
+               switch (i) {
+               case 0:
+                       /* ~ */
+                       snprintf(conf, sizeof conf, "%s/.%s",
+                           pwd->pw_dir, SWM_CONF_FILE);
+                       if (stat(conf, &sb) != -1)
+                               if (S_ISREG(sb.st_mode))
+                                       cfile = conf;
+                       break;
+               case 1:
+                       /* global */
+                       snprintf(conf, sizeof conf, "/etc/%s",
+                           SWM_CONF_FILE);
+                       if (stat(conf, &sb) != -1)
+                               if (S_ISREG(sb.st_mode))
+                                       cfile = conf;
+                       break;
+               case 2:
+                       /* ~ compat */
+                       snprintf(conf, sizeof conf, "%s/.%s",
+                           pwd->pw_dir, SWM_CONF_FILE_OLD);
+                       if (stat(conf, &sb) != -1)
+                               if (S_ISREG(sb.st_mode))
+                                       cfile = conf;
+                       break;
+               case 3:
+                       /* global compat */
+                       snprintf(conf, sizeof conf, "/etc/%s",
+                           SWM_CONF_FILE_OLD);
+                       if (stat(conf, &sb) != -1)
+                               if (S_ISREG(sb.st_mode))
+                                       cfile = conf;
+                       break;
+               default:
+                       cfile = NULL;
+                       break;
+               }
        }
 
        /* load conf (if any) and refresh font color in bar graphics contexts */