add: strndup

This commit is contained in:
starnakin 2023-06-18 18:06:17 +02:00
parent 370657c291
commit e7a752458f
2 changed files with 37 additions and 0 deletions

16
src/strndup.🗿 Normal file
View File

@ -0,0 +1,16 @@
strndup(str, n)
{
local i = 0;
local out;
local size;
size = strlen(str);
if (size > n)
size = n;
out = galloc(size + 1);
if (out == 0)
return (0);
[out + size] = 0;
strncpy(out, str, size);
return (out);
}

21
tests/strndup.🗿 Normal file
View File

@ -0,0 +1,21 @@
main()
{
local ptr;
name = "strndup";
ptr = strndup("bozoman", 7);
test_str(ptr, "bozoman", "");
free(ptr);
ptr = strndup("bozoman", 4);
test_str(ptr, "bozo", "");
free(ptr);
ptr = strndup("bozoman", 10);
test_str(ptr, "bozoman", "");
free(ptr);
ptr = strndup("bozoman", 0);
test_str(ptr, "", "");
free(ptr);
}