efreet: parse user-dirs.dirs
authorSebastian Dransfeld <sd@tango.flipp.net>
Fri, 29 Jun 2012 20:35:47 +0000 (20:35 +0000)
committerSebastian Dransfeld <sd@tango.flipp.net>
Fri, 29 Jun 2012 20:35:47 +0000 (20:35 +0000)
SVN revision: 73053

14 files changed:
legacy/efreet/po/cs.po
legacy/efreet/po/de.po
legacy/efreet/po/efreet.pot
legacy/efreet/po/el.po
legacy/efreet/po/es.po
legacy/efreet/po/fr.po
legacy/efreet/po/it.po
legacy/efreet/po/ja.po
legacy/efreet/po/ko.po
legacy/efreet/po/nl.po
legacy/efreet/po/pt.po
legacy/efreet/po/ru.po
legacy/efreet/po/sl.po
legacy/efreet/src/lib/efreet_base.c

index f191784..9c4db3d 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Plocha"
+msgid "Desktop"
+msgstr "Plocha"
index 3df97f5..0a7f791 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Arbeitsfläche"
+msgid "Desktop"
+msgstr "Arbeitsfläche"
index 093ea02..c333d88 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: efreet 1.2.99.72784\n"
+"Project-Id-Version: efreet 1.2.99.72956\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 585321c..054378c 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Επιφάνεια εργασίας"
+msgid "Desktop"
+msgstr "Επιφάνεια εργασίας"
index 85ccdc7..459c7d9 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Escritorio"
+msgid "Desktop"
+msgstr "Escritorio"
index 203b1e4..3f94bda 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Bureau"
+msgid "Desktop"
+msgstr "Bureau"
index 7f36e1e..002a221 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Scrivania"
+msgid "Desktop"
+msgstr "Scrivania"
index 2ac4cf2..96fc3ef 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/デスクトップ"
+msgid "Desktop"
+msgstr "デスクトップ"
index 077bca7..d8d55c6 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/바탕화면"
+msgid "Desktop"
+msgstr "바탕화면"
index 17961b3..ff8f275 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Bureaublad"
+msgid "Desktop"
+msgstr "Bureaublad"
index c1f6899..8f90ddf 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Área de Trabalho"
+msgid "Desktop"
+msgstr "Área de Trabalho"
index 1c0742e..81551e7 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Рабочий стол"
+msgid "Desktop"
+msgstr "Рабочий стол"
index 6571dab..92eaebb 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efreet\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-06-25 17:14+0900\n"
+"POT-Creation-Date: 2012-06-29 21:41+0200\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Jerome Pinot <ngc891@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -16,5 +16,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: src/lib/efreet_base.c:122
-msgid "/Desktop"
-msgstr "/Namizje"
+msgid "Desktop"
+msgstr "Namizje"
index 5fbc916..4cea7f3 100644 (file)
@@ -50,6 +50,7 @@ static const char *hostname = NULL;
 static const char *efreet_dir_get(const char *key, const char *fallback);
 static Eina_List  *efreet_dirs_get(const char *key,
                                         const char *fallback);
+static const char *efreet_user_dir_get(const char *key, const char *fallback);
 
 /**
  * @internal
@@ -119,7 +120,7 @@ EAPI const char *
 efreet_desktop_dir_get(void)
 {
     if (xdg_desktop_dir) return xdg_desktop_dir;
-    xdg_desktop_dir = efreet_dir_get("XDG_DESKTOP_DIR", _("/Desktop"));
+    xdg_desktop_dir = efreet_user_dir_get("XDG_DESKTOP_DIR", _("Desktop"));
     return xdg_desktop_dir;
 }
 
@@ -277,3 +278,61 @@ efreet_dirs_get(const char *key, const char *fallback)
 
     return dirs;
 }
+
+/**
+ * @internal
+ * @param key The user-dirs key to lookup
+ * @param fallback The fallback value to use
+ * @return Returns the directory related to the given key or the fallback
+ * @brief This tries to determine the correct directory name given the
+ * user-dirs key @a key and fallbacks @a fallback.
+ */
+static const char *
+efreet_user_dir_get(const char *key, const char *fallback)
+{
+   Eina_File *file = NULL;
+   Eina_File_Lines *line;
+   Eina_Iterator *it = NULL;
+   const char *config_home;
+   char path[PATH_MAX];
+   char *ret = NULL;
+
+   config_home = efreet_config_home_get();
+   snprintf(path, sizeof(path), "%s/user-dirs.dirs", config_home);
+
+   file = eina_file_open(path, EINA_FALSE);
+   if (!file) goto fallback;
+   it = eina_file_map_lines(file);
+   if (!it) goto fallback;
+   EINA_ITERATOR_FOREACH(it, line)
+     {
+        const char *eq, *end;
+
+        if (line->length < 3) continue;
+        if (line->line.start[0] == '#') continue;
+        if (strncmp(line->line.start, "XDG", 3)) continue;
+        eq = memchr(line->line.start, '=', line->length);
+        if (!eq) continue;
+        if (strncmp(key, line->line.start, eq - line->line.start)) continue;
+        if (++eq >= line->line.end) continue;
+        if (*eq != '"') continue;
+        if (++eq >= line->line.end) continue;
+        end = memchr(eq, '"', line->line.end - eq);
+        if (!end) continue;
+        ret = alloca(end - eq + 1);
+        memcpy(ret, eq, end - eq);
+        ret[end - eq] = '\0';
+        break;
+     }
+fallback:
+   if (it) eina_iterator_free(it);
+   if (file) eina_file_close(file);
+   if (!ret)
+     {
+        const char *home;
+        home = efreet_home_dir_get();
+        ret = alloca(strlen(home) + strlen(fallback) + 2);
+        sprintf(ret, "%s/%s", home, fallback);
+     }
+   return eina_stringshare_add(ret);
+}