getpot: add support for "a+" specifier for nonnegative int parameters.

By Vladimir Dronnikov <dronnikov at gmail.com>.
fdisk and top are converted as an example.

function                                             old     new   delta
getopt32                                            1340    1370     +30
top_main                                            1137    1120     -17
fdisk_main                                          3033    2949     -84
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 30/-101)           Total: -71 bytes
This commit is contained in:
Denis Vlasenko
2008-02-10 19:44:20 +00:00
parent 9304d6ea92
commit 04e11c9209
3 changed files with 55 additions and 44 deletions

View File

@@ -740,7 +740,7 @@ int top_main(int argc, char **argv)
int count, lines, col;
unsigned interval;
int iterations;
char *sinterval, *siterations;
char *sinterval;
SKIP_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK;
#if ENABLE_FEATURE_USE_TERMIOS
struct termios new_settings;
@@ -757,15 +757,12 @@ int top_main(int argc, char **argv)
iterations = 0; /* infinite */
/* do normal option parsing */
opt_complementary = "-";
getopt32(argv, "d:n:b", &sinterval, &siterations);
opt_complementary = "-:n+";
getopt32(argv, "d:n:b", &sinterval, &iterations);
if (option_mask32 & 0x1) {
/* Need to limit it to not overflow poll timeout */
interval = xatou16(sinterval); // -d
}
if (option_mask32 & 0x2)
iterations = xatoi_u(siterations); // -n
//if (option_mask32 & 0x4) // -b
/* change to /proc */
xchdir("/proc");