From 51e92f0c8e7b50c684287bea1a55edbde128053f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 23 Nov 2015 11:10:38 +0100 Subject: text: introduce functions to iterate over graphemes They currently consider any character for which wcwidth(3) return 0 as a combining character. --- text.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'text.h') diff --git a/text.h b/text.h index d338e0b..685079e 100644 --- a/text.h +++ b/text.h @@ -84,7 +84,12 @@ bool text_iterator_byte_prev(Iterator*, char *b); /* if the new position is at EOF a NUL byte (which is not actually * part of the file) is read. */ bool text_iterator_byte_next(Iterator*, char *b); - +/* move to the next/previous UTF-8 encoded Unicode codepoint + * and set c (if it is non NULL) to the first byte */ +bool text_iterator_codepoint_next(Iterator *it, char *c); +bool text_iterator_codepoint_prev(Iterator *it, char *c); +/* move to next/previous grapheme i.e. might skip over multiple + * Unicode codepoints (e.g. for combining characters) */ bool text_iterator_char_next(Iterator*, char *c); bool text_iterator_char_prev(Iterator*, char *c); -- cgit v1.2.3