summaryrefslogtreecommitdiff
path: root/sys/src/ape
diff options
context:
space:
mode:
authorspew <devnull@localhost>2018-06-21 11:56:37 -0400
committerspew <devnull@localhost>2018-06-21 11:56:37 -0400
commit55c122d59f504ae48f834b3299484ef4f56283d6 (patch)
tree4171a2644362bd9631aebc8edb5dc66b4da3c50d /sys/src/ape
parent3b376b43af24f8013d330eb2eb9c3b78849bb7c3 (diff)
ape: add strnlen
Diffstat (limited to 'sys/src/ape')
-rw-r--r--sys/src/ape/lib/ap/gen/mkfile1
-rw-r--r--sys/src/ape/lib/ap/gen/strlen.c1
-rw-r--r--sys/src/ape/lib/ap/gen/strnlen.c11
3 files changed, 12 insertions, 1 deletions
diff --git a/sys/src/ape/lib/ap/gen/mkfile b/sys/src/ape/lib/ap/gen/mkfile
index 6594587f4..54ff7a617 100644
--- a/sys/src/ape/lib/ap/gen/mkfile
+++ b/sys/src/ape/lib/ap/gen/mkfile
@@ -43,6 +43,7 @@ ALLOFILES=\
strncat.$O\
strncmp.$O\
strncpy.$O\
+ strnlen.$O\
strpbrk.$O\
strrchr.$O\
strspn.$O\
diff --git a/sys/src/ape/lib/ap/gen/strlen.c b/sys/src/ape/lib/ap/gen/strlen.c
index e339cb16b..02632a6a3 100644
--- a/sys/src/ape/lib/ap/gen/strlen.c
+++ b/sys/src/ape/lib/ap/gen/strlen.c
@@ -3,6 +3,5 @@
size_t
strlen(const char *s)
{
-
return strchr(s, 0) - s;
}
diff --git a/sys/src/ape/lib/ap/gen/strnlen.c b/sys/src/ape/lib/ap/gen/strnlen.c
new file mode 100644
index 000000000..880d2eb59
--- /dev/null
+++ b/sys/src/ape/lib/ap/gen/strnlen.c
@@ -0,0 +1,11 @@
+#include <string.h>
+
+size_t
+strnlen(const char *s, size_t maxlen)
+{
+ size_t i;
+
+ for (i = 0; i < maxlen && s[i] != '\0'; i++)
+ ;
+ return i;
+}