commit faf12794db27bf3ea86faf70c3467a21b2ac19d9
parent 04a30829a2a980c3818bd8dc431c3dfae7a4e472
Author: sin <sin@2f30.org>
Date:   Thu, 16 Oct 2014 11:40:57 +0100
We cannot use eprintf() without first initializing argv0
Diffstat:
| M | last.c | | | 18 | +++++++++++------- | 
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/last.c b/last.c
@@ -12,11 +12,10 @@
 #include "config.h"
 #include "util.h"
 
-void
+static void
 usage(void)
 {
-	fputs("last [user]\n", stderr);
-	exit(1);
+	eprintf("usage: %s [user]\n", argv0);
 }
 
 int
@@ -27,18 +26,23 @@ main(int argc, char **argv)
 	char *user, *file, *prog;
 	time_t t;
 
+	ARGBEGIN {
+	default:
+		usage();
+	} ARGEND;
+
 	switch (argc) {
-	case 1:
+	case 0:
 		user = NULL;
 		break;
-	case 2:
-		user = argv[1];
+	case 1:
+		user = argv[0];
 		break;
 	default:
 		usage();
 	}
 
-	prog = basename(argv[0]);
+	prog = basename(argv0);
 	file = (!strcmp(prog, "last")) ? WTMP_PATH : BTMP_PATH;
 	if ((fp = fopen(file, "r")) == NULL)
                 eprintf("fopen %s:", file);