From e5f7fc8594b87d6b99e9a9fe98dfd5d814490bea Mon Sep 17 00:00:00 2001 From: oliverschmidt Date: Thu, 22 Nov 2007 12:03:54 +0000 Subject: [PATCH] Made cfs implementation adhere to (new) cfs interface and streamlined implementation. --- platform/win32/cfs/cfs-win32.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/platform/win32/cfs/cfs-win32.c b/platform/win32/cfs/cfs-win32.c index 1f9ff942c..f1c2070f6 100644 --- a/platform/win32/cfs/cfs-win32.c +++ b/platform/win32/cfs/cfs-win32.c @@ -30,7 +30,7 @@ * * Author: Oliver Schmidt * - * $Id: cfs-win32.c,v 1.3 2007/11/18 02:36:30 oliverschmidt Exp $ + * $Id: cfs-win32.c,v 1.4 2007/11/22 12:03:54 oliverschmidt Exp $ */ #define WIN32_LEAN_AND_MEAN @@ -63,11 +63,7 @@ struct cfs_win32_dir { int cfs_open(const char *n, int f) { - if(f == CFS_READ) { - return open(n, O_RDONLY); - } else { - return open(n, O_CREAT|O_TRUNC|O_RDWR); - } + return open(n, f == CFS_READ? O_RDONLY: O_CREAT|O_RDWR); } /*---------------------------------------------------------------------------*/ void @@ -88,7 +84,7 @@ cfs_write(int f, void *b, unsigned int l) return write(f, b, l); } /*---------------------------------------------------------------------------*/ -int +unsigned int cfs_seek(int f, unsigned int o) { return lseek(f, o, SEEK_SET); @@ -101,9 +97,6 @@ cfs_opendir(struct cfs_dir *p, const char *n) WIN32_FIND_DATA data; char dirname[MAX_PATH]; - if(n == NULL) { - n = ""; - } if(*n == '/') { GetModuleFileName(NULL, dirname, sizeof(dirname)); strcpy(strrchr(dirname, '\\'), "/*"); @@ -114,12 +107,10 @@ cfs_opendir(struct cfs_dir *p, const char *n) dir->handle = FindFirstFile(dirname, &data); if(dir->handle == INVALID_HANDLE_VALUE) { dir->name = NULL; - return 1; + return -1; } - dir->name = strdup(data.cFileName); - dir->size = ((data.nFileSizeLow + 511) / 512) % 1000; - + dir->size = ((data.nFileSizeLow + 511) / 512) % 1000; return 0; } /*---------------------------------------------------------------------------*/ @@ -130,7 +121,7 @@ cfs_readdir(struct cfs_dir *p, struct cfs_dirent *e) WIN32_FIND_DATA data; if(dir->name == NULL) { - return 1; + return -1; } strncpy(e->name, dir->name, sizeof(e->name)); @@ -141,21 +132,17 @@ cfs_readdir(struct cfs_dir *p, struct cfs_dirent *e) dir->name = NULL; return 0; } - dir->name = strdup(data.cFileName); dir->size = ((data.nFileSizeLow + 511) / 512) % 1000; - return 0; } /*---------------------------------------------------------------------------*/ -int +void cfs_closedir(struct cfs_dir *p) { struct cfs_win32_dir *dir = (struct cfs_win32_dir *)p; free(dir->name); FindClose(dir->handle); - - return 1; } /*---------------------------------------------------------------------------*/