diff options
Diffstat (limited to 'src/base/string/raw')
-rw-r--r-- | src/base/string/raw/atoi.c | 11 | ||||
-rw-r--r-- | src/base/string/raw/ncopy.c | 4 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/base/string/raw/atoi.c b/src/base/string/raw/atoi.c index e62ec62..d407411 100644 --- a/src/base/string/raw/atoi.c +++ b/src/base/string/raw/atoi.c @@ -1,9 +1,16 @@ long str·atoi(char *s) { - long n = 0; + long neg=0, n = 0; + + /* check for sign */ + if(*s == '-') + neg=1,s++; + else if(*s == '+') + s++; + while(*s) n = 10*n + (*s++ - '0'); - return n; + return neg ? -n : +n; } diff --git a/src/base/string/raw/ncopy.c b/src/base/string/raw/ncopy.c index cf18a4b..df0e9da 100644 --- a/src/base/string/raw/ncopy.c +++ b/src/base/string/raw/ncopy.c @@ -1,5 +1,7 @@ +#include <u.h> + char * -str·ncopy(char *dst, int n, char *src) +str·ncopy(char *dst, intptr n, char *src) { while(*src && n-- > 0) *dst++ = *src++; |