efreet: parse user-dirs.dirs

SVN revision: 73053
This commit is contained in:
Sebastian Dransfeld 2012-06-29 20:35:47 +00:00
parent a6fc2bf1bb
commit 4f0bcd9b29
14 changed files with 98 additions and 39 deletions

View 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"

View 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"

View 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"

View 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 "Επιφάνεια εργασίας"

View 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"

View 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"

View 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"

View 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 "デスクトップ"

View 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 "바탕화면"

View 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"

View 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"

View 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 "Рабочий стол"

View 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"

View 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);
}