diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-04 18:33:06 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-04 18:33:06 +0100 |
commit | f5fcf6688b6a8fe502e94e531ec4e17f5b108e6e (patch) | |
tree | ad125b0062a895d881c97bd2f3d411f6fb4c41ac /sys/src/libmp | |
parent | d30b160fe3b595c071d37345c51b35fffb2ad30c (diff) |
libmp: mistake in strtomp()
Diffstat (limited to 'sys/src/libmp')
-rw-r--r-- | sys/src/libmp/port/strtomp.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sys/src/libmp/port/strtomp.c b/sys/src/libmp/port/strtomp.c index b5e00f0ef..17954fd04 100644 --- a/sys/src/libmp/port/strtomp.c +++ b/sys/src/libmp/port/strtomp.c @@ -199,18 +199,19 @@ strtomp(char *a, char **pp, int base, mpint *b) } if(base == 0){ - if(*a == '0'){ - a++; - if(*a == 'x' || *a == 'X') { - a++; + base = 10; + if(a[0] == '0'){ + if(a[1] == 'x' || a[1] == 'X') { + a += 2; base = 16; - } else if(*a == 'b' || *a == 'B') { - a++; + } else if(a[1] == 'b' || a[1] == 'B') { + a += 2; base = 2; - } else + } else if(a[1] >= '0' && a[1] <= '7') { + a++; base = 8; - } else - base = 10; + } + } } switch(base){ |