diff options
Diffstat (limited to 'libbb/dump.c')
-rw-r--r-- | libbb/dump.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libbb/dump.c b/libbb/dump.c index e83633c1d..8c2a370d0 100644 --- a/libbb/dump.c +++ b/libbb/dump.c | |||
@@ -228,7 +228,8 @@ static NOINLINE void rewrite(priv_dumper_t *dumper, FS *fs) | |||
228 | if ((p1[2] != 'd') && (p1[2] != 'o') && (p1[2] != 'x')) { | 228 | if ((p1[2] != 'd') && (p1[2] != 'o') && (p1[2] != 'x')) { |
229 | goto DO_BAD_CONV_CHAR; | 229 | goto DO_BAD_CONV_CHAR; |
230 | } | 230 | } |
231 | *p1 = p1[2]; | 231 | *p1++ = 'l'; |
232 | *p1++ = 'l'; | ||
232 | break; | 233 | break; |
233 | case 'c': /* %_c: chars, \ooo, \n \r \t etc */ | 234 | case 'c': /* %_c: chars, \ooo, \n \r \t etc */ |
234 | pr->flags = F_C; | 235 | pr->flags = F_C; |
@@ -558,9 +559,9 @@ static void display(priv_dumper_t* dumper) | |||
558 | if (dumper->eaddress | 559 | if (dumper->eaddress |
559 | && dumper->address >= dumper->eaddress | 560 | && dumper->address >= dumper->eaddress |
560 | ) { | 561 | ) { |
561 | if (dumper->pub.eofstring) { | 562 | if (dumper->pub.xxd_eofstring) { |
562 | /* xxd support: requested to not pad incomplete blocks */ | 563 | /* xxd support: requested to not pad incomplete blocks */ |
563 | fputs_stdout(dumper->pub.eofstring); | 564 | fputs_stdout(dumper->pub.xxd_eofstring); |
564 | return; | 565 | return; |
565 | } | 566 | } |
566 | if (!(pr->flags & (F_TEXT | F_BPAD))) | 567 | if (!(pr->flags & (F_TEXT | F_BPAD))) |
@@ -572,7 +573,7 @@ static void display(priv_dumper_t* dumper) | |||
572 | } | 573 | } |
573 | switch (pr->flags) { | 574 | switch (pr->flags) { |
574 | case F_ADDRESS: | 575 | case F_ADDRESS: |
575 | printf(pr->fmt, (unsigned) dumper->address); | 576 | printf(pr->fmt, (unsigned long long) dumper->address + dumper->pub.xxd_displayoff); |
576 | break; | 577 | break; |
577 | case F_BPAD: | 578 | case F_BPAD: |
578 | printf(pr->fmt, ""); | 579 | printf(pr->fmt, ""); |
@@ -674,7 +675,7 @@ static void display(priv_dumper_t* dumper) | |||
674 | for (pr = dumper->endfu->nextpr; pr; pr = pr->nextpr) { | 675 | for (pr = dumper->endfu->nextpr; pr; pr = pr->nextpr) { |
675 | switch (pr->flags) { | 676 | switch (pr->flags) { |
676 | case F_ADDRESS: | 677 | case F_ADDRESS: |
677 | printf(pr->fmt, (unsigned) dumper->eaddress); | 678 | printf(pr->fmt, (unsigned long long) dumper->eaddress + dumper->pub.xxd_displayoff); |
678 | break; | 679 | break; |
679 | case F_TEXT: | 680 | case F_TEXT: |
680 | printf(pr->fmt); | 681 | printf(pr->fmt); |