paste: Support -d '\0'

POSIX specifies that -d '\0' sets the delimiter to an empty string.
This commit is contained in:
Richard Ipsum
2020-04-15 17:46:39 +01:00
committed by Michael Forney
parent 28063c02f4
commit 2f0b15201d
4 changed files with 46 additions and 14 deletions

View File

@@ -62,6 +62,19 @@ utfnlen(const char *s, size_t len)
return i;
}
size_t
utfmemlen(const char *s, size_t len)
{
const char *p = s;
size_t i;
Rune r;
int n;
for(i = 0; (n = charntorune(&r, p, len-(p-s))); i++)
p += n;
return i;
}
char *
utfrune(const char *s, Rune r)
{

View File

@@ -4,10 +4,24 @@
size_t
utftorunestr(const char *str, Rune *r)
{
size_t i, n;
size_t i;
int n;
for (i = 0; (n = chartorune(&r[i], str)) && r[i]; i++)
str += n;
return i;
}
size_t
utfntorunestr(const char *str, size_t len, Rune *r)
{
size_t i;
int n;
const char *end = str + len;
for (i = 0; (n = charntorune(&r[i], str, end - str)); i++)
str += n;
return i;
}