summaryrefslogtreecommitdiff
path: root/xs_encdec.h
diff options
context:
space:
mode:
authorGravatar default2022-09-20 07:21:47 +0200
committerGravatar default2022-09-20 07:21:47 +0200
commit0b69c9abe1465c49371b9192262c44aefecbe190 (patch)
tree11c7746079c8e32fd68fe289dd8ad1ed0165a267 /xs_encdec.h
parentImproved Unicode surrogate pairs parsing in xs_json. (diff)
downloadpenes-snac2-0b69c9abe1465c49371b9192262c44aefecbe190.tar.gz
penes-snac2-0b69c9abe1465c49371b9192262c44aefecbe190.tar.xz
penes-snac2-0b69c9abe1465c49371b9192262c44aefecbe190.zip
Added support for bigger codepoints in xs_utf8_enc().
Diffstat (limited to 'xs_encdec.h')
-rw-r--r--xs_encdec.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/xs_encdec.h b/xs_encdec.h
index e336218..1ca9346 100644
--- a/xs_encdec.h
+++ b/xs_encdec.h
@@ -171,6 +171,13 @@ d_char *xs_utf8_enc(d_char *str, unsigned int cpoint)
171 tmp[n++] = 0x80 | ((cpoint >> 6) & 0x3f); 171 tmp[n++] = 0x80 | ((cpoint >> 6) & 0x3f);
172 tmp[n++] = 0x80 | (cpoint & 0x3f); 172 tmp[n++] = 0x80 | (cpoint & 0x3f);
173 } 173 }
174 else
175 if (cpoint < 0x200000) {
176 tmp[n++] = 0xf0 | (cpoint >> 18);
177 tmp[n++] = 0x80 | ((cpoint >> 12) & 0x3f);
178 tmp[n++] = 0x80 | ((cpoint >> 6) & 0x3f);
179 tmp[n++] = 0x80 | (cpoint & 0x3f);
180 }
174 181
175 return xs_append_m(str, (char *)tmp, n); 182 return xs_append_m(str, (char *)tmp, n);
176} 183}