summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-01 16:52:00 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-01 16:52:00 -0800
commit57c258b48499c98dc316e14973e5c88a4986f7d7 (patch)
tree264a88220b3bd975fd72c6615c989a48525b1649 /lib.c
parent91adf830df344b712b08b47f8c7dbbb88f278fba (diff)
downloadtxr-57c258b48499c98dc316e14973e5c88a4986f7d7.tar.gz
txr-57c258b48499c98dc316e14973e5c88a4986f7d7.tar.bz2
txr-57c258b48499c98dc316e14973e5c88a4986f7d7.zip
* lib.c (int_str): Return nil rather than 0 if no digits are extracted
at all.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib.c b/lib.c
index 1989e437..da774db6 100644
--- a/lib.c
+++ b/lib.c
@@ -1393,9 +1393,12 @@ val string_lt(val astr, val bstr)
val int_str(val str, val base)
{
const wchar_t *wcs = c_str(str);
+ wchar_t *ptr;
cnum b = c_num(base);
/* TODO: detect if we have wcstoll */
- long val = wcstol(wcs, 0, b);
+ long val = wcstol(wcs, &ptr, b);
+ if (val == 0 && ptr == wcs)
+ return nil;
numeric_assert (val >= NUM_MIN && val <= NUM_MAX);
return num(val);
}