Fix handling of special characters in Haskell codegen

This commit is contained in:
Andrew Gibiansky 2016-04-04 18:51:56 -07:00
parent a694dfb8fb
commit f28bbf251c
2 changed files with 2 additions and 1 deletions

View File

@ -446,6 +446,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (char c : string.toCharArray()) { for (char c : string.toCharArray()) {
if (specialCharReplacements.containsKey(c)) { if (specialCharReplacements.containsKey(c)) {
sb.append("'");
sb.append(specialCharReplacements.get(c)); sb.append(specialCharReplacements.get(c));
} else { } else {
sb.append(c); sb.append(c);

View File

@ -56,7 +56,7 @@ removeFieldLabelPrefix forParsing prefix =
} }
where where
replaceSpecialChars field = foldl (&) field (map mkCharReplacement specialChars) replaceSpecialChars field = foldl (&) field (map mkCharReplacement specialChars)
specialChars = [{{#specialCharReplacements}}("{{char}}", "{{&replacement}}"){{#hasMore}}, {{/hasMore}}{{/specialCharReplacements}}] specialChars = [{{#specialCharReplacements}}("{{&char}}", "{{&replacement}}"){{#hasMore}}, {{/hasMore}}{{/specialCharReplacements}}]
mkCharReplacement (replaceStr, searchStr) = T.unpack . replacer (T.pack searchStr) (T.pack replaceStr) . T.pack mkCharReplacement (replaceStr, searchStr) = T.unpack . replacer (T.pack searchStr) (T.pack replaceStr) . T.pack
replacer = if forParsing then flip T.replace else T.replace replacer = if forParsing then flip T.replace else T.replace