hexdump: minor formatting improvements in display()

Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Ondrej Oprala 2013-09-23 15:39:30 +02:00 committed by Karel Zak
parent f65e62e0ab
commit cda433918e
1 changed files with 22 additions and 13 deletions

View File

@ -189,33 +189,42 @@ void display(void)
while ((bp = get()) != NULL) { while ((bp = get()) != NULL) {
fs = &fshead; savebp = bp; saveaddress = address; fs = &fshead; savebp = bp; saveaddress = address;
list_for_each(p, fs) { list_for_each(p, fs) {
fss = list_entry(p, FS, fslist); fss = list_entry(p, FS, fslist);
list_for_each(q, &fss->fulist) { list_for_each(q, &fss->fulist) {
fu = list_entry(q, FU, fulist); fu = list_entry(q, FU, fulist);
if (fu->flags&F_IGNORE) if (fu->flags&F_IGNORE)
break; break;
cnt = fu->reps; cnt = fu->reps;
while (cnt) { while (cnt) {
list_for_each(r, &fu->prlist) { list_for_each(r, &fu->prlist) {
pr = list_entry(r, PR, prlist); pr = list_entry(r, PR, prlist);
if (eaddress && address >= eaddress &&
!(pr->flags&(F_TEXT|F_BPAD))) if (eaddress && address >= eaddress
bpad(pr); && !(pr->flags&(F_TEXT|F_BPAD)))
if (cnt == 1 && pr->nospace) { bpad(pr);
savech = *pr->nospace;
*pr->nospace = '\0'; if (cnt == 1 && pr->nospace) {
} savech = *pr->nospace;
print(pr, bp); *pr->nospace = '\0';
if (cnt == 1 && pr->nospace) print(pr, bp);
*pr->nospace = savech; *pr->nospace = savech;
address += pr->bcnt; } else
bp += pr->bcnt; print(pr, bp);
address += pr->bcnt;
bp += pr->bcnt;
} }
--cnt; --cnt;
} }
} }
bp = savebp; address = saveaddress; bp = savebp;
address = saveaddress;
} }
} }
if (endfu) { if (endfu) {