*: refactor handling of archived files. "tar f file.tar.lzma" now works too.

function                                             old     new   delta
unpack_Z_stream                                        -    1229   +1229
open_zipped                                            -     176    +176
unpack_bz2_stream_prime                                -      60     +60
tar_main                                             642     677     +35
find_main                                            406     418     +12
sv_main                                             1222    1233     +11
decode_format_string                                 829     837      +8
cmp_main                                             641     649      +8
popstring                                            134     140      +6
filter_accept_list_reassign                          120     125      +5
parse_and_put_prompt                                 800     804      +4
passwd_main                                         1053    1049      -4
make_new_name_gunzip                                 119     114      -5
rpm_main                                            1688    1670     -18
prepare                                              302     283     -19
xmalloc_open_zipped_read_close                       135      61     -74
uncompress                                          1229       -   -1229
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 8/5 up/down: 1554/-1349)        Total: 205 bytes

diff --git a/TODO_config_nommu b/TODO_config_nommu
index 308e5d7..90bd5b2 100644
--- a/TODO_config_nommu
+++ b/TODO_config_nommu
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Busybox version: 1.11.0.svn
-# Mon Apr 21 23:20:35 2008
+# Busybox version: 1.12.0.svn
+# Tue Aug  5 14:43:04 2008
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -13,6 +13,7 @@
 # General Configuration
 #
 CONFIG_DESKTOP=y
+CONFIG_FEATURE_ASSUME_UNICODE=y
 CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
 # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
 # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
@@ -38,21 +39,25 @@
 # Build Options
 #
 # CONFIG_STATIC is not set
+# CONFIG_PIE is not set
 CONFIG_NOMMU=y
 # CONFIG_BUILD_LIBBUSYBOX is not set
 # CONFIG_FEATURE_INDIVIDUAL is not set
 # CONFIG_FEATURE_SHARED_BUSYBOX is not set
 CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
 
 #
 # Debugging Options
 #
 # CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
 # CONFIG_WERROR is not set
 CONFIG_NO_DEBUG_LIB=y
 # CONFIG_DMALLOC is not set
 # CONFIG_EFENCE is not set
 CONFIG_INCLUDE_SUSv2=y
+# CONFIG_PARSE is not set
 
 #
 # Installation Options
@@ -86,6 +91,7 @@
 CONFIG_FEATURE_COPYBUF_KB=4
 CONFIG_MONOTONIC_SYSCALL=y
 CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
 
 #
 # Applets
@@ -94,6 +100,10 @@
 #
 # Archival Utilities
 #
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
 CONFIG_AR=y
 CONFIG_FEATURE_AR_LONG_FILENAMES=y
 CONFIG_BUNZIP2=y
@@ -104,17 +114,11 @@
 CONFIG_DPKG_DEB=y
 CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY=y
 CONFIG_GUNZIP=y
-CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y
 CONFIG_GZIP=y
 CONFIG_RPM2CPIO=y
 CONFIG_RPM=y
-CONFIG_FEATURE_RPM_BZ2=y
 CONFIG_TAR=y
 CONFIG_FEATURE_TAR_CREATE=y
-CONFIG_FEATURE_TAR_GZIP=y
-CONFIG_FEATURE_TAR_BZIP2=y
-CONFIG_FEATURE_TAR_LZMA=y
-CONFIG_FEATURE_TAR_COMPRESS=y
 CONFIG_FEATURE_TAR_AUTODETECT=y
 CONFIG_FEATURE_TAR_FROM=y
 CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
@@ -128,17 +132,6 @@
 CONFIG_UNZIP=y
 
 #
-# Common options for cpio and tar
-#
-
-#
-# Common options for dpkg and dpkg_deb
-#
-CONFIG_FEATURE_DEB_TAR_GZ=y
-CONFIG_FEATURE_DEB_TAR_BZ2=y
-CONFIG_FEATURE_DEB_TAR_LZMA=y
-
-#
 # Coreutils
 #
 CONFIG_BASENAME=y
@@ -216,6 +209,7 @@
 CONFIG_SHA1SUM=y
 CONFIG_SLEEP=y
 CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
 CONFIG_SORT=y
 CONFIG_FEATURE_SORT_BIG=y
 CONFIG_SPLIT=y
@@ -386,8 +380,9 @@
 # Login/Password Management Utilities
 #
 CONFIG_FEATURE_SHADOWPASSWDS=y
-CONFIG_USE_BB_SHADOW=y
 CONFIG_USE_BB_PWD_GRP=y
+CONFIG_USE_BB_SHADOW=y
+CONFIG_USE_BB_CRYPT=y
 CONFIG_ADDGROUP=y
 CONFIG_FEATURE_ADDUSER_TO_GROUP=y
 CONFIG_DELGROUP=y
@@ -424,25 +419,30 @@
 #
 # Linux Module Utilities
 #
-CONFIG_INSMOD=y
-CONFIG_FEATURE_INSMOD_VERSION_CHECKING=y
-CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
-CONFIG_FEATURE_INSMOD_LOADINKMEM=y
-CONFIG_FEATURE_INSMOD_LOAD_MAP=y
-CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
-CONFIG_RMMOD=y
-CONFIG_LSMOD=y
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-CONFIG_MODPROBE=y
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-CONFIG_FEATURE_2_4_MODULES=y
-CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_MODPROBE_SMALL=y
+CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_DEPMOD is not set
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+# CONFIG_FEATURE_DEPMOD_ALIAS is not set
+# CONFIG_INSMOD is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS is not set
+# CONFIG_FEATURE_MODPROBE_FANCY_ALIAS is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_2_6_MODULES is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
 # CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
 
 #
@@ -525,6 +525,7 @@
 CONFIG_SCRIPT=y
 CONFIG_SETARCH=y
 CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
 CONFIG_SWITCH_ROOT=y
 CONFIG_UMOUNT=y
 CONFIG_FEATURE_UMOUNT_ALL=y
@@ -562,7 +563,10 @@
 CONFIG_EJECT=y
 CONFIG_FEATURE_EJECT_SCSI=y
 CONFIG_FBSPLASH=y
+CONFIG_INOTIFYD=y
 CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
 CONFIG_LESS=y
 CONFIG_FEATURE_LESS_MAXLINES=9999999
 CONFIG_FEATURE_LESS_BRACKETS=y
@@ -590,7 +594,6 @@
 CONFIG_RX=y
 CONFIG_SETSID=y
 CONFIG_STRINGS=y
-CONFIG_SYMLINKS=y
 CONFIG_TASKSET=y
 CONFIG_FEATURE_TASKSET_FANCY=y
 CONFIG_TIME=y
@@ -675,6 +678,7 @@
 CONFIG_NC_EXTRA=y
 CONFIG_NETSTAT=y
 CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
 CONFIG_NSLOOKUP=y
 CONFIG_PING=y
 CONFIG_PING6=y
@@ -765,6 +769,7 @@
 # CONFIG_ASH_MATH_SUPPORT_64 is not set
 # CONFIG_ASH_GETOPTS is not set
 # CONFIG_ASH_BUILTIN_ECHO is not set
+# CONFIG_ASH_BUILTIN_PRINTF is not set
 # CONFIG_ASH_BUILTIN_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
@@ -778,6 +783,7 @@
 CONFIG_HUSH_TICK=y
 CONFIG_HUSH_IF=y
 CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
 CONFIG_LASH=y
 CONFIG_MSH=y