aboutsummaryrefslogtreecommitdiff
path: root/py/unicode.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-06-14 03:16:17 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-06-27 00:04:19 +0300
commit46d31e9ca90635707031afedf09da7aeed25a321 (patch)
tree2630f1bcc455de21cb5c6875be23572bdd423ced /py/unicode.c
parentded0fc77f7ee70b3f7935921bb9631e9763fb1fc (diff)
unicode: Add utf8_ptr_to_index().
Useful when we have pointer to char inside string, but need to return char index. (E.g. str.find()).
Diffstat (limited to 'py/unicode.c')
-rw-r--r--py/unicode.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/py/unicode.c b/py/unicode.c
index 0da247889..c38120072 100644
--- a/py/unicode.c
+++ b/py/unicode.c
@@ -86,6 +86,17 @@ char *utf8_next_char(const char *s) {
return (char *)s;
}
+machine_uint_t utf8_ptr_to_index(const char *s, const char *ptr) {
+ machine_uint_t i = 0;
+ while (ptr > s) {
+ if (!UTF8_IS_CONT(*--ptr)) {
+ i++;
+ }
+ }
+
+ return i;
+}
+
uint unichar_charlen(const char *str, uint len)
{
uint charlen = 0;