summaryrefslogtreecommitdiff
path: root/ext/json/utf8_decode.h
diff options
context:
space:
mode:
authorOmar Kilani <omar@php.net>2006-01-31 08:59:06 +0000
committerOmar Kilani <omar@php.net>2006-01-31 08:59:06 +0000
commit94a140214c9df560aef047de93cf17d5dcf2e698 (patch)
tree45d4e4c4bdc92d50cfd863cb11df455e05380138 /ext/json/utf8_decode.h
parent933ce508385a6de6d6633920d0a16d267223c7ee (diff)
downloadphp-git-94a140214c9df560aef047de93cf17d5dcf2e698.tar.gz
- Rewritten for better performance. 3-8x faster encodes, 2-4x faster decodes.
- No longer uses json-c, implements it's own JSON parser and encoder. - JSON parser based on Douglas Crockford's JSON_checker.
Diffstat (limited to 'ext/json/utf8_decode.h')
-rw-r--r--ext/json/utf8_decode.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/json/utf8_decode.h b/ext/json/utf8_decode.h
new file mode 100644
index 0000000000..cc0fc79f6c
--- /dev/null
+++ b/ext/json/utf8_decode.h
@@ -0,0 +1,18 @@
+/* utf8_decode.h */
+
+#define UTF8_END -1
+#define UTF8_ERROR -2
+
+typedef struct json_utf8_decode
+{
+ int the_index;
+ char *the_input;
+ int the_length;
+ int the_char;
+ int the_byte;
+} json_utf8_decode;
+
+extern int utf8_decode_at_byte(json_utf8_decode *utf8);
+extern int utf8_decode_at_character(json_utf8_decode *utf8);
+extern void utf8_decode_init(json_utf8_decode *utf8, char p[], int length);
+extern int utf8_decode_next(json_utf8_decode *utf8);