# [PATCH] trivial argument parsing patches

1 messages from 2005-04-15 to 2005-04-15. Participants: Paul Mackerras.
Thread: https://gitlist.dev/t/33

## Paul Mackerras, 2005-04-15 11:28

Subject: [PATCH] trivial argument parsing patches
Message-ID: <16991.42305.118284.139777@cargo.ozlabs.ibm.com>
URL: https://gitlist.dev/e/16991.42305.118284.139777%40cargo.ozlabs.ibm.com

```
In perusing the git code, I noticed some errors in argument parsing,
which the patch below fixes.  The show-diff error (checking argv[1]
each time around the loop) probably doesn't actually cause any real
problem, but it could be confusing for a novice if "show-diff x"
produces an error but "show-diff -s x" doesn't (and ignores the extra
argument).

Signed-off-by: Paul Mackerras <paulus@samba.org>

rev-tree.c:  7bf9e9a92f528485360f374239809714ce7a19f5
--- rev-tree.c
+++ rev-tree.c	2005-04-15 21:17:16.000000000 +1000
@@ -189,8 +189,8 @@
 		char *arg = argv[i];
 
 		if (!strcmp(arg, "--cache")) {
-			read_cache_file(argv[2]);
 			i++;
+			read_cache_file(argv[i]);
 			continue;
 		}
 
show-diff.c:  a531ca4078525d1c8dcf84aae0bfa89fed6e5d96
--- show-diff.c
+++ show-diff.c	2005-04-15 21:22:28.000000000 +1000
@@ -61,12 +61,10 @@
 	int entries = read_cache();
 	int i;
 
-	while (argc-- > 1) {
-		if (!strcmp(argv[1], "-s")) {
-			silent = 1;
-			continue;
-		}
-		usage("show-diff [-s]");
+	if (argc > 1) {
+		if (argc > 2 || strcmp(argv[1], "-s"))
+			usage("show-diff [-s]");
+		silent = 1;
 	}
 
 	if (entries < 0) {

```
