diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-05-04 04:01:45 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-05-04 04:01:45 +0200 |
commit | ac1b4bcbaeaee7d2ef9132dcdc254f2d08691650 (patch) | |
tree | 90250966629653f0462cf17bc0b6f2476fb6d1fc /lib/mbstring/u8chr.c | |
parent | 8b923ba5e5bb37ea26350b4c1c688b8697706609 (diff) |
Go all in on string views, and fix manuals
Diffstat (limited to 'lib/mbstring/u8chr.c')
-rw-r--r-- | lib/mbstring/u8chr.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/lib/mbstring/u8chr.c b/lib/mbstring/u8chr.c index 395a328..4831695 100644 --- a/lib/mbstring/u8chr.c +++ b/lib/mbstring/u8chr.c @@ -31,7 +31,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static char8_t * +static const char8_t * memmem2(const char8_t *h, size_t k, const char8_t *n) { uint16_t hw, nw; @@ -40,12 +40,12 @@ memmem2(const char8_t *h, size_t k, const char8_t *n) for (h += 2, k -= 2; k; k--, hw = hw << 8 | *h++) { if (hw == nw) - return (char8_t *)h - 2; + return h - 2; } - return hw == nw ? (char8_t *)h - 2 : nullptr; + return hw == nw ? h - 2 : nullptr; } -static char8_t * +static const char8_t * memmem3(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -54,12 +54,12 @@ memmem3(const char8_t *h, size_t k, const char8_t *n) for (h += 3, k -= 3; k; k--, hw = (hw | *h++) << 8) { if (hw == nw) - return (char8_t *)h - 3; + return h - 3; } - return hw == nw ? (char8_t *)h - 3 : nullptr; + return hw == nw ? h - 3 : nullptr; } -static char8_t * +static const char8_t * memmem4(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -68,28 +68,28 @@ memmem4(const char8_t *h, size_t k, const char8_t *n) for (h += 4, k -= 4; k; k--, hw = hw << 8 | *h++) { if (hw == nw) - return (char8_t *)h - 4; + return h - 4; } - return hw == nw ? (char8_t *)h - 4 : nullptr; + return hw == nw ? h - 4 : nullptr; } -char8_t * -(u8chr)(const char8_t *s, size_t n, rune ch) +const char8_t * +u8chr(struct u8view sv, rune ch) { char8_t buf[U8_LEN_MAX]; int m = rtou8(buf, sizeof(buf), ch); - if (n < (size_t)m) + if (sv.len < (size_t)m) return nullptr; switch (m) { case 1: - return memchr(s, ch, n); + return memchr(sv.p, ch, sv.len); case 2: - return memmem2(s, n, buf); + return memmem2(sv.p, sv.len, buf); case 3: - return memmem3(s, n, buf); + return memmem3(sv.p, sv.len, buf); case 4: - return memmem4(s, n, buf); + return memmem4(sv.p, sv.len, buf); } unreachable(); |