summaryrefslogtreecommitdiff
path: root/coreutils/ls.c
diff options
context:
space:
mode:
authorRob Landley2006-06-20 17:43:01 +0000
committerRob Landley2006-06-20 17:43:01 +0000
commit2b8a05a77533419b098a990f065a879553de5fe0 (patch)
tree635dc93791dccdd92ca17f208a9f608933f1de4a /coreutils/ls.c
parent8437ede6c2ada03f48709e81e43a8195146b420e (diff)
downloadbusybox-2b8a05a77533419b098a990f065a879553de5fe0.zip
busybox-2b8a05a77533419b098a990f065a879553de5fe0.tar.gz
I broke allbareconfig with half-finished cleanups I'd forgotten weren't done.
Got both to a decent stopping point. (There's a lot more cleanup to do on ls.c but now is not the time...)
Diffstat (limited to 'coreutils/ls.c')
-rw-r--r--coreutils/ls.c41
1 files changed, 18 insertions, 23 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 4a20b33..de8405d 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -101,14 +101,10 @@ enum {
#define SORT_MASK (7U<<28)
-#ifdef CONFIG_FEATURE_LS_TIMESTAMPS
/* which of the three times will be used */
-#define TIME_MOD 0
-#define TIME_CHANGE (1U<<23)
-#define TIME_ACCESS (1U<<24)
-
-#define TIME_MASK (3U<<23)
-#endif
+#define TIME_CHANGE ((1U<<23) * ENABLE_FEATURE_LS_TIMESTAMPS)
+#define TIME_ACCESS ((1U<<24) * ENABLE_FEATURE_LS_TIMESTAMPS)
+#define TIME_MASK ((3U<<23) * ENABLE_FEATURE_LS_TIMESTAMPS)
#ifdef CONFIG_FEATURE_LS_FOLLOWLINKS
#define FOLLOW_LINKS (1U<<25)
@@ -507,19 +503,21 @@ static void showdirs(struct dnode **dn, int ndirs, int first)
/* list all files at this level */
if (ENABLE_FEATURE_LS_SORTFILES) dnsort(subdnp, nfiles);
showfiles(subdnp, nfiles);
-#ifdef CONFIG_FEATURE_LS_RECURSIVE
- if (all_fmt & DISP_RECURSIVE) {
- /* recursive- list the sub-dirs */
- dnd = splitdnarray(subdnp, nfiles, SPLIT_SUBDIR);
- dndirs = countsubdirs(subdnp, nfiles);
- if (dndirs > 0) {
- if (ENABLE_FEATURE_LS_SORTFILES) dnsort(dnd, dndirs);
- showdirs(dnd, dndirs, 0);
- free(dnd); /* free the array of dnode pointers to the dirs */
+ if (ENABLE_FEATURE_LS_RECURSIVE) {
+ if (all_fmt & DISP_RECURSIVE) {
+ /* recursive- list the sub-dirs */
+ dnd = splitdnarray(subdnp, nfiles, SPLIT_SUBDIR);
+ dndirs = countsubdirs(subdnp, nfiles);
+ if (dndirs > 0) {
+ if (ENABLE_FEATURE_LS_SORTFILES) dnsort(dnd, dndirs);
+ showdirs(dnd, dndirs, 0);
+ /* free the array of dnode pointers to the dirs */
+ free(dnd);
+ }
}
+ /* free the dnodes and the fullname mem */
+ dfree(subdnp, nfiles);
}
- dfree(subdnp, nfiles); /* free the dnodes and the fullname mem */
-#endif
}
}
}
@@ -825,7 +823,6 @@ static const char ls_options[]="Cadil1gnsxAk" \
#define STYLE_MASK_TRIGGER STYLE_MASK
#define SORT_MASK_TRIGGER SORT_MASK
#define DISP_MASK_TRIGGER DISP_ROWS
-#define TIME_MASK_TRIGGER TIME_MASK
static const unsigned opt_flags[] = {
LIST_SHORT | STYLE_COLUMNS, /* C */
@@ -904,7 +901,7 @@ int ls_main(int argc, char **argv)
char *color_opt;
#endif
- all_fmt = LIST_SHORT | (ENABLE_FEATURE_LS_TIMESTAMPS * TIME_MOD) |
+ all_fmt = LIST_SHORT |
(ENABLE_FEATURE_LS_SORTFILES * (SORT_NAME | SORT_ORDER_FORWARD));
#ifdef CONFIG_FEATURE_AUTOWIDTH
@@ -954,11 +951,9 @@ int ls_main(int argc, char **argv)
if (flags & DISP_MASK_TRIGGER) {
all_fmt &= ~DISP_MASK;
}
-#ifdef CONFIG_FEATURE_LS_TIMESTAMPS
- if (flags & TIME_MASK_TRIGGER) {
+ if (flags & TIME_MASK) {
all_fmt &= ~TIME_MASK;
}
-#endif
if (flags & LIST_CONTEXT) {
all_fmt |= STYLE_SINGLE;
}