From: Yann Collet Date: Thu, 17 Oct 2019 23:39:47 +0000 (-0700) Subject: removed regular file test on Windows X-Git-Tag: v1.4.4~1^2~23^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a24d4ef1847cb2665507c26ec072c4dc9064969;p=thirdparty%2Fzstd.git removed regular file test on Windows since it does not work well on this platform (tested with MinGW). Note : could be an issue within UTIL_isRegularFile() --- diff --git a/programs/fileio.c b/programs/fileio.c index 9efb4aaed..85c04d48f 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -538,6 +538,8 @@ static FILE* FIO_openSrcFile(const char* srcFileName) * @result : FILE* to `dstFileName`, or NULL if it fails */ static FILE* FIO_openDstFile(FIO_prefs_t* const prefs, const char* srcFileName, const char* dstFileName) { + if (prefs->testMode) return NULL; /* do not open file in test mode */ + assert(dstFileName != NULL); if (!strcmp (dstFileName, stdoutmark)) { DISPLAYLEVEL(4,"Using stdout for output \n"); @@ -562,10 +564,14 @@ static FILE* FIO_openDstFile(FIO_prefs_t* const prefs, const char* srcFileName, if (UTIL_isRegularFile(dstFileName)) { /* Check if destination file already exists */ FILE* const fCheck = fopen( dstFileName, "rb" ); +#if !defined(_WIN32) + /* this test does not work on Windows : + * `NUL` and `nul` are detected as regular files */ if (!strcmp(dstFileName, nulmark)) { EXM_THROW(40, "%s is unexpectedly categorized as a regular file", dstFileName); } +#endif if (fCheck != NULL) { /* dst file exists, authorization prompt */ fclose(fCheck); if (!prefs->overwrite) { diff --git a/programs/fileio.h b/programs/fileio.h index cb3d64c56..4b0143beb 100644 --- a/programs/fileio.h +++ b/programs/fileio.h @@ -26,7 +26,7 @@ extern "C" { #define stdinmark "/*stdin*\\" #define stdoutmark "/*stdout*\\" #ifdef _WIN32 -# define nulmark "nul" +# define nulmark "NUL" #else # define nulmark "/dev/null" #endif