diff options
-rw-r--r-- | compiler/ccgtypes.nim | 4 | ||||
-rw-r--r-- | compiler/ccgutils.nim | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index 7c11d3e9a..7a490082f 100644 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -13,8 +13,8 @@ proc mangleField(name: string): string = result = mangle(name) - if name[0] in 'a'..'z': - result[0] = name[0].toUpper + result[0] = result[0].toUpper # Mangling makes everything lowercase, + # but some identifiers are C keywords proc isKeyword(w: PIdent): bool = # nimrod and C++ share some keywords diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim index 9beb08a21..04983d6a4 100644 --- a/compiler/ccgutils.nim +++ b/compiler/ccgutils.nim @@ -162,6 +162,9 @@ proc makeSingleLineCString*(s: string): string = result.add('\"') proc mangle*(name: string): string = + ## Lowercases the given name and manges any non-alphanumeric characters + ## so they are represented as `HEX____`. If the name starts with a number, + ## `N` is prepended result = "" case name[0] of Letters: |