aboutsummaryrefslogtreecommitdiff
path: root/vendor/librune/lib/gbrk/u8gnext.c
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/librune/lib/gbrk/u8gnext.c')
-rw-r--r--vendor/librune/lib/gbrk/u8gnext.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/vendor/librune/lib/gbrk/u8gnext.c b/vendor/librune/lib/gbrk/u8gnext.c
index 875d5cb..5dae265 100644
--- a/vendor/librune/lib/gbrk/u8gnext.c
+++ b/vendor/librune/lib/gbrk/u8gnext.c
@@ -1,4 +1,4 @@
-#include <sys/types.h>
+#include <stddef.h>
#include "gbrk.h"
#include "utf8.h"
@@ -6,8 +6,6 @@
#include "internal/common.h"
#include "internal/gbrk_lookup.h"
-#define lengthof(a) (sizeof(a) / sizeof(*(a)))
-
struct gbrk_state {
enum {
GB9C_NONE,
@@ -21,7 +19,7 @@ struct gbrk_state {
static bool u8isgbrk(rune, rune, struct gbrk_state *);
static gbrk_prop getprop(rune);
-const char8_t *
+size_t
u8gnext(struct u8view *g, const char8_t **s, size_t *n)
{
int m;
@@ -30,7 +28,7 @@ u8gnext(struct u8view *g, const char8_t **s, size_t *n)
struct gbrk_state gs = {0};
if (*n == 0)
- return nullptr;
+ return 0;
g->p = p = *s;
p += u8tor_uc(&ch1, p);
@@ -44,7 +42,8 @@ u8gnext(struct u8view *g, const char8_t **s, size_t *n)
m = u8tor_uc(&ch2, p);
if (u8isgbrk(ch1, ch2, &gs)) {
*n -= g->len = p - *s;
- return *s = p;
+ *s = p;
+ return g->len;
}
ch1 = ch2;
@@ -145,13 +144,13 @@ do_break:
gbrk_prop
getprop(rune ch)
{
- ssize_t lo, hi;
+ ptrdiff_t lo, hi;
lo = 0;
hi = lengthof(gbrk_prop_tbl) - 1;
while (lo <= hi) {
- ssize_t i = (lo + hi) / 2;
+ ptrdiff_t i = (lo + hi) / 2;
if (ch < gbrk_prop_tbl[i].lo)
hi = i - 1;