on master help sign in
Quote empty strings #24
commit67fc53664a4f74f7a1b0327628c9e4c103824dd8 authorMichael Snoyman <michael@snoyman.com> dateMon 4 Mar 2013, 09:18 (14 years ago) parent1e39943
2 files changed+7
Data/Yaml.hs+5 test/main.hs+2
Data/Yaml.hs+5
@@ -114,6 +114,11 @@ objToEvents' (Array list) rest =
114114objToEvents' (Object pairs) rest =
115115 EventMappingStart Nothing
116116 : foldr ($) (EventMappingEnd : rest) (map pairToEvents $ M.toList pairs)
117+
118+-- Empty strings need special handling to ensure they get quoted. This avoids:
119+-- https://github.com/snoyberg/yaml/issues/24
120+objToEvents' (String "") rest = EventScalar "" StrTag SingleQuoted Nothing : rest
121+
117122objToEvents' (String s) rest = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing : rest
118123objToEvents' Null rest = EventScalar "null" NullTag PlainNoTag Nothing : rest
119124objToEvents' (Bool True) rest = EventScalar "true" BoolTag PlainNoTag Nothing : rest
test/main.hs+2
@@ -241,7 +241,9 @@ sample = array
241241 [ D.String "foo"
242242 , object
243243 [ ("bar1", D.String "bar2")
244+ , ("bar3", D.String "")
244245 ]
246+ , D.String ""
245247 ]
246248
247249caseEncodeDecodeData :: Assertion