--- a/dav/config.c Thu Aug 22 14:27:58 2013 +0200 +++ b/dav/config.c Fri Aug 23 11:04:07 2013 +0200 @@ -30,7 +30,6 @@ #include <stdlib.h> #include <string.h> #include <sys/types.h> -#include <sys/stat.h> #include <ucx/map.h> #include <errno.h> #include <libxml/tree.h> @@ -40,13 +39,19 @@ #define xstreq(a,b) xmlStrEqual(BAD_CAST a, BAD_CAST b) +#ifdef _WIN32 +#define ENV_HOME getenv("USERPROFILE") +#else +#define ENV_HOME getenv("HOME") +#endif /* _WIN32 */ + static UcxMap *repos; static UcxMap *keys; int check_config_dir() { - char *file = util_concat_path(getenv("HOME"), ".dav"); + char *file = util_concat_path(ENV_HOME, ".dav"); int ret = 0; - if(mkdir(file, S_IRWXU)) { + if(util_mkdir(file, S_IRWXU)) { if(errno != EEXIST) { ret = 1; } @@ -62,7 +67,7 @@ return; } - char *file = util_concat_path(getenv("HOME"), ".dav/config.xml"); + char *file = util_concat_path(ENV_HOME, ".dav/config.xml"); xmlDoc *doc = xmlReadFile(file, NULL, 0); if(!doc) { doc = xmlNewDoc(BAD_CAST "1.0"); @@ -200,7 +205,7 @@ if(filename[0] == '/') { file = fopen(filename, "r"); } else { - char *path = util_concat_path(getenv("HOME"), ".dav/"); + char *path = util_concat_path(ENV_HOME, ".dav/"); char *p2 = util_concat_path(path, filename); file = fopen(p2, "r"); free(path);