diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/lock.c | 16 | ||||
-rw-r--r-- | src/common/mapindex.c | 2 |
2 files changed, 4 insertions, 14 deletions
diff --git a/src/common/lock.c b/src/common/lock.c index e4ec36302..5cb4c3a67 100644 --- a/src/common/lock.c +++ b/src/common/lock.c @@ -11,21 +11,12 @@ #ifndef WIN32 #include <unistd.h> #else -#include <windows.h> +#include <io.h> #define F_OK 0x0 #define R_OK 0x4 #endif -#ifndef WIN32 - #define exists(filename) (!access(filename, F_OK)) -#else -// could be speed up maybe? -int exists(char *file) { - FILE *fp; - if ((fp = fopen(file,"r")) && fclose(fp) == 0) return 1; - return 0; -} -#endif +#define exists(filename) (!access(filename, F_OK)) // 書き込みファイルの保護処理 // (書き込みが終わるまで、旧ファイルを保管しておく) @@ -33,13 +24,12 @@ int exists(char *file) { // 新しいファイルの書き込み開始 FILE* lock_fopen (const char* filename, int *info) { char newfile[512]; - FILE *fp; int no = 0; // 安全なファイル名を得る(手抜き) do { sprintf(newfile, "%s_%04d.tmp", filename, ++no); - } while((fp = fopen(newfile,"r")) && (fclose(fp), no < 9999)); + } while(exists(newfile) && no < 9999); *info = no; return fopen(newfile,"w"); } diff --git a/src/common/mapindex.c b/src/common/mapindex.c index ca2ff4751..a1c86af97 100644 --- a/src/common/mapindex.c +++ b/src/common/mapindex.c @@ -47,7 +47,7 @@ const char* mapindex_getmapname(const char* string, char* output) /// Result gets placed either into 'buf' or in a static local buffer. const char* mapindex_getmapname_ext(const char* string, char* output) { - char buf[MAP_NAME_LENGTH_EXT]; + static char buf[MAP_NAME_LENGTH_EXT]; char* dest = (output != NULL) ? output : buf; size_t len; |