More doc updates for BusyBox, with fixes to apps for bugs revealed
authorErik Andersen <andersen@codepoet.org>
Thu, 13 Apr 2000 18:49:43 +0000 (18:49 -0000)
committerErik Andersen <andersen@codepoet.org>
Thu, 13 Apr 2000 18:49:43 +0000 (18:49 -0000)
while trying to write docs . :-)
 -Erik

30 files changed:
Changelog
Makefile
basename.c
busybox.def.h
coreutils/basename.c
coreutils/dirname.c
coreutils/echo.c
coreutils/ls.c
coreutils/mknod.c
dirname.c
docs/CommandList [deleted file]
docs/Makefile [new file with mode: 0644]
docs/busybox.pod
dutmp.c
echo.c
fbset.c
fdflush.c
find.c
findutils/find.c
freeramdisk.c
ls.c
miscutils/dutmp.c
mknod.c
mount.c
networking/ping.c
ping.c
util-linux/fbset.c
util-linux/fdflush.c
util-linux/freeramdisk.c
util-linux/mount.c

index 4227a78227f344fab9946fb310dda66f793a3d6c..9496d5fbbc014a63451374f0cd2bde0a5dc29ed8 100644 (file)
--- a/Changelog
+++ b/Changelog
            provides.  To enable this, turn on BB_FEATURE_USE_DEVPS_PATCH and
            patch your kernel with the devps patch in the kernel-patches/
            directory. 
-       * Wrote basename, killall, and uptime.
+       * Wrote basename, dirname, killall, and uptime.
        * tar has been completely rewritten by me.  Both tar creation and 
            extraction are now well behaved.  Costs 7.6k with all optional
            tar features enabled, and 5k for just tar extraction support. 
        * Added freeramdisk, which will free up all memory associated
            with a ram disk.  Contributed by Emanuele Caratti <wiz@iol.it>
            and then adjusted a bit by me.
-       * Added tr and dirname from John Lombardo <john@deltanet.com> 
+       * Added tr from John Lombardo <john@deltanet.com> 
        * Added echo and test (from me).
        * Added usleep contributed by Nicolas Pitre <nico@cam.org>
        * Several fixes from Pavel Roskin <pavel_roskin@geocities.com>:
-           -  When `tail' fails to open a file it now exits.
+           - When `tail' fails to open a file it now exits.
            - When `syslogd' is given the `-n' option it should still use 
                fork() for running klogd.
        * nslookup types are now changed to u_int32_t (instead of uint32_t)
index 1f03754f94a4638cd61f88c8044e3df76dd4fcc1..e2d98549f19b6f60d9e8c247006ce13a36ff2c75 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,7 @@ BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
 # Set the following to `true' to make a debuggable build.
 # Leave this set to `false' for production use.
 # eg: `make DODEBUG=true tests'
-DODEBUG = false
+DODEBUG = true
 
 # If you want a static binary, turn this on.
 DOSTATIC = false
@@ -94,7 +94,7 @@ ifdef BB_INIT_SCRIPT
     CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
 endif
 
-all: busybox busybox.links
+all: busybox busybox.links docs
 .PHONY: all
 
 busybox: $(OBJECTS)
@@ -104,6 +104,9 @@ busybox: $(OBJECTS)
 busybox.links: busybox.def.h
        - ./busybox.mkll | sort >$@
 
+docs:  docs/busybox.pod
+       cd docs && $(MAKE) clean all 
+
 regexp.o nfsmount.o: %.o: %.h
 $(OBJECTS): %.o: busybox.def.h internal.h  %.c
 
@@ -128,6 +131,7 @@ install: busybox busybox.links
 
 .PHONY: dist release
 dist release: distclean
+       cd docs && $(MAKE) clean all 
        cd ..;                                  \
        rm -rf busybox-$(VERSION);              \
        cp -a busybox busybox-$(VERSION);       \
index 06e27663f813e34de059a3a3cb09750cd9e66e31..5fe5e0f0391da740cba9c6a0dd0ce8c978944819 100644 (file)
@@ -34,8 +34,10 @@ extern int basename_main(int argc, char **argv)
        argv++;
 
        s1=*argv+strlen(*argv)-1;
-       if (*s1 == '/')
+       while (s1 && *s1 == '/') {
                *s1 = '\0';
+               s1=*argv+strlen(*argv)-1;
+       }
        s = strrchr(*argv, '/');
        printf("%s\n", (s)? s + 1 : *argv);
        exit(TRUE);
index 647ed9ba41f44a71e81992de7ffa9d30f7930b8f..1952dd3776bdeb2e96b360b5ff175787d4e95b8b 100644 (file)
 //#define BB_FEATURE_SH_TAB_COMPLETION
 //
 //Turn on extra fbset options
-#define BB_FEATURE_FBSET_FANCY
+//#define BB_FEATURE_FBSET_FANCY
 //
 //
 // End of Features List
index 06e27663f813e34de059a3a3cb09750cd9e66e31..5fe5e0f0391da740cba9c6a0dd0ce8c978944819 100644 (file)
@@ -34,8 +34,10 @@ extern int basename_main(int argc, char **argv)
        argv++;
 
        s1=*argv+strlen(*argv)-1;
-       if (*s1 == '/')
+       while (s1 && *s1 == '/') {
                *s1 = '\0';
+               s1=*argv+strlen(*argv)-1;
+       }
        s = strrchr(*argv, '/');
        printf("%s\n", (s)? s + 1 : *argv);
        exit(TRUE);
index 77cb664acbbbc5a06145bda1d0dcd82de72f03d1..528b89a56dc6fe7a73585c049dda90b9ddf428d4 100644 (file)
 /* vi: set sw=4 ts=4: */
 /*
- * This is temporary -- needs to be rewritten to be tighter */
-/*
- * Copyright (c) 1991, 1993, 1994
- *     The Regents of the University of California.  All rights reserved.
+ * Mini dirname implementation for busybox
+ *
+ * Copyright (C) 2000 by Lineo, inc.
+ * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
  */
-
-#if 0
-#ifndef lint
-static char copyright[] = "@(#) Copyright (c) 1991, 1993, 1994\n\
-       The Regents of the University of California.  All rights reserved.\n";
-#endif                                                 /* not lint */
-
-#ifndef lint
-static char sccsid[] = "@(#)dirname.c  8.4 (Berkeley) 5/4/95";
-#endif                                                 /* not lint */
-#endif                                                 /* #if 0 */
-
 #include "internal.h"
 #include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
 
-void dirname_usage()
+extern int dirname_main(int argc, char **argv)
 {
+       char* s;
 
-       (void) fprintf(stderr, "usage: dirname path\n");
-       exit(1);
-}
-
-extern int dirname_main(argc, argv)
-int argc;
-char **argv;
-{
-       char *p;
-       int ch;
-
-       while ((ch = getopt(argc, argv, "")) != -1)
-               switch (ch) {
-               case '?':
-               default:
-                       dirname_usage();
-               }
-       argc -= optind;
-       argv += optind;
-
-       if (argc != 1)
-               dirname_usage();
-
-       /*
-        * (1) If string is //, skip steps (2) through (5).
-        * (2) If string consists entirely of slash characters, string
-        *     shall be set to a single slash character.  In this case,
-        *     skip steps (3) through (8).
-        */
-       for (p = *argv;; ++p) {
-               if (!*p) {
-                       if (p > *argv)
-                               (void) printf("/\n");
-                       else
-                               (void) printf(".\n");
-                       exit(0);
-               }
-               if (*p != '/')
-                       break;
+       if ((argc < 2) || (**(argv + 1) == '-')) {
+               usage("dirname [file ...]\n");
        }
+       argv++;
 
-       /*
-        * (3) If there are any trailing slash characters in string, they
-        *     shall be removed.
-        */
-       for (; *p; ++p);
-       while (*--p == '/')
-               continue;
-       *++p = '\0';
-
-       /*
-        * (4) If there are no slash characters remaining in string,
-        *     string shall be set to a single period character.  In this
-        *     case skip steps (5) through (8).
-        *
-        * (5) If there are any trailing nonslash characters in string,
-        *     they shall be removed.
-        */
-       while (--p >= *argv)
-               if (*p == '/')
-                       break;
-       ++p;
-       if (p == *argv) {
-               (void) printf(".\n");
-               exit(0);
+       s=*argv+strlen(*argv)-1;
+       while (s && *s == '/') {
+               *s = '\0';
+               s=*argv+strlen(*argv)-1;
        }
-
-       /*
-        * (6) If the remaining string is //, it is implementation defined
-        *     whether steps (7) and (8) are skipped or processed.
-        *
-        * This case has already been handled, as part of steps (1) and (2).
-        */
-
-       /*
-        * (7) If there are any trailing slash characters in string, they
-        *     shall be removed.
-        */
-       while (--p >= *argv)
-               if (*p != '/')
-                       break;
-       ++p;
-
-       /*
-        * (8) If the remaining string is empty, string shall be set to
-        *     a single slash character.
-        */
-       *p = '\0';
-       (void) printf("%s\n", p == *argv ? "/" : *argv);
-       exit(0);
+       s = strrchr(*argv, '/');
+       if (s && *s)
+               *s = '\0';
+       printf("%s\n", (s)? *argv : ".");
+       exit(TRUE);
 }
index 91f17aa0f4b51a9b8302ec6f54e544dfe7f284fb..2405d0ae1dd0c2b9f559a9c19a2de4934e73165e 100644 (file)
 #include "internal.h"
 #include <stdio.h>
 
+static const char uname_usage[] =
+       "echo [-neE] [ARG ...]\n\n"
+       "Prints the specified ARGs to stdout\n\n"
+       "Options:\n"
+       "\t-n\tsuppress trailing newline\n"
+       "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
+       "\t-E\tdisable interpretation of backslash-escaped characters\n";
+
 extern int 
 echo_main(int argc, char** argv)
 {
@@ -45,6 +53,9 @@ echo_main(int argc, char** argv)
                } else if (strcmp(p, "-E")==0) {
                        eflag = 0;
                }
+               else if (strncmp(p, "--", 2)==0) {
+                       usage( uname_usage);
+               } 
                else break;
                ap++;
        }
index 3e010503c803301ef908a6bf3a1e69a89e7c0cd5..0c7f6522cea486c270dac3a268c726ed23f8e209 100644 (file)
@@ -88,7 +88,6 @@
 #define DISP_FULLTIME  32              /* show extended time display */
 #define DIR_NOLIST     64                      /* show directory as itself, not contents */
 #define DISP_DIRNAME   128             /* show directory name (for internal use) */
-#define DIR_RECURSE    256                     /* -R (not yet implemented) */
 
 #ifndef MAJOR
 #define MAJOR(dev) (((dev)>>8)&0xff)
@@ -450,10 +449,33 @@ static const char ls_usage[] = "ls [-1a"
 #ifdef BB_FEATURE_LS_FILETYPES
        "F"
 #endif
-#ifdef FEATURE_RECURSIVE
-       "R"
+       "] [filenames...]\n\n"
+       "Options:\n"
+       "\t-a\tdo not hide entries starting with .\n"
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-c\twith -l: show ctime (the time of last\n"
+    "\t\tmodification of file status information)\n"
+#endif
+       "\t-d\tlist directory entries instead of contents\n"
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-e\tlist both full date and full time\n"
 #endif
-       "] [filenames...]\n";
+       "\t-l\tuse a long listing format\n"
+       "\t-n\tlist numeric UIDs and GIDs instead of names\n"
+#ifdef BB_FEATURE_LS_FILETYPES
+       "\t-p\tappend indicator (one of /=@|) to entries\n"
+#endif
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-u\twith -l: show access time (the time of last\n"
+       "\t\taccess of the file)\n"
+#endif
+       "\t-x\tlist entries by lines instead of by columns\n"
+       "\t-A\tdo not list implied . and ..\n"
+       "\t-C\tlist entries by columns\n"
+#ifdef BB_FEATURE_LS_FILETYPES
+       "\t-F\tappend indicator (one of */=@|) to entries\n"
+#endif
+       ;
 
 extern int ls_main(int argc, char **argv)
 {
@@ -508,11 +530,6 @@ extern int ls_main(int argc, char **argv)
                        case 'd':
                                opts |= DIR_NOLIST;
                                break;
-#ifdef FEATURE_RECURSIVE
-                       case 'R':
-                               opts |= DIR_RECURSE;
-                               break;
-#endif
 #ifdef BB_FEATURE_LS_TIMESTAMPS
                        case 'u':
                                time_fmt = TIME_ACCESS;
index b11a81f2abdd4b36230d99f7b140b5ce58d550b6..40f508d334c6dd8ce0a3beb0cf507c0581824d0d 100644 (file)
@@ -70,7 +70,7 @@ int mknod_main(int argc, char **argv)
 
        if (mknod(argv[1], mode, dev) != 0) {
                perror(argv[1]);
-               return (FALSE);
+               exit (FALSE);
        }
-       return (TRUE);
+       exit (TRUE);
 }
index 77cb664acbbbc5a06145bda1d0dcd82de72f03d1..528b89a56dc6fe7a73585c049dda90b9ddf428d4 100644 (file)
--- a/dirname.c
+++ b/dirname.c
 /* vi: set sw=4 ts=4: */
 /*
- * This is temporary -- needs to be rewritten to be tighter */
-/*
- * Copyright (c) 1991, 1993, 1994
- *     The Regents of the University of California.  All rights reserved.
+ * Mini dirname implementation for busybox
+ *
+ * Copyright (C) 2000 by Lineo, inc.
+ * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
  */
-
-#if 0
-#ifndef lint
-static char copyright[] = "@(#) Copyright (c) 1991, 1993, 1994\n\
-       The Regents of the University of California.  All rights reserved.\n";
-#endif                                                 /* not lint */
-
-#ifndef lint
-static char sccsid[] = "@(#)dirname.c  8.4 (Berkeley) 5/4/95";
-#endif                                                 /* not lint */
-#endif                                                 /* #if 0 */
-
 #include "internal.h"
 #include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
 
-void dirname_usage()
+extern int dirname_main(int argc, char **argv)
 {
+       char* s;
 
-       (void) fprintf(stderr, "usage: dirname path\n");
-       exit(1);
-}
-
-extern int dirname_main(argc, argv)
-int argc;
-char **argv;
-{
-       char *p;
-       int ch;
-
-       while ((ch = getopt(argc, argv, "")) != -1)
-               switch (ch) {
-               case '?':
-               default:
-                       dirname_usage();
-               }
-       argc -= optind;
-       argv += optind;
-
-       if (argc != 1)
-               dirname_usage();
-
-       /*
-        * (1) If string is //, skip steps (2) through (5).
-        * (2) If string consists entirely of slash characters, string
-        *     shall be set to a single slash character.  In this case,
-        *     skip steps (3) through (8).
-        */
-       for (p = *argv;; ++p) {
-               if (!*p) {
-                       if (p > *argv)
-                               (void) printf("/\n");
-                       else
-                               (void) printf(".\n");
-                       exit(0);
-               }
-               if (*p != '/')
-                       break;
+       if ((argc < 2) || (**(argv + 1) == '-')) {
+               usage("dirname [file ...]\n");
        }
+       argv++;
 
-       /*
-        * (3) If there are any trailing slash characters in string, they
-        *     shall be removed.
-        */
-       for (; *p; ++p);
-       while (*--p == '/')
-               continue;
-       *++p = '\0';
-
-       /*
-        * (4) If there are no slash characters remaining in string,
-        *     string shall be set to a single period character.  In this
-        *     case skip steps (5) through (8).
-        *
-        * (5) If there are any trailing nonslash characters in string,
-        *     they shall be removed.
-        */
-       while (--p >= *argv)
-               if (*p == '/')
-                       break;
-       ++p;
-       if (p == *argv) {
-               (void) printf(".\n");
-               exit(0);
+       s=*argv+strlen(*argv)-1;
+       while (s && *s == '/') {
+               *s = '\0';
+               s=*argv+strlen(*argv)-1;
        }
-
-       /*
-        * (6) If the remaining string is //, it is implementation defined
-        *     whether steps (7) and (8) are skipped or processed.
-        *
-        * This case has already been handled, as part of steps (1) and (2).
-        */
-
-       /*
-        * (7) If there are any trailing slash characters in string, they
-        *     shall be removed.
-        */
-       while (--p >= *argv)
-               if (*p != '/')
-                       break;
-       ++p;
-
-       /*
-        * (8) If the remaining string is empty, string shall be set to
-        *     a single slash character.
-        */
-       *p = '\0';
-       (void) printf("%s\n", p == *argv ? "/" : *argv);
-       exit(0);
+       s = strrchr(*argv, '/');
+       if (s && *s)
+               *s = '\0';
+       printf("%s\n", (s)? *argv : ".");
+       exit(TRUE);
 }
diff --git a/docs/CommandList b/docs/CommandList
deleted file mode 100644 (file)
index 03c74bb..0000000
+++ /dev/null
@@ -1,1025 +0,0 @@
-The following document includes a continuous description of the current
-commands, functions and utilities included in the busybox.
-
-John Cooper       
-johnc@lineo.com
-
-_______________________________________________________________________________________________________
-
-
-
-
-                    BusyBox 0.38, Functions and the Arguments they Support 
-
-
-New Apps that have been added to BusyBox since this document was written:
-    ping, hostname, mkfifo, free, tail, du, tee, head, sort, uniq, lsmod, rmmod, fbset, and loadacm.
-
-
-
-______________________________________________________________________________________________________
-
-
-
-
-
-cat [file]        
-               Display file contents to standard output.
-
-
-
-
-_______________________________________________________________________________________________________
-
-
-
-
-
-chmod [-R] Mode,[Mode] file
-
-               Change file access permissions (mode) of one or more files.
-
-       -R      Follows the directory tree from the current location thru all sub-directories,
-
-               applying changes.
-
-               Mode =  u  User
-
-                        g  Group
-
-                        o  Other
-
-                        a  All
-
-               Permission =    r  Read
-
-                               w  Write
-
-                               s  Set user (or group) ID
-
-                               t  Sticky bit file cannot be removed by other
-
-                                          than the owner.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-chown [option] owner[group]file
-
-               Change owner and (or) group of file to owner and (or) group.    
-
-                Only the current owner or a priveleged user may change an owner.
-
-       -R      Follows the directory tree from the current location thru all sub-directories, applying
-
-               changes.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-chgrp [option] newgroup file
-
-               Change group of file or files  to new group name or ID number located in /etc/group.
-
-                Only the current owner or a priveleged user may change the group name or ID 
-
-       -R      Follows the directory tree from the current location thru all sub-directories,
-
-               applying changes.
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-chroot NEWROOT [Command...]                  (System Admin Command)
-
-               Run command with root directory set to NEWROOT.  Only the current owner or a priveleged 
-
-                user may use this command.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-clear
-
-               Clear screen.
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-cp [option] fileA fileB
-
-       Copy fileA to fileB or fileA to directory maintaining fileA name.
-
-               -a      archive         Maintain file attributes whenever possible. Same as -dpR
-
-               -d      no dereference  Maintain hard link relationships between fileA and fileB.
-
-                                       No dereference of symbolic links.
-
-               -p      maintain file   Maintain all file attributes and information including owner 
-
-                        attributes      group permissions and time information.
-
-               -R      recursive       Copies directories recursively
-
-
-
-
-
-_________________________________________________________________________________________________________
-
-
-
-
-
-date [option [+format] [date]
-
-date [option] [MMDDhhmm[[CC]YY][.SS]]
-
-       Display the current system date and time.
-
-               -R      RFC-822 string  Output an RFC-822 compliant date string.
-
-               -s      set DATE        Set date where date is entered in MMDDhhmm etc. format.
-
-               -u      universal       Print or set Coordinated Universal Time.
-
-
-
-
-
-_______________________________________________________________________________________________________
-
-
-
-
-
-
-dd [if=name] [of=name] [bs=n] [count=n]
-
-
-       Copy a file, converting and formatting according to options.  Most useful when copying from
-
-       physical input and output devices.
-
-               if=fileA  (instead of standard input)
-
-               of=fileB  (instead of standard output)
-
-               bs=n      Read and write N Bytes at a time.
-
-               count=n   Copy only n input blocks.
-
-       Bytes may be suffixed by k for x1024, b for x512 and w for x2.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-df
-
-
-       Display filesystem, number of blocks used, number of blocks available, number of blocks in use,
-
-        and mount point.
-        
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-dmesg [-c] [-n level] [-s bufsize]            (System Admin Command)
-
-
-       Display system control messages.  Stored in the kernel ring buffer are all messages since the
-
-        last system boot, or the most recent if the buffer had been full.
-
-
-               -c              Clear buffer after printing messages.
-               
-               -n level        Set the level of system message to be displayed on the console.
-
-               -s bufsize      Display the size of the kernel ring buffer.
-        
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-find [PATH] [EXPRESSION]
-
-       Search for files in the current directory, and all subdirectories for patterns that match
-
-       expression.  Expressions may consist of the following.
-
-               -follow         Dereference symbolic links.
-
-               -name PATTERN   Find files that match PATTERN. Metacharacters should be escaped or  
-
-                               quoted.
-
-               -print          Print full file name, followed by a newline, to standard out.
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-chvt N
-
-       Change foreground virtual terminal to /dev/ttyN.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-deallocvt N
-
-       Deallocate unused virtual terminal /dev/ttyN.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-fsck.minix [-larvsmf] /dev/name
-
-       Perform a consistency check for minix filesystems.
-
-               -l      List filenames.
-
-               -r      Perform interactive repairs. 
-
-               -a      Perform automatic repairs
-
-               -v      Verbose
-
-               -s      Output superblock information
-
-               -m      Activates minix-like "mode not cleared" warnings.
-
-               -f      Force file system check.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-mkfs.minix [-c | -l filename ] [-nXX] [-iXX] /dev/name [blocks]
-
-       Make a minix file system.
-
-               -c      Check device for bad blocks.
-
-               -n      [ 14|30 ] Specify max length of filenames.
-
-               -i      Specify number of inodes for filesystem.
-
-               -l filename
-
-                       Read the bad blocks list from filename.
-
-               -v      Make a minix version 2 filesystem.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-grep [OPTIONS] PATTERN [FILE]
-
-       Search for PATTERN in each FILE or from standard input.
-
-               -h      Suppress prefixing filename on output.
-
-               -i      Ignore case distinctions.
-
-               -n      Print line number with output lines.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-init
-
-       The parent of all processes.  Only to be run by the kernel.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-kill [ -s sigspec | -signum | -sigspec ] [pid | job ]  or
-
-kill -l [ exitstatus ]
-
-       Currently no information help page for this command
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-ln [option] TARGET... LINK_NAME|DIRECTORY
-
-       Create a link named LINK_NAME or DIRECTORY to TARGET.
-
-               -s      Make symbolic links instead of hard links.
-
-               -f      Remove existing destination files.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-ls [ -1acdelnpuxACF ] [FILENAMES]
-
-       List contents of directories.
-
-               -1      Single entry per column of output.
-
-               -a      All files including hidden files beginning with a ..    
-
-               -c      Files are listed by status change time.
-
-               -d      List directories, not there contents.
-
-               -e      List both full date and full time
-
-               -l      List in long format including permissions, owner, size
-
-                       modification time etc.  
-
-               -n      Similar to -l, except use group ID and user ID instead
-
-                       of owner and group names.
-
-               -p      Directories are marked with a /.
-
-               -u      Display files sorted by file access time.
-
-               -x      Display files across the screen in rows.
-
-               -A      Display hidden and all other files except . and ...
-
-               -C      (Default, display files in columns)
-
-               -F      Tag files by type by appending:
-
-                               / to directories
-       
-                               * to executables
-
-                               @ to symbolic links
-
-                               | to fifo's
-
-                               = to sockets
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-mkdir [OPTION] directory
-
-       Create directories if they do not already exist.  You must have write permission to create
-
-       directories. Default mode can be modified by users umask.
-
-               -m      Used to set permission mode. (See chmod description)
-
-               -p      Make parent directories if they don't already exist.  Return error code if
-
-                       they already exist.
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-mknod NAME TYPE MAJOR MINOR
-
-Make block or character special files.
-
-TYPEs include:
-        b:      Make a block (buffered) device.
-        c or u: Make a character (un-buffered) device.
-        p:      Make a named pipe. Major and minor are ignored for named pipes.
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-mkswap [-c] [ -v0|-v1 ] device [block-count]
-
-       Prepare a disk partition to be used as a swap partition.
-
-               -c      Check for read-ability.
-
-               -v0     Make version 0 swap [max 128 megs]
-
-               -v1     Make version 1 swap [big |] default for
-
-                       kernels > 2.1.117.
-
-               block-count
-
-                       Number of blocks to use. (Default is the entire 
-
-                       partition).
-
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-more [file]
-
-       Display file one screen page at a time.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-mount [flags]
-
-mount [flags] device directory [-o options, more options ]
-
-       Mount a filesystem for file access.
-
-               -a      Mount all file systems in fstab.
-
-               -o option
-
-                       async/sync:     Writes are asynchronous/synchronous.
-
-                       dev/nodev:      Allow use of special device files
-
-                                       /disallow them.
-
-                       exec/noexec:    Allow use of executable files
-
-                                       /disallow them.
-
-                       suid/nosuid:    Allow set-user-id-root programs
-
-                                       /disallow them.
-
-                       remount:        Remount a currently-mounted filesystem
-
-                                       changing it's flags.
-
-                       ro/rw:          Mount for read-only/read-write.
-
-                       (There are more flags specific to each filesystem.
-
-                        See the written documentation for those.)
-
-               -r      Mount the filesystem read only.
-
-               -t FILESYSTEM TYPE
-
-                       Specify the filesystem type.
-
-               -w      Mount for reading and writing default
-
-               
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-mv fileA fileB    or
-
-mv fileA dirA
-
-       Move fileA to fileB.  (Renames fileA to fileB)
-
-       Move fileA to dirA    (Moves fileA into dirA)
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-ps
-
-       Report process status.  No options are currently supported.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-pwd
-
-       Print working directory  
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-reboot
-
-       Reboot system.  No options are currently supported.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-rm [option] file
-
-       Remove or unlink the files.
-
-               -f      Remove existing destinations.  Never prompt.
-
-               -r or -R  Remove contents of directories recursively.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-rmdir [OPTION] ... directory
-
-       Remove directories if they are empty.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-sed
-       Usage: sed [-n] -e script [file...]
-
-       Allowed sed scripts come in the following form:
-               'ADDR [!] COMMAND'
-
-               where address ADDR can be:
-                 NUMBER    Match specified line number
-                 $         Match last line
-                 /REGEXP/  Match specified regexp
-                 (! inverts the meaning of the match)
-
-               and COMMAND can be:
-                 s/regexp/replacement/[igp]
-                    which attempt to match regexp against the pattern space
-                    and if successful replaces the matched portion with replacement.
-
-                 aTEXT
-                    which appends TEXT after the pattern space
-       Options:
-       -e      add the script to the commands to be executed
-       -n      suppress automatic printing of pattern space
-
-       This version of sed matches full regular expresions.
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-sleep N
-
-       Pause for N seconds.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-tar -[cxtvOf] [tarFileName] [file]
-
-       Create, extract or list files from a tar file.
-
-               c=create
-               
-               x=extract
-
-               t=list contents
-
-               v=verbose
-
-               O=extract to stdout
-
-               f=tarfile or "-" for standard input
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-swapon device
-
-       Start swapping virtual memory pages on the given device.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-swapoff device
-
-       Stop swapping virtual memory pages on the given device.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-sync
-
-       Write all buffered filesystem blocks to disk.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-touch [-c] file [file...]
-
-       Update the last modified date on given file(s).
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-true
-
-       A null command that returns a successful 0 exit status code. (See false)
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-false
-
-       A null command that returns an unsuccessful or non-zero exit status.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-uname [option]
-
-       Print certain system information.  With no option, same as -s.
-
-               -a      Display all information
-
-               -m      Display machine hardware type.
-
-               -n      Display machine network node hostname.
-
-               -r      Display OS release
-
-               -s      Display OS Name.
-
-               -p      Display Host processor type.
-
-               -v      Display OS Version.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-umount [flags] filesystem | directory
-
-       Unmounts designated filesystem previously mounted on device.
-
-               -a      Unmount all file systems.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-update
-
-cvs update [options] files
-
-       Incorporates recent changes from the repository into files in your working directory.  No 
-
-       options are currently supported.
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-zcat [options] files
-
-       Usage: zcat [OPTION]... FILE
-
-       Uncompress FILE (or standard input if FILE is '-').
-       (When invoked as zcat, defaults to having -c turned on)
-
-       Options:
-               -c      Write output to standard output
-               -t      Test compressed file integrity
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-gunzip  (Same as zcat, but without the "-c" option.)
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-gzip [OPTION]... FILE
-
-       Compress FILE with maximum compression.
-       When FILE is -, reads standard input.  Implies -c.
-
-       Options:
-               -c      Write output to standard output instead of FILE.gz
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-
-loadfont   
-
-       No information available with --help.
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-loadkmap
-
-       No information available with --help
-
-
-
-
-
-________________________________________________________________________________________________________
-
-
-
-
-
-linuxrc
-
-       No information available with --help
-
-
-
-
-
-________________________________________________________________________________________________________
-
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644 (file)
index 0000000..aebe8a8
--- /dev/null
@@ -0,0 +1,22 @@
+# busybox/docs/Makefile - Create the documentation
+# ------------------------
+# Copyright (C) 2000  Erik Andersen <andersee@debian.org>  GPL
+
+all:: clean doc
+
+doc:
+       @echo
+       @echo BusyBox Documentation
+       @echo
+       pod2html busybox.pod > ../BusyBox.html 
+       @rm pod2html-*
+       pod2man --center=BusyBox --release="version $(VERSION)" busybox.pod > ../BusyBox.1
+       pod2text busybox.pod > ../BusyBox.txt
+
+clean::
+       @rm -f ../BusyBox.html ../BusyBox.1 ../BusyBox.txt pod2html*
+
+distclean: clean
+
+.PHONY: all clean distclean doc
+
index 3aecf3cffe8bdefd812f4e9f0e3d7afe4f628ac2..127cf89b5c7aed1ef6871051c4ea924755015cdb 100644 (file)
@@ -1,4 +1,4 @@
-# pod2man --center=Lineo --release="version 0.43" busybox.pod > busybox.1
+# vi: set sw=4 ts=4:
 
 =head1 NAME
 
@@ -36,20 +36,18 @@ tries to make itself useful to small systems with limited resources.
 
 Currently defined functions include:
 
-basename, cat, chmod, chown, chgrp, chroot, clear, chvt, cp, mv, date,
-dd, df, dirname, dmesg, du, dutmp, echo, fbset, fdflush, find, free,
+basename, cat, chmod, chown, chgrp, chroot, clear, chvt, cp, date,
+dd, df, dirname, dmesg, du, dutmp, echo, false, fbset, fdflush, find, free,
 freeramdisk, deallocvt, fsck.minix, mkfs.minix, grep, gunzip, gzip,
 halt, head, hostid, hostname, init, kill, killall, length, ln, loadacm,
 loadfont, loadkmap, ls, lsmod, makedevs, math, mkdir, mkfifo, mknod,
-mkswap, mnc, more, mount, mt, nslookup, poweroff, ping, printf, ps,
+mkswap, mnc, more, mount, mt, mv, nslookup, poweroff, ping, printf, ps,
 pwd, reboot, rm, rmdir, rmmod, sed, sh, fdisk, sfdisk, sleep, sort,
 sync, syslogd, logger, logname, swapon, swapoff, tail, tar, [, test,
-tee, touch, tr, true, false, tty, umount, uname, uptime, uniq, update,
+tee, touch, tr, true, tty, umount, uname, uptime, uniq, update,
 usleep, wc, whoami, yes, zcat
 
-=head1 OPTIONS
-
-Common Options: 
+=head1 COMMON OPTIONS
 
 Most BusyBox commands support the B<--help> option to provide a
 terse runtime description of their behavior. 
@@ -69,6 +67,8 @@ Example:
        $ basename /usr/local/bin/
        bin
 
+-------------------------------
+
 =item cat
 
 Usage: cat [file ...]
@@ -80,6 +80,8 @@ Example:
        $ cat /proc/uptime
        110716.72 17.67
 
+-------------------------------
+
 =item chmod
 
 Usage: chmod [B<-R>] MODE[,MODE]... FILE...
@@ -112,20 +114,20 @@ PERMISSION may be chosen from:
 
 Alternately, permissions may be set numerically where the first three
 numbers are calculated by adding the octal values:
-       
+
        4       Read
        2       Write
        1       eXecute
 
 An optional fourth digit may also be used to specify
-    
+
        4       Set user ID
        2       Set group ID
        1       sTickey bit
 
 Options:
 
-R    change files and directories recursively.
      -R      change files and directories recursively.
  
 Example:
 
@@ -138,6 +140,8 @@ Example:
        $ ls -l /tmp/foo
        -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
 
+-------------------------------
+
 =item chown
 
 Usage: chown [OPTION]...  OWNER[.[GROUP] FILE...
@@ -146,7 +150,7 @@ Changes the owner and/or group of each FILE to OWNER and/or GROUP.
  
 Options:
 
-R    change files and directories recursively
      -R      change files and directories recursively
 
 Example:
 
@@ -159,6 +163,8 @@ Example:
        ls -l /tmp/foo
        -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
 
+-------------------------------
+
 =item chgrp
 
 Usage: chgrp [OPTION]... GROUP FILE...
@@ -167,7 +173,7 @@ Change the group membership of each FILE to GROUP.
  
 Options:
 
-R    change files and directories recursively
      -R      change files and directories recursively
  
 Example:
 
@@ -177,31 +183,38 @@ Example:
        $ ls -l /tmp/foo
        -r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo
 
+-------------------------------
+
 =item chroot
 
 Usage: chroot NEWROOT [COMMAND...]
 
 Run COMMAND with root directory set to NEWROOT.
  
-Exmaple:
+Example:
 
        $ ls -l /bin/ls
-       lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -> /bin/busybox
+       lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -> /busybox
        $ mount /dev/hdc1 /mnt -t minix
        $ chroot /mnt
        $ ls -l /bin/ls
        -rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*
 
+-------------------------------
+
 =item clear
 
 Clears the screen.
 
+-------------------------------
+
 =item chvt
 
 Usage: chvt N
 
 Change foreground virtual terminal to /dev/ttyN
  
+-------------------------------
 
 =item cp
 
@@ -216,6 +229,8 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
         -p      preserve file attributes if possable
         -R      copy directories recursively
 
+-------------------------------
+
 =item date
 
 Usage: date [OPTION]... [+FORMAT]
@@ -226,44 +241,47 @@ Display the current time in the given FORMAT, or set the system date.
 
 Options:
 
-        -R              output RFC-822 compliant date string
-        -s              set time described by STRING
-        -u              print or set Coordinated Universal Time
+       -R              output RFC-822 compliant date string
+       -s              set time described by STRING
+       -u              print or set Coordinated Universal Time
 
 Example:
 
        $ date
        Wed Apr 12 18:52:41 MDT 2000
 
+-------------------------------
+
 =item dd
 
 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
 
 Copy a file, converting and formatting according to options
 
-        if=FILE read from FILE instead of stdin
-        of=FILE write to FILE instead of stdout
-        bs=n    read and write n bytes at a time
-        count=n copy only n input blocks
-        skip=n  skip n input blocks
-        seek=n  skip n output blocks
+       if=FILE read from FILE instead of stdin
+       of=FILE write to FILE instead of stdout
+       bs=n    read and write n bytes at a time
+       count=n copy only n input blocks
+       skip=n  skip n input blocks
+       seek=n  skip n output blocks
 
 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
  
-
 Example:
 
        $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
        4+0 records in
        4+0 records out
 
+-------------------------------
+
 =item df
 
 Usage: df [filesystem ...]
 
 Prints the filesystem space used and space available.
 
-Exmaple:
+Example:
 
        $ df
        Filesystem           1k-blocks      Used Available Use% Mounted on
@@ -273,12 +291,31 @@ Exmaple:
        Filesystem           1k-blocks      Used Available Use% Mounted on
        /dev/sda3              8690864   8553540    137324  98% /
 
+-------------------------------
+
+=item dirname
+
+Usage: dirname NAME
+
+Strip non-directory suffix from file name
+
+Example:
+
+       $ dirname /tmp/foo
+       /tmp
+       $ dirname /tmp/foo/
+       /tmp
+
+-------------------------------
+
 =item dmesg
 
 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
  
 Print or controls the kernel ring buffer.
 
+-------------------------------
+
 =item du
 
 Usage: du [OPTION]... [FILE]...
@@ -288,8 +325,8 @@ Disk space is printed in units of 1k (i.e. 1024 bytes).
 
 Options:
 
-        -l      count sizes many times if hard linked
-        -s      display only a total for each argument
+       -l      count sizes many times if hard linked
+       -s      display only a total for each argument
 
 Example:
 
@@ -305,6 +342,56 @@ Example:
        104     ./docs
        2417    .
         
+-------------------------------
+
+=item dutmp
+
+Usage: dutmp [FILE]
+
+Dump utmp file format (pipe delimited) from FILE
+or stdin to stdout.
+
+Example:
+
+       $ dutmp /var/run/utmp
+       8|7||si|||0|0|0|955637625|760097|0
+       2|0|~|~~|reboot||0|0|0|955637625|782235|0
+       1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
+       8|125||l4|||0|0|0|955637629|998367|0
+       6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
+       6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
+       7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
+        
+-------------------------------
+
+=item echo
+
+Usage: echo [-neE] [ARG ...]
+
+Prints the specified ARGs to stdout
+
+Options:
+
+       -n      suppress trailing newline
+       -e      interpret backslash-escaped characters (i.e. \t=tab etc)
+       -E      disable interpretation of backslash-escaped characters
+
+Example:
+
+       $ echo "Erik is cool"
+       Erik is cool
+       $  echo -e "Erik\nis\ncool"
+       Erik
+       is
+       cool
+       $ echo "Erik\nis\ncool"
+       Erik\nis\ncool
+        
+-------------------------------
+
+=item false
+
+-------------------------------
 
 =item fbset
 
@@ -314,19 +401,39 @@ Show and modify frame buffer device settings
 
 Options:
 
- -h
- -fb
- -db
- -a
- -i
- -g
- -t
- -accel
- -hsync
- -vsync
- -laced
- -double
+       -h
+       -fb
+       -db
+       -a
+       -i
+       -g
+       -t
+       -accel
+       -hsync
+       -vsync
+       -laced
+       -double
+
+Example:
+
+       $ fbset
+       mode "1024x768-76"
+                       # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
+                       geometry 1024 768 1024 768 16
+                       timings 12714 128 32 16 4 128 4
+                       accel false
+                       rgba 5/11,6/5,5/0,0/0
+       endmode
+
+-------------------------------
 
+=item fdflush
+
+Usage: fdflush device
+
+Force floppy disk drive to detect disk change
+
+-------------------------------
 
 =item find
 
@@ -337,18 +444,18 @@ the current directory; default EXPRESSION is '-print'
 
 
 EXPRESSION may consist of:
-        -follow
-                Dereference symbolic links.
-        -name PATTERN
-                File name (with leading directories removed) matches PATTERN.
-        -print
-                print the full file name followed by a newline to stdout.
+
+       -follow                 Dereference symbolic links.
+       -name PATTERN   File name (leading directories removed) matches PATTERN.
+       -print                  print the full file name followed by a newline to stdout.
 
 Example:
 
        $ find / -name /etc/passwd
        /etc/passwd
 
+-------------------------------
+
 =item free
 
 Usage: free
@@ -363,6 +470,19 @@ Example:
         Swap:       128516         8404       120112
        Total:       386144       257128       129016
 
+-------------------------------
+
+=item freeramdisk
+
+Usage: freeramdisk DEVICE
+
+Free all memory used by the specified ramdisk.
+
+Example:
+
+       $ freeramdisk /dev/ram2
+
+-------------------------------
 
 =item deallocvt
 
@@ -370,6 +490,7 @@ Usage: deallocvt N
 
 Deallocates unused virtual terminal /dev/ttyN
  
+-------------------------------
 
 =item fsck.minix
 
@@ -379,14 +500,15 @@ Performs a consistency check for MINIX filesystems.
 
 OPTIONS:
 
-        -l      Lists all filenames
-        -r      Perform interactive repairs
-        -a      Perform automatic repairs
-        -v      verbose
-        -s      Outputs super-block information
-        -m      Activates MINIX-like "mode not cleared" warnings
-        -f      Force file system check.
+       -l      Lists all filenames
+       -r      Perform interactive repairs
+       -a      Perform automatic repairs
+       -v      verbose
+       -s      Outputs super-block information
+       -m      Activates MINIX-like "mode not cleared" warnings
+       -f      Force file system check.
+
+-------------------------------
 
 =item mkfs.minix
 
@@ -396,12 +518,13 @@ Make a MINIX filesystem.
 
 OPTIONS:
 
-        -c              Check the device for bad blocks
-        -n [14|30]      Specify the maximum length of filenames
-        -i              Specify the number of inodes for the filesystem
-        -l FILENAME     Read the bad blocks list from FILENAME
-        -v              Make a Minix version 2 filesystem
+       -c              Check the device for bad blocks
+       -n [14|30]      Specify the maximum length of filenames
+       -i              Specify the number of inodes for the filesystem
+       -l FILENAME     Read the bad blocks list from FILENAME
+       -v              Make a Minix version 2 filesystem
  
+-------------------------------
 
 =item grep
 
@@ -411,14 +534,13 @@ Search for PATTERN in each FILE or standard input.
 
 OPTIONS:
 
-        -h      suppress the prefixing filename on output
-        -i      ignore case distinctions
-        -n      print line number with output lines
-        -q      be quiet. Returns 0 if result was found, 1 otherwise
+       -h      suppress the prefixing filename on output
+       -i      ignore case distinctions
+       -n      print line number with output lines
+       -q      be quiet. Returns 0 if result was found, 1 otherwise
 
 This version of grep matches full regular expresions.
 
-
 Example:
 
        $ grep root /etc/passwd
@@ -426,6 +548,23 @@ Example:
        $ grep ^[rR]oo. /etc/passwd
        root:x:0:0:root:/root:/bin/bash
 
+-------------------------------
+
+=item gunzip
+
+
+-------------------------------
+
+=item gzip
+
+
+-------------------------------
+
+=item halt
+
+
+-------------------------------
+
 =item head
 
 Usage: head [OPTION] [FILE]...
@@ -436,7 +575,7 @@ file name. With no FILE, or when FILE is -, read standard input.
 
 Options:
 
-        -n NUM          Print first NUM lines instead of first 10
+       -n NUM          Print first NUM lines instead of first 10
 
 Example:
 
@@ -444,6 +583,13 @@ Example:
        root:x:0:0:root:/root:/bin/bash
        daemon:x:1:1:daemon:/usr/sbin:/bin/sh
 
+-------------------------------
+
+=item hostid
+
+
+-------------------------------
+
 =item hostname
 
 Usage: hostname [OPTION] {hostname | B<-F> file}
@@ -453,16 +599,23 @@ Get or set the hostname or DNS domain name. If a hostname is given
 
 Options:
 
-        -s              Short
-        -i              Addresses for the hostname
-        -d              DNS domain name
-        -F FILE         Use the contents of FILE to specify the hostname
+       -s              Short
+       -i              Addresses for the hostname
+       -d              DNS domain name
+       -F FILE         Use the contents of FILE to specify the hostname
 
 Example:
 
        $ hostname
        slag 
 
+-------------------------------
+
+=item init
+
+
+-------------------------------
+
 =item kill
 
 Usage: kill [B<-signal>] process-id [process-id ...]
@@ -471,7 +624,7 @@ Send a signal (default is SIGTERM) to the specified process(es).
 
 Options:
 
-        -l      List all signal names and numbers.
+       -l      List all signal names and numbers.
 
 Example:
 
@@ -484,6 +637,17 @@ Example:
        267 www-data www-data S [apache]
        $ kill 252
 
+-------------------------------
+
+=item killall
+
+-------------------------------
+
+=item length
+
+
+-------------------------------
+
 =item ln
 
 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
@@ -491,332 +655,339 @@ Create a link named LINK_NAME or DIRECTORY to the specified TARGET
  
 Options:
 
-s    make symbolic links instead of hard links
-f    remove existing destination files
      -s      make symbolic links instead of hard links
      -f      remove existing destination files
  
+Example:
+
+    $ ln -s busybox /tmp/ls
+    [andersen@debian busybox]$ ls -l /tmp/ls
+    lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -> busybox*
+
+-------------------------------
+
+=item loadacm
+
+-------------------------------
+
+=item loadfont
+
+-------------------------------
+
+=item loadkmap
+
+-------------------------------
 
 =item ls
 
 Usage: ls [B<-1acdelnpuxACF>] [filenames...]
+
+Options:
+
+       -a      do not hide entries starting with .
+       -c      with  -l:  show ctime (the time of last
+               modification of file status information)
+       -d      list directory entries instead of contents
+       -e      list both full date and full time
+       -l      use a long listing format
+       -n      list numeric UIDs and GIDs instead of names
+       -p      append indicator (one of /=@|) to entries
+       -u      with -l: show access time (the time of last
+               access of the file)
+       -x      list entries by lines instead of by columns
+       -A      do not list implied . and ..
+       -C      list entries by columns
+       -F      append indicator (one of */=@|) to entries
  
+-------------------------------
 
 =item lsmod
 
+Usage: lsmod
+
+Shows information about all loaded modules.
+
+-------------------------------
+
+=item makedevs
 
+-------------------------------
+
+=item math
+
+-------------------------------
 
 =item mkdir
 
-Usage: Usage: mkdir [OPTION] DIRECTORY...
+Usage: mkdir [OPTION] DIRECTORY...
+
 Create the DIRECTORY(ies), if they do not already exist
+
 Options:
 
- -m    set permission mode (as in chmod), not rwxrwxrwx - umask
- -p    no error if existing, make parent directories as needed
+       -m      set permission mode (as in chmod), not rwxrwxrwx - umask
+       -p      no error if dir exists, make parent directories as needed
+
+Example:
+
+       $ mkdir /tmp/foo
+       $ mkdir /tmp/foo
+       /tmp/foo: File exists
+       $ mkdir /tmp/foo/bar/baz
+       /tmp/foo/bar/baz: No such file or directory
+       $ mkdir -p /tmp/foo/bar/baz
+
+-------------------------------
+
+=item mkfifo
+
+-------------------------------
 
 =item mknod
 
 Usage: mknod NAME TYPE MAJOR MINOR
+
 Make block or character special files.
 
 TYPEs include:
 
- b:    Make a block (buffered) device.
- c or u:       Make a character (un-buffered) device.
- p:    Make a named pipe. Major and minor are ignored for named pipes.
+       b:      Make a block (buffered) device.
+       c or u: Make a character (un-buffered) device.
+       p:      Make a named pipe. Major and minor are ignored for named pipes.
+
+Example:
+
+       $ mknod /dev/fd0 b 2 0 
+
+-------------------------------
 
 =item mkswap
 
-Usage: mkswap [B<-c>] [-v0|-v1] device [block-count]
+Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
+
 Prepare a disk partition to be used as a swap partition.
+
 Options:
 
-c            Check for read-ability.
-v0           Make version 0 swap [max 128 Megs].
-v1           Make version 1 swap [big!] (default for kernels > 2.1.117).
block-count   Number of block to use (default is entire partition).
      -c              Check for read-ability.
      -v0             Make version 0 swap [max 128 Megs].
      -v1             Make version 1 swap [big!] (default for kernels > 2.1.117).
      block-count     Number of block to use (default is entire partition).
  
+-------------------------------
+
+=item mnc
+
+-------------------------------
 
 =item more
 
 Usage: more [file ...]
+
+More is a filter for paging through text one screenful at a time.
+
+Example:
+
+       $ dmesg | more
  
+-------------------------------
 
 =item mount
 
-Usage:         mount [flags]
-
-mount [flags] device directory [B<-o> options,more-options]
-
- Flags:
- -a:   Mount all file systems in fstab.
- -o option:    One of many filesystem options, listed below.
- -r:   Mount the filesystem read-only.
- -t filesystem-type:   Specify the filesystem type.
- -w:   Mount for reading and writing (default).
- Options for use with the "-o" flag:
- async / sync: Writes are asynchronous / synchronous.
- dev / nodev:  Allow use of special device files / disallow them.
- exec / noexec:        Allow use of executable files / disallow them.
- loop: Mounts a file via loop device.
- suid / nosuid:        Allow set-user-id-root programs / disallow them.
- remount: Re-mount a currently-mounted filesystem, changing its flags.
- ro / rw: Mount for read-only / read-write.
-
-There are EVEN MORE flags that are specific to each filesystem.
-You'll have to see the written documentation for those.
+Usage:  mount [flags]
+        mount [flags] device directory [B<-o> options,more-options]
 
-=item mv
+Flags:
 
-Usage: mv SOURCE DEST
+       -a:     Mount all file systems in fstab.
+       -o option:      One of many filesystem options, listed below.
+       -r:     Mount the filesystem read-only.
+       -t filesystem-type:     Specify the filesystem type.
+       -w:     Mount for reading and writing (default).
 
-or: mv SOURCE... DIRECTORY
+Options for use with the "B<-o>" flag:
 
-Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
+       async / sync:   Writes are asynchronous / synchronous.
+       dev / nodev:    Allow use of special device files / disallow them.
+       exec / noexec:  Allow use of executable files / disallow them.
+       loop: Mounts a file via loop device.
+       suid / nosuid:  Allow set-user-id-root programs / disallow them.
+       remount: Re-mount a currently-mounted filesystem, changing its flags.
+       ro / rw: Mount for read-only / read-write.
+       There are EVEN MORE flags that are specific to each filesystem.
+       You'll have to see the written documentation for those.
 
-=item ping
+Example:
 
+       $ mount
+       /dev/hda3 on / type minix (rw)
+       proc on /proc type proc (rw)
+       devpts on /dev/pts type devpts (rw)
+       $ mount /dev/fd0 /mnt -t msdos -o ro
+       $ mount /tmp/diskimage /opt -t ext2 -o loop
+  
+-------------------------------
 
+=item mt
 
-=item poweroff
+-------------------------------
 
+=item mv
 
+Usage: mv SOURCE DEST
 
-=item ps
+   or: mv SOURCE... DIRECTORY
+
+Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
 
-Usage: ps
+Example:
 
-Report process status.
-This version of ps accepts no options.
+       $ mv /tmp/foo /bin/bar
  
+-------------------------------
 
-=item pwd
+=item nslookup
 
+-------------------------------
 
+=item poweroff
 
-=item reboot
+-------------------------------
 
+=item ping
 
+Usage: ping [OPTION]... host
 
-=item rm
+Send ICMP ECHO_REQUEST packets to network hosts.
 
-Usage: rm [OPTION]... FILE...
-Remove (unlink) the FILE(s).
 Options:
 
- -f            remove existing destinations, never prompt
- -r or -R      remove the contents of directories recursively
+       -c COUNT        Send only COUNT pings.
+       -q              Quiet mode, only displays output at start
+                        and when finished.
+Example:
 
-=item rmdir
+       $ ping localhost
+       PING slag (127.0.0.1): 56 data bytes
+       64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
 
-Usage: rmdir [OPTION]... DIRECTORY...
-Remove the DIRECTORY(ies), if they are empty.
+       --- debian ping statistics ---
+       1 packets transmitted, 1 packets received, 0% packet loss
+       round-trip min/avg/max = 20.1/20.1/20.1 ms
 
-=item sed
+-------------------------------
 
-Usage: sed [B<-n>] B<-e> script [file...]
-Allowed sed scripts come in the following form:
+=item printf
 
- 'ADDR [!] COMMAND'
-  where address ADDR can be:
- NUMBER    Match specified line number
- $         Match last line
- /REGEXP/  Match specified regexp
- (! inverts the meaning of the match)
-  and COMMAND can be:
- s/regexp/replacement/[igp]
- which attempt to match regexp against the pattern space
- and if successful replaces the matched portion with replacement.
-  aTEXT
- which appends TEXT after the pattern space
+-------------------------------
 
-Options:
+=item ps
 
- -e    add the script to the commands to be executed
- -n    suppress automatic printing of pattern space
+-------------------------------
 
-This version of sed matches full regular expresions.
-
-=item sleep
+=item pwd
 
-Usage: sleep N
+-------------------------------
 
-Pause for N seconds.
+=item reboot
 
-=item sort
+-------------------------------
 
-Usage: Usage: sort [OPTION]... [FILE]...
-  
+=item rm
 
-=item sync
+-------------------------------
 
-Usage: sync
+=item syslogd
 
-Write all buffered filesystem blocks to disk.
+-------------------------------
 
-=item syslogd
+=item logger
 
-Usage: syslogd [OPTION]...
+-------------------------------
 
-Linux system and kernel (provides klogd) logging utility.
-Note that this version of syslogd/klogd ignores /etc/syslog.conf.
-Options:
+=item logname
 
- -m    Change the mark timestamp interval. default=20min. 0=off
- -n    Do not fork into the background (for when run by init)
- -K    Do not start up the klogd process (by default syslogd spawns klogd).
- -O    Specify an alternate log file.  default=/var/log/messages
+-------------------------------
 
 =item swapon
 
-Usage: swapon device
-
-Start swapping virtual memory pages on the given device.
+-------------------------------
 
 =item swapoff
 
-Usage: swapoff device
-
-Stop swapping virtual memory pages on the given device.
+-------------------------------
 
 =item tail
 
-Usage: tail [OPTION]... [FILE]...
-
-Print last 10 lines of each FILE to standard output.
-With more than one FILE, precede each with a header giving the file name.
-With no FILE, or when FILE is -, read standard input.
-
- -c=N[kbm]       output the last N bytes
- -f              output appended data as the file grows
- -n=N            output the last N lines, instead of last 10
- -q              never output headers giving file names
- -v              always output headers giving file names
- --help          display this help and exit
-
-If the first character of N (bytes or lines) is a `+', output begins with 
-the Nth item from the start of each file, otherwise, print the last N items
-in the file.  N bytes may be suffixed by k (x1024), b (x512), or m (1024^2).
-  
+-------------------------------
 
 =item tar
 
+-------------------------------
 
+=item test, [
+
+-------------------------------
 
 =item tee
 
-Usage: tee [OPTION]... [FILE]...
-Copy standard input to each FILE, and also to standard output.
-Options:
-
- -a    append to the given FILEs, do not overwrite
+-------------------------------
 
 =item touch
 
-Usage: touch [B<-c>] file [file ...]
- Update the last-modified date on the given file[s].
-
-=item true
+-------------------------------
 
+=item tr
 
+-------------------------------
 
-=item false
+=item true
 
+-------------------------------
 
+=item tty
 
-=item uname
+-------------------------------
 
-Usage: uname [OPTION]...
-
-Print certain system information.  With no OPTION, same as B<-s>.
-Options:
+=item umount
 
- -a    print all information
- -m    the machine (hardware) type
- -n    print the machine's network node hostname
- -r    print the operating system release
- -s    print the operating system name
- -p    print the host processor type
- -v    print the operating system version
+-------------------------------
 
-=item umount
+=item uname
 
-Usage: Usage: umount [flags] filesystem|directory
+-------------------------------
 
-Flags:
+=item uptime
 
- -a:   Unmount all file systems
+-------------------------------
 
 =item uniq
 
-Usage: Usage: uniq [OPTION]... [INPUT [OUTPUT]]
+-------------------------------
 
-Discard all but one of successive identical lines from INPUT (or
-standard input), writing to OUTPUT (or standard output).
+=item update
 
- -h    display this help and exit
+-------------------------------
 
-A field is a run of whitespace, then non-whitespace characters.
-Fields are skipped before chars.
+=item usleep
 
-=item zcat
+-------------------------------
 
-Usage: gunzip [OPTION]... FILE
+=item wc
 
-Uncompress FILE (or standard input if FILE is '-').
-Options:
+-------------------------------
 
- -c    Write output to standard output
- -t    Test compressed file integrity
+=item whoami
 
-=item gunzip
+-------------------------------
 
-Usage: gunzip [OPTION]... FILE
+=item yes
 
-Uncompress FILE (or standard input if FILE is '-').
-Options:
+-------------------------------
 
- -c    Write output to standard output
- -t    Test compressed file integrity
-
-=item gzip
-
-Usage: gzip [OPTION]... FILE
-
-Compress FILE with maximum compression.
-When FILE is -, reads standard input.  Implies B<-c>.
-Options:
-
- -c    Write output to standard output instead of FILE.gz
+=item zcat
 
+-------------------------------
 
 =back
 
@@ -869,5 +1040,9 @@ Enrique Zanardi <ezanardi@ull.es>
 
 =for html <br>
 
+Karl M. Hegbloom <karlheg@debian.org>
+
+=for html <br>
+
 =cut
 
diff --git a/dutmp.c b/dutmp.c
index cf0d466ef0e40d4d3f30c125619f017917c98e35..1629067a1bc3de92374a986ee68cc7a315fd1a54 100644 (file)
--- a/dutmp.c
+++ b/dutmp.c
 #define bb_need_io_error
 #include "messages.c"
 
-static const char dutmp_usage[] = "dutmp\n"
-       "\n"
-       "\tDump file or stdin utmp file format to stdout, pipe delimited.\n"
-       "\tdutmp /var/run/utmp\n";
+static const char dutmp_usage[] = "dutmp [FILE]\n\n"
+       "Dump utmp file format (pipe delimited) from FILE\n"
+       "or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')\n";
 
 extern int dutmp_main(int argc, char **argv)
 {
diff --git a/echo.c b/echo.c
index 91f17aa0f4b51a9b8302ec6f54e544dfe7f284fb..2405d0ae1dd0c2b9f559a9c19a2de4934e73165e 100644 (file)
--- a/echo.c
+++ b/echo.c
 #include "internal.h"
 #include <stdio.h>
 
+static const char uname_usage[] =
+       "echo [-neE] [ARG ...]\n\n"
+       "Prints the specified ARGs to stdout\n\n"
+       "Options:\n"
+       "\t-n\tsuppress trailing newline\n"
+       "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
+       "\t-E\tdisable interpretation of backslash-escaped characters\n";
+
 extern int 
 echo_main(int argc, char** argv)
 {
@@ -45,6 +53,9 @@ echo_main(int argc, char** argv)
                } else if (strcmp(p, "-E")==0) {
                        eflag = 0;
                }
+               else if (strncmp(p, "--", 2)==0) {
+                       usage( uname_usage);
+               } 
                else break;
                ap++;
        }
diff --git a/fbset.c b/fbset.c
index 1f471dada23516958337856a567f6c330f8e47bf..4e5609e4181c4eacf8e516317ba6e4cf7e01ccda 100644 (file)
--- a/fbset.c
+++ b/fbset.c
@@ -104,9 +104,9 @@ struct cmdoptions_t {
        "-hsync", 1, CMD_HSYNC}, {
        "-vsync", 1, CMD_VSYNC}, {
        "-laced", 1, CMD_LACED}, {
-       "-double", 1, CMD_DOUBLE},
+       "-double", 1, CMD_DOUBLE}, {
+       "--help", 0, CMD_HELP}, {
 #ifdef BB_FEATURE_FBSET_FANCY
-       {
        "--help", 0, CMD_HELP}, {
        "-all", 0, CMD_ALL}, {
        "-xres", 1, CMD_XRES}, {
@@ -130,9 +130,8 @@ struct cmdoptions_t {
        "-bcast", 1, CMD_BCAST}, {
        "-rgba", 1, CMD_RGBA}, {
        "-step", 1, CMD_STEP}, {
-       "-move", 1, CMD_MOVE},
+       "-move", 1, CMD_MOVE}, {
 #endif
-       {
        0, 0, 0}
 };
 
@@ -217,7 +216,7 @@ static void showmode(struct fb_var_screeninfo *v)
        printf("\trgba %u/%u,%u/%u,%u/%u,%u/%u\n", v->red.length,
                   v->red.offset, v->green.length, v->green.offset, v->blue.length,
                   v->blue.offset, v->transp.length, v->transp.offset);
-       printf("endmode\n");
+       printf("endmode\n\n");
 }
 
 static void fbset_usage(void)
index 201cea89879141702cce973cd4aeef4d57711522..56ea2244d7444189fb2b13c16325c608268a695e 100644 (file)
--- a/fdflush.c
+++ b/fdflush.c
@@ -33,8 +33,8 @@ extern int fdflush_main(int argc, char **argv)
        int value;
        int fd;
 
-       if (argc <= 1 || **(argv++) == '-') {
-               usage("fdflush device\n");
+       if (argc <= 1 || **(++argv) == '-') {
+               usage("fdflush device\n\nForce floppy disk drive to detect disk change\n");
        }
 
        fd = open(*argv, 0);
diff --git a/find.c b/find.c
index 8fdef2382dc8cead3a8a7ee28ea43136771f1c96..f6e63afb96b57d546d731d2620c635ec6f97773d 100644 (file)
--- a/find.c
+++ b/find.c
@@ -37,9 +37,9 @@ 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";
+       "\t-follow\t\tDereference symbolic links.\n"
+       "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
+       "\t-print\t\tprint the full file name followed by a newline to stdout.\n";
 
 
 static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
index 8fdef2382dc8cead3a8a7ee28ea43136771f1c96..f6e63afb96b57d546d731d2620c635ec6f97773d 100644 (file)
@@ -37,9 +37,9 @@ 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";
+       "\t-follow\t\tDereference symbolic links.\n"
+       "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
+       "\t-print\t\tprint the full file name followed by a newline to stdout.\n";
 
 
 static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
index 06937a70ff2b1ff5f5a7254738a8ccb3f2f5213f..9636dbdcf61be8df184eaaed6b7263804bd88f13 100644 (file)
@@ -34,7 +34,7 @@
 
 static const char freeramdisk_usage[] =
        "freeramdisk DEVICE\n\n"
-       "Frees all memory used by the specified ramdisk.\n";
+       "Free all memory used by the specified ramdisk.\n";
 
 extern int
 freeramdisk_main(int argc, char **argv)
@@ -42,7 +42,7 @@ freeramdisk_main(int argc, char **argv)
        char  rname[256] = "/dev/ram";
        int   f;
 
-       if (argc > 2 || ( argv[1] && *argv[1] == '-')) {
+       if (argc < 2 || ( argv[1] && *argv[1] == '-')) {
                usage(freeramdisk_usage);
        }
 
@@ -50,10 +50,10 @@ freeramdisk_main(int argc, char **argv)
                strcpy(rname, argv[1]);
 
        if ((f = open(rname, O_RDWR)) == -1) {
-               fatalError( "freeramdisk: cannot open %s: %s", rname, strerror(errno));
+               fatalError( "freeramdisk: cannot open %s: %s\n", rname, strerror(errno));
        }
        if (ioctl(f, BLKFLSBUF) < 0) {
-               fatalError( "freeramdisk: failed ioctl on %s: %s", rname, strerror(errno));
+               fatalError( "freeramdisk: failed ioctl on %s: %s\n", rname, strerror(errno));
        }
        /* Don't bother closing.  Exit does
         * that, so we can save a few bytes */
diff --git a/ls.c b/ls.c
index 3e010503c803301ef908a6bf3a1e69a89e7c0cd5..0c7f6522cea486c270dac3a268c726ed23f8e209 100644 (file)
--- a/ls.c
+++ b/ls.c
@@ -88,7 +88,6 @@
 #define DISP_FULLTIME  32              /* show extended time display */
 #define DIR_NOLIST     64                      /* show directory as itself, not contents */
 #define DISP_DIRNAME   128             /* show directory name (for internal use) */
-#define DIR_RECURSE    256                     /* -R (not yet implemented) */
 
 #ifndef MAJOR
 #define MAJOR(dev) (((dev)>>8)&0xff)
@@ -450,10 +449,33 @@ static const char ls_usage[] = "ls [-1a"
 #ifdef BB_FEATURE_LS_FILETYPES
        "F"
 #endif
-#ifdef FEATURE_RECURSIVE
-       "R"
+       "] [filenames...]\n\n"
+       "Options:\n"
+       "\t-a\tdo not hide entries starting with .\n"
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-c\twith -l: show ctime (the time of last\n"
+    "\t\tmodification of file status information)\n"
+#endif
+       "\t-d\tlist directory entries instead of contents\n"
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-e\tlist both full date and full time\n"
 #endif
-       "] [filenames...]\n";
+       "\t-l\tuse a long listing format\n"
+       "\t-n\tlist numeric UIDs and GIDs instead of names\n"
+#ifdef BB_FEATURE_LS_FILETYPES
+       "\t-p\tappend indicator (one of /=@|) to entries\n"
+#endif
+#ifdef BB_FEATURE_LS_TIMESTAMPS
+       "\t-u\twith -l: show access time (the time of last\n"
+       "\t\taccess of the file)\n"
+#endif
+       "\t-x\tlist entries by lines instead of by columns\n"
+       "\t-A\tdo not list implied . and ..\n"
+       "\t-C\tlist entries by columns\n"
+#ifdef BB_FEATURE_LS_FILETYPES
+       "\t-F\tappend indicator (one of */=@|) to entries\n"
+#endif
+       ;
 
 extern int ls_main(int argc, char **argv)
 {
@@ -508,11 +530,6 @@ extern int ls_main(int argc, char **argv)
                        case 'd':
                                opts |= DIR_NOLIST;
                                break;
-#ifdef FEATURE_RECURSIVE
-                       case 'R':
-                               opts |= DIR_RECURSE;
-                               break;
-#endif
 #ifdef BB_FEATURE_LS_TIMESTAMPS
                        case 'u':
                                time_fmt = TIME_ACCESS;
index cf0d466ef0e40d4d3f30c125619f017917c98e35..1629067a1bc3de92374a986ee68cc7a315fd1a54 100644 (file)
 #define bb_need_io_error
 #include "messages.c"
 
-static const char dutmp_usage[] = "dutmp\n"
-       "\n"
-       "\tDump file or stdin utmp file format to stdout, pipe delimited.\n"
-       "\tdutmp /var/run/utmp\n";
+static const char dutmp_usage[] = "dutmp [FILE]\n\n"
+       "Dump utmp file format (pipe delimited) from FILE\n"
+       "or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')\n";
 
 extern int dutmp_main(int argc, char **argv)
 {
diff --git a/mknod.c b/mknod.c
index b11a81f2abdd4b36230d99f7b140b5ce58d550b6..40f508d334c6dd8ce0a3beb0cf507c0581824d0d 100644 (file)
--- a/mknod.c
+++ b/mknod.c
@@ -70,7 +70,7 @@ int mknod_main(int argc, char **argv)
 
        if (mknod(argv[1], mode, dev) != 0) {
                perror(argv[1]);
-               return (FALSE);
+               exit (FALSE);
        }
-       return (TRUE);
+       exit (TRUE);
 }
diff --git a/mount.c b/mount.c
index 329c07780bcd96c33a08997ec7c0b2934ed3e6f3..972e5066cbcb2978abdd719fff7da82cf1e1d79e 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -83,8 +83,6 @@ static const char mount_usage[] = "\tmount [flags]\n"
        "\tsuid / nosuid:\tAllow set-user-id-root programs / disallow them.\n"
        "\tremount: Re-mount a currently-mounted filesystem, changing its flags.\n"
        "\tro / rw: Mount for read-only / read-write.\n"
-       "\t"
-
        "There are EVEN MORE flags that are specific to each filesystem.\n"
        "You'll have to see the written documentation for those.\n";
 
index c9cf5ffb4e553cde3e53065557fab340c46034e9..ef6503aeb2547b2f3080b882fdd4a3bb0db197f6 100644 (file)
@@ -1,6 +1,6 @@
 /* vi: set sw=4 ts=4: */
 /*
- * $Id: ping.c,v 1.11 2000/02/08 19:58:47 erik Exp $
+ * $Id: ping.c,v 1.12 2000/04/13 18:49:43 erik Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -182,9 +182,9 @@ extern int ping_main(int argc, char **argv)
 static const char *ping_usage = "ping [OPTION]... host\n\n"
        "Send ICMP ECHO_REQUEST packets to network hosts.\n\n"
        "Options:\n"
-       "\t-q\t\tQuiet mode, only displays output at start"
-
-       "\t\t\tand when finished.\n" "\t-c COUNT\tSend only COUNT pings.\n";
+       "\t-c COUNT\tSend only COUNT pings.\n"
+       "\t-q\t\tQuiet mode, only displays output at start\n"
+       "\t\t\tand when finished.\n"
 
 static char *hostname = NULL;
 static struct sockaddr_in pingaddr;
@@ -418,9 +418,7 @@ extern int ping_main(int argc, char **argv)
        argv++;
        options = 0;
        /* Parse any options */
-       while (argc > 1) {
-               if (**argv != '-')
-                       usage(ping_usage);
+       while (argc >= 1 && **argv == '-') {
                thisarg = *argv;
                thisarg++;
                switch (*thisarg) {
diff --git a/ping.c b/ping.c
index c9cf5ffb4e553cde3e53065557fab340c46034e9..ef6503aeb2547b2f3080b882fdd4a3bb0db197f6 100644 (file)
--- a/ping.c
+++ b/ping.c
@@ -1,6 +1,6 @@
 /* vi: set sw=4 ts=4: */
 /*
- * $Id: ping.c,v 1.11 2000/02/08 19:58:47 erik Exp $
+ * $Id: ping.c,v 1.12 2000/04/13 18:49:43 erik Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -182,9 +182,9 @@ extern int ping_main(int argc, char **argv)
 static const char *ping_usage = "ping [OPTION]... host\n\n"
        "Send ICMP ECHO_REQUEST packets to network hosts.\n\n"
        "Options:\n"
-       "\t-q\t\tQuiet mode, only displays output at start"
-
-       "\t\t\tand when finished.\n" "\t-c COUNT\tSend only COUNT pings.\n";
+       "\t-c COUNT\tSend only COUNT pings.\n"
+       "\t-q\t\tQuiet mode, only displays output at start\n"
+       "\t\t\tand when finished.\n"
 
 static char *hostname = NULL;
 static struct sockaddr_in pingaddr;
@@ -418,9 +418,7 @@ extern int ping_main(int argc, char **argv)
        argv++;
        options = 0;
        /* Parse any options */
-       while (argc > 1) {
-               if (**argv != '-')
-                       usage(ping_usage);
+       while (argc >= 1 && **argv == '-') {
                thisarg = *argv;
                thisarg++;
                switch (*thisarg) {
index 1f471dada23516958337856a567f6c330f8e47bf..4e5609e4181c4eacf8e516317ba6e4cf7e01ccda 100644 (file)
@@ -104,9 +104,9 @@ struct cmdoptions_t {
        "-hsync", 1, CMD_HSYNC}, {
        "-vsync", 1, CMD_VSYNC}, {
        "-laced", 1, CMD_LACED}, {
-       "-double", 1, CMD_DOUBLE},
+       "-double", 1, CMD_DOUBLE}, {
+       "--help", 0, CMD_HELP}, {
 #ifdef BB_FEATURE_FBSET_FANCY
-       {
        "--help", 0, CMD_HELP}, {
        "-all", 0, CMD_ALL}, {
        "-xres", 1, CMD_XRES}, {
@@ -130,9 +130,8 @@ struct cmdoptions_t {
        "-bcast", 1, CMD_BCAST}, {
        "-rgba", 1, CMD_RGBA}, {
        "-step", 1, CMD_STEP}, {
-       "-move", 1, CMD_MOVE},
+       "-move", 1, CMD_MOVE}, {
 #endif
-       {
        0, 0, 0}
 };
 
@@ -217,7 +216,7 @@ static void showmode(struct fb_var_screeninfo *v)
        printf("\trgba %u/%u,%u/%u,%u/%u,%u/%u\n", v->red.length,
                   v->red.offset, v->green.length, v->green.offset, v->blue.length,
                   v->blue.offset, v->transp.length, v->transp.offset);
-       printf("endmode\n");
+       printf("endmode\n\n");
 }
 
 static void fbset_usage(void)
index 201cea89879141702cce973cd4aeef4d57711522..56ea2244d7444189fb2b13c16325c608268a695e 100644 (file)
@@ -33,8 +33,8 @@ extern int fdflush_main(int argc, char **argv)
        int value;
        int fd;
 
-       if (argc <= 1 || **(argv++) == '-') {
-               usage("fdflush device\n");
+       if (argc <= 1 || **(++argv) == '-') {
+               usage("fdflush device\n\nForce floppy disk drive to detect disk change\n");
        }
 
        fd = open(*argv, 0);
index 06937a70ff2b1ff5f5a7254738a8ccb3f2f5213f..9636dbdcf61be8df184eaaed6b7263804bd88f13 100644 (file)
@@ -34,7 +34,7 @@
 
 static const char freeramdisk_usage[] =
        "freeramdisk DEVICE\n\n"
-       "Frees all memory used by the specified ramdisk.\n";
+       "Free all memory used by the specified ramdisk.\n";
 
 extern int
 freeramdisk_main(int argc, char **argv)
@@ -42,7 +42,7 @@ freeramdisk_main(int argc, char **argv)
        char  rname[256] = "/dev/ram";
        int   f;
 
-       if (argc > 2 || ( argv[1] && *argv[1] == '-')) {
+       if (argc < 2 || ( argv[1] && *argv[1] == '-')) {
                usage(freeramdisk_usage);
        }
 
@@ -50,10 +50,10 @@ freeramdisk_main(int argc, char **argv)
                strcpy(rname, argv[1]);
 
        if ((f = open(rname, O_RDWR)) == -1) {
-               fatalError( "freeramdisk: cannot open %s: %s", rname, strerror(errno));
+               fatalError( "freeramdisk: cannot open %s: %s\n", rname, strerror(errno));
        }
        if (ioctl(f, BLKFLSBUF) < 0) {
-               fatalError( "freeramdisk: failed ioctl on %s: %s", rname, strerror(errno));
+               fatalError( "freeramdisk: failed ioctl on %s: %s\n", rname, strerror(errno));
        }
        /* Don't bother closing.  Exit does
         * that, so we can save a few bytes */
index 329c07780bcd96c33a08997ec7c0b2934ed3e6f3..972e5066cbcb2978abdd719fff7da82cf1e1d79e 100644 (file)
@@ -83,8 +83,6 @@ static const char mount_usage[] = "\tmount [flags]\n"
        "\tsuid / nosuid:\tAllow set-user-id-root programs / disallow them.\n"
        "\tremount: Re-mount a currently-mounted filesystem, changing its flags.\n"
        "\tro / rw: Mount for read-only / read-write.\n"
-       "\t"
-
        "There are EVEN MORE flags that are specific to each filesystem.\n"
        "You'll have to see the written documentation for those.\n";