aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/Utf8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/Utf8.cpp')
-rw-r--r--src/libjin/Graphics/Utf8.cpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/src/libjin/Graphics/Utf8.cpp b/src/libjin/Graphics/Utf8.cpp
deleted file mode 100644
index 1a79d43..0000000
--- a/src/libjin/Graphics/Utf8.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "Utf8.h"
-
-namespace jin
-{
-namespace graphics
-{
-
- /* utf8 byte string to unicode codepoint */
- static const char *utf8toCodepoint(const char *p, unsigned *res) {
- unsigned x, mask, shift;
- switch (*p & 0xf0) {
- case 0xf0: mask = 0x07; shift = 18; break;
- case 0xe0: mask = 0x0f; shift = 12; break;
- case 0xc0:
- case 0xd0: mask = 0x1f; shift = 6; break;
- default:
- *res = *p;
- return p + 1;
- }
- x = (*p & mask) << shift;
- do {
- if (*(++p) == '\0') {
- *res = x;
- return p;
- }
- shift -= 6;
- x |= (*p & 0x3f) << shift;
- } while (shift);
- *res = x;
- return p + 1;
- }
-
- Utf8::Utf8(const char* raw, unsigned int length)
- {
- _length = length;
- _raw = (char*)calloc(1, length);
- memcpy(_raw, raw, length);
- }
-
- Utf8::Iterator Utf8::getIterator()
- {
- return Iterator(*this);
- }
-
- Utf8::~Utf8()
- {
- free(_raw);
- _raw = nullptr;
- _length = 0;
- }
-
- Utf8::Iterator::Iterator(const Utf8& utf8)
- : _utf8(utf8)
- {
- _p = utf8._raw;
- }
-
- Codepoint Utf8::Iterator::get()
- {
- Codepoint c;
- _p = utf8toCodepoint(_p, &c);
- return c;
- }
-
-}
-} \ No newline at end of file