--- /dev/null
+diff -urpN busybox-1.14.2/coreutils/ls.c busybox-1.14.2-ls/coreutils/ls.c
+--- busybox-1.14.2/coreutils/ls.c 2009-06-22 00:40:29.000000000 +0200
++++ busybox-1.14.2-ls/coreutils/ls.c 2009-07-03 12:46:16.000000000 +0200
+@@ -144,8 +144,7 @@ static const char ls_options[] ALIGN1 =
+ USE_FEATURE_LS_FOLLOWLINKS("L") /* 1, 24 */
+ USE_FEATURE_LS_RECURSIVE("R") /* 1, 25 */
+ USE_FEATURE_HUMAN_READABLE("h") /* 1, 26 */
+- USE_SELINUX("K") /* 1, 27 */
+- USE_SELINUX("Z") /* 1, 28 */
++ USE_SELINUX("KZ") /* 2, 28 */
+ USE_FEATURE_AUTOWIDTH("T:w:") /* 2, 30 */
+ ;
+ enum {
+@@ -162,6 +161,16 @@ enum {
+ OPT_Q = (1 << 10),
+ //OPT_A = (1 << 11),
+ //OPT_k = (1 << 12),
++ OPTBIT_color = 13
++ + 4 * ENABLE_FEATURE_LS_TIMESTAMPS
++ + 4 * ENABLE_FEATURE_LS_SORTFILES
++ + 2 * ENABLE_FEATURE_LS_FILETYPES
++ + 1 * ENABLE_FEATURE_LS_FOLLOWLINKS
++ + 1 * ENABLE_FEATURE_LS_RECURSIVE
++ + 1 * ENABLE_FEATURE_HUMAN_READABLE
++ + 2 * ENABLE_SELINUX
++ + 2 * ENABLE_FEATURE_AUTOWIDTH,
++ OPT_color = 1 << OPTBIT_color,
+ };
+
+ enum {
+@@ -889,16 +898,6 @@ static int list_single(const struct dnod
+ }
+
+
+-/* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
+-#if ENABLE_FEATURE_LS_COLOR
+-/* long option entry used only for --color, which has no short option
+- * equivalent */
+-static const char ls_color_opt[] ALIGN1 =
+- "color\0" Optional_argument "\xff" /* no short equivalent */
+- ;
+-#endif
+-
+-
+ int ls_main(int argc UNUSED_PARAM, char **argv)
+ {
+ struct dnode **dnd;
+@@ -911,8 +910,25 @@ int ls_main(int argc UNUSED_PARAM, char
+ int dnfiles;
+ int dndirs;
+ int i;
++#if ENABLE_FEATURE_LS_COLOR
++ /* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
++ /* coreutils 6.10:
++ * # ls --color=BOGUS
++ * ls: invalid argument 'BOGUS' for '--color'
++ * Valid arguments are:
++ * 'always', 'yes', 'force'
++ * 'never', 'no', 'none'
++ * 'auto', 'tty', 'if-tty'
++ * (and substrings: "--color=alwa" work too)
++ */
++ static const char ls_longopts[] ALIGN1 =
++ "color\0" Optional_argument "\xff"; /* no short equivalent */
++ static const char color_str[] ALIGN1 =
++ "always\0""yes\0""force\0"
++ "auto\0""tty\0""if-tty\0";
+ /* need to initialize since --color has _an optional_ argument */
+- USE_FEATURE_LS_COLOR(const char *color_opt = "always";)
++ const char *color_opt = color_str; /* "always" */
++#endif
+
+ INIT_G();
+
+@@ -927,7 +943,7 @@ int ls_main(int argc UNUSED_PARAM, char
+ #endif
+
+ /* process options */
+- USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;)
++ USE_FEATURE_LS_COLOR(applet_long_options = ls_longopts;)
+ #if ENABLE_FEATURE_AUTOWIDTH
+ opt_complementary = "T+:w+"; /* -T N, -w N */
+ opt = getopt32(argv, ls_options, &tabstops, &terminal_width
+@@ -966,13 +982,20 @@ int ls_main(int argc UNUSED_PARAM, char
+ if (!p || (p[0] && strcmp(p, "none") != 0))
+ show_color = 1;
+ }
+- if (opt & (1 << i)) { /* next flag after short options */
+- if (strcmp("always", color_opt) == 0)
+- show_color = 1;
+- else if (strcmp("never", color_opt) == 0)
++ if (opt & OPT_color) {
++ if (color_opt[0] == 'n')
+ show_color = 0;
+- else if (strcmp("auto", color_opt) == 0 && isatty(STDOUT_FILENO))
+- show_color = 1;
++ else switch (index_in_substrings(color_str, color_opt)) {
++ case 3:
++ case 4:
++ case 5:
++ if (isatty(STDOUT_FILENO)) {
++ case 0:
++ case 1:
++ case 2:
++ show_color = 1;
++ }
++ }
+ }
+ #endif
+
+diff -urpN busybox-1.14.2/testsuite/ls/ls-1-works busybox-1.14.2-ls/testsuite/ls/ls-1-works
+--- busybox-1.14.2/testsuite/ls/ls-1-works 2009-06-22 00:32:00.000000000 +0200
++++ busybox-1.14.2-ls/testsuite/ls/ls-1-works 2009-07-02 14:28:45.000000000 +0200
+@@ -1,4 +1,4 @@
+ [ -n "$d" ] || d=..
+-ls -1 "$d" > logfile.gnu
+-busybox ls -1 "$d" > logfile.bb
+-cmp logfile.gnu logfile.bb
++LC_ALL=C ls -1 "$d" > logfile.gnu
++LC_ALL=C busybox ls -1 "$d" > logfile.bb
++diff -ubw logfile.gnu logfile.bb
+diff -urpN busybox-1.14.2/testsuite/ls/ls-h-works busybox-1.14.2-ls/testsuite/ls/ls-h-works
+--- busybox-1.14.2/testsuite/ls/ls-h-works 2009-06-22 00:32:00.000000000 +0200
++++ busybox-1.14.2-ls/testsuite/ls/ls-h-works 2009-07-02 14:28:45.000000000 +0200
+@@ -1,4 +1,4 @@
+ [ -n "$d" ] || d=..
+-ls -h "$d" > logfile.gnu
+-busybox ls -h "$d" > logfile.bb
+-cmp logfile.gnu logfile.bb
++LC_ALL=C ls -h "$d" > logfile.gnu
++LC_ALL=C busybox ls -h "$d" > logfile.bb
++diff -ubw logfile.gnu logfile.bb
+diff -urpN busybox-1.14.2/testsuite/ls/ls-l-works busybox-1.14.2-ls/testsuite/ls/ls-l-works
+--- busybox-1.14.2/testsuite/ls/ls-l-works 2009-06-22 00:32:00.000000000 +0200
++++ busybox-1.14.2-ls/testsuite/ls/ls-l-works 2009-07-02 14:28:45.000000000 +0200
+@@ -1,4 +1,4 @@
+ [ -n "$d" ] || d=..
+ LC_ALL=C ls -l "$d" > logfile.gnu
+-busybox ls -l "$d" > logfile.bb
+-diff -w logfile.gnu logfile.bb
++LC_ALL=C busybox ls -l "$d" > logfile.bb
++diff -ubw logfile.gnu logfile.bb
+diff -urpN busybox-1.14.2/testsuite/ls/ls-s-works busybox-1.14.2-ls/testsuite/ls/ls-s-works
+--- busybox-1.14.2/testsuite/ls/ls-s-works 2009-06-22 00:32:00.000000000 +0200
++++ busybox-1.14.2-ls/testsuite/ls/ls-s-works 2009-07-02 14:28:45.000000000 +0200
+@@ -1,4 +1,4 @@
+ [ -n "$d" ] || d=..
+ LC_ALL=C ls -1s "$d" > logfile.gnu
+-busybox ls -1s "$d" > logfile.bb
+-cmp logfile.gnu logfile.bb
++LC_ALL=C busybox ls -1s "$d" > logfile.bb
++diff -ubw logfile.gnu logfile.bb
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
# CONFIG_LFS is not set
CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
#
# Debugging Options
# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
# CONFIG_SEQ is not set
# CONFIG_SHA1SUM is not set
+# CONFIG_SHA256SUM is not set
+# CONFIG_SHA512SUM is not set
# CONFIG_SLEEP is not set
# CONFIG_FEATURE_FANCY_SLEEP is not set
# CONFIG_SORT is not set
CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
+# CONFIG_MKFS_VFAT is not set
# CONFIG_FEATURE_MINIX2 is not set
# CONFIG_GETOPT is not set
# CONFIG_HEXDUMP is not set
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
+# CONFIG_ACPID is not set
#
# Common options for mount/umount
# CONFIG_EJECT is not set
# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set
+# CONFIG_FLASH_ERASEALL is not set
+# CONFIG_IONICE is not set
# CONFIG_INOTIFYD is not set
# CONFIG_LAST is not set
# CONFIG_LESS is not set
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
# CONFIG_TIME is not set
+# CONFIG_TIMEOUT is not set
# CONFIG_TTYSIZE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_DNSD is not set
# CONFIG_ETHER_WAKE is not set
# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPD is not set
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
# CONFIG_ZCIP is not set
# CONFIG_TCPSVD is not set
# CONFIG_UDPSVD is not set
+# CONFIG_TUNCTL is not set
#
# Process Utilities
CONFIG_FEATURE_SH_STANDALONE=y
# CONFIG_FEATURE_SH_NOFORK is not set
# CONFIG_CTTYHACK is not set
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
#
# System Logging Utilities
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
#
# Debugging Options
CONFIG_BZIP2=y
CONFIG_CPIO=y
CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=y
CONFIG_DPKG=y
CONFIG_DPKG_DEB=y
CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY=y
CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y
CONFIG_SEQ=y
CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
CONFIG_SLEEP=y
CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_FEATURE_FLOAT_SLEEP=y
#
# Linux System Utilities
#
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
CONFIG_BLKID=y
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
CONFIG_FREERAMDISK=y
CONFIG_FSCK_MINIX=y
CONFIG_MKFS_MINIX=y
+CONFIG_MKFS_VFAT=y
#
# Minix filesystem support
CONFIG_CROND=y
# CONFIG_FEATURE_CROND_D is not set
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_CRONTAB=y
CONFIG_DC=y
CONFIG_FEATURE_DC_LIBM=y
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
CONFIG_FBSPLASH=y
+# CONFIG_FLASH_ERASEALL is not set
+CONFIG_IONICE=y
CONFIG_INOTIFYD=y
CONFIG_LAST=y
# CONFIG_FEATURE_LAST_SMALL is not set
CONFIG_TASKSET=y
CONFIG_FEATURE_TASKSET_FANCY=y
CONFIG_TIME=y
+CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
CONFIG_WATCHDOG=y
CONFIG_DNSD=y
CONFIG_ETHER_WAKE=y
CONFIG_FAKEIDENTD=y
+CONFIG_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
CONFIG_FEATURE_UDHCP_RFC3397=y
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
CONFIG_VCONFIG=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_ZCIP=y
CONFIG_TCPSVD=y
CONFIG_UDPSVD=y
+CONFIG_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
#
# Print Utilities
CONFIG_HUSH_IF=y
CONFIG_HUSH_LOOPS=y
CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_EXPORT_N=y
CONFIG_LASH=y
CONFIG_MSH=y
CONFIG_FEATURE_SH_STANDALONE=y
CONFIG_FEATURE_SH_NOFORK=y
CONFIG_CTTYHACK=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
#
# System Logging Utilities