sbase

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

commit 27656a0cbcee2e46edb03a00ebdb985701398767
parent 933ed8c00b0641e970a2954b7605298c80961d85
Author: FRIGN <dev@frign.de>
Date:   Mon,  2 Mar 2015 14:50:43 +0100

Audit env(1)

1) Shorten synopsis and reflect this in the manual
2) Use argv0 in usage()
3) Decrement argc in argv-loop for consistency
4) Make it clearer which error-code results from which errno in enprintf
5) Use idiomatic for-loop also for environ. Don't increment these pointers
   in the loop itself!

Diffstat:
MREADME | 2+-
Menv.1 | 16++++++++--------
Menv.c | 10+++++-----
3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/README b/README @@ -27,7 +27,7 @@ The following tools are implemented ('*' == finished, '#' == UTF-8 support, =*| dirname yes none =* du yes none =*| echo yes none -=* env yes none +=*| env yes none #* expand yes none #* expr yes none =*| false yes none diff --git a/env.1 b/env.1 @@ -1,4 +1,4 @@ -.Dd January 24, 2015 +.Dd March 1, 2015 .Dt ENV 1 .Os sbase .Sh NAME @@ -7,15 +7,15 @@ .Sh SYNOPSIS .Nm .Op Fl i -.Oo Fl u Ar variable Oc ... -.Oo Ar variable Ns = Ns Ar value Oc ... +.Oo Fl u Ar var Oc ... +.Oo Ar var Ns = Ns Ar value Oc ... .Oo Ar cmd Oo arg ... Oc Oc .Sh DESCRIPTION .Nm unsets each -.Ar variable , +.Ar var , then adds or sets each -.Ar ( variable , value ) +.Ar ( var , value ) tuple in the environment. .Pp If @@ -28,11 +28,11 @@ otherwise, the modified environment is printed to stdout. Completely ignore the existing environment and execute .Ar cmd only with each -.Ar ( variable , value ) +.Ar ( var , value ) tuple specified. -.It Fl u Ar variable +.It Fl u Ar var Unset -.Ar variable +.Ar var in the environment. .El .Sh SEE ALSO diff --git a/env.c b/env.c @@ -12,7 +12,7 @@ extern char **environ; static void usage(void) { - eprintf("usage: env [-i] [-u variable] ... [variable=value] ... [cmd [arg ...]]\n"); + eprintf("usage: %s [-i] [-u var] ... [var=value] ... [cmd [arg ...]]\n", argv0); } int @@ -30,16 +30,16 @@ main(int argc, char *argv[]) usage(); } ARGEND; - for (; *argv && strchr(*argv, '='); argv++) + for (; *argv && strchr(*argv, '='); argc--, argv++) putenv(*argv); if (*argv) { execvp(*argv, argv); - enprintf(127 - (errno != EEXIST), "env: '%s':", *argv); + enprintf(126 + (errno == EEXIST), "execvp: %s:", *argv); } - while (environ && *environ) - printf("%s\n", *environ++); + for (; environ && *environ; environ++) + puts(*environ); return 0; }