diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-07-06 21:58:02 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-07-06 21:58:02 +0200 |
commit | 237bedd499c58034a1355484d6d4d906f0180308 (patch) | |
tree | 42a789f8867ba3bc6ef0cea30fb18f5553d447a0 /util-linux | |
parent | 0844b5afe2cd60d46b7f2ad0fac8c2818d0780b3 (diff) | |
download | busybox-w32-237bedd499c58034a1355484d6d4d906f0180308.tar.gz busybox-w32-237bedd499c58034a1355484d6d4d906f0180308.tar.bz2 busybox-w32-237bedd499c58034a1355484d6d4d906f0180308.zip |
getopt32: add new syntax of 'o:+' and 'o:*' for -o NUM and -o LIST
In many cases, this aqllows to drop use of opt_complementary.
Approximately -400 bytes:
function old new delta
getopt32 1423 1502 +79
opt_string 17 18 +1
OPT_STR 24 25 +1
uniq_main 416 406 -10
timeout_main 279 269 -10
sulogin_main 270 260 -10
readprofile_main 1825 1815 -10
ps_main 543 533 -10
pidof_main 245 235 -10
pgrep_main 611 601 -10
od_main 2600 2590 -10
mkfs_minix_main 2684 2674 -10
mkfs_ext2_main 2603 2593 -10
microcom_main 712 702 -10
makemime_main 315 305 -10
ionice_main 282 272 -10
inetd_main 2074 2064 -10
ifplugd_main 1144 1134 -10
halt_main 353 343 -10
getopt_main 636 626 -10
fdisk_main 2854 2844 -10
env_main 206 196 -10
dmesg_main 319 309 -10
conspy_main 1214 1204 -10
awk_main 981 971 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/22 up/down: 81/-220) Total: -139 bytes
text data bss dec hex filename
919373 906 14060 934339 e41c3 busybox_old
918969 906 14060 933935 e402f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux')
-rw-r--r-- | util-linux/dmesg.c | 3 | ||||
-rw-r--r-- | util-linux/fdisk.c | 3 | ||||
-rw-r--r-- | util-linux/getopt.c | 3 | ||||
-rw-r--r-- | util-linux/mkfs_ext2.c | 3 | ||||
-rw-r--r-- | util-linux/mkfs_minix.c | 3 | ||||
-rw-r--r-- | util-linux/mkfs_reiser.c | 4 | ||||
-rw-r--r-- | util-linux/mount.c | 4 | ||||
-rw-r--r-- | util-linux/readprofile.c | 3 |
8 files changed, 10 insertions, 16 deletions
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c index e543446c1..50e8a0fce 100644 --- a/util-linux/dmesg.c +++ b/util-linux/dmesg.c | |||
@@ -34,8 +34,7 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv) | |||
34 | OPT_r = 1 << 3 | 34 | OPT_r = 1 << 3 |
35 | }; | 35 | }; |
36 | 36 | ||
37 | opt_complementary = "s+:n+"; /* numeric */ | 37 | opts = getopt32(argv, "cs:+n:+r", &len, &level); |
38 | opts = getopt32(argv, "cs:n:r", &len, &level); | ||
39 | if (opts & OPT_n) { | 38 | if (opts & OPT_n) { |
40 | if (klogctl(8, NULL, (long) level)) | 39 | if (klogctl(8, NULL, (long) level)) |
41 | bb_perror_msg_and_die("klogctl"); | 40 | bb_perror_msg_and_die("klogctl"); |
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index f49ce95a4..6391f9bd9 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c | |||
@@ -2919,8 +2919,7 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv) | |||
2919 | 2919 | ||
2920 | close_dev_fd(); /* needed: fd 3 must not stay closed */ | 2920 | close_dev_fd(); /* needed: fd 3 must not stay closed */ |
2921 | 2921 | ||
2922 | opt_complementary = "b+:C+:H+:S+"; /* numeric params */ | 2922 | opt = getopt32(argv, "b:+C:+H:+lS:+u" IF_FEATURE_FDISK_BLKSIZE("s"), |
2923 | opt = getopt32(argv, "b:C:H:lS:u" IF_FEATURE_FDISK_BLKSIZE("s"), | ||
2924 | §or_size, &user_cylinders, &user_heads, &user_sectors); | 2923 | §or_size, &user_cylinders, &user_heads, &user_sectors); |
2925 | argv += optind; | 2924 | argv += optind; |
2926 | if (opt & OPT_b) { | 2925 | if (opt & OPT_b) { |
diff --git a/util-linux/getopt.c b/util-linux/getopt.c index b9dadf13c..18d490987 100644 --- a/util-linux/getopt.c +++ b/util-linux/getopt.c | |||
@@ -397,8 +397,7 @@ int getopt_main(int argc, char **argv) | |||
397 | opt = getopt32(argv, "+o:n:qQs:Tu", &optstr, &name, &s_arg); | 397 | opt = getopt32(argv, "+o:n:qQs:Tu", &optstr, &name, &s_arg); |
398 | #else | 398 | #else |
399 | applet_long_options = getopt_longopts; | 399 | applet_long_options = getopt_longopts; |
400 | opt_complementary = "l::"; | 400 | opt = getopt32(argv, "+o:n:qQs:Tual:*", |
401 | opt = getopt32(argv, "+o:n:qQs:Tual:", | ||
402 | &optstr, &name, &s_arg, &l_arg); | 401 | &optstr, &name, &s_arg, &l_arg); |
403 | /* Effectuate the read options for the applet itself */ | 402 | /* Effectuate the read options for the applet itself */ |
404 | while (l_arg) { | 403 | while (l_arg) { |
diff --git a/util-linux/mkfs_ext2.c b/util-linux/mkfs_ext2.c index f91a0b4bf..413e7aa15 100644 --- a/util-linux/mkfs_ext2.c +++ b/util-linux/mkfs_ext2.c | |||
@@ -244,8 +244,7 @@ int mkfs_ext2_main(int argc UNUSED_PARAM, char **argv) | |||
244 | 244 | ||
245 | // using global "option_mask32" instead of local "opts": | 245 | // using global "option_mask32" instead of local "opts": |
246 | // we are register starved here | 246 | // we are register starved here |
247 | opt_complementary = "-1:b+:i+:I+:m+"; | 247 | /*opts =*/ getopt32(argv, "cl:b:+f:i:+I:+J:G:N:m:+o:g:L:M:O:r:E:T:U:jnqvFS", |
248 | /*opts =*/ getopt32(argv, "cl:b:f:i:I:J:G:N:m:o:g:L:M:O:r:E:T:U:jnqvFS", | ||
249 | /*lbfi:*/ NULL, &bs, NULL, &bpi, | 248 | /*lbfi:*/ NULL, &bs, NULL, &bpi, |
250 | /*IJGN:*/ &user_inodesize, NULL, NULL, NULL, | 249 | /*IJGN:*/ &user_inodesize, NULL, NULL, NULL, |
251 | /*mogL:*/ &reserved_percent, NULL, NULL, &label, | 250 | /*mogL:*/ &reserved_percent, NULL, NULL, &label, |
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index 88d797584..aaabf8453 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c | |||
@@ -604,8 +604,7 @@ int mkfs_minix_main(int argc UNUSED_PARAM, char **argv) | |||
604 | bb_error_msg_and_die("bad inode size"); | 604 | bb_error_msg_and_die("bad inode size"); |
605 | #endif | 605 | #endif |
606 | 606 | ||
607 | opt_complementary = "n+"; /* -n N */ | 607 | opt = getopt32(argv, "ci:l:n:+v", &str_i, &listfile, &G.namelen); |
608 | opt = getopt32(argv, "ci:l:n:v", &str_i, &listfile, &G.namelen); | ||
609 | argv += optind; | 608 | argv += optind; |
610 | //if (opt & 1) -c | 609 | //if (opt & 1) -c |
611 | if (opt & 2) G.req_nr_inodes = xatoul(str_i); // -i | 610 | if (opt & 2) G.req_nr_inodes = xatoul(str_i); // -i |
diff --git a/util-linux/mkfs_reiser.c b/util-linux/mkfs_reiser.c index 56c8f0ab5..0a31ee44f 100644 --- a/util-linux/mkfs_reiser.c +++ b/util-linux/mkfs_reiser.c | |||
@@ -169,8 +169,8 @@ int mkfs_reiser_main(int argc UNUSED_PARAM, char **argv) | |||
169 | 169 | ||
170 | // using global "option_mask32" instead of local "opts": | 170 | // using global "option_mask32" instead of local "opts": |
171 | // we are register starved here | 171 | // we are register starved here |
172 | opt_complementary = "-1:b+"; | 172 | opt_complementary = "-1"; |
173 | /*opts =*/ getopt32(argv, "b:j:s:o:t:B:h:u:l:fqd", | 173 | /*opts =*/ getopt32(argv, "b:+j:s:o:t:B:h:u:l:fqd", |
174 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &label); | 174 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &label); |
175 | argv += optind; // argv[0] -- device | 175 | argv += optind; // argv[0] -- device |
176 | 176 | ||
diff --git a/util-linux/mount.c b/util-linux/mount.c index cef4f7415..13590ceb4 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c | |||
@@ -268,7 +268,7 @@ enum { | |||
268 | }; | 268 | }; |
269 | 269 | ||
270 | 270 | ||
271 | #define OPTION_STR "o:t:rwanfvsiO:" IF_FEATURE_MOUNT_OTHERTAB("T:") | 271 | #define OPTION_STR "o:*t:rwanfvsiO:" IF_FEATURE_MOUNT_OTHERTAB("T:") |
272 | enum { | 272 | enum { |
273 | OPT_o = (1 << 0), | 273 | OPT_o = (1 << 0), |
274 | OPT_t = (1 << 1), | 274 | OPT_t = (1 << 1), |
@@ -2167,7 +2167,7 @@ int mount_main(int argc UNUSED_PARAM, char **argv) | |||
2167 | 2167 | ||
2168 | // Parse remaining options | 2168 | // Parse remaining options |
2169 | // Max 2 params; -o is a list, -v is a counter | 2169 | // Max 2 params; -o is a list, -v is a counter |
2170 | opt_complementary = "?2o::" IF_FEATURE_MOUNT_VERBOSE("vv"); | 2170 | opt_complementary = "?2" IF_FEATURE_MOUNT_VERBOSE("vv"); |
2171 | opt = getopt32(argv, OPTION_STR, &lst_o, &fstype, &O_optmatch | 2171 | opt = getopt32(argv, OPTION_STR, &lst_o, &fstype, &O_optmatch |
2172 | IF_FEATURE_MOUNT_OTHERTAB(, &fstabname) | 2172 | IF_FEATURE_MOUNT_OTHERTAB(, &fstabname) |
2173 | IF_FEATURE_MOUNT_VERBOSE(, &verbose)); | 2173 | IF_FEATURE_MOUNT_VERBOSE(, &verbose)); |
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c index a64540464..345b676ba 100644 --- a/util-linux/readprofile.c +++ b/util-linux/readprofile.c | |||
@@ -99,8 +99,7 @@ int readprofile_main(int argc UNUSED_PARAM, char **argv) | |||
99 | proFile = defaultpro; | 99 | proFile = defaultpro; |
100 | mapFile = defaultmap; | 100 | mapFile = defaultmap; |
101 | 101 | ||
102 | opt_complementary = "M+"; /* -M N */ | 102 | opt = getopt32(argv, "M:+m:p:nabsirv", &multiplier, &mapFile, &proFile); |
103 | opt = getopt32(argv, "M:m:p:nabsirv", &multiplier, &mapFile, &proFile); | ||
104 | 103 | ||
105 | if (opt & (OPT_M|OPT_r)) { /* mult or reset, or both */ | 104 | if (opt & (OPT_M|OPT_r)) { /* mult or reset, or both */ |
106 | int fd, to_write; | 105 | int fd, to_write; |