sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit ecb351f1d58f0be6bbaea73786b1c9a1b9d16151
parent 1eff1e8214568e68dcd97b71adcdb0626d77407d
Author: FRIGN <dev@frign.de>
Date:   Mon, 26 Oct 2015 12:52:14 +0100

Properly parse numbers in od(1)

Previously, it'd drop right through in the number case and return
crazy-long numbers (like 28 for L), resulting in unexpected behaviour.

Diffstat:
Mod.c | 7+++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/od.c b/od.c @@ -224,11 +224,10 @@ main(int argc, char *argv[]) case 'x': t->format = *s; /* todo: allow multiple digits */ - if (*(s+1) > '0' || *(s+1) <= '9') { - t->len = *(s+1) - '0'; - s++; + if (*(s+1) > '0' && *(s+1) <= '9') { + t->len = *(++s) - '0'; } else { - switch (*(s + 1)) { + switch (*(++s)) { case 'C': t->len = sizeof(char); break;