diff options
author | vodz <vodz@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2005-10-14 09:56:52 +0000 |
---|---|---|
committer | vodz <vodz@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2005-10-14 09:56:52 +0000 |
commit | 01624413c323108075899977a28fc904b2af0ff3 (patch) | |
tree | 06f15d778a64ba361219d8227f87422173bf0da8 /coreutils/env.c | |
parent | 846218fbf12a4870648037175fe7cdf286501569 (diff) | |
download | busybox-w32-01624413c323108075899977a28fc904b2af0ff3.tar.gz busybox-w32-01624413c323108075899977a28fc904b2af0ff3.tar.bz2 busybox-w32-01624413c323108075899977a28fc904b2af0ff3.zip |
- new bb_opt_complementally syntax, use [-:?] only - 'free' chars
- new bb_getopt_ulflags features: check max and min args, convert first argv to options special for ar and tar applets
- use bb_default_error_retval for env applet
git-svn-id: svn://busybox.net/trunk/busybox@11859 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'coreutils/env.c')
-rw-r--r-- | coreutils/env.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/coreutils/env.c b/coreutils/env.c index 1a8ad7c78..d59e738f1 100644 --- a/coreutils/env.c +++ b/coreutils/env.c | |||
@@ -38,7 +38,7 @@ | |||
38 | * - correct "-" option usage | 38 | * - correct "-" option usage |
39 | * - multiple "-u unsetenv" support | 39 | * - multiple "-u unsetenv" support |
40 | * - GNU long option support | 40 | * - GNU long option support |
41 | * - save errno after exec failed before bb_perror_msg() | 41 | * - use bb_default_error_retval |
42 | */ | 42 | */ |
43 | 43 | ||
44 | 44 | ||
@@ -65,7 +65,7 @@ extern int env_main(int argc, char** argv) | |||
65 | llist_t *unset_env = NULL; | 65 | llist_t *unset_env = NULL; |
66 | extern char **environ; | 66 | extern char **environ; |
67 | 67 | ||
68 | bb_opt_complementally = "u*"; | 68 | bb_opt_complementally = "u::"; |
69 | bb_applet_long_options = env_long_options; | 69 | bb_applet_long_options = env_long_options; |
70 | 70 | ||
71 | opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env); | 71 | opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env); |
@@ -93,12 +93,10 @@ extern int env_main(int argc, char** argv) | |||
93 | } | 93 | } |
94 | 94 | ||
95 | if (*argv) { | 95 | if (*argv) { |
96 | int er; | ||
97 | |||
98 | execvp(*argv, argv); | 96 | execvp(*argv, argv); |
99 | er = errno; | 97 | /* SUSv3-mandated exit codes. */ |
100 | bb_perror_msg("%s", *argv); /* Avoid multibyte problems. */ | 98 | bb_default_error_retval = (errno == ENOENT) ? 127 : 126; |
101 | return (er == ENOENT) ? 127 : 126; /* SUSv3-mandated exit codes. */ | 99 | bb_perror_msg_and_die("%s", *argv); |
102 | } | 100 | } |
103 | 101 | ||
104 | for (ep = environ; *ep; ep++) { | 102 | for (ep = environ; *ep; ep++) { |