]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
refactor for long commands
authorYann Collet <cyan@fb.com>
Fri, 14 Oct 2016 21:41:17 +0000 (14:41 -0700)
committerYann Collet <cyan@fb.com>
Fri, 14 Oct 2016 21:41:17 +0000 (14:41 -0700)
programs/zstdcli.c

index da3786d608ff79f000586a564ac9d289c2e5228c..2df410431b5a13385442fc50ed06dba1f38e4e02 100644 (file)
@@ -189,6 +189,14 @@ static unsigned readU32FromChar(const char** stringPtr)
     return result;
 }
 
+static unsigned longCommandWArg(const char** stringPtr, const char* longCommand)
+{
+    size_t const comSize = strlen(longCommand);
+    unsigned const result = !strncmp(*stringPtr, longCommand, comSize);
+    if (result) *stringPtr += comSize;
+    return result;
+}
+
 
 #define CLEAN_RETURN(i) { operationResult = (i); goto _end; }
 
@@ -276,21 +284,9 @@ int main(int argCount, const char* argv[])
             if (!strcmp(argument, "--rm")) { FIO_setRemoveSrcFile(1); continue; }
 
             /* long commands with arguments */
-            if (!strncmp(argument, "--memlimit=", strlen("--memlimit="))) {
-                argument += strlen("--memlimit=");
-                memLimit = readU32FromChar(&argument);
-                continue;
-            }
-            if (!strncmp(argument, "--memory=", strlen("--memory="))) {
-                argument += strlen("--memory=");
-                memLimit = readU32FromChar(&argument);
-                continue;
-            }
-            if (!strncmp(argument, "--memlimit-decompress=", strlen("--memlimit-decompress="))) {
-                argument += strlen("--memlimit-decompress=");
-                memLimit = readU32FromChar(&argument);
-                continue;
-            }
+            if (longCommandWArg(&argument, "--memlimit=")) { memLimit = readU32FromChar(&argument); continue; }
+            if (longCommandWArg(&argument, "--memory=")) { memLimit = readU32FromChar(&argument); continue; }
+            if (longCommandWArg(&argument, "--memlimit-decompress=")) { memLimit = readU32FromChar(&argument); continue; }
 
             /* '-' means stdin/stdout */
             if (!strcmp(argument, "-")){