diff options
author | Ondrej Oprala | 2013-09-23 15:39:30 +0200 |
---|---|---|
committer | Karel Zak | 2013-11-08 13:49:57 +0100 |
commit | cda433918e35c300862ae7e3c901235603eb8740 (patch) | |
tree | bb0e98ee743b0594e9411c1977a9ecdc7ee0c94a /text-utils/display.c | |
parent | hexdump: rewrite cluttered case statements (diff) | |
download | kernel-qcow2-util-linux-cda433918e35c300862ae7e3c901235603eb8740.tar.gz kernel-qcow2-util-linux-cda433918e35c300862ae7e3c901235603eb8740.tar.xz kernel-qcow2-util-linux-cda433918e35c300862ae7e3c901235603eb8740.zip |
hexdump: minor formatting improvements in display()
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'text-utils/display.c')
-rw-r--r-- | text-utils/display.c | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/text-utils/display.c b/text-utils/display.c index 475ec000d..0782c9c12 100644 --- a/text-utils/display.c +++ b/text-utils/display.c @@ -189,33 +189,42 @@ void display(void) while ((bp = get()) != NULL) { fs = &fshead; savebp = bp; saveaddress = address; + list_for_each(p, fs) { fss = list_entry(p, FS, fslist); + list_for_each(q, &fss->fulist) { fu = list_entry(q, FU, fulist); + if (fu->flags&F_IGNORE) break; + cnt = fu->reps; + while (cnt) { list_for_each(r, &fu->prlist) { pr = list_entry(r, PR, prlist); - if (eaddress && address >= eaddress && - !(pr->flags&(F_TEXT|F_BPAD))) - bpad(pr); - if (cnt == 1 && pr->nospace) { - savech = *pr->nospace; - *pr->nospace = '\0'; - } - print(pr, bp); - if (cnt == 1 && pr->nospace) - *pr->nospace = savech; - address += pr->bcnt; - bp += pr->bcnt; + + if (eaddress && address >= eaddress + && !(pr->flags&(F_TEXT|F_BPAD))) + bpad(pr); + + if (cnt == 1 && pr->nospace) { + savech = *pr->nospace; + *pr->nospace = '\0'; + print(pr, bp); + *pr->nospace = savech; + } else + print(pr, bp); + + address += pr->bcnt; + bp += pr->bcnt; } --cnt; } } - bp = savebp; address = saveaddress; + bp = savebp; + address = saveaddress; } } if (endfu) { |