aboutsummaryrefslogtreecommitdiff
path: root/src/base/string/raw
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/string/raw')
-rw-r--r--src/base/string/raw/atoi.c11
-rw-r--r--src/base/string/raw/ncopy.c4
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++;