Upates to include copyright 2000 to everything
authorErik Andersen <andersen@codepoet.org>
Thu, 13 Apr 2000 01:18:56 +0000 (01:18 -0000)
committerErik Andersen <andersen@codepoet.org>
Thu, 13 Apr 2000 01:18:56 +0000 (01:18 -0000)
 -Erik

85 files changed:
AUTHORS
Changelog
README
applets/busybox.c
archival/gunzip.c
archival/gzip.c
archival/tar.c
basename.c
busybox.c
busybox.def.h
cat.c
chmod_chown_chgrp.c
chroot.c
clear.c
cmdedit.c
console-tools/clear.c
console-tools/loadacm.c
coreutils/basename.c
coreutils/cat.c
coreutils/chroot.c
coreutils/dd.c
coreutils/df.c
coreutils/du.c
coreutils/head.c
coreutils/ln.c
coreutils/mkdir.c
coreutils/rm.c
coreutils/rmdir.c
coreutils/sort.c
coreutils/tee.c
coreutils/touch.c
coreutils/uniq.c
cp_mv.c
dd.c
df.c
du.c
dutmp.c
editors/sed.c
fbset.c
find.c
findutils/find.c
findutils/grep.c
free.c
grep.c
gunzip.c
gzip.c
head.c
init.c
init/init.c
insmod.c
ln.c
loadacm.c
logger.c
lsmod.c
miscutils/dutmp.c
mkdir.c
modutils/insmod.c
modutils/lsmod.c
modutils/rmmod.c
networking/nslookup.c
nslookup.c
procps/free.c
procps/ps.c
procps/uptime.c
ps.c
rm.c
rmdir.c
rmmod.c
sed.c
shell/cmdedit.c
sort.c
swaponoff.c
sysklogd/logger.c
sysklogd/syslogd.c
syslogd.c
tar.c
tee.c
touch.c
true_false.c
umount.c
uniq.c
uptime.c
util-linux/fbset.c
util-linux/swaponoff.c
util-linux/umount.c

diff --git a/AUTHORS b/AUTHORS
index 9d7cb08254d6a43a15ad00acfc0a9930eb953ac6..a5acec244144fda8f903f5649496e6e085e58b5c 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,8 +1,8 @@
-List of the authors of code contained in busybox.
+List of the authors of code contained in BusyBox.
 
-If you should be listed here, or the description of 
-what you have done needs more detail, or is incorect, 
-_please_ let me know.
+If you have code in BusyBox, you should be listed here.  If you should be
+listed, or the description of what you have done needs more detail, or is
+incorect, _please_ let me know.
 
  -Erik
 
@@ -16,7 +16,7 @@ Bruce Perens <bruce@pixar.com>
     Original author of BusyBox. His code is still in many apps.
 
 John Beppu <beppu@lineo.com>
-    du, head, tee
+    du, head, nslookup, sort, tee, uniq
 
 Brian Candler <B.Candler@pobox.com>
     tiny-ls(ls)
index 4a9fb6fc08e634fcade64b6a0f1b0b057c80770e..4227a78227f344fab9946fb310dda66f793a3d6c 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -59,7 +59,7 @@
            the common error handling saves a few bytes.  Thanks to 
            Bob Tinsley <bob@earthrise.demon.co.uk> for the patch.
        * Fix "+" parsing bug in date, from "Merle F. McClelland" <mfm@cts.com>.
-           
+       * BusyBox's bss size has been majorly reduced (was 384668, is now 28740).
 
 
        -Erik Andersen
diff --git a/README b/README
index 27d5d152d2bdf4fa114e749e15e8237dedd9432d..118e14590d35e6fd34595b338a5b3bac2f4c33e4 100644 (file)
--- a/README
+++ b/README
@@ -7,17 +7,17 @@ an editor such as "elvis-tiny" or "ae", and you have a working system.
 Busybox was begun to support the Debian Rescue/Install disks, but it
 also makes an excellent environment for any small or embedded system.
 
-As of version 0.20 there is a version number. : ) Also as of version
-0.20, BB is now modularized to easily allow you to build of only the
-BB parts you need, thereby reducing binary size. To turn off unwanted
-Busybox components, simply edit the file busybox.def.h and comment out
-the parts you do not need using C++ style (//) comments.
+As of version 0.20 there is a version number. : ) Also as of version 0.20, BB
+is now modularized to easily allow you to build only the BB parts you need,
+thereby reducing binary size. To turn off unwanted Busybox components, simply
+edit the file busybox.def.h and comment out the parts you do not need using C++
+style (//) comments.
 
 After the build is complete a busybox.links file is generated which is
 then used by 'make install' to create symlinks to the busybox binary
 for all compiled in functions.  By default, 'make install' will place
 the symlink forest into `pwd`/_install unless you have defined the 
-PREFIX environment variable.
+PREFIX environment variable (i.e. make PREFIX="/tmp/foo" install)
 
 Please feed suggestions, bug reports, insults, and bribes back to:
        Erik Andersen 
index 9a48f496146cb24390fe956df7374099d4259a30..b65b13e65598575cdb93aa298decc2988a7222a9 100644 (file)
@@ -234,9 +234,6 @@ static const struct Applet applets[] = {
        {"sh", shell_main, _BB_DIR_BIN},
 #endif
 #ifdef BB_SFDISK
-       {"fdisk", sfdisk_main, _BB_DIR_SBIN},
-#ifdef BB_SFDISK
-#endif
        {"sfdisk", sfdisk_main, _BB_DIR_SBIN},
 #endif
 #ifdef BB_SLEEP
@@ -382,8 +379,9 @@ int busybox_main(int argc, char **argv)
                fprintf(stderr, "Usage: busybox [function] [arguments]...\n");
                fprintf(stderr, "   or: [function] [arguments]...\n\n");
                fprintf(stderr,
-                               "\tMost people will create a link to busybox for each function\n"
-                               "\tname, and busybox will act like whatever you invoke it as.\n");
+                               "\tBusyBox is a multi-call binary that combines many common Unix utilities into a\n"
+                               "\tsingle executable.  Most people will create a link to busybox for each function\n"
+                               "\tthey wish to use, and BusyBox will act like whatever it was invoked as.\n");
                fprintf(stderr, "\nCurrently defined functions:\n");
 
                while (a->name != 0) {
index 7aa896469319879f26d0e0db84460501c5f8bd71..1a5cdba8809adc3e309b90b317720dd1d2464248 100644 (file)
@@ -1,13 +1,33 @@
 /* vi: set sw=4 ts=4: */
-/* zcat : stripped version based on gzip sources
-   Sven Rudolph <sr1@inf.tu-dresden.de>
-   */
+/*
+ * Gzip implementation for busybox
+ *
+ * Based on GNU gzip Copyright (C) 1992-1993 Jean-loup Gailly.
+ *
+ * Originally adjusted for busybox by Sven Rudolph <sr1@inf.tu-dresden.de>
+ * based on gzip sources
+ *
+ * Adjusted further by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * to support files as well as stdin/stdout, and to generally behave itself wrt
+ * command line handling.
+ *
+ * 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.
+ *
+ * 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
+ *
+ */
 
 #include "internal.h"
-#define bb_need_name_too_long
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
 static const char gunzip_usage[] =
        "gunzip [OPTION]... FILE\n\n"
        "Uncompress FILE (or standard input if FILE is '-').\n\n"
@@ -16,6 +36,18 @@ static const char gunzip_usage[] =
        "\t-c\tWrite output to standard output\n"
        "\t-t\tTest compressed file integrity\n";
 
+       
+       /* These defines are very important for BusyBox.  Without these,
+ * huge chunks of ram are pre-allocated making the BusyBox bss 
+ * size Freaking Huge(tm), which is a bad thing.*/
+#define SMALL_MEM
+#define DYN_ALLOC
+
+#define bb_need_name_too_long
+#define BB_DECLARE_EXTERN
+#include "messages.c"
+
+
 /* gzip (GNU zip) -- compress files with zip algorithm and 'compress' interface
  * Copyright (C) 1992-1993 Jean-loup Gailly
  * The unzip code was written and put in the public domain by Mark Adler.
@@ -89,25 +121,6 @@ static char *license_msg[] = {
 #define get_char() get_byte()
 #define put_char(c) put_byte(c)
 
-/* #include "gzip.h" */
-
-/* gzip.h -- common declarations for all gzip modules
- * Copyright (C) 1992-1993 Jean-loup Gailly.
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License, see the file COPYING.
- */
-
-#if defined(__STDC__) || defined(PROTO)
-#  define OF(args)  args
-#else
-#  define OF(args)  ()
-#endif
-
-#ifdef __STDC__
-typedef void *voidp;
-#else
-typedef char *voidp;
-#endif
 
 /* I don't like nested includes, but the string and io functions are used
  * too often
@@ -118,7 +131,7 @@ typedef char *voidp;
 #  if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
 #    include <memory.h>
 #  endif
-#  define memzero(s, n)     memset ((voidp)(s), 0, (n))
+#  define memzero(s, n)     memset ((void *)(s), 0, (n))
 #else
 #  include <strings.h>
 #  define strchr            index
@@ -329,49 +342,46 @@ extern int save_orig_name;                /* set if original name must be saved */
 #define WARN(msg) {fprintf msg ; \
                   if (exit_code == OK) exit_code = WARNING;}
 
-#define do_exit(c) exit(c)
-
-
        /* in unzip.c */
-extern int unzip OF((int in, int out));
+extern int unzip (int in, int out);
 
        /* in gzip.c */
-RETSIGTYPE abort_gzip OF((void));
+RETSIGTYPE abort_gzip (void);
 
                /* in deflate.c */
-void lm_init OF((int pack_level, ush * flags));
-ulg deflate OF((void));
+void lm_init (int pack_level, ush * flags);
+ulg deflate (void);
 
                /* in trees.c */
-void ct_init OF((ush * attr, int *method));
-int ct_tally OF((int dist, int lc));
-ulg flush_block OF((char *buf, ulg stored_len, int eof));
+void ct_init (ush * attr, int *method);
+int ct_tally (int dist, int lc);
+ulg flush_block (char *buf, ulg stored_len, int eof);
 
                /* in bits.c */
-void bi_init OF((file_t zipfile));
-void send_bits OF((int value, int length));
-unsigned bi_reverse OF((unsigned value, int length));
-void bi_windup OF((void));
-void copy_block OF((char *buf, unsigned len, int header));
-extern int (*read_buf) OF((char *buf, unsigned size));
+void bi_init (file_t zipfile);
+void send_bits (int value, int length);
+unsigned bi_reverse (unsigned value, int length);
+void bi_windup (void);
+void copy_block (char *buf, unsigned len, int header);
+extern int (*read_buf) (char *buf, unsigned size);
 
        /* in util.c: */
-extern int copy OF((int in, int out));
-extern ulg updcrc OF((uch * s, unsigned n));
-extern void clear_bufs OF((void));
-extern int fill_inbuf OF((int eof_ok));
-extern void flush_outbuf OF((void));
-extern void flush_window OF((void));
-extern void write_buf OF((int fd, voidp buf, unsigned cnt));
+extern int copy (int in, int out);
+extern ulg updcrc (uch * s, unsigned n);
+extern void clear_bufs (void);
+extern int fill_inbuf (int eof_ok);
+extern void flush_outbuf (void);
+extern void flush_window (void);
+extern void write_buf (int fd, void * buf, unsigned cnt);
 
 #ifndef __linux__
-extern char *basename OF((char *fname));
+extern char *basename (char *fname);
 #endif                                                 /* not __linux__ */
-extern void read_error OF((void));
-extern void write_error OF((void));
+extern void read_error (void);
+extern void write_error (void);
 
        /* in inflate.c */
-extern int inflate OF((void));
+extern int inflate (void);
 
 /* #include "lzw.h" */
 
@@ -415,8 +425,8 @@ extern int inflate OF((void));
 extern int maxbits;                            /* max bits per code for LZW */
 extern int block_mode;                 /* block compress mode -C compatible with 2.0 */
 
-extern int lzw OF((int in, int out));
-extern int unlzw OF((int in, int out));
+extern int lzw (int in, int out);
+extern int unlzw (int in, int out);
 
 
 /* #include "revision.h" */
@@ -605,7 +615,7 @@ typedef struct direct dir_type;
 #if !defined(S_ISREG) && defined(S_IFREG)
 #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 #endif
-typedef RETSIGTYPE(*sig_type) OF((int));
+typedef RETSIGTYPE(*sig_type) (int);
 
 #ifndef        O_BINARY
 #  define  O_BINARY  0                 /* creation mode for open() */
@@ -644,7 +654,7 @@ typedef RETSIGTYPE(*sig_type) OF((int));
 
 #ifdef NO_OFF_T
 typedef long off_t;
-off_t lseek OF((int fd, off_t offset, int whence));
+off_t lseek (int fd, off_t offset, int whence);
 #endif
 
 
@@ -687,7 +697,7 @@ long header_bytes;                          /* number of bytes in gzip header */
 
 /* local functions */
 
-local int get_method OF((int in));
+local int get_method (int in);
 
 #define strequ(s1, s2) (strcmp((s1),(s2)) == 0)
 
@@ -773,7 +783,7 @@ int gunzip_main(int argc, char **argv)
                        usage(gunzip_usage);
                if (strlen(*argv) > MAX_PATH_LEN) {
                        fprintf(stderr, name_too_long, "gunzip");
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                strcpy(ifname, *argv);
 
@@ -781,13 +791,13 @@ int gunzip_main(int argc, char **argv)
                inFileNum = open(ifname, O_RDONLY);
                if (inFileNum < 0) {
                        perror(ifname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                /* Get the time stamp on the input file. */
                result = stat(ifname, &statBuf);
                if (result < 0) {
                        perror(ifname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                ifile_size = statBuf.st_size;
        }
@@ -812,7 +822,7 @@ int gunzip_main(int argc, char **argv)
                /* And get to work */
                if (strlen(ifname) > MAX_PATH_LEN - 4) {
                        fprintf(stderr, name_too_long, "gunzip");
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                strcpy(ofname, ifname);
                pos = strstr(ofname, ".gz");
@@ -836,7 +846,7 @@ int gunzip_main(int argc, char **argv)
 #endif
                if (outFileNum < 0) {
                        perror(ofname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                /* Set permissions on the file */
                fchmod(outFileNum, statBuf.st_mode);
@@ -860,7 +870,7 @@ int gunzip_main(int argc, char **argv)
                        exit(FALSE);
                }
        }
-       do_exit(exit_code);
+       exit(exit_code);
 }
 
 
@@ -953,7 +963,7 @@ int in;                                                     /* input file descriptor */
  */
 RETSIGTYPE abort_gzip()
 {
-       do_exit(ERROR);
+       exit(ERROR);
 }
 
 /* unzip.c -- decompress files in gzip or pkzip format.
@@ -1027,7 +1037,7 @@ int in, out;                                      /* input and output file descriptors */
        ofd = out;
        method = get_method(ifd);
        if (method < 0) {
-               do_exit(exit_code);             /* error message already emitted */
+               exit(exit_code);                /* error message already emitted */
        }
 
        updcrc(NULL, 0);                        /* initialize crc */
@@ -1218,7 +1228,7 @@ void flush_window()
  */
 void write_buf(fd, buf, cnt)
 int fd;
-voidp buf;
+void * buf;
 unsigned cnt;
 {
        unsigned n;
@@ -1228,7 +1238,7 @@ unsigned cnt;
                        write_error();
                }
                cnt -= n;
-               buf = (voidp) ((char *) buf + n);
+               buf = (void *) ((char *) buf + n);
        }
 }
 
@@ -1240,8 +1250,8 @@ unsigned cnt;
 #    define const
 #  endif
 
-int strspn OF((const char *s, const char *accept));
-int strcspn OF((const char *s, const char *reject));
+int strspn (const char *s, const char *accept);
+int strcspn (const char *s, const char *reject);
 
 /* ========================================================================
  * Return the length of the maximum initial segment
@@ -1493,15 +1503,15 @@ struct huft {
 
 
 /* Function prototypes */
-int huft_build OF((unsigned *, unsigned, unsigned, ush *, ush *,
-                                  struct huft **, int *));
-int huft_free OF((struct huft *));
-int inflate_codes OF((struct huft *, struct huft *, int, int));
-int inflate_stored OF((void));
-int inflate_fixed OF((void));
-int inflate_dynamic OF((void));
-int inflate_block OF((int *));
-int inflate OF((void));
+int huft_build (unsigned *, unsigned, unsigned, ush *, ush *,
+                                  struct huft **, int *);
+int huft_free (struct huft *);
+int inflate_codes (struct huft *, struct huft *, int, int);
+int inflate_stored (void);
+int inflate_fixed (void);
+int inflate_dynamic (void);
+int inflate_block (int *);
+int inflate (void);
 
 
 /* The inflate algorithm uses a sliding 32K byte window on the uncompressed
index 0a969d8db113da21a87d9de8c33de6896965a7f6..55ec5bc4e16e310aae8e8e3568b087037a362027 100644 (file)
@@ -1,16 +1,42 @@
 /* vi: set sw=4 ts=4: */
-/* gzip.c -- this is a stripped down version of gzip I put into busybox, it does
- * only standard in to standard out with -9 compression.  It also requires the
- * zcat module for some important functions.  
+/*
+ * Gzip implementation for busybox
+ *
+ * Based on GNU gzip Copyright (C) 1992-1993 Jean-loup Gailly.
+ *
+ * Originally adjusted for busybox by Charles P. Wright <cpw@unix.asb.com>
+ *             "this is a stripped down version of gzip I put into busybox, it does
+ *             only standard in to standard out with -9 compression.  It also requires
+ *             the zcat module for some important functions."
+ *
+ * Adjusted further by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * to support files as well as stdin/stdout, and to generally behave itself wrt
+ * command line handling.
+ *
+ * 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.
+ *
+ * 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
  *
- * Charles P. Wright <cpw@unix.asb.com>
  */
+
 #include "internal.h"
-#ifdef BB_GZIP
 
-//#ifndef BB_ZCAT
-//#error you need zcat to have gzip support!
-//#endif
+/* These defines are very important for BusyBox.  Without these,
+ * huge chunks of ram are pre-allocated making the BusyBox bss 
+ * size Freaking Huge(tm), which is a bad thing.*/
+#define SMALL_MEM
+#define DYN_ALLOC
+
 
 static const char gzip_usage[] =
        "gzip [OPTION]... FILE\n\n"
@@ -21,42 +47,12 @@ static const char gzip_usage[] =
        "\t-c\tWrite output to standard output instead of FILE.gz\n";
 
 
-/* gzip.h -- common declarations for all gzip modules
- * Copyright (C) 1992-1993 Jean-loup Gailly.
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License, see the file COPYING.
- */
-
-#if defined(__STDC__) || defined(PROTO)
-#  define OF(args)  args
-#else
-#  define OF(args)  ()
-#endif
-
-#ifdef __STDC__
-typedef void *voidp;
-#else
-typedef char *voidp;
-#endif
-
 /* I don't like nested includes, but the string and io functions are used
  * too often
  */
 #include <stdio.h>
-#if !defined(NO_STRING_H) || defined(STDC_HEADERS)
-#  include <string.h>
-#  if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
-#    include <memory.h>
-#  endif
-#  define memzero(s, n)     memset ((voidp)(s), 0, (n))
-#else
-#  include <strings.h>
-#  define strchr            index
-#  define strrchr           rindex
-#  define memcpy(d, s, n)   bcopy((s), (d), (n))
-#  define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
-#  define memzero(s, n)     bzero((s), (n))
-#endif
+#include <string.h>
+#define memzero(s, n)     memset ((void *)(s), 0, (n))
 
 #ifndef RETSIGTYPE
 #  define RETSIGTYPE void
@@ -121,13 +117,13 @@ extern int method;                                /* compression method */
 #endif
 
 #ifdef DYN_ALLOC
-#  define EXTERN(type, array)  extern type * near array
-#  define DECLARE(type, array, size)  type * near array
+#  define EXTERN(type, array)  extern type * array
+#  define DECLARE(type, array, size)  type * array
 #  define ALLOC(type, array, size) { \
-      array = (type*)fcalloc((size_t)(((size)+1L)/2), 2*sizeof(type)); \
+      array = (type*)calloc((size_t)(((size)+1L)/2), 2*sizeof(type)); \
       if (array == NULL) errorMsg("insufficient memory"); \
    }
-#  define FREE(array) {if (array != NULL) fcfree(array), array=NULL;}
+#  define FREE(array) {if (array != NULL) free(array), array=NULL;}
 #else
 #  define EXTERN(type, array)  extern type array[]
 #  define DECLARE(type, array, size)  type array[size]
@@ -284,55 +280,55 @@ extern int save_orig_name;                /* set if original name must be saved */
 
 
        /* in zip.c: */
-extern int zip OF((int in, int out));
-extern int file_read OF((char *buf, unsigned size));
+extern int zip (int in, int out);
+extern int file_read (char *buf, unsigned size);
 
        /* in unzip.c */
-extern int unzip OF((int in, int out));
-extern int check_zipfile OF((int in));
+extern int unzip (int in, int out);
+extern int check_zipfile (int in);
 
        /* in unpack.c */
-extern int unpack OF((int in, int out));
+extern int unpack (int in, int out);
 
        /* in unlzh.c */
-extern int unlzh OF((int in, int out));
+extern int unlzh (int in, int out);
 
        /* in gzip.c */
-RETSIGTYPE abort_gzip OF((void));
+RETSIGTYPE abort_gzip (void);
 
                /* in deflate.c */
-void lm_init OF((ush * flags));
-ulg deflate OF((void));
+void lm_init (ush * flags);
+ulg deflate (void);
 
                /* in trees.c */
-void ct_init OF((ush * attr, int *method));
-int ct_tally OF((int dist, int lc));
-ulg flush_block OF((char *buf, ulg stored_len, int eof));
+void ct_init (ush * attr, int *method);
+int ct_tally (int dist, int lc);
+ulg flush_block (char *buf, ulg stored_len, int eof);
 
                /* in bits.c */
-void bi_init OF((file_t zipfile));
-void send_bits OF((int value, int length));
-unsigned bi_reverse OF((unsigned value, int length));
-void bi_windup OF((void));
-void copy_block OF((char *buf, unsigned len, int header));
-extern int (*read_buf) OF((char *buf, unsigned size));
+void bi_init (file_t zipfile);
+void send_bits (int value, int length);
+unsigned bi_reverse (unsigned value, int length);
+void bi_windup (void);
+void copy_block (char *buf, unsigned len, int header);
+extern int (*read_buf) (char *buf, unsigned size);
 
        /* in util.c: */
-extern int copy OF((int in, int out));
-extern ulg updcrc OF((uch * s, unsigned n));
-extern void clear_bufs OF((void));
-extern int fill_inbuf OF((int eof_ok));
-extern void flush_outbuf OF((void));
-extern void flush_window OF((void));
-extern void write_buf OF((int fd, voidp buf, unsigned cnt));
-extern char *strlwr OF((char *s));
-extern char *add_envopt OF((int *argcp, char ***argvp, char *env));
-extern void read_error OF((void));
-extern void write_error OF((void));
-extern void display_ratio OF((long num, long den, FILE * file));
+extern int copy (int in, int out);
+extern ulg updcrc (uch * s, unsigned n);
+extern void clear_bufs (void);
+extern int fill_inbuf (int eof_ok);
+extern void flush_outbuf (void);
+extern void flush_window (void);
+extern void write_buf (int fd, void * buf, unsigned cnt);
+extern char *strlwr (char *s);
+extern char *add_envopt (int *argcp, char ***argvp, char *env);
+extern void read_error (void);
+extern void write_error (void);
+extern void display_ratio (long num, long den, FILE * file);
 
        /* in inflate.c */
-extern int inflate OF((void));
+extern int inflate (void);
 
 /* lzw.h -- define the lzw functions.
  * Copyright (C) 1992-1993 Jean-loup Gailly.
@@ -795,7 +791,7 @@ local int bi_valid;
  * are always zero.
  */
 
-int (*read_buf) OF((char *buf, unsigned size));
+int (*read_buf) (char *buf, unsigned size);
 
 /* Current input function. Set to mem_read for in-memory compression */
 
@@ -1148,16 +1144,16 @@ local config configuration_table =
 /* ===========================================================================
  *  Prototypes for local functions.
  */
-local void fill_window OF((void));
+local void fill_window (void);
 
-int longest_match OF((IPos cur_match));
+int longest_match (IPos cur_match);
 
 #ifdef ASMV
-void match_init OF((void));            /* asm code initialization */
+void match_init (void);                /* asm code initialization */
 #endif
 
 #ifdef DEBUG
-local void check_match OF((IPos start, IPos match, int length));
+local void check_match (IPos start, IPos match, int length);
 #endif
 
 /* ===========================================================================
@@ -1708,7 +1704,7 @@ struct utimbuf {
 #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 #endif
 
-typedef RETSIGTYPE(*sig_type) OF((int));
+typedef RETSIGTYPE(*sig_type) (int);
 
 #ifndef        O_BINARY
 #  define  O_BINARY  0                 /* creation mode for open() */
@@ -1743,7 +1739,7 @@ typedef RETSIGTYPE(*sig_type) OF((int));
 
 #ifdef NO_OFF_T
 typedef long off_t;
-off_t lseek OF((int fd, off_t offset, int whence));
+off_t lseek (int fd, off_t offset, int whence);
 #endif
 
 /* Separator for file name parts (see shorten_name()) */
@@ -2246,17 +2242,17 @@ extern unsigned near strstart;  /* window offset of current string */
  * Local (static) routines in this file.
  */
 
-local void init_block OF((void));
-local void pqdownheap OF((ct_data near * tree, int k));
-local void gen_bitlen OF((tree_desc near * desc));
-local void gen_codes OF((ct_data near * tree, int max_code));
-local void build_tree OF((tree_desc near * desc));
-local void scan_tree OF((ct_data near * tree, int max_code));
-local void send_tree OF((ct_data near * tree, int max_code));
-local int build_bl_tree OF((void));
-local void send_all_trees OF((int lcodes, int dcodes, int blcodes));
-local void compress_block OF((ct_data near * ltree, ct_data near * dtree));
-local void set_file_type OF((void));
+local void init_block (void);
+local void pqdownheap (ct_data near * tree, int k);
+local void gen_bitlen (tree_desc near * desc);
+local void gen_codes (ct_data near * tree, int max_code);
+local void build_tree (tree_desc near * desc);
+local void scan_tree (ct_data near * tree, int max_code);
+local void send_tree (ct_data near * tree, int max_code);
+local int build_bl_tree (void);
+local void send_all_trees (int lcodes, int dcodes, int blcodes);
+local void compress_block (ct_data near * ltree, ct_data near * dtree);
+local void set_file_type (void);
 
 
 #ifndef DEBUG
@@ -3161,12 +3157,8 @@ char *s;
 
 /* Provide missing strspn and strcspn functions. */
 
-#  ifndef __STDC__
-#    define const
-#  endif
-
-int strspn OF((const char *s, const char *accept));
-int strcspn OF((const char *s, const char *reject));
+int strspn (const char *s, const char *accept);
+int strcspn (const char *s, const char *reject);
 
 /* ========================================================================
  * Return the length of the maximum initial segment
@@ -3398,4 +3390,3 @@ unsigned size;
        isize += (ulg) len;
        return (int) len;
 }
-#endif
index 732f26ddca21490572ad8651a32d25ba64967715..4eda4c61a12c6f44ea8eac6c28941934ac42f7cb 100644 (file)
@@ -2,9 +2,9 @@
 /*
  * Mini tar implementation for busybox 
  *
- * Note, that as of BusyBox 0.43 tar has been completely rewritten from the
- * ground up.  It still has remnents of the old code lying about, but it pretty
- * different (i.e. cleaner, less global variables, etc)
+ * Note, that as of BusyBox-0.43, tar has been completely rewritten from the
+ * ground up.  It still has remnents of the old code lying about, but it is
+ * very different now (i.e. cleaner, less global variables, etc)
  *
  * Copyright (C) 2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
index 1db885f6214fe306a08bd82584bede039cdf45db..06e27663f813e34de059a3a3cb09750cd9e66e31 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini basename implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
 
 extern int basename_main(int argc, char **argv)
 {
-       char* s;
+       char* s, *s1;
 
        if ((argc < 2) || (**(argv + 1) == '-')) {
                usage("basename [file ...]\n");
        }
        argv++;
 
+       s1=*argv+strlen(*argv)-1;
+       if (*s1 == '/')
+               *s1 = '\0';
        s = strrchr(*argv, '/');
        printf("%s\n", (s)? s + 1 : *argv);
        exit(TRUE);
index 9a48f496146cb24390fe956df7374099d4259a30..b65b13e65598575cdb93aa298decc2988a7222a9 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -234,9 +234,6 @@ static const struct Applet applets[] = {
        {"sh", shell_main, _BB_DIR_BIN},
 #endif
 #ifdef BB_SFDISK
-       {"fdisk", sfdisk_main, _BB_DIR_SBIN},
-#ifdef BB_SFDISK
-#endif
        {"sfdisk", sfdisk_main, _BB_DIR_SBIN},
 #endif
 #ifdef BB_SLEEP
@@ -382,8 +379,9 @@ int busybox_main(int argc, char **argv)
                fprintf(stderr, "Usage: busybox [function] [arguments]...\n");
                fprintf(stderr, "   or: [function] [arguments]...\n\n");
                fprintf(stderr,
-                               "\tMost people will create a link to busybox for each function\n"
-                               "\tname, and busybox will act like whatever you invoke it as.\n");
+                               "\tBusyBox is a multi-call binary that combines many common Unix utilities into a\n"
+                               "\tsingle executable.  Most people will create a link to busybox for each function\n"
+                               "\tthey wish to use, and BusyBox will act like whatever it was invoked as.\n");
                fprintf(stderr, "\nCurrently defined functions:\n");
 
                while (a->name != 0) {
index 9a2ba3f69d6b5a07cde4105679d7753eb85433f0..647ed9ba41f44a71e81992de7ffa9d30f7930b8f 100644 (file)
@@ -7,7 +7,7 @@
 //
 //
 // BusyBox Applications
-//#define BB_BASENAME
+#define BB_BASENAME
 #define BB_CAT
 #define BB_CHMOD_CHOWN_CHGRP
 #define BB_CHROOT
 #define BB_DF
 #define BB_DIRNAME
 #define BB_DMESG
-//#define BB_DUTMP
+#define BB_DUTMP
 #define BB_DU
 #define BB_ECHO
-//#define BB_FBSET
-//#define BB_FDFLUSH
+#define BB_FBSET
+#define BB_FDFLUSH
 #define BB_FIND
 #define BB_FREE
-//#define BB_FREERAMDISK
-//#define BB_FSCK_MINIX
+#define BB_FREERAMDISK
+#define BB_FSCK_MINIX
 #define BB_GREP
 #define BB_GUNZIP
 #define BB_GZIP
 //#define BB_HALT
 #define BB_HEAD
-//#define BB_HOSTID
+#define BB_HOSTID
 #define BB_HOSTNAME
 #define BB_INIT
 // Don't bother turning BB_INSMOD on.  It doesn't work.
 #define BB_KILL
 #define BB_KILLALL
 #define BB_KLOGD
-//#define BB_LENGTH
+#define BB_LENGTH
 #define BB_LN
-//#define BB_LOADACM
-//#define BB_LOADFONT
-//#define BB_LOADKMAP
-//#define BB_LOGGER
+#define BB_LOADACM
+#define BB_LOADFONT
+#define BB_LOADKMAP
+#define BB_LOGGER
 #define BB_LOGNAME
 #define BB_LS
-//#define BB_LSMOD
-//#define BB_MAKEDEVS
-//#define BB_MKFS_MINIX
-//#define BB_MATH
+#define BB_LSMOD
+#define BB_MAKEDEVS
+#define BB_MKFS_MINIX
+#define BB_MATH
 #define BB_MKDIR
-//#define BB_MKFIFO
+#define BB_MKFIFO
 #define BB_MKNOD
 #define BB_MKSWAP
-//#define BB_MNC
+#define BB_MNC
 #define BB_MORE
 #define BB_MOUNT
-//#define BB_NFSMOUNT
-//#define BB_MT
+#define BB_NFSMOUNT
+#define BB_MT
 #define BB_NSLOOKUP
 #define BB_PING
-#define BB_POWEROFF
-//#define BB_PRINTF
+//#define BB_POWEROFF
+#define BB_PRINTF
 #define BB_PS
 #define BB_PWD
-#define BB_REBOOT
+//#define BB_REBOOT
 #define BB_RM
 #define BB_RMDIR
-//#define BB_RMMOD
+#define BB_RMMOD
 #define BB_SED
-//#define BB_SFDISK
+#define BB_SFDISK
 #define BB_SH
 #define BB_SLEEP
 #define BB_SORT
@@ -86,7 +86,7 @@
 #define BB_TEE
 #define BB_TEST
 // Don't turn BB_TELNET on.  It doesn't work.
-#define BB_TELNET
+//#define BB_TELNET
 #define BB_TOUCH
 #define BB_TR
 #define BB_TRUE_FALSE
 //
 //
 // Turn this on to use Erik's very cool devps, devmtab, 
-// etc. kernel drivers, thereby eliminating the need for 
+// etc kernel drivers, thereby eliminating the need for 
 // the /proc filesystem and thereby saving lots and lots 
 // memory for more important things.
 // You can't use this and USE_PROCFS at the same time...
 //Enable init being called as /linuxrc
 //#define BB_FEATURE_LINUXRC
 //
-//Have init enable core dumping for child processed (for debugging only) 
+//Have init enable core dumping for child processes (for debugging only) 
 //#define BB_FEATURE_INIT_COREDUMPS
 //
 // Allow init to permenently chroot, and umount the old root fs
 #define BB_FEATURE_TAR_CREATE
 //
 // Enable support for "--exclude" for excluding files
-//#define BB_FEATURE_TAR_EXCLUDE
+#define BB_FEATURE_TAR_EXCLUDE
 //
 //// Enable reverse sort
-//#define BB_FEATURE_SORT_REVERSE
+#define BB_FEATURE_SORT_REVERSE
 //
 // Enable command line editing in the shell
-//#define BB_FEATURE_SH_COMMAND_EDITING
+#define BB_FEATURE_SH_COMMAND_EDITING
 //
-// Enable tab completion in the shell (not yet working very well)
+// Enable tab completion in the shell (not yet 
+// working very well -- so don't turn this on)
 //#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
diff --git a/cat.c b/cat.c
index 58a1b0f54482d0f498420b47f962f85a4575ef93..f7a6bfa7b8df122f86358feab8c5491506260998 100644 (file)
--- a/cat.c
+++ b/cat.c
@@ -2,7 +2,7 @@
 /*
  * Mini Cat implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 00c6b349a34b7fd217c1e085e6624e3a3716df49..8dd76705427f72f9a37e93c2ee6a46be6239b83e 100644 (file)
@@ -3,7 +3,7 @@
  * Mini chown/chmod/chgrp implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 3622c26dc7461360dafbed65bb18a193608883e9..63fa4d14602caa6461c23b4b6a6e0885db4ca328 100644 (file)
--- a/chroot.c
+++ b/chroot.c
@@ -3,7 +3,7 @@
  * Mini chroot implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/clear.c b/clear.c
index 899840a8a5d66a93b4bd389a3988dd8279fcc276..c27787ed3db5e94c2e049ace793b1cf9ecadd486 100644 (file)
--- a/clear.c
+++ b/clear.c
@@ -3,7 +3,7 @@
  * Mini clear implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 9800dd1c6c235936490670b0edb6c8a92b97a649..1434c36f6298f631080298a8a14215b8e532f23c 100644 (file)
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -1,10 +1,12 @@
 /* vi: set sw=4 ts=4: */
 /*
- * Termios command line History and Editting for NetBSD sh (ash)
+ * Termios command line History and Editting, originally 
+ * intended for NetBSD sh (ash)
  * Copyright (c) 1999
  *      Main code:            Adam Rogoyski <rogoyski@cs.utexas.edu> 
  *      Etc:                  Dave Cinege <dcinege@psychosis.com>
- *      Adjusted for busybox: Erik Andersen <andersee@debian.org>
+ *  Majorly adjusted/re-written for busybox:
+ *                            Erik Andersen <andersee@debian.org>
  *
  * You may use this code as you wish, so long as the original author(s)
  * are attributed in any redistributions of the source code.
@@ -69,14 +71,15 @@ struct history {
 void
 cmdedit_setwidth(int w)
 {
-    if (w > 20) {
+       if (w > 20) {
                cmdedit_termw = w;
                cmdedit_scroll = w / 3;
-    } else {
+       } else {
                errorMsg("\n*** Error: minimum screen width is 21\n");
-    }
+       }
 }
 
+
 void cmdedit_reset_term(void)
 {
        if (reset_term)
@@ -339,60 +342,7 @@ void get_next_history(struct history **hp, char* command)
        free((*hp)->s);
        (*hp)->s = strdup(command);
        *hp = (*hp)->n;
-
-       cmdedit_redraw( NULL, hp->s, -2, -2); 
-}
-
-#if 0
-/* prompt : if !=NULL, print the prompt
- * command: the command line to be displayed
- * where  : where to display changes from.
- *          -1 for no change, -2 for new line
- * cursor : desired location for the cursor.
- *          -1 for Beginning of line.
- *          -2 for End of Line, 
- */
-static void
-cmdedit_redraw(char* prompt, char* command, int where, int cursor)
-{
-       static char* last_command;
-       int cmdedit_width;
-
-       if (where == -2) {
-               /* Rewrite the prompt and clean up static variables */
-               xwrite(outputFd, "\n", 1);
-               if (prompt) {
-                       strcpy(last_command, prompt);
-                       xwrite(outputFd, prompt, strlen(prompt));
-               } else {
-                       last_command[0] = '\0';
-                       xwrite(outputFd, "# ", 2);
-               }
-               cmdedit_width = cmdedit_termw - cmdedit_strlen(prompt);
-       } else if (strcmp(command, last_command) != 0) {
-               strcpy(last_command, prompt);
-       }
-
-       /* erase old command from command line */
-       len = strlen(command)-strlen(last_command);
-       while (len>0)
-               input_backspace(command, outputFd, &cursor, &len);
-       input_home(outputFd, &cursor);
-
-       /* Rewrite the command */
-       xwrite(outputFd, command+where, len);
-
-       /* Put the where it is supposed to be */
-       for (cursor=len; cursor > where; cursor--)
-               xwrite(outputFd, "\b", 1);
-
-       /* write new command */
-       strcpy(command, hp->s);
-       len = strlen(hp->s);
-       xwrite(outputFd, command+where, len);
-       cursor = len;
 }
-#endif
 
 /*
  * This function is used to grab a character buffer
index 899840a8a5d66a93b4bd389a3988dd8279fcc276..c27787ed3db5e94c2e049ace793b1cf9ecadd486 100644 (file)
@@ -3,7 +3,7 @@
  * Mini clear implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 072562f6bef28090f597ce52e40bd03ff4f1436b..66f79092c26e1555eadd656623dae528b3a5fbbc 100644 (file)
@@ -353,8 +353,8 @@ void saveoldmap(int fd, char *omfil)
 unicode utf8_to_ucs2(char *buf)
 {
        int utf_count = 0;
-       long utf_char;
-       unicode tc;
+       long utf_char = 0;
+       unicode tc = 0;
        unsigned char c;
 
        do {
index 1db885f6214fe306a08bd82584bede039cdf45db..06e27663f813e34de059a3a3cb09750cd9e66e31 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini basename implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
 
 extern int basename_main(int argc, char **argv)
 {
-       char* s;
+       char* s, *s1;
 
        if ((argc < 2) || (**(argv + 1) == '-')) {
                usage("basename [file ...]\n");
        }
        argv++;
 
+       s1=*argv+strlen(*argv)-1;
+       if (*s1 == '/')
+               *s1 = '\0';
        s = strrchr(*argv, '/');
        printf("%s\n", (s)? s + 1 : *argv);
        exit(TRUE);
index 58a1b0f54482d0f498420b47f962f85a4575ef93..f7a6bfa7b8df122f86358feab8c5491506260998 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini Cat implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 3622c26dc7461360dafbed65bb18a193608883e9..63fa4d14602caa6461c23b4b6a6e0885db4ca328 100644 (file)
@@ -3,7 +3,7 @@
  * Mini chroot implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 9c7d872b195511354a2f59982cbccd455844b841..303500008738d93306988f46c3f03ac81059e3d9 100644 (file)
@@ -2,13 +2,13 @@
 /*
  * Mini dd implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999, 2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
- * based in part on code taken from sash. 
  *
- * Copyright (c) 1999 by David I. Bell
- * Permission is granted to use, distribute, or modify this source,
- * provided that this copyright notice remains intact.
+ * Based in part on code taken from sash. 
+ *   Copyright (c) 1999 by David I. Bell
+ *   Permission is granted to use, distribute, or modify this source,
+ *   provided that this copyright notice remains intact.
  *
  * Permission to distribute this code under the GPL has been granted.
  *
index 331ef2d49d65a6d073fa69cd9e99bb85117e6abf..c387204547aef77204a2cadb0e5a26bfcf35a782 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini df implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
  * based on original code by (I think) Bruce Perens <bruce@pixar.com>.
  *
@@ -28,9 +28,8 @@
 #include <sys/stat.h>
 #include <sys/vfs.h>
 
-static const char df_usage[] = "df [filesystem ...]\n"
-
-       "\n" "\tPrint the filesystem space used and space available.\n";
+static const char df_usage[] = "df [filesystem ...]\n\n"
+       "Print the filesystem space used and space available.\n";
 
 extern const char mtab_file[]; /* Defined in utility.c */
 
@@ -76,6 +75,9 @@ extern int df_main(int argc, char **argv)
                struct mntent *mountEntry;
                int status;
 
+               if (**(argv + 1) == '-') {
+                       usage(df_usage);
+               }
                while (argc > 1) {
                        if ((mountEntry = findMountPoint(argv[1], mtab_file)) == 0) {
                                fprintf(stderr, "%s: can't find mount point.\n", argv[1]);
index b6ebaca7a067c0dceabe19e8bb17c0e053e6a792..874538015407dcb2e13ee7f58e9a6614b1b3c740 100644 (file)
@@ -3,7 +3,7 @@
  * Mini du implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -182,7 +182,7 @@ int du_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: du.c,v 1.16 2000/03/04 21:19:32 erik Exp $ */
+/* $Id: du.c,v 1.17 2000/04/13 01:18:56 erik Exp $ */
 /*
 Local Variables:
 c-file-style: "linux"
index 82a73de2a2e35b7fe2d766057b98e305b8ce6fcf..3db64b3bc256cdb1d229ac36c9b1a965ea06b3b6 100644 (file)
@@ -3,7 +3,7 @@
  * Mini head implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -109,4 +109,4 @@ int head_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: head.c,v 1.8 2000/02/08 19:58:47 erik Exp $ */
+/* $Id: head.c,v 1.9 2000/04/13 01:18:56 erik Exp $ */
index c54026c6255ebfd988f4c90469345ed05d7ae067..4be60624ecd02da416ef9be5f8fa838fb9333b15 100644 (file)
@@ -2,8 +2,7 @@
 /*
  * Mini ln implementation for busybox
  *
- *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 70fdbdfb5660e62f413125df3e1b80663c7c5247..b0a2d57d630526021043a63e5b78ad87602901c5 100644 (file)
@@ -2,8 +2,7 @@
 /*
  * Mini mkdir implementation for busybox
  *
- *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 683bf8bdff2a45e040af20d6aae8285d55828cc6..0cd795661a0bc31df6aa65544f846d59160f0585 100644 (file)
@@ -3,7 +3,7 @@
  * Mini rm implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index f49569749632476d6a5d648fe67e23c8cf8f55a6..1d88de32279bf01fe75ea932fcdfd8cca7ade902 100644 (file)
@@ -3,7 +3,7 @@
  * Mini rmdir implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index e6894f6c3714ccdb6213614d6777fd296646d60d..6ee6f207e68f749482f656231428003c289446ba 100644 (file)
@@ -3,7 +3,7 @@
  * Mini sort implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -320,4 +320,4 @@ int sort_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: sort.c,v 1.12 2000/03/04 21:19:32 erik Exp $ */
+/* $Id: sort.c,v 1.13 2000/04/13 01:18:56 erik Exp $ */
index 018fe117bed77627a57df69cefcd4d5315c455de..95b75edd7f3ada361ed7b034996e8938f6e64913 100644 (file)
@@ -3,7 +3,7 @@
  * Mini tee implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -131,4 +131,4 @@ int tee_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: tee.c,v 1.8 2000/03/23 01:09:18 erik Exp $ */
+/* $Id: tee.c,v 1.9 2000/04/13 01:18:56 erik Exp $ */
index a0f21acdd3c23372e6d5217ab49c6e99a139ee21..f8972dcf6912ccdb42e07164716a92fef94b0e1e 100644 (file)
@@ -3,7 +3,7 @@
  * Mini touch implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 1e41eaacdf9418574b99d621c7a466f05eecb227..2eedb886de5e47207979de244b4e686e40bd7924 100644 (file)
@@ -3,7 +3,7 @@
  * Mini uniq implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -190,4 +190,4 @@ int uniq_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: uniq.c,v 1.7 2000/02/08 19:58:47 erik Exp $ */
+/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */
diff --git a/cp_mv.c b/cp_mv.c
index 72b0791c24c7ee749854c68fd74a407906abea29..9a308493585992ac844f27c1be9c489bfd995b80 100644 (file)
--- a/cp_mv.c
+++ b/cp_mv.c
@@ -37,7 +37,7 @@
 #include <utime.h>
 #include <dirent.h>
 #include <sys/param.h>
-#include <setjmp.h>                            /* Ok to use this since `ash' does, therefore it's in the libc subset already. */
+#include <setjmp.h>
 #include <string.h>
 #include <unistd.h>
 #include <errno.h>
diff --git a/dd.c b/dd.c
index 9c7d872b195511354a2f59982cbccd455844b841..303500008738d93306988f46c3f03ac81059e3d9 100644 (file)
--- a/dd.c
+++ b/dd.c
@@ -2,13 +2,13 @@
 /*
  * Mini dd implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999, 2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
- * based in part on code taken from sash. 
  *
- * Copyright (c) 1999 by David I. Bell
- * Permission is granted to use, distribute, or modify this source,
- * provided that this copyright notice remains intact.
+ * Based in part on code taken from sash. 
+ *   Copyright (c) 1999 by David I. Bell
+ *   Permission is granted to use, distribute, or modify this source,
+ *   provided that this copyright notice remains intact.
  *
  * Permission to distribute this code under the GPL has been granted.
  *
diff --git a/df.c b/df.c
index 331ef2d49d65a6d073fa69cd9e99bb85117e6abf..c387204547aef77204a2cadb0e5a26bfcf35a782 100644 (file)
--- a/df.c
+++ b/df.c
@@ -2,7 +2,7 @@
 /*
  * Mini df implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
  * based on original code by (I think) Bruce Perens <bruce@pixar.com>.
  *
@@ -28,9 +28,8 @@
 #include <sys/stat.h>
 #include <sys/vfs.h>
 
-static const char df_usage[] = "df [filesystem ...]\n"
-
-       "\n" "\tPrint the filesystem space used and space available.\n";
+static const char df_usage[] = "df [filesystem ...]\n\n"
+       "Print the filesystem space used and space available.\n";
 
 extern const char mtab_file[]; /* Defined in utility.c */
 
@@ -76,6 +75,9 @@ extern int df_main(int argc, char **argv)
                struct mntent *mountEntry;
                int status;
 
+               if (**(argv + 1) == '-') {
+                       usage(df_usage);
+               }
                while (argc > 1) {
                        if ((mountEntry = findMountPoint(argv[1], mtab_file)) == 0) {
                                fprintf(stderr, "%s: can't find mount point.\n", argv[1]);
diff --git a/du.c b/du.c
index b6ebaca7a067c0dceabe19e8bb17c0e053e6a792..874538015407dcb2e13ee7f58e9a6614b1b3c740 100644 (file)
--- a/du.c
+++ b/du.c
@@ -3,7 +3,7 @@
  * Mini du implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -182,7 +182,7 @@ int du_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: du.c,v 1.16 2000/03/04 21:19:32 erik Exp $ */
+/* $Id: du.c,v 1.17 2000/04/13 01:18:56 erik Exp $ */
 /*
 Local Variables:
 c-file-style: "linux"
diff --git a/dutmp.c b/dutmp.c
index 45eab8ae78fb4efe4e2d6663aec7225d4541f1fa..cf0d466ef0e40d4d3f30c125619f017917c98e35 100644 (file)
--- a/dutmp.c
+++ b/dutmp.c
 
 #include "internal.h"
 #include <stdio.h>
+#include <errno.h>
 #include <utmp.h>
+#define BB_DECLARE_EXTERN
+#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";
 
 extern int dutmp_main(int argc, char **argv)
 {
 
-       FILE *f = stdin;
+       FILE *f;
        struct utmp ut;
 
-       if ((argc < 2) || (**(argv + 1) == '-')) {
+       if (argc<2) {
+               f = stdin;
+       } else if (*argv[1] == '-' ) {
                usage(dutmp_usage);
-       }
-
-       if (**(++argv) == 0) {
-               f = fopen(*(++argv), "r");
-               if (f < 0) {
-                       perror(*argv);
-                       exit(FALSE);
+       } else  {
+               f = fopen(argv[1], "r");
+               if (f == NULL) {
+                       fatalError(io_error, argv[1], strerror(errno));
                }
        }
 
-       while (fread(&ut, 1, sizeof(struct utmp), f)) {
-               // printf("%d:%d:%s:%s:%s:%s:%d:%d:%ld:%ld:%ld:%x\n", 
+       while (fread(&ut, sizeof(struct utmp), 1, f)) {
                printf("%d|%d|%s|%s|%s|%s|%d|%d|%ld|%ld|%ld|%x\n",
                           ut.ut_type, ut.ut_pid, ut.ut_line,
                           ut.ut_id, ut.ut_user, ut.ut_host,
index 2beb2a5888e4948dbde4582ab580aad6a1dcb58e..0d57a4a06e765ceb37dc17c820b847390d81c713 100644 (file)
@@ -3,7 +3,7 @@
  * Mini sed implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
  *
  * Modifications for addresses and append command have been
diff --git a/fbset.c b/fbset.c
index 7ca41733b36edc8b54e72b49186f96e2c6fb17c9..1f471dada23516958337856a567f6c330f8e47bf 100644 (file)
--- a/fbset.c
+++ b/fbset.c
@@ -228,10 +228,11 @@ static void fbset_usage(void)
        fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n",
                        BB_VER, BB_BT);
 #endif
-       fprintf(stderr, "Usage: fbset [options] [mode]\n");
-       fprintf(stderr, "\tThe following options are recognized:\n");
+       fprintf(stderr, "Usage: fbset [options] [mode]\n\n");
+       fprintf(stderr, "Show and modify frame buffer device settings\n\n");
+       fprintf(stderr, "The following options are recognized:\n");
        for (i = 0; g_cmdoptions[i].name; i++)
-               fprintf(stderr, "\t\t%s\n", g_cmdoptions[i].name);
+               fprintf(stderr, "\t%s\n", g_cmdoptions[i].name);
        exit(-1);
 }
 
diff --git a/find.c b/find.c
index c23ac5f46b3b21d7e4dc6a45a1a10dd6cc6fd572..8fdef2382dc8cead3a8a7ee28ea43136771f1c96 100644 (file)
--- a/find.c
+++ b/find.c
@@ -3,7 +3,7 @@
  * Mini find implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index c23ac5f46b3b21d7e4dc6a45a1a10dd6cc6fd572..8fdef2382dc8cead3a8a7ee28ea43136771f1c96 100644 (file)
@@ -3,7 +3,7 @@
  * Mini find implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index d8d2f1837389321ac982423a42508d2513c95fe6..abdd4423602ea0cb0e3717c761bc728348f37614 100644 (file)
@@ -3,7 +3,7 @@
  * Mini grep implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/free.c b/free.c
index 78a36fe9a412690c78ef666e3c2a166a387afb71..39594dbe527422c47ad906717fde3b505e668013 100644 (file)
--- a/free.c
+++ b/free.c
@@ -2,7 +2,7 @@
 /*
  * Mini free implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/grep.c b/grep.c
index d8d2f1837389321ac982423a42508d2513c95fe6..abdd4423602ea0cb0e3717c761bc728348f37614 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -3,7 +3,7 @@
  * Mini grep implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 7aa896469319879f26d0e0db84460501c5f8bd71..1a5cdba8809adc3e309b90b317720dd1d2464248 100644 (file)
--- a/gunzip.c
+++ b/gunzip.c
@@ -1,13 +1,33 @@
 /* vi: set sw=4 ts=4: */
-/* zcat : stripped version based on gzip sources
-   Sven Rudolph <sr1@inf.tu-dresden.de>
-   */
+/*
+ * Gzip implementation for busybox
+ *
+ * Based on GNU gzip Copyright (C) 1992-1993 Jean-loup Gailly.
+ *
+ * Originally adjusted for busybox by Sven Rudolph <sr1@inf.tu-dresden.de>
+ * based on gzip sources
+ *
+ * Adjusted further by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * to support files as well as stdin/stdout, and to generally behave itself wrt
+ * command line handling.
+ *
+ * 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.
+ *
+ * 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
+ *
+ */
 
 #include "internal.h"
-#define bb_need_name_too_long
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
 static const char gunzip_usage[] =
        "gunzip [OPTION]... FILE\n\n"
        "Uncompress FILE (or standard input if FILE is '-').\n\n"
@@ -16,6 +36,18 @@ static const char gunzip_usage[] =
        "\t-c\tWrite output to standard output\n"
        "\t-t\tTest compressed file integrity\n";
 
+       
+       /* These defines are very important for BusyBox.  Without these,
+ * huge chunks of ram are pre-allocated making the BusyBox bss 
+ * size Freaking Huge(tm), which is a bad thing.*/
+#define SMALL_MEM
+#define DYN_ALLOC
+
+#define bb_need_name_too_long
+#define BB_DECLARE_EXTERN
+#include "messages.c"
+
+
 /* gzip (GNU zip) -- compress files with zip algorithm and 'compress' interface
  * Copyright (C) 1992-1993 Jean-loup Gailly
  * The unzip code was written and put in the public domain by Mark Adler.
@@ -89,25 +121,6 @@ static char *license_msg[] = {
 #define get_char() get_byte()
 #define put_char(c) put_byte(c)
 
-/* #include "gzip.h" */
-
-/* gzip.h -- common declarations for all gzip modules
- * Copyright (C) 1992-1993 Jean-loup Gailly.
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License, see the file COPYING.
- */
-
-#if defined(__STDC__) || defined(PROTO)
-#  define OF(args)  args
-#else
-#  define OF(args)  ()
-#endif
-
-#ifdef __STDC__
-typedef void *voidp;
-#else
-typedef char *voidp;
-#endif
 
 /* I don't like nested includes, but the string and io functions are used
  * too often
@@ -118,7 +131,7 @@ typedef char *voidp;
 #  if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
 #    include <memory.h>
 #  endif
-#  define memzero(s, n)     memset ((voidp)(s), 0, (n))
+#  define memzero(s, n)     memset ((void *)(s), 0, (n))
 #else
 #  include <strings.h>
 #  define strchr            index
@@ -329,49 +342,46 @@ extern int save_orig_name;                /* set if original name must be saved */
 #define WARN(msg) {fprintf msg ; \
                   if (exit_code == OK) exit_code = WARNING;}
 
-#define do_exit(c) exit(c)
-
-
        /* in unzip.c */
-extern int unzip OF((int in, int out));
+extern int unzip (int in, int out);
 
        /* in gzip.c */
-RETSIGTYPE abort_gzip OF((void));
+RETSIGTYPE abort_gzip (void);
 
                /* in deflate.c */
-void lm_init OF((int pack_level, ush * flags));
-ulg deflate OF((void));
+void lm_init (int pack_level, ush * flags);
+ulg deflate (void);
 
                /* in trees.c */
-void ct_init OF((ush * attr, int *method));
-int ct_tally OF((int dist, int lc));
-ulg flush_block OF((char *buf, ulg stored_len, int eof));
+void ct_init (ush * attr, int *method);
+int ct_tally (int dist, int lc);
+ulg flush_block (char *buf, ulg stored_len, int eof);
 
                /* in bits.c */
-void bi_init OF((file_t zipfile));
-void send_bits OF((int value, int length));
-unsigned bi_reverse OF((unsigned value, int length));
-void bi_windup OF((void));
-void copy_block OF((char *buf, unsigned len, int header));
-extern int (*read_buf) OF((char *buf, unsigned size));
+void bi_init (file_t zipfile);
+void send_bits (int value, int length);
+unsigned bi_reverse (unsigned value, int length);
+void bi_windup (void);
+void copy_block (char *buf, unsigned len, int header);
+extern int (*read_buf) (char *buf, unsigned size);
 
        /* in util.c: */
-extern int copy OF((int in, int out));
-extern ulg updcrc OF((uch * s, unsigned n));
-extern void clear_bufs OF((void));
-extern int fill_inbuf OF((int eof_ok));
-extern void flush_outbuf OF((void));
-extern void flush_window OF((void));
-extern void write_buf OF((int fd, voidp buf, unsigned cnt));
+extern int copy (int in, int out);
+extern ulg updcrc (uch * s, unsigned n);
+extern void clear_bufs (void);
+extern int fill_inbuf (int eof_ok);
+extern void flush_outbuf (void);
+extern void flush_window (void);
+extern void write_buf (int fd, void * buf, unsigned cnt);
 
 #ifndef __linux__
-extern char *basename OF((char *fname));
+extern char *basename (char *fname);
 #endif                                                 /* not __linux__ */
-extern void read_error OF((void));
-extern void write_error OF((void));
+extern void read_error (void);
+extern void write_error (void);
 
        /* in inflate.c */
-extern int inflate OF((void));
+extern int inflate (void);
 
 /* #include "lzw.h" */
 
@@ -415,8 +425,8 @@ extern int inflate OF((void));
 extern int maxbits;                            /* max bits per code for LZW */
 extern int block_mode;                 /* block compress mode -C compatible with 2.0 */
 
-extern int lzw OF((int in, int out));
-extern int unlzw OF((int in, int out));
+extern int lzw (int in, int out);
+extern int unlzw (int in, int out);
 
 
 /* #include "revision.h" */
@@ -605,7 +615,7 @@ typedef struct direct dir_type;
 #if !defined(S_ISREG) && defined(S_IFREG)
 #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 #endif
-typedef RETSIGTYPE(*sig_type) OF((int));
+typedef RETSIGTYPE(*sig_type) (int);
 
 #ifndef        O_BINARY
 #  define  O_BINARY  0                 /* creation mode for open() */
@@ -644,7 +654,7 @@ typedef RETSIGTYPE(*sig_type) OF((int));
 
 #ifdef NO_OFF_T
 typedef long off_t;
-off_t lseek OF((int fd, off_t offset, int whence));
+off_t lseek (int fd, off_t offset, int whence);
 #endif
 
 
@@ -687,7 +697,7 @@ long header_bytes;                          /* number of bytes in gzip header */
 
 /* local functions */
 
-local int get_method OF((int in));
+local int get_method (int in);
 
 #define strequ(s1, s2) (strcmp((s1),(s2)) == 0)
 
@@ -773,7 +783,7 @@ int gunzip_main(int argc, char **argv)
                        usage(gunzip_usage);
                if (strlen(*argv) > MAX_PATH_LEN) {
                        fprintf(stderr, name_too_long, "gunzip");
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                strcpy(ifname, *argv);
 
@@ -781,13 +791,13 @@ int gunzip_main(int argc, char **argv)
                inFileNum = open(ifname, O_RDONLY);
                if (inFileNum < 0) {
                        perror(ifname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                /* Get the time stamp on the input file. */
                result = stat(ifname, &statBuf);
                if (result < 0) {
                        perror(ifname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                ifile_size = statBuf.st_size;
        }
@@ -812,7 +822,7 @@ int gunzip_main(int argc, char **argv)
                /* And get to work */
                if (strlen(ifname) > MAX_PATH_LEN - 4) {
                        fprintf(stderr, name_too_long, "gunzip");
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                strcpy(ofname, ifname);
                pos = strstr(ofname, ".gz");
@@ -836,7 +846,7 @@ int gunzip_main(int argc, char **argv)
 #endif
                if (outFileNum < 0) {
                        perror(ofname);
-                       do_exit(WARNING);
+                       exit(WARNING);
                }
                /* Set permissions on the file */
                fchmod(outFileNum, statBuf.st_mode);
@@ -860,7 +870,7 @@ int gunzip_main(int argc, char **argv)
                        exit(FALSE);
                }
        }
-       do_exit(exit_code);
+       exit(exit_code);
 }
 
 
@@ -953,7 +963,7 @@ int in;                                                     /* input file descriptor */
  */
 RETSIGTYPE abort_gzip()
 {
-       do_exit(ERROR);
+       exit(ERROR);
 }
 
 /* unzip.c -- decompress files in gzip or pkzip format.
@@ -1027,7 +1037,7 @@ int in, out;                                      /* input and output file descriptors */
        ofd = out;
        method = get_method(ifd);
        if (method < 0) {
-               do_exit(exit_code);             /* error message already emitted */
+               exit(exit_code);                /* error message already emitted */
        }
 
        updcrc(NULL, 0);                        /* initialize crc */
@@ -1218,7 +1228,7 @@ void flush_window()
  */
 void write_buf(fd, buf, cnt)
 int fd;
-voidp buf;
+void * buf;
 unsigned cnt;
 {
        unsigned n;
@@ -1228,7 +1238,7 @@ unsigned cnt;
                        write_error();
                }
                cnt -= n;
-               buf = (voidp) ((char *) buf + n);
+               buf = (void *) ((char *) buf + n);
        }
 }
 
@@ -1240,8 +1250,8 @@ unsigned cnt;
 #    define const
 #  endif
 
-int strspn OF((const char *s, const char *accept));
-int strcspn OF((const char *s, const char *reject));
+int strspn (const char *s, const char *accept);
+int strcspn (const char *s, const char *reject);
 
 /* ========================================================================
  * Return the length of the maximum initial segment
@@ -1493,15 +1503,15 @@ struct huft {
 
 
 /* Function prototypes */
-int huft_build OF((unsigned *, unsigned, unsigned, ush *, ush *,
-                                  struct huft **, int *));
-int huft_free OF((struct huft *));
-int inflate_codes OF((struct huft *, struct huft *, int, int));
-int inflate_stored OF((void));
-int inflate_fixed OF((void));
-int inflate_dynamic OF((void));
-int inflate_block OF((int *));
-int inflate OF((void));
+int huft_build (unsigned *, unsigned, unsigned, ush *, ush *,
+                                  struct huft **, int *);
+int huft_free (struct huft *);
+int inflate_codes (struct huft *, struct huft *, int, int);
+int inflate_stored (void);
+int inflate_fixed (void);
+int inflate_dynamic (void);
+int inflate_block (int *);
+int inflate (void);
 
 
 /* The inflate algorithm uses a sliding 32K byte window on the uncompressed
diff --git a/gzip.c b/gzip.c
index 0a969d8db113da21a87d9de8c33de6896965a7f6..55ec5bc4e16e310aae8e8e3568b087037a362027 100644 (file)
--- a/gzip.c
+++ b/gzip.c
@@ -1,16 +1,42 @@
 /* vi: set sw=4 ts=4: */
-/* gzip.c -- this is a stripped down version of gzip I put into busybox, it does
- * only standard in to standard out with -9 compression.  It also requires the
- * zcat module for some important functions.  
+/*
+ * Gzip implementation for busybox
+ *
+ * Based on GNU gzip Copyright (C) 1992-1993 Jean-loup Gailly.
+ *
+ * Originally adjusted for busybox by Charles P. Wright <cpw@unix.asb.com>
+ *             "this is a stripped down version of gzip I put into busybox, it does
+ *             only standard in to standard out with -9 compression.  It also requires
+ *             the zcat module for some important functions."
+ *
+ * Adjusted further by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * to support files as well as stdin/stdout, and to generally behave itself wrt
+ * command line handling.
+ *
+ * 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.
+ *
+ * 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
  *
- * Charles P. Wright <cpw@unix.asb.com>
  */
+
 #include "internal.h"
-#ifdef BB_GZIP
 
-//#ifndef BB_ZCAT
-//#error you need zcat to have gzip support!
-//#endif
+/* These defines are very important for BusyBox.  Without these,
+ * huge chunks of ram are pre-allocated making the BusyBox bss 
+ * size Freaking Huge(tm), which is a bad thing.*/
+#define SMALL_MEM
+#define DYN_ALLOC
+
 
 static const char gzip_usage[] =
        "gzip [OPTION]... FILE\n\n"
@@ -21,42 +47,12 @@ static const char gzip_usage[] =
        "\t-c\tWrite output to standard output instead of FILE.gz\n";
 
 
-/* gzip.h -- common declarations for all gzip modules
- * Copyright (C) 1992-1993 Jean-loup Gailly.
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License, see the file COPYING.
- */
-
-#if defined(__STDC__) || defined(PROTO)
-#  define OF(args)  args
-#else
-#  define OF(args)  ()
-#endif
-
-#ifdef __STDC__
-typedef void *voidp;
-#else
-typedef char *voidp;
-#endif
-
 /* I don't like nested includes, but the string and io functions are used
  * too often
  */
 #include <stdio.h>
-#if !defined(NO_STRING_H) || defined(STDC_HEADERS)
-#  include <string.h>
-#  if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
-#    include <memory.h>
-#  endif
-#  define memzero(s, n)     memset ((voidp)(s), 0, (n))
-#else
-#  include <strings.h>
-#  define strchr            index
-#  define strrchr           rindex
-#  define memcpy(d, s, n)   bcopy((s), (d), (n))
-#  define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
-#  define memzero(s, n)     bzero((s), (n))
-#endif
+#include <string.h>
+#define memzero(s, n)     memset ((void *)(s), 0, (n))
 
 #ifndef RETSIGTYPE
 #  define RETSIGTYPE void
@@ -121,13 +117,13 @@ extern int method;                                /* compression method */
 #endif
 
 #ifdef DYN_ALLOC
-#  define EXTERN(type, array)  extern type * near array
-#  define DECLARE(type, array, size)  type * near array
+#  define EXTERN(type, array)  extern type * array
+#  define DECLARE(type, array, size)  type * array
 #  define ALLOC(type, array, size) { \
-      array = (type*)fcalloc((size_t)(((size)+1L)/2), 2*sizeof(type)); \
+      array = (type*)calloc((size_t)(((size)+1L)/2), 2*sizeof(type)); \
       if (array == NULL) errorMsg("insufficient memory"); \
    }
-#  define FREE(array) {if (array != NULL) fcfree(array), array=NULL;}
+#  define FREE(array) {if (array != NULL) free(array), array=NULL;}
 #else
 #  define EXTERN(type, array)  extern type array[]
 #  define DECLARE(type, array, size)  type array[size]
@@ -284,55 +280,55 @@ extern int save_orig_name;                /* set if original name must be saved */
 
 
        /* in zip.c: */
-extern int zip OF((int in, int out));
-extern int file_read OF((char *buf, unsigned size));
+extern int zip (int in, int out);
+extern int file_read (char *buf, unsigned size);
 
        /* in unzip.c */
-extern int unzip OF((int in, int out));
-extern int check_zipfile OF((int in));
+extern int unzip (int in, int out);
+extern int check_zipfile (int in);
 
        /* in unpack.c */
-extern int unpack OF((int in, int out));
+extern int unpack (int in, int out);
 
        /* in unlzh.c */
-extern int unlzh OF((int in, int out));
+extern int unlzh (int in, int out);
 
        /* in gzip.c */
-RETSIGTYPE abort_gzip OF((void));
+RETSIGTYPE abort_gzip (void);
 
                /* in deflate.c */
-void lm_init OF((ush * flags));
-ulg deflate OF((void));
+void lm_init (ush * flags);
+ulg deflate (void);
 
                /* in trees.c */
-void ct_init OF((ush * attr, int *method));
-int ct_tally OF((int dist, int lc));
-ulg flush_block OF((char *buf, ulg stored_len, int eof));
+void ct_init (ush * attr, int *method);
+int ct_tally (int dist, int lc);
+ulg flush_block (char *buf, ulg stored_len, int eof);
 
                /* in bits.c */
-void bi_init OF((file_t zipfile));
-void send_bits OF((int value, int length));
-unsigned bi_reverse OF((unsigned value, int length));
-void bi_windup OF((void));
-void copy_block OF((char *buf, unsigned len, int header));
-extern int (*read_buf) OF((char *buf, unsigned size));
+void bi_init (file_t zipfile);
+void send_bits (int value, int length);
+unsigned bi_reverse (unsigned value, int length);
+void bi_windup (void);
+void copy_block (char *buf, unsigned len, int header);
+extern int (*read_buf) (char *buf, unsigned size);
 
        /* in util.c: */
-extern int copy OF((int in, int out));
-extern ulg updcrc OF((uch * s, unsigned n));
-extern void clear_bufs OF((void));
-extern int fill_inbuf OF((int eof_ok));
-extern void flush_outbuf OF((void));
-extern void flush_window OF((void));
-extern void write_buf OF((int fd, voidp buf, unsigned cnt));
-extern char *strlwr OF((char *s));
-extern char *add_envopt OF((int *argcp, char ***argvp, char *env));
-extern void read_error OF((void));
-extern void write_error OF((void));
-extern void display_ratio OF((long num, long den, FILE * file));
+extern int copy (int in, int out);
+extern ulg updcrc (uch * s, unsigned n);
+extern void clear_bufs (void);
+extern int fill_inbuf (int eof_ok);
+extern void flush_outbuf (void);
+extern void flush_window (void);
+extern void write_buf (int fd, void * buf, unsigned cnt);
+extern char *strlwr (char *s);
+extern char *add_envopt (int *argcp, char ***argvp, char *env);
+extern void read_error (void);
+extern void write_error (void);
+extern void display_ratio (long num, long den, FILE * file);
 
        /* in inflate.c */
-extern int inflate OF((void));
+extern int inflate (void);
 
 /* lzw.h -- define the lzw functions.
  * Copyright (C) 1992-1993 Jean-loup Gailly.
@@ -795,7 +791,7 @@ local int bi_valid;
  * are always zero.
  */
 
-int (*read_buf) OF((char *buf, unsigned size));
+int (*read_buf) (char *buf, unsigned size);
 
 /* Current input function. Set to mem_read for in-memory compression */
 
@@ -1148,16 +1144,16 @@ local config configuration_table =
 /* ===========================================================================
  *  Prototypes for local functions.
  */
-local void fill_window OF((void));
+local void fill_window (void);
 
-int longest_match OF((IPos cur_match));
+int longest_match (IPos cur_match);
 
 #ifdef ASMV
-void match_init OF((void));            /* asm code initialization */
+void match_init (void);                /* asm code initialization */
 #endif
 
 #ifdef DEBUG
-local void check_match OF((IPos start, IPos match, int length));
+local void check_match (IPos start, IPos match, int length);
 #endif
 
 /* ===========================================================================
@@ -1708,7 +1704,7 @@ struct utimbuf {
 #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 #endif
 
-typedef RETSIGTYPE(*sig_type) OF((int));
+typedef RETSIGTYPE(*sig_type) (int);
 
 #ifndef        O_BINARY
 #  define  O_BINARY  0                 /* creation mode for open() */
@@ -1743,7 +1739,7 @@ typedef RETSIGTYPE(*sig_type) OF((int));
 
 #ifdef NO_OFF_T
 typedef long off_t;
-off_t lseek OF((int fd, off_t offset, int whence));
+off_t lseek (int fd, off_t offset, int whence);
 #endif
 
 /* Separator for file name parts (see shorten_name()) */
@@ -2246,17 +2242,17 @@ extern unsigned near strstart;  /* window offset of current string */
  * Local (static) routines in this file.
  */
 
-local void init_block OF((void));
-local void pqdownheap OF((ct_data near * tree, int k));
-local void gen_bitlen OF((tree_desc near * desc));
-local void gen_codes OF((ct_data near * tree, int max_code));
-local void build_tree OF((tree_desc near * desc));
-local void scan_tree OF((ct_data near * tree, int max_code));
-local void send_tree OF((ct_data near * tree, int max_code));
-local int build_bl_tree OF((void));
-local void send_all_trees OF((int lcodes, int dcodes, int blcodes));
-local void compress_block OF((ct_data near * ltree, ct_data near * dtree));
-local void set_file_type OF((void));
+local void init_block (void);
+local void pqdownheap (ct_data near * tree, int k);
+local void gen_bitlen (tree_desc near * desc);
+local void gen_codes (ct_data near * tree, int max_code);
+local void build_tree (tree_desc near * desc);
+local void scan_tree (ct_data near * tree, int max_code);
+local void send_tree (ct_data near * tree, int max_code);
+local int build_bl_tree (void);
+local void send_all_trees (int lcodes, int dcodes, int blcodes);
+local void compress_block (ct_data near * ltree, ct_data near * dtree);
+local void set_file_type (void);
 
 
 #ifndef DEBUG
@@ -3161,12 +3157,8 @@ char *s;
 
 /* Provide missing strspn and strcspn functions. */
 
-#  ifndef __STDC__
-#    define const
-#  endif
-
-int strspn OF((const char *s, const char *accept));
-int strcspn OF((const char *s, const char *reject));
+int strspn (const char *s, const char *accept);
+int strcspn (const char *s, const char *reject);
 
 /* ========================================================================
  * Return the length of the maximum initial segment
@@ -3398,4 +3390,3 @@ unsigned size;
        isize += (ulg) len;
        return (int) len;
 }
-#endif
diff --git a/head.c b/head.c
index 82a73de2a2e35b7fe2d766057b98e305b8ce6fcf..3db64b3bc256cdb1d229ac36c9b1a965ea06b3b6 100644 (file)
--- a/head.c
+++ b/head.c
@@ -3,7 +3,7 @@
  * Mini head implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -109,4 +109,4 @@ int head_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: head.c,v 1.8 2000/02/08 19:58:47 erik Exp $ */
+/* $Id: head.c,v 1.9 2000/04/13 01:18:56 erik Exp $ */
diff --git a/init.c b/init.c
index 033eb519f46e86fbfa6ff82300f35dbd7bf4482c..e8a5f74d31782e3f6660a8613801198db02c6957 100644 (file)
--- a/init.c
+++ b/init.c
@@ -471,8 +471,10 @@ static void check_memory()
                return;
 
        if (stat("/etc/fstab", &statBuf) == 0) {
+               /* swapon -a requires /proc typically */
+               waitfor("mount proc /proc -t proc", console, FALSE);
                /* Try to turn on swap */
-               system("/sbin/swapon -a");
+               waitfor("swapon -a", console, FALSE);
                if (check_free_memory() < 1000)
                        goto goodnight;
        } else
index 033eb519f46e86fbfa6ff82300f35dbd7bf4482c..e8a5f74d31782e3f6660a8613801198db02c6957 100644 (file)
@@ -471,8 +471,10 @@ static void check_memory()
                return;
 
        if (stat("/etc/fstab", &statBuf) == 0) {
+               /* swapon -a requires /proc typically */
+               waitfor("mount proc /proc -t proc", console, FALSE);
                /* Try to turn on swap */
-               system("/sbin/swapon -a");
+               waitfor("swapon -a", console, FALSE);
                if (check_free_memory() < 1000)
                        goto goodnight;
        } else
index 7cbbed44166be66c965fdc7bb573d5deb3ed18fd..1ee96f1c8bc1901a11467fdacf636d61815a9432 100644 (file)
--- a/insmod.c
+++ b/insmod.c
@@ -2,7 +2,7 @@
 /*
  * Mini insmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/ln.c b/ln.c
index c54026c6255ebfd988f4c90469345ed05d7ae067..4be60624ecd02da416ef9be5f8fa838fb9333b15 100644 (file)
--- a/ln.c
+++ b/ln.c
@@ -2,8 +2,7 @@
 /*
  * Mini ln implementation for busybox
  *
- *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 072562f6bef28090f597ce52e40bd03ff4f1436b..66f79092c26e1555eadd656623dae528b3a5fbbc 100644 (file)
--- a/loadacm.c
+++ b/loadacm.c
@@ -353,8 +353,8 @@ void saveoldmap(int fd, char *omfil)
 unicode utf8_to_ucs2(char *buf)
 {
        int utf_count = 0;
-       long utf_char;
-       unicode tc;
+       long utf_char = 0;
+       unicode tc = 0;
        unsigned char c;
 
        do {
index a9e0afcc8380e638e004947422ef7390e89cd771..db6d9bfc5883747493cc69be5ce8948afcf79c23 100644 (file)
--- a/logger.c
+++ b/logger.c
@@ -2,7 +2,7 @@
 /*
  * Mini logger implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/lsmod.c b/lsmod.c
index 27fabc1feee08c760ec8d1fe02fa777dcbe5249a..9b72275cd264eb42864ed996aed61fbbee07cc02 100644 (file)
--- a/lsmod.c
+++ b/lsmod.c
@@ -2,7 +2,7 @@
 /*
  * Mini lsmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 45eab8ae78fb4efe4e2d6663aec7225d4541f1fa..cf0d466ef0e40d4d3f30c125619f017917c98e35 100644 (file)
 
 #include "internal.h"
 #include <stdio.h>
+#include <errno.h>
 #include <utmp.h>
+#define BB_DECLARE_EXTERN
+#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";
 
 extern int dutmp_main(int argc, char **argv)
 {
 
-       FILE *f = stdin;
+       FILE *f;
        struct utmp ut;
 
-       if ((argc < 2) || (**(argv + 1) == '-')) {
+       if (argc<2) {
+               f = stdin;
+       } else if (*argv[1] == '-' ) {
                usage(dutmp_usage);
-       }
-
-       if (**(++argv) == 0) {
-               f = fopen(*(++argv), "r");
-               if (f < 0) {
-                       perror(*argv);
-                       exit(FALSE);
+       } else  {
+               f = fopen(argv[1], "r");
+               if (f == NULL) {
+                       fatalError(io_error, argv[1], strerror(errno));
                }
        }
 
-       while (fread(&ut, 1, sizeof(struct utmp), f)) {
-               // printf("%d:%d:%s:%s:%s:%s:%d:%d:%ld:%ld:%ld:%x\n", 
+       while (fread(&ut, sizeof(struct utmp), 1, f)) {
                printf("%d|%d|%s|%s|%s|%s|%d|%d|%ld|%ld|%ld|%x\n",
                           ut.ut_type, ut.ut_pid, ut.ut_line,
                           ut.ut_id, ut.ut_user, ut.ut_host,
diff --git a/mkdir.c b/mkdir.c
index 70fdbdfb5660e62f413125df3e1b80663c7c5247..b0a2d57d630526021043a63e5b78ad87602901c5 100644 (file)
--- a/mkdir.c
+++ b/mkdir.c
@@ -2,8 +2,7 @@
 /*
  * Mini mkdir implementation for busybox
  *
- *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 7cbbed44166be66c965fdc7bb573d5deb3ed18fd..1ee96f1c8bc1901a11467fdacf636d61815a9432 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini insmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 27fabc1feee08c760ec8d1fe02fa777dcbe5249a..9b72275cd264eb42864ed996aed61fbbee07cc02 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini lsmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index a0db4ae5ca234a2c3c610df60180027df221fbd0..d01725329e923fb7ca7cfcaad523732731232f7d 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini rmmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index e2d8cea1fd8968ac64b62c51dacddf8f089f68b9..15019e935e6c75156235c656fd7d1b4e9ed415c7 100644 (file)
@@ -2,7 +2,6 @@
 /*
  * Mini nslookup implementation for busybox
  *
- *
  * Copyright (C) 2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
@@ -174,4 +173,4 @@ int nslookup_main(int argc, char **argv)
        return 0;
 }
 
-/* $Id: nslookup.c,v 1.5 2000/02/18 21:34:17 erik Exp $ */
+/* $Id: nslookup.c,v 1.6 2000/04/13 01:18:56 erik Exp $ */
index e2d8cea1fd8968ac64b62c51dacddf8f089f68b9..15019e935e6c75156235c656fd7d1b4e9ed415c7 100644 (file)
@@ -2,7 +2,6 @@
 /*
  * Mini nslookup implementation for busybox
  *
- *
  * Copyright (C) 2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
@@ -174,4 +173,4 @@ int nslookup_main(int argc, char **argv)
        return 0;
 }
 
-/* $Id: nslookup.c,v 1.5 2000/02/18 21:34:17 erik Exp $ */
+/* $Id: nslookup.c,v 1.6 2000/04/13 01:18:56 erik Exp $ */
index 78a36fe9a412690c78ef666e3c2a166a387afb71..39594dbe527422c47ad906717fde3b505e668013 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini free implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index f01cf99e49718ef2bdbf5f3b8c741b5b7c2b2e31..1b3f4fb6ce5eef445f9d15a0afc800d390ded6a9 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini ps implementation(s) for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.  Written by Erik Andersen
+ * Copyright (C) 1999,2000 by Lineo, inc.  Written by Erik Andersen
  * <andersen@lineo.com>, <andersee@debian.org>
  *
  *
index 46797adb722d66b28e2e70425cd91e952c4ee1a9..af54158c967250c9e42dcaef5adedf226f83db69 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini uptime implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/ps.c b/ps.c
index f01cf99e49718ef2bdbf5f3b8c741b5b7c2b2e31..1b3f4fb6ce5eef445f9d15a0afc800d390ded6a9 100644 (file)
--- a/ps.c
+++ b/ps.c
@@ -2,7 +2,7 @@
 /*
  * Mini ps implementation(s) for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.  Written by Erik Andersen
+ * Copyright (C) 1999,2000 by Lineo, inc.  Written by Erik Andersen
  * <andersen@lineo.com>, <andersee@debian.org>
  *
  *
diff --git a/rm.c b/rm.c
index 683bf8bdff2a45e040af20d6aae8285d55828cc6..0cd795661a0bc31df6aa65544f846d59160f0585 100644 (file)
--- a/rm.c
+++ b/rm.c
@@ -3,7 +3,7 @@
  * Mini rm implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/rmdir.c b/rmdir.c
index f49569749632476d6a5d648fe67e23c8cf8f55a6..1d88de32279bf01fe75ea932fcdfd8cca7ade902 100644 (file)
--- a/rmdir.c
+++ b/rmdir.c
@@ -3,7 +3,7 @@
  * Mini rmdir implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/rmmod.c b/rmmod.c
index a0db4ae5ca234a2c3c610df60180027df221fbd0..d01725329e923fb7ca7cfcaad523732731232f7d 100644 (file)
--- a/rmmod.c
+++ b/rmmod.c
@@ -2,7 +2,7 @@
 /*
  * Mini rmmod implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/sed.c b/sed.c
index 2beb2a5888e4948dbde4582ab580aad6a1dcb58e..0d57a4a06e765ceb37dc17c820b847390d81c713 100644 (file)
--- a/sed.c
+++ b/sed.c
@@ -3,7 +3,7 @@
  * Mini sed implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
  *
  * Modifications for addresses and append command have been
index 9800dd1c6c235936490670b0edb6c8a92b97a649..1434c36f6298f631080298a8a14215b8e532f23c 100644 (file)
@@ -1,10 +1,12 @@
 /* vi: set sw=4 ts=4: */
 /*
- * Termios command line History and Editting for NetBSD sh (ash)
+ * Termios command line History and Editting, originally 
+ * intended for NetBSD sh (ash)
  * Copyright (c) 1999
  *      Main code:            Adam Rogoyski <rogoyski@cs.utexas.edu> 
  *      Etc:                  Dave Cinege <dcinege@psychosis.com>
- *      Adjusted for busybox: Erik Andersen <andersee@debian.org>
+ *  Majorly adjusted/re-written for busybox:
+ *                            Erik Andersen <andersee@debian.org>
  *
  * You may use this code as you wish, so long as the original author(s)
  * are attributed in any redistributions of the source code.
@@ -69,14 +71,15 @@ struct history {
 void
 cmdedit_setwidth(int w)
 {
-    if (w > 20) {
+       if (w > 20) {
                cmdedit_termw = w;
                cmdedit_scroll = w / 3;
-    } else {
+       } else {
                errorMsg("\n*** Error: minimum screen width is 21\n");
-    }
+       }
 }
 
+
 void cmdedit_reset_term(void)
 {
        if (reset_term)
@@ -339,60 +342,7 @@ void get_next_history(struct history **hp, char* command)
        free((*hp)->s);
        (*hp)->s = strdup(command);
        *hp = (*hp)->n;
-
-       cmdedit_redraw( NULL, hp->s, -2, -2); 
-}
-
-#if 0
-/* prompt : if !=NULL, print the prompt
- * command: the command line to be displayed
- * where  : where to display changes from.
- *          -1 for no change, -2 for new line
- * cursor : desired location for the cursor.
- *          -1 for Beginning of line.
- *          -2 for End of Line, 
- */
-static void
-cmdedit_redraw(char* prompt, char* command, int where, int cursor)
-{
-       static char* last_command;
-       int cmdedit_width;
-
-       if (where == -2) {
-               /* Rewrite the prompt and clean up static variables */
-               xwrite(outputFd, "\n", 1);
-               if (prompt) {
-                       strcpy(last_command, prompt);
-                       xwrite(outputFd, prompt, strlen(prompt));
-               } else {
-                       last_command[0] = '\0';
-                       xwrite(outputFd, "# ", 2);
-               }
-               cmdedit_width = cmdedit_termw - cmdedit_strlen(prompt);
-       } else if (strcmp(command, last_command) != 0) {
-               strcpy(last_command, prompt);
-       }
-
-       /* erase old command from command line */
-       len = strlen(command)-strlen(last_command);
-       while (len>0)
-               input_backspace(command, outputFd, &cursor, &len);
-       input_home(outputFd, &cursor);
-
-       /* Rewrite the command */
-       xwrite(outputFd, command+where, len);
-
-       /* Put the where it is supposed to be */
-       for (cursor=len; cursor > where; cursor--)
-               xwrite(outputFd, "\b", 1);
-
-       /* write new command */
-       strcpy(command, hp->s);
-       len = strlen(hp->s);
-       xwrite(outputFd, command+where, len);
-       cursor = len;
 }
-#endif
 
 /*
  * This function is used to grab a character buffer
diff --git a/sort.c b/sort.c
index e6894f6c3714ccdb6213614d6777fd296646d60d..6ee6f207e68f749482f656231428003c289446ba 100644 (file)
--- a/sort.c
+++ b/sort.c
@@ -3,7 +3,7 @@
  * Mini sort implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -320,4 +320,4 @@ int sort_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: sort.c,v 1.12 2000/03/04 21:19:32 erik Exp $ */
+/* $Id: sort.c,v 1.13 2000/04/13 01:18:56 erik Exp $ */
index dca40196626a51180fb641c5acba26a06101804a..aa961dac935aa820c32924e74ca82a2fdfeb82c1 100644 (file)
@@ -3,7 +3,7 @@
  * Mini swapon/swapoff implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index a9e0afcc8380e638e004947422ef7390e89cd771..db6d9bfc5883747493cc69be5ce8948afcf79c23 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini logger implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 5d6d2a0ddf3e02c87a85e3c7453266ea4dec9af0..357fa6d5ea9c141023902446b45d2f35b90b87a0 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini syslogd implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
@@ -37,6 +37,7 @@
 #include <sys/un.h>
 #include <time.h>
 #include <unistd.h>
+#include <limits.h>
 
 #define ksyslog klogctl
 extern int ksyslog(int type, char *buf, int len);
index 5d6d2a0ddf3e02c87a85e3c7453266ea4dec9af0..357fa6d5ea9c141023902446b45d2f35b90b87a0 100644 (file)
--- a/syslogd.c
+++ b/syslogd.c
@@ -2,7 +2,7 @@
 /*
  * Mini syslogd implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
@@ -37,6 +37,7 @@
 #include <sys/un.h>
 #include <time.h>
 #include <unistd.h>
+#include <limits.h>
 
 #define ksyslog klogctl
 extern int ksyslog(int type, char *buf, int len);
diff --git a/tar.c b/tar.c
index 732f26ddca21490572ad8651a32d25ba64967715..4eda4c61a12c6f44ea8eac6c28941934ac42f7cb 100644 (file)
--- a/tar.c
+++ b/tar.c
@@ -2,9 +2,9 @@
 /*
  * Mini tar implementation for busybox 
  *
- * Note, that as of BusyBox 0.43 tar has been completely rewritten from the
- * ground up.  It still has remnents of the old code lying about, but it pretty
- * different (i.e. cleaner, less global variables, etc)
+ * Note, that as of BusyBox-0.43, tar has been completely rewritten from the
+ * ground up.  It still has remnents of the old code lying about, but it is
+ * very different now (i.e. cleaner, less global variables, etc)
  *
  * Copyright (C) 2000 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
diff --git a/tee.c b/tee.c
index 018fe117bed77627a57df69cefcd4d5315c455de..95b75edd7f3ada361ed7b034996e8938f6e64913 100644 (file)
--- a/tee.c
+++ b/tee.c
@@ -3,7 +3,7 @@
  * Mini tee implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -131,4 +131,4 @@ int tee_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: tee.c,v 1.8 2000/03/23 01:09:18 erik Exp $ */
+/* $Id: tee.c,v 1.9 2000/04/13 01:18:56 erik Exp $ */
diff --git a/touch.c b/touch.c
index a0f21acdd3c23372e6d5217ab49c6e99a139ee21..f8972dcf6912ccdb42e07164716a92fef94b0e1e 100644 (file)
--- a/touch.c
+++ b/touch.c
@@ -3,7 +3,7 @@
  * Mini touch implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 7829673e0e67cf9ed98b9ce10d4577102c5a7c8d..5ae221b3a2810c66d76a9853e00488a44f6852c4 100644 (file)
@@ -3,7 +3,7 @@
  * Mini true/false implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 3f84aa296b096539afa15d3526864395627b3869..92eb0a61a05c16d09b0d6620fe5c46f4c2631747 100644 (file)
--- a/umount.c
+++ b/umount.c
@@ -3,7 +3,7 @@
  * Mini umount implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
diff --git a/uniq.c b/uniq.c
index 1e41eaacdf9418574b99d621c7a466f05eecb227..2eedb886de5e47207979de244b4e686e40bd7924 100644 (file)
--- a/uniq.c
+++ b/uniq.c
@@ -3,7 +3,7 @@
  * Mini uniq implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,2000 by Lineo, inc.
  * Written by John Beppu <beppu@lineo.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -190,4 +190,4 @@ int uniq_main(int argc, char **argv)
        exit(0);
 }
 
-/* $Id: uniq.c,v 1.7 2000/02/08 19:58:47 erik Exp $ */
+/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */
index 46797adb722d66b28e2e70425cd91e952c4ee1a9..af54158c967250c9e42dcaef5adedf226f83db69 100644 (file)
--- a/uptime.c
+++ b/uptime.c
@@ -2,7 +2,7 @@
 /*
  * Mini uptime implementation for busybox
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 7ca41733b36edc8b54e72b49186f96e2c6fb17c9..1f471dada23516958337856a567f6c330f8e47bf 100644 (file)
@@ -228,10 +228,11 @@ static void fbset_usage(void)
        fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n",
                        BB_VER, BB_BT);
 #endif
-       fprintf(stderr, "Usage: fbset [options] [mode]\n");
-       fprintf(stderr, "\tThe following options are recognized:\n");
+       fprintf(stderr, "Usage: fbset [options] [mode]\n\n");
+       fprintf(stderr, "Show and modify frame buffer device settings\n\n");
+       fprintf(stderr, "The following options are recognized:\n");
        for (i = 0; g_cmdoptions[i].name; i++)
-               fprintf(stderr, "\t\t%s\n", g_cmdoptions[i].name);
+               fprintf(stderr, "\t%s\n", g_cmdoptions[i].name);
        exit(-1);
 }
 
index dca40196626a51180fb641c5acba26a06101804a..aa961dac935aa820c32924e74ca82a2fdfeb82c1 100644 (file)
@@ -3,7 +3,7 @@
  * Mini swapon/swapoff implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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
index 3f84aa296b096539afa15d3526864395627b3869..92eb0a61a05c16d09b0d6620fe5c46f4c2631747 100644 (file)
@@ -3,7 +3,7 @@
  * Mini umount implementation for busybox
  *
  *
- * Copyright (C) 1999 by Lineo, inc.
+ * Copyright (C) 1999,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