aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-09-13 19:44:44 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-09-13 19:44:44 -0400
commiteae0a36b3921a9b4a93e8efa7b5f9d6b843c607b (patch)
treeb0332d0155456a98a29f9f32386999279bf9e6b2
parent0ead266477dc1cf240ef2a5dc1c93ba754438f85 (diff)
Remove dead code
-rw-r--r--builtins/util.c33
1 files changed, 0 insertions, 33 deletions
diff --git a/builtins/util.c b/builtins/util.c
index 5cff1133..7749b22c 100644
--- a/builtins/util.c
+++ b/builtins/util.c
@@ -25,37 +25,4 @@ public char *heap_strf(const char *fmt, ...)
return ret;
}
-// Name mangling algorithm to produce valid identifiers:
-// Escape individual chars as "_x%02X"
-// Things being escaped:
-// - Leading digit
-// - Non alphanumeric/non-underscore characters
-// - "_" when followed by "x" and two uppercase hex digits
-public char *mangle(const char *name)
-{
- size_t len = 0;
- for (const char *p = name; *p; p++) {
- if ((!isalnum(*p) && *p != '_') // Non-identifier character
- || (p == name && isdigit(*p)) // Leading digit
- || (p[0] == '_' && p[1] == 'x' && strspn(p+2, "ABCDEF0123456789") >= 2)) { // Looks like hex escape
- len += strlen("_x00"); // Hex escape
- } else {
- len += 1;
- }
- }
- char *mangled = GC_MALLOC_ATOMIC(len + 1);
- char *dest = mangled;
- for (const char *src = name; *src; src++) {
- if ((!isalnum(*src) && *src != '_') // Non-identifier character
- || (src == name && isdigit(*src)) // Leading digit
- || (src[0] == '_' && src[1] == 'x' && strspn(src+2, "ABCDEF0123456789") >= 2)) { // Looks like hex escape
- dest += sprintf(dest, "_x%02X", *src); // Hex escape
- } else {
- *(dest++) = *src;
- }
- }
- mangled[len] = '\0';
- return mangled;
-}
-
// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0