on master help sign in
Quote empty strings #24
67fc536Michael Snoyman
Data/Yaml.hs+5
@@ -114,6 +114,11 @@ objToEvents' (Array list) rest =
114objToEvents' (Object pairs) rest =
114objToEvents' (Object pairs) rest =
115 EventMappingStart Nothing
115 EventMappingStart Nothing
116 : foldr ($) (EventMappingEnd : rest) (map pairToEvents $ M.toList pairs)
116 : 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+
117objToEvents' (String s) rest = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing : rest
122objToEvents' (String s) rest = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing : rest
118objToEvents' Null rest = EventScalar "null" NullTag PlainNoTag Nothing : rest
123objToEvents' Null rest = EventScalar "null" NullTag PlainNoTag Nothing : rest
119objToEvents' (Bool True) rest = EventScalar "true" BoolTag PlainNoTag Nothing : rest
124objToEvents' (Bool True) rest = EventScalar "true" BoolTag PlainNoTag Nothing : rest
test/main.hs+2
@@ -241,7 +241,9 @@ sample = array
241 [ D.String "foo"
241 [ D.String "foo"
242 , object
242 , object
243 [ ("bar1", D.String "bar2")
243 [ ("bar1", D.String "bar2")
244+ , ("bar3", D.String "")
244 ]
245 ]
246+ , D.String ""
245 ]
247 ]
246
248
247caseEncodeDecodeData :: Assertion
249caseEncodeDecodeData :: Assertion