diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2021-09-17 01:13:58 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-09-17 01:18:31 +0200 |
commit | 59ac467dc6429a48522ef7fbe40fcd819563e49a (patch) | |
tree | 4b6af971b0ffc516294ff35ba7b5c1e99c6eadae /coreutils/stat.c | |
parent | 4958c18134eb7ad169cdaf22a9ad957ad4f4858c (diff) | |
download | busybox-w32-59ac467dc6429a48522ef7fbe40fcd819563e49a.tar.gz busybox-w32-59ac467dc6429a48522ef7fbe40fcd819563e49a.tar.bz2 busybox-w32-59ac467dc6429a48522ef7fbe40fcd819563e49a.zip |
libbb: eliminate a static data array in bb_mode_string()
function old new delta
print_stat 861 869 +8
header_verbose_list_ar 73 77 +4
display_single 975 979 +4
header_verbose_list 237 239 +2
bb_mode_string 124 115 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 18/-9) Total: 9 bytes
text data bss dec hex filename
1043136 559 5052 1048747 1000ab busybox_old
1043153 559 5020 1048732 10009c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/stat.c')
-rw-r--r-- | coreutils/stat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/coreutils/stat.c b/coreutils/stat.c index a8393468e..2c2909e7e 100644 --- a/coreutils/stat.c +++ b/coreutils/stat.c | |||
@@ -339,7 +339,8 @@ static void FAST_FUNC print_stat(char *pformat, const char m, | |||
339 | strcat(pformat, "lo"); | 339 | strcat(pformat, "lo"); |
340 | printf(pformat, (unsigned long) (statbuf->st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO))); | 340 | printf(pformat, (unsigned long) (statbuf->st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO))); |
341 | } else if (m == 'A') { | 341 | } else if (m == 'A') { |
342 | printfs(pformat, bb_mode_string(statbuf->st_mode)); | 342 | char modestr[12]; |
343 | printfs(pformat, bb_mode_string(modestr, statbuf->st_mode)); | ||
343 | } else if (m == 'f') { | 344 | } else if (m == 'f') { |
344 | strcat(pformat, "lx"); | 345 | strcat(pformat, "lx"); |
345 | printf(pformat, (unsigned long) statbuf->st_mode); | 346 | printf(pformat, (unsigned long) statbuf->st_mode); |
@@ -702,6 +703,7 @@ static bool do_stat(const char *filename, const char *format) | |||
702 | bb_putchar('\n'); | 703 | bb_putchar('\n'); |
703 | # endif | 704 | # endif |
704 | } else { | 705 | } else { |
706 | char modestr[12]; | ||
705 | char *linkname = NULL; | 707 | char *linkname = NULL; |
706 | struct passwd *pw_ent; | 708 | struct passwd *pw_ent; |
707 | struct group *gw_ent; | 709 | struct group *gw_ent; |
@@ -736,7 +738,7 @@ static bool do_stat(const char *filename, const char *format) | |||
736 | bb_putchar('\n'); | 738 | bb_putchar('\n'); |
737 | printf("Access: (%04lo/%10.10s) Uid: (%5lu/%8s) Gid: (%5lu/%8s)\n", | 739 | printf("Access: (%04lo/%10.10s) Uid: (%5lu/%8s) Gid: (%5lu/%8s)\n", |
738 | (unsigned long) (statbuf.st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)), | 740 | (unsigned long) (statbuf.st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)), |
739 | bb_mode_string(statbuf.st_mode), | 741 | bb_mode_string(modestr, statbuf.st_mode), |
740 | (unsigned long) statbuf.st_uid, | 742 | (unsigned long) statbuf.st_uid, |
741 | (pw_ent != NULL) ? pw_ent->pw_name : "UNKNOWN", | 743 | (pw_ent != NULL) ? pw_ent->pw_name : "UNKNOWN", |
742 | (unsigned long) statbuf.st_gid, | 744 | (unsigned long) statbuf.st_gid, |