diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-06-30 08:04:05 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-06-30 08:04:05 +0000 |
commit | dc757aa16ce53d9784fa3953b0c3762dfa8ccda9 (patch) | |
tree | 2eee7a83dcbd38fcfbcdbec8b5d52f4baff3326f /coreutils/ls.c | |
parent | f7d07b1723c15ee818f0c1f5cce96c55274024a6 (diff) | |
download | busybox-w32-dc757aa16ce53d9784fa3953b0c3762dfa8ccda9.tar.gz busybox-w32-dc757aa16ce53d9784fa3953b0c3762dfa8ccda9.tar.bz2 busybox-w32-dc757aa16ce53d9784fa3953b0c3762dfa8ccda9.zip |
introduce and use bb_basename()
function old new delta
bb_basename - 26 +26
sv_main 1226 1225 -1
passwd_main 1985 1983 -2
showdirs 482 478 -4
sendCgi 1811 1807 -4
make_device 1354 1350 -4
handleIncoming 2443 2439 -4
func_name 82 78 -4
service_name 2292 2285 -7
main 909 901 -8
cmp_main 555 547 -8
test_main 434 422 -12
act 228 216 -12
find_pair 180 164 -16
rmmod_main 298 280 -18
find_pid_by_name 156 134 -22
modprobe_main 1606 1576 -30
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/16 up/down: 26/-156) Total: -130 bytes
text data bss dec hex filename
734933 3028 14400 752361 b7ae9 busybox_old
734801 3028 14400 752229 b7a65 busybox_unstripped
Diffstat (limited to 'coreutils/ls.c')
-rw-r--r-- | coreutils/ls.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c index e2ed3ee1f..a5bd0e304 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
@@ -132,8 +132,8 @@ enum { show_color = 0 }; | |||
132 | * a directory entry and its stat info are stored here | 132 | * a directory entry and its stat info are stored here |
133 | */ | 133 | */ |
134 | struct dnode { /* the basic node */ | 134 | struct dnode { /* the basic node */ |
135 | char *name; /* the dir entry name */ | 135 | const char *name; /* the dir entry name */ |
136 | char *fullname; /* the dir entry name */ | 136 | const char *fullname; /* the dir entry name */ |
137 | int allocated; | 137 | int allocated; |
138 | struct stat dstat; /* the file stat info */ | 138 | struct stat dstat; /* the file stat info */ |
139 | USE_SELINUX(security_context_t sid;) | 139 | USE_SELINUX(security_context_t sid;) |
@@ -159,7 +159,7 @@ enum { | |||
159 | 159 | ||
160 | static int status = EXIT_SUCCESS; | 160 | static int status = EXIT_SUCCESS; |
161 | 161 | ||
162 | static struct dnode *my_stat(char *fullname, char *name, int force_follow) | 162 | static struct dnode *my_stat(const char *fullname, const char *name, int force_follow) |
163 | { | 163 | { |
164 | struct stat dstat; | 164 | struct stat dstat; |
165 | struct dnode *cur; | 165 | struct dnode *cur; |
@@ -241,7 +241,7 @@ static int count_dirs(struct dnode **dn, int nfiles, int notsubdirs) | |||
241 | return 0; | 241 | return 0; |
242 | dirs = 0; | 242 | dirs = 0; |
243 | for (i = 0; i < nfiles; i++) { | 243 | for (i = 0; i < nfiles; i++) { |
244 | char *name; | 244 | const char *name; |
245 | if (!S_ISDIR(dn[i]->dstat.st_mode)) | 245 | if (!S_ISDIR(dn[i]->dstat.st_mode)) |
246 | continue; | 246 | continue; |
247 | name = dn[i]->name; | 247 | name = dn[i]->name; |
@@ -288,7 +288,7 @@ static void dfree(struct dnode **dnp, int nfiles) | |||
288 | for (i = 0; i < nfiles; i++) { | 288 | for (i = 0; i < nfiles; i++) { |
289 | struct dnode *cur = dnp[i]; | 289 | struct dnode *cur = dnp[i]; |
290 | if (cur->allocated) | 290 | if (cur->allocated) |
291 | free(cur->fullname); /* free the filename */ | 291 | free((char*)cur->fullname); /* free the filename */ |
292 | free(cur); /* free the dnode */ | 292 | free(cur); /* free the dnode */ |
293 | } | 293 | } |
294 | free(dnp); /* free the array holding the dnode pointers */ | 294 | free(dnp); /* free the array holding the dnode pointers */ |
@@ -320,7 +320,7 @@ static struct dnode **splitdnarray(struct dnode **dn, int nfiles, int which) | |||
320 | /* copy the entrys into the file or dir array */ | 320 | /* copy the entrys into the file or dir array */ |
321 | for (d = i = 0; i < nfiles; i++) { | 321 | for (d = i = 0; i < nfiles; i++) { |
322 | if (S_ISDIR(dn[i]->dstat.st_mode)) { | 322 | if (S_ISDIR(dn[i]->dstat.st_mode)) { |
323 | char *name; | 323 | const char *name; |
324 | if (!(which & (SPLIT_DIR|SPLIT_SUBDIR))) | 324 | if (!(which & (SPLIT_DIR|SPLIT_SUBDIR))) |
325 | continue; | 325 | continue; |
326 | name = dn[i]->name; | 326 | name = dn[i]->name; |
@@ -513,7 +513,7 @@ static struct dnode **list_dir(const char *path) | |||
513 | continue; | 513 | continue; |
514 | } | 514 | } |
515 | fullname = concat_path_file(path, entry->d_name); | 515 | fullname = concat_path_file(path, entry->d_name); |
516 | cur = my_stat(fullname, strrchr(fullname, '/') + 1, 0); | 516 | cur = my_stat(fullname, bb_basename(fullname), 0); |
517 | if (!cur) { | 517 | if (!cur) { |
518 | free(fullname); | 518 | free(fullname); |
519 | continue; | 519 | continue; |