aboutsummaryrefslogtreecommitdiff
path: root/src/base/string
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/string')
-rw-r--r--src/base/string/join.c2
-rw-r--r--src/base/string/make.c8
-rw-r--r--src/base/string/makef.c2
-rw-r--r--src/base/string/raw/atoi.c11
-rw-r--r--src/base/string/raw/ncopy.c4
-rw-r--r--src/base/string/split.c4
6 files changed, 20 insertions, 11 deletions
diff --git a/src/base/string/join.c b/src/base/string/join.c
index 04d4739..9286720 100644
--- a/src/base/string/join.c
+++ b/src/base/string/join.c
@@ -3,7 +3,7 @@
string
string·join(vlong len, byte** fields, byte* sep)
{
- string s = string·makecap("", 0, 10);
+ string s = string·nnmake("", 0, 10);
int j = 0;
for (j = 0; j < len; j++) {
diff --git a/src/base/string/make.c b/src/base/string/make.c
index 50b8b98..ca38984 100644
--- a/src/base/string/make.c
+++ b/src/base/string/make.c
@@ -4,7 +4,7 @@
// len defines the length of the c substring that we will copy into our buffer.
// the backing buffer will have capacity cap.
string
-string·makecap(byte *s, vlong len, vlong cap)
+string·nnmake(byte *s, vlong len, vlong cap)
{
struct Hdr* h;
@@ -34,13 +34,13 @@ cleanup:
// new returns a new dynamic string object, initialized from the given c string.
// the backing buffer capacity is equivalent to the string length.
string
-string·makelen(byte *s, vlong len)
+string·nmake(byte *s, vlong len)
{
vlong sl = (!s) ? 0 : str·len(s);
if(sl < len) panicf("attempted to take a bigger substring than string length");
vlong cap = (len == 0) ? 1 : len;
- return string·makecap(s, len, cap);
+ return string·nnmake(s, len, cap);
}
// new returns a new dynamic string object, initialized from the given c string.
@@ -49,5 +49,5 @@ string
string·make(byte *s)
{
vlong len = (!s) ? 0 : str·len(s);
- return string·makelen(s, len);
+ return string·nmake(s, len);
}
diff --git a/src/base/string/makef.c b/src/base/string/makef.c
index 1e0d917..fb076af 100644
--- a/src/base/string/makef.c
+++ b/src/base/string/makef.c
@@ -9,7 +9,7 @@ string·makef(byte *fmt, ...)
va_list args;
char bytes[256];
- s = string·makecap(nil, 0, arrlen(bytes));
+ s = string·nnmake(nil, 0, arrlen(bytes));
va_start(args, fmt);
do{
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++;
diff --git a/src/base/string/split.c b/src/base/string/split.c
index 56029e1..ead4c5b 100644
--- a/src/base/string/split.c
+++ b/src/base/string/split.c
@@ -18,7 +18,7 @@ string·split(string s, byte* tok)
for(vlong i = 0; i < sL - tokL; i++){
if((tokL == 1 && s[i] == tokL) || !mem·compare(s + i, tokL, tok)){
- mem·bufpush(fields, string·makelen(s + start, i - start));
+ mem·bufpush(fields, string·nmake(s + start, i - start));
if(fields[mem·buflen(fields) - 1] == nil) goto cleanup;
start = i + tokL;
@@ -26,7 +26,7 @@ string·split(string s, byte* tok)
}
}
- mem·bufpush(fields, string·makelen(s + start, sL - start));
+ mem·bufpush(fields, string·nmake(s + start, sL - start));
return fields;