aboutsummaryrefslogtreecommitdiff
path: root/CPP/Windows/FileDir.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CPP/Windows/FileDir.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/CPP/Windows/FileDir.cpp b/CPP/Windows/FileDir.cpp
index 5b1f340..dfeed82 100644
--- a/CPP/Windows/FileDir.cpp
+++ b/CPP/Windows/FileDir.cpp
@@ -37,7 +37,12 @@ static bool FiTime_To_timespec(const CFiTime *ft, timespec &ts)
37{ 37{
38 if (ft) 38 if (ft)
39 { 39 {
40#if defined(_AIX)
41 ts.tv_sec = ft->tv_sec;
42 ts.tv_nsec = ft->tv_nsec;
43#else
40 ts = *ft; 44 ts = *ft;
45#endif
41 return true; 46 return true;
42 } 47 }
43 // else 48 // else
@@ -246,6 +251,11 @@ bool MyMoveFile(CFSTR oldFile, CFSTR newFile)
246} 251}
247 252
248#ifndef UNDER_CE 253#ifndef UNDER_CE
254#if !defined(Z7_WIN32_WINNT_MIN) || Z7_WIN32_WINNT_MIN < 0x0500 // Win2000
255#define Z7_USE_DYN_CreateHardLink
256#endif
257
258#ifdef Z7_USE_DYN_CreateHardLink
249EXTERN_C_BEGIN 259EXTERN_C_BEGIN
250typedef BOOL (WINAPI *Func_CreateHardLinkW)( 260typedef BOOL (WINAPI *Func_CreateHardLinkW)(
251 LPCWSTR lpFileName, 261 LPCWSTR lpFileName,
@@ -253,6 +263,7 @@ typedef BOOL (WINAPI *Func_CreateHardLinkW)(
253 LPSECURITY_ATTRIBUTES lpSecurityAttributes 263 LPSECURITY_ATTRIBUTES lpSecurityAttributes
254 ); 264 );
255EXTERN_C_END 265EXTERN_C_END
266#endif
256#endif // UNDER_CE 267#endif // UNDER_CE
257 268
258bool MyCreateHardLink(CFSTR newFileName, CFSTR existFileName) 269bool MyCreateHardLink(CFSTR newFileName, CFSTR existFileName)
@@ -270,6 +281,7 @@ bool MyCreateHardLink(CFSTR newFileName, CFSTR existFileName)
270 else 281 else
271 #endif 282 #endif
272 { 283 {
284#ifdef Z7_USE_DYN_CreateHardLink
273 const 285 const
274 Func_CreateHardLinkW 286 Func_CreateHardLinkW
275 my_CreateHardLinkW = Z7_GET_PROC_ADDRESS( 287 my_CreateHardLinkW = Z7_GET_PROC_ADDRESS(
@@ -277,9 +289,13 @@ bool MyCreateHardLink(CFSTR newFileName, CFSTR existFileName)
277 "CreateHardLinkW"); 289 "CreateHardLinkW");
278 if (!my_CreateHardLinkW) 290 if (!my_CreateHardLinkW)
279 return false; 291 return false;
292 #define MY_CreateHardLinkW my_CreateHardLinkW
293#else
294 #define MY_CreateHardLinkW CreateHardLinkW
295#endif
280 IF_USE_MAIN_PATH_2(newFileName, existFileName) 296 IF_USE_MAIN_PATH_2(newFileName, existFileName)
281 { 297 {
282 if (my_CreateHardLinkW(fs2us(newFileName), fs2us(existFileName), NULL)) 298 if (MY_CreateHardLinkW(fs2us(newFileName), fs2us(existFileName), NULL))
283 return true; 299 return true;
284 } 300 }
285 #ifdef Z7_LONG_PATH 301 #ifdef Z7_LONG_PATH
@@ -287,7 +303,7 @@ bool MyCreateHardLink(CFSTR newFileName, CFSTR existFileName)
287 { 303 {
288 UString d1, d2; 304 UString d1, d2;
289 if (GetSuperPaths(newFileName, existFileName, d1, d2, USE_MAIN_PATH_2)) 305 if (GetSuperPaths(newFileName, existFileName, d1, d2, USE_MAIN_PATH_2))
290 return BOOLToBool(my_CreateHardLinkW(d1, d2, NULL)); 306 return BOOLToBool(MY_CreateHardLinkW(d1, d2, NULL));
291 } 307 }
292 #endif 308 #endif
293 } 309 }
@@ -780,7 +796,7 @@ bool CreateTempFile2(CFSTR prefix, bool addRandom, AString &postfix, NIO::COutFi
780 unsigned k; 796 unsigned k;
781 for (k = 0; k < 8; k++) 797 for (k = 0; k < 8; k++)
782 { 798 {
783 const unsigned t = val & 0xF; 799 const unsigned t = (unsigned)val & 0xF;
784 val >>= 4; 800 val >>= 4;
785 s[k] = (char)((t < 10) ? ('0' + t) : ('A' + (t - 10))); 801 s[k] = (char)((t < 10) ? ('0' + t) : ('A' + (t - 10)));
786 } 802 }
@@ -805,7 +821,7 @@ bool CreateTempFile2(CFSTR prefix, bool addRandom, AString &postfix, NIO::COutFi
805 } 821 }
806 if (outFile) 822 if (outFile)
807 { 823 {
808 if (outFile->Create(path, false)) 824 if (outFile->Create_NEW(path))
809 return true; 825 return true;
810 } 826 }
811 else 827 else
@@ -928,7 +944,7 @@ bool RemoveDir(CFSTR path)
928static BOOL My_CopyFile(CFSTR oldFile, CFSTR newFile) 944static BOOL My_CopyFile(CFSTR oldFile, CFSTR newFile)
929{ 945{
930 NWindows::NFile::NIO::COutFile outFile; 946 NWindows::NFile::NIO::COutFile outFile;
931 if (!outFile.Create(newFile, false)) 947 if (!outFile.Create_NEW(newFile))
932 return FALSE; 948 return FALSE;
933 949
934 NWindows::NFile::NIO::CInFile inFile; 950 NWindows::NFile::NIO::CInFile inFile;