diff options
author | Adam Chlipala <adam@chlipala.net> | 2019-09-25 19:54:59 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2019-09-25 19:54:59 -0400 |
commit | 8728f397bee2b567611dcd7a7c359c7e92159c1c (patch) | |
tree | 283c2b659f5b9a4ed6ef097ba4b0f2052d966c28 /src/c | |
parent | c388a91762e9dd9aef2eb097963af020c0e452f8 (diff) |
Unicode escapes in JSON
Diffstat (limited to 'src/c')
-rw-r--r-- | src/c/urweb.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c index af929269..8c445f39 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -2724,6 +2724,18 @@ uw_Basis_string uw_Basis_str1(uw_context ctx, uw_Basis_char ch) { return r; } +uw_Basis_string uw_Basis_ofUnicode(uw_context ctx, uw_Basis_int n) { + UChar buf16[] = {n}; + uw_Basis_string out = uw_malloc(ctx, 3); + int32_t outLen; + UErrorCode pErrorCode = 0; + + if (u_strToUTF8(out, 3, &outLen, buf16, 1, &pErrorCode) == NULL || outLen == 0) + uw_error(ctx, FATAL, "Bad Unicode string to unescape (error %s)", u_errorName(pErrorCode)); + + return out; +} + uw_Basis_string uw_strdup(uw_context ctx, uw_Basis_string s1) { int len = strlen(s1) + 1; char *s; |