*: remove some uses of argc

function                                             old     new   delta
whoami_main                                           34      37      +3
logname_main                                          60      63      +3
hostid_main                                           35      38      +3
ttysize_main                                         136     135      -1
nmeter_main                                          673     672      -1
logger_main                                          387     386      -1
uuencode_main                                        330     328      -2
ifupdown_main                                       2125    2123      -2
mesg_main                                            158     155      -3
free_main                                            333     330      -3
cal_main                                             902     899      -3
acpid_main                                           443     440      -3
ar_main                                              196     189      -7
find_main                                            476     467      -9
ifconfig_main                                       1235    1221     -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/12 up/down: 9/-49)            Total: -40 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/findutils/grep.c b/findutils/grep.c
index 9dc2f19..193b48c 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -519,7 +519,7 @@
 }
 
 int grep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int grep_main(int argc, char **argv)
+int grep_main(int argc UNUSED_PARAM, char **argv)
 {
 	FILE *file;
 	int matched;
@@ -606,7 +606,6 @@
 	}
 
 	argv += optind;
-	argc -= optind;
 
 	/* if we didn't get a pattern from -e and no command file was specified,
 	 * first parameter should be the pattern. no pattern, no worky */
@@ -616,12 +615,11 @@
 			bb_show_usage();
 		pattern = new_grep_list_data(*argv++, 0);
 		llist_add_to(&pattern_head, pattern);
-		argc--;
 	}
 
 	/* argv[0..(argc-1)] should be names of file to grep through. If
 	 * there is more than one file to grep, we will print the filenames. */
-	if (argc > 1)
+	if (argv[0] && argv[1])
 		print_filename = 1;
 	/* -H / -h of course override */
 	if (option_mask32 & OPT_H)
@@ -633,7 +631,7 @@
 	 * stdin. Otherwise, we grep through all the files specified. */
 	matched = 0;
 	do {
-		cur_file = *argv++;
+		cur_file = *argv;
 		file = stdin;
 		if (!cur_file || LONE_DASH(cur_file)) {
 			cur_file = "(standard input)";
@@ -659,7 +657,7 @@
 		matched += grep_file(file);
 		fclose_if_not_stdin(file);
  grep_done: ;
-	} while (--argc > 0);
+	} while (*argv && *++argv);
 
 	/* destroy all the elments in the pattern list */
 	if (ENABLE_FEATURE_CLEAN_UP) {