summaryrefslogtreecommitdiff
path: root/util/sbase/libutf/utftorunestr.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/sbase/libutf/utftorunestr.c')
-rw-r--r--util/sbase/libutf/utftorunestr.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/util/sbase/libutf/utftorunestr.c b/util/sbase/libutf/utftorunestr.c
new file mode 100644
index 00000000..e182bc15
--- /dev/null
+++ b/util/sbase/libutf/utftorunestr.c
@@ -0,0 +1,27 @@
+/* See LICENSE file for copyright and license details. */
+#include "../utf.h"
+
+size_t
+utftorunestr(const char *str, Rune *r)
+{
+ size_t i;
+ int n;
+
+ for (i = 0; (n = chartorune(&r[i], str)) && r[i]; i++)
+ str += n;
+
+ return i;
+}
+
+size_t
+utfntorunestr(const char *str, size_t len, Rune *r)
+{
+ size_t i;
+ int n;
+ const char *end = str + len;
+
+ for (i = 0; (n = charntorune(&r[i], str, end - str)); i++)
+ str += n;
+
+ return i;
+}