summaryrefslogtreecommitdiff
path: root/sys/src/libmp
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-01-04 18:33:06 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2016-01-04 18:33:06 +0100
commitf5fcf6688b6a8fe502e94e531ec4e17f5b108e6e (patch)
treead125b0062a895d881c97bd2f3d411f6fb4c41ac /sys/src/libmp
parentd30b160fe3b595c071d37345c51b35fffb2ad30c (diff)
libmp: mistake in strtomp()
Diffstat (limited to 'sys/src/libmp')
-rw-r--r--sys/src/libmp/port/strtomp.c19
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){