aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2005-10-05 12:23:13 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2005-10-05 12:23:13 +0000
commit43fb3fcb2f204a0742219a5910bc5b2fd39346e5 (patch)
tree6f0b5480069955a7b806296493f5cf6e1d18e508
parent35939d93783230998439848b2798865c598723e2 (diff)
downloadbusybox-w32-43fb3fcb2f204a0742219a5910bc5b2fd39346e5.tar.gz
busybox-w32-43fb3fcb2f204a0742219a5910bc5b2fd39346e5.tar.bz2
busybox-w32-43fb3fcb2f204a0742219a5910bc5b2fd39346e5.zip
- add a bit more documentation to vodz' recent additions.
-rw-r--r--libbb/getopt_ulflags.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/libbb/getopt_ulflags.c b/libbb/getopt_ulflags.c
index 410f4d57d..37c4ec0f0 100644
--- a/libbb/getopt_ulflags.c
+++ b/libbb/getopt_ulflags.c
@@ -110,21 +110,32 @@ const char *bb_opt_complementally
110 bb_getopt_ulflags's return value will be as if "-a -b -c" were 110 bb_getopt_ulflags's return value will be as if "-a -b -c" were
111 found. 111 found.
112 112
113 "ww" Double option have int counter usaging. For example ps applet: 113 "ww" Adjacent double options have a counter associated which indicates
114 the number of occurances of the option. For example the ps applet needs:
114 if w is given once, GNU ps sets the width to 132, 115 if w is given once, GNU ps sets the width to 132,
115 if w is given more than once, it is "unlimited" 116 if w is given more than once, it is "unlimited"
116 117
117 int w_counter = 0; 118 int w_counter = 0;
118 bb_opt_complementally = "ww"; 119 bb_opt_complementally = "ww";
119 flags = bb_getopt_ulflags(argc, argv, "w", &w_counter); 120 bb_getopt_ulflags(argc, argv, "w", &w_counter);
120 121
121 if((flags & 1)) 122 if(w_counter)
122 width = (w_counter == 1) ? 132 : INT_MAX; 123 width = (w_counter == 1) ? 132 : INT_MAX;
123 else 124 else
124 get_terminal_width(...&width...); 125 get_terminal_width(...&width...);
125 126
126 w_counter - have counter -w usaging, must set int pointer 127 w_counter is a pointer to an integer. It has to be passed to
127 to bb_getopt_ulflags() after all other requires 128 bb_getopt_ulflags() after all other option argument sinks.
129 For example: accept multiple -v to indicate the level of verbosity and
130 for each -b optarg, add optarg to my_b. Finally, if b is given, turn off
131 c and vice versa:
132
133 llist_t *my_b = NULL;
134 int verbose_level = 0;
135 bb_opt_complementally = "vvb*b-c:c-b";
136 bb_getopt_ulflags(argc, argv, "vb:c", &my_b, &verbose_level);
137 while (my_b) { dosomething_with(my_b->data) ; my_b = my_b->link; }
138 if (verbose_level) bb_printf("verbose\n");
128 139
129Special characters: 140Special characters:
130 141
@@ -155,6 +166,16 @@ Special characters:
155 if(opt & 4) 166 if(opt & 4)
156 printf("Detected odd -x usaging\n"); 167 printf("Detected odd -x usaging\n");
157 168
169 "-" A minus as the first char in a bb_opt_complementally group means to
170 convert the arguments as option.
171 For example:
172
173 bb_opt_complementally = "-:w";
174 bb_getopt_ulflags(argc, argv, "w");
175
176 Allows option 'w' to be given without a dash (./program w)
177 as well as with a dash (./program -w).
178
158 "~" A tilde between two options, or between an option and a group 179 "~" A tilde between two options, or between an option and a group
159 of options, means that they are mutually exclusive. Unlike 180 of options, means that they are mutually exclusive. Unlike
160 the "-" case above, an error will be forced if the options 181 the "-" case above, an error will be forced if the options
@@ -175,9 +196,6 @@ Special characters:
175 "!" If previous point set BB_GETOPT_ERROR, don`t return and call 196 "!" If previous point set BB_GETOPT_ERROR, don`t return and call
176 previous example internally 197 previous example internally
177 198
178 "-" A minus as one char in bb_opt_complementally group means that
179 convert the arguments as option, specail for "ps" applet.
180
181 "*" A star after a char in bb_opt_complementally means that the 199 "*" A star after a char in bb_opt_complementally means that the
182 option can occur multiple times: 200 option can occur multiple times:
183 201