Windows os uses ':' as delimiter between disk name and file path.
<disk>:/<dir>/file.ext. In this commit added parse case for <disk_name>
symbol meets before ":/".
Merged with commit:
commit
fd7ec0acfdb20888bfe8a827ef6141193380f3ff
Author: Mykyta Biliavskyi <m.biliavskyi@samsung.com>
Date: Fri Oct 21 15:46:49 2016 +0300
Elm_theme: parse theme name "<disk>:/file.ext" only on Windows.
Commit
86928a430c broke ability to use more than one theme file for
posix compatible systems. For case
ELM_THEME=/home/user/a.edj:/home/user/b.edj string was parsed
incorrectly. The result was a single string
"/home/user/a.edj:/home/user/b.edj", but expected two strings
"/home/user/a.edj" and "/home/user/b.edj"
This commit add additional check of the file paths like
<disk>:/filename.ext or <disk>:\filename.ext in Windows only.
This avoid wrong parse behaviour on Linux and macOS.
Change-Id: I40f6e79209ef4eb38a6e892447b4b7930b9ccf1a
Signed-off-by: Mykyta Biliavskyi <m.biliavskyi@samsung.com>
eina_strbuf_append_char(buf, ':');
pe += 2;
}
- else if ((pe[0] == ':') && (pe[1] == '\\'))
+#ifdef HAVE_ELEMENTARY_WIN32
+ else if (isalpha(pe[0]) && (pe[1] == ':') &&
+ ((pe[2] == '/') || (pe[2] == '\\')))
{
+ // Correct processing file path on Windows OS "<disk>:/" or "<disk>:\"
eina_strbuf_append_char(buf, *pe);
pe++;
eina_strbuf_append_char(buf, *pe);
pe++;
}
+#endif
else if ((*pe == ':') || (!*pe))
{ // p -> pe == 'name:'
if (pe > p)