aboutsummaryrefslogtreecommitdiff
path: root/libutf.h
diff options
context:
space:
mode:
Diffstat (limited to 'libutf.h')
-rw-r--r--libutf.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/libutf.h b/libutf.h
new file mode 100644
index 0000000..4d3f91c
--- /dev/null
+++ b/libutf.h
@@ -0,0 +1,34 @@
+#ifndef LIBUTF_H
+#define LIBUTF_H
+
+/* libutf8 © 2012-2015 Connor Lane Smith <cls@lubutu.com> */
+#include <stddef.h>
+#include <stdint.h>
+
+#if __STDC_VERSION__ >= 201112L
+#include <uchar.h>
+#ifdef __STDC_UTF_32__
+#define RUNE_C INT32_C
+typedef char32_t Rune;
+#endif
+#endif
+
+#ifndef RUNE_C
+#ifdef INT32_C
+#define RUNE_C INT32_C
+typedef uint_least32_t Rune;
+#else
+#define RUNE_C(x) x##L
+typedef unsigned long Rune;
+#endif
+#endif
+
+#define UTFmax 6 /* maximum bytes per rune */
+
+#define Runeself 0x80 /* rune and utf are equal (<) */
+#define Runemax RUNE_C(0x10FFFF) /* maximum rune value */
+
+int runelen(Rune r);
+int runetochar(char *s, const Rune *p);
+
+#endif