summary refs log tree commit diff stats
path: root/lib/pure/parsecfg.nim
diff options
context:
space:
mode:
authorlihf8515 <10214028@qq.com>2016-11-02 11:48:11 +0800
committerGitHub <noreply@github.com>2016-11-02 11:48:11 +0800
commit89d457444574482718513d365a180da70d838b0e (patch)
tree42413f8a905e24c81b72137c4c8e8afe338e4e63 /lib/pure/parsecfg.nim
parent9a1c87d6bf35cd13b2e635e6a4e1136ffc1be69f (diff)
downloadNim-89d457444574482718513d365a180da70d838b0e.tar.gz
Update parsecfg.nim
Value includes double quotation marks.
Diffstat (limited to 'lib/pure/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)