efreet_shutdown();
unsetenv("XDG_DATA_HOME");
unsetenv("HOME");
+#ifdef _WIN32
+ unsetenv("USERPROFILE");
+#endif
efreet_init();
tmp = efreet_data_home_get();
efreet_shutdown();
unsetenv("XDG_CONFIG_HOME");
unsetenv("HOME");
+#ifdef _WIN32
+ unsetenv("USERPROFILE");
+#endif
efreet_init();
tmp = efreet_config_home_get();
efreet_shutdown();
unsetenv("XDG_CACHE_HOME");
unsetenv("HOME");
+#ifdef _WIN32
+ unsetenv("USERPROFILE");
+#endif
efreet_init();
tmp = efreet_cache_home_get();
#include "Efreet.h"
#include "efreet_private.h"
+#ifdef _WIN32
+# define EFREET_PATH_SEP ';'
+#else
+# define EFREET_PATH_SEP ':'
+#endif
+
static const char *efreet_home_dir = NULL;
static const char *xdg_data_home = NULL;
static const char *xdg_config_home = NULL;
if (efreet_home_dir) return efreet_home_dir;
efreet_home_dir = getenv("HOME");
+#ifdef _WIN32
+ if (!efreet_home_dir || efreet_home_dir[0] == '\0')
+ efreet_home_dir = getenv("USERPROFILE");
+#endif
if (!efreet_home_dir || efreet_home_dir[0] == '\0')
efreet_home_dir = "/tmp";
EAPI Eina_List *
efreet_data_dirs_get(void)
{
+#ifdef _WIN32
+ char buf[4096];
+#endif
+
if (xdg_data_dirs) return xdg_data_dirs;
+
+#ifdef _WIN32
+ snprintf(buf, 4096, "%s\\Efl;" PACKAGE_DATA_DIR ";/usr/share", getenv("APPDATA"));
+ xdg_data_dirs = efreet_dirs_get("XDG_DATA_DIRS", buf);
+#else
xdg_data_dirs = efreet_dirs_get("XDG_DATA_DIRS",
PACKAGE_DATA_DIR ":/usr/share");
+#endif
return xdg_data_dirs;
}
tmp = strdup(path);
s = tmp;
- p = strchr(s, ':');
+ p = strchr(s, EFREET_PATH_SEP);
while (p)
{
*p = '\0';
dirs = eina_list_append(dirs, (void *)eina_stringshare_add(s));
s = ++p;
- p = strchr(s, ':');
+ p = strchr(s, EFREET_PATH_SEP);
}
if (!eina_list_search_unsorted(dirs, EINA_COMPARE_CB(strcmp), s))
dirs = eina_list_append(dirs, (void *)eina_stringshare_add(s));