summaryrefslogtreecommitdiff
path: root/libbb/getopt32.c
diff options
context:
space:
mode:
authorDenis Vlasenko2006-10-20 18:36:55 +0000
committerDenis Vlasenko2006-10-20 18:36:55 +0000
commit456fa6c0b17b2ff465a34db031f667b3fcd4bf2e (patch)
treec33b80a72a22047d49243ea6307de8e19d3a98e2 /libbb/getopt32.c
parentdf5189269074042a60fa87425ef8a01a9aaa4af6 (diff)
downloadbusybox-456fa6c0b17b2ff465a34db031f667b3fcd4bf2e.zip
busybox-456fa6c0b17b2ff465a34db031f667b3fcd4bf2e.tar.gz
readlink: do not emit errors if file doesnt not exist / not a link
getopt32: add =N support
Diffstat (limited to 'libbb/getopt32.c')
-rw-r--r--libbb/getopt32.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libbb/getopt32.c b/libbb/getopt32.c
index 2f2f0b9..73e6b86 100644
--- a/libbb/getopt32.c
+++ b/libbb/getopt32.c
@@ -188,6 +188,10 @@ Special characters:
by a single digit (0-9) means that at least N non-option
arguments must be present on the command line
+ "=N" An equal sign as the first char in a opt_complementary group followed
+ by a single digit (0-9) means that exactly N non-option
+ arguments must be present on the command line
+
"V-" An option with dash before colon or end-of-line results in
bb_show_usage being called if this option is encountered.
This is typically used to implement "print verbose usage message
@@ -400,6 +404,11 @@ getopt32(int argc, char **argv, const char *applet_opts, ...)
}
continue;
}
+ if (*s == '=') {
+ min_arg = max_arg = c - '0';
+ s++;
+ continue;
+ }
for (on_off = complementary; on_off->opt; on_off++)
if (on_off->opt == *s)
break;