diff --git a/scan/scan_int.c b/scan/scan_int.c index 12ca075..b33ff17 100644 --- a/scan/scan_int.c +++ b/scan/scan_int.c @@ -38,7 +38,7 @@ size_t scan_int(const char* src,int* dest) { ok=1; } if (!ok) return 0; - *dest=(neg?-(unsigned int)l:l); + *dest=(neg?(int)-(unsigned int)l:l); return (size_t)(tmp-src); } diff --git a/scan/scan_longn.c b/scan/scan_longn.c index f85b7d9..497d4e7 100644 --- a/scan/scan_longn.c +++ b/scan/scan_longn.c @@ -39,6 +39,6 @@ size_t scan_longn(const char *src,size_t len,long *dest) { ok=1; } if (!ok) return 0; - *dest=(neg?-(unsigned long int)l:l); + *dest=(neg?(signed long int)-(unsigned long int)l:l); return (size_t)(tmp-src); }