X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=file.c;h=3a02b81f38fbd0c958416ece2d7a0ba09a3a5d92;hp=4b7872a4050d8f38f51e6b83345ac70791358333;hb=1d9107a3d43b3f57087edee14f1eaf7c1f3db54e;hpb=0bbc23a37289ca20b8681229ccf74edfb6261d4e diff --git a/file.c b/file.c index 4b7872a..3a02b81 100644 --- a/file.c +++ b/file.c @@ -29,11 +29,42 @@ #include "config.h" #include "file.h" +#ifdef WIN32 + +#define DATA_DIR "data\\" + +char * +add_data_path(char *filename) +{ + char *s; + if(!filename) return filename; + s = malloc(sizeof(DATA_DIR)+strlen(filename)); + if(s) { + strcpy(s, DATA_DIR); + strcpy(s+sizeof(DATA_DIR)-1, filename); + } + return s; +} + +bool +find_files(void) +{ + return true; +} + +FILE *open_score_file(char *mode) +{ + return fopen("scores", mode); +} + + +#else /* !WIN32 */ + + char *g_data_dir; char *g_score_file; -mode_t g_score_mask; -char * +static char * add_path(char *path, char *file) { char *s; @@ -45,7 +76,7 @@ add_path(char *path, char *file) s = malloc(2+plen+flen); if(!s) return NULL; memcpy(s, path, plen); - s[plen] = PATH_SEPARATOR; + s[plen] = '/'; memcpy(s+plen+1, file, flen+1); return s; } @@ -56,29 +87,7 @@ add_data_path(char *filename) return add_path(g_data_dir, filename); } -#ifdef WIN32 - -bool -is_dir(char *dirname) -{ - WIN32_FILE_ATTRIBUTE_DATA buf; - if(!GetFileAttributesEx(dirname, GetFileExInfoStandard, &buf)) - return false; - return buf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY; -} - -bool -is_file(char *filename) -{ - WIN32_FILE_ATTRIBUTE_DATA buf; - if(!GetFileAttributesEx(filename, GetFileExInfoStandard, &buf)) - return false; - return buf.dwFileAttributes & FILE_ATTRIBUTE_NORMAL; -} - -#else /* !WIN32 */ - -bool +static bool is_dir(char *dirname) { struct stat buf; @@ -86,17 +95,7 @@ is_dir(char *dirname) return S_ISDIR(buf.st_mode); } -bool -is_file(char *filename) -{ - struct stat buf; - stat(filename, &buf); - return S_ISREG(buf.st_mode); -} - -#endif /* !WIN32 */ - -bool +static bool find_data_dir(void) { int i; @@ -119,7 +118,7 @@ find_data_dir(void) return false; } -bool +static bool find_score_file(void) { char *dir, *s; @@ -131,8 +130,7 @@ find_score_file(void) s = add_path(dir, ".vor-scores"); if(s) { g_score_file = s; - g_score_mask = 0177; - return is_file(s); + return true; } else return false; } @@ -145,13 +143,8 @@ find_files(void) FILE * open_score_file(char *mode) { - mode_t old_mask; - FILE *f; - if(!g_score_file) return NULL; - - old_mask = umask(g_score_mask); - f = fopen(g_score_file, mode); - umask(old_mask); - return f; + return fopen(g_score_file, mode); } + +#endif /* !WIN32 */