From d73dc5b07390fb90e7f605871c993a28eedf1d46 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 10 Nov 1999 23:13:02 +0000 Subject: [PATCH] Updates to usage, and made tar work. -Erik --- Changelog | 9 +++++++ applets/busybox.c | 8 +++--- archival/tar.c | 51 +++++++++++++++++---------------------- busybox.c | 8 +++--- busybox.def.h | 25 ++++++++++--------- chmod_chown_chgrp.c | 24 +++++++++--------- chroot.c | 2 +- chvt.c | 2 +- console-tools/chvt.c | 2 +- console-tools/deallocvt.c | 6 +++-- coreutils/chroot.c | 2 +- coreutils/cp.c | 2 +- coreutils/date.c | 2 +- coreutils/dd.c | 5 ++-- coreutils/ln.c | 6 ++--- coreutils/mkdir.c | 7 +++--- coreutils/mknod.c | 6 ++--- coreutils/mv.c | 2 +- coreutils/rm.c | 3 ++- coreutils/rmdir.c | 2 +- coreutils/sleep.c | 4 +-- coreutils/sync.c | 2 +- coreutils/touch.c | 4 +-- coreutils/uname.c | 5 ++-- cp.c | 2 +- date.c | 2 +- dd.c | 5 ++-- deallocvt.c | 6 +++-- editors/sed.c | 14 +++++------ find.c | 15 +++++++++--- findutils/find.c | 15 +++++++++--- findutils/grep.c | 7 +++--- fsck_minix.c | 14 ++++++++--- grep.c | 7 +++--- init.c | 7 ++++++ init/init.c | 7 ++++++ internal.h | 2 +- ln.c | 6 ++--- mkdir.c | 7 +++--- mkfs_minix.c | 13 +++++++--- mknod.c | 6 ++--- mkswap.c | 9 ++++--- more.c | 2 +- mount.c | 21 +++++++--------- mv.c | 2 +- procps/ps.c | 2 +- ps.c | 2 +- rm.c | 3 ++- rmdir.c | 2 +- sed.c | 14 +++++------ sleep.c | 4 +-- sync.c | 2 +- tar.c | 51 +++++++++++++++++---------------------- touch.c | 4 +-- umount.c | 6 ++--- uname.c | 5 ++-- util-linux/fsck_minix.c | 14 ++++++++--- util-linux/mkfs_minix.c | 13 +++++++--- util-linux/mkswap.c | 9 ++++--- util-linux/more.c | 2 +- util-linux/mount.c | 21 +++++++--------- util-linux/umount.c | 6 ++--- utility.c | 2 +- 63 files changed, 290 insertions(+), 230 deletions(-) diff --git a/Changelog b/Changelog index 916e6940c..7279efe64 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,12 @@ +0.35 + * Fixed tar so it now works as expected (it had TRUE/FALSE backwards) + * tar now accepts --help + * chmod, chown, and chgrp usage now works + * General usage cleanups in most apps + * umount now parses options correctly + + -Erik Andersen + 0.34 * ls -l now displays link names outside the current directory, Patch thanks to Eric Delaunay diff --git a/applets/busybox.c b/applets/busybox.c index 29a112b12..c45d0c7e2 100644 --- a/applets/busybox.c +++ b/applets/busybox.c @@ -220,12 +220,12 @@ int busybox_main(int argc, char **argv) if (been_there_done_that == 1 || argc < 1) { const struct Applet *a = applets; - fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n", + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); - fprintf(stderr, "\nUsage:\t[function] [arguments]...\n"); - fprintf(stderr, "\tbusybox [function] [arguments]...\n"); + fprintf(stderr, "Usage: busybox [function] [arguments]...\n"); + fprintf(stderr, " or: [function] [arguments]...\n\n"); fprintf(stderr, - "\n\tMost people will create a symlink to busybox for each\n" + "\tMost people will create a symlink to busybox for each\n" "\tfunction name, and busybox will act like whatever you invoke it as.\n"); fprintf(stderr, "\nCurrently defined functions:\n"); diff --git a/archival/tar.c b/archival/tar.c index c23805993..ed6f3b6b5 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -35,22 +35,13 @@ #include #include -/* Note that tar.c expects TRUE and FALSE to be defined - * exactly the opposite of how they are used everywhere else. - * Some time this should be integrated a bit better, but this - * does the job for now. - */ -//#undef FALSE -//#undef TRUE -//#define FALSE ((int) 0) -//#define TRUE ((int) 1) - static const char tar_usage[] = - "tar -[cxtvOf] [tarFileName] [FILE] ...\n" - "Create, extract, or list files from a tar file\n\n" - "\tc=create, x=extract, t=list contents, v=verbose,\n" - "\tO=extract to stdout, f=tarfile or \"-\" for stdin\n"; +"tar -[cxtvOf] [tarFileName] [FILE] ...\n\n" +"Create, extract, or list files from a tar file\n\n" +"Options:\n" +"\tc=create, x=extract, t=list contents, v=verbose,\n" +"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n"; @@ -96,18 +87,18 @@ typedef struct { /* * Static data. */ -static int listFlag; // -static int extractFlag; // -static int createFlag; // -static int verboseFlag; // -static int tostdoutFlag; // +static int listFlag; +static int extractFlag; +static int createFlag; +static int verboseFlag; +static int tostdoutFlag; static int inHeader; // <- check me -static int badHeader; // -static int errorFlag; // -static int skipFileFlag; // -static int warnedRoot; // -static int eofFlag; // +static int badHeader; +static int errorFlag; +static int skipFileFlag; +static int warnedRoot; +static int eofFlag; static long dataCc; static int outFd; static char outName[TAR_NAME_SIZE]; @@ -136,7 +127,7 @@ static void readHeader (const TarHeader * hp, /* * Local procedures to save files into a tar file. */ -static void saveFile (const char *fileName, int seeLinks); // +static void saveFile (const char *fileName, int seeLinks); static void saveRegularFile (const char *fileName, const struct stat *statbuf); @@ -145,13 +136,13 @@ static void saveDirectory (const char *fileName, const struct stat *statbuf); static int wantFileName (const char *fileName, - int fileCount, char **fileTable); // + int fileCount, char **fileTable); static void writeHeader (const char *fileName, const struct stat *statbuf); static void writeTarFile (int fileCount, char **fileTable); static void writeTarBlock (const char *buf, int len); -static int putOctal (char *cp, int len, long value); // +static int putOctal (char *cp, int len, long value); extern int tar_main (int argc, char **argv) @@ -217,10 +208,13 @@ extern int tar_main (int argc, char **argv) break; case '-': + usage( tar_usage); break; default: - fprintf (stderr, "Unknown tar flag '%c'\n", *options); + fprintf (stderr, "Unknown tar flag '%c'\n" + "Try `tar --help' for more information\n", + *options); exit (FALSE); } @@ -230,7 +224,6 @@ extern int tar_main (int argc, char **argv) /* * Validate the options. */ - fprintf(stderr, "TRUE=%d FALSE=%d\n", TRUE, FALSE); if (extractFlag + listFlag + createFlag != (TRUE+FALSE+FALSE)) { fprintf (stderr, "Exactly one of 'c', 'x' or 't' must be specified\n"); diff --git a/busybox.c b/busybox.c index 29a112b12..c45d0c7e2 100644 --- a/busybox.c +++ b/busybox.c @@ -220,12 +220,12 @@ int busybox_main(int argc, char **argv) if (been_there_done_that == 1 || argc < 1) { const struct Applet *a = applets; - fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n", + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); - fprintf(stderr, "\nUsage:\t[function] [arguments]...\n"); - fprintf(stderr, "\tbusybox [function] [arguments]...\n"); + fprintf(stderr, "Usage: busybox [function] [arguments]...\n"); + fprintf(stderr, " or: [function] [arguments]...\n\n"); fprintf(stderr, - "\n\tMost people will create a symlink to busybox for each\n" + "\tMost people will create a symlink to busybox for each\n" "\tfunction name, and busybox will act like whatever you invoke it as.\n"); fprintf(stderr, "\nCurrently defined functions:\n"); diff --git a/busybox.def.h b/busybox.def.h index 615289b81..79cbb27f1 100644 --- a/busybox.def.h +++ b/busybox.def.h @@ -2,6 +2,7 @@ * This file is parsed by sed. You MUST use single line comments. * IE //#define BB_BLAH */ + #define BB_BUSYBOX #define BB_CAT #define BB_CHMOD_CHOWN_CHGRP @@ -12,48 +13,48 @@ #define BB_DD #define BB_DF #define BB_DMESG -#define BB_DUTMP -#define BB_FDFLUSH +//#define BB_DUTMP +//#define BB_FDFLUSH #define BB_FIND #define BB_FSCK_MINIX #define BB_MKFS_MINIX #define BB_CHVT #define BB_DEALLOCVT #define BB_GREP -#define BB_HALT +//#define BB_HALT #define BB_INIT #define BB_KILL -#define BB_LENGTH +//#define BB_LENGTH #define BB_LN #define BB_LOADFONT #define BB_LOADKMAP #define BB_LS -#define BB_MAKEDEVS -#define BB_MATH +//#define BB_MAKEDEVS +//#define BB_MATH #define BB_MKDIR #define BB_MKNOD #define BB_MKSWAP -#define BB_MNC +//#define BB_MNC #define BB_MORE #define BB_MOUNT -#define BB_MT -#define BB_MTAB +//#define BB_MT +//#define BB_MTAB #define BB_MV -#define BB_PRINTF +//#define BB_PRINTF #define BB_PS #define BB_PWD #define BB_REGEXP #define BB_REBOOT #define BB_RM #define BB_RMDIR -#define BB_SFDISK +//#define BB_SFDISK #define BB_SED #define BB_SLEEP #define BB_SWAPONOFF #define BB_SYNC #define BB_TAR #define BB_TOUCH -#define BB_TRUE_FALSE +//#define BB_TRUE_FALSE // Supplied by ash #define BB_UMOUNT #define BB_UPDATE #define BB_UNAME diff --git a/chmod_chown_chgrp.c b/chmod_chown_chgrp.c index da3ba8d50..e9704fff8 100644 --- a/chmod_chown_chgrp.c +++ b/chmod_chown_chgrp.c @@ -38,16 +38,16 @@ static mode_t mode=0644; #define CHOWN_APP 2 #define CHMOD_APP 3 -static const char chgrp_usage[] = "[OPTION]... GROUP FILE...\n" +static const char chgrp_usage[] = "chgrp [OPTION]... GROUP FILE...\n\n" "Change the group membership of each FILE to GROUP.\n" - "\n\tOptions:\n" "\t-R\tchange files and directories recursively\n"; -static const char chown_usage[] = "[OPTION]... OWNER[.[GROUP] FILE...\n" + "\nOptions:\n\t-R\tchange files and directories recursively\n"; +static const char chown_usage[] = "chown [OPTION]... OWNER[.[GROUP] FILE...\n\n" "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" - "\n\tOptions:\n" "\t-R\tchange files and directories recursively\n"; -static const char chmod_usage[] = "[-R] MODE[,MODE]... FILE...\n" + "\nOptions:\n\t-R\tchange files and directories recursively\n"; +static const char chmod_usage[] = "chmod [-R] MODE[,MODE]... FILE...\n\n" "Each MODE is one or more of the letters ugoa, one of the symbols +-= and\n" "one or more of the letters rwxst.\n\n" - "\t-R\tchange files and directories recursively.\n"; + "\nOptions:\n\t-R\tchange files and directories recursively.\n"; static int fileAction(const char *fileName, struct stat* statbuf) @@ -73,14 +73,14 @@ int chmod_chown_chgrp_main(int argc, char **argv) { int recursiveFlag=FALSE; char *groupName; + const char *appUsage; whichApp = (strcmp(*argv, "chown")==0)? CHOWN_APP : (strcmp(*argv, "chmod")==0)? CHMOD_APP : CHGRP_APP; - if (argc < 2) { - fprintf(stderr, "Usage: %s %s", *argv, - (whichApp==TRUE)? chown_usage : chgrp_usage); - exit( FALSE); - } + appUsage = (whichApp==CHOWN_APP)? chown_usage : (whichApp==CHMOD_APP)? chmod_usage : chgrp_usage; + + if (argc < 2) + usage( appUsage); invocationName=*argv; argc--; argv++; @@ -93,7 +93,7 @@ int chmod_chown_chgrp_main(int argc, char **argv) break; default: fprintf(stderr, "Unknown option: %c\n", **argv); - exit( FALSE); + usage( appUsage); } argc--; argv++; diff --git a/chroot.c b/chroot.c index 8e432b36c..16524d92e 100644 --- a/chroot.c +++ b/chroot.c @@ -27,7 +27,7 @@ #include -static const char chroot_usage[] = "NEWROOT [COMMAND...]\n" +static const char chroot_usage[] = "chroot NEWROOT [COMMAND...]\n\n" "Run COMMAND with root directory set to NEWROOT.\n"; diff --git a/chvt.c b/chvt.c index 81d199527..bea00ea83 100644 --- a/chvt.c +++ b/chvt.c @@ -19,7 +19,7 @@ chvt_main(int argc, char** argv) int fd, num; if ( ( argc != 2) || (**(argv+1) == '-' ) ) { - usage ("chvt \n"); + usage ("chvt N\n\nChange foreground virtual terminal to /dev/ttyN\n"); } fd = get_console_fd("/dev/console"); num = atoi(argv[1]); diff --git a/console-tools/chvt.c b/console-tools/chvt.c index 81d199527..bea00ea83 100644 --- a/console-tools/chvt.c +++ b/console-tools/chvt.c @@ -19,7 +19,7 @@ chvt_main(int argc, char** argv) int fd, num; if ( ( argc != 2) || (**(argv+1) == '-' ) ) { - usage ("chvt \n"); + usage ("chvt N\n\nChange foreground virtual terminal to /dev/ttyN\n"); } fd = get_console_fd("/dev/console"); num = atoi(argv[1]); diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c index ae4dbb5a8..1e13ff69c 100644 --- a/console-tools/deallocvt.c +++ b/console-tools/deallocvt.c @@ -17,8 +17,10 @@ int deallocvt_main(int argc, char *argv[]) { int fd, num, i; - if (argc < 1) /* unlikely */ - exit(1); + if ( ( argc != 2) || (**(argv+1) == '-' ) ) { + usage ("deallocvt N\n\nDeallocate unused virtual terminal /dev/ttyN\n"); + } + progname = argv[0]; fd = get_console_fd("/dev/console"); diff --git a/coreutils/chroot.c b/coreutils/chroot.c index 8e432b36c..16524d92e 100644 --- a/coreutils/chroot.c +++ b/coreutils/chroot.c @@ -27,7 +27,7 @@ #include -static const char chroot_usage[] = "NEWROOT [COMMAND...]\n" +static const char chroot_usage[] = "chroot NEWROOT [COMMAND...]\n\n" "Run COMMAND with root directory set to NEWROOT.\n"; diff --git a/coreutils/cp.c b/coreutils/cp.c index 9dac2afbc..57158c820 100644 --- a/coreutils/cp.c +++ b/coreutils/cp.c @@ -28,7 +28,7 @@ #include static const char cp_usage[] = "cp [OPTION]... SOURCE DEST\n" - " or: cp [OPTION]... SOURCE... DIRECTORY\n" + " or: cp [OPTION]... SOURCE... DIRECTORY\n\n" "Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n" "\n" "\t-a\tsame as -dpR\n" diff --git a/coreutils/date.c b/coreutils/date.c index 501ccc28f..6be89df3e 100644 --- a/coreutils/date.c +++ b/coreutils/date.c @@ -35,7 +35,7 @@ mail commands */ static const char date_usage[] = "date [OPTION]... [+FORMAT]\n" -" or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n" +" or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n\n" "Display the current time in the given FORMAT, or set the system date.\n" "\nOptions:\n\t-R\t\toutput RFC-822 compliant date string\n" "\t-s\t\tset time described by STRING\n" diff --git a/coreutils/dd.c b/coreutils/dd.c index 33c45940e..800ed59f8 100644 --- a/coreutils/dd.c +++ b/coreutils/dd.c @@ -34,7 +34,7 @@ #include static const char dd_usage[] = -"dd [if=name] [of=name] [bs=n] [count=n]\n" +"dd [if=name] [of=name] [bs=n] [count=n]\n\n" "Copy a file, converting and formatting according to options\n\n" "\tif=FILE\tread from FILE instead of stdin\n" "\tof=FILE\twrite to FILE instead of stout\n" @@ -227,8 +227,7 @@ extern int dd_main (int argc, char **argv) exit( TRUE); usage: - fprintf (stderr, "%s", dd_usage); - exit( FALSE); + usage( dd_usage); } diff --git a/coreutils/ln.c b/coreutils/ln.c index 62496fba0..60fe39438 100644 --- a/coreutils/ln.c +++ b/coreutils/ln.c @@ -27,9 +27,9 @@ #include -static const char ln_usage[] = "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n" -"Create a link named LINK_NAME or DIRECTORY to the specified TARGET\n" -"\nOptions:\n" +static const char ln_usage[] = "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n\n" +"Create a link named LINK_NAME or DIRECTORY to the specified TARGET\n\n" +"Options:\n" "\t-s\tmake symbolic links instead of hard links\n" "\t-f\tremove existing destination files\n"; diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c index 0d0a90ec3..4c7ebed6a 100644 --- a/coreutils/mkdir.c +++ b/coreutils/mkdir.c @@ -26,10 +26,11 @@ #include #include -static const char mkdir_usage[] = "Usage: mkdir [OPTION] DIRECTORY...\n" +static const char mkdir_usage[] = "Usage: mkdir [OPTION] DIRECTORY...\n\n" "Create the DIRECTORY(ies), if they do not already exist\n\n" -"-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" -"-p\tno error if existing, make parent directories as needed\n"; +"Options:\n" +"\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" +"\t-p\tno error if existing, make parent directories as needed\n"; static int parentFlag = FALSE; diff --git a/coreutils/mknod.c b/coreutils/mknod.c index 81c846b98..c3389cc71 100644 --- a/coreutils/mknod.c +++ b/coreutils/mknod.c @@ -27,9 +27,9 @@ #include #include -static const char mknod_usage[] = "mknod file b|c|u|p major minor\n" -"\tMake special files.\n" -"\n" +static const char mknod_usage[] = "mknod [OPTION]... NAME TYPE MAJOR MINOR\n\n" +"Make block or character special files.\n\n" +"Options:\n" "\tb:\tMake a block (buffered) device.\n" "\tc or u:\tMake a character (un-buffered) device.\n" "\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n"; diff --git a/coreutils/mv.c b/coreutils/mv.c index e502250ec..b861ab7e6 100644 --- a/coreutils/mv.c +++ b/coreutils/mv.c @@ -29,7 +29,7 @@ static const char mv_usage[] = "mv SOURCE DEST\n" -" or: mv SOURCE... DIRECTORY\n" +" or: mv SOURCE... DIRECTORY\n\n" "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n"; diff --git a/coreutils/rm.c b/coreutils/rm.c index 077e792f9..e6132ab35 100644 --- a/coreutils/rm.c +++ b/coreutils/rm.c @@ -27,8 +27,9 @@ #include #include -static const char* rm_usage = "rm [OPTION]... FILE...\n" +static const char* rm_usage = "rm [OPTION]... FILE...\n\n" "Remove (unlink) the FILE(s).\n\n" +"Options:\n" "\t-f\tremove existing destinations, never prompt\n" "\t-r\tremove the contents of directories recursively\n"; diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c index 56b838736..013fef1a4 100644 --- a/coreutils/rmdir.c +++ b/coreutils/rmdir.c @@ -29,7 +29,7 @@ extern int rmdir_main(int argc, char **argv) { if ( argc==1 || **(argv+1) == '-' ) { - usage( "rmdir [OPTION]... DIRECTORY...\nRemove the DIRECTORY(ies), if they are empty."); + usage( "rmdir [OPTION]... DIRECTORY...\n\nRemove the DIRECTORY(ies), if they are empty.\n"); } while (--argc > 0) { diff --git a/coreutils/sleep.c b/coreutils/sleep.c index 826697824..bfbb78f61 100644 --- a/coreutils/sleep.c +++ b/coreutils/sleep.c @@ -23,8 +23,8 @@ #include "internal.h" #include -const char sleep_usage[] = " NUMBER\n" -"Pause for NUMBER seconds.\n"; +const char sleep_usage[] = "sleep N\n\n" +"Pause for N seconds.\n"; extern int sleep_main(int argc, char * * argv) diff --git a/coreutils/sync.c b/coreutils/sync.c index cb4690c02..145ed1eda 100644 --- a/coreutils/sync.c +++ b/coreutils/sync.c @@ -27,7 +27,7 @@ extern int sync_main(int argc, char * * argv) { if ( argc>1 && **(argv+1) == '-' ) { - usage( "sync\nWrite all buffered filesystem blocks to disk.\n"); + usage( "sync\n\nWrite all buffered filesystem blocks to disk.\n"); } exit( sync()); } diff --git a/coreutils/touch.c b/coreutils/touch.c index b98a2e4c8..d2d3e9484 100644 --- a/coreutils/touch.c +++ b/coreutils/touch.c @@ -31,7 +31,7 @@ static const char touch_usage[] = "touch [-c] file [file ...]\n\n" -"\tUpdate the last-modified date on the given file[s].\n"; +"Update the last-modified date on the given file[s].\n"; @@ -54,7 +54,7 @@ touch_main(int argc, char **argv) create = FALSE; break; default: - fprintf(stderr, "Unknown option: %c\n", **argv); + usage( touch_usage); exit( FALSE); } argc--; diff --git a/coreutils/uname.c b/coreutils/uname.c index b54deb345..9083edb04 100644 --- a/coreutils/uname.c +++ b/coreutils/uname.c @@ -41,8 +41,9 @@ static const char uname_usage[] = - "uname [OPTION]...\n" - "Print certain system information. With no OPTION, same as -s.\n" + "uname [OPTION]...\n\n" + "Print certain system information. With no OPTION, same as -s.\n\n" + "Options:\n" "\t-a\tprint all information\n" "\t-m\tthe machine (hardware) type\n" "\t-n\tprint the machine's network node hostname\n" diff --git a/cp.c b/cp.c index 9dac2afbc..57158c820 100644 --- a/cp.c +++ b/cp.c @@ -28,7 +28,7 @@ #include static const char cp_usage[] = "cp [OPTION]... SOURCE DEST\n" - " or: cp [OPTION]... SOURCE... DIRECTORY\n" + " or: cp [OPTION]... SOURCE... DIRECTORY\n\n" "Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n" "\n" "\t-a\tsame as -dpR\n" diff --git a/date.c b/date.c index 501ccc28f..6be89df3e 100644 --- a/date.c +++ b/date.c @@ -35,7 +35,7 @@ mail commands */ static const char date_usage[] = "date [OPTION]... [+FORMAT]\n" -" or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n" +" or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]\n\n" "Display the current time in the given FORMAT, or set the system date.\n" "\nOptions:\n\t-R\t\toutput RFC-822 compliant date string\n" "\t-s\t\tset time described by STRING\n" diff --git a/dd.c b/dd.c index 33c45940e..800ed59f8 100644 --- a/dd.c +++ b/dd.c @@ -34,7 +34,7 @@ #include static const char dd_usage[] = -"dd [if=name] [of=name] [bs=n] [count=n]\n" +"dd [if=name] [of=name] [bs=n] [count=n]\n\n" "Copy a file, converting and formatting according to options\n\n" "\tif=FILE\tread from FILE instead of stdin\n" "\tof=FILE\twrite to FILE instead of stout\n" @@ -227,8 +227,7 @@ extern int dd_main (int argc, char **argv) exit( TRUE); usage: - fprintf (stderr, "%s", dd_usage); - exit( FALSE); + usage( dd_usage); } diff --git a/deallocvt.c b/deallocvt.c index ae4dbb5a8..1e13ff69c 100644 --- a/deallocvt.c +++ b/deallocvt.c @@ -17,8 +17,10 @@ int deallocvt_main(int argc, char *argv[]) { int fd, num, i; - if (argc < 1) /* unlikely */ - exit(1); + if ( ( argc != 2) || (**(argv+1) == '-' ) ) { + usage ("deallocvt N\n\nDeallocate unused virtual terminal /dev/ttyN\n"); + } + progname = argv[0]; fd = get_console_fd("/dev/console"); diff --git a/editors/sed.c b/editors/sed.c index 34756e09a..4dfc0246c 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -32,18 +32,18 @@ #include static const char sed_usage[] = -"sed [-n] [-e script] [file...]\n" -"Allowed scripts come in the following form:\n\n" -"'s/regexp/replacement/[gp]'\n" -"\tattempt to match regexp against the pattern space\n" -"\tand if successful replaces the matched portion with replacement.\n\n" +"sed [-n] [-e script] [file...]\n\n" +"Allowed sed scripts come in the following form:\n" +"\t's/regexp/replacement/[gp]'\n" +"which attempt to match regexp against the pattern space\n" +"and if successful replaces the matched portion with replacement.\n\n" "Options:\n" "-e\tadd the script to the commands to be executed\n" "-n\tsuppress automatic printing of pattern space\n\n" #if defined BB_REGEXP -"This version of sed matches full regexps.\n"; +"This version of sed matches full regular expresions.\n"; #else -"This version of sed matches strings (not full regexps).\n"; +"This version of sed matches strings (not full regular expresions).\n"; #endif diff --git a/find.c b/find.c index ab9ebf434..0f1f5f189 100644 --- a/find.c +++ b/find.c @@ -32,9 +32,18 @@ static char* pattern=NULL; static char* directory="."; static int dereferenceFlag=FALSE; -static const char find_usage[] = "find [path...] [expression]\n" -"default path is the current directory; default expression is -print\n" -"expression may consist of:\n"; +static const char find_usage[] = "find [PATH...] [EXPRESSION]\n\n" +"Search for files in a directory hierarchy. The default PATH is\n" +"the current directory; default EXPRESSION is '-print'\n\n" +"\nEXPRESSION may consist of:\n" +"\t-follow\n\t\tDereference symbolic links.\n" +"\t-name PATTERN\n\t\tFile name (with leading directories removed) matches PATTERN.\n" +"\t-print\n\t\tprint the full file name followed by a newline to stdout.\n\n" +#if defined BB_REGEXP +"This version of find matches full regular expresions.\n"; +#else +"This version of find matches strings (not regular expresions).\n"; +#endif diff --git a/findutils/find.c b/findutils/find.c index ab9ebf434..0f1f5f189 100644 --- a/findutils/find.c +++ b/findutils/find.c @@ -32,9 +32,18 @@ static char* pattern=NULL; static char* directory="."; static int dereferenceFlag=FALSE; -static const char find_usage[] = "find [path...] [expression]\n" -"default path is the current directory; default expression is -print\n" -"expression may consist of:\n"; +static const char find_usage[] = "find [PATH...] [EXPRESSION]\n\n" +"Search for files in a directory hierarchy. The default PATH is\n" +"the current directory; default EXPRESSION is '-print'\n\n" +"\nEXPRESSION may consist of:\n" +"\t-follow\n\t\tDereference symbolic links.\n" +"\t-name PATTERN\n\t\tFile name (with leading directories removed) matches PATTERN.\n" +"\t-print\n\t\tprint the full file name followed by a newline to stdout.\n\n" +#if defined BB_REGEXP +"This version of find matches full regular expresions.\n"; +#else +"This version of find matches strings (not regular expresions).\n"; +#endif diff --git a/findutils/grep.c b/findutils/grep.c index 8dcff0586..84bb99667 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -32,15 +32,16 @@ #include static const char grep_usage[] = -"grep [-ihn]... PATTERN [FILE]...\n" +"grep [OPTIONS]... PATTERN [FILE]...\n\n" "Search for PATTERN in each FILE or standard input.\n\n" +"OPTIONS:\n" "\t-h\tsuppress the prefixing filename on output\n" "\t-i\tignore case distinctions\n" "\t-n\tprint line number with output lines\n\n" #if defined BB_REGEXP -"This version of grep matches full regexps.\n"; +"This version of grep matches full regular expresions.\n"; #else -"This version of grep matches strings (not regexps).\n"; +"This version of grep matches strings (not regular expresions).\n"; #endif diff --git a/fsck_minix.c b/fsck_minix.c index 125274734..d31de20a8 100644 --- a/fsck_minix.c +++ b/fsck_minix.c @@ -191,9 +191,17 @@ static void leave(int status) } static void show_usage(void) { - fprintf(stderr, - "Usage: %s [-larvsmf] /dev/name\n", - program_name); + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); + fprintf(stderr, "Usage: %s [-larvsmf] /dev/name\n\n", program_name); + fprintf(stderr, "Performs a consistency check for MINIX filesystems.\n\n"); + fprintf(stderr, "OPTIONS:\n"); + fprintf(stderr, "\t-l\tLists all filenames\n"); + fprintf(stderr, "\t-r\tPerform interactive repairs\n"); + fprintf(stderr, "\t-a\tPerform automatic repairs\n"); + fprintf(stderr, "\t-v\tverbose\n"); + fprintf(stderr, "\t-s\tOutputs super-block information\n"); + fprintf(stderr, "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"); + fprintf(stderr, "\t-f\tForce file system check.\n\n"); leave(16); } diff --git a/grep.c b/grep.c index 8dcff0586..84bb99667 100644 --- a/grep.c +++ b/grep.c @@ -32,15 +32,16 @@ #include static const char grep_usage[] = -"grep [-ihn]... PATTERN [FILE]...\n" +"grep [OPTIONS]... PATTERN [FILE]...\n\n" "Search for PATTERN in each FILE or standard input.\n\n" +"OPTIONS:\n" "\t-h\tsuppress the prefixing filename on output\n" "\t-i\tignore case distinctions\n" "\t-n\tprint line number with output lines\n\n" #if defined BB_REGEXP -"This version of grep matches full regexps.\n"; +"This version of grep matches full regular expresions.\n"; #else -"This version of grep matches strings (not regexps).\n"; +"This version of grep matches strings (not regular expresions).\n"; #endif diff --git a/init.c b/init.c index a354f8a75..e70d5a15d 100644 --- a/init.c +++ b/init.c @@ -430,6 +430,13 @@ extern int init_main(int argc, char **argv) #endif +#ifndef DEBUG_INIT + if (getpid() != 1) { + usage( "init\n\nInit is the parent of all processes.\n\n" + "This version of init is designed to be run only by the kernel\n"); + } +#endif + /* Check if we are supposed to be in single user mode */ if ( argc > 1 && (!strcmp(argv[1], "single") || !strcmp(argv[1], "-s") || !strcmp(argv[1], "1"))) { diff --git a/init/init.c b/init/init.c index a354f8a75..e70d5a15d 100644 --- a/init/init.c +++ b/init/init.c @@ -430,6 +430,13 @@ extern int init_main(int argc, char **argv) #endif +#ifndef DEBUG_INIT + if (getpid() != 1) { + usage( "init\n\nInit is the parent of all processes.\n\n" + "This version of init is designed to be run only by the kernel\n"); + } +#endif + /* Check if we are supposed to be in single user mode */ if ( argc > 1 && (!strcmp(argv[1], "single") || !strcmp(argv[1], "-s") || !strcmp(argv[1], "1"))) { diff --git a/internal.h b/internal.h index 8d111a6c9..0e7054f14 100644 --- a/internal.h +++ b/internal.h @@ -138,7 +138,7 @@ const char* timeString(time_t timeVal); extern void createPath (const char *name, int mode); extern int parse_mode( const char* s, mode_t* theMode); -extern volatile void usage(const char *usage); +extern void usage(const char *usage) __attribute__ ((noreturn)); extern uid_t my_getpwnam(char *name); extern gid_t my_getgrnam(char *name); diff --git a/ln.c b/ln.c index 62496fba0..60fe39438 100644 --- a/ln.c +++ b/ln.c @@ -27,9 +27,9 @@ #include -static const char ln_usage[] = "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n" -"Create a link named LINK_NAME or DIRECTORY to the specified TARGET\n" -"\nOptions:\n" +static const char ln_usage[] = "ln [OPTION] TARGET... LINK_NAME|DIRECTORY\n\n" +"Create a link named LINK_NAME or DIRECTORY to the specified TARGET\n\n" +"Options:\n" "\t-s\tmake symbolic links instead of hard links\n" "\t-f\tremove existing destination files\n"; diff --git a/mkdir.c b/mkdir.c index 0d0a90ec3..4c7ebed6a 100644 --- a/mkdir.c +++ b/mkdir.c @@ -26,10 +26,11 @@ #include #include -static const char mkdir_usage[] = "Usage: mkdir [OPTION] DIRECTORY...\n" +static const char mkdir_usage[] = "Usage: mkdir [OPTION] DIRECTORY...\n\n" "Create the DIRECTORY(ies), if they do not already exist\n\n" -"-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" -"-p\tno error if existing, make parent directories as needed\n"; +"Options:\n" +"\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" +"\t-p\tno error if existing, make parent directories as needed\n"; static int parentFlag = FALSE; diff --git a/mkfs_minix.c b/mkfs_minix.c index 926a023b4..b90d3a700 100644 --- a/mkfs_minix.c +++ b/mkfs_minix.c @@ -171,10 +171,15 @@ static volatile void die(char *str) { static volatile void show_usage() { - fprintf(stderr, "%s\n", program_name); - fprintf(stderr, - "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n", - program_name); + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); + fprintf(stderr, "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n\n", program_name); + fprintf(stderr, "Make a MINIX filesystem.\n\n"); + fprintf(stderr, "OPTIONS:\n"); + fprintf(stderr, "\t-c\t\tCheck the device for bad blocks\n"); + fprintf(stderr, "\t-n [14|30]\tSpecify the maximum length of filenames\n"); + fprintf(stderr, "\t-i\t\tSpecify the number of inodes for the filesystem\n"); + fprintf(stderr, "\t-l FILENAME\tRead the bad blocks list from FILENAME\n"); + fprintf(stderr, "\t-v\t\tMake a Minix version 2 filesystem\n\n"); exit(16); } diff --git a/mknod.c b/mknod.c index 81c846b98..c3389cc71 100644 --- a/mknod.c +++ b/mknod.c @@ -27,9 +27,9 @@ #include #include -static const char mknod_usage[] = "mknod file b|c|u|p major minor\n" -"\tMake special files.\n" -"\n" +static const char mknod_usage[] = "mknod [OPTION]... NAME TYPE MAJOR MINOR\n\n" +"Make block or character special files.\n\n" +"Options:\n" "\tb:\tMake a block (buffered) device.\n" "\tc or u:\tMake a character (un-buffered) device.\n" "\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n"; diff --git a/mkswap.c b/mkswap.c index fceeb28dd..601188f86 100644 --- a/mkswap.c +++ b/mkswap.c @@ -47,11 +47,12 @@ /* we also get PAGE_SIZE via getpagesize() */ -static const char mkswap_usage[] = "mkswap [-c] [-v0|-v1] device [block-count]\n" +static const char mkswap_usage[] = "mkswap [-c] [-v0|-v1] device [block-count]\n\n" "Prepare a disk partition to be used as a swap partition.\n\n" -"\t-c\tCheck for read-ability.\n" -"\t-v0\tMake version 0 swap [max 128 Megs].\n" -"\t-v1\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" +"Options:\n" +"\t-c\t\tCheck for read-ability.\n" +"\t-v0\t\tMake version 0 swap [max 128 Megs].\n" +"\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" "\tblock-count\tNumber of block to use (default is entire partition).\n"; diff --git a/more.c b/more.c index 469316128..515857e0f 100644 --- a/more.c +++ b/more.c @@ -37,7 +37,7 @@ #include #include -static const char more_usage[] = "[file ...]"; +static const char more_usage[] = "more [file ...]\n"; /* ED: sparc termios is broken: revert back to old termio handling. */ #ifdef BB_FEATURE_USE_TERMIOS diff --git a/mount.c b/mount.c index 4c085d01b..827a56f0a 100644 --- a/mount.c +++ b/mount.c @@ -43,7 +43,7 @@ extern const char mtab_file[]; /* Defined in utility.c */ -static const char mount_usage[] = "Usage:\tmount [flags]\n" +static const char mount_usage[] = "\tmount [flags]\n" "\tmount [flags] device directory [-o options,more-options]\n" "\n" "Flags:\n" @@ -248,8 +248,7 @@ extern int mount_main (int argc, char **argv) while (i>0 && *++(*argv)) switch (**argv) { case 'o': if (--i == 0) { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } parse_mount_options (*(++argv), &flags, string_flags); --i; @@ -260,8 +259,7 @@ extern int mount_main (int argc, char **argv) break; case 't': if (--i == 0) { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } filesystemType = *(++argv); --i; @@ -284,9 +282,7 @@ extern int mount_main (int argc, char **argv) case 'v': case 'h': case '-': - fprintf (stderr, "%s\n", mount_usage); - exit( TRUE); - break; + goto goodbye; } } else { if (device == NULL) @@ -294,8 +290,7 @@ extern int mount_main (int argc, char **argv) else if (directory == NULL) directory=*argv; else { - fprintf (stderr, "%s\n", mount_usage); - exit( TRUE); + goto goodbye; } } i--; @@ -331,9 +326,11 @@ extern int mount_main (int argc, char **argv) exit (mount_one (device, directory, filesystemType, flags, string_flags, useMtab, fakeIt)); } else { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } } exit( TRUE); + +goodbye: + usage( mount_usage); } diff --git a/mv.c b/mv.c index e502250ec..b861ab7e6 100644 --- a/mv.c +++ b/mv.c @@ -29,7 +29,7 @@ static const char mv_usage[] = "mv SOURCE DEST\n" -" or: mv SOURCE... DIRECTORY\n" +" or: mv SOURCE... DIRECTORY\n\n" "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n"; diff --git a/procps/ps.c b/procps/ps.c index 55439dada..1f6175318 100644 --- a/procps/ps.c +++ b/procps/ps.c @@ -100,7 +100,7 @@ extern int ps_main(int argc, char **argv) int i, c; if ( argc>1 && **(argv+1) == '-' ) { - usage ("ps - report process status\nThis version of ps accepts no options.\n"); + usage ("ps\n\nReport process status\n\nThis version of ps accepts no options.\n"); } dir = opendir("/proc"); diff --git a/ps.c b/ps.c index 55439dada..1f6175318 100644 --- a/ps.c +++ b/ps.c @@ -100,7 +100,7 @@ extern int ps_main(int argc, char **argv) int i, c; if ( argc>1 && **(argv+1) == '-' ) { - usage ("ps - report process status\nThis version of ps accepts no options.\n"); + usage ("ps\n\nReport process status\n\nThis version of ps accepts no options.\n"); } dir = opendir("/proc"); diff --git a/rm.c b/rm.c index 077e792f9..e6132ab35 100644 --- a/rm.c +++ b/rm.c @@ -27,8 +27,9 @@ #include #include -static const char* rm_usage = "rm [OPTION]... FILE...\n" +static const char* rm_usage = "rm [OPTION]... FILE...\n\n" "Remove (unlink) the FILE(s).\n\n" +"Options:\n" "\t-f\tremove existing destinations, never prompt\n" "\t-r\tremove the contents of directories recursively\n"; diff --git a/rmdir.c b/rmdir.c index 56b838736..013fef1a4 100644 --- a/rmdir.c +++ b/rmdir.c @@ -29,7 +29,7 @@ extern int rmdir_main(int argc, char **argv) { if ( argc==1 || **(argv+1) == '-' ) { - usage( "rmdir [OPTION]... DIRECTORY...\nRemove the DIRECTORY(ies), if they are empty."); + usage( "rmdir [OPTION]... DIRECTORY...\n\nRemove the DIRECTORY(ies), if they are empty.\n"); } while (--argc > 0) { diff --git a/sed.c b/sed.c index 34756e09a..4dfc0246c 100644 --- a/sed.c +++ b/sed.c @@ -32,18 +32,18 @@ #include static const char sed_usage[] = -"sed [-n] [-e script] [file...]\n" -"Allowed scripts come in the following form:\n\n" -"'s/regexp/replacement/[gp]'\n" -"\tattempt to match regexp against the pattern space\n" -"\tand if successful replaces the matched portion with replacement.\n\n" +"sed [-n] [-e script] [file...]\n\n" +"Allowed sed scripts come in the following form:\n" +"\t's/regexp/replacement/[gp]'\n" +"which attempt to match regexp against the pattern space\n" +"and if successful replaces the matched portion with replacement.\n\n" "Options:\n" "-e\tadd the script to the commands to be executed\n" "-n\tsuppress automatic printing of pattern space\n\n" #if defined BB_REGEXP -"This version of sed matches full regexps.\n"; +"This version of sed matches full regular expresions.\n"; #else -"This version of sed matches strings (not full regexps).\n"; +"This version of sed matches strings (not full regular expresions).\n"; #endif diff --git a/sleep.c b/sleep.c index 826697824..bfbb78f61 100644 --- a/sleep.c +++ b/sleep.c @@ -23,8 +23,8 @@ #include "internal.h" #include -const char sleep_usage[] = " NUMBER\n" -"Pause for NUMBER seconds.\n"; +const char sleep_usage[] = "sleep N\n\n" +"Pause for N seconds.\n"; extern int sleep_main(int argc, char * * argv) diff --git a/sync.c b/sync.c index cb4690c02..145ed1eda 100644 --- a/sync.c +++ b/sync.c @@ -27,7 +27,7 @@ extern int sync_main(int argc, char * * argv) { if ( argc>1 && **(argv+1) == '-' ) { - usage( "sync\nWrite all buffered filesystem blocks to disk.\n"); + usage( "sync\n\nWrite all buffered filesystem blocks to disk.\n"); } exit( sync()); } diff --git a/tar.c b/tar.c index c23805993..ed6f3b6b5 100644 --- a/tar.c +++ b/tar.c @@ -35,22 +35,13 @@ #include #include -/* Note that tar.c expects TRUE and FALSE to be defined - * exactly the opposite of how they are used everywhere else. - * Some time this should be integrated a bit better, but this - * does the job for now. - */ -//#undef FALSE -//#undef TRUE -//#define FALSE ((int) 0) -//#define TRUE ((int) 1) - static const char tar_usage[] = - "tar -[cxtvOf] [tarFileName] [FILE] ...\n" - "Create, extract, or list files from a tar file\n\n" - "\tc=create, x=extract, t=list contents, v=verbose,\n" - "\tO=extract to stdout, f=tarfile or \"-\" for stdin\n"; +"tar -[cxtvOf] [tarFileName] [FILE] ...\n\n" +"Create, extract, or list files from a tar file\n\n" +"Options:\n" +"\tc=create, x=extract, t=list contents, v=verbose,\n" +"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n"; @@ -96,18 +87,18 @@ typedef struct { /* * Static data. */ -static int listFlag; // -static int extractFlag; // -static int createFlag; // -static int verboseFlag; // -static int tostdoutFlag; // +static int listFlag; +static int extractFlag; +static int createFlag; +static int verboseFlag; +static int tostdoutFlag; static int inHeader; // <- check me -static int badHeader; // -static int errorFlag; // -static int skipFileFlag; // -static int warnedRoot; // -static int eofFlag; // +static int badHeader; +static int errorFlag; +static int skipFileFlag; +static int warnedRoot; +static int eofFlag; static long dataCc; static int outFd; static char outName[TAR_NAME_SIZE]; @@ -136,7 +127,7 @@ static void readHeader (const TarHeader * hp, /* * Local procedures to save files into a tar file. */ -static void saveFile (const char *fileName, int seeLinks); // +static void saveFile (const char *fileName, int seeLinks); static void saveRegularFile (const char *fileName, const struct stat *statbuf); @@ -145,13 +136,13 @@ static void saveDirectory (const char *fileName, const struct stat *statbuf); static int wantFileName (const char *fileName, - int fileCount, char **fileTable); // + int fileCount, char **fileTable); static void writeHeader (const char *fileName, const struct stat *statbuf); static void writeTarFile (int fileCount, char **fileTable); static void writeTarBlock (const char *buf, int len); -static int putOctal (char *cp, int len, long value); // +static int putOctal (char *cp, int len, long value); extern int tar_main (int argc, char **argv) @@ -217,10 +208,13 @@ extern int tar_main (int argc, char **argv) break; case '-': + usage( tar_usage); break; default: - fprintf (stderr, "Unknown tar flag '%c'\n", *options); + fprintf (stderr, "Unknown tar flag '%c'\n" + "Try `tar --help' for more information\n", + *options); exit (FALSE); } @@ -230,7 +224,6 @@ extern int tar_main (int argc, char **argv) /* * Validate the options. */ - fprintf(stderr, "TRUE=%d FALSE=%d\n", TRUE, FALSE); if (extractFlag + listFlag + createFlag != (TRUE+FALSE+FALSE)) { fprintf (stderr, "Exactly one of 'c', 'x' or 't' must be specified\n"); diff --git a/touch.c b/touch.c index b98a2e4c8..d2d3e9484 100644 --- a/touch.c +++ b/touch.c @@ -31,7 +31,7 @@ static const char touch_usage[] = "touch [-c] file [file ...]\n\n" -"\tUpdate the last-modified date on the given file[s].\n"; +"Update the last-modified date on the given file[s].\n"; @@ -54,7 +54,7 @@ touch_main(int argc, char **argv) create = FALSE; break; default: - fprintf(stderr, "Unknown option: %c\n", **argv); + usage( touch_usage); exit( FALSE); } argc--; diff --git a/umount.c b/umount.c index 89c59f9ee..0d105d9c1 100644 --- a/umount.c +++ b/umount.c @@ -29,8 +29,8 @@ #include static const char umount_usage[] = -"Usage: umount [flags] filesystem|directory\n" -"Optional Flags:\n" +"Usage: umount [flags] filesystem|directory\n\n" +"Flags:\n" "\t-a:\tUnmount all file systems" #ifdef BB_MTAB " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n" @@ -108,7 +108,7 @@ umount_main(int argc, char** argv) } /* Parse any options */ - while (argc-- > 0 && **(argv++) == '-') { + while (--argc > 0 && **(++argv) == '-') { while (*++(*argv)) switch (**argv) { case 'a': umountAll = TRUE; diff --git a/uname.c b/uname.c index b54deb345..9083edb04 100644 --- a/uname.c +++ b/uname.c @@ -41,8 +41,9 @@ static const char uname_usage[] = - "uname [OPTION]...\n" - "Print certain system information. With no OPTION, same as -s.\n" + "uname [OPTION]...\n\n" + "Print certain system information. With no OPTION, same as -s.\n\n" + "Options:\n" "\t-a\tprint all information\n" "\t-m\tthe machine (hardware) type\n" "\t-n\tprint the machine's network node hostname\n" diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index 125274734..d31de20a8 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c @@ -191,9 +191,17 @@ static void leave(int status) } static void show_usage(void) { - fprintf(stderr, - "Usage: %s [-larvsmf] /dev/name\n", - program_name); + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); + fprintf(stderr, "Usage: %s [-larvsmf] /dev/name\n\n", program_name); + fprintf(stderr, "Performs a consistency check for MINIX filesystems.\n\n"); + fprintf(stderr, "OPTIONS:\n"); + fprintf(stderr, "\t-l\tLists all filenames\n"); + fprintf(stderr, "\t-r\tPerform interactive repairs\n"); + fprintf(stderr, "\t-a\tPerform automatic repairs\n"); + fprintf(stderr, "\t-v\tverbose\n"); + fprintf(stderr, "\t-s\tOutputs super-block information\n"); + fprintf(stderr, "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"); + fprintf(stderr, "\t-f\tForce file system check.\n\n"); leave(16); } diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index 926a023b4..b90d3a700 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c @@ -171,10 +171,15 @@ static volatile void die(char *str) { static volatile void show_usage() { - fprintf(stderr, "%s\n", program_name); - fprintf(stderr, - "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n", - program_name); + fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); + fprintf(stderr, "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n\n", program_name); + fprintf(stderr, "Make a MINIX filesystem.\n\n"); + fprintf(stderr, "OPTIONS:\n"); + fprintf(stderr, "\t-c\t\tCheck the device for bad blocks\n"); + fprintf(stderr, "\t-n [14|30]\tSpecify the maximum length of filenames\n"); + fprintf(stderr, "\t-i\t\tSpecify the number of inodes for the filesystem\n"); + fprintf(stderr, "\t-l FILENAME\tRead the bad blocks list from FILENAME\n"); + fprintf(stderr, "\t-v\t\tMake a Minix version 2 filesystem\n\n"); exit(16); } diff --git a/util-linux/mkswap.c b/util-linux/mkswap.c index fceeb28dd..601188f86 100644 --- a/util-linux/mkswap.c +++ b/util-linux/mkswap.c @@ -47,11 +47,12 @@ /* we also get PAGE_SIZE via getpagesize() */ -static const char mkswap_usage[] = "mkswap [-c] [-v0|-v1] device [block-count]\n" +static const char mkswap_usage[] = "mkswap [-c] [-v0|-v1] device [block-count]\n\n" "Prepare a disk partition to be used as a swap partition.\n\n" -"\t-c\tCheck for read-ability.\n" -"\t-v0\tMake version 0 swap [max 128 Megs].\n" -"\t-v1\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" +"Options:\n" +"\t-c\t\tCheck for read-ability.\n" +"\t-v0\t\tMake version 0 swap [max 128 Megs].\n" +"\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" "\tblock-count\tNumber of block to use (default is entire partition).\n"; diff --git a/util-linux/more.c b/util-linux/more.c index 469316128..515857e0f 100644 --- a/util-linux/more.c +++ b/util-linux/more.c @@ -37,7 +37,7 @@ #include #include -static const char more_usage[] = "[file ...]"; +static const char more_usage[] = "more [file ...]\n"; /* ED: sparc termios is broken: revert back to old termio handling. */ #ifdef BB_FEATURE_USE_TERMIOS diff --git a/util-linux/mount.c b/util-linux/mount.c index 4c085d01b..827a56f0a 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -43,7 +43,7 @@ extern const char mtab_file[]; /* Defined in utility.c */ -static const char mount_usage[] = "Usage:\tmount [flags]\n" +static const char mount_usage[] = "\tmount [flags]\n" "\tmount [flags] device directory [-o options,more-options]\n" "\n" "Flags:\n" @@ -248,8 +248,7 @@ extern int mount_main (int argc, char **argv) while (i>0 && *++(*argv)) switch (**argv) { case 'o': if (--i == 0) { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } parse_mount_options (*(++argv), &flags, string_flags); --i; @@ -260,8 +259,7 @@ extern int mount_main (int argc, char **argv) break; case 't': if (--i == 0) { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } filesystemType = *(++argv); --i; @@ -284,9 +282,7 @@ extern int mount_main (int argc, char **argv) case 'v': case 'h': case '-': - fprintf (stderr, "%s\n", mount_usage); - exit( TRUE); - break; + goto goodbye; } } else { if (device == NULL) @@ -294,8 +290,7 @@ extern int mount_main (int argc, char **argv) else if (directory == NULL) directory=*argv; else { - fprintf (stderr, "%s\n", mount_usage); - exit( TRUE); + goto goodbye; } } i--; @@ -331,9 +326,11 @@ extern int mount_main (int argc, char **argv) exit (mount_one (device, directory, filesystemType, flags, string_flags, useMtab, fakeIt)); } else { - fprintf (stderr, "%s\n", mount_usage); - exit( FALSE); + goto goodbye; } } exit( TRUE); + +goodbye: + usage( mount_usage); } diff --git a/util-linux/umount.c b/util-linux/umount.c index 89c59f9ee..0d105d9c1 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c @@ -29,8 +29,8 @@ #include static const char umount_usage[] = -"Usage: umount [flags] filesystem|directory\n" -"Optional Flags:\n" +"Usage: umount [flags] filesystem|directory\n\n" +"Flags:\n" "\t-a:\tUnmount all file systems" #ifdef BB_MTAB " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n" @@ -108,7 +108,7 @@ umount_main(int argc, char** argv) } /* Parse any options */ - while (argc-- > 0 && **(argv++) == '-') { + while (--argc > 0 && **(++argv) == '-') { while (*++(*argv)) switch (**argv) { case 'a': umountAll = TRUE; diff --git a/utility.c b/utility.c index cdf027a02..77eb5f2dd 100644 --- a/utility.c +++ b/utility.c @@ -46,7 +46,7 @@ const char mtab_file[] = "/proc/mounts"; /* volatile so gcc knows this is the enod of the line */ -volatile void usage(const char *usage) +extern void usage(const char *usage) { fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); fprintf(stderr, "Usage: %s\n", usage);