Pārlūkot izejas kodu

KWSys SystemTools: Teach Touch with !create to succeed on missing file

Brad King 10 gadi atpakaļ
vecāks
revīzija
5c08e2559c
1 mainītis faili ar 12 papildinājumiem un 5 dzēšanām
  1. 12 5
      Source/kwsys/SystemTools.cxx

+ 12 - 5
Source/kwsys/SystemTools.cxx

@@ -1215,15 +1215,22 @@ bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path)
 
 bool SystemTools::Touch(const kwsys_stl::string& filename, bool create)
 {
-  if(create && !SystemTools::FileExists(filename))
+  if (!SystemTools::FileExists(filename))
     {
-    FILE* file = Fopen(filename, "a+b");
-    if(file)
+    if(create)
+      {
+      FILE* file = Fopen(filename, "a+b");
+      if(file)
+        {
+        fclose(file);
+        return true;
+        }
+      return false;
+      }
+    else
       {
-      fclose(file);
       return true;
       }
-    return false;
     }
 #if defined(_WIN32) && !defined(__CYGWIN__)
   HANDLE h = CreateFileW(