1
0
Эх сурвалжийг харах

BUG: Shell escaping needs to write % as %% for VS IDE.

Brad King 18 жил өмнө
parent
commit
73197eaefa
1 өөрчлөгдсөн 23 нэмэгдсэн , 0 устгасан
  1. 23 0
      Source/kwsys/System.c

+ 23 - 0
Source/kwsys/System.c

@@ -287,6 +287,15 @@ static int kwsysSystem_Shell__GetArgumentSize(const char* in,
         ++size;
         }
       }
+    else if(*c == '%')
+      {
+      if(flags & kwsysSystem_Shell_Flag_VSIDE)
+        {
+        /* In a VS IDE a percent is written %% so we need one extra
+           characters.  */
+        size += 1;
+        }
+      }
     }
 
   /* Check whether the argument needs surrounding quotes.  */
@@ -432,6 +441,20 @@ static char* kwsysSystem_Shell__GetArgument(const char* in, char* out,
         *out++ = '#';
         }
       }
+    else if(*c == '%')
+      {
+      if(flags & kwsysSystem_Shell_Flag_VSIDE)
+        {
+        /* In a VS IDE a percent is written %%.  */
+        *out++ = '%';
+        *out++ = '%';
+        }
+      else
+        {
+        /* Otherwise a percent is written just %. */
+        *out++ = '%';
+        }
+      }
     else
       {
       /* Store this character.  */