diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-14 16:03:43 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-14 16:03:43 +0200 |
commit | 5f7904b6d11355a2010ebd10960d6a5d469301cc (patch) | |
tree | e9b2b4485b88d11cef26c366eb9844a149a1af59 | |
parent | a03ac6067764549f4ae25f9a34e1ee9b0d2bb4f2 (diff) | |
download | busybox-w32-5f7904b6d11355a2010ebd10960d6a5d469301cc.tar.gz busybox-w32-5f7904b6d11355a2010ebd10960d6a5d469301cc.tar.bz2 busybox-w32-5f7904b6d11355a2010ebd10960d6a5d469301cc.zip |
libbb/dump: fix a few broken commits and shrink code
function old new delta
next 310 294 -16
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | libbb/dump.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libbb/dump.c b/libbb/dump.c index 87c1dce13..bc0c1ec80 100644 --- a/libbb/dump.c +++ b/libbb/dump.c | |||
@@ -58,7 +58,7 @@ static NOINLINE int bb_dump_size(FS *fs) | |||
58 | const char *p; | 58 | const char *p; |
59 | int prec; | 59 | int prec; |
60 | 60 | ||
61 | /* figure out the data block bb_dump_size needed for each format unit */ | 61 | /* figure out the data block size needed for each format unit */ |
62 | for (cur_size = 0, fu = fs->nextfu; fu; fu = fu->nextfu) { | 62 | for (cur_size = 0, fu = fs->nextfu; fu; fu = fu->nextfu) { |
63 | if (fu->bcnt) { | 63 | if (fu->bcnt) { |
64 | cur_size += fu->bcnt * fu->reps; | 64 | cur_size += fu->bcnt * fu->reps; |
@@ -320,7 +320,7 @@ static void do_skip(priv_dumper_t *dumper, const char *fname, int statok) | |||
320 | if (!(S_ISCHR(sbuf.st_mode) || S_ISBLK(sbuf.st_mode) || S_ISFIFO(sbuf.st_mode)) | 320 | if (!(S_ISCHR(sbuf.st_mode) || S_ISBLK(sbuf.st_mode) || S_ISFIFO(sbuf.st_mode)) |
321 | && dumper->pub.dump_skip >= sbuf.st_size | 321 | && dumper->pub.dump_skip >= sbuf.st_size |
322 | ) { | 322 | ) { |
323 | /* If bb_dump_size valid and pub.dump_skip >= size */ | 323 | /* If st_size is valid and pub.dump_skip >= st_size */ |
324 | dumper->pub.dump_skip -= sbuf.st_size; | 324 | dumper->pub.dump_skip -= sbuf.st_size; |
325 | dumper->address += sbuf.st_size; | 325 | dumper->address += sbuf.st_size; |
326 | return; | 326 | return; |
@@ -339,12 +339,14 @@ static NOINLINE int next(priv_dumper_t *dumper) | |||
339 | int statok; | 339 | int statok; |
340 | 340 | ||
341 | for (;;) { | 341 | for (;;) { |
342 | if (*dumper->argv) { | 342 | char *fname = *dumper->argv; |
343 | |||
344 | if (fname) { | ||
345 | dumper->argv++; | ||
343 | dumper->next__done = statok = 1; | 346 | dumper->next__done = statok = 1; |
344 | if (!(freopen(*dumper->argv, "r", stdin))) { | 347 | if (!freopen(fname, "r", stdin)) { |
345 | bb_simple_perror_msg(*dumper->argv); | 348 | bb_simple_perror_msg(fname); |
346 | dumper->exitval = 1; | 349 | dumper->exitval = 1; |
347 | ++dumper->argv; | ||
348 | continue; | 350 | continue; |
349 | } | 351 | } |
350 | } else { | 352 | } else { |
@@ -355,9 +357,7 @@ static NOINLINE int next(priv_dumper_t *dumper) | |||
355 | statok = 0; | 357 | statok = 0; |
356 | } | 358 | } |
357 | if (dumper->pub.dump_skip) | 359 | if (dumper->pub.dump_skip) |
358 | do_skip(dumper, statok ? *dumper->argv : "stdin", statok); | 360 | do_skip(dumper, statok ? fname : "stdin", statok); |
359 | if (*dumper->argv) | ||
360 | ++dumper->argv; | ||
361 | if (!dumper->pub.dump_skip) | 361 | if (!dumper->pub.dump_skip) |
362 | return 1; | 362 | return 1; |
363 | } | 363 | } |
@@ -670,7 +670,7 @@ int FAST_FUNC bb_dump_dump(dumper_t *pub_dumper, char **argv) | |||
670 | FS *tfs; | 670 | FS *tfs; |
671 | int blocksize; | 671 | int blocksize; |
672 | 672 | ||
673 | /* figure out the data block bb_dump_size */ | 673 | /* figure out the data block size */ |
674 | blocksize = 0; | 674 | blocksize = 0; |
675 | tfs = dumper->pub.fshead; | 675 | tfs = dumper->pub.fshead; |
676 | while (tfs) { | 676 | while (tfs) { |