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
This commit is contained in:
Denis Vlasenko
2007-06-30 08:04:05 +00:00
parent f7d07b1723
commit dc757aa16c
14 changed files with 40 additions and 73 deletions

View File

@ -132,8 +132,8 @@ enum { show_color = 0 };
* a directory entry and its stat info are stored here
*/
struct dnode { /* the basic node */
char *name; /* the dir entry name */
char *fullname; /* the dir entry name */
const char *name; /* the dir entry name */
const char *fullname; /* the dir entry name */
int allocated;
struct stat dstat; /* the file stat info */
USE_SELINUX(security_context_t sid;)
@ -159,7 +159,7 @@ enum {
static int status = EXIT_SUCCESS;
static struct dnode *my_stat(char *fullname, char *name, int force_follow)
static struct dnode *my_stat(const char *fullname, const char *name, int force_follow)
{
struct stat dstat;
struct dnode *cur;
@ -241,7 +241,7 @@ static int count_dirs(struct dnode **dn, int nfiles, int notsubdirs)
return 0;
dirs = 0;
for (i = 0; i < nfiles; i++) {
char *name;
const char *name;
if (!S_ISDIR(dn[i]->dstat.st_mode))
continue;
name = dn[i]->name;
@ -288,7 +288,7 @@ static void dfree(struct dnode **dnp, int nfiles)
for (i = 0; i < nfiles; i++) {
struct dnode *cur = dnp[i];
if (cur->allocated)
free(cur->fullname); /* free the filename */
free((char*)cur->fullname); /* free the filename */
free(cur); /* free the dnode */
}
free(dnp); /* free the array holding the dnode pointers */
@ -320,7 +320,7 @@ static struct dnode **splitdnarray(struct dnode **dn, int nfiles, int which)
/* copy the entrys into the file or dir array */
for (d = i = 0; i < nfiles; i++) {
if (S_ISDIR(dn[i]->dstat.st_mode)) {
char *name;
const char *name;
if (!(which & (SPLIT_DIR|SPLIT_SUBDIR)))
continue;
name = dn[i]->name;
@ -513,7 +513,7 @@ static struct dnode **list_dir(const char *path)
continue;
}
fullname = concat_path_file(path, entry->d_name);
cur = my_stat(fullname, strrchr(fullname, '/') + 1, 0);
cur = my_stat(fullname, bb_basename(fullname), 0);
if (!cur) {
free(fullname);
continue;