From d43d019c2077fe7adf7e086f4afd5c648e9388d0 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 6 Nov 2017 17:06:12 +0000 Subject: [PATCH] Fix UTF8 support for pack_env_variables() --- runtime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime.c b/runtime.c index e96f8a37..81b48222 100644 --- a/runtime.c +++ b/runtime.c @@ -178,10 +178,10 @@ void pack_env_variables(void *data, object k) svar->hdr.grayed = 0; svar->tag = string_tag; svar->len = eqpos - e; - svar->num_cp = svar->len; // TODO: proper UTF-8 support! svar->str = alloca(sizeof(char) * (svar->len)); strncpy(svar->str, e, svar->len); (svar->str)[svar->len] = '\0'; + svar->num_cp = Cyc_utf8_count_code_points((uint8_t *)svar->str); if (eqpos) { eqpos++; @@ -190,7 +190,7 @@ void pack_env_variables(void *data, object k) sval->hdr.grayed = 0; sval->tag = string_tag; sval->len = strlen(eqpos); - sval->num_cp = sval->len; // TODO: proper UTF-8 support! + svar->num_cp = Cyc_utf8_count_code_points((uint8_t *)eqpos); sval->str = eqpos; set_pair(tmp, svar, sval); set_pair(p, tmp, NULL);