This patch allow the list of profiles from
/usr/share/enlightenment/data/config/ too, not only homedir, also includes a
check for don't add in the list duplicated entry's


Thanatermesis
diff -Naur e/src/bin/e_config.c e.patch/src/bin/e_config.c
--- e/src/bin/e_config.c	2008-09-25 23:02:51.237697047 +0000
+++ e.patch/src/bin/e_config.c	2008-09-30 01:16:46.143863597 +0000
@@ -1797,28 +1797,56 @@
 EAPI Evas_List *
 e_config_profile_list(void)
 {
-   Ecore_List *files;
+   char *file;
    char buf[4096];
-   const char *homedir;
+   const char *dir;
+   Ecore_List *names;
+   Ecore_List *files;
    Evas_List *flist = NULL;
+
+   names = ecore_list_new();
+
+   dir = e_user_homedir_get();
+   snprintf(buf, sizeof(buf), "%s/.e/e/config/", dir);
    
-   homedir = e_user_homedir_get();
-   snprintf(buf, sizeof(buf), "%s/.e/e/config/", homedir);
    files = ecore_file_ls(buf);
    if (files)
      {
-	char *file;
-	
-	ecore_list_first_goto(files);
-	while ((file = ecore_list_current(files)))
-	  {
-	     snprintf(buf, sizeof(buf), "%s/.e/e/config/%s", homedir, file);
-	     if (ecore_file_is_dir(buf))
-	       flist = evas_list_append(flist, strdup(file));
-	     ecore_list_next(files);
-	  }
+   ecore_list_first_goto(files);
+   while ((file = ecore_list_next(files)))
+     {
+        snprintf(buf, sizeof(buf), "%s/.e/e/config/%s", dir, file);
+        if (ecore_file_is_dir(buf))
+          ecore_list_append(names, strdup(file));
+     }
         ecore_list_destroy(files);
      }
+   	
+   dir = e_prefix_data_get();
+   snprintf(buf, sizeof(buf), "%s/data/config", dir);
+   
+   files = ecore_file_ls(buf);
+   if (files)
+      {
+   ecore_list_first_goto(files);
+   while ((file = ecore_list_next(files)))
+      {
+         snprintf(buf, sizeof(buf), "%s/data/config/%s", dir, file);
+         if (ecore_file_is_dir(buf))
+         {
+            if (!ecore_list_find(names, ecore_str_compare, file))
+               ecore_list_append(names, strdup(file));
+	 }
+      }
+         ecore_list_destroy(files);
+      }
+
+   ecore_list_first_goto(names);
+   while ((files = ecore_list_next(names)))
+      flist = evas_list_append(flist, files);
+      
+   ecore_list_destroy(names);
+
    return flist;
 }
 
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to