TODO list for busybox in no particular order. Just because something
is listed here doesn't mean that it is going to be added to busybox,
or that doing so is even a good idea. It just means that I _might_ get
around to it some time. If you have any good ideas, please let me know.

* login/sulogin/passwd/getty/etc are part of tinylogin, and so are not
    needed or wanted in busybox (or else I'd have to link to libcrypt).

* We _were_ going to split networking apps into a new package called 
    netkit-tiny.  Per discussions on the mailing list, this isn't going
    to happen.  False alarm.  Sorry about the confusion.  

* The busybox shell, lash, is really too weak for serious use, although it is
    possible to run simple systems with it.  BusyBox 0.49 was supposed to have
    a new shell, updated to understand full Bourne grammer.  Well, that simply
    didn't happen in time for the release.  A rewrite is in progress that will
    result in a new shell that understands the full Bourne grammar.  This new
    shell is being championed by Larry Doolittle <ldoolitt@recycle.lbl.gov>, and
    could use your help.  Please see the work in progress at
	http://doolittle.faludi.com/~larry/parser.html

 -Erik

-----------

Possible apps to include some time:

* hwclock
* stty
* group/commonize strings, remove dups (for i18n, l10n)

-----------------------

Running the following:

    rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \
	sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq

reveals the list of all external (i.e. libc) things that BusyBox depends on.
It would be a very nice thing to reduce this list to an absolute minimum, to
reduce the footprint of busybox, especially when staticly linking with
libraries such as uClibc.

-----------------------

Compile with debugging on, run 'nm --size-sort ./busybox'
and then start with the biggest things and make them smaller...

-----------------------

 du.c probably ought to have an -x switch like GNU du does...

------------------------------------------------------------------
