diff options
author | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-14 09:56:52 +0000 |
---|---|---|
committer | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-14 09:56:52 +0000 |
commit | f704b27b5bb8bd5acaed9464714db34ccef06cc8 (patch) | |
tree | 06f15d778a64ba361219d8227f87422173bf0da8 /coreutils | |
parent | 8c7a7e6e63c01d2d575bbaa43e1768ad2b97179b (diff) | |
download | busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.tar.gz busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.tar.bz2 busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.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
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/cut.c | 2 | ||||
-rw-r--r-- | coreutils/date.c | 2 | ||||
-rw-r--r-- | coreutils/env.c | 12 | ||||
-rw-r--r-- | coreutils/id.c | 7 | ||||
-rw-r--r-- | coreutils/install.c | 2 |
5 files changed, 10 insertions, 15 deletions
diff --git a/coreutils/cut.c b/coreutils/cut.c index f9c72ca81..839bab68e 100644 --- a/coreutils/cut.c +++ b/coreutils/cut.c | |||
@@ -294,7 +294,7 @@ extern int cut_main(int argc, char **argv) | |||
294 | unsigned long opt; | 294 | unsigned long opt; |
295 | char *sopt, *sdopt; | 295 | char *sopt, *sdopt; |
296 | 296 | ||
297 | bb_opt_complementally = "b~bcf:c~bcf:f~bcf"; | 297 | bb_opt_complementally = "b--bcf:c--bcf:f--bcf"; |
298 | opt = bb_getopt_ulflags(argc, argv, optstring, &sopt, &sopt, &sopt, &sdopt); | 298 | opt = bb_getopt_ulflags(argc, argv, optstring, &sopt, &sopt, &sopt, &sdopt); |
299 | part = opt & (OPT_BYTE_FLGS|OPT_CHAR_FLGS|OPT_FIELDS_FLGS); | 299 | part = opt & (OPT_BYTE_FLGS|OPT_CHAR_FLGS|OPT_FIELDS_FLGS); |
300 | if(part == 0) | 300 | if(part == 0) |
diff --git a/coreutils/date.c b/coreutils/date.c index 43130f914..6593df970 100644 --- a/coreutils/date.c +++ b/coreutils/date.c | |||
@@ -149,7 +149,7 @@ int date_main(int argc, char **argv) | |||
149 | #else | 149 | #else |
150 | # define GETOPT_ISOFMT | 150 | # define GETOPT_ISOFMT |
151 | #endif | 151 | #endif |
152 | bb_opt_complementally = "?d~s:s~d"; | 152 | bb_opt_complementally = "?:d--s:s--d"; |
153 | opt = bb_getopt_ulflags(argc, argv, "Rs:ud:r:" GETOPT_ISOFMT, | 153 | opt = bb_getopt_ulflags(argc, argv, "Rs:ud:r:" GETOPT_ISOFMT, |
154 | &date_str, &date_str, &filename | 154 | &date_str, &date_str, &filename |
155 | #ifdef CONFIG_FEATURE_DATE_ISOFMT | 155 | #ifdef CONFIG_FEATURE_DATE_ISOFMT |
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++) { |
diff --git a/coreutils/id.c b/coreutils/id.c index 14497b416..39a57c196 100644 --- a/coreutils/id.c +++ b/coreutils/id.c | |||
@@ -62,12 +62,9 @@ extern int id_main(int argc, char **argv) | |||
62 | short status; | 62 | short status; |
63 | 63 | ||
64 | /* Don't allow -n -r -nr -ug -rug -nug -rnug */ | 64 | /* Don't allow -n -r -nr -ug -rug -nug -rnug */ |
65 | bb_opt_complementally = "?u~g:g~u:r?ug:n?ug"; | ||
66 | flags = bb_getopt_ulflags(argc, argv, "rnug"); | ||
67 | |||
68 | /* Don't allow more than one username */ | 65 | /* Don't allow more than one username */ |
69 | if (argc > (optind + 1)) | 66 | bb_opt_complementally = "?1:?:u--g:g--u:r?ug:n?ug"; |
70 | bb_show_usage(); | 67 | flags = bb_getopt_ulflags(argc, argv, "rnug"); |
71 | 68 | ||
72 | /* This values could be overwritten later */ | 69 | /* This values could be overwritten later */ |
73 | uid = geteuid(); | 70 | uid = geteuid(); |
diff --git a/coreutils/install.c b/coreutils/install.c index 9e5eb6037..a4a96151d 100644 --- a/coreutils/install.c +++ b/coreutils/install.c | |||
@@ -61,7 +61,7 @@ extern int install_main(int argc, char **argv) | |||
61 | int ret = EXIT_SUCCESS, flags, i, isdir; | 61 | int ret = EXIT_SUCCESS, flags, i, isdir; |
62 | 62 | ||
63 | bb_applet_long_options = install_long_options; | 63 | bb_applet_long_options = install_long_options; |
64 | bb_opt_complementally = "?s~d:d~s"; | 64 | bb_opt_complementally = "?:s--d:d--s"; |
65 | /* -c exists for backwards compatability, its needed */ | 65 | /* -c exists for backwards compatability, its needed */ |
66 | flags = bb_getopt_ulflags(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */ | 66 | flags = bb_getopt_ulflags(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */ |
67 | 67 | ||