paste #rz4Z :: 2018-01-03T15:40:27Z ::
new ::
raw
diff --git a/src/compiler/crystal/codegen/codegen.cr b/src/compiler/crystal/codegen/codegen.cr
index cbf63ad..1c0e537 100644
--- a/src/compiler/crystal/codegen/codegen.cr
+++ b/src/compiler/crystal/codegen/codegen.cr
@@ -2050,13 +2050,10 @@ module Crystal
def self.safe_mangling(program, name)
if program.has_flag?("windows")
name.gsub do |char|
- case char
- when '<', '>', '(', ')', '*', ':', ',', '#', '@', ' '
- "."
- when '+'
- ".."
- else
+ if char.ascii_alphanumeric?
char
+ else
+ ".#{char.ord.to_s(16)}."
end
end
else