aboutsummaryrefslogtreecommitdiff
path: root/util-linux
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-07-06 21:58:02 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2016-07-06 21:58:02 +0200
commit237bedd499c58034a1355484d6d4d906f0180308 (patch)
tree42a789f8867ba3bc6ef0cea30fb18f5553d447a0 /util-linux
parent0844b5afe2cd60d46b7f2ad0fac8c2818d0780b3 (diff)
downloadbusybox-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.c3
-rw-r--r--util-linux/fdisk.c3
-rw-r--r--util-linux/getopt.c3
-rw-r--r--util-linux/mkfs_ext2.c3
-rw-r--r--util-linux/mkfs_minix.c3
-rw-r--r--util-linux/mkfs_reiser.c4
-rw-r--r--util-linux/mount.c4
-rw-r--r--util-linux/readprofile.c3
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 &sector_size, &user_cylinders, &user_heads, &user_sectors); 2923 &sector_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:")
272enum { 272enum {
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;