aboutsummaryrefslogtreecommitdiff
path: root/coreutils/ls.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2011-05-13 17:55:08 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2011-05-13 17:55:08 +0200
commit8dd29da2c667b6c9ae7381096320b9e31d3a50e2 (patch)
tree49781a8618ac5622ea94b0a10156543e0a90e404 /coreutils/ls.c
parent4029e21b37a18bea86dd438d4a9138789ecdce6c (diff)
downloadbusybox-w32-8dd29da2c667b6c9ae7381096320b9e31d3a50e2.tar.gz
busybox-w32-8dd29da2c667b6c9ae7381096320b9e31d3a50e2.tar.bz2
busybox-w32-8dd29da2c667b6c9ae7381096320b9e31d3a50e2.zip
ls: code shrink
function old new delta sort_and_display_files - 427 +427 scan_and_display_dirs_recur 497 488 -9 ls_main 765 735 -30 display_files 422 - -422 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/2 up/down: 427/-461) Total: -34 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/ls.c')
-rw-r--r--coreutils/ls.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 907955077..e7b2e39e1 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -910,8 +910,15 @@ static void dnsort(struct dnode **dn, int size)
910{ 910{
911 qsort(dn, size, sizeof(*dn), sortcmp); 911 qsort(dn, size, sizeof(*dn), sortcmp);
912} 912}
913
914static void sort_and_display_files(struct dnode **dn, unsigned nfiles)
915{
916 dnsort(dn, nfiles);
917 display_files(dn, nfiles);
918}
913#else 919#else
914#define dnsort(dn, size) ((void)0) 920# define dnsort(dn, size) ((void)0)
921# define sort_and_display_files(dn, nfiles) display_files(dn, nfiles)
915#endif 922#endif
916 923
917/* Returns NULL-terminated malloced vector of pointers (or NULL) */ 924/* Returns NULL-terminated malloced vector of pointers (or NULL) */
@@ -1022,8 +1029,7 @@ static void scan_and_display_dirs_recur(struct dnode **dn, int first)
1022#endif 1029#endif
1023 if (nfiles > 0) { 1030 if (nfiles > 0) {
1024 /* list all files at this level */ 1031 /* list all files at this level */
1025 dnsort(subdnp, nfiles); 1032 sort_and_display_files(subdnp, nfiles);
1026 display_files(subdnp, nfiles);
1027 1033
1028 if (ENABLE_FEATURE_LS_RECURSIVE 1034 if (ENABLE_FEATURE_LS_RECURSIVE
1029 && (G.all_fmt & DISP_RECURSIVE) 1035 && (G.all_fmt & DISP_RECURSIVE)
@@ -1216,16 +1222,14 @@ int ls_main(int argc UNUSED_PARAM, char **argv)
1216 } 1222 }
1217 1223
1218 if (G.all_fmt & DISP_NOLIST) { 1224 if (G.all_fmt & DISP_NOLIST) {
1219 dnsort(dnp, nfiles); 1225 sort_and_display_files(dnp, nfiles);
1220 display_files(dnp, nfiles);
1221 } else { 1226 } else {
1222 dnd = splitdnarray(dnp, SPLIT_DIR); 1227 dnd = splitdnarray(dnp, SPLIT_DIR);
1223 dnf = splitdnarray(dnp, SPLIT_FILE); 1228 dnf = splitdnarray(dnp, SPLIT_FILE);
1224 dndirs = count_dirs(dnp, SPLIT_DIR); 1229 dndirs = count_dirs(dnp, SPLIT_DIR);
1225 dnfiles = nfiles - dndirs; 1230 dnfiles = nfiles - dndirs;
1226 if (dnfiles > 0) { 1231 if (dnfiles > 0) {
1227 dnsort(dnf, dnfiles); 1232 sort_and_display_files(dnf, dnfiles);
1228 display_files(dnf, dnfiles);
1229 if (ENABLE_FEATURE_CLEAN_UP) 1233 if (ENABLE_FEATURE_CLEAN_UP)
1230 free(dnf); 1234 free(dnf);
1231 } 1235 }