ubase

suckless linux base utils
git clone git://git.suckless.org/ubase
Log | Files | Refs | README | LICENSE

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:
Mlast.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);