diff options
-rw-r--r-- | lib/pure/parsecfg.nim | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/pure/parsecfg.nim b/lib/pure/parsecfg.nim index c648b0703..47670cc19 100644 --- a/lib/pure/parsecfg.nim +++ b/lib/pure/parsecfg.nim @@ -512,10 +512,16 @@ proc writeConfig*(dict: Config, filename: string) = kv = key if value != "": ## If the key is not empty if not allCharsInSet(value, SymChars): - kv.add(segmentChar) - kv.add("\"") - kv.add(replace(value)) - kv.add("\"") + if find(value, '"') == -1: + kv.add(segmentChar) + kv.add("\"") + kv.add(replace(value)) + kv.add("\"") + else: + kv.add(segmentChar) + kv.add("\"\"\"") + kv.add(replace(value)) + kv.add("\"\"\"") else: kv.add(segmentChar) kv.add(value) |