[PATCH] trivial argument parsing patches
From: Paul Mackerras <hidden>
Date: 2016-06-15 22:41:52
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 <redacted> 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) {