From b44a3edfe9363163ab129594cba51a989c042644 Mon Sep 17 00:00:00 2001 From: Johan Althoff Date: Sun, 18 Nov 2007 22:06:41 +0000 Subject: fixed so it compiles under windows. --- src/engine/engine.c | 2 +- src/engine/system.c | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src/engine') diff --git a/src/engine/engine.c b/src/engine/engine.c index f3bee450..4ec67da1 100644 --- a/src/engine/engine.c +++ b/src/engine/engine.c @@ -9,7 +9,7 @@ static char application_save_path[512] = {0}; const char *engine_savepath(const char *filename, char *buffer, int max) { - snprintf(buffer, max, "%s/%s", application_save_path, filename); + sprintf(buffer, "%s/%s", application_save_path, filename); return buffer; } diff --git a/src/engine/system.c b/src/engine/system.c index e0fcc0b5..4a7670eb 100644 --- a/src/engine/system.c +++ b/src/engine/system.c @@ -31,7 +31,10 @@ #include #include #include + #include // for SHGetFolderPathAndSubDir #include + #include + #include #define EWOULDBLOCK WSAEWOULDBLOCK #else @@ -650,13 +653,19 @@ int fs_listdir(const char *dir, fs_listdir_callback cb, void *user) int fs_storage_path(const char *appname, char *path, int max) { #if defined(CONF_FAMILY_WINDOWS) - #error not implement + HRESULT r; + char home[MAX_PATH]; + r = SHGetFolderPath (NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, home); + if(r != 0) + return 1; + _snprintf(path, max, "%s/%s", home, appname); + return 0; #else char *home = getenv("HOME"); int i; if(!home) return 0; - + snprintf(path, max, "%s/.%s", home, appname); for(i = strlen(home)+2; path[i]; i++) path[i] = tolower(path[i]); @@ -668,7 +677,11 @@ int fs_storage_path(const char *appname, char *path, int max) int fs_makedir(const char *path) { #if defined(CONF_FAMILY_WINDOWS) - #error not implement + if(_mkdir(path) == 0) + return 0; + if(errno == EEXIST) + return 0; + return 1; #else if(mkdir(path, 0755) == 0) return 0; -- cgit 1.4.1