aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-07-14 16:03:43 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-14 16:03:43 +0200
commit5f7904b6d11355a2010ebd10960d6a5d469301cc (patch)
treee9b2b4485b88d11cef26c366eb9844a149a1af59
parenta03ac6067764549f4ae25f9a34e1ee9b0d2bb4f2 (diff)
downloadbusybox-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.c20
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) {