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

Handles quoted arguments a little bit better (needs some overhauling to do it right, though).

Ryan C. Gordon 24 жил өмнө
parent
commit
6e2393d90a
1 өөрчлөгдсөн 13 нэмэгдсэн , 2 устгасан
  1. 13 2
      test/test_physfs.c

+ 13 - 2
test/test_physfs.c

@@ -102,10 +102,18 @@ static int cmd_deinit(char *args)
 
 static int cmd_addarchive(char *args)
 {
-    char *ptr = strchr(args, ' ');
+    char *ptr = strrchr(args, ' ');
     int appending = atoi(ptr + 1);
     *ptr = '\0';
 
+    if (*args == '\"')
+    {
+        args++;
+        *(ptr - 1) = '\0';
+    }
+
+    /*printf("[%s], [%d]\n", args, appending);*/
+
     if (PHYSFS_addToSearchPath(args, appending))
         printf("Successful.\n");
     else
@@ -369,12 +377,15 @@ static int cmd_cat(char *args)
 static int count_args(const char *str)
 {
     int retval = 0;
+    int in_quotes = 0;
 
     if (str != NULL)
     {
         for (; *str != '\0'; str++)
         {
-            if (*str == ' ')
+            if (*str == '\"')
+                in_quotes = !in_quotes;
+            else if ((*str == ' ') && (!in_quotes))
                 retval++;
         } /* for */
         retval++;