From 0182d2820871e70232e4819ec97ce38eac0f411b Mon Sep 17 00:00:00 2001 From: englebass Date: Thu, 22 Nov 2012 20:54:51 +0000 Subject: [PATCH] efreet: backport patch for user dirs git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/branches/efreet-1.7@79549 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/efreet_base.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib/efreet_base.c b/src/lib/efreet_base.c index afb5920..6ee0119 100644 --- a/src/lib/efreet_base.c +++ b/src/lib/efreet_base.c @@ -21,6 +21,7 @@ void *alloca (size_t); #endif #include +#include #ifdef _WIN32 # include @@ -356,6 +357,7 @@ efreet_user_dir_get(const char *key, const char *fallback) EINA_ITERATOR_FOREACH(it, line) { const char *eq, *end; + Eina_Bool quote = EINA_FALSE; if (line->length < 3) continue; if (line->start[0] == '#') continue; @@ -364,9 +366,18 @@ efreet_user_dir_get(const char *key, const char *fallback) if (!eq) continue; if (strncmp(key, line->start, eq - line->start)) continue; if (++eq >= line->end) continue; - if (*eq != '"') continue; - if (++eq >= line->end) continue; - end = memchr(eq, '"', line->end - eq); + if (*eq == '"') + { + quote = EINA_TRUE; + if (++eq >= line->end) continue; + } + if (quote) + end = memchr(eq, '"', line->end - eq); + else + { + end = line->end; + while (isspace(*end)) end--; + } if (!end) continue; ret = alloca(end - eq + 1); memcpy(ret, eq, end - eq); -- 2.7.4