diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-07-02 14:25:51 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-07-02 14:25:51 +0200 |
| commit | 5508363fd05ecf71bc1db887256da1c0ae960c8d (patch) | |
| tree | c74565b5172423df2601e58105c9188b702852d1 | |
| parent | 5478aaf5b8f9a90ab37d9de89fc893886f9580db (diff) | |
| download | busybox-w32-5508363fd05ecf71bc1db887256da1c0ae960c8d.tar.gz busybox-w32-5508363fd05ecf71bc1db887256da1c0ae960c8d.tar.bz2 busybox-w32-5508363fd05ecf71bc1db887256da1c0ae960c8d.zip | |
ls: fix --color handling. Closes bug 435.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | coreutils/ls.c | 15 | ||||
| -rw-r--r-- | testsuite/ls/ls-1-works | 6 | ||||
| -rw-r--r-- | testsuite/ls/ls-h-works | 6 | ||||
| -rw-r--r-- | testsuite/ls/ls-l-works | 4 | ||||
| -rw-r--r-- | testsuite/ls/ls-s-works | 4 |
5 files changed, 22 insertions, 13 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c index 379b0f94f..db42601e2 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
| @@ -144,8 +144,7 @@ static const char ls_options[] ALIGN1 = | |||
| 144 | IF_FEATURE_LS_FOLLOWLINKS("L") /* 1, 24 */ | 144 | IF_FEATURE_LS_FOLLOWLINKS("L") /* 1, 24 */ |
| 145 | IF_FEATURE_LS_RECURSIVE("R") /* 1, 25 */ | 145 | IF_FEATURE_LS_RECURSIVE("R") /* 1, 25 */ |
| 146 | IF_FEATURE_HUMAN_READABLE("h") /* 1, 26 */ | 146 | IF_FEATURE_HUMAN_READABLE("h") /* 1, 26 */ |
| 147 | IF_SELINUX("K") /* 1, 27 */ | 147 | IF_SELINUX("KZ") /* 2, 28 */ |
| 148 | IF_SELINUX("Z") /* 1, 28 */ | ||
| 149 | IF_FEATURE_AUTOWIDTH("T:w:") /* 2, 30 */ | 148 | IF_FEATURE_AUTOWIDTH("T:w:") /* 2, 30 */ |
| 150 | ; | 149 | ; |
| 151 | enum { | 150 | enum { |
| @@ -162,6 +161,16 @@ enum { | |||
| 162 | OPT_Q = (1 << 10), | 161 | OPT_Q = (1 << 10), |
| 163 | //OPT_A = (1 << 11), | 162 | //OPT_A = (1 << 11), |
| 164 | //OPT_k = (1 << 12), | 163 | //OPT_k = (1 << 12), |
| 164 | OPTBIT_color = 13 | ||
| 165 | + 4 * ENABLE_FEATURE_LS_TIMESTAMPS | ||
| 166 | + 4 * ENABLE_FEATURE_LS_SORTFILES | ||
| 167 | + 2 * ENABLE_FEATURE_LS_FILETYPES | ||
| 168 | + 1 * ENABLE_FEATURE_LS_FOLLOWLINKS | ||
| 169 | + 1 * ENABLE_FEATURE_LS_RECURSIVE | ||
| 170 | + 1 * ENABLE_FEATURE_HUMAN_READABLE | ||
| 171 | + 2 * ENABLE_SELINUX | ||
| 172 | + 2 * ENABLE_FEATURE_AUTOWIDTH, | ||
| 173 | OPT_color = 1 << OPTBIT_color, | ||
| 165 | }; | 174 | }; |
| 166 | 175 | ||
| 167 | enum { | 176 | enum { |
| @@ -966,7 +975,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv) | |||
| 966 | if (!p || (p[0] && strcmp(p, "none") != 0)) | 975 | if (!p || (p[0] && strcmp(p, "none") != 0)) |
| 967 | show_color = 1; | 976 | show_color = 1; |
| 968 | } | 977 | } |
| 969 | if (opt & (1 << i)) { /* next flag after short options */ | 978 | if (opt & OPT_color) { /* next flag after short options */ |
| 970 | if (strcmp("always", color_opt) == 0) | 979 | if (strcmp("always", color_opt) == 0) |
| 971 | show_color = 1; | 980 | show_color = 1; |
| 972 | else if (strcmp("never", color_opt) == 0) | 981 | else if (strcmp("never", color_opt) == 0) |
diff --git a/testsuite/ls/ls-1-works b/testsuite/ls/ls-1-works index 8ad484fc3..885694920 100644 --- a/testsuite/ls/ls-1-works +++ b/testsuite/ls/ls-1-works | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | [ -n "$d" ] || d=.. | 1 | [ -n "$d" ] || d=.. |
| 2 | ls -1 "$d" > logfile.gnu | 2 | LC_ALL=C ls -1 "$d" > logfile.gnu |
| 3 | busybox ls -1 "$d" > logfile.bb | 3 | LC_ALL=C busybox ls -1 "$d" > logfile.bb |
| 4 | cmp logfile.gnu logfile.bb | 4 | diff -ubw logfile.gnu logfile.bb |
diff --git a/testsuite/ls/ls-h-works b/testsuite/ls/ls-h-works index 7331262c9..0c83f7cc5 100644 --- a/testsuite/ls/ls-h-works +++ b/testsuite/ls/ls-h-works | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | [ -n "$d" ] || d=.. | 1 | [ -n "$d" ] || d=.. |
| 2 | ls -h "$d" > logfile.gnu | 2 | LC_ALL=C ls -h "$d" > logfile.gnu |
| 3 | busybox ls -h "$d" > logfile.bb | 3 | LC_ALL=C busybox ls -h "$d" > logfile.bb |
| 4 | cmp logfile.gnu logfile.bb | 4 | diff -ubw logfile.gnu logfile.bb |
diff --git a/testsuite/ls/ls-l-works b/testsuite/ls/ls-l-works index efc2b196e..1bad34bcf 100644 --- a/testsuite/ls/ls-l-works +++ b/testsuite/ls/ls-l-works | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | [ -n "$d" ] || d=.. | 1 | [ -n "$d" ] || d=.. |
| 2 | LC_ALL=C ls -l "$d" > logfile.gnu | 2 | LC_ALL=C ls -l "$d" > logfile.gnu |
| 3 | busybox ls -l "$d" > logfile.bb | 3 | LC_ALL=C busybox ls -l "$d" > logfile.bb |
| 4 | diff -w logfile.gnu logfile.bb | 4 | diff -ubw logfile.gnu logfile.bb |
diff --git a/testsuite/ls/ls-s-works b/testsuite/ls/ls-s-works index 6c8bf3627..0a9d7526f 100644 --- a/testsuite/ls/ls-s-works +++ b/testsuite/ls/ls-s-works | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | [ -n "$d" ] || d=.. | 1 | [ -n "$d" ] || d=.. |
| 2 | LC_ALL=C ls -1s "$d" > logfile.gnu | 2 | LC_ALL=C ls -1s "$d" > logfile.gnu |
| 3 | busybox ls -1s "$d" > logfile.bb | 3 | LC_ALL=C busybox ls -1s "$d" > logfile.bb |
| 4 | cmp logfile.gnu logfile.bb | 4 | diff -ubw logfile.gnu logfile.bb |
