=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/env/env.c,v retrieving revision 1.10 retrieving revision 1.11 diff -c -r1.10 -r1.11 *** src/usr.bin/env/env.c 2003/06/10 22:20:46 1.10 --- src/usr.bin/env/env.c 2006/05/28 04:21:13 1.11 *************** *** 1,4 **** ! /* $OpenBSD: env.c,v 1.10 2003/06/10 22:20:46 deraadt Exp $ */ /* * Copyright (c) 1988, 1993, 1994 --- 1,4 ---- ! /* $OpenBSD: env.c,v 1.11 2006/05/28 04:21:13 ray Exp $ */ /* * Copyright (c) 1988, 1993, 1994 *************** *** 37,54 **** #ifndef lint /*static char sccsid[] = "@(#)env.c 8.3 (Berkeley) 4/2/94";*/ ! static char rcsid[] = "$OpenBSD: env.c,v 1.10 2003/06/10 22:20:46 deraadt Exp $"; #endif /* not lint */ #include #include - #include #include #include - #include - #include ! void usage(void); int main(int argc, char *argv[]) --- 37,54 ---- #ifndef lint /*static char sccsid[] = "@(#)env.c 8.3 (Berkeley) 4/2/94";*/ ! static char rcsid[] = "$OpenBSD: env.c,v 1.11 2006/05/28 04:21:13 ray Exp $"; #endif /* not lint */ #include + #include + #include #include #include + #include #include ! __dead void usage(void); int main(int argc, char *argv[]) *************** *** 60,78 **** setlocale(LC_ALL, ""); ! while ((ch = getopt(argc, argv, "i-")) != -1) ! switch((char)ch) { ! case '-': /* obsolete */ case 'i': ! if ((environ = (char **)calloc(1, sizeof(char *))) == NULL) err(126, "calloc"); break; - case '?': default: usage(); } ! for (argv += optind; *argv && (p = strchr(*argv, '=')); ++argv) if (setenv(*argv, ++p, 1) == -1) { /* reuse 126, it matches the problem most */ exit(126); --- 60,78 ---- setlocale(LC_ALL, ""); ! while ((ch = getopt(argc, argv, "i")) != -1) ! switch(ch) { case 'i': ! if ((environ = calloc(1, sizeof(char *))) == NULL) err(126, "calloc"); break; default: usage(); } + argc -= optind; + argv += optind; ! for (; *argv && (p = strchr(*argv, '=')); ++argv) if (setenv(*argv, ++p, 1) == -1) { /* reuse 126, it matches the problem most */ exit(126); *************** *** 86,92 **** */ execvp(*argv, argv); err((errno == ENOENT) ? 127 : 126, "%s", *argv); - /* NOTREACHED */ } for (ep = environ; *ep; ep++) --- 86,91 ---- *************** *** 98,104 **** void usage(void) { ! (void)fprintf(stderr, "usage: env [-i] [name=value ...] " ! "[utility [argument ...]]\n"); ! exit (1); } --- 97,105 ---- void usage(void) { ! extern char *__progname; ! ! (void)fprintf(stderr, "usage: %s [-i] [name=value ...] " ! "[utility [argument ...]]\n", __progname); ! exit(1); }