aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-09-30 16:56:56 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2018-09-30 16:56:56 +0200
commit349d72c19ced4fae64e8fdd5792b37e78ac2f616 (patch)
treec7f228ac570984a552242e64fe815d212876c0dc /archival
parent14454b3071c7a5c053fde8eed416ab3b2f8475fb (diff)
downloadbusybox-349d72c19ced4fae64e8fdd5792b37e78ac2f616.tar.gz
unzip: use printable_string() for printing filenames
function old new delta unzip_main 2726 2792 +66 printable_string2 - 57 +57 identify 4329 4336 +7 expmeta 659 663 +4 add_interface 99 103 +4 beep_main 286 289 +3 changepath 192 194 +2 builtin_type 115 117 +2 devmem_main 469 470 +1 input_tab 1076 1074 -2 create_J 1821 1819 -2 poplocalvars 314 311 -3 doCommands 2222 2214 -8 do_load 918 902 -16 printable_string 57 9 -48 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 8/6 up/down: 146/-79) Total: 67 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival')
-rw-r--r--archival/unzip.c57
1 files changed, 37 insertions, 20 deletions
diff --git a/archival/unzip.c b/archival/unzip.c
index 96b7ab69b..c406d53c4 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -153,15 +153,15 @@ typedef union {
#define FIX_ENDIANNESS_CDF(cdf) \
do { if (BB_BIG_ENDIAN) { \
(cdf).fmt.version_made_by = SWAP_LE16((cdf).fmt.version_made_by); \
- (cdf).fmt.version_needed = SWAP_LE16((cdf).fmt.version_needed); \
- (cdf).fmt.method = SWAP_LE16((cdf).fmt.method ); \
- (cdf).fmt.modtime = SWAP_LE16((cdf).fmt.modtime ); \
- (cdf).fmt.moddate = SWAP_LE16((cdf).fmt.moddate ); \
- (cdf).fmt.crc32 = SWAP_LE32((cdf).fmt.crc32 ); \
- (cdf).fmt.cmpsize = SWAP_LE32((cdf).fmt.cmpsize ); \
- (cdf).fmt.ucmpsize = SWAP_LE32((cdf).fmt.ucmpsize ); \
- (cdf).fmt.filename_len = SWAP_LE16((cdf).fmt.filename_len); \
- (cdf).fmt.extra_len = SWAP_LE16((cdf).fmt.extra_len ); \
+ (cdf).fmt.version_needed = SWAP_LE16((cdf).fmt.version_needed ); \
+ (cdf).fmt.method = SWAP_LE16((cdf).fmt.method ); \
+ (cdf).fmt.modtime = SWAP_LE16((cdf).fmt.modtime ); \
+ (cdf).fmt.moddate = SWAP_LE16((cdf).fmt.moddate ); \
+ (cdf).fmt.crc32 = SWAP_LE32((cdf).fmt.crc32 ); \
+ (cdf).fmt.cmpsize = SWAP_LE32((cdf).fmt.cmpsize ); \
+ (cdf).fmt.ucmpsize = SWAP_LE32((cdf).fmt.ucmpsize ); \
+ (cdf).fmt.filename_len = SWAP_LE16((cdf).fmt.filename_len ); \
+ (cdf).fmt.extra_len = SWAP_LE16((cdf).fmt.extra_len ); \
(cdf).fmt.file_comment_length = SWAP_LE16((cdf).fmt.file_comment_length); \
(cdf).fmt.external_attributes = SWAP_LE32((cdf).fmt.external_attributes); \
}} while (0)
@@ -456,7 +456,9 @@ static int get_lstat_mode(const char *dst_fn)
struct stat stat_buf;
if (lstat(dst_fn, &stat_buf) == -1) {
if (errno != ENOENT) {
- bb_perror_msg_and_die("can't stat '%s'", dst_fn);
+ bb_perror_msg_and_die("can't stat '%s'",
+ dst_fn
+ );
}
/* File does not exist */
return -1;
@@ -634,7 +636,9 @@ int unzip_main(int argc, char **argv)
break;
if (++i > 2) {
*ext = '\0';
- bb_error_msg_and_die("can't open %s[.zip]", src_fn);
+ bb_error_msg_and_die("can't open %s[.zip]",
+ src_fn
+ );
}
strcpy(ext, extn[i - 1]);
}
@@ -646,8 +650,11 @@ int unzip_main(int argc, char **argv)
xchdir(base_dir);
if (quiet <= 1) { /* not -qq */
- if (quiet == 0)
- printf("Archive: %s\n", src_fn);
+ if (quiet == 0) {
+ printf("Archive: %s\n",
+ printable_string(src_fn)
+ );
+ }
if (opts & OPT_l) {
puts(verbose ?
" Length Method Size Cmpr Date Time CRC-32 Name\n"
@@ -831,7 +838,8 @@ int unzip_main(int argc, char **argv)
printf( "%9u " "%s " "%s\n",
(unsigned)zip.fmt.ucmpsize,
dtbuf,
- dst_fn);
+ printable_string(dst_fn)
+ );
} else {
char method6[7];
unsigned long percents;
@@ -860,7 +868,8 @@ int unzip_main(int argc, char **argv)
(unsigned)percents,
dtbuf,
zip.fmt.crc32,
- dst_fn);
+ printable_string(dst_fn)
+ );
total_size += zip.fmt.cmpsize;
}
total_usize += zip.fmt.ucmpsize;
@@ -886,7 +895,7 @@ int unzip_main(int argc, char **argv)
mode = get_lstat_mode(dst_fn);
if (mode == -1) { /* ENOENT */
if (!quiet) {
- printf(" creating: %s\n", dst_fn);
+ printf(" creating: %s\n", printable_string(dst_fn));
}
unzip_create_leading_dirs(dst_fn);
if (bb_make_directory(dst_fn, dir_mode, FILEUTILS_IGNORE_CHMOD_ERR)) {
@@ -895,7 +904,9 @@ int unzip_main(int argc, char **argv)
} else {
if (!S_ISDIR(mode)) {
bb_error_msg_and_die("'%s' exists but is not a %s",
- dst_fn, "directory");
+ printable_string(dst_fn),
+ "directory"
+ );
}
}
goto skip_cmpsize;
@@ -914,12 +925,16 @@ int unzip_main(int argc, char **argv)
if (!S_ISREG(mode)) {
fishy:
bb_error_msg_and_die("'%s' exists but is not a %s",
- dst_fn, "regular file");
+ printable_string(dst_fn),
+ "regular file"
+ );
}
if (overwrite == O_ALWAYS) {
goto do_open_and_extract;
}
- printf("replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: ", dst_fn);
+ printf("replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: ",
+ printable_string(dst_fn)
+ );
my_fgets80(key_buf);
/* User input could take a long time. Is it still a regular file? */
mode = get_lstat_mode(dst_fn);
@@ -949,7 +964,9 @@ int unzip_main(int argc, char **argv)
if (!quiet) {
printf(/* zip.fmt.method == 0
? " extracting: %s\n"
- : */ " inflating: %s\n", dst_fn);
+ : */ " inflating: %s\n",
+ printable_string(dst_fn)
+ );
}
#if ENABLE_FEATURE_UNZIP_CDF
if (S_ISLNK(file_mode)) {