aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-09-03 01:32:00 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-09-03 01:32:00 -0400
commit5f0b099e1444d462be5aa8df49f87c9b324e1b85 (patch)
tree66d286f3fe20fe93dce5952712af7a98d1ffd794
parentb517f3b2872ad25a9f2bb9114da2bcf178f041db (diff)
Better behavior for invalid character names
-rw-r--r--builtins/text.c3
-rw-r--r--test/text.tm3
2 files changed, 5 insertions, 1 deletions
diff --git a/builtins/text.c b/builtins/text.c
index a9a246ee..99d17577 100644
--- a/builtins/text.c
+++ b/builtins/text.c
@@ -1610,7 +1610,8 @@ public Text_t Text$from_codepoint_names(array_t codepoint_names)
Text_t *name = ((Text_t*)(codepoint_names.data + i*codepoint_names.stride));
const char *name_str = Text$as_c_string(*name);
uint32_t codepoint = unicode_name_character(name_str);
- Array$insert(&codepoints, &codepoint, I_small(0), sizeof(uint32_t));
+ if (codepoint != UNINAME_INVALID)
+ Array$insert(&codepoints, &codepoint, I_small(0), sizeof(uint32_t));
}
return Text$from_codepoints(codepoints);
}
diff --git a/test/text.tm b/test/text.tm
index f0f289fe..d82a38c7 100644
--- a/test/text.tm
+++ b/test/text.tm
@@ -217,3 +217,6 @@ func main():
>> "🐧":codepoint_names()
= ["PENGUIN"]
+ >> Text.from_codepoint_names(["not a valid name here buddy"])
+ = ""
+