diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-05-04 04:36:28 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-05-04 04:44:41 +0200 |
commit | 790aaa14406d45dd95dea3f7d6d00da5911c6584 (patch) | |
tree | f6e458cc3cde881893c06cba6cee94325c582112 /lib | |
parent | 8f7f007a52f39c1e03817d417e95877526945b45 (diff) |
Replace u8split() with u8cut()
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mbstring/u8cut.c | 19 | ||||
-rw-r--r-- | lib/mbstring/u8split.c | 16 |
2 files changed, 19 insertions, 16 deletions
diff --git a/lib/mbstring/u8cut.c b/lib/mbstring/u8cut.c new file mode 100644 index 0000000..3dd9663 --- /dev/null +++ b/lib/mbstring/u8cut.c @@ -0,0 +1,19 @@ +#include "macros.h" +#include "mbstring.h" + +rune +u8cut(struct u8view *restrict x, struct u8view *restrict y, const rune *seps, + size_t n) +{ + ASSUME(y != nullptr); + ASSUME(seps != nullptr); + size_t off = u8cspn(*y, seps, n); + if (x != nullptr) { + x->p = y->p; + x->len = off; + } + VSHFT(y, off); + rune ch = MBEND; + u8next(&ch, y); + return ch; +} diff --git a/lib/mbstring/u8split.c b/lib/mbstring/u8split.c deleted file mode 100644 index c26f48b..0000000 --- a/lib/mbstring/u8split.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "mbstring.h" - -struct u8view -u8split(struct u8view *rhs, rune ch) -{ - struct u8view lhs = {.p = rhs->p}; - if ((rhs->p = u8chr(*rhs, ch)) == nullptr) { - lhs.len = rhs->len; - rhs->len = 0; - } else { - lhs.len = rhs->p - lhs.p; - rhs->len -= lhs.len; - u8next(nullptr, rhs); - } - return lhs; -} |