summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-11-02 08:52:36 +0100
committerGitHub <noreply@github.com>2016-11-02 08:52:36 +0100
commit5842f7d0d250eab6e5d3a4c0fb75f5bdc4a86d53 (patch)
tree43f1b17219f75835a02a8ca3bb0355b2d51a0c10
parenta6d17b5503c6e655875807685ef437a0148c2af4 (diff)
parent89d457444574482718513d365a180da70d838b0e (diff)
downloadNim-5842f7d0d250eab6e5d3a4c0fb75f5bdc4a86d53.tar.gz
Merge pull request #4987 from lihf8515/devel
Update parsecfg.nim
-rw-r--r--lib/pure/parsecfg.nim14
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)