dav/config.c

changeset 32
c9d37bb97ea8
parent 21
78935b45e2ce
child 33
0bbbb0341606
--- 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);

mercurial