sbase

suckless unix tools
git clone git://git.2f30.org/sbase.git
Log | Files | Refs | README | LICENSE

commit e50ee15a9caa8c5c8eab2b09dbe7acfdacb2c03f
parent 27656a0cbcee2e46edb03a00ebdb985701398767
Author: FRIGN <dev@frign.de>
Date:   Mon Mar  2 15:12:19 +0100

Audit date(1)

1) Update usage as already done in the manpage
2) group and sort local variable declarations
3) Be pedantic about the number of options. Don't just ignore it
   if argc > 1.

Diffstat:
README | 2+-
date.c | 17++++++++++-------
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/README b/README @@ -23,7 +23,7 @@ The following tools are implemented ('*' == finished, '#' == UTF-8 support, = cp yes none (-i) =* cron non-posix none #* cut yes none -=* date yes -u +=*| date yes none =*| dirname yes none =* du yes none =*| echo yes none diff --git a/date.c b/date.c @@ -8,20 +8,19 @@ static void usage(void) { - eprintf("usage: %s [-u] [-d format] [+FORMAT]\n", argv0); + eprintf("usage: %s [-u] [-d time] [+format]\n", argv0); } int main(int argc, char *argv[]) { - char buf[BUFSIZ]; - char *fmt = "%c"; - struct tm *now = NULL; + struct tm *now; struct tm *(*tztime)(const time_t *) = localtime; - const char *tz = "local"; time_t t; + char buf[BUFSIZ], *fmt = "%c", *tz = "local"; t = time(NULL); + ARGBEGIN { case 'd': t = estrtonum(EARGF(usage()), 0, LLONG_MAX); @@ -34,8 +33,12 @@ main(int argc, char *argv[]) usage(); } ARGEND; - if (argc > 0 && argv[0][0] == '+') - fmt = &argv[0][1]; + if (argc) { + if (argc != 1 || argv[0][0] != '+') + usage(); + else + fmt = &argv[0][1]; + } if (!(now = tztime(&t))) eprintf("%stime failed\n", tz);