Skip to content

Commit 67e60e6

Browse files
authored
Merge pull request #248 from GunnarFarneback/write_empty_key
Support writing of empty string keys
2 parents cc9ac3b + 7650a00 commit 67e60e6

5 files changed

Lines changed: 5 additions & 2 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "YAML"
22
uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
3-
version = "0.4.14"
3+
version = "0.4.15"
44

55

66
[deps]

src/writer.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ function _print(io::IO, pair::Pair, level::Int=0, ignore_level::Bool=false)
7474
key = if pair[1] === nothing
7575
"null" # this is what the YAML parser interprets as 'nothing'
7676
elseif pair[1] isa AbstractString && (
77-
occursin('#', pair[1]) || first(pair[1]) in "{}[]&*?|-<>=!%@:`,\"'"
77+
isempty(pair[1]) || occursin('#', pair[1]) || first(pair[1]) in "{}[]&*?|-<>=!%@:`,\"'"
7878
)
7979
string("\"", escape_string(pair[1]), "\"") # special keys that require quoting
8080
else

test/julia/empty_key.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Dict("" => "")

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const tests = [
5050
"utf-32-be",
5151
"empty_tag",
5252
"empty_list_elem",
53+
"empty_key",
5354
]
5455

5556
# ignore some test cases in write_and_load testing

test/yaml/empty_key.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"": ""

0 commit comments

Comments
 (0)