Support multi byte characters in module names (#7916)

This commit is contained in:
Oscar Nihlgård
2018-05-31 09:38:43 +02:00
committed by Dmitry Atamanov
parent a55f49a7b4
commit eb8f15d97c
3 changed files with 10 additions and 2 deletions

View File

@@ -1099,7 +1099,7 @@ proc getSomeInitName(m: PSym, suffix: string): Rope =
if {sfSystemModule, sfMainModule} * m.flags == {}:
result = m.owner.name.s.mangle.rope
result.add "_"
result.add m.name.s
result.add m.name.s.mangle
result.add suffix
proc getInitName(m: PSym): Rope =

8
tests/misc/åäö.nim Normal file
View File

@@ -0,0 +1,8 @@
discard """
action: run
"""
# Tests that module names can contain multi byte characters
let a = 1
doAssert åäö.a == 1

View File

@@ -79,7 +79,7 @@ proc nimcacheDir(filename, options: string, target: TTarget): string =
proc callCompiler(cmdTemplate, filename, options: string,
target: TTarget, extraOptions=""): TSpec =
let nimcache = nimcacheDir(filename, options, target)
let options = options & " --nimCache:" & nimcache.quoteShell & extraOptions
let options = options & " " & ("--nimCache:" & nimcache).quoteShell & extraOptions
let c = parseCmdLine(cmdTemplate % ["target", targetToCmd[target],
"options", options, "file", filename.quoteShell,
"filedir", filename.getFileDir()])