Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : embrace

Dir     : misc/embrace/src


Modified Files:
        embrace.c 


Log Message:
minor config/theme loading improvments
===================================================================
RCS file: /cvsroot/enlightenment/misc/embrace/src/embrace.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- embrace.c   5 May 2004 18:33:35 -0000       1.19
+++ embrace.c   5 May 2004 18:42:50 -0000       1.20
@@ -1,5 +1,5 @@
 /*
- * $Id: embrace.c,v 1.19 2004/05/05 18:33:35 tsauerbeck Exp $
+ * $Id: embrace.c,v 1.20 2004/05/05 18:42:50 tsauerbeck Exp $
  *
  * Copyright (C) 2004 Embrace project.
  *
@@ -288,10 +288,34 @@
        return evas_list_count (e->mailboxes);
 }
 
-static bool config_load_misc (Embrace *e, E_DB_File *edb)
+/**
+ * Finds the filename for the theme @name.
+ * Looks in: ~/.e/apps/embrace/themes
+ *           DATADIR/themes
+ */
+static char *find_theme (const char *name)
 {
+       static char eet[PATH_MAX + 1];
        struct stat st;
-       char *str, eet[PATH_MAX + 1];
+
+       assert (name);
+
+       snprintf (eet, sizeof (eet),
+                        "%s/.e/apps/" PACKAGE "/themes/%s.eet",
+                        getenv ("HOME"), name);
+
+       if (!stat (eet, &st))
+               return eet;
+
+       snprintf (eet, sizeof (eet), DATA_DIR "/themes/%s.eet", name);
+
+       return stat(eet, &st) ? NULL : eet;
+}
+
+static bool config_load_misc (Embrace *e, E_DB_File *edb)
+{
+       char *str, *theme;
+       bool ret = false;
 
        assert (e);
        assert (edb);
@@ -302,30 +326,21 @@
                free (str);
        }
 
-       if (!(str = e_db_str_get (edb, "/" PACKAGE "/theme")))
+       if (!(str = e_db_str_get (edb, "/" PACKAGE "/theme"))) {
+               fprintf (stderr, "'theme' not specified, "
+                        "falling back to the default theme instead!\n");
                str = strdup ("default");
-
-       /* look for themes in various places...
-        * try ~ first */
-       snprintf (eet, sizeof (eet),
-                "%s/.e/apps/" PACKAGE "/themes/%s.eet",
-                getenv("HOME"), str);
-
-       if (!stat (eet, &st)) {
-               snprintf (e->cfg.theme, sizeof (e->cfg.theme), "%s", eet);
-               free (str);
-               return true;
        }
 
-       /* no luck. try $prefix/share next. */
-       snprintf (eet, sizeof (eet), DATA_DIR "/themes/%s.eet", str);
+       if ((theme = find_theme (str))) {
+               snprintf (e->cfg.theme, sizeof (e->cfg.theme), "%s", theme);
+               ret = true;
+       } else
+               fprintf (stderr, "Cannot find theme '%s'!\n", str);
+
        free (str);
 
-       if (!stat (eet, &st)) {
-               snprintf (e->cfg.theme, sizeof (e->cfg.theme), "%s", eet);
-               return true;
-       } else
-               return false;
+       return ret;
 }
 
 static E_DB_File *open_edb (Embrace *e)
@@ -548,7 +563,7 @@
        else
 #endif
                e->gui.ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 0, 0);
-       
+
        if (!e->gui.ee)
                return false;
 




-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to 
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to