From 4f0bcd9b2973cda2eb0c332925321d1937ce015d Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Fri, 29 Jun 2012 20:35:47 +0000 Subject: [PATCH] efreet: parse user-dirs.dirs SVN revision: 73053 --- legacy/efreet/po/cs.po | 6 ++-- legacy/efreet/po/de.po | 6 ++-- legacy/efreet/po/efreet.pot | 4 +-- legacy/efreet/po/el.po | 6 ++-- legacy/efreet/po/es.po | 6 ++-- legacy/efreet/po/fr.po | 6 ++-- legacy/efreet/po/it.po | 6 ++-- legacy/efreet/po/ja.po | 6 ++-- legacy/efreet/po/ko.po | 6 ++-- legacy/efreet/po/nl.po | 6 ++-- legacy/efreet/po/pt.po | 6 ++-- legacy/efreet/po/ru.po | 6 ++-- legacy/efreet/po/sl.po | 6 ++-- legacy/efreet/src/lib/efreet_base.c | 61 ++++++++++++++++++++++++++++++++++++- 14 files changed, 98 insertions(+), 39 deletions(-) diff --git a/legacy/efreet/po/cs.po b/legacy/efreet/po/cs.po index f191784..9c4db3d 100644 --- a/legacy/efreet/po/cs.po +++ b/legacy/efreet/po/cs.po @@ -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 \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" diff --git a/legacy/efreet/po/de.po b/legacy/efreet/po/de.po index 3df97f5..0a7f791 100644 --- a/legacy/efreet/po/de.po +++ b/legacy/efreet/po/de.po @@ -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 \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" diff --git a/legacy/efreet/po/efreet.pot b/legacy/efreet/po/efreet.pot index 093ea02..c333d88 100644 --- a/legacy/efreet/po/efreet.pot +++ b/legacy/efreet/po/efreet.pot @@ -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 \n" "Language-Team: LANGUAGE \n" diff --git a/legacy/efreet/po/el.po b/legacy/efreet/po/el.po index 585321c..054378c 100644 --- a/legacy/efreet/po/el.po +++ b/legacy/efreet/po/el.po @@ -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 \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 "Επιφάνεια εργασίας" diff --git a/legacy/efreet/po/es.po b/legacy/efreet/po/es.po index 85ccdc7..459c7d9 100644 --- a/legacy/efreet/po/es.po +++ b/legacy/efreet/po/es.po @@ -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 \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" diff --git a/legacy/efreet/po/fr.po b/legacy/efreet/po/fr.po index 203b1e4..3f94bda 100644 --- a/legacy/efreet/po/fr.po +++ b/legacy/efreet/po/fr.po @@ -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 \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" diff --git a/legacy/efreet/po/it.po b/legacy/efreet/po/it.po index 7f36e1e..002a221 100644 --- a/legacy/efreet/po/it.po +++ b/legacy/efreet/po/it.po @@ -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 \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" diff --git a/legacy/efreet/po/ja.po b/legacy/efreet/po/ja.po index 2ac4cf2..96fc3ef 100644 --- a/legacy/efreet/po/ja.po +++ b/legacy/efreet/po/ja.po @@ -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 \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 "デスクトップ" diff --git a/legacy/efreet/po/ko.po b/legacy/efreet/po/ko.po index 077bca7..d8d55c6 100644 --- a/legacy/efreet/po/ko.po +++ b/legacy/efreet/po/ko.po @@ -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 \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 "바탕화면" diff --git a/legacy/efreet/po/nl.po b/legacy/efreet/po/nl.po index 17961b3..ff8f275 100644 --- a/legacy/efreet/po/nl.po +++ b/legacy/efreet/po/nl.po @@ -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 \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" diff --git a/legacy/efreet/po/pt.po b/legacy/efreet/po/pt.po index c1f6899..8f90ddf 100644 --- a/legacy/efreet/po/pt.po +++ b/legacy/efreet/po/pt.po @@ -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 \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" diff --git a/legacy/efreet/po/ru.po b/legacy/efreet/po/ru.po index 1c0742e..81551e7 100644 --- a/legacy/efreet/po/ru.po +++ b/legacy/efreet/po/ru.po @@ -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 \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 "Рабочий стол" diff --git a/legacy/efreet/po/sl.po b/legacy/efreet/po/sl.po index 6571dab..92eaebb 100644 --- a/legacy/efreet/po/sl.po +++ b/legacy/efreet/po/sl.po @@ -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 \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" diff --git a/legacy/efreet/src/lib/efreet_base.c b/legacy/efreet/src/lib/efreet_base.c index 5fbc916..4cea7f3 100644 --- a/legacy/efreet/src/lib/efreet_base.c +++ b/legacy/efreet/src/lib/efreet_base.c @@ -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); +} -- 2.7.4