if the menu path starts with a /, then just load it, don't try the prefixes
authorDana Jansens <danakj@orodu.net>
Mon, 8 Sep 2003 08:43:49 +0000 (08:43 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 8 Sep 2003 08:43:49 +0000 (08:43 +0000)
openbox/menu.c

index 286434c..4a25938 100644 (file)
@@ -39,20 +39,27 @@ static gboolean menu_open(gchar *file, xmlDocPtr *doc, xmlNodePtr *node)
     gboolean loaded = TRUE;
     gchar *p;
 
-    p = g_build_filename(g_get_home_dir(), ".openbox", file, NULL);
-    if (!parse_load(p, "openbox_menu", doc, node)) {
-        g_free(p);
-        p = g_build_filename(RCDIR, file, NULL);
+    if (file[0] == '/') {
+        if (!parse_load(file, "openbox_menu", doc, node)) {
+            g_warning("Failed to load menu from '%s'", file);
+            loaded = FALSE;
+        }
+    } else {
+        p = g_build_filename(g_get_home_dir(), ".openbox", file, NULL);
         if (!parse_load(p, "openbox_menu", doc, node)) {
             g_free(p);
-            p = g_strdup(file);
+            p = g_build_filename(RCDIR, file, NULL);
             if (!parse_load(p, "openbox_menu", doc, node)) {
-                g_warning("Failed to load menu from '%s'", file);
-                loaded = FALSE;
+                g_free(p);
+                p = g_strdup(file);
+                if (!parse_load(p, "openbox_menu", doc, node)) {
+                    g_warning("Failed to load menu from '%s'", file);
+                    loaded = FALSE;
+                }
             }
         }
+        g_free(p);
     }
-    g_free(p);
     return loaded;
 }