aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-01-20 21:45:57 +0000
committerEric Andersen <andersen@codepoet.org>2001-01-20 21:45:57 +0000
commit965fa326a1cfd8ce480982808a9504c044e99c1b (patch)
tree9fb271911fe2a0a9527ac264af54262a78692346
parente2310b5a91f4e71ae5343fe5c18608836baea71f (diff)
downloadbusybox-w32-965fa326a1cfd8ce480982808a9504c044e99c1b.tar.gz
busybox-w32-965fa326a1cfd8ce480982808a9504c044e99c1b.tar.bz2
busybox-w32-965fa326a1cfd8ce480982808a9504c044e99c1b.zip
Move \n to inside TRIVIAL_HELP, to save a few bytes for the default case.
Patch from Vladimir N. Oleynik <dzo@simtreas.ru>
-rw-r--r--applets/usage.c671
-rw-r--r--usage.c671
2 files changed, 668 insertions, 674 deletions
diff --git a/applets/usage.c b/applets/usage.c
index e92b87a9c..864891797 100644
--- a/applets/usage.c
+++ b/applets/usage.c
@@ -2,102 +2,102 @@
2 2
3#if defined BB_AR 3#if defined BB_AR
4const char ar_usage[] = 4const char ar_usage[] =
5 "ar -[ovR]{ptx} archive filenames \n" 5 "ar -[ovR]{ptx} archive filenames"
6#ifndef BB_FEATURE_TRIVIAL_HELP 6#ifndef BB_FEATURE_TRIVIAL_HELP
7 "\nExtract or list files from an ar archive.\n\n" 7 "\n\nExtract or list files from an ar archive.\n\n"
8 "Options:\n" 8 "Options:\n"
9 "\t-o\t\tpreserve original dates\n" 9 "\t-o\t\tpreserve original dates\n"
10 "\t-p\t\textract to stdout\n" 10 "\t-p\t\textract to stdout\n"
11 "\t-t\t\tlist\n" 11 "\t-t\t\tlist\n"
12 "\t-x\t\textract\n" 12 "\t-x\t\textract\n"
13 "\t-v\t\tverbosely list files processed\n" 13 "\t-v\t\tverbosely list files processed\n"
14 "\t-R\t\trecursive action\n" 14 "\t-R\t\trecursive action"
15#endif 15#endif
16 ; 16 ;
17#endif 17#endif
18 18
19#if defined BB_BASENAME 19#if defined BB_BASENAME
20const char basename_usage[] = 20const char basename_usage[] =
21 "basename FILE [SUFFIX]\n" 21 "basename FILE [SUFFIX]"
22#ifndef BB_FEATURE_TRIVIAL_HELP 22#ifndef BB_FEATURE_TRIVIAL_HELP
23 "\nStrips directory path and suffixes from FILE.\n" 23 "\n\nStrips directory path and suffixes from FILE.\n"
24 "If specified, also removes any trailing SUFFIX.\n" 24 "If specified, also removes any trailing SUFFIX."
25#endif 25#endif
26 ; 26 ;
27#endif 27#endif
28 28
29#if defined BB_CAT 29#if defined BB_CAT
30const char cat_usage[] = 30const char cat_usage[] =
31 "cat [FILE]...\n" 31 "cat [FILE]..."
32#ifndef BB_FEATURE_TRIVIAL_HELP 32#ifndef BB_FEATURE_TRIVIAL_HELP
33 "\nConcatenates FILE(s) and prints them to stdout.\n" 33 "\n\nConcatenates FILE(s) and prints them to stdout."
34#endif 34#endif
35 ; 35 ;
36#endif 36#endif
37 37
38#if defined BB_CHMOD_CHOWN_CHGRP 38#if defined BB_CHMOD_CHOWN_CHGRP
39const char chgrp_usage[] = 39const char chgrp_usage[] =
40 "chgrp [OPTION]... GROUP FILE...\n" 40 "chgrp [OPTION]... GROUP FILE..."
41#ifndef BB_FEATURE_TRIVIAL_HELP 41#ifndef BB_FEATURE_TRIVIAL_HELP
42 "\nChange the group membership of each FILE to GROUP.\n" 42 "\n\nChange the group membership of each FILE to GROUP.\n"
43 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 43 "\nOptions:\n\t-R\tChanges files and directories recursively."
44#endif 44#endif
45 ; 45 ;
46#endif 46#endif
47 47
48#if defined BB_CHMOD_CHOWN_CHGRP 48#if defined BB_CHMOD_CHOWN_CHGRP
49const char chmod_usage[] = 49const char chmod_usage[] =
50 "chmod [-R] MODE[,MODE]... FILE...\n" 50 "chmod [-R] MODE[,MODE]... FILE..."
51#ifndef BB_FEATURE_TRIVIAL_HELP 51#ifndef BB_FEATURE_TRIVIAL_HELP
52 "\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n" 52 "\n\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n"
53 "one or more of the letters rwxst.\n\n" 53 "one or more of the letters rwxst.\n\n"
54 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 54 "\nOptions:\n\t-R\tChanges files and directories recursively."
55#endif 55#endif
56 ; 56 ;
57#endif 57#endif
58 58
59#if defined BB_CHMOD_CHOWN_CHGRP 59#if defined BB_CHMOD_CHOWN_CHGRP
60const char chown_usage[] = 60const char chown_usage[] =
61 "chown [OPTION]... OWNER[<.|:>[GROUP] FILE...\n" 61 "chown [OPTION]... OWNER[<.|:>[GROUP] FILE..."
62#ifndef BB_FEATURE_TRIVIAL_HELP 62#ifndef BB_FEATURE_TRIVIAL_HELP
63 "\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n" 63 "\n\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n"
64 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 64 "\nOptions:\n\t-R\tChanges files and directories recursively."
65#endif 65#endif
66 ; 66 ;
67#endif 67#endif
68 68
69#if defined BB_CHROOT 69#if defined BB_CHROOT
70const char chroot_usage[] = 70const char chroot_usage[] =
71 "chroot NEWROOT [COMMAND...]\n" 71 "chroot NEWROOT [COMMAND...]"
72#ifndef BB_FEATURE_TRIVIAL_HELP 72#ifndef BB_FEATURE_TRIVIAL_HELP
73 "\nRun COMMAND with root directory set to NEWROOT.\n" 73 "\n\nRun COMMAND with root directory set to NEWROOT."
74#endif 74#endif
75 ; 75 ;
76#endif 76#endif
77 77
78#if defined BB_CHVT 78#if defined BB_CHVT
79const char chvt_usage[] = 79const char chvt_usage[] =
80 "chvt N\n" 80 "chvt N"
81#ifndef BB_FEATURE_TRIVIAL_HELP 81#ifndef BB_FEATURE_TRIVIAL_HELP
82 "\nChanges the foreground virtual terminal to /dev/ttyN\n" 82 "\n\nChanges the foreground virtual terminal to /dev/ttyN"
83#endif 83#endif
84 ; 84 ;
85#endif 85#endif
86 86
87#if defined BB_CLEAR 87#if defined BB_CLEAR
88const char clear_usage[] = 88const char clear_usage[] =
89 "clear\n" 89 "clear"
90#ifndef BB_FEATURE_TRIVIAL_HELP 90#ifndef BB_FEATURE_TRIVIAL_HELP
91 "\nClear screen.\n" 91 "\n\nClear screen."
92#endif 92#endif
93 ; 93 ;
94#endif 94#endif
95 95
96#if defined BB_CMP 96#if defined BB_CMP
97const char cmp_usage[] = 97const char cmp_usage[] =
98 "cmp FILE1 [FILE2]\n" 98 "cmp FILE1 [FILE2]"
99#ifndef BB_FEATURE_TRIVIAL_HELP 99#ifndef BB_FEATURE_TRIVIAL_HELP
100 "\nCompare files.\n" 100 "\n\nCompare files."
101#endif 101#endif
102 ; 102 ;
103#endif 103#endif
@@ -105,31 +105,31 @@ const char cmp_usage[] =
105#if defined BB_CP_MV 105#if defined BB_CP_MV
106const char cp_usage[] = 106const char cp_usage[] =
107 "cp [OPTION]... SOURCE DEST\n" 107 "cp [OPTION]... SOURCE DEST\n"
108 " or: cp [OPTION]... SOURCE... DIRECTORY\n" 108 " or: cp [OPTION]... SOURCE... DIRECTORY"
109#ifndef BB_FEATURE_TRIVIAL_HELP 109#ifndef BB_FEATURE_TRIVIAL_HELP
110 "\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n" 110 "\n\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n"
111 "\n" 111 "\n"
112 "\t-a\tSame as -dpR\n" 112 "\t-a\tSame as -dpR\n"
113 "\t-d\tPreserves links\n" 113 "\t-d\tPreserves links\n"
114 "\t-p\tPreserves file attributes if possible\n" 114 "\t-p\tPreserves file attributes if possible\n"
115 "\t-f\tforce (implied; ignored) - always set\n" 115 "\t-f\tforce (implied; ignored) - always set\n"
116 "\t-R\tCopies directories recursively\n" 116 "\t-R\tCopies directories recursively"
117#endif 117#endif
118 ; 118 ;
119#endif 119#endif
120 120
121#if defined BB_CUT 121#if defined BB_CUT
122const char cut_usage[] = 122const char cut_usage[] =
123 "cut [OPTION]... [FILE]...\n" 123 "cut [OPTION]... [FILE]..."
124#ifndef BB_FEATURE_TRIVIAL_HELP 124#ifndef BB_FEATURE_TRIVIAL_HELP
125 "\nPrints selected fields from each input FILE to standard output.\n\n" 125 "\n\nPrints selected fields from each input FILE to standard output.\n\n"
126 "Options:\n" 126 "Options:\n"
127 "\t-b LIST\tOutput only bytes from LIST\n" 127 "\t-b LIST\tOutput only bytes from LIST\n"
128 "\t-c LIST\tOutput only characters from LIST\n" 128 "\t-c LIST\tOutput only characters from LIST\n"
129 "\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n" 129 "\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n"
130 "\t-s\tOutput only the lines containing delimiter\n" 130 "\t-s\tOutput only the lines containing delimiter\n"
131 "\t-f N\tPrint only these fields\n" 131 "\t-f N\tPrint only these fields\n"
132 "\t-n\tIgnored\n" 132 "\t-n\tIgnored"
133#endif 133#endif
134 ; 134 ;
135#endif 135#endif
@@ -137,33 +137,33 @@ const char cut_usage[] =
137#if defined BB_DATE 137#if defined BB_DATE
138const char date_usage[] = 138const char date_usage[] =
139 "date [OPTION]... [+FORMAT]\n" 139 "date [OPTION]... [+FORMAT]\n"
140 " or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n" 140 " or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]"
141#ifndef BB_FEATURE_TRIVIAL_HELP 141#ifndef BB_FEATURE_TRIVIAL_HELP
142 "\nDisplays the current time in the given FORMAT, or sets the system date.\n" 142 "\n\nDisplays the current time in the given FORMAT, or sets the system date.\n"
143 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n" 143 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n"
144 "\t-d STRING\tdisplay time described by STRING, not `now'\n" 144 "\t-d STRING\tdisplay time described by STRING, not `now'\n"
145 "\t-s\t\tSets time described by STRING\n" 145 "\t-s\t\tSets time described by STRING\n"
146 "\t-u\t\tPrints or sets Coordinated Universal Time\n" 146 "\t-u\t\tPrints or sets Coordinated Universal Time"
147#endif 147#endif
148 ; 148 ;
149#endif 149#endif
150 150
151#if defined BB_DC 151#if defined BB_DC
152const char dc_usage[] = 152const char dc_usage[] =
153 "dc expression ...\n" 153 "dc expression ..."
154#ifndef BB_FEATURE_TRIVIAL_HELP 154#ifndef BB_FEATURE_TRIVIAL_HELP
155 "\nThis is a Tiny RPN calculator that understands the\n" 155 "\n\nThis is a Tiny RPN calculator that understands the\n"
156 "following operations: +, -, /, *, and, or, not, eor.\n" 156 "following operations: +, -, /, *, and, or, not, eor.\n"
157 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16\n" 157 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
158#endif 158#endif
159 ; 159 ;
160#endif 160#endif
161 161
162#if defined BB_DD 162#if defined BB_DD
163const char dd_usage[] = 163const char dd_usage[] =
164 "dd [if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]\n" 164 "dd [if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]"
165#ifndef BB_FEATURE_TRIVIAL_HELP 165#ifndef BB_FEATURE_TRIVIAL_HELP
166 "\nCopy a file, converting and formatting according to options\n\n" 166 "\n\nCopy a file, converting and formatting according to options\n\n"
167 "\tif=FILE\tread from FILE instead of stdin\n" 167 "\tif=FILE\tread from FILE instead of stdin\n"
168 "\tof=FILE\twrite to FILE instead of stdout\n" 168 "\tof=FILE\twrite to FILE instead of stdout\n"
169 "\tbs=N\tread and write N bytes at a time\n" 169 "\tbs=N\tread and write N bytes at a time\n"
@@ -174,56 +174,56 @@ const char dd_usage[] =
174 "\tconv=sync\tpad blocks with zeros\n" 174 "\tconv=sync\tpad blocks with zeros\n"
175 "\n" 175 "\n"
176 "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n" 176 "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n"
177 "MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824).\n" 177 "MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)."
178#endif 178#endif
179 ; 179 ;
180#endif 180#endif
181 181
182#if defined BB_DEALLOCVT 182#if defined BB_DEALLOCVT
183const char deallocvt_usage[] = 183const char deallocvt_usage[] =
184 "deallocvt N\n" 184 "deallocvt N"
185#ifndef BB_FEATURE_TRIVIAL_HELP 185#ifndef BB_FEATURE_TRIVIAL_HELP
186 "\nDeallocate unused virtual terminal /dev/ttyN\n" 186 "\n\nDeallocate unused virtual terminal /dev/ttyN"
187#endif 187#endif
188 ; 188 ;
189#endif 189#endif
190 190
191#if defined BB_DF 191#if defined BB_DF
192const char df_usage[] = 192const char df_usage[] =
193 "df [filesystem ...]\n" 193 "df [filesystem ...]"
194#ifndef BB_FEATURE_TRIVIAL_HELP 194#ifndef BB_FEATURE_TRIVIAL_HELP
195 "\nPrint the filesystem space used and space available.\n" 195 "\n\nPrint the filesystem space used and space available."
196#endif 196#endif
197 ; 197 ;
198#endif 198#endif
199 199
200#if defined BB_DIRNAME 200#if defined BB_DIRNAME
201const char dirname_usage[] = 201const char dirname_usage[] =
202 "dirname [FILENAME ...]\n" 202 "dirname [FILENAME ...]"
203#ifndef BB_FEATURE_TRIVIAL_HELP 203#ifndef BB_FEATURE_TRIVIAL_HELP
204 "\nStrips non-directory suffix from FILENAME\n" 204 "\n\nStrips non-directory suffix from FILENAME"
205#endif 205#endif
206 ; 206 ;
207#endif 207#endif
208 208
209#if defined BB_DMESG 209#if defined BB_DMESG
210const char dmesg_usage[] = 210const char dmesg_usage[] =
211 "dmesg [-c] [-n LEVEL] [-s SIZE]\n" 211 "dmesg [-c] [-n LEVEL] [-s SIZE]"
212#ifndef BB_FEATURE_TRIVIAL_HELP 212#ifndef BB_FEATURE_TRIVIAL_HELP
213 "\nPrints or controls the kernel ring buffer\n\n" 213 "\n\nPrints or controls the kernel ring buffer\n\n"
214 "Options:\n" 214 "Options:\n"
215 "\t-c\t\tClears the ring buffer's contents after printing\n" 215 "\t-c\t\tClears the ring buffer's contents after printing\n"
216 "\t-n LEVEL\tSets console logging level\n" 216 "\t-n LEVEL\tSets console logging level\n"
217 "\t-s SIZE\t\tUse a buffer of size SIZE\n" 217 "\t-s SIZE\t\tUse a buffer of size SIZE"
218#endif 218#endif
219 ; 219 ;
220#endif 220#endif
221 221
222#if defined BB_DOS2UNIX 222#if defined BB_DOS2UNIX
223const char dos2unix_usage[] = 223const char dos2unix_usage[] =
224 "dos2unix < dosfile > unixfile\n" 224 "dos2unix < dosfile > unixfile"
225#ifndef BB_FEATURE_TRIVIAL_HELP 225#ifndef BB_FEATURE_TRIVIAL_HELP
226 "\nConverts a text file from dos format to unix format.\n" 226 "\n\nConverts a text file from dos format to unix format."
227#endif 227#endif
228 ; 228 ;
229#endif 229#endif
@@ -232,93 +232,93 @@ const char dos2unix_usage[] =
232const char dpkg_deb_usage[] = 232const char dpkg_deb_usage[] =
233 "dpkg-deb [-cexX] file directory" 233 "dpkg-deb [-cexX] file directory"
234#ifndef BB_FEATURE_TRIVIAL_HELP 234#ifndef BB_FEATURE_TRIVIAL_HELP
235 "Perform actions on debian packages (.debs)\n" 235 "\n\nPerform actions on debian packages (.debs)\n\n"
236 "Options:\n" 236 "Options:\n"
237 "\t-c\tList contents of filesystem tree\n" 237 "\t-c\tList contents of filesystem tree\n"
238 "\t-e\tExtract control files to directory\n" 238 "\t-e\tExtract control files to directory\n"
239 "\t-x\tExctract packages filesystem tree to directory\n" 239 "\t-x\tExctract packages filesystem tree to directory\n"
240 "\t-X\tVerbose extract\n" 240 "\t-X\tVerbose extract"
241#endif 241#endif
242 ; 242 ;
243#endif 243#endif
244 244
245#if defined BB_DU 245#if defined BB_DU
246const char du_usage[] = 246const char du_usage[] =
247 "du [OPTION]... [FILE]...\n" 247 "du [OPTION]... [FILE]..."
248#ifndef BB_FEATURE_TRIVIAL_HELP 248#ifndef BB_FEATURE_TRIVIAL_HELP
249 "\nSummarizes disk space used for each FILE and/or directory.\n" 249 "\n\nSummarizes disk space used for each FILE and/or directory.\n"
250 "Disk space is printed in units of 1024 bytes.\n\n" 250 "Disk space is printed in units of 1024 bytes.\n\n"
251 "Options:\n" 251 "Options:\n"
252 "\t-l\tcount sizes many times if hard linked\n" 252 "\t-l\tcount sizes many times if hard linked\n"
253 "\t-s\tdisplay only a total for each argument\n" 253 "\t-s\tdisplay only a total for each argument"
254#endif 254#endif
255 ; 255 ;
256#endif 256#endif
257 257
258#if defined BB_DUMPKMAP 258#if defined BB_DUMPKMAP
259const char dumpkmap_usage[] = 259const char dumpkmap_usage[] =
260 "dumpkmap > keymap\n" 260 "dumpkmap > keymap"
261#ifndef BB_FEATURE_TRIVIAL_HELP 261#ifndef BB_FEATURE_TRIVIAL_HELP
262 "\nPrints out a binary keyboard translation table to standard input.\n" 262 "\n\nPrints out a binary keyboard translation table to standard input."
263#endif 263#endif
264 ; 264 ;
265#endif 265#endif
266 266
267#if defined BB_DUTMP 267#if defined BB_DUTMP
268const char dutmp_usage[] = 268const char dutmp_usage[] =
269 "dutmp [FILE]\n" 269 "dutmp [FILE]"
270#ifndef BB_FEATURE_TRIVIAL_HELP 270#ifndef BB_FEATURE_TRIVIAL_HELP
271 "\nDump utmp file format (pipe delimited) from FILE\n" 271 "\n\nDump utmp file format (pipe delimited) from FILE\n"
272 "or stdin to stdout. (i.e. 'dutmp /var/run/utmp')\n" 272 "or stdin to stdout. (i.e. 'dutmp /var/run/utmp')"
273#endif 273#endif
274 ; 274 ;
275#endif 275#endif
276 276
277#if defined BB_ECHO 277#if defined BB_ECHO
278const char echo_usage[] = 278const char echo_usage[] =
279 "echo [-neE] [ARG ...]\n" 279 "echo [-neE] [ARG ...]"
280#ifndef BB_FEATURE_TRIVIAL_HELP 280#ifndef BB_FEATURE_TRIVIAL_HELP
281 "\nPrints the specified ARGs to stdout\n\n" 281 "\n\nPrints the specified ARGs to stdout\n\n"
282 "Options:\n" 282 "Options:\n"
283 "\t-n\tsuppress trailing newline\n" 283 "\t-n\tsuppress trailing newline\n"
284 "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n" 284 "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
285 "\t-E\tdisable interpretation of backslash-escaped characters\n" 285 "\t-E\tdisable interpretation of backslash-escaped characters"
286#endif 286#endif
287 ; 287 ;
288#endif 288#endif
289 289
290#if defined BB_EXPR 290#if defined BB_EXPR
291const char expr_usage[] = 291const char expr_usage[] =
292 "expr EXPRESSION\n" 292 "expr EXPRESSION"
293#ifndef BB_FEATURE_TRIVIAL_HELP 293#ifndef BB_FEATURE_TRIVIAL_HELP
294 "\nPrints the value of EXPRESSION to standard output.\n\n" 294"\n\nPrints the value of EXPRESSION to standard output.\n\n"
295 "EXPRESSION may be:\n" 295"EXPRESSION may be:\n"
296 "ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2\n" 296"ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2\n"
297 "ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0\n" 297"ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0\n"
298 "ARG1 < ARG2 ARG1 is less than ARG2\n" 298"ARG1 < ARG2 ARG1 is less than ARG2\n"
299 "ARG1 <= ARG2 ARG1 is less than or equal to ARG2\n" 299"ARG1 <= ARG2 ARG1 is less than or equal to ARG2\n"
300 "ARG1 = ARG2 ARG1 is equal to ARG2\n" 300"ARG1 = ARG2 ARG1 is equal to ARG2\n"
301 "ARG1 != ARG2 ARG1 is unequal to ARG2\n" 301"ARG1 != ARG2 ARG1 is unequal to ARG2\n"
302 "ARG1 >= ARG2 ARG1 is greater than or equal to ARG2\n" 302"ARG1 >= ARG2 ARG1 is greater than or equal to ARG2\n"
303 "ARG1 > ARG2 ARG1 is greater than ARG2\n" 303"ARG1 > ARG2 ARG1 is greater than ARG2\n"
304 "ARG1 + ARG2 arithmetic sum of ARG1 and ARG2\n" 304"ARG1 + ARG2 arithmetic sum of ARG1 and ARG2\n"
305 "ARG1 - ARG2 arithmetic difference of ARG1 and ARG2\n" 305"ARG1 - ARG2 arithmetic difference of ARG1 and ARG2\n"
306 "ARG1 * ARG2 arithmetic product of ARG1 and ARG2\n" 306"ARG1 * ARG2 arithmetic product of ARG1 and ARG2\n"
307 "ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2\n" 307"ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2\n"
308 "ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2\n" 308"ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2\n"
309 "STRING : REGEXP anchored pattern match of REGEXP in STRING\n" 309"STRING : REGEXP anchored pattern match of REGEXP in STRING\n"
310 "match STRING REGEXP same as STRING : REGEXP\n" 310"match STRING REGEXP same as STRING : REGEXP\n"
311 "substr STRING POS LENGTH substring of STRING, POS counted from 1\n" 311"substr STRING POS LENGTH substring of STRING, POS counted from 1\n"
312 "index STRING CHARS index in STRING where any CHARS is found, or 0\n" 312"index STRING CHARS index in STRING where any CHARS is found, or 0\n"
313 "length STRING length of STRING\n" 313"length STRING length of STRING\n"
314 "quote TOKEN interpret TOKEN as a string, even if it is a \n" 314"quote TOKEN interpret TOKEN as a string, even if it is a \n"
315 " keyword like `match' or an operator like `/'\n" 315" keyword like `match' or an operator like `/'\n"
316 "( EXPRESSION ) value of EXPRESSION\n\n" 316"( EXPRESSION ) value of EXPRESSION\n\n"
317 "Beware that many operators need to be escaped or quoted for shells.\n" 317"Beware that many operators need to be escaped or quoted for shells.\n"
318 "Comparisons are arithmetic if both ARGs are numbers, else\n" 318"Comparisons are arithmetic if both ARGs are numbers, else\n"
319 "lexicographical. Pattern matches return the string matched between \n" 319"lexicographical. Pattern matches return the string matched between \n"
320 "\\( and \\) or null; if \\( and \\) are not used, they return the number \n" 320"\\( and \\) or null; if \\( and \\) are not used, they return the number \n"
321 "of characters matched or 0.\n" 321"of characters matched or 0."
322 322
323#endif 323#endif
324 ; 324 ;
@@ -327,59 +327,59 @@ const char expr_usage[] =
327 327
328#if defined BB_TRUE_FALSE 328#if defined BB_TRUE_FALSE
329const char false_usage[] = 329const char false_usage[] =
330 "false\n" 330 "false"
331#ifndef BB_FEATURE_TRIVIAL_HELP 331#ifndef BB_FEATURE_TRIVIAL_HELP
332 "\nReturn an exit code of FALSE (1).\n" 332 "\n\nReturn an exit code of FALSE (1)."
333#endif 333#endif
334 ; 334 ;
335#endif 335#endif
336 336
337#if defined BB_FDFLUSH 337#if defined BB_FDFLUSH
338const char fdflush_usage[] = 338const char fdflush_usage[] =
339 "fdflush DEVICE\n" 339 "fdflush DEVICE"
340#ifndef BB_FEATURE_TRIVIAL_HELP 340#ifndef BB_FEATURE_TRIVIAL_HELP
341 "\nForces floppy disk drive to detect disk change\n" 341 "\n\nForces floppy disk drive to detect disk change"
342#endif 342#endif
343 ; 343 ;
344#endif 344#endif
345 345
346#if defined BB_FIND 346#if defined BB_FIND
347const char find_usage[] = 347const char find_usage[] =
348 "find [PATH...] [EXPRESSION]\n" 348 "find [PATH...] [EXPRESSION]"
349#ifndef BB_FEATURE_TRIVIAL_HELP 349#ifndef BB_FEATURE_TRIVIAL_HELP
350 "\nSearch for files in a directory hierarchy. The default PATH is\n" 350 "\n\nSearch for files in a directory hierarchy. The default PATH is\n"
351 "the current directory; default EXPRESSION is '-print'\n\n" 351 "the current directory; default EXPRESSION is '-print'\n\n"
352 "\nEXPRESSION may consist of:\n" 352 "\nEXPRESSION may consist of:\n"
353 "\t-follow\t\tDereference symbolic links.\n" 353 "\t-follow\t\tDereference symbolic links.\n"
354 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n" 354 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
355 "\t-print\t\tprint the full file name followed by a newline to stdout.\n" 355 "\t-print\t\tprint the full file name followed by a newline to stdout."
356#endif 356#endif
357 ; 357 ;
358#endif 358#endif
359 359
360#if defined BB_FREE 360#if defined BB_FREE
361const char free_usage[] = 361const char free_usage[] =
362 "free\n" 362 "free"
363#ifndef BB_FEATURE_TRIVIAL_HELP 363#ifndef BB_FEATURE_TRIVIAL_HELP
364 "\nDisplays the amount of free and used system memory\n" 364 "\n\nDisplays the amount of free and used system memory"
365#endif 365#endif
366 ; 366 ;
367#endif 367#endif
368 368
369#if defined BB_FREERAMDISK 369#if defined BB_FREERAMDISK
370const char freeramdisk_usage[] = 370const char freeramdisk_usage[] =
371 "freeramdisk DEVICE\n" 371 "freeramdisk DEVICE"
372#ifndef BB_FEATURE_TRIVIAL_HELP 372#ifndef BB_FEATURE_TRIVIAL_HELP
373 "\nFrees all memory used by the specified ramdisk.\n" 373 "\n\nFrees all memory used by the specified ramdisk."
374#endif 374#endif
375 ; 375 ;
376#endif 376#endif
377 377
378#if defined BB_FSCK_MINIX 378#if defined BB_FSCK_MINIX
379const char fsck_minix_usage[] = 379const char fsck_minix_usage[] =
380 "Usage: fsck.minix [-larvsmf] /dev/name\n" 380 "Usage: fsck.minix [-larvsmf] /dev/name"
381#ifndef BB_FEATURE_TRIVIAL_HELP 381#ifndef BB_FEATURE_TRIVIAL_HELP
382 "\nPerforms a consistency check for MINIX filesystems.\n\n" 382 "\n\nPerforms a consistency check for MINIX filesystems.\n\n"
383 "Options:\n" 383 "Options:\n"
384 "\t-l\tLists all filenames\n" 384 "\t-l\tLists all filenames\n"
385 "\t-r\tPerform interactive repairs\n" 385 "\t-r\tPerform interactive repairs\n"
@@ -387,16 +387,16 @@ const char fsck_minix_usage[] =
387 "\t-v\tverbose\n" 387 "\t-v\tverbose\n"
388 "\t-s\tOutputs super-block information\n" 388 "\t-s\tOutputs super-block information\n"
389 "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n" 389 "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"
390 "\t-f\tForce file system check.\n\n" 390 "\t-f\tForce file system check."
391#endif 391#endif
392 ; 392 ;
393#endif 393#endif
394 394
395#if defined BB_GETOPT 395#if defined BB_GETOPT
396const char getopt_usage[] = 396const char getopt_usage[] =
397"getopt [OPTIONS]...\n" 397"getopt [OPTIONS]..."
398#ifndef BB_FEATURE_TRIVIAL_HELP 398#ifndef BB_FEATURE_TRIVIAL_HELP
399"Parse command options\n" 399"\nParse command options\n"
400" -a, --alternative Allow long options starting with single -\n" 400" -a, --alternative Allow long options starting with single -\n"
401" -l, --longoptions=longopts Long options to be recognized\n" 401" -l, --longoptions=longopts Long options to be recognized\n"
402" -n, --name=progname The name under which errors are reported\n" 402" -n, --name=progname The name under which errors are reported\n"
@@ -405,16 +405,16 @@ const char getopt_usage[] =
405" -Q, --quiet-output No normal output\n" 405" -Q, --quiet-output No normal output\n"
406" -s, --shell=shell Set shell quoting conventions\n" 406" -s, --shell=shell Set shell quoting conventions\n"
407" -T, --test Test for getopt(1) version\n" 407" -T, --test Test for getopt(1) version\n"
408" -u, --unqote Do not quote the output\n" 408" -u, --unqote Do not quote the output"
409#endif 409#endif
410; 410;
411#endif 411#endif
412 412
413#if defined BB_GREP 413#if defined BB_GREP
414const char grep_usage[] = 414const char grep_usage[] =
415 "grep [-ihHnqvs] pattern [files...]\n" 415 "grep [-ihHnqvs] pattern [files...]"
416#ifndef BB_FEATURE_TRIVIAL_HELP 416#ifndef BB_FEATURE_TRIVIAL_HELP
417 "\nSearch for PATTERN in each FILE or standard input.\n\n" 417 "\n\nSearch for PATTERN in each FILE or standard input.\n\n"
418 "Options:\n" 418 "Options:\n"
419 "\t-H\tprefix output lines with filename where match was found\n" 419 "\t-H\tprefix output lines with filename where match was found\n"
420 "\t-h\tsuppress the prefixing filename on output\n" 420 "\t-h\tsuppress the prefixing filename on output\n"
@@ -422,200 +422,198 @@ const char grep_usage[] =
422 "\t-n\tprint line number with output lines\n" 422 "\t-n\tprint line number with output lines\n"
423 "\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" 423 "\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n"
424 "\t-v\tselect non-matching lines\n" 424 "\t-v\tselect non-matching lines\n"
425 "\t-s\tsuppress file open/read error messages\n\n" 425 "\t-s\tsuppress file open/read error messages"
426#endif 426#endif
427 ; 427 ;
428#endif 428#endif
429 429
430#if defined BB_GUNZIP 430#if defined BB_GUNZIP
431const char gunzip_usage[] = 431const char gunzip_usage[] =
432 "gunzip [OPTION]... FILE\n" 432 "gunzip [OPTION]... FILE"
433#ifndef BB_FEATURE_TRIVIAL_HELP 433#ifndef BB_FEATURE_TRIVIAL_HELP
434 "\nUncompress FILE (or standard input if FILE is '-').\n\n" 434 "\n\nUncompress FILE (or standard input if FILE is '-').\n\n"
435 "Options:\n" 435 "Options:\n"
436 "\t-c\tWrite output to standard output\n" 436 "\t-c\tWrite output to standard output\n"
437 "\t-t\tTest compressed file integrity\n" 437 "\t-t\tTest compressed file integrity"
438#endif 438#endif
439 ; 439 ;
440#endif 440#endif
441 441
442#if defined BB_GZIP 442#if defined BB_GZIP
443const char gzip_usage[] = 443const char gzip_usage[] =
444 "gzip [OPTION]... FILE\n" 444 "gzip [OPTION]... FILE"
445#ifndef BB_FEATURE_TRIVIAL_HELP 445#ifndef BB_FEATURE_TRIVIAL_HELP
446 "\nCompress FILE with maximum compression.\n" 446 "\n\nCompress FILE with maximum compression.\n"
447 "When FILE is '-', reads standard input. Implies -c.\n\n" 447 "When FILE is '-', reads standard input. Implies -c.\n\n"
448 "Options:\n" 448 "Options:\n"
449 "\t-c\tWrite output to standard output instead of FILE.gz\n" 449 "\t-c\tWrite output to standard output instead of FILE.gz\n"
450 "\t-d\tdecompress\n" 450 "\t-d\tdecompress"
451#endif 451#endif
452 ; 452 ;
453#endif 453#endif
454 454
455#if defined BB_HALT 455#if defined BB_HALT
456const char halt_usage[] = 456const char halt_usage[] =
457 "halt\n" 457 "halt"
458#ifndef BB_FEATURE_TRIVIAL_HELP 458#ifndef BB_FEATURE_TRIVIAL_HELP
459 "\nHalt the system.\n" 459 "\n\nHalt the system."
460#endif 460#endif
461 ; 461 ;
462#endif 462#endif
463 463
464#if defined BB_HEAD 464#if defined BB_HEAD
465const char head_usage[] = 465const char head_usage[] =
466 "head [OPTION] [FILE]...\n" 466 "head [OPTION] [FILE]..."
467#ifndef BB_FEATURE_TRIVIAL_HELP 467#ifndef BB_FEATURE_TRIVIAL_HELP
468 "\nPrint first 10 lines of each FILE to standard output.\n" 468 "\n\nPrint first 10 lines of each FILE to standard output.\n"
469 "With more than one FILE, precede each with a header giving the\n" 469 "With more than one FILE, precede each with a header giving the\n"
470 "file name. With no FILE, or when FILE is -, read standard input.\n\n" 470 "file name. With no FILE, or when FILE is -, read standard input.\n\n"
471 471
472 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10\n" 472 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10"
473#endif 473#endif
474 ; 474 ;
475#endif 475#endif
476 476
477#if defined BB_HOSTID 477#if defined BB_HOSTID
478const char hostid_usage[] = 478const char hostid_usage[] =
479 "hostid\n" 479 "hostid"
480#ifndef BB_FEATURE_TRIVIAL_HELP 480#ifndef BB_FEATURE_TRIVIAL_HELP
481 "\nPrint out a unique 32-bit identifier for the machine.\n" 481 "\n\nPrint out a unique 32-bit identifier for the machine."
482#endif 482#endif
483 ; 483 ;
484#endif 484#endif
485 485
486#if defined BB_HOSTNAME 486#if defined BB_HOSTNAME
487const char hostname_usage[] = 487const char hostname_usage[] =
488 "hostname [OPTION] {hostname | -F file}\n" 488 "hostname [OPTION] {hostname | -F file}"
489#ifndef BB_FEATURE_TRIVIAL_HELP 489#ifndef BB_FEATURE_TRIVIAL_HELP
490 "\nGet or set the hostname or DNS domain name. If a hostname is given\n" 490 "\n\nGet or set the hostname or DNS domain name. If a hostname is given\n"
491 "(or a file with the -F parameter), the host name will be set.\n\n" 491 "(or a file with the -F parameter), the host name will be set.\n\n"
492
492 "Options:\n" 493 "Options:\n"
493 "\t-s\t\tShort\n" 494 "\t-s\t\tShort\n"
494
495 "\t-i\t\tAddresses for the hostname\n" 495 "\t-i\t\tAddresses for the hostname\n"
496 "\t-d\t\tDNS domain name\n" 496 "\t-d\t\tDNS domain name\n"
497 "\t-F, --file FILE\tUse the contents of FILE to specify the hostname\n" 497 "\t-F, --file FILE\tUse the contents of FILE to specify the hostname"
498#endif 498#endif
499 ; 499 ;
500#endif 500#endif
501 501
502#if defined BB_ID 502#if defined BB_ID
503const char id_usage[] = 503const char id_usage[] =
504 "id [OPTIONS]... [USERNAME]\n" 504 "id [OPTIONS]... [USERNAME]"
505#ifndef BB_FEATURE_TRIVIAL_HELP 505#ifndef BB_FEATURE_TRIVIAL_HELP
506 "\nPrint information for USERNAME or the current user\n\n" 506 "\n\nPrint information for USERNAME or the current user\n\n"
507 "Options:\n" 507 "Options:\n"
508 "\t-g\tprints only the group ID\n" 508 "\t-g\tprints only the group ID\n"
509 "\t-u\tprints only the user ID\n" 509 "\t-u\tprints only the user ID\n"
510 "\t-r\tprints the real user ID instead of the effective ID (with -ug)\n\n" 510 "\t-r\tprints the real user ID instead of the effective ID (with -ug)"
511#endif 511#endif
512 ; 512 ;
513#endif 513#endif
514 514
515#if defined BB_INSMOD 515#if defined BB_INSMOD
516const char insmod_usage[] = 516const char insmod_usage[] =
517 "insmod [OPTION]... MODULE [symbol=value]...\n" 517 "insmod [OPTION]... MODULE [symbol=value]..."
518#ifndef BB_FEATURE_TRIVIAL_HELP 518#ifndef BB_FEATURE_TRIVIAL_HELP
519 "\nLoads the specified kernel modules into the kernel.\n\n" 519 "\n\nLoads the specified kernel modules into the kernel.\n\n"
520 "Options:\n" 520 "Options:\n"
521 "\t-f\tForce module to load into the wrong kernel version.\n" 521 "\t-f\tForce module to load into the wrong kernel version.\n"
522 "\t-k\tMake module autoclean-able.\n" 522 "\t-k\tMake module autoclean-able.\n"
523 "\t-v\tverbose output\n" "\t-x\tdo not export externs\n" 523 "\t-v\tverbose output\n" "\t-x\tdo not export externs"
524#endif 524#endif
525 ; 525 ;
526#endif 526#endif
527 527
528#if defined BB_KILL 528#if defined BB_KILL
529const char kill_usage[] = 529const char kill_usage[] =
530 "kill [-signal] process-id [process-id ...]\n" 530 "kill [-signal] process-id [process-id ...]"
531#ifndef BB_FEATURE_TRIVIAL_HELP 531#ifndef BB_FEATURE_TRIVIAL_HELP
532 "\nSend a signal (default is SIGTERM) to the specified process(es).\n\n" 532 "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
533 "Options:\n" "\t-l\tList all signal names and numbers.\n\n" 533 "Options:\n" "\t-l\tList all signal names and numbers."
534#endif 534#endif
535 ; 535 ;
536#endif 536#endif
537 537
538#if defined BB_KILLALL 538#if defined BB_KILLALL
539const char killall_usage[] = 539const char killall_usage[] =
540 "killall [-signal] process-name [process-name ...]\n" 540 "killall [-signal] process-name [process-name ...]"
541#ifndef BB_FEATURE_TRIVIAL_HELP 541#ifndef BB_FEATURE_TRIVIAL_HELP
542 "\nSend a signal (default is SIGTERM) to the specified process(es).\n\n" 542 "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
543 "Options:\n" "\t-l\tList all signal names and numbers.\n\n" 543 "Options:\n" "\t-l\tList all signal names and numbers."
544#endif 544#endif
545 ; 545 ;
546#endif 546#endif
547 547
548#if defined BB_LENGTH 548#if defined BB_LENGTH
549const char length_usage[] = 549const char length_usage[] =
550 "length STRING\n" 550 "length STRING"
551#ifndef BB_FEATURE_TRIVIAL_HELP 551#ifndef BB_FEATURE_TRIVIAL_HELP
552 "\nPrints out the length of the specified STRING.\n" 552 "\n\nPrints out the length of the specified STRING."
553#endif 553#endif
554 ; 554 ;
555#endif 555#endif
556 556
557#if defined BB_LN 557#if defined BB_LN
558const char ln_usage[] = 558const char ln_usage[] =
559 "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n" 559 "ln [OPTION] TARGET... LINK_NAME|DIRECTORY"
560#ifndef BB_FEATURE_TRIVIAL_HELP 560#ifndef BB_FEATURE_TRIVIAL_HELP
561 "\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n" 561 "\n\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n"
562 "\nYou may use '--' to indicate that all following arguments are non-options.\n\n" 562 "\nYou may use '--' to indicate that all following arguments are non-options.\n\n"
563 "Options:\n" 563 "Options:\n"
564 "\t-s\tmake symbolic links instead of hard links\n" 564 "\t-s\tmake symbolic links instead of hard links\n"
565
566 "\t-f\tremove existing destination files\n" 565 "\t-f\tremove existing destination files\n"
567 "\t-n\tno dereference symlinks - treat like normal file\n" 566 "\t-n\tno dereference symlinks - treat like normal file"
568#endif 567#endif
569 ; 568 ;
570#endif 569#endif
571 570
572#if defined BB_LOADACM 571#if defined BB_LOADACM
573const char loadacm_usage[] = 572const char loadacm_usage[] =
574 "loadacm < mapfile\n" 573 "loadacm < mapfile"
575#ifndef BB_FEATURE_TRIVIAL_HELP 574#ifndef BB_FEATURE_TRIVIAL_HELP
576 "\nLoads an acm from standard input.\n" 575 "\n\nLoads an acm from standard input."
577#endif 576#endif
578 ; 577 ;
579#endif 578#endif
580 579
581#if defined BB_LOADFONT 580#if defined BB_LOADFONT
582const char loadfont_usage[] = 581const char loadfont_usage[] =
583 "loadfont < font\n" 582 "loadfont < font"
584#ifndef BB_FEATURE_TRIVIAL_HELP 583#ifndef BB_FEATURE_TRIVIAL_HELP
585 "Loads a console font from standard input.\n" 584 "\n\nLoads a console font from standard input."
586#endif 585#endif
587 ; 586 ;
588#endif 587#endif
589 588
590#if defined BB_LOADKMAP 589#if defined BB_LOADKMAP
591const char loadkmap_usage[] = 590const char loadkmap_usage[] =
592 "loadkmap < keymap\n" 591 "loadkmap < keymap"
593#ifndef BB_FEATURE_TRIVIAL_HELP 592#ifndef BB_FEATURE_TRIVIAL_HELP
594 "\nLoads a binary keyboard translation table from standard input.\n" 593 "\n\nLoads a binary keyboard translation table from standard input."
595#endif 594#endif
596 ; 595 ;
597#endif 596#endif
598 597
599#if defined BB_LOGGER 598#if defined BB_LOGGER
600const char logger_usage[] = 599const char logger_usage[] =
601 "logger [OPTION]... [MESSAGE]\n" 600 "logger [OPTION]... [MESSAGE]"
602#ifndef BB_FEATURE_TRIVIAL_HELP 601#ifndef BB_FEATURE_TRIVIAL_HELP
603 "\nWrite MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n\n" 602 "\n\nWrite MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n\n"
604 "Options:\n" 603 "Options:\n"
605 "\t-s\tLog to stderr as well as the system log.\n" 604 "\t-s\tLog to stderr as well as the system log.\n"
606 "\t-t\tLog using the specified tag (defaults to user name).\n" 605 "\t-t\tLog using the specified tag (defaults to user name).\n"
607
608 "\t-p\tEnter the message with the specified priority.\n" 606 "\t-p\tEnter the message with the specified priority.\n"
609 "\t\tThis may be numerical or a ``facility.level'' pair.\n" 607 "\t\tThis may be numerical or a ``facility.level'' pair."
610#endif 608#endif
611 ; 609 ;
612#endif 610#endif
613 611
614#if defined BB_LOGNAME 612#if defined BB_LOGNAME
615const char logname_usage[] = 613const char logname_usage[] =
616 "logname\n" 614 "logname"
617#ifndef BB_FEATURE_TRIVIAL_HELP 615#ifndef BB_FEATURE_TRIVIAL_HELP
618 "\nPrint the name of the current user.\n" 616 "\n\nPrint the name of the current user."
619#endif 617#endif
620 ; 618 ;
621#endif 619#endif
@@ -663,9 +661,9 @@ const char ls_usage[] =
663#ifdef BB_FEATURE_LS_SORTFILES 661#ifdef BB_FEATURE_LS_SORTFILES
664 "X" 662 "X"
665#endif 663#endif
666 "] [filenames...]\n" 664 "] [filenames...]"
667#ifndef BB_FEATURE_TRIVIAL_HELP 665#ifndef BB_FEATURE_TRIVIAL_HELP
668 "\nList directory contents\n\n" 666 "\n\nList directory contents\n\n"
669 "Options:\n" 667 "Options:\n"
670 "\t-1\tlist files in a single column\n" 668 "\t-1\tlist files in a single column\n"
671 "\t-A\tdo not list implied . and ..\n" 669 "\t-A\tdo not list implied . and ..\n"
@@ -689,7 +687,7 @@ const char ls_usage[] =
689 "\t-p\tappend indicator (one of /=@|) to entries\n" 687 "\t-p\tappend indicator (one of /=@|) to entries\n"
690#endif 688#endif
691#ifdef BB_FEATURE_LS_FOLLOWLINKS 689#ifdef BB_FEATURE_LS_FOLLOWLINKS
692 "\t-L\tlist entries pointed to by symbolic links\n" 690 "\t-L\tlist entries pointed to by symbolic links\n"
693#endif 691#endif
694#ifdef BB_FEATURE_LS_RECURSIVE 692#ifdef BB_FEATURE_LS_RECURSIVE
695 "\t-R\tlist subdirectories recursively\n" 693 "\t-R\tlist subdirectories recursively\n"
@@ -724,18 +722,18 @@ const char ls_usage[] =
724 722
725#if defined BB_LSMOD 723#if defined BB_LSMOD
726const char lsmod_usage[] = 724const char lsmod_usage[] =
727 "lsmod\n" 725 "lsmod"
728#ifndef BB_FEATURE_TRIVIAL_HELP 726#ifndef BB_FEATURE_TRIVIAL_HELP
729 "\nList the currently loaded kernel modules.\n" 727 "\n\nList the currently loaded kernel modules."
730#endif 728#endif
731 ; 729 ;
732#endif 730#endif
733 731
734#if defined BB_MAKEDEVS 732#if defined BB_MAKEDEVS
735const char makedevs_usage[] = 733const char makedevs_usage[] =
736 "makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]\n" 734 "makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]"
737#ifndef BB_FEATURE_TRIVIAL_HELP 735#ifndef BB_FEATURE_TRIVIAL_HELP
738 "\nCreates a range of block or character special files\n\n" 736 "\n\nCreates a range of block or character special files\n\n"
739 "TYPEs include:\n" 737 "TYPEs include:\n"
740 "\tb:\tMake a block (buffered) device.\n" 738 "\tb:\tMake a block (buffered) device.\n"
741 "\tc or u:\tMake a character (un-buffered) device.\n" 739 "\tc or u:\tMake a character (un-buffered) device.\n"
@@ -745,7 +743,7 @@ const char makedevs_usage[] =
745 "If 's' is the last argument, the base device is created as well.\n\n" 743 "If 's' is the last argument, the base device is created as well.\n\n"
746 "For example:\n" 744 "For example:\n"
747 "\tmakedevs /dev/ttyS c 4 66 2 63 -> ttyS2-ttyS63\n" 745 "\tmakedevs /dev/ttyS c 4 66 2 63 -> ttyS2-ttyS63\n"
748 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8\n" 746 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8"
749#endif 747#endif
750 ; 748 ;
751#endif 749#endif
@@ -753,9 +751,9 @@ const char makedevs_usage[] =
753#if defined BB_MD5SUM 751#if defined BB_MD5SUM
754const char md5sum_usage[] = 752const char md5sum_usage[] =
755 "md5sum [OPTION] [FILE]...\n" 753 "md5sum [OPTION] [FILE]...\n"
756 "or: md5sum [OPTION] -c [FILE]\n" 754 "or: md5sum [OPTION] -c [FILE]"
757#ifndef BB_FEATURE_TRIVIAL_HELP 755#ifndef BB_FEATURE_TRIVIAL_HELP
758 "\nPrint or check MD5 checksums.\n\n" 756 "\n\nPrint or check MD5 checksums.\n\n"
759 "Options:\n" 757 "Options:\n"
760 "With no FILE, or when FILE is -, read standard input.\n\n" 758 "With no FILE, or when FILE is -, read standard input.\n\n"
761 "\t-b\tread files in binary mode\n" 759 "\t-b\tread files in binary mode\n"
@@ -764,103 +762,102 @@ const char md5sum_usage[] =
764 "\t-g\tread a string\n" 762 "\t-g\tread a string\n"
765 "\nThe following two options are useful only when verifying checksums:\n" 763 "\nThe following two options are useful only when verifying checksums:\n"
766 "\t-s,\tdon't output anything, status code shows success\n" 764 "\t-s,\tdon't output anything, status code shows success\n"
767 "\t-w,\twarn about improperly formated MD5 checksum lines\n" 765 "\t-w,\twarn about improperly formated MD5 checksum lines"
768#endif 766#endif
769 ; 767 ;
770#endif 768#endif
771 769
772#if defined BB_MKDIR 770#if defined BB_MKDIR
773const char mkdir_usage[] = 771const char mkdir_usage[] =
774 "mkdir [OPTION] DIRECTORY...\n" 772 "mkdir [OPTION] DIRECTORY..."
775#ifndef BB_FEATURE_TRIVIAL_HELP 773#ifndef BB_FEATURE_TRIVIAL_HELP
776 "\nCreate the DIRECTORY(ies), if they do not already exist\n\n" 774 "\n\nCreate the DIRECTORY(ies), if they do not already exist\n\n"
775
777 "Options:\n" 776 "Options:\n"
778
779 "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" 777 "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n"
780 "\t-p\tno error if existing, make parent directories as needed\n" 778 "\t-p\tno error if existing, make parent directories as needed"
781#endif 779#endif
782 ; 780 ;
783#endif 781#endif
784 782
785#if defined BB_MKFIFO 783#if defined BB_MKFIFO
786const char mkfifo_usage[] = 784const char mkfifo_usage[] =
787 "mkfifo [OPTIONS] name\n" 785 "mkfifo [OPTIONS] name"
788#ifndef BB_FEATURE_TRIVIAL_HELP 786#ifndef BB_FEATURE_TRIVIAL_HELP
789 "\nCreates a named pipe (identical to 'mknod name p')\n\n" 787 "\n\nCreates a named pipe (identical to 'mknod name p')\n\n"
790 "Options:\n" 788 "Options:\n"
791 "\t-m\tcreate the pipe using the specified mode (default a=rw)\n" 789 "\t-m\tcreate the pipe using the specified mode (default a=rw)"
792#endif 790#endif
793 ; 791 ;
794#endif 792#endif
795 793
796#if defined BB_MKFS_MINIX 794#if defined BB_MKFS_MINIX
797const char mkfs_minix_usage[] = 795const char mkfs_minix_usage[] =
798 "mkfs.minix [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n" 796 "mkfs.minix [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
799#ifndef BB_FEATURE_TRIVIAL_HELP 797#ifndef BB_FEATURE_TRIVIAL_HELP
800 "\nMake a MINIX filesystem.\n\n" 798 "\n\nMake a MINIX filesystem.\n\n"
801 "Options:\n" 799 "Options:\n"
802 "\t-c\t\tCheck the device for bad blocks\n" 800 "\t-c\t\tCheck the device for bad blocks\n"
803 "\t-n [14|30]\tSpecify the maximum length of filenames\n" 801 "\t-n [14|30]\tSpecify the maximum length of filenames\n"
804 "\t-i INODES\tSpecify the number of inodes for the filesystem\n" 802 "\t-i INODES\tSpecify the number of inodes for the filesystem\n"
805 "\t-l FILENAME\tRead the bad blocks list from FILENAME\n" 803 "\t-l FILENAME\tRead the bad blocks list from FILENAME\n"
806 "\t-v\t\tMake a Minix version 2 filesystem\n\n" 804 "\t-v\t\tMake a Minix version 2 filesystem"
807#endif 805#endif
808 ; 806 ;
809#endif 807#endif
810 808
811#if defined BB_MKNOD 809#if defined BB_MKNOD
812const char mknod_usage[] = 810const char mknod_usage[] =
813 "mknod [OPTIONS] NAME TYPE MAJOR MINOR\n" 811 "mknod [OPTIONS] NAME TYPE MAJOR MINOR"
814#ifndef BB_FEATURE_TRIVIAL_HELP 812#ifndef BB_FEATURE_TRIVIAL_HELP
815 "\nCreate a special file (block, character, or pipe).\n\n" 813 "\n\nCreate a special file (block, character, or pipe).\n\n"
816 "Options:\n" 814 "Options:\n"
817 "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n" 815 "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n"
818 "TYPEs include:\n" 816 "TYPEs include:\n"
819 "\tb:\tMake a block (buffered) device.\n" 817 "\tb:\tMake a block (buffered) device.\n"
820 "\tc or u:\tMake a character (un-buffered) device.\n" 818 "\tc or u:\tMake a character (un-buffered) device.\n"
821 "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n" 819 "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes."
822#endif 820#endif
823 ; 821 ;
824#endif 822#endif
825 823
826#if defined BB_MKSWAP 824#if defined BB_MKSWAP
827const char mkswap_usage[] = 825const char mkswap_usage[] =
828 "mkswap [-c] [-v0|-v1] device [block-count]\n" 826 "mkswap [-c] [-v0|-v1] device [block-count]"
829#ifndef BB_FEATURE_TRIVIAL_HELP 827#ifndef BB_FEATURE_TRIVIAL_HELP
830 "\nPrepare a disk partition to be used as a swap partition.\n\n" 828 "\n\nPrepare a disk partition to be used as a swap partition.\n\n"
831 "Options:\n" "\t-c\t\tCheck for read-ability.\n" 829 "Options:\n" "\t-c\t\tCheck for read-ability.\n"
832 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" 830 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n"
833 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" 831 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n"
834 832 "\tblock-count\tNumber of block to use (default is entire partition)."
835 "\tblock-count\tNumber of block to use (default is entire partition).\n"
836#endif 833#endif
837 ; 834 ;
838#endif 835#endif
839 836
840#if defined BB_MKTEMP 837#if defined BB_MKTEMP
841const char mktemp_usage[] = 838const char mktemp_usage[] =
842 "mktemp [-q] TEMPLATE\n" 839 "mktemp [-q] TEMPLATE"
843#ifndef BB_FEATURE_TRIVIAL_HELP 840#ifndef BB_FEATURE_TRIVIAL_HELP
844 "\nCreates a temporary file with its name based on TEMPLATE.\n" 841 "\n\nCreates a temporary file with its name based on TEMPLATE.\n"
845 "TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).\n" 842 "TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX)."
846#endif 843#endif
847 ; 844 ;
848#endif 845#endif
849 846
850#if defined BB_MORE 847#if defined BB_MORE
851const char more_usage[] = 848const char more_usage[] =
852 "more [FILE ...]\n" 849 "more [FILE ...]"
853#ifndef BB_FEATURE_TRIVIAL_HELP 850#ifndef BB_FEATURE_TRIVIAL_HELP
854 "\nMore is a filter for viewing FILE one screenful at a time.\n" 851 "\n\nMore is a filter for viewing FILE one screenful at a time."
855#endif 852#endif
856 ; 853 ;
857#endif 854#endif
858 855
859#if defined BB_MOUNT 856#if defined BB_MOUNT
860const char mount_usage[] = 857const char mount_usage[] =
861 "mount [flags] device directory [-o options,more-options]\n" 858 "mount [flags] device directory [-o options,more-options]"
862#ifndef BB_FEATURE_TRIVIAL_HELP 859#ifndef BB_FEATURE_TRIVIAL_HELP
863 "\nMount a filesystem\n\n" 860 "\n\nMount a filesystem\n\n"
864 "Flags:\n" 861 "Flags:\n"
865 "\t-a:\t\tMount all filesystems in fstab.\n" 862 "\t-a:\t\tMount all filesystems in fstab.\n"
866#ifdef BB_MTAB 863#ifdef BB_MTAB
@@ -884,21 +881,21 @@ const char mount_usage[] =
884 "\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n" 881 "\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n"
885 "\tro/rw:\t\tMount for read-only / read-write.\n" 882 "\tro/rw:\t\tMount for read-only / read-write.\n"
886 "\nThere are EVEN MORE flags that are specific to each filesystem.\n" 883 "\nThere are EVEN MORE flags that are specific to each filesystem.\n"
887 "You'll have to see the written documentation for those.\n" 884 "You'll have to see the written documentation for those."
888#endif 885#endif
889 ; 886 ;
890#endif 887#endif
891 888
892#if defined BB_MT 889#if defined BB_MT
893const char mt_usage[] = 890const char mt_usage[] =
894 "mt [-f device] opcode value\n" 891 "mt [-f device] opcode value"
895#ifndef BB_FEATURE_TRIVIAL_HELP 892#ifndef BB_FEATURE_TRIVIAL_HELP
896 "\nControl magnetic tape drive operation\n" 893 "\n\nControl magnetic tape drive operation\n"
897 "\nAvailable Opcodes:\n\n" 894 "\nAvailable Opcodes:\n\n"
898 "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n" 895 "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n"
899 "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n" 896 "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n"
900 "ras3 reset retension rew rewoffline seek setblk setdensity\n" 897 "ras3 reset retension rew rewoffline seek setblk setdensity\n"
901 "setpart tell unload unlock weof wset\n" 898 "setpart tell unload unlock weof wset"
902#endif 899#endif
903 ; 900 ;
904#endif 901#endif
@@ -906,27 +903,27 @@ const char mt_usage[] =
906#if defined BB_CP_MV 903#if defined BB_CP_MV
907const char mv_usage[] = 904const char mv_usage[] =
908 "mv SOURCE DEST\n" 905 "mv SOURCE DEST\n"
909 " or: mv SOURCE... DIRECTORY\n" 906 " or: mv SOURCE... DIRECTORY"
910#ifndef BB_FEATURE_TRIVIAL_HELP 907#ifndef BB_FEATURE_TRIVIAL_HELP
911 "\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n" 908 "\n\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
912#endif 909#endif
913 ; 910 ;
914#endif 911#endif
915 912
916#if defined BB_NC 913#if defined BB_NC
917const char nc_usage[] = 914const char nc_usage[] =
918 "nc [IP] [port]\n" 915 "nc [IP] [port]"
919#ifndef BB_FEATURE_TRIVIAL_HELP 916#ifndef BB_FEATURE_TRIVIAL_HELP
920 "\nNetcat opens a pipe to IP:port\n" 917 "\n\nNetcat opens a pipe to IP:port"
921#endif 918#endif
922 ; 919 ;
923#endif 920#endif
924 921
925#if defined BB_NSLOOKUP 922#if defined BB_NSLOOKUP
926const char nslookup_usage[] = 923const char nslookup_usage[] =
927 "nslookup [HOST]\n" 924 "nslookup [HOST]"
928#ifndef BB_FEATURE_TRIVIAL_HELP 925#ifndef BB_FEATURE_TRIVIAL_HELP
929 "\nQueries the nameserver for the IP address of the given HOST\n" 926 "\n\nQueries the nameserver for the IP address of the given HOST"
930#endif 927#endif
931; 928;
932#endif 929#endif
@@ -934,21 +931,21 @@ const char nslookup_usage[] =
934#if defined BB_PING 931#if defined BB_PING
935#if defined BB_FEATURE_SIMPLE_PING 932#if defined BB_FEATURE_SIMPLE_PING
936const char ping_usage[] = 933const char ping_usage[] =
937 "ping host\n" 934 "ping host"
938#ifndef BB_FEATURE_TRIVIAL_HELP 935#ifndef BB_FEATURE_TRIVIAL_HELP
939 "\nSend ICMP ECHO_REQUEST packets to network hosts\n" 936 "\n\nSend ICMP ECHO_REQUEST packets to network hosts"
940#endif 937#endif
941 ; 938 ;
942#else /* ! defined BB_FEATURE_SIMPLE_PING */ 939#else /* ! defined BB_FEATURE_SIMPLE_PING */
943const char ping_usage[] = 940const char ping_usage[] =
944 "ping [OPTION]... host\n" 941 "ping [OPTION]... host"
945#ifndef BB_FEATURE_TRIVIAL_HELP 942#ifndef BB_FEATURE_TRIVIAL_HELP
946 "\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n" 943 "\n\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n"
947 "Options:\n" 944 "Options:\n"
948 "\t-c COUNT\tSend only COUNT pings.\n" 945 "\t-c COUNT\tSend only COUNT pings.\n"
949 "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n" 946 "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n"
950 "\t-q\t\tQuiet mode, only displays output at start\n" 947 "\t-q\t\tQuiet mode, only displays output at start\n"
951 "\t\t\tand when finished.\n" 948 "\t\t\tand when finished."
952#endif 949#endif
953 ; 950 ;
954#endif 951#endif
@@ -956,79 +953,79 @@ const char ping_usage[] =
956 953
957#if defined BB_POWEROFF 954#if defined BB_POWEROFF
958const char poweroff_usage[] = 955const char poweroff_usage[] =
959 "poweroff\n" 956 "poweroff"
960#ifndef BB_FEATURE_TRIVIAL_HELP 957#ifndef BB_FEATURE_TRIVIAL_HELP
961 "\nHalt the system and request that the kernel shut off the power.\n" 958 "\n\nHalt the system and request that the kernel shut off the power."
962#endif 959#endif
963 ; 960 ;
964#endif 961#endif
965 962
966#if defined BB_PRINTF 963#if defined BB_PRINTF
967const char printf_usage[] = 964const char printf_usage[] =
968 "printf FORMAT [ARGUMENT...]\n" 965 "printf FORMAT [ARGUMENT...]"
969#ifndef BB_FEATURE_TRIVIAL_HELP 966#ifndef BB_FEATURE_TRIVIAL_HELP
970 "\nFormats and prints ARGUMENT(s) according to FORMAT,\n" 967 "\n\nFormats and prints ARGUMENT(s) according to FORMAT,\n"
971 "Where FORMAT controls the output exactly as in C printf.\n" 968 "Where FORMAT controls the output exactly as in C printf."
972#endif 969#endif
973 ; 970 ;
974#endif 971#endif
975 972
976#if defined BB_PS 973#if defined BB_PS
977const char ps_usage[] = 974const char ps_usage[] =
978 "ps\n" 975 "ps"
979#ifndef BB_FEATURE_TRIVIAL_HELP 976#ifndef BB_FEATURE_TRIVIAL_HELP
980 "\nReport process status\n" 977 "\n\nReport process status\n"
981 "\nThis version of ps accepts no options.\n" 978 "\nThis version of ps accepts no options."
982#endif 979#endif
983 ; 980 ;
984#endif 981#endif
985 982
986#if defined BB_PWD 983#if defined BB_PWD
987const char pwd_usage[] = 984const char pwd_usage[] =
988 "pwd\n" 985 "pwd"
989#ifndef BB_FEATURE_TRIVIAL_HELP 986#ifndef BB_FEATURE_TRIVIAL_HELP
990 "\nPrint the full filename of the current working directory.\n" 987 "\n\nPrint the full filename of the current working directory."
991#endif 988#endif
992 ; 989 ;
993#endif 990#endif
994 991
995#if defined BB_RDATE 992#if defined BB_RDATE
996const char rdate_usage[] = 993const char rdate_usage[] =
997 "rdate [OPTION] HOST\n" 994 "rdate [OPTION] HOST"
998#ifndef BB_FEATURE_TRIVIAL_HELP 995#ifndef BB_FEATURE_TRIVIAL_HELP
999 "\nGet and possibly set the system date and time from a remote HOST.\n" 996 "\n\nGet and possibly set the system date and time from a remote HOST.\n"
1000 "Options:\n" 997 "Options:\n"
1001 "\t-s\tSet the system date and time (default).\n" 998 "\t-s\tSet the system date and time (default).\n"
1002 "\t-p\tPrint the date and time.\n" 999 "\t-p\tPrint the date and time."
1003#endif 1000#endif
1004 ; 1001 ;
1005#endif 1002#endif
1006 1003
1007#if defined BB_READLINK 1004#if defined BB_READLINK
1008const char readlink_usage[] = 1005const char readlink_usage[] =
1009 "readlink\n" 1006 "readlink"
1010#ifndef BB_FEATURE_TRIVIAL_HELP 1007#ifndef BB_FEATURE_TRIVIAL_HELP
1011 "\nRead a symbolic link.\n" 1008 "\n\nRead a symbolic link."
1012#endif 1009#endif
1013 ; 1010 ;
1014#endif 1011#endif
1015 1012
1016#if defined BB_REBOOT 1013#if defined BB_REBOOT
1017const char reboot_usage[] = 1014const char reboot_usage[] =
1018 "reboot\n" 1015 "reboot"
1019#ifndef BB_FEATURE_TRIVIAL_HELP 1016#ifndef BB_FEATURE_TRIVIAL_HELP
1020 "\nReboot the system.\n" 1017 "\n\nReboot the system."
1021#endif 1018#endif
1022 ; 1019 ;
1023#endif 1020#endif
1024 1021
1025#if defined BB_RENICE 1022#if defined BB_RENICE
1026const char renice_usage[] = 1023const char renice_usage[] =
1027 "renice priority pid [pid ...]\n" 1024 "renice priority pid [pid ...]"
1028#ifndef BB_FEATURE_TRIVIAL_HELP 1025#ifndef BB_FEATURE_TRIVIAL_HELP
1029 "\nChanges priority of running processes. Allowed priorities range\n" 1026 "\n\nChanges priority of running processes. Allowed priorities range\n"
1030 "from 20 (the process runs only when nothing else is running) to 0\n" 1027 "from 20 (the process runs only when nothing else is running) to 0\n"
1031 "(default priority) to -20 (almost nothing else ever gets to run).\n" 1028 "(default priority) to -20 (almost nothing else ever gets to run)."
1032#endif 1029#endif
1033 ; 1030 ;
1034#endif 1031#endif
@@ -1036,60 +1033,60 @@ const char renice_usage[] =
1036 1033
1037#if defined BB_RESET 1034#if defined BB_RESET
1038const char reset_usage[] = 1035const char reset_usage[] =
1039 "reset\n" 1036 "reset"
1040#ifndef BB_FEATURE_TRIVIAL_HELP 1037#ifndef BB_FEATURE_TRIVIAL_HELP
1041 "\nResets the screen.\n" 1038 "\n\nResets the screen."
1042#endif 1039#endif
1043 ; 1040 ;
1044#endif 1041#endif
1045 1042
1046#if defined BB_RM 1043#if defined BB_RM
1047const char rm_usage[] = 1044const char rm_usage[] =
1048 "rm [OPTION]... FILE...\n" 1045 "rm [OPTION]... FILE..."
1049#ifndef BB_FEATURE_TRIVIAL_HELP 1046#ifndef BB_FEATURE_TRIVIAL_HELP
1050 "\nRemove (unlink) the FILE(s). You may use '--' to\n" 1047 "\n\nRemove (unlink) the FILE(s). You may use '--' to\n"
1051 "indicate that all following arguments are non-options.\n\n" 1048 "indicate that all following arguments are non-options.\n\n"
1052 "Options:\n" 1049 "Options:\n"
1053 "\t-f\t\tremove existing destinations, never prompt\n" 1050 "\t-f\t\tremove existing destinations, never prompt\n"
1054 "\t-r or -R\tremove the contents of directories recursively\n" 1051 "\t-r or -R\tremove the contents of directories recursively"
1055#endif 1052#endif
1056 ; 1053 ;
1057#endif 1054#endif
1058 1055
1059#if defined BB_RMDIR 1056#if defined BB_RMDIR
1060const char rmdir_usage[] = 1057const char rmdir_usage[] =
1061 "rmdir [OPTION]... DIRECTORY...\n" 1058 "rmdir [OPTION]... DIRECTORY..."
1062#ifndef BB_FEATURE_TRIVIAL_HELP 1059#ifndef BB_FEATURE_TRIVIAL_HELP
1063 "\nRemove the DIRECTORY(ies), if they are empty.\n" 1060 "\n\nRemove the DIRECTORY(ies), if they are empty."
1064#endif 1061#endif
1065 ; 1062 ;
1066#endif 1063#endif
1067 1064
1068#if defined BB_RMMOD 1065#if defined BB_RMMOD
1069const char rmmod_usage[] = 1066const char rmmod_usage[] =
1070 "rmmod [OPTION]... [MODULE]...\n" 1067 "rmmod [OPTION]... [MODULE]..."
1071#ifndef BB_FEATURE_TRIVIAL_HELP 1068#ifndef BB_FEATURE_TRIVIAL_HELP
1072 "\nUnloads the specified kernel modules from the kernel.\n\n" 1069 "\n\nUnloads the specified kernel modules from the kernel.\n\n"
1073 "Options:\n" 1070 "Options:\n"
1074 "\t-a\tTry to remove all unused kernel modules.\n" 1071 "\t-a\tTry to remove all unused kernel modules."
1075#endif 1072#endif
1076 ; 1073 ;
1077#endif 1074#endif
1078 1075
1079#if defined BB_RPMUNPACK 1076#if defined BB_RPMUNPACK
1080const char rpmunpack_usage[] = 1077const char rpmunpack_usage[] =
1081 "rpmunpack < package.rpm | gunzip | cpio -idmuv\n" 1078 "rpmunpack < package.rpm | gunzip | cpio -idmuv"
1082#ifndef BB_FEATURE_TRIVIAL_HELP 1079#ifndef BB_FEATURE_TRIVIAL_HELP
1083 "\nExtracts an rpm archive.\n" 1080 "\n\nExtracts an rpm archive."
1084#endif 1081#endif
1085 ; 1082 ;
1086#endif 1083#endif
1087 1084
1088#if defined BB_SED 1085#if defined BB_SED
1089const char sed_usage[] = 1086const char sed_usage[] =
1090 "sed [-Vhnef] pattern [files...]\n" 1087 "sed [-Vhnef] pattern [files...]"
1091#ifndef BB_FEATURE_TRIVIAL_HELP 1088#ifndef BB_FEATURE_TRIVIAL_HELP
1092 "\n" 1089 "\n\n"
1093 "-n\t\tsuppress automatic printing of pattern space\n" 1090 "-n\t\tsuppress automatic printing of pattern space\n"
1094 "-e script\tadd the script to the commands to be executed\n" 1091 "-e script\tadd the script to the commands to be executed\n"
1095 "-f scriptfile\tadd the contents of script-file to the commands to be executed\n" 1092 "-f scriptfile\tadd the contents of script-file to the commands to be executed\n"
@@ -1097,19 +1094,19 @@ const char sed_usage[] =
1097 "\n" 1094 "\n"
1098 "If no -e or -f is given, the first non-option argument is taken as the\n" 1095 "If no -e or -f is given, the first non-option argument is taken as the\n"
1099 "sed script to interpret. All remaining arguments are names of input\n" 1096 "sed script to interpret. All remaining arguments are names of input\n"
1100 "files; if no input files are specified, then the standard input is read.\n" 1097 "files; if no input files are specified, then the standard input is read."
1101#endif 1098#endif
1102 ; 1099 ;
1103#endif 1100#endif
1104 1101
1105#if defined BB_SETKEYCODES 1102#if defined BB_SETKEYCODES
1106const char setkeycodes_usage[] = 1103const char setkeycodes_usage[] =
1107 "setkeycodes SCANCODE KEYCODE ...\n" 1104 "setkeycodes SCANCODE KEYCODE ..."
1108#ifndef BB_FEATURE_TRIVIAL_HELP 1105#ifndef BB_FEATURE_TRIVIAL_HELP
1109 "\nSet entries into the kernel's scancode-to-keycode map,\n" 1106 "\n\nSet entries into the kernel's scancode-to-keycode map,\n"
1110 "allowing unusual keyboards to generate usable keycodes.\n\n" 1107 "allowing unusual keyboards to generate usable keycodes.\n\n"
1111 "SCANCODE may be either xx or e0xx (hexadecimal),\n" 1108 "SCANCODE may be either xx or e0xx (hexadecimal),\n"
1112 "and KEYCODE is given in decimal\n" 1109 "and KEYCODE is given in decimal"
1113#endif 1110#endif
1114 ; 1111 ;
1115#endif 1112#endif
@@ -1117,18 +1114,18 @@ const char setkeycodes_usage[] =
1117#if defined BB_SH 1114#if defined BB_SH
1118const char shell_usage[] = 1115const char shell_usage[] =
1119 "sh [FILE]...\n" 1116 "sh [FILE]...\n"
1120 " or: sh -c command [args]...\n" 1117 " or: sh -c command [args]..."
1121#ifndef BB_FEATURE_TRIVIAL_HELP 1118#ifndef BB_FEATURE_TRIVIAL_HELP
1122 "\nlash: The BusyBox command interpreter (shell).\n\n" 1119 "\n\nlash: The BusyBox command interpreter (shell)."
1123#endif 1120#endif
1124 ; 1121 ;
1125#endif 1122#endif
1126 1123
1127#if defined BB_SLEEP 1124#if defined BB_SLEEP
1128const char sleep_usage[] = 1125const char sleep_usage[] =
1129 "sleep N\n" 1126 "sleep N"
1130#ifndef BB_FEATURE_TRIVIAL_HELP 1127#ifndef BB_FEATURE_TRIVIAL_HELP
1131 "\nPause for N seconds.\n" 1128 "\n\nPause for N seconds."
1132#endif 1129#endif
1133 ; 1130 ;
1134#endif 1131#endif
@@ -1139,49 +1136,49 @@ const char sort_usage[] =
1139#ifdef BB_FEATURE_SORT_REVERSE 1136#ifdef BB_FEATURE_SORT_REVERSE
1140 " [-r]" 1137 " [-r]"
1141#endif 1138#endif
1142 " [FILE]...\n" 1139 " [FILE]..."
1143#ifndef BB_FEATURE_TRIVIAL_HELP 1140#ifndef BB_FEATURE_TRIVIAL_HELP
1144 "\nSorts lines of text in the specified files\n" 1141 "\n\nSorts lines of text in the specified files"
1145#endif 1142#endif
1146 ; 1143 ;
1147#endif 1144#endif
1148 1145
1149#if defined BB_SWAPONOFF 1146#if defined BB_SWAPONOFF
1150const char swapoff_usage[] = 1147const char swapoff_usage[] =
1151 "swapoff [OPTION] [device]\n" 1148 "swapoff [OPTION] [device]"
1152#ifndef BB_FEATURE_TRIVIAL_HELP 1149#ifndef BB_FEATURE_TRIVIAL_HELP
1153 "\nStop swapping virtual memory pages on the given device.\n\n" 1150 "\n\nStop swapping virtual memory pages on the given device.\n\n"
1154 "Options:\n" 1151 "Options:\n"
1155 "\t-a\tStop swapping on all swap devices\n" 1152 "\t-a\tStop swapping on all swap devices"
1156#endif 1153#endif
1157 ; 1154 ;
1158#endif 1155#endif
1159 1156
1160#if defined BB_SWAPONOFF 1157#if defined BB_SWAPONOFF
1161const char swapon_usage[] = 1158const char swapon_usage[] =
1162 "swapon [OPTION] [device]\n" 1159 "swapon [OPTION] [device]"
1163#ifndef BB_FEATURE_TRIVIAL_HELP 1160#ifndef BB_FEATURE_TRIVIAL_HELP
1164 "\nStart swapping virtual memory pages on the given device.\n\n" 1161 "\n\nStart swapping virtual memory pages on the given device.\n\n"
1165 "Options:\n" 1162 "Options:\n"
1166 "\t-a\tStart swapping on all swap devices\n" 1163 "\t-a\tStart swapping on all swap devices"
1167#endif 1164#endif
1168 ; 1165 ;
1169#endif 1166#endif
1170 1167
1171#if defined BB_SYNC 1168#if defined BB_SYNC
1172const char sync_usage[] = 1169const char sync_usage[] =
1173 "sync\n" 1170 "sync"
1174#ifndef BB_FEATURE_TRIVIAL_HELP 1171#ifndef BB_FEATURE_TRIVIAL_HELP
1175 "\nWrite all buffered filesystem blocks to disk.\n" 1172 "\n\nWrite all buffered filesystem blocks to disk."
1176#endif 1173#endif
1177 ; 1174 ;
1178#endif 1175#endif
1179 1176
1180#if defined BB_SYSLOGD 1177#if defined BB_SYSLOGD
1181const char syslogd_usage[] = 1178const char syslogd_usage[] =
1182 "syslogd [OPTION]...\n" 1179 "syslogd [OPTION]..."
1183#ifndef BB_FEATURE_TRIVIAL_HELP 1180#ifndef BB_FEATURE_TRIVIAL_HELP
1184 "\nLinux system and kernel (provides klogd) logging utility.\n" 1181 "\n\nLinux system and kernel (provides klogd) logging utility.\n"
1185 "Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n" 1182 "Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n"
1186 "Options:\n" 1183 "Options:\n"
1187 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" 1184 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n"
@@ -1189,10 +1186,10 @@ const char syslogd_usage[] =
1189#ifdef BB_FEATURE_KLOGD 1186#ifdef BB_FEATURE_KLOGD
1190 "\t-K\t\tDo not start up the klogd process\n" 1187 "\t-K\t\tDo not start up the klogd process\n"
1191#endif 1188#endif
1192 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n" 1189 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)"
1193#ifdef BB_FEATURE_REMOTE_LOG 1190#ifdef BB_FEATURE_REMOTE_LOG
1194 "\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" 1191 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
1195 "\t-L\t\tLog locally as well as network logging (default is network only)\n" 1192 "\t-L\t\tLog locally as well as network logging (default is network only)"
1196#endif 1193#endif
1197#endif 1194#endif
1198 ; 1195 ;
@@ -1200,9 +1197,9 @@ const char syslogd_usage[] =
1200 1197
1201#if defined BB_TAIL 1198#if defined BB_TAIL
1202const char tail_usage[] = 1199const char tail_usage[] =
1203 "tail [OPTION]... [FILE]...\n" 1200 "tail [OPTION]... [FILE]..."
1204#ifndef BB_FEATURE_TRIVIAL_HELP 1201#ifndef BB_FEATURE_TRIVIAL_HELP
1205 "\nPrint last 10 lines of each FILE to standard output.\n" 1202 "\n\nPrint last 10 lines of each FILE to standard output.\n"
1206 "With more than one FILE, precede each with a header giving the\n" 1203 "With more than one FILE, precede each with a header giving the\n"
1207 "file name. With no FILE, or when FILE is -, read standard input.\n\n" 1204 "file name. With no FILE, or when FILE is -, read standard input.\n\n"
1208 "Options:\n" 1205 "Options:\n"
@@ -1210,17 +1207,17 @@ const char tail_usage[] =
1210 "\t-c N[kbm]\toutput the last N bytes\n" 1207 "\t-c N[kbm]\toutput the last N bytes\n"
1211#endif 1208#endif
1212 "\t-n N[kbm]\tprint last N lines instead of last 10\n" 1209 "\t-n N[kbm]\tprint last N lines instead of last 10\n"
1213 "\t-f\t\toutput data as the file grows\n" 1210 "\t-f\t\toutput data as the file grows"
1214#ifndef BB_FEATURE_SIMPLE_TAIL 1211#ifndef BB_FEATURE_SIMPLE_TAIL
1215 "\t-q\t\tnever output headers giving file names\n" 1212 "\n\t-q\t\tnever output headers giving file names\n"
1216 "\t-s SEC\t\twait SEC seconds between reads with -f\n" 1213 "\t-s SEC\t\twait SEC seconds between reads with -f\n"
1217 "\t-v\t\talways output headers giving file names\n\n" 1214 "\t-v\t\talways output headers giving file names\n\n"
1218 "If the first character of N (bytes or lines) is a `+', output begins with \n" 1215 "If the first character of N (bytes or lines) is a `+', output begins with \n"
1219 "the Nth item from the start of each file, otherwise, print the last N items\n" 1216 "the Nth item from the start of each file, otherwise, print the last N items\n"
1220 "in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2).\n" 1217 "in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)."
1221//#else 1218//#else
1222// "\nIf the first character of N (bytes or lines) is a `+', output begins with \n" 1219// "\nIf the first character of N (bytes or lines) is a `+', output begins with \n"
1223// "the Nth item from the start of each file.\n" 1220// "the Nth item from the start of each file."
1224#endif 1221#endif
1225#endif 1222#endif
1226 ; 1223 ;
@@ -1237,9 +1234,9 @@ const char tar_usage[] =
1237 "[--exclude File] " 1234 "[--exclude File] "
1238 "[-X File]" 1235 "[-X File]"
1239#endif 1236#endif
1240 "[-f tarFile] [FILE(s)] ...\n" 1237 "[-f tarFile] [FILE(s)] ..."
1241#ifndef BB_FEATURE_TRIVIAL_HELP 1238#ifndef BB_FEATURE_TRIVIAL_HELP
1242 "\nCreate, extract, or list files from a tar file.\n\n" 1239 "\n\nCreate, extract, or list files from a tar file.\n\n"
1243 "Main operation mode:\n" 1240 "Main operation mode:\n"
1244#ifdef BB_FEATURE_TAR_CREATE 1241#ifdef BB_FEATURE_TAR_CREATE
1245 "\tc\t\tcreate\n" 1242 "\tc\t\tcreate\n"
@@ -1254,27 +1251,27 @@ const char tar_usage[] =
1254 "\tX\t\tfile with names to exclude\n" 1251 "\tX\t\tfile with names to exclude\n"
1255#endif 1252#endif
1256 "\nInformative output:\n" 1253 "\nInformative output:\n"
1257 "\tv\t\tverbosely list files processed\n" 1254 "\tv\t\tverbosely list files processed"
1258#endif 1255#endif
1259 ; 1256 ;
1260#endif 1257#endif
1261 1258
1262#if defined BB_TEE 1259#if defined BB_TEE
1263const char tee_usage[] = 1260const char tee_usage[] =
1264 "tee [OPTION]... [FILE]...\n" 1261 "tee [OPTION]... [FILE]..."
1265#ifndef BB_FEATURE_TRIVIAL_HELP 1262#ifndef BB_FEATURE_TRIVIAL_HELP
1266 "\nCopy standard input to each FILE, and also to standard output.\n\n" 1263 "\n\nCopy standard input to each FILE, and also to standard output.\n\n"
1267 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite\n" 1264 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite"
1268#endif 1265#endif
1269 ; 1266 ;
1270#endif 1267#endif
1271 1268
1272#if defined BB_TELNET 1269#if defined BB_TELNET
1273const char telnet_usage[] = 1270const char telnet_usage[] =
1274 "telnet host [port]\n" 1271 "telnet host [port]"
1275#ifndef BB_FEATURE_TRIVIAL_HELP 1272#ifndef BB_FEATURE_TRIVIAL_HELP
1276 "\nTelnet is used to establish interactive communication with another\n" 1273 "\n\nTelnet is used to establish interactive communication with another\n"
1277 "computer over a network using the TELNET protocol.\n" 1274 "computer over a network using the TELNET protocol."
1278#endif 1275#endif
1279 ; 1276 ;
1280#endif 1277#endif
@@ -1282,76 +1279,76 @@ const char telnet_usage[] =
1282#if defined BB_TEST 1279#if defined BB_TEST
1283const char test_usage[] = 1280const char test_usage[] =
1284 "test EXPRESSION\n" 1281 "test EXPRESSION\n"
1285 "or [ EXPRESSION ]\n" 1282 "or [ EXPRESSION ]"
1286#ifndef BB_FEATURE_TRIVIAL_HELP 1283#ifndef BB_FEATURE_TRIVIAL_HELP
1287 "\nChecks file types and compares values returning an exit\n" 1284 "\n\nChecks file types and compares values returning an exit\n"
1288 "code determined by the value of EXPRESSION.\n" 1285 "code determined by the value of EXPRESSION."
1289#endif 1286#endif
1290 ; 1287 ;
1291#endif 1288#endif
1292 1289
1293#if defined BB_TOUCH 1290#if defined BB_TOUCH
1294const char touch_usage[] = 1291const char touch_usage[] =
1295 "touch [-c] file [file ...]\n" 1292 "touch [-c] file [file ...]"
1296#ifndef BB_FEATURE_TRIVIAL_HELP 1293#ifndef BB_FEATURE_TRIVIAL_HELP
1297 "\nUpdate the last-modified date on the given file[s].\n\n" 1294 "\n\nUpdate the last-modified date on the given file[s].\n\n"
1298 "Options:\n" 1295 "Options:\n"
1299 "\t-c\tDo not create any files\n" 1296 "\t-c\tDo not create any files"
1300#endif 1297#endif
1301 ; 1298 ;
1302#endif 1299#endif
1303 1300
1304#if defined BB_TR 1301#if defined BB_TR
1305const char tr_usage[] = 1302const char tr_usage[] =
1306 "tr [-cds] STRING1 [STRING2]\n" 1303 "tr [-cds] STRING1 [STRING2]"
1307#ifndef BB_FEATURE_TRIVIAL_HELP 1304#ifndef BB_FEATURE_TRIVIAL_HELP
1308 "\nTranslate, squeeze, and/or delete characters from\n" 1305 "\n\nTranslate, squeeze, and/or delete characters from\n"
1309 "standard input, writing to standard output.\n\n" 1306 "standard input, writing to standard output.\n\n"
1310 "Options:\n" 1307 "Options:\n"
1311 "\t-c\ttake complement of STRING1\n" 1308 "\t-c\ttake complement of STRING1\n"
1312 "\t-d\tdelete input characters coded STRING1\n" 1309 "\t-d\tdelete input characters coded STRING1\n"
1313 "\t-s\tsqueeze multiple output characters of STRING2 into one character\n" 1310 "\t-s\tsqueeze multiple output characters of STRING2 into one character"
1314#endif 1311#endif
1315 ; 1312 ;
1316#endif 1313#endif
1317 1314
1318#if defined BB_TRUE_FALSE 1315#if defined BB_TRUE_FALSE
1319const char true_usage[] = 1316const char true_usage[] =
1320 "true\n" 1317 "true"
1321#ifndef BB_FEATURE_TRIVIAL_HELP 1318#ifndef BB_FEATURE_TRIVIAL_HELP
1322 "\nReturn an exit code of TRUE (0).\n" 1319 "\n\nReturn an exit code of TRUE (0)."
1323#endif 1320#endif
1324 ; 1321 ;
1325#endif 1322#endif
1326 1323
1327#if defined BB_TTY 1324#if defined BB_TTY
1328const char tty_usage[] = 1325const char tty_usage[] =
1329 "tty\n" 1326 "tty"
1330#ifndef BB_FEATURE_TRIVIAL_HELP 1327#ifndef BB_FEATURE_TRIVIAL_HELP
1331 "\nPrint the file name of the terminal connected to standard input.\n\n" 1328 "\n\nPrint the file name of the terminal connected to standard input.\n\n"
1332 "Options:\n" 1329 "Options:\n"
1333 "\t-s\tprint nothing, only return an exit status\n" 1330 "\t-s\tprint nothing, only return an exit status"
1334#endif 1331#endif
1335 ; 1332 ;
1336#endif 1333#endif
1337 1334
1338#if defined BB_UMOUNT 1335#if defined BB_UMOUNT
1339const char umount_usage[] = 1336const char umount_usage[] =
1340 "umount [flags] filesystem|directory\n" 1337 "umount [flags] filesystem|directory"
1341#ifndef BB_FEATURE_TRIVIAL_HELP 1338#ifndef BB_FEATURE_TRIVIAL_HELP
1342 "Unmount file systems\n" 1339 "\nUnmount file systems\n"
1343 "\nFlags:\n" "\t-a:\tUnmount all file systems" 1340 "\nFlags:\n" "\t-a:\tUnmount all file systems"
1344#ifdef BB_MTAB 1341#ifdef BB_MTAB
1345 " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n" 1342 " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n"
1346#else 1343#else
1347 "\n" 1344 "\n"
1348#endif 1345#endif
1349 "\t-r:\tTry to remount devices as read-only if mount is busy\n" 1346 "\t-r:\tTry to remount devices as read-only if mount is busy"
1350#if defined BB_FEATURE_MOUNT_FORCE 1347#if defined BB_FEATURE_MOUNT_FORCE
1351 "\t-f:\tForce filesystem umount (i.e. unreachable NFS server)\n" 1348 "\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)"
1352#endif 1349#endif
1353#if defined BB_FEATURE_MOUNT_LOOP 1350#if defined BB_FEATURE_MOUNT_LOOP
1354 "\t-l:\tDo not free loop device (if a loop device has been used)\n" 1351 "\n\t-l:\tDo not free loop device (if a loop device has been used)"
1355#endif 1352#endif
1356#endif 1353#endif
1357 ; 1354 ;
@@ -1359,9 +1356,9 @@ const char umount_usage[] =
1359 1356
1360#if defined BB_UNAME 1357#if defined BB_UNAME
1361const char uname_usage[] = 1358const char uname_usage[] =
1362 "uname [OPTION]...\n" 1359 "uname [OPTION]..."
1363#ifndef BB_FEATURE_TRIVIAL_HELP 1360#ifndef BB_FEATURE_TRIVIAL_HELP
1364 "\nPrint certain system information. With no OPTION, same as -s.\n\n" 1361 "\n\nPrint certain system information. With no OPTION, same as -s.\n\n"
1365 "Options:\n" 1362 "Options:\n"
1366 "\t-a\tprint all information\n" 1363 "\t-a\tprint all information\n"
1367 "\t-m\tthe machine (hardware) type\n" 1364 "\t-m\tthe machine (hardware) type\n"
@@ -1370,145 +1367,145 @@ const char uname_usage[] =
1370 "\t-s\tprint the operating system name\n" 1367 "\t-s\tprint the operating system name\n"
1371 1368
1372 "\t-p\tprint the host processor type\n" 1369 "\t-p\tprint the host processor type\n"
1373 "\t-v\tprint the operating system version\n" 1370 "\t-v\tprint the operating system version"
1374#endif 1371#endif
1375 ; 1372 ;
1376#endif 1373#endif
1377 1374
1378#if defined BB_UNIQ 1375#if defined BB_UNIQ
1379const char uniq_usage[] = 1376const char uniq_usage[] =
1380 "uniq [OPTION]... [INPUT [OUTPUT]]\n" 1377 "uniq [OPTION]... [INPUT [OUTPUT]]"
1381#ifndef BB_FEATURE_TRIVIAL_HELP 1378#ifndef BB_FEATURE_TRIVIAL_HELP
1382 "\nDiscard all but one of successive identical lines from INPUT\n" 1379 "\n\nDiscard all but one of successive identical lines from INPUT\n"
1383 "(or standard input), writing to OUTPUT (or standard output).\n" 1380 "(or standard input), writing to OUTPUT (or standard output).\n"
1384 "Options:\n" 1381 "Options:\n"
1385 "\t-c\tprefix lines by the number of occurrences\n" 1382 "\t-c\tprefix lines by the number of occurrences\n"
1386 "\t-d\tonly print duplicate lines\n" 1383 "\t-d\tonly print duplicate lines\n"
1387 "\t-u\tonly print unique lines\n" 1384 "\t-u\tonly print unique lines"
1388#endif 1385#endif
1389 ; 1386 ;
1390#endif 1387#endif
1391 1388
1392#if defined BB_UNIX2DOS 1389#if defined BB_UNIX2DOS
1393const char unix2dos_usage[] = 1390const char unix2dos_usage[] =
1394 "unix2dos < unixfile > dosfile\n" 1391 "unix2dos < unixfile > dosfile"
1395#ifndef BB_FEATURE_TRIVIAL_HELP 1392#ifndef BB_FEATURE_TRIVIAL_HELP
1396 "\nConverts a text file from unix format to dos format.\n" 1393 "\n\nConverts a text file from unix format to dos format."
1397#endif 1394#endif
1398 ; 1395 ;
1399#endif 1396#endif
1400 1397
1401#if defined BB_UPDATE 1398#if defined BB_UPDATE
1402const char update_usage[] = 1399const char update_usage[] =
1403 "update [options]\n" 1400 "update [options]"
1404#ifndef BB_FEATURE_TRIVIAL_HELP 1401#ifndef BB_FEATURE_TRIVIAL_HELP
1405 "\nPeriodically flushes filesystem buffers.\n\n" 1402 "\n\nPeriodically flushes filesystem buffers.\n\n"
1406 "Options:\n" 1403 "Options:\n"
1407 "\t-S\tforce use of sync(2) instead of flushing\n" 1404 "\t-S\tforce use of sync(2) instead of flushing\n"
1408 "\t-s SECS\tcall sync this often (default 30)\n" 1405 "\t-s SECS\tcall sync this often (default 30)\n"
1409 "\t-f SECS\tflush some buffers this often (default 5)\n" 1406 "\t-f SECS\tflush some buffers this often (default 5)"
1410#endif 1407#endif
1411 ; 1408 ;
1412#endif 1409#endif
1413 1410
1414#if defined BB_UPTIME 1411#if defined BB_UPTIME
1415const char uptime_usage[] = 1412const char uptime_usage[] =
1416 "uptime\n" 1413 "uptime"
1417#ifndef BB_FEATURE_TRIVIAL_HELP 1414#ifndef BB_FEATURE_TRIVIAL_HELP
1418 "\nDisplay the time since the last boot.\n" 1415 "\n\nDisplay the time since the last boot."
1419#endif 1416#endif
1420 ; 1417 ;
1421#endif 1418#endif
1422 1419
1423#if defined BB_USLEEP 1420#if defined BB_USLEEP
1424const char usleep_usage[] = 1421const char usleep_usage[] =
1425 "usleep N\n" 1422 "usleep N"
1426#ifndef BB_FEATURE_TRIVIAL_HELP 1423#ifndef BB_FEATURE_TRIVIAL_HELP
1427 "\nPause for N microseconds.\n" 1424 "\n\nPause for N microseconds."
1428#endif 1425#endif
1429 ; 1426 ;
1430#endif 1427#endif
1431 1428
1432#if defined BB_UUDECODE 1429#if defined BB_UUDECODE
1433const char uudecode_usage[] = 1430const char uudecode_usage[] =
1434 "uudecode [FILE]...\n" 1431 "uudecode [FILE]..."
1435#ifndef BB_FEATURE_TRIVIAL_HELP 1432#ifndef BB_FEATURE_TRIVIAL_HELP
1436 "\nUudecode a file that is uuencoded.\n\n" 1433 "\n\nUudecode a file that is uuencoded.\n\n"
1437 "Options:\n" 1434 "Options:\n"
1438 "\t-o FILE\tdirect output to FILE\n" 1435 "\t-o FILE\tdirect output to FILE"
1439#endif 1436#endif
1440 ; 1437 ;
1441#endif 1438#endif
1442 1439
1443#if defined BB_UUENCODE 1440#if defined BB_UUENCODE
1444const char uuencode_usage[] = 1441const char uuencode_usage[] =
1445 "uuencode [OPTION] [INFILE] REMOTEFILE\n" 1442 "uuencode [OPTION] [INFILE] REMOTEFILE"
1446#ifndef BB_FEATURE_TRIVIAL_HELP 1443#ifndef BB_FEATURE_TRIVIAL_HELP
1447 "\nUuencode a file.\n\n" 1444 "\n\nUuencode a file.\n\n"
1448 "Options:\n" 1445 "Options:\n"
1449 "\t-m\tuse base64 encoding as of RFC1521\n" 1446 "\t-m\tuse base64 encoding as of RFC1521"
1450#endif 1447#endif
1451 ; 1448 ;
1452#endif 1449#endif
1453 1450
1454#if defined BB_WC 1451#if defined BB_WC
1455const char wc_usage[] = 1452const char wc_usage[] =
1456 "wc [OPTION]... [FILE]...\n" 1453 "wc [OPTION]... [FILE]..."
1457#ifndef BB_FEATURE_TRIVIAL_HELP 1454#ifndef BB_FEATURE_TRIVIAL_HELP
1458 "\nPrint line, word, and byte counts for each FILE, and a total line if\n" 1455 "\n\nPrint line, word, and byte counts for each FILE, and a total line if\n"
1459 "more than one FILE is specified. With no FILE, read standard input.\n\n" 1456 "more than one FILE is specified. With no FILE, read standard input.\n\n"
1460 "Options:\n" 1457 "Options:\n"
1461 "\t-c\tprint the byte counts\n" 1458 "\t-c\tprint the byte counts\n"
1462 "\t-l\tprint the newline counts\n" 1459 "\t-l\tprint the newline counts\n"
1463 1460
1464 "\t-L\tprint the length of the longest line\n" 1461 "\t-L\tprint the length of the longest line\n"
1465 "\t-w\tprint the word counts\n" 1462 "\t-w\tprint the word counts"
1466#endif 1463#endif
1467 ; 1464 ;
1468#endif 1465#endif
1469 1466
1470#if defined BB_WGET 1467#if defined BB_WGET
1471const char wget_usage[] = "wget [-c] [-O file] url\n" 1468const char wget_usage[] = "wget [-c] [-O file] url"
1472#ifndef BB_FEATURE_TRIVIAL_HELP 1469#ifndef BB_FEATURE_TRIVIAL_HELP
1473 "\nwget retrieves files via HTTP\n\n" 1470 "\n\nwget retrieves files via HTTP\n\n"
1474 "Options:\n" 1471 "Options:\n"
1475 "\t-c\tcontinue retrieval of aborted transfers\n" 1472 "\t-c\tcontinue retrieval of aborted transfers\n"
1476 "\t-O\tsave to filename ('-' for stdout)\n" 1473 "\t-O\tsave to filename ('-' for stdout)"
1477#endif 1474#endif
1478 ; 1475 ;
1479#endif 1476#endif
1480 1477
1481#if defined BB_WHICH 1478#if defined BB_WHICH
1482const char which_usage[] = 1479const char which_usage[] =
1483 "which [COMMAND ...]\n" 1480 "which [COMMAND ...]"
1484#ifndef BB_FEATURE_TRIVIAL_HELP 1481#ifndef BB_FEATURE_TRIVIAL_HELP
1485 "\nLocates a COMMAND.\n" 1482 "\n\nLocates a COMMAND."
1486#endif 1483#endif
1487 ; 1484 ;
1488#endif 1485#endif
1489 1486
1490#if defined BB_WHOAMI 1487#if defined BB_WHOAMI
1491const char whoami_usage[] = 1488const char whoami_usage[] =
1492 "whoami\n" 1489 "whoami"
1493#ifndef BB_FEATURE_TRIVIAL_HELP 1490#ifndef BB_FEATURE_TRIVIAL_HELP
1494 "\nPrints the user name associated with the current effective user id.\n" 1491 "\n\nPrints the user name associated with the current effective user id."
1495#endif 1492#endif
1496 ; 1493 ;
1497#endif 1494#endif
1498 1495
1499#if defined BB_XARGS 1496#if defined BB_XARGS
1500const char xargs_usage[] = "xargs [COMMAND] [ARGS...]\n" 1497const char xargs_usage[] = "xargs [COMMAND] [ARGS...]"
1501#ifndef BB_FEATURE_TRIVIAL_HELP 1498#ifndef BB_FEATURE_TRIVIAL_HELP
1502 "\nExecutes COMMAND on every item given by standard input.\n" 1499 "\n\nExecutes COMMAND on every item given by standard input."
1503#endif 1500#endif
1504 ; 1501 ;
1505#endif 1502#endif
1506 1503
1507#if defined BB_YES 1504#if defined BB_YES
1508const char yes_usage[] = 1505const char yes_usage[] =
1509 "yes [OPTION]... [STRING]...\n" 1506 "yes [OPTION]... [STRING]..."
1510#ifndef BB_FEATURE_TRIVIAL_HELP 1507#ifndef BB_FEATURE_TRIVIAL_HELP
1511 "\nRepeatedly outputs a line with all specified STRING(s), or `y'.\n" 1508 "\n\nRepeatedly outputs a line with all specified STRING(s), or `y'."
1512#endif 1509#endif
1513 ; 1510 ;
1514#endif 1511#endif
diff --git a/usage.c b/usage.c
index e92b87a9c..864891797 100644
--- a/usage.c
+++ b/usage.c
@@ -2,102 +2,102 @@
2 2
3#if defined BB_AR 3#if defined BB_AR
4const char ar_usage[] = 4const char ar_usage[] =
5 "ar -[ovR]{ptx} archive filenames \n" 5 "ar -[ovR]{ptx} archive filenames"
6#ifndef BB_FEATURE_TRIVIAL_HELP 6#ifndef BB_FEATURE_TRIVIAL_HELP
7 "\nExtract or list files from an ar archive.\n\n" 7 "\n\nExtract or list files from an ar archive.\n\n"
8 "Options:\n" 8 "Options:\n"
9 "\t-o\t\tpreserve original dates\n" 9 "\t-o\t\tpreserve original dates\n"
10 "\t-p\t\textract to stdout\n" 10 "\t-p\t\textract to stdout\n"
11 "\t-t\t\tlist\n" 11 "\t-t\t\tlist\n"
12 "\t-x\t\textract\n" 12 "\t-x\t\textract\n"
13 "\t-v\t\tverbosely list files processed\n" 13 "\t-v\t\tverbosely list files processed\n"
14 "\t-R\t\trecursive action\n" 14 "\t-R\t\trecursive action"
15#endif 15#endif
16 ; 16 ;
17#endif 17#endif
18 18
19#if defined BB_BASENAME 19#if defined BB_BASENAME
20const char basename_usage[] = 20const char basename_usage[] =
21 "basename FILE [SUFFIX]\n" 21 "basename FILE [SUFFIX]"
22#ifndef BB_FEATURE_TRIVIAL_HELP 22#ifndef BB_FEATURE_TRIVIAL_HELP
23 "\nStrips directory path and suffixes from FILE.\n" 23 "\n\nStrips directory path and suffixes from FILE.\n"
24 "If specified, also removes any trailing SUFFIX.\n" 24 "If specified, also removes any trailing SUFFIX."
25#endif 25#endif
26 ; 26 ;
27#endif 27#endif
28 28
29#if defined BB_CAT 29#if defined BB_CAT
30const char cat_usage[] = 30const char cat_usage[] =
31 "cat [FILE]...\n" 31 "cat [FILE]..."
32#ifndef BB_FEATURE_TRIVIAL_HELP 32#ifndef BB_FEATURE_TRIVIAL_HELP
33 "\nConcatenates FILE(s) and prints them to stdout.\n" 33 "\n\nConcatenates FILE(s) and prints them to stdout."
34#endif 34#endif
35 ; 35 ;
36#endif 36#endif
37 37
38#if defined BB_CHMOD_CHOWN_CHGRP 38#if defined BB_CHMOD_CHOWN_CHGRP
39const char chgrp_usage[] = 39const char chgrp_usage[] =
40 "chgrp [OPTION]... GROUP FILE...\n" 40 "chgrp [OPTION]... GROUP FILE..."
41#ifndef BB_FEATURE_TRIVIAL_HELP 41#ifndef BB_FEATURE_TRIVIAL_HELP
42 "\nChange the group membership of each FILE to GROUP.\n" 42 "\n\nChange the group membership of each FILE to GROUP.\n"
43 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 43 "\nOptions:\n\t-R\tChanges files and directories recursively."
44#endif 44#endif
45 ; 45 ;
46#endif 46#endif
47 47
48#if defined BB_CHMOD_CHOWN_CHGRP 48#if defined BB_CHMOD_CHOWN_CHGRP
49const char chmod_usage[] = 49const char chmod_usage[] =
50 "chmod [-R] MODE[,MODE]... FILE...\n" 50 "chmod [-R] MODE[,MODE]... FILE..."
51#ifndef BB_FEATURE_TRIVIAL_HELP 51#ifndef BB_FEATURE_TRIVIAL_HELP
52 "\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n" 52 "\n\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n"
53 "one or more of the letters rwxst.\n\n" 53 "one or more of the letters rwxst.\n\n"
54 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 54 "\nOptions:\n\t-R\tChanges files and directories recursively."
55#endif 55#endif
56 ; 56 ;
57#endif 57#endif
58 58
59#if defined BB_CHMOD_CHOWN_CHGRP 59#if defined BB_CHMOD_CHOWN_CHGRP
60const char chown_usage[] = 60const char chown_usage[] =
61 "chown [OPTION]... OWNER[<.|:>[GROUP] FILE...\n" 61 "chown [OPTION]... OWNER[<.|:>[GROUP] FILE..."
62#ifndef BB_FEATURE_TRIVIAL_HELP 62#ifndef BB_FEATURE_TRIVIAL_HELP
63 "\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n" 63 "\n\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n"
64 "\nOptions:\n\t-R\tChanges files and directories recursively.\n" 64 "\nOptions:\n\t-R\tChanges files and directories recursively."
65#endif 65#endif
66 ; 66 ;
67#endif 67#endif
68 68
69#if defined BB_CHROOT 69#if defined BB_CHROOT
70const char chroot_usage[] = 70const char chroot_usage[] =
71 "chroot NEWROOT [COMMAND...]\n" 71 "chroot NEWROOT [COMMAND...]"
72#ifndef BB_FEATURE_TRIVIAL_HELP 72#ifndef BB_FEATURE_TRIVIAL_HELP
73 "\nRun COMMAND with root directory set to NEWROOT.\n" 73 "\n\nRun COMMAND with root directory set to NEWROOT."
74#endif 74#endif
75 ; 75 ;
76#endif 76#endif
77 77
78#if defined BB_CHVT 78#if defined BB_CHVT
79const char chvt_usage[] = 79const char chvt_usage[] =
80 "chvt N\n" 80 "chvt N"
81#ifndef BB_FEATURE_TRIVIAL_HELP 81#ifndef BB_FEATURE_TRIVIAL_HELP
82 "\nChanges the foreground virtual terminal to /dev/ttyN\n" 82 "\n\nChanges the foreground virtual terminal to /dev/ttyN"
83#endif 83#endif
84 ; 84 ;
85#endif 85#endif
86 86
87#if defined BB_CLEAR 87#if defined BB_CLEAR
88const char clear_usage[] = 88const char clear_usage[] =
89 "clear\n" 89 "clear"
90#ifndef BB_FEATURE_TRIVIAL_HELP 90#ifndef BB_FEATURE_TRIVIAL_HELP
91 "\nClear screen.\n" 91 "\n\nClear screen."
92#endif 92#endif
93 ; 93 ;
94#endif 94#endif
95 95
96#if defined BB_CMP 96#if defined BB_CMP
97const char cmp_usage[] = 97const char cmp_usage[] =
98 "cmp FILE1 [FILE2]\n" 98 "cmp FILE1 [FILE2]"
99#ifndef BB_FEATURE_TRIVIAL_HELP 99#ifndef BB_FEATURE_TRIVIAL_HELP
100 "\nCompare files.\n" 100 "\n\nCompare files."
101#endif 101#endif
102 ; 102 ;
103#endif 103#endif
@@ -105,31 +105,31 @@ const char cmp_usage[] =
105#if defined BB_CP_MV 105#if defined BB_CP_MV
106const char cp_usage[] = 106const char cp_usage[] =
107 "cp [OPTION]... SOURCE DEST\n" 107 "cp [OPTION]... SOURCE DEST\n"
108 " or: cp [OPTION]... SOURCE... DIRECTORY\n" 108 " or: cp [OPTION]... SOURCE... DIRECTORY"
109#ifndef BB_FEATURE_TRIVIAL_HELP 109#ifndef BB_FEATURE_TRIVIAL_HELP
110 "\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n" 110 "\n\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n"
111 "\n" 111 "\n"
112 "\t-a\tSame as -dpR\n" 112 "\t-a\tSame as -dpR\n"
113 "\t-d\tPreserves links\n" 113 "\t-d\tPreserves links\n"
114 "\t-p\tPreserves file attributes if possible\n" 114 "\t-p\tPreserves file attributes if possible\n"
115 "\t-f\tforce (implied; ignored) - always set\n" 115 "\t-f\tforce (implied; ignored) - always set\n"
116 "\t-R\tCopies directories recursively\n" 116 "\t-R\tCopies directories recursively"
117#endif 117#endif
118 ; 118 ;
119#endif 119#endif
120 120
121#if defined BB_CUT 121#if defined BB_CUT
122const char cut_usage[] = 122const char cut_usage[] =
123 "cut [OPTION]... [FILE]...\n" 123 "cut [OPTION]... [FILE]..."
124#ifndef BB_FEATURE_TRIVIAL_HELP 124#ifndef BB_FEATURE_TRIVIAL_HELP
125 "\nPrints selected fields from each input FILE to standard output.\n\n" 125 "\n\nPrints selected fields from each input FILE to standard output.\n\n"
126 "Options:\n" 126 "Options:\n"
127 "\t-b LIST\tOutput only bytes from LIST\n" 127 "\t-b LIST\tOutput only bytes from LIST\n"
128 "\t-c LIST\tOutput only characters from LIST\n" 128 "\t-c LIST\tOutput only characters from LIST\n"
129 "\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n" 129 "\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n"
130 "\t-s\tOutput only the lines containing delimiter\n" 130 "\t-s\tOutput only the lines containing delimiter\n"
131 "\t-f N\tPrint only these fields\n" 131 "\t-f N\tPrint only these fields\n"
132 "\t-n\tIgnored\n" 132 "\t-n\tIgnored"
133#endif 133#endif
134 ; 134 ;
135#endif 135#endif
@@ -137,33 +137,33 @@ const char cut_usage[] =
137#if defined BB_DATE 137#if defined BB_DATE
138const char date_usage[] = 138const char date_usage[] =
139 "date [OPTION]... [+FORMAT]\n" 139 "date [OPTION]... [+FORMAT]\n"
140 " or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n" 140 " or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]"
141#ifndef BB_FEATURE_TRIVIAL_HELP 141#ifndef BB_FEATURE_TRIVIAL_HELP
142 "\nDisplays the current time in the given FORMAT, or sets the system date.\n" 142 "\n\nDisplays the current time in the given FORMAT, or sets the system date.\n"
143 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n" 143 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n"
144 "\t-d STRING\tdisplay time described by STRING, not `now'\n" 144 "\t-d STRING\tdisplay time described by STRING, not `now'\n"
145 "\t-s\t\tSets time described by STRING\n" 145 "\t-s\t\tSets time described by STRING\n"
146 "\t-u\t\tPrints or sets Coordinated Universal Time\n" 146 "\t-u\t\tPrints or sets Coordinated Universal Time"
147#endif 147#endif
148 ; 148 ;
149#endif 149#endif
150 150
151#if defined BB_DC 151#if defined BB_DC
152const char dc_usage[] = 152const char dc_usage[] =
153 "dc expression ...\n" 153 "dc expression ..."
154#ifndef BB_FEATURE_TRIVIAL_HELP 154#ifndef BB_FEATURE_TRIVIAL_HELP
155 "\nThis is a Tiny RPN calculator that understands the\n" 155 "\n\nThis is a Tiny RPN calculator that understands the\n"
156 "following operations: +, -, /, *, and, or, not, eor.\n" 156 "following operations: +, -, /, *, and, or, not, eor.\n"
157 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16\n" 157 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
158#endif 158#endif
159 ; 159 ;
160#endif 160#endif
161 161
162#if defined BB_DD 162#if defined BB_DD
163const char dd_usage[] = 163const char dd_usage[] =
164 "dd [if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]\n" 164 "dd [if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]"
165#ifndef BB_FEATURE_TRIVIAL_HELP 165#ifndef BB_FEATURE_TRIVIAL_HELP
166 "\nCopy a file, converting and formatting according to options\n\n" 166 "\n\nCopy a file, converting and formatting according to options\n\n"
167 "\tif=FILE\tread from FILE instead of stdin\n" 167 "\tif=FILE\tread from FILE instead of stdin\n"
168 "\tof=FILE\twrite to FILE instead of stdout\n" 168 "\tof=FILE\twrite to FILE instead of stdout\n"
169 "\tbs=N\tread and write N bytes at a time\n" 169 "\tbs=N\tread and write N bytes at a time\n"
@@ -174,56 +174,56 @@ const char dd_usage[] =
174 "\tconv=sync\tpad blocks with zeros\n" 174 "\tconv=sync\tpad blocks with zeros\n"
175 "\n" 175 "\n"
176 "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n" 176 "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n"
177 "MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824).\n" 177 "MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)."
178#endif 178#endif
179 ; 179 ;
180#endif 180#endif
181 181
182#if defined BB_DEALLOCVT 182#if defined BB_DEALLOCVT
183const char deallocvt_usage[] = 183const char deallocvt_usage[] =
184 "deallocvt N\n" 184 "deallocvt N"
185#ifndef BB_FEATURE_TRIVIAL_HELP 185#ifndef BB_FEATURE_TRIVIAL_HELP
186 "\nDeallocate unused virtual terminal /dev/ttyN\n" 186 "\n\nDeallocate unused virtual terminal /dev/ttyN"
187#endif 187#endif
188 ; 188 ;
189#endif 189#endif
190 190
191#if defined BB_DF 191#if defined BB_DF
192const char df_usage[] = 192const char df_usage[] =
193 "df [filesystem ...]\n" 193 "df [filesystem ...]"
194#ifndef BB_FEATURE_TRIVIAL_HELP 194#ifndef BB_FEATURE_TRIVIAL_HELP
195 "\nPrint the filesystem space used and space available.\n" 195 "\n\nPrint the filesystem space used and space available."
196#endif 196#endif
197 ; 197 ;
198#endif 198#endif
199 199
200#if defined BB_DIRNAME 200#if defined BB_DIRNAME
201const char dirname_usage[] = 201const char dirname_usage[] =
202 "dirname [FILENAME ...]\n" 202 "dirname [FILENAME ...]"
203#ifndef BB_FEATURE_TRIVIAL_HELP 203#ifndef BB_FEATURE_TRIVIAL_HELP
204 "\nStrips non-directory suffix from FILENAME\n" 204 "\n\nStrips non-directory suffix from FILENAME"
205#endif 205#endif
206 ; 206 ;
207#endif 207#endif
208 208
209#if defined BB_DMESG 209#if defined BB_DMESG
210const char dmesg_usage[] = 210const char dmesg_usage[] =
211 "dmesg [-c] [-n LEVEL] [-s SIZE]\n" 211 "dmesg [-c] [-n LEVEL] [-s SIZE]"
212#ifndef BB_FEATURE_TRIVIAL_HELP 212#ifndef BB_FEATURE_TRIVIAL_HELP
213 "\nPrints or controls the kernel ring buffer\n\n" 213 "\n\nPrints or controls the kernel ring buffer\n\n"
214 "Options:\n" 214 "Options:\n"
215 "\t-c\t\tClears the ring buffer's contents after printing\n" 215 "\t-c\t\tClears the ring buffer's contents after printing\n"
216 "\t-n LEVEL\tSets console logging level\n" 216 "\t-n LEVEL\tSets console logging level\n"
217 "\t-s SIZE\t\tUse a buffer of size SIZE\n" 217 "\t-s SIZE\t\tUse a buffer of size SIZE"
218#endif 218#endif
219 ; 219 ;
220#endif 220#endif
221 221
222#if defined BB_DOS2UNIX 222#if defined BB_DOS2UNIX
223const char dos2unix_usage[] = 223const char dos2unix_usage[] =
224 "dos2unix < dosfile > unixfile\n" 224 "dos2unix < dosfile > unixfile"
225#ifndef BB_FEATURE_TRIVIAL_HELP 225#ifndef BB_FEATURE_TRIVIAL_HELP
226 "\nConverts a text file from dos format to unix format.\n" 226 "\n\nConverts a text file from dos format to unix format."
227#endif 227#endif
228 ; 228 ;
229#endif 229#endif
@@ -232,93 +232,93 @@ const char dos2unix_usage[] =
232const char dpkg_deb_usage[] = 232const char dpkg_deb_usage[] =
233 "dpkg-deb [-cexX] file directory" 233 "dpkg-deb [-cexX] file directory"
234#ifndef BB_FEATURE_TRIVIAL_HELP 234#ifndef BB_FEATURE_TRIVIAL_HELP
235 "Perform actions on debian packages (.debs)\n" 235 "\n\nPerform actions on debian packages (.debs)\n\n"
236 "Options:\n" 236 "Options:\n"
237 "\t-c\tList contents of filesystem tree\n" 237 "\t-c\tList contents of filesystem tree\n"
238 "\t-e\tExtract control files to directory\n" 238 "\t-e\tExtract control files to directory\n"
239 "\t-x\tExctract packages filesystem tree to directory\n" 239 "\t-x\tExctract packages filesystem tree to directory\n"
240 "\t-X\tVerbose extract\n" 240 "\t-X\tVerbose extract"
241#endif 241#endif
242 ; 242 ;
243#endif 243#endif
244 244
245#if defined BB_DU 245#if defined BB_DU
246const char du_usage[] = 246const char du_usage[] =
247 "du [OPTION]... [FILE]...\n" 247 "du [OPTION]... [FILE]..."
248#ifndef BB_FEATURE_TRIVIAL_HELP 248#ifndef BB_FEATURE_TRIVIAL_HELP
249 "\nSummarizes disk space used for each FILE and/or directory.\n" 249 "\n\nSummarizes disk space used for each FILE and/or directory.\n"
250 "Disk space is printed in units of 1024 bytes.\n\n" 250 "Disk space is printed in units of 1024 bytes.\n\n"
251 "Options:\n" 251 "Options:\n"
252 "\t-l\tcount sizes many times if hard linked\n" 252 "\t-l\tcount sizes many times if hard linked\n"
253 "\t-s\tdisplay only a total for each argument\n" 253 "\t-s\tdisplay only a total for each argument"
254#endif 254#endif
255 ; 255 ;
256#endif 256#endif
257 257
258#if defined BB_DUMPKMAP 258#if defined BB_DUMPKMAP
259const char dumpkmap_usage[] = 259const char dumpkmap_usage[] =
260 "dumpkmap > keymap\n" 260 "dumpkmap > keymap"
261#ifndef BB_FEATURE_TRIVIAL_HELP 261#ifndef BB_FEATURE_TRIVIAL_HELP
262 "\nPrints out a binary keyboard translation table to standard input.\n" 262 "\n\nPrints out a binary keyboard translation table to standard input."
263#endif 263#endif
264 ; 264 ;
265#endif 265#endif
266 266
267#if defined BB_DUTMP 267#if defined BB_DUTMP
268const char dutmp_usage[] = 268const char dutmp_usage[] =
269 "dutmp [FILE]\n" 269 "dutmp [FILE]"
270#ifndef BB_FEATURE_TRIVIAL_HELP 270#ifndef BB_FEATURE_TRIVIAL_HELP
271 "\nDump utmp file format (pipe delimited) from FILE\n" 271 "\n\nDump utmp file format (pipe delimited) from FILE\n"
272 "or stdin to stdout. (i.e. 'dutmp /var/run/utmp')\n" 272 "or stdin to stdout. (i.e. 'dutmp /var/run/utmp')"
273#endif 273#endif
274 ; 274 ;
275#endif 275#endif
276 276
277#if defined BB_ECHO 277#if defined BB_ECHO
278const char echo_usage[] = 278const char echo_usage[] =
279 "echo [-neE] [ARG ...]\n" 279 "echo [-neE] [ARG ...]"
280#ifndef BB_FEATURE_TRIVIAL_HELP 280#ifndef BB_FEATURE_TRIVIAL_HELP
281 "\nPrints the specified ARGs to stdout\n\n" 281 "\n\nPrints the specified ARGs to stdout\n\n"
282 "Options:\n" 282 "Options:\n"
283 "\t-n\tsuppress trailing newline\n" 283 "\t-n\tsuppress trailing newline\n"
284 "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n" 284 "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
285 "\t-E\tdisable interpretation of backslash-escaped characters\n" 285 "\t-E\tdisable interpretation of backslash-escaped characters"
286#endif 286#endif
287 ; 287 ;
288#endif 288#endif
289 289
290#if defined BB_EXPR 290#if defined BB_EXPR
291const char expr_usage[] = 291const char expr_usage[] =
292 "expr EXPRESSION\n" 292 "expr EXPRESSION"
293#ifndef BB_FEATURE_TRIVIAL_HELP 293#ifndef BB_FEATURE_TRIVIAL_HELP
294 "\nPrints the value of EXPRESSION to standard output.\n\n" 294"\n\nPrints the value of EXPRESSION to standard output.\n\n"
295 "EXPRESSION may be:\n" 295"EXPRESSION may be:\n"
296 "ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2\n" 296"ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2\n"
297 "ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0\n" 297"ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0\n"
298 "ARG1 < ARG2 ARG1 is less than ARG2\n" 298"ARG1 < ARG2 ARG1 is less than ARG2\n"
299 "ARG1 <= ARG2 ARG1 is less than or equal to ARG2\n" 299"ARG1 <= ARG2 ARG1 is less than or equal to ARG2\n"
300 "ARG1 = ARG2 ARG1 is equal to ARG2\n" 300"ARG1 = ARG2 ARG1 is equal to ARG2\n"
301 "ARG1 != ARG2 ARG1 is unequal to ARG2\n" 301"ARG1 != ARG2 ARG1 is unequal to ARG2\n"
302 "ARG1 >= ARG2 ARG1 is greater than or equal to ARG2\n" 302"ARG1 >= ARG2 ARG1 is greater than or equal to ARG2\n"
303 "ARG1 > ARG2 ARG1 is greater than ARG2\n" 303"ARG1 > ARG2 ARG1 is greater than ARG2\n"
304 "ARG1 + ARG2 arithmetic sum of ARG1 and ARG2\n" 304"ARG1 + ARG2 arithmetic sum of ARG1 and ARG2\n"
305 "ARG1 - ARG2 arithmetic difference of ARG1 and ARG2\n" 305"ARG1 - ARG2 arithmetic difference of ARG1 and ARG2\n"
306 "ARG1 * ARG2 arithmetic product of ARG1 and ARG2\n" 306"ARG1 * ARG2 arithmetic product of ARG1 and ARG2\n"
307 "ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2\n" 307"ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2\n"
308 "ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2\n" 308"ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2\n"
309 "STRING : REGEXP anchored pattern match of REGEXP in STRING\n" 309"STRING : REGEXP anchored pattern match of REGEXP in STRING\n"
310 "match STRING REGEXP same as STRING : REGEXP\n" 310"match STRING REGEXP same as STRING : REGEXP\n"
311 "substr STRING POS LENGTH substring of STRING, POS counted from 1\n" 311"substr STRING POS LENGTH substring of STRING, POS counted from 1\n"
312 "index STRING CHARS index in STRING where any CHARS is found, or 0\n" 312"index STRING CHARS index in STRING where any CHARS is found, or 0\n"
313 "length STRING length of STRING\n" 313"length STRING length of STRING\n"
314 "quote TOKEN interpret TOKEN as a string, even if it is a \n" 314"quote TOKEN interpret TOKEN as a string, even if it is a \n"
315 " keyword like `match' or an operator like `/'\n" 315" keyword like `match' or an operator like `/'\n"
316 "( EXPRESSION ) value of EXPRESSION\n\n" 316"( EXPRESSION ) value of EXPRESSION\n\n"
317 "Beware that many operators need to be escaped or quoted for shells.\n" 317"Beware that many operators need to be escaped or quoted for shells.\n"
318 "Comparisons are arithmetic if both ARGs are numbers, else\n" 318"Comparisons are arithmetic if both ARGs are numbers, else\n"
319 "lexicographical. Pattern matches return the string matched between \n" 319"lexicographical. Pattern matches return the string matched between \n"
320 "\\( and \\) or null; if \\( and \\) are not used, they return the number \n" 320"\\( and \\) or null; if \\( and \\) are not used, they return the number \n"
321 "of characters matched or 0.\n" 321"of characters matched or 0."
322 322
323#endif 323#endif
324 ; 324 ;
@@ -327,59 +327,59 @@ const char expr_usage[] =
327 327
328#if defined BB_TRUE_FALSE 328#if defined BB_TRUE_FALSE
329const char false_usage[] = 329const char false_usage[] =
330 "false\n" 330 "false"
331#ifndef BB_FEATURE_TRIVIAL_HELP 331#ifndef BB_FEATURE_TRIVIAL_HELP
332 "\nReturn an exit code of FALSE (1).\n" 332 "\n\nReturn an exit code of FALSE (1)."
333#endif 333#endif
334 ; 334 ;
335#endif 335#endif
336 336
337#if defined BB_FDFLUSH 337#if defined BB_FDFLUSH
338const char fdflush_usage[] = 338const char fdflush_usage[] =
339 "fdflush DEVICE\n" 339 "fdflush DEVICE"
340#ifndef BB_FEATURE_TRIVIAL_HELP 340#ifndef BB_FEATURE_TRIVIAL_HELP
341 "\nForces floppy disk drive to detect disk change\n" 341 "\n\nForces floppy disk drive to detect disk change"
342#endif 342#endif
343 ; 343 ;
344#endif 344#endif
345 345
346#if defined BB_FIND 346#if defined BB_FIND
347const char find_usage[] = 347const char find_usage[] =
348 "find [PATH...] [EXPRESSION]\n" 348 "find [PATH...] [EXPRESSION]"
349#ifndef BB_FEATURE_TRIVIAL_HELP 349#ifndef BB_FEATURE_TRIVIAL_HELP
350 "\nSearch for files in a directory hierarchy. The default PATH is\n" 350 "\n\nSearch for files in a directory hierarchy. The default PATH is\n"
351 "the current directory; default EXPRESSION is '-print'\n\n" 351 "the current directory; default EXPRESSION is '-print'\n\n"
352 "\nEXPRESSION may consist of:\n" 352 "\nEXPRESSION may consist of:\n"
353 "\t-follow\t\tDereference symbolic links.\n" 353 "\t-follow\t\tDereference symbolic links.\n"
354 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n" 354 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
355 "\t-print\t\tprint the full file name followed by a newline to stdout.\n" 355 "\t-print\t\tprint the full file name followed by a newline to stdout."
356#endif 356#endif
357 ; 357 ;
358#endif 358#endif
359 359
360#if defined BB_FREE 360#if defined BB_FREE
361const char free_usage[] = 361const char free_usage[] =
362 "free\n" 362 "free"
363#ifndef BB_FEATURE_TRIVIAL_HELP 363#ifndef BB_FEATURE_TRIVIAL_HELP
364 "\nDisplays the amount of free and used system memory\n" 364 "\n\nDisplays the amount of free and used system memory"
365#endif 365#endif
366 ; 366 ;
367#endif 367#endif
368 368
369#if defined BB_FREERAMDISK 369#if defined BB_FREERAMDISK
370const char freeramdisk_usage[] = 370const char freeramdisk_usage[] =
371 "freeramdisk DEVICE\n" 371 "freeramdisk DEVICE"
372#ifndef BB_FEATURE_TRIVIAL_HELP 372#ifndef BB_FEATURE_TRIVIAL_HELP
373 "\nFrees all memory used by the specified ramdisk.\n" 373 "\n\nFrees all memory used by the specified ramdisk."
374#endif 374#endif
375 ; 375 ;
376#endif 376#endif
377 377
378#if defined BB_FSCK_MINIX 378#if defined BB_FSCK_MINIX
379const char fsck_minix_usage[] = 379const char fsck_minix_usage[] =
380 "Usage: fsck.minix [-larvsmf] /dev/name\n" 380 "Usage: fsck.minix [-larvsmf] /dev/name"
381#ifndef BB_FEATURE_TRIVIAL_HELP 381#ifndef BB_FEATURE_TRIVIAL_HELP
382 "\nPerforms a consistency check for MINIX filesystems.\n\n" 382 "\n\nPerforms a consistency check for MINIX filesystems.\n\n"
383 "Options:\n" 383 "Options:\n"
384 "\t-l\tLists all filenames\n" 384 "\t-l\tLists all filenames\n"
385 "\t-r\tPerform interactive repairs\n" 385 "\t-r\tPerform interactive repairs\n"
@@ -387,16 +387,16 @@ const char fsck_minix_usage[] =
387 "\t-v\tverbose\n" 387 "\t-v\tverbose\n"
388 "\t-s\tOutputs super-block information\n" 388 "\t-s\tOutputs super-block information\n"
389 "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n" 389 "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"
390 "\t-f\tForce file system check.\n\n" 390 "\t-f\tForce file system check."
391#endif 391#endif
392 ; 392 ;
393#endif 393#endif
394 394
395#if defined BB_GETOPT 395#if defined BB_GETOPT
396const char getopt_usage[] = 396const char getopt_usage[] =
397"getopt [OPTIONS]...\n" 397"getopt [OPTIONS]..."
398#ifndef BB_FEATURE_TRIVIAL_HELP 398#ifndef BB_FEATURE_TRIVIAL_HELP
399"Parse command options\n" 399"\nParse command options\n"
400" -a, --alternative Allow long options starting with single -\n" 400" -a, --alternative Allow long options starting with single -\n"
401" -l, --longoptions=longopts Long options to be recognized\n" 401" -l, --longoptions=longopts Long options to be recognized\n"
402" -n, --name=progname The name under which errors are reported\n" 402" -n, --name=progname The name under which errors are reported\n"
@@ -405,16 +405,16 @@ const char getopt_usage[] =
405" -Q, --quiet-output No normal output\n" 405" -Q, --quiet-output No normal output\n"
406" -s, --shell=shell Set shell quoting conventions\n" 406" -s, --shell=shell Set shell quoting conventions\n"
407" -T, --test Test for getopt(1) version\n" 407" -T, --test Test for getopt(1) version\n"
408" -u, --unqote Do not quote the output\n" 408" -u, --unqote Do not quote the output"
409#endif 409#endif
410; 410;
411#endif 411#endif
412 412
413#if defined BB_GREP 413#if defined BB_GREP
414const char grep_usage[] = 414const char grep_usage[] =
415 "grep [-ihHnqvs] pattern [files...]\n" 415 "grep [-ihHnqvs] pattern [files...]"
416#ifndef BB_FEATURE_TRIVIAL_HELP 416#ifndef BB_FEATURE_TRIVIAL_HELP
417 "\nSearch for PATTERN in each FILE or standard input.\n\n" 417 "\n\nSearch for PATTERN in each FILE or standard input.\n\n"
418 "Options:\n" 418 "Options:\n"
419 "\t-H\tprefix output lines with filename where match was found\n" 419 "\t-H\tprefix output lines with filename where match was found\n"
420 "\t-h\tsuppress the prefixing filename on output\n" 420 "\t-h\tsuppress the prefixing filename on output\n"
@@ -422,200 +422,198 @@ const char grep_usage[] =
422 "\t-n\tprint line number with output lines\n" 422 "\t-n\tprint line number with output lines\n"
423 "\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" 423 "\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n"
424 "\t-v\tselect non-matching lines\n" 424 "\t-v\tselect non-matching lines\n"
425 "\t-s\tsuppress file open/read error messages\n\n" 425 "\t-s\tsuppress file open/read error messages"
426#endif 426#endif
427 ; 427 ;
428#endif 428#endif
429 429
430#if defined BB_GUNZIP 430#if defined BB_GUNZIP
431const char gunzip_usage[] = 431const char gunzip_usage[] =
432 "gunzip [OPTION]... FILE\n" 432 "gunzip [OPTION]... FILE"
433#ifndef BB_FEATURE_TRIVIAL_HELP 433#ifndef BB_FEATURE_TRIVIAL_HELP
434 "\nUncompress FILE (or standard input if FILE is '-').\n\n" 434 "\n\nUncompress FILE (or standard input if FILE is '-').\n\n"
435 "Options:\n" 435 "Options:\n"
436 "\t-c\tWrite output to standard output\n" 436 "\t-c\tWrite output to standard output\n"
437 "\t-t\tTest compressed file integrity\n" 437 "\t-t\tTest compressed file integrity"
438#endif 438#endif
439 ; 439 ;
440#endif 440#endif
441 441
442#if defined BB_GZIP 442#if defined BB_GZIP
443const char gzip_usage[] = 443const char gzip_usage[] =
444 "gzip [OPTION]... FILE\n" 444 "gzip [OPTION]... FILE"
445#ifndef BB_FEATURE_TRIVIAL_HELP 445#ifndef BB_FEATURE_TRIVIAL_HELP
446 "\nCompress FILE with maximum compression.\n" 446 "\n\nCompress FILE with maximum compression.\n"
447 "When FILE is '-', reads standard input. Implies -c.\n\n" 447 "When FILE is '-', reads standard input. Implies -c.\n\n"
448 "Options:\n" 448 "Options:\n"
449 "\t-c\tWrite output to standard output instead of FILE.gz\n" 449 "\t-c\tWrite output to standard output instead of FILE.gz\n"
450 "\t-d\tdecompress\n" 450 "\t-d\tdecompress"
451#endif 451#endif
452 ; 452 ;
453#endif 453#endif
454 454
455#if defined BB_HALT 455#if defined BB_HALT
456const char halt_usage[] = 456const char halt_usage[] =
457 "halt\n" 457 "halt"
458#ifndef BB_FEATURE_TRIVIAL_HELP 458#ifndef BB_FEATURE_TRIVIAL_HELP
459 "\nHalt the system.\n" 459 "\n\nHalt the system."
460#endif 460#endif
461 ; 461 ;
462#endif 462#endif
463 463
464#if defined BB_HEAD 464#if defined BB_HEAD
465const char head_usage[] = 465const char head_usage[] =
466 "head [OPTION] [FILE]...\n" 466 "head [OPTION] [FILE]..."
467#ifndef BB_FEATURE_TRIVIAL_HELP 467#ifndef BB_FEATURE_TRIVIAL_HELP
468 "\nPrint first 10 lines of each FILE to standard output.\n" 468 "\n\nPrint first 10 lines of each FILE to standard output.\n"
469 "With more than one FILE, precede each with a header giving the\n" 469 "With more than one FILE, precede each with a header giving the\n"
470 "file name. With no FILE, or when FILE is -, read standard input.\n\n" 470 "file name. With no FILE, or when FILE is -, read standard input.\n\n"
471 471
472 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10\n" 472 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10"
473#endif 473#endif
474 ; 474 ;
475#endif 475#endif
476 476
477#if defined BB_HOSTID 477#if defined BB_HOSTID
478const char hostid_usage[] = 478const char hostid_usage[] =
479 "hostid\n" 479 "hostid"
480#ifndef BB_FEATURE_TRIVIAL_HELP 480#ifndef BB_FEATURE_TRIVIAL_HELP
481 "\nPrint out a unique 32-bit identifier for the machine.\n" 481 "\n\nPrint out a unique 32-bit identifier for the machine."
482#endif 482#endif
483 ; 483 ;
484#endif 484#endif
485 485
486#if defined BB_HOSTNAME 486#if defined BB_HOSTNAME
487const char hostname_usage[] = 487const char hostname_usage[] =
488 "hostname [OPTION] {hostname | -F file}\n" 488 "hostname [OPTION] {hostname | -F file}"
489#ifndef BB_FEATURE_TRIVIAL_HELP 489#ifndef BB_FEATURE_TRIVIAL_HELP
490 "\nGet or set the hostname or DNS domain name. If a hostname is given\n" 490 "\n\nGet or set the hostname or DNS domain name. If a hostname is given\n"
491 "(or a file with the -F parameter), the host name will be set.\n\n" 491 "(or a file with the -F parameter), the host name will be set.\n\n"
492
492 "Options:\n" 493 "Options:\n"
493 "\t-s\t\tShort\n" 494 "\t-s\t\tShort\n"
494
495 "\t-i\t\tAddresses for the hostname\n" 495 "\t-i\t\tAddresses for the hostname\n"
496 "\t-d\t\tDNS domain name\n" 496 "\t-d\t\tDNS domain name\n"
497 "\t-F, --file FILE\tUse the contents of FILE to specify the hostname\n" 497 "\t-F, --file FILE\tUse the contents of FILE to specify the hostname"
498#endif 498#endif
499 ; 499 ;
500#endif 500#endif
501 501
502#if defined BB_ID 502#if defined BB_ID
503const char id_usage[] = 503const char id_usage[] =
504 "id [OPTIONS]... [USERNAME]\n" 504 "id [OPTIONS]... [USERNAME]"
505#ifndef BB_FEATURE_TRIVIAL_HELP 505#ifndef BB_FEATURE_TRIVIAL_HELP
506 "\nPrint information for USERNAME or the current user\n\n" 506 "\n\nPrint information for USERNAME or the current user\n\n"
507 "Options:\n" 507 "Options:\n"
508 "\t-g\tprints only the group ID\n" 508 "\t-g\tprints only the group ID\n"
509 "\t-u\tprints only the user ID\n" 509 "\t-u\tprints only the user ID\n"
510 "\t-r\tprints the real user ID instead of the effective ID (with -ug)\n\n" 510 "\t-r\tprints the real user ID instead of the effective ID (with -ug)"
511#endif 511#endif
512 ; 512 ;
513#endif 513#endif
514 514
515#if defined BB_INSMOD 515#if defined BB_INSMOD
516const char insmod_usage[] = 516const char insmod_usage[] =
517 "insmod [OPTION]... MODULE [symbol=value]...\n" 517 "insmod [OPTION]... MODULE [symbol=value]..."
518#ifndef BB_FEATURE_TRIVIAL_HELP 518#ifndef BB_FEATURE_TRIVIAL_HELP
519 "\nLoads the specified kernel modules into the kernel.\n\n" 519 "\n\nLoads the specified kernel modules into the kernel.\n\n"
520 "Options:\n" 520 "Options:\n"
521 "\t-f\tForce module to load into the wrong kernel version.\n" 521 "\t-f\tForce module to load into the wrong kernel version.\n"
522 "\t-k\tMake module autoclean-able.\n" 522 "\t-k\tMake module autoclean-able.\n"
523 "\t-v\tverbose output\n" "\t-x\tdo not export externs\n" 523 "\t-v\tverbose output\n" "\t-x\tdo not export externs"
524#endif 524#endif
525 ; 525 ;
526#endif 526#endif
527 527
528#if defined BB_KILL 528#if defined BB_KILL
529const char kill_usage[] = 529const char kill_usage[] =
530 "kill [-signal] process-id [process-id ...]\n" 530 "kill [-signal] process-id [process-id ...]"
531#ifndef BB_FEATURE_TRIVIAL_HELP 531#ifndef BB_FEATURE_TRIVIAL_HELP
532 "\nSend a signal (default is SIGTERM) to the specified process(es).\n\n" 532 "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
533 "Options:\n" "\t-l\tList all signal names and numbers.\n\n" 533 "Options:\n" "\t-l\tList all signal names and numbers."
534#endif 534#endif
535 ; 535 ;
536#endif 536#endif
537 537
538#if defined BB_KILLALL 538#if defined BB_KILLALL
539const char killall_usage[] = 539const char killall_usage[] =
540 "killall [-signal] process-name [process-name ...]\n" 540 "killall [-signal] process-name [process-name ...]"
541#ifndef BB_FEATURE_TRIVIAL_HELP 541#ifndef BB_FEATURE_TRIVIAL_HELP
542 "\nSend a signal (default is SIGTERM) to the specified process(es).\n\n" 542 "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
543 "Options:\n" "\t-l\tList all signal names and numbers.\n\n" 543 "Options:\n" "\t-l\tList all signal names and numbers."
544#endif 544#endif
545 ; 545 ;
546#endif 546#endif
547 547
548#if defined BB_LENGTH 548#if defined BB_LENGTH
549const char length_usage[] = 549const char length_usage[] =
550 "length STRING\n" 550 "length STRING"
551#ifndef BB_FEATURE_TRIVIAL_HELP 551#ifndef BB_FEATURE_TRIVIAL_HELP
552 "\nPrints out the length of the specified STRING.\n" 552 "\n\nPrints out the length of the specified STRING."
553#endif 553#endif
554 ; 554 ;
555#endif 555#endif
556 556
557#if defined BB_LN 557#if defined BB_LN
558const char ln_usage[] = 558const char ln_usage[] =
559 "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n" 559 "ln [OPTION] TARGET... LINK_NAME|DIRECTORY"
560#ifndef BB_FEATURE_TRIVIAL_HELP 560#ifndef BB_FEATURE_TRIVIAL_HELP
561 "\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n" 561 "\n\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n"
562 "\nYou may use '--' to indicate that all following arguments are non-options.\n\n" 562 "\nYou may use '--' to indicate that all following arguments are non-options.\n\n"
563 "Options:\n" 563 "Options:\n"
564 "\t-s\tmake symbolic links instead of hard links\n" 564 "\t-s\tmake symbolic links instead of hard links\n"
565
566 "\t-f\tremove existing destination files\n" 565 "\t-f\tremove existing destination files\n"
567 "\t-n\tno dereference symlinks - treat like normal file\n" 566 "\t-n\tno dereference symlinks - treat like normal file"
568#endif 567#endif
569 ; 568 ;
570#endif 569#endif
571 570
572#if defined BB_LOADACM 571#if defined BB_LOADACM
573const char loadacm_usage[] = 572const char loadacm_usage[] =
574 "loadacm < mapfile\n" 573 "loadacm < mapfile"
575#ifndef BB_FEATURE_TRIVIAL_HELP 574#ifndef BB_FEATURE_TRIVIAL_HELP
576 "\nLoads an acm from standard input.\n" 575 "\n\nLoads an acm from standard input."
577#endif 576#endif
578 ; 577 ;
579#endif 578#endif
580 579
581#if defined BB_LOADFONT 580#if defined BB_LOADFONT
582const char loadfont_usage[] = 581const char loadfont_usage[] =
583 "loadfont < font\n" 582 "loadfont < font"
584#ifndef BB_FEATURE_TRIVIAL_HELP 583#ifndef BB_FEATURE_TRIVIAL_HELP
585 "Loads a console font from standard input.\n" 584 "\n\nLoads a console font from standard input."
586#endif 585#endif
587 ; 586 ;
588#endif 587#endif
589 588
590#if defined BB_LOADKMAP 589#if defined BB_LOADKMAP
591const char loadkmap_usage[] = 590const char loadkmap_usage[] =
592 "loadkmap < keymap\n" 591 "loadkmap < keymap"
593#ifndef BB_FEATURE_TRIVIAL_HELP 592#ifndef BB_FEATURE_TRIVIAL_HELP
594 "\nLoads a binary keyboard translation table from standard input.\n" 593 "\n\nLoads a binary keyboard translation table from standard input."
595#endif 594#endif
596 ; 595 ;
597#endif 596#endif
598 597
599#if defined BB_LOGGER 598#if defined BB_LOGGER
600const char logger_usage[] = 599const char logger_usage[] =
601 "logger [OPTION]... [MESSAGE]\n" 600 "logger [OPTION]... [MESSAGE]"
602#ifndef BB_FEATURE_TRIVIAL_HELP 601#ifndef BB_FEATURE_TRIVIAL_HELP
603 "\nWrite MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n\n" 602 "\n\nWrite MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n\n"
604 "Options:\n" 603 "Options:\n"
605 "\t-s\tLog to stderr as well as the system log.\n" 604 "\t-s\tLog to stderr as well as the system log.\n"
606 "\t-t\tLog using the specified tag (defaults to user name).\n" 605 "\t-t\tLog using the specified tag (defaults to user name).\n"
607
608 "\t-p\tEnter the message with the specified priority.\n" 606 "\t-p\tEnter the message with the specified priority.\n"
609 "\t\tThis may be numerical or a ``facility.level'' pair.\n" 607 "\t\tThis may be numerical or a ``facility.level'' pair."
610#endif 608#endif
611 ; 609 ;
612#endif 610#endif
613 611
614#if defined BB_LOGNAME 612#if defined BB_LOGNAME
615const char logname_usage[] = 613const char logname_usage[] =
616 "logname\n" 614 "logname"
617#ifndef BB_FEATURE_TRIVIAL_HELP 615#ifndef BB_FEATURE_TRIVIAL_HELP
618 "\nPrint the name of the current user.\n" 616 "\n\nPrint the name of the current user."
619#endif 617#endif
620 ; 618 ;
621#endif 619#endif
@@ -663,9 +661,9 @@ const char ls_usage[] =
663#ifdef BB_FEATURE_LS_SORTFILES 661#ifdef BB_FEATURE_LS_SORTFILES
664 "X" 662 "X"
665#endif 663#endif
666 "] [filenames...]\n" 664 "] [filenames...]"
667#ifndef BB_FEATURE_TRIVIAL_HELP 665#ifndef BB_FEATURE_TRIVIAL_HELP
668 "\nList directory contents\n\n" 666 "\n\nList directory contents\n\n"
669 "Options:\n" 667 "Options:\n"
670 "\t-1\tlist files in a single column\n" 668 "\t-1\tlist files in a single column\n"
671 "\t-A\tdo not list implied . and ..\n" 669 "\t-A\tdo not list implied . and ..\n"
@@ -689,7 +687,7 @@ const char ls_usage[] =
689 "\t-p\tappend indicator (one of /=@|) to entries\n" 687 "\t-p\tappend indicator (one of /=@|) to entries\n"
690#endif 688#endif
691#ifdef BB_FEATURE_LS_FOLLOWLINKS 689#ifdef BB_FEATURE_LS_FOLLOWLINKS
692 "\t-L\tlist entries pointed to by symbolic links\n" 690 "\t-L\tlist entries pointed to by symbolic links\n"
693#endif 691#endif
694#ifdef BB_FEATURE_LS_RECURSIVE 692#ifdef BB_FEATURE_LS_RECURSIVE
695 "\t-R\tlist subdirectories recursively\n" 693 "\t-R\tlist subdirectories recursively\n"
@@ -724,18 +722,18 @@ const char ls_usage[] =
724 722
725#if defined BB_LSMOD 723#if defined BB_LSMOD
726const char lsmod_usage[] = 724const char lsmod_usage[] =
727 "lsmod\n" 725 "lsmod"
728#ifndef BB_FEATURE_TRIVIAL_HELP 726#ifndef BB_FEATURE_TRIVIAL_HELP
729 "\nList the currently loaded kernel modules.\n" 727 "\n\nList the currently loaded kernel modules."
730#endif 728#endif
731 ; 729 ;
732#endif 730#endif
733 731
734#if defined BB_MAKEDEVS 732#if defined BB_MAKEDEVS
735const char makedevs_usage[] = 733const char makedevs_usage[] =
736 "makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]\n" 734 "makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]"
737#ifndef BB_FEATURE_TRIVIAL_HELP 735#ifndef BB_FEATURE_TRIVIAL_HELP
738 "\nCreates a range of block or character special files\n\n" 736 "\n\nCreates a range of block or character special files\n\n"
739 "TYPEs include:\n" 737 "TYPEs include:\n"
740 "\tb:\tMake a block (buffered) device.\n" 738 "\tb:\tMake a block (buffered) device.\n"
741 "\tc or u:\tMake a character (un-buffered) device.\n" 739 "\tc or u:\tMake a character (un-buffered) device.\n"
@@ -745,7 +743,7 @@ const char makedevs_usage[] =
745 "If 's' is the last argument, the base device is created as well.\n\n" 743 "If 's' is the last argument, the base device is created as well.\n\n"
746 "For example:\n" 744 "For example:\n"
747 "\tmakedevs /dev/ttyS c 4 66 2 63 -> ttyS2-ttyS63\n" 745 "\tmakedevs /dev/ttyS c 4 66 2 63 -> ttyS2-ttyS63\n"
748 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8\n" 746 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8"
749#endif 747#endif
750 ; 748 ;
751#endif 749#endif
@@ -753,9 +751,9 @@ const char makedevs_usage[] =
753#if defined BB_MD5SUM 751#if defined BB_MD5SUM
754const char md5sum_usage[] = 752const char md5sum_usage[] =
755 "md5sum [OPTION] [FILE]...\n" 753 "md5sum [OPTION] [FILE]...\n"
756 "or: md5sum [OPTION] -c [FILE]\n" 754 "or: md5sum [OPTION] -c [FILE]"
757#ifndef BB_FEATURE_TRIVIAL_HELP 755#ifndef BB_FEATURE_TRIVIAL_HELP
758 "\nPrint or check MD5 checksums.\n\n" 756 "\n\nPrint or check MD5 checksums.\n\n"
759 "Options:\n" 757 "Options:\n"
760 "With no FILE, or when FILE is -, read standard input.\n\n" 758 "With no FILE, or when FILE is -, read standard input.\n\n"
761 "\t-b\tread files in binary mode\n" 759 "\t-b\tread files in binary mode\n"
@@ -764,103 +762,102 @@ const char md5sum_usage[] =
764 "\t-g\tread a string\n" 762 "\t-g\tread a string\n"
765 "\nThe following two options are useful only when verifying checksums:\n" 763 "\nThe following two options are useful only when verifying checksums:\n"
766 "\t-s,\tdon't output anything, status code shows success\n" 764 "\t-s,\tdon't output anything, status code shows success\n"
767 "\t-w,\twarn about improperly formated MD5 checksum lines\n" 765 "\t-w,\twarn about improperly formated MD5 checksum lines"
768#endif 766#endif
769 ; 767 ;
770#endif 768#endif
771 769
772#if defined BB_MKDIR 770#if defined BB_MKDIR
773const char mkdir_usage[] = 771const char mkdir_usage[] =
774 "mkdir [OPTION] DIRECTORY...\n" 772 "mkdir [OPTION] DIRECTORY..."
775#ifndef BB_FEATURE_TRIVIAL_HELP 773#ifndef BB_FEATURE_TRIVIAL_HELP
776 "\nCreate the DIRECTORY(ies), if they do not already exist\n\n" 774 "\n\nCreate the DIRECTORY(ies), if they do not already exist\n\n"
775
777 "Options:\n" 776 "Options:\n"
778
779 "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" 777 "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n"
780 "\t-p\tno error if existing, make parent directories as needed\n" 778 "\t-p\tno error if existing, make parent directories as needed"
781#endif 779#endif
782 ; 780 ;
783#endif 781#endif
784 782
785#if defined BB_MKFIFO 783#if defined BB_MKFIFO
786const char mkfifo_usage[] = 784const char mkfifo_usage[] =
787 "mkfifo [OPTIONS] name\n" 785 "mkfifo [OPTIONS] name"
788#ifndef BB_FEATURE_TRIVIAL_HELP 786#ifndef BB_FEATURE_TRIVIAL_HELP
789 "\nCreates a named pipe (identical to 'mknod name p')\n\n" 787 "\n\nCreates a named pipe (identical to 'mknod name p')\n\n"
790 "Options:\n" 788 "Options:\n"
791 "\t-m\tcreate the pipe using the specified mode (default a=rw)\n" 789 "\t-m\tcreate the pipe using the specified mode (default a=rw)"
792#endif 790#endif
793 ; 791 ;
794#endif 792#endif
795 793
796#if defined BB_MKFS_MINIX 794#if defined BB_MKFS_MINIX
797const char mkfs_minix_usage[] = 795const char mkfs_minix_usage[] =
798 "mkfs.minix [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n" 796 "mkfs.minix [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
799#ifndef BB_FEATURE_TRIVIAL_HELP 797#ifndef BB_FEATURE_TRIVIAL_HELP
800 "\nMake a MINIX filesystem.\n\n" 798 "\n\nMake a MINIX filesystem.\n\n"
801 "Options:\n" 799 "Options:\n"
802 "\t-c\t\tCheck the device for bad blocks\n" 800 "\t-c\t\tCheck the device for bad blocks\n"
803 "\t-n [14|30]\tSpecify the maximum length of filenames\n" 801 "\t-n [14|30]\tSpecify the maximum length of filenames\n"
804 "\t-i INODES\tSpecify the number of inodes for the filesystem\n" 802 "\t-i INODES\tSpecify the number of inodes for the filesystem\n"
805 "\t-l FILENAME\tRead the bad blocks list from FILENAME\n" 803 "\t-l FILENAME\tRead the bad blocks list from FILENAME\n"
806 "\t-v\t\tMake a Minix version 2 filesystem\n\n" 804 "\t-v\t\tMake a Minix version 2 filesystem"
807#endif 805#endif
808 ; 806 ;
809#endif 807#endif
810 808
811#if defined BB_MKNOD 809#if defined BB_MKNOD
812const char mknod_usage[] = 810const char mknod_usage[] =
813 "mknod [OPTIONS] NAME TYPE MAJOR MINOR\n" 811 "mknod [OPTIONS] NAME TYPE MAJOR MINOR"
814#ifndef BB_FEATURE_TRIVIAL_HELP 812#ifndef BB_FEATURE_TRIVIAL_HELP
815 "\nCreate a special file (block, character, or pipe).\n\n" 813 "\n\nCreate a special file (block, character, or pipe).\n\n"
816 "Options:\n" 814 "Options:\n"
817 "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n" 815 "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n"
818 "TYPEs include:\n" 816 "TYPEs include:\n"
819 "\tb:\tMake a block (buffered) device.\n" 817 "\tb:\tMake a block (buffered) device.\n"
820 "\tc or u:\tMake a character (un-buffered) device.\n" 818 "\tc or u:\tMake a character (un-buffered) device.\n"
821 "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n" 819 "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes."
822#endif 820#endif
823 ; 821 ;
824#endif 822#endif
825 823
826#if defined BB_MKSWAP 824#if defined BB_MKSWAP
827const char mkswap_usage[] = 825const char mkswap_usage[] =
828 "mkswap [-c] [-v0|-v1] device [block-count]\n" 826 "mkswap [-c] [-v0|-v1] device [block-count]"
829#ifndef BB_FEATURE_TRIVIAL_HELP 827#ifndef BB_FEATURE_TRIVIAL_HELP
830 "\nPrepare a disk partition to be used as a swap partition.\n\n" 828 "\n\nPrepare a disk partition to be used as a swap partition.\n\n"
831 "Options:\n" "\t-c\t\tCheck for read-ability.\n" 829 "Options:\n" "\t-c\t\tCheck for read-ability.\n"
832 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" 830 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n"
833 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" 831 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n"
834 832 "\tblock-count\tNumber of block to use (default is entire partition)."
835 "\tblock-count\tNumber of block to use (default is entire partition).\n"
836#endif 833#endif
837 ; 834 ;
838#endif 835#endif
839 836
840#if defined BB_MKTEMP 837#if defined BB_MKTEMP
841const char mktemp_usage[] = 838const char mktemp_usage[] =
842 "mktemp [-q] TEMPLATE\n" 839 "mktemp [-q] TEMPLATE"
843#ifndef BB_FEATURE_TRIVIAL_HELP 840#ifndef BB_FEATURE_TRIVIAL_HELP
844 "\nCreates a temporary file with its name based on TEMPLATE.\n" 841 "\n\nCreates a temporary file with its name based on TEMPLATE.\n"
845 "TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).\n" 842 "TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX)."
846#endif 843#endif
847 ; 844 ;
848#endif 845#endif
849 846
850#if defined BB_MORE 847#if defined BB_MORE
851const char more_usage[] = 848const char more_usage[] =
852 "more [FILE ...]\n" 849 "more [FILE ...]"
853#ifndef BB_FEATURE_TRIVIAL_HELP 850#ifndef BB_FEATURE_TRIVIAL_HELP
854 "\nMore is a filter for viewing FILE one screenful at a time.\n" 851 "\n\nMore is a filter for viewing FILE one screenful at a time."
855#endif 852#endif
856 ; 853 ;
857#endif 854#endif
858 855
859#if defined BB_MOUNT 856#if defined BB_MOUNT
860const char mount_usage[] = 857const char mount_usage[] =
861 "mount [flags] device directory [-o options,more-options]\n" 858 "mount [flags] device directory [-o options,more-options]"
862#ifndef BB_FEATURE_TRIVIAL_HELP 859#ifndef BB_FEATURE_TRIVIAL_HELP
863 "\nMount a filesystem\n\n" 860 "\n\nMount a filesystem\n\n"
864 "Flags:\n" 861 "Flags:\n"
865 "\t-a:\t\tMount all filesystems in fstab.\n" 862 "\t-a:\t\tMount all filesystems in fstab.\n"
866#ifdef BB_MTAB 863#ifdef BB_MTAB
@@ -884,21 +881,21 @@ const char mount_usage[] =
884 "\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n" 881 "\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n"
885 "\tro/rw:\t\tMount for read-only / read-write.\n" 882 "\tro/rw:\t\tMount for read-only / read-write.\n"
886 "\nThere are EVEN MORE flags that are specific to each filesystem.\n" 883 "\nThere are EVEN MORE flags that are specific to each filesystem.\n"
887 "You'll have to see the written documentation for those.\n" 884 "You'll have to see the written documentation for those."
888#endif 885#endif
889 ; 886 ;
890#endif 887#endif
891 888
892#if defined BB_MT 889#if defined BB_MT
893const char mt_usage[] = 890const char mt_usage[] =
894 "mt [-f device] opcode value\n" 891 "mt [-f device] opcode value"
895#ifndef BB_FEATURE_TRIVIAL_HELP 892#ifndef BB_FEATURE_TRIVIAL_HELP
896 "\nControl magnetic tape drive operation\n" 893 "\n\nControl magnetic tape drive operation\n"
897 "\nAvailable Opcodes:\n\n" 894 "\nAvailable Opcodes:\n\n"
898 "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n" 895 "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n"
899 "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n" 896 "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n"
900 "ras3 reset retension rew rewoffline seek setblk setdensity\n" 897 "ras3 reset retension rew rewoffline seek setblk setdensity\n"
901 "setpart tell unload unlock weof wset\n" 898 "setpart tell unload unlock weof wset"
902#endif 899#endif
903 ; 900 ;
904#endif 901#endif
@@ -906,27 +903,27 @@ const char mt_usage[] =
906#if defined BB_CP_MV 903#if defined BB_CP_MV
907const char mv_usage[] = 904const char mv_usage[] =
908 "mv SOURCE DEST\n" 905 "mv SOURCE DEST\n"
909 " or: mv SOURCE... DIRECTORY\n" 906 " or: mv SOURCE... DIRECTORY"
910#ifndef BB_FEATURE_TRIVIAL_HELP 907#ifndef BB_FEATURE_TRIVIAL_HELP
911 "\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n" 908 "\n\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
912#endif 909#endif
913 ; 910 ;
914#endif 911#endif
915 912
916#if defined BB_NC 913#if defined BB_NC
917const char nc_usage[] = 914const char nc_usage[] =
918 "nc [IP] [port]\n" 915 "nc [IP] [port]"
919#ifndef BB_FEATURE_TRIVIAL_HELP 916#ifndef BB_FEATURE_TRIVIAL_HELP
920 "\nNetcat opens a pipe to IP:port\n" 917 "\n\nNetcat opens a pipe to IP:port"
921#endif 918#endif
922 ; 919 ;
923#endif 920#endif
924 921
925#if defined BB_NSLOOKUP 922#if defined BB_NSLOOKUP
926const char nslookup_usage[] = 923const char nslookup_usage[] =
927 "nslookup [HOST]\n" 924 "nslookup [HOST]"
928#ifndef BB_FEATURE_TRIVIAL_HELP 925#ifndef BB_FEATURE_TRIVIAL_HELP
929 "\nQueries the nameserver for the IP address of the given HOST\n" 926 "\n\nQueries the nameserver for the IP address of the given HOST"
930#endif 927#endif
931; 928;
932#endif 929#endif
@@ -934,21 +931,21 @@ const char nslookup_usage[] =
934#if defined BB_PING 931#if defined BB_PING
935#if defined BB_FEATURE_SIMPLE_PING 932#if defined BB_FEATURE_SIMPLE_PING
936const char ping_usage[] = 933const char ping_usage[] =
937 "ping host\n" 934 "ping host"
938#ifndef BB_FEATURE_TRIVIAL_HELP 935#ifndef BB_FEATURE_TRIVIAL_HELP
939 "\nSend ICMP ECHO_REQUEST packets to network hosts\n" 936 "\n\nSend ICMP ECHO_REQUEST packets to network hosts"
940#endif 937#endif
941 ; 938 ;
942#else /* ! defined BB_FEATURE_SIMPLE_PING */ 939#else /* ! defined BB_FEATURE_SIMPLE_PING */
943const char ping_usage[] = 940const char ping_usage[] =
944 "ping [OPTION]... host\n" 941 "ping [OPTION]... host"
945#ifndef BB_FEATURE_TRIVIAL_HELP 942#ifndef BB_FEATURE_TRIVIAL_HELP
946 "\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n" 943 "\n\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n"
947 "Options:\n" 944 "Options:\n"
948 "\t-c COUNT\tSend only COUNT pings.\n" 945 "\t-c COUNT\tSend only COUNT pings.\n"
949 "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n" 946 "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n"
950 "\t-q\t\tQuiet mode, only displays output at start\n" 947 "\t-q\t\tQuiet mode, only displays output at start\n"
951 "\t\t\tand when finished.\n" 948 "\t\t\tand when finished."
952#endif 949#endif
953 ; 950 ;
954#endif 951#endif
@@ -956,79 +953,79 @@ const char ping_usage[] =
956 953
957#if defined BB_POWEROFF 954#if defined BB_POWEROFF
958const char poweroff_usage[] = 955const char poweroff_usage[] =
959 "poweroff\n" 956 "poweroff"
960#ifndef BB_FEATURE_TRIVIAL_HELP 957#ifndef BB_FEATURE_TRIVIAL_HELP
961 "\nHalt the system and request that the kernel shut off the power.\n" 958 "\n\nHalt the system and request that the kernel shut off the power."
962#endif 959#endif
963 ; 960 ;
964#endif 961#endif
965 962
966#if defined BB_PRINTF 963#if defined BB_PRINTF
967const char printf_usage[] = 964const char printf_usage[] =
968 "printf FORMAT [ARGUMENT...]\n" 965 "printf FORMAT [ARGUMENT...]"
969#ifndef BB_FEATURE_TRIVIAL_HELP 966#ifndef BB_FEATURE_TRIVIAL_HELP
970 "\nFormats and prints ARGUMENT(s) according to FORMAT,\n" 967 "\n\nFormats and prints ARGUMENT(s) according to FORMAT,\n"
971 "Where FORMAT controls the output exactly as in C printf.\n" 968 "Where FORMAT controls the output exactly as in C printf."
972#endif 969#endif
973 ; 970 ;
974#endif 971#endif
975 972
976#if defined BB_PS 973#if defined BB_PS
977const char ps_usage[] = 974const char ps_usage[] =
978 "ps\n" 975 "ps"
979#ifndef BB_FEATURE_TRIVIAL_HELP 976#ifndef BB_FEATURE_TRIVIAL_HELP
980 "\nReport process status\n" 977 "\n\nReport process status\n"
981 "\nThis version of ps accepts no options.\n" 978 "\nThis version of ps accepts no options."
982#endif 979#endif
983 ; 980 ;
984#endif 981#endif
985 982
986#if defined BB_PWD 983#if defined BB_PWD
987const char pwd_usage[] = 984const char pwd_usage[] =
988 "pwd\n" 985 "pwd"
989#ifndef BB_FEATURE_TRIVIAL_HELP 986#ifndef BB_FEATURE_TRIVIAL_HELP
990 "\nPrint the full filename of the current working directory.\n" 987 "\n\nPrint the full filename of the current working directory."
991#endif 988#endif
992 ; 989 ;
993#endif 990#endif
994 991
995#if defined BB_RDATE 992#if defined BB_RDATE
996const char rdate_usage[] = 993const char rdate_usage[] =
997 "rdate [OPTION] HOST\n" 994 "rdate [OPTION] HOST"
998#ifndef BB_FEATURE_TRIVIAL_HELP 995#ifndef BB_FEATURE_TRIVIAL_HELP
999 "\nGet and possibly set the system date and time from a remote HOST.\n" 996 "\n\nGet and possibly set the system date and time from a remote HOST.\n"
1000 "Options:\n" 997 "Options:\n"
1001 "\t-s\tSet the system date and time (default).\n" 998 "\t-s\tSet the system date and time (default).\n"
1002 "\t-p\tPrint the date and time.\n" 999 "\t-p\tPrint the date and time."
1003#endif 1000#endif
1004 ; 1001 ;
1005#endif 1002#endif
1006 1003
1007#if defined BB_READLINK 1004#if defined BB_READLINK
1008const char readlink_usage[] = 1005const char readlink_usage[] =
1009 "readlink\n" 1006 "readlink"
1010#ifndef BB_FEATURE_TRIVIAL_HELP 1007#ifndef BB_FEATURE_TRIVIAL_HELP
1011 "\nRead a symbolic link.\n" 1008 "\n\nRead a symbolic link."
1012#endif 1009#endif
1013 ; 1010 ;
1014#endif 1011#endif
1015 1012
1016#if defined BB_REBOOT 1013#if defined BB_REBOOT
1017const char reboot_usage[] = 1014const char reboot_usage[] =
1018 "reboot\n" 1015 "reboot"
1019#ifndef BB_FEATURE_TRIVIAL_HELP 1016#ifndef BB_FEATURE_TRIVIAL_HELP
1020 "\nReboot the system.\n" 1017 "\n\nReboot the system."
1021#endif 1018#endif
1022 ; 1019 ;
1023#endif 1020#endif
1024 1021
1025#if defined BB_RENICE 1022#if defined BB_RENICE
1026const char renice_usage[] = 1023const char renice_usage[] =
1027 "renice priority pid [pid ...]\n" 1024 "renice priority pid [pid ...]"
1028#ifndef BB_FEATURE_TRIVIAL_HELP 1025#ifndef BB_FEATURE_TRIVIAL_HELP
1029 "\nChanges priority of running processes. Allowed priorities range\n" 1026 "\n\nChanges priority of running processes. Allowed priorities range\n"
1030 "from 20 (the process runs only when nothing else is running) to 0\n" 1027 "from 20 (the process runs only when nothing else is running) to 0\n"
1031 "(default priority) to -20 (almost nothing else ever gets to run).\n" 1028 "(default priority) to -20 (almost nothing else ever gets to run)."
1032#endif 1029#endif
1033 ; 1030 ;
1034#endif 1031#endif
@@ -1036,60 +1033,60 @@ const char renice_usage[] =
1036 1033
1037#if defined BB_RESET 1034#if defined BB_RESET
1038const char reset_usage[] = 1035const char reset_usage[] =
1039 "reset\n" 1036 "reset"
1040#ifndef BB_FEATURE_TRIVIAL_HELP 1037#ifndef BB_FEATURE_TRIVIAL_HELP
1041 "\nResets the screen.\n" 1038 "\n\nResets the screen."
1042#endif 1039#endif
1043 ; 1040 ;
1044#endif 1041#endif
1045 1042
1046#if defined BB_RM 1043#if defined BB_RM
1047const char rm_usage[] = 1044const char rm_usage[] =
1048 "rm [OPTION]... FILE...\n" 1045 "rm [OPTION]... FILE..."
1049#ifndef BB_FEATURE_TRIVIAL_HELP 1046#ifndef BB_FEATURE_TRIVIAL_HELP
1050 "\nRemove (unlink) the FILE(s). You may use '--' to\n" 1047 "\n\nRemove (unlink) the FILE(s). You may use '--' to\n"
1051 "indicate that all following arguments are non-options.\n\n" 1048 "indicate that all following arguments are non-options.\n\n"
1052 "Options:\n" 1049 "Options:\n"
1053 "\t-f\t\tremove existing destinations, never prompt\n" 1050 "\t-f\t\tremove existing destinations, never prompt\n"
1054 "\t-r or -R\tremove the contents of directories recursively\n" 1051 "\t-r or -R\tremove the contents of directories recursively"
1055#endif 1052#endif
1056 ; 1053 ;
1057#endif 1054#endif
1058 1055
1059#if defined BB_RMDIR 1056#if defined BB_RMDIR
1060const char rmdir_usage[] = 1057const char rmdir_usage[] =
1061 "rmdir [OPTION]... DIRECTORY...\n" 1058 "rmdir [OPTION]... DIRECTORY..."
1062#ifndef BB_FEATURE_TRIVIAL_HELP 1059#ifndef BB_FEATURE_TRIVIAL_HELP
1063 "\nRemove the DIRECTORY(ies), if they are empty.\n" 1060 "\n\nRemove the DIRECTORY(ies), if they are empty."
1064#endif 1061#endif
1065 ; 1062 ;
1066#endif 1063#endif
1067 1064
1068#if defined BB_RMMOD 1065#if defined BB_RMMOD
1069const char rmmod_usage[] = 1066const char rmmod_usage[] =
1070 "rmmod [OPTION]... [MODULE]...\n" 1067 "rmmod [OPTION]... [MODULE]..."
1071#ifndef BB_FEATURE_TRIVIAL_HELP 1068#ifndef BB_FEATURE_TRIVIAL_HELP
1072 "\nUnloads the specified kernel modules from the kernel.\n\n" 1069 "\n\nUnloads the specified kernel modules from the kernel.\n\n"
1073 "Options:\n" 1070 "Options:\n"
1074 "\t-a\tTry to remove all unused kernel modules.\n" 1071 "\t-a\tTry to remove all unused kernel modules."
1075#endif 1072#endif
1076 ; 1073 ;
1077#endif 1074#endif
1078 1075
1079#if defined BB_RPMUNPACK 1076#if defined BB_RPMUNPACK
1080const char rpmunpack_usage[] = 1077const char rpmunpack_usage[] =
1081 "rpmunpack < package.rpm | gunzip | cpio -idmuv\n" 1078 "rpmunpack < package.rpm | gunzip | cpio -idmuv"
1082#ifndef BB_FEATURE_TRIVIAL_HELP 1079#ifndef BB_FEATURE_TRIVIAL_HELP
1083 "\nExtracts an rpm archive.\n" 1080 "\n\nExtracts an rpm archive."
1084#endif 1081#endif
1085 ; 1082 ;
1086#endif 1083#endif
1087 1084
1088#if defined BB_SED 1085#if defined BB_SED
1089const char sed_usage[] = 1086const char sed_usage[] =
1090 "sed [-Vhnef] pattern [files...]\n" 1087 "sed [-Vhnef] pattern [files...]"
1091#ifndef BB_FEATURE_TRIVIAL_HELP 1088#ifndef BB_FEATURE_TRIVIAL_HELP
1092 "\n" 1089 "\n\n"
1093 "-n\t\tsuppress automatic printing of pattern space\n" 1090 "-n\t\tsuppress automatic printing of pattern space\n"
1094 "-e script\tadd the script to the commands to be executed\n" 1091 "-e script\tadd the script to the commands to be executed\n"
1095 "-f scriptfile\tadd the contents of script-file to the commands to be executed\n" 1092 "-f scriptfile\tadd the contents of script-file to the commands to be executed\n"
@@ -1097,19 +1094,19 @@ const char sed_usage[] =
1097 "\n" 1094 "\n"
1098 "If no -e or -f is given, the first non-option argument is taken as the\n" 1095 "If no -e or -f is given, the first non-option argument is taken as the\n"
1099 "sed script to interpret. All remaining arguments are names of input\n" 1096 "sed script to interpret. All remaining arguments are names of input\n"
1100 "files; if no input files are specified, then the standard input is read.\n" 1097 "files; if no input files are specified, then the standard input is read."
1101#endif 1098#endif
1102 ; 1099 ;
1103#endif 1100#endif
1104 1101
1105#if defined BB_SETKEYCODES 1102#if defined BB_SETKEYCODES
1106const char setkeycodes_usage[] = 1103const char setkeycodes_usage[] =
1107 "setkeycodes SCANCODE KEYCODE ...\n" 1104 "setkeycodes SCANCODE KEYCODE ..."
1108#ifndef BB_FEATURE_TRIVIAL_HELP 1105#ifndef BB_FEATURE_TRIVIAL_HELP
1109 "\nSet entries into the kernel's scancode-to-keycode map,\n" 1106 "\n\nSet entries into the kernel's scancode-to-keycode map,\n"
1110 "allowing unusual keyboards to generate usable keycodes.\n\n" 1107 "allowing unusual keyboards to generate usable keycodes.\n\n"
1111 "SCANCODE may be either xx or e0xx (hexadecimal),\n" 1108 "SCANCODE may be either xx or e0xx (hexadecimal),\n"
1112 "and KEYCODE is given in decimal\n" 1109 "and KEYCODE is given in decimal"
1113#endif 1110#endif
1114 ; 1111 ;
1115#endif 1112#endif
@@ -1117,18 +1114,18 @@ const char setkeycodes_usage[] =
1117#if defined BB_SH 1114#if defined BB_SH
1118const char shell_usage[] = 1115const char shell_usage[] =
1119 "sh [FILE]...\n" 1116 "sh [FILE]...\n"
1120 " or: sh -c command [args]...\n" 1117 " or: sh -c command [args]..."
1121#ifndef BB_FEATURE_TRIVIAL_HELP 1118#ifndef BB_FEATURE_TRIVIAL_HELP
1122 "\nlash: The BusyBox command interpreter (shell).\n\n" 1119 "\n\nlash: The BusyBox command interpreter (shell)."
1123#endif 1120#endif
1124 ; 1121 ;
1125#endif 1122#endif
1126 1123
1127#if defined BB_SLEEP 1124#if defined BB_SLEEP
1128const char sleep_usage[] = 1125const char sleep_usage[] =
1129 "sleep N\n" 1126 "sleep N"
1130#ifndef BB_FEATURE_TRIVIAL_HELP 1127#ifndef BB_FEATURE_TRIVIAL_HELP
1131 "\nPause for N seconds.\n" 1128 "\n\nPause for N seconds."
1132#endif 1129#endif
1133 ; 1130 ;
1134#endif 1131#endif
@@ -1139,49 +1136,49 @@ const char sort_usage[] =
1139#ifdef BB_FEATURE_SORT_REVERSE 1136#ifdef BB_FEATURE_SORT_REVERSE
1140 " [-r]" 1137 " [-r]"
1141#endif 1138#endif
1142 " [FILE]...\n" 1139 " [FILE]..."
1143#ifndef BB_FEATURE_TRIVIAL_HELP 1140#ifndef BB_FEATURE_TRIVIAL_HELP
1144 "\nSorts lines of text in the specified files\n" 1141 "\n\nSorts lines of text in the specified files"
1145#endif 1142#endif
1146 ; 1143 ;
1147#endif 1144#endif
1148 1145
1149#if defined BB_SWAPONOFF 1146#if defined BB_SWAPONOFF
1150const char swapoff_usage[] = 1147const char swapoff_usage[] =
1151 "swapoff [OPTION] [device]\n" 1148 "swapoff [OPTION] [device]"
1152#ifndef BB_FEATURE_TRIVIAL_HELP 1149#ifndef BB_FEATURE_TRIVIAL_HELP
1153 "\nStop swapping virtual memory pages on the given device.\n\n" 1150 "\n\nStop swapping virtual memory pages on the given device.\n\n"
1154 "Options:\n" 1151 "Options:\n"
1155 "\t-a\tStop swapping on all swap devices\n" 1152 "\t-a\tStop swapping on all swap devices"
1156#endif 1153#endif
1157 ; 1154 ;
1158#endif 1155#endif
1159 1156
1160#if defined BB_SWAPONOFF 1157#if defined BB_SWAPONOFF
1161const char swapon_usage[] = 1158const char swapon_usage[] =
1162 "swapon [OPTION] [device]\n" 1159 "swapon [OPTION] [device]"
1163#ifndef BB_FEATURE_TRIVIAL_HELP 1160#ifndef BB_FEATURE_TRIVIAL_HELP
1164 "\nStart swapping virtual memory pages on the given device.\n\n" 1161 "\n\nStart swapping virtual memory pages on the given device.\n\n"
1165 "Options:\n" 1162 "Options:\n"
1166 "\t-a\tStart swapping on all swap devices\n" 1163 "\t-a\tStart swapping on all swap devices"
1167#endif 1164#endif
1168 ; 1165 ;
1169#endif 1166#endif
1170 1167
1171#if defined BB_SYNC 1168#if defined BB_SYNC
1172const char sync_usage[] = 1169const char sync_usage[] =
1173 "sync\n" 1170 "sync"
1174#ifndef BB_FEATURE_TRIVIAL_HELP 1171#ifndef BB_FEATURE_TRIVIAL_HELP
1175 "\nWrite all buffered filesystem blocks to disk.\n" 1172 "\n\nWrite all buffered filesystem blocks to disk."
1176#endif 1173#endif
1177 ; 1174 ;
1178#endif 1175#endif
1179 1176
1180#if defined BB_SYSLOGD 1177#if defined BB_SYSLOGD
1181const char syslogd_usage[] = 1178const char syslogd_usage[] =
1182 "syslogd [OPTION]...\n" 1179 "syslogd [OPTION]..."
1183#ifndef BB_FEATURE_TRIVIAL_HELP 1180#ifndef BB_FEATURE_TRIVIAL_HELP
1184 "\nLinux system and kernel (provides klogd) logging utility.\n" 1181 "\n\nLinux system and kernel (provides klogd) logging utility.\n"
1185 "Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n" 1182 "Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n"
1186 "Options:\n" 1183 "Options:\n"
1187 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" 1184 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n"
@@ -1189,10 +1186,10 @@ const char syslogd_usage[] =
1189#ifdef BB_FEATURE_KLOGD 1186#ifdef BB_FEATURE_KLOGD
1190 "\t-K\t\tDo not start up the klogd process\n" 1187 "\t-K\t\tDo not start up the klogd process\n"
1191#endif 1188#endif
1192 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n" 1189 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)"
1193#ifdef BB_FEATURE_REMOTE_LOG 1190#ifdef BB_FEATURE_REMOTE_LOG
1194 "\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" 1191 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
1195 "\t-L\t\tLog locally as well as network logging (default is network only)\n" 1192 "\t-L\t\tLog locally as well as network logging (default is network only)"
1196#endif 1193#endif
1197#endif 1194#endif
1198 ; 1195 ;
@@ -1200,9 +1197,9 @@ const char syslogd_usage[] =
1200 1197
1201#if defined BB_TAIL 1198#if defined BB_TAIL
1202const char tail_usage[] = 1199const char tail_usage[] =
1203 "tail [OPTION]... [FILE]...\n" 1200 "tail [OPTION]... [FILE]..."
1204#ifndef BB_FEATURE_TRIVIAL_HELP 1201#ifndef BB_FEATURE_TRIVIAL_HELP
1205 "\nPrint last 10 lines of each FILE to standard output.\n" 1202 "\n\nPrint last 10 lines of each FILE to standard output.\n"
1206 "With more than one FILE, precede each with a header giving the\n" 1203 "With more than one FILE, precede each with a header giving the\n"
1207 "file name. With no FILE, or when FILE is -, read standard input.\n\n" 1204 "file name. With no FILE, or when FILE is -, read standard input.\n\n"
1208 "Options:\n" 1205 "Options:\n"
@@ -1210,17 +1207,17 @@ const char tail_usage[] =
1210 "\t-c N[kbm]\toutput the last N bytes\n" 1207 "\t-c N[kbm]\toutput the last N bytes\n"
1211#endif 1208#endif
1212 "\t-n N[kbm]\tprint last N lines instead of last 10\n" 1209 "\t-n N[kbm]\tprint last N lines instead of last 10\n"
1213 "\t-f\t\toutput data as the file grows\n" 1210 "\t-f\t\toutput data as the file grows"
1214#ifndef BB_FEATURE_SIMPLE_TAIL 1211#ifndef BB_FEATURE_SIMPLE_TAIL
1215 "\t-q\t\tnever output headers giving file names\n" 1212 "\n\t-q\t\tnever output headers giving file names\n"
1216 "\t-s SEC\t\twait SEC seconds between reads with -f\n" 1213 "\t-s SEC\t\twait SEC seconds between reads with -f\n"
1217 "\t-v\t\talways output headers giving file names\n\n" 1214 "\t-v\t\talways output headers giving file names\n\n"
1218 "If the first character of N (bytes or lines) is a `+', output begins with \n" 1215 "If the first character of N (bytes or lines) is a `+', output begins with \n"
1219 "the Nth item from the start of each file, otherwise, print the last N items\n" 1216 "the Nth item from the start of each file, otherwise, print the last N items\n"
1220 "in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2).\n" 1217 "in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)."
1221//#else 1218//#else
1222// "\nIf the first character of N (bytes or lines) is a `+', output begins with \n" 1219// "\nIf the first character of N (bytes or lines) is a `+', output begins with \n"
1223// "the Nth item from the start of each file.\n" 1220// "the Nth item from the start of each file."
1224#endif 1221#endif
1225#endif 1222#endif
1226 ; 1223 ;
@@ -1237,9 +1234,9 @@ const char tar_usage[] =
1237 "[--exclude File] " 1234 "[--exclude File] "
1238 "[-X File]" 1235 "[-X File]"
1239#endif 1236#endif
1240 "[-f tarFile] [FILE(s)] ...\n" 1237 "[-f tarFile] [FILE(s)] ..."
1241#ifndef BB_FEATURE_TRIVIAL_HELP 1238#ifndef BB_FEATURE_TRIVIAL_HELP
1242 "\nCreate, extract, or list files from a tar file.\n\n" 1239 "\n\nCreate, extract, or list files from a tar file.\n\n"
1243 "Main operation mode:\n" 1240 "Main operation mode:\n"
1244#ifdef BB_FEATURE_TAR_CREATE 1241#ifdef BB_FEATURE_TAR_CREATE
1245 "\tc\t\tcreate\n" 1242 "\tc\t\tcreate\n"
@@ -1254,27 +1251,27 @@ const char tar_usage[] =
1254 "\tX\t\tfile with names to exclude\n" 1251 "\tX\t\tfile with names to exclude\n"
1255#endif 1252#endif
1256 "\nInformative output:\n" 1253 "\nInformative output:\n"
1257 "\tv\t\tverbosely list files processed\n" 1254 "\tv\t\tverbosely list files processed"
1258#endif 1255#endif
1259 ; 1256 ;
1260#endif 1257#endif
1261 1258
1262#if defined BB_TEE 1259#if defined BB_TEE
1263const char tee_usage[] = 1260const char tee_usage[] =
1264 "tee [OPTION]... [FILE]...\n" 1261 "tee [OPTION]... [FILE]..."
1265#ifndef BB_FEATURE_TRIVIAL_HELP 1262#ifndef BB_FEATURE_TRIVIAL_HELP
1266 "\nCopy standard input to each FILE, and also to standard output.\n\n" 1263 "\n\nCopy standard input to each FILE, and also to standard output.\n\n"
1267 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite\n" 1264 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite"
1268#endif 1265#endif
1269 ; 1266 ;
1270#endif 1267#endif
1271 1268
1272#if defined BB_TELNET 1269#if defined BB_TELNET
1273const char telnet_usage[] = 1270const char telnet_usage[] =
1274 "telnet host [port]\n" 1271 "telnet host [port]"
1275#ifndef BB_FEATURE_TRIVIAL_HELP 1272#ifndef BB_FEATURE_TRIVIAL_HELP
1276 "\nTelnet is used to establish interactive communication with another\n" 1273 "\n\nTelnet is used to establish interactive communication with another\n"
1277 "computer over a network using the TELNET protocol.\n" 1274 "computer over a network using the TELNET protocol."
1278#endif 1275#endif
1279 ; 1276 ;
1280#endif 1277#endif
@@ -1282,76 +1279,76 @@ const char telnet_usage[] =
1282#if defined BB_TEST 1279#if defined BB_TEST
1283const char test_usage[] = 1280const char test_usage[] =
1284 "test EXPRESSION\n" 1281 "test EXPRESSION\n"
1285 "or [ EXPRESSION ]\n" 1282 "or [ EXPRESSION ]"
1286#ifndef BB_FEATURE_TRIVIAL_HELP 1283#ifndef BB_FEATURE_TRIVIAL_HELP
1287 "\nChecks file types and compares values returning an exit\n" 1284 "\n\nChecks file types and compares values returning an exit\n"
1288 "code determined by the value of EXPRESSION.\n" 1285 "code determined by the value of EXPRESSION."
1289#endif 1286#endif
1290 ; 1287 ;
1291#endif 1288#endif
1292 1289
1293#if defined BB_TOUCH 1290#if defined BB_TOUCH
1294const char touch_usage[] = 1291const char touch_usage[] =
1295 "touch [-c] file [file ...]\n" 1292 "touch [-c] file [file ...]"
1296#ifndef BB_FEATURE_TRIVIAL_HELP 1293#ifndef BB_FEATURE_TRIVIAL_HELP
1297 "\nUpdate the last-modified date on the given file[s].\n\n" 1294 "\n\nUpdate the last-modified date on the given file[s].\n\n"
1298 "Options:\n" 1295 "Options:\n"
1299 "\t-c\tDo not create any files\n" 1296 "\t-c\tDo not create any files"
1300#endif 1297#endif
1301 ; 1298 ;
1302#endif 1299#endif
1303 1300
1304#if defined BB_TR 1301#if defined BB_TR
1305const char tr_usage[] = 1302const char tr_usage[] =
1306 "tr [-cds] STRING1 [STRING2]\n" 1303 "tr [-cds] STRING1 [STRING2]"
1307#ifndef BB_FEATURE_TRIVIAL_HELP 1304#ifndef BB_FEATURE_TRIVIAL_HELP
1308 "\nTranslate, squeeze, and/or delete characters from\n" 1305 "\n\nTranslate, squeeze, and/or delete characters from\n"
1309 "standard input, writing to standard output.\n\n" 1306 "standard input, writing to standard output.\n\n"
1310 "Options:\n" 1307 "Options:\n"
1311 "\t-c\ttake complement of STRING1\n" 1308 "\t-c\ttake complement of STRING1\n"
1312 "\t-d\tdelete input characters coded STRING1\n" 1309 "\t-d\tdelete input characters coded STRING1\n"
1313 "\t-s\tsqueeze multiple output characters of STRING2 into one character\n" 1310 "\t-s\tsqueeze multiple output characters of STRING2 into one character"
1314#endif 1311#endif
1315 ; 1312 ;
1316#endif 1313#endif
1317 1314
1318#if defined BB_TRUE_FALSE 1315#if defined BB_TRUE_FALSE
1319const char true_usage[] = 1316const char true_usage[] =
1320 "true\n" 1317 "true"
1321#ifndef BB_FEATURE_TRIVIAL_HELP 1318#ifndef BB_FEATURE_TRIVIAL_HELP
1322 "\nReturn an exit code of TRUE (0).\n" 1319 "\n\nReturn an exit code of TRUE (0)."
1323#endif 1320#endif
1324 ; 1321 ;
1325#endif 1322#endif
1326 1323
1327#if defined BB_TTY 1324#if defined BB_TTY
1328const char tty_usage[] = 1325const char tty_usage[] =
1329 "tty\n" 1326 "tty"
1330#ifndef BB_FEATURE_TRIVIAL_HELP 1327#ifndef BB_FEATURE_TRIVIAL_HELP
1331 "\nPrint the file name of the terminal connected to standard input.\n\n" 1328 "\n\nPrint the file name of the terminal connected to standard input.\n\n"
1332 "Options:\n" 1329 "Options:\n"
1333 "\t-s\tprint nothing, only return an exit status\n" 1330 "\t-s\tprint nothing, only return an exit status"
1334#endif 1331#endif
1335 ; 1332 ;
1336#endif 1333#endif
1337 1334
1338#if defined BB_UMOUNT 1335#if defined BB_UMOUNT
1339const char umount_usage[] = 1336const char umount_usage[] =
1340 "umount [flags] filesystem|directory\n" 1337 "umount [flags] filesystem|directory"
1341#ifndef BB_FEATURE_TRIVIAL_HELP 1338#ifndef BB_FEATURE_TRIVIAL_HELP
1342 "Unmount file systems\n" 1339 "\nUnmount file systems\n"
1343 "\nFlags:\n" "\t-a:\tUnmount all file systems" 1340 "\nFlags:\n" "\t-a:\tUnmount all file systems"
1344#ifdef BB_MTAB 1341#ifdef BB_MTAB
1345 " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n" 1342 " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n"
1346#else 1343#else
1347 "\n" 1344 "\n"
1348#endif 1345#endif
1349 "\t-r:\tTry to remount devices as read-only if mount is busy\n" 1346 "\t-r:\tTry to remount devices as read-only if mount is busy"
1350#if defined BB_FEATURE_MOUNT_FORCE 1347#if defined BB_FEATURE_MOUNT_FORCE
1351 "\t-f:\tForce filesystem umount (i.e. unreachable NFS server)\n" 1348 "\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)"
1352#endif 1349#endif
1353#if defined BB_FEATURE_MOUNT_LOOP 1350#if defined BB_FEATURE_MOUNT_LOOP
1354 "\t-l:\tDo not free loop device (if a loop device has been used)\n" 1351 "\n\t-l:\tDo not free loop device (if a loop device has been used)"
1355#endif 1352#endif
1356#endif 1353#endif
1357 ; 1354 ;
@@ -1359,9 +1356,9 @@ const char umount_usage[] =
1359 1356
1360#if defined BB_UNAME 1357#if defined BB_UNAME
1361const char uname_usage[] = 1358const char uname_usage[] =
1362 "uname [OPTION]...\n" 1359 "uname [OPTION]..."
1363#ifndef BB_FEATURE_TRIVIAL_HELP 1360#ifndef BB_FEATURE_TRIVIAL_HELP
1364 "\nPrint certain system information. With no OPTION, same as -s.\n\n" 1361 "\n\nPrint certain system information. With no OPTION, same as -s.\n\n"
1365 "Options:\n" 1362 "Options:\n"
1366 "\t-a\tprint all information\n" 1363 "\t-a\tprint all information\n"
1367 "\t-m\tthe machine (hardware) type\n" 1364 "\t-m\tthe machine (hardware) type\n"
@@ -1370,145 +1367,145 @@ const char uname_usage[] =
1370 "\t-s\tprint the operating system name\n" 1367 "\t-s\tprint the operating system name\n"
1371 1368
1372 "\t-p\tprint the host processor type\n" 1369 "\t-p\tprint the host processor type\n"
1373 "\t-v\tprint the operating system version\n" 1370 "\t-v\tprint the operating system version"
1374#endif 1371#endif
1375 ; 1372 ;
1376#endif 1373#endif
1377 1374
1378#if defined BB_UNIQ 1375#if defined BB_UNIQ
1379const char uniq_usage[] = 1376const char uniq_usage[] =
1380 "uniq [OPTION]... [INPUT [OUTPUT]]\n" 1377 "uniq [OPTION]... [INPUT [OUTPUT]]"
1381#ifndef BB_FEATURE_TRIVIAL_HELP 1378#ifndef BB_FEATURE_TRIVIAL_HELP
1382 "\nDiscard all but one of successive identical lines from INPUT\n" 1379 "\n\nDiscard all but one of successive identical lines from INPUT\n"
1383 "(or standard input), writing to OUTPUT (or standard output).\n" 1380 "(or standard input), writing to OUTPUT (or standard output).\n"
1384 "Options:\n" 1381 "Options:\n"
1385 "\t-c\tprefix lines by the number of occurrences\n" 1382 "\t-c\tprefix lines by the number of occurrences\n"
1386 "\t-d\tonly print duplicate lines\n" 1383 "\t-d\tonly print duplicate lines\n"
1387 "\t-u\tonly print unique lines\n" 1384 "\t-u\tonly print unique lines"
1388#endif 1385#endif
1389 ; 1386 ;
1390#endif 1387#endif
1391 1388
1392#if defined BB_UNIX2DOS 1389#if defined BB_UNIX2DOS
1393const char unix2dos_usage[] = 1390const char unix2dos_usage[] =
1394 "unix2dos < unixfile > dosfile\n" 1391 "unix2dos < unixfile > dosfile"
1395#ifndef BB_FEATURE_TRIVIAL_HELP 1392#ifndef BB_FEATURE_TRIVIAL_HELP
1396 "\nConverts a text file from unix format to dos format.\n" 1393 "\n\nConverts a text file from unix format to dos format."
1397#endif 1394#endif
1398 ; 1395 ;
1399#endif 1396#endif
1400 1397
1401#if defined BB_UPDATE 1398#if defined BB_UPDATE
1402const char update_usage[] = 1399const char update_usage[] =
1403 "update [options]\n" 1400 "update [options]"
1404#ifndef BB_FEATURE_TRIVIAL_HELP 1401#ifndef BB_FEATURE_TRIVIAL_HELP
1405 "\nPeriodically flushes filesystem buffers.\n\n" 1402 "\n\nPeriodically flushes filesystem buffers.\n\n"
1406 "Options:\n" 1403 "Options:\n"
1407 "\t-S\tforce use of sync(2) instead of flushing\n" 1404 "\t-S\tforce use of sync(2) instead of flushing\n"
1408 "\t-s SECS\tcall sync this often (default 30)\n" 1405 "\t-s SECS\tcall sync this often (default 30)\n"
1409 "\t-f SECS\tflush some buffers this often (default 5)\n" 1406 "\t-f SECS\tflush some buffers this often (default 5)"
1410#endif 1407#endif
1411 ; 1408 ;
1412#endif 1409#endif
1413 1410
1414#if defined BB_UPTIME 1411#if defined BB_UPTIME
1415const char uptime_usage[] = 1412const char uptime_usage[] =
1416 "uptime\n" 1413 "uptime"
1417#ifndef BB_FEATURE_TRIVIAL_HELP 1414#ifndef BB_FEATURE_TRIVIAL_HELP
1418 "\nDisplay the time since the last boot.\n" 1415 "\n\nDisplay the time since the last boot."
1419#endif 1416#endif
1420 ; 1417 ;
1421#endif 1418#endif
1422 1419
1423#if defined BB_USLEEP 1420#if defined BB_USLEEP
1424const char usleep_usage[] = 1421const char usleep_usage[] =
1425 "usleep N\n" 1422 "usleep N"
1426#ifndef BB_FEATURE_TRIVIAL_HELP 1423#ifndef BB_FEATURE_TRIVIAL_HELP
1427 "\nPause for N microseconds.\n" 1424 "\n\nPause for N microseconds."
1428#endif 1425#endif
1429 ; 1426 ;
1430#endif 1427#endif
1431 1428
1432#if defined BB_UUDECODE 1429#if defined BB_UUDECODE
1433const char uudecode_usage[] = 1430const char uudecode_usage[] =
1434 "uudecode [FILE]...\n" 1431 "uudecode [FILE]..."
1435#ifndef BB_FEATURE_TRIVIAL_HELP 1432#ifndef BB_FEATURE_TRIVIAL_HELP
1436 "\nUudecode a file that is uuencoded.\n\n" 1433 "\n\nUudecode a file that is uuencoded.\n\n"
1437 "Options:\n" 1434 "Options:\n"
1438 "\t-o FILE\tdirect output to FILE\n" 1435 "\t-o FILE\tdirect output to FILE"
1439#endif 1436#endif
1440 ; 1437 ;
1441#endif 1438#endif
1442 1439
1443#if defined BB_UUENCODE 1440#if defined BB_UUENCODE
1444const char uuencode_usage[] = 1441const char uuencode_usage[] =
1445 "uuencode [OPTION] [INFILE] REMOTEFILE\n" 1442 "uuencode [OPTION] [INFILE] REMOTEFILE"
1446#ifndef BB_FEATURE_TRIVIAL_HELP 1443#ifndef BB_FEATURE_TRIVIAL_HELP
1447 "\nUuencode a file.\n\n" 1444 "\n\nUuencode a file.\n\n"
1448 "Options:\n" 1445 "Options:\n"
1449 "\t-m\tuse base64 encoding as of RFC1521\n" 1446 "\t-m\tuse base64 encoding as of RFC1521"
1450#endif 1447#endif
1451 ; 1448 ;
1452#endif 1449#endif
1453 1450
1454#if defined BB_WC 1451#if defined BB_WC
1455const char wc_usage[] = 1452const char wc_usage[] =
1456 "wc [OPTION]... [FILE]...\n" 1453 "wc [OPTION]... [FILE]..."
1457#ifndef BB_FEATURE_TRIVIAL_HELP 1454#ifndef BB_FEATURE_TRIVIAL_HELP
1458 "\nPrint line, word, and byte counts for each FILE, and a total line if\n" 1455 "\n\nPrint line, word, and byte counts for each FILE, and a total line if\n"
1459 "more than one FILE is specified. With no FILE, read standard input.\n\n" 1456 "more than one FILE is specified. With no FILE, read standard input.\n\n"
1460 "Options:\n" 1457 "Options:\n"
1461 "\t-c\tprint the byte counts\n" 1458 "\t-c\tprint the byte counts\n"
1462 "\t-l\tprint the newline counts\n" 1459 "\t-l\tprint the newline counts\n"
1463 1460
1464 "\t-L\tprint the length of the longest line\n" 1461 "\t-L\tprint the length of the longest line\n"
1465 "\t-w\tprint the word counts\n" 1462 "\t-w\tprint the word counts"
1466#endif 1463#endif
1467 ; 1464 ;
1468#endif 1465#endif
1469 1466
1470#if defined BB_WGET 1467#if defined BB_WGET
1471const char wget_usage[] = "wget [-c] [-O file] url\n" 1468const char wget_usage[] = "wget [-c] [-O file] url"
1472#ifndef BB_FEATURE_TRIVIAL_HELP 1469#ifndef BB_FEATURE_TRIVIAL_HELP
1473 "\nwget retrieves files via HTTP\n\n" 1470 "\n\nwget retrieves files via HTTP\n\n"
1474 "Options:\n" 1471 "Options:\n"
1475 "\t-c\tcontinue retrieval of aborted transfers\n" 1472 "\t-c\tcontinue retrieval of aborted transfers\n"
1476 "\t-O\tsave to filename ('-' for stdout)\n" 1473 "\t-O\tsave to filename ('-' for stdout)"
1477#endif 1474#endif
1478 ; 1475 ;
1479#endif 1476#endif
1480 1477
1481#if defined BB_WHICH 1478#if defined BB_WHICH
1482const char which_usage[] = 1479const char which_usage[] =
1483 "which [COMMAND ...]\n" 1480 "which [COMMAND ...]"
1484#ifndef BB_FEATURE_TRIVIAL_HELP 1481#ifndef BB_FEATURE_TRIVIAL_HELP
1485 "\nLocates a COMMAND.\n" 1482 "\n\nLocates a COMMAND."
1486#endif 1483#endif
1487 ; 1484 ;
1488#endif 1485#endif
1489 1486
1490#if defined BB_WHOAMI 1487#if defined BB_WHOAMI
1491const char whoami_usage[] = 1488const char whoami_usage[] =
1492 "whoami\n" 1489 "whoami"
1493#ifndef BB_FEATURE_TRIVIAL_HELP 1490#ifndef BB_FEATURE_TRIVIAL_HELP
1494 "\nPrints the user name associated with the current effective user id.\n" 1491 "\n\nPrints the user name associated with the current effective user id."
1495#endif 1492#endif
1496 ; 1493 ;
1497#endif 1494#endif
1498 1495
1499#if defined BB_XARGS 1496#if defined BB_XARGS
1500const char xargs_usage[] = "xargs [COMMAND] [ARGS...]\n" 1497const char xargs_usage[] = "xargs [COMMAND] [ARGS...]"
1501#ifndef BB_FEATURE_TRIVIAL_HELP 1498#ifndef BB_FEATURE_TRIVIAL_HELP
1502 "\nExecutes COMMAND on every item given by standard input.\n" 1499 "\n\nExecutes COMMAND on every item given by standard input."
1503#endif 1500#endif
1504 ; 1501 ;
1505#endif 1502#endif
1506 1503
1507#if defined BB_YES 1504#if defined BB_YES
1508const char yes_usage[] = 1505const char yes_usage[] =
1509 "yes [OPTION]... [STRING]...\n" 1506 "yes [OPTION]... [STRING]..."
1510#ifndef BB_FEATURE_TRIVIAL_HELP 1507#ifndef BB_FEATURE_TRIVIAL_HELP
1511 "\nRepeatedly outputs a line with all specified STRING(s), or `y'.\n" 1508 "\n\nRepeatedly outputs a line with all specified STRING(s), or `y'."
1512#endif 1509#endif
1513 ; 1510 ;
1514#endif 1511#endif