about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2023-11-17 10:23:10 +0000
committerArun Isaac2023-11-17 10:23:10 +0000
commit19b9decada9b18b85e4197d0bc395389cba76fc3 (patch)
tree22f063f46fc56fb890ad5a6110be2d936dfc086b
parent11bd42faae4f1f2546c6dff216dde07298abd681 (diff)
downloadccwl-19b9decada9b18b85e4197d0bc395389cba76fc3.tar.gz
ccwl-19b9decada9b18b85e4197d0bc395389cba76fc3.tar.lz
ccwl-19b9decada9b18b85e4197d0bc395389cba76fc3.zip
yaml: Serialize atomic dictionary values on the same line.
* ccwl/yaml.scm (display-dictionary-entry): Serialize atomic values on
the same line.
* tests/yaml.scm ("dictionary keys that map to an atomic value must be
serialized on the same line"): New test.
-rw-r--r--ccwl/yaml.scm3
-rw-r--r--tests/yaml.scm5
2 files changed, 7 insertions, 1 deletions
diff --git a/ccwl/yaml.scm b/ccwl/yaml.scm
index 00942de..a33a88f 100644
--- a/ccwl/yaml.scm
+++ b/ccwl/yaml.scm
@@ -79,8 +79,9 @@ serialized to YAML. Else, return @code{#f}."
        ;; Display on the same line if value is
        ;; - an empty array
        ;; - an empty dictionary
+       ;; - an atom
        ;; - an array with an atom as its only element
-       ((or #() () #((? atom? _)))
+       ((or #() () (? atom? _) #((? atom? _)))
         (display " " port)
         (scm->yaml value port level))
        ;; Else, display it on the next line.
diff --git a/tests/yaml.scm b/tests/yaml.scm
index d3d01c2..f1cc7ea 100644
--- a/tests/yaml.scm
+++ b/tests/yaml.scm
@@ -46,4 +46,9 @@ bar: {}
 "
   (scm->yaml-string #("foo")))
 
+(test-equal "dictionary keys that map to an atomic value must be serialized on the same line"
+  "foo: bar
+"
+  (scm->yaml-string '((foo . bar))))
+
 (test-end "yaml")