Fix encoding error with bare hyphen
diff --git a/decode_test.go b/decode_test.go
index 9b2a263..472fa76 100644
--- a/decode_test.go
+++ b/decode_test.go
@@ -393,6 +393,7 @@
{"v:\n- [A,", "YAML error: line 2: did not find expected node content"},
{"a: *b\n", "YAML error: Unknown anchor 'b' referenced"},
{"a: &a\n b: *a\n", "YAML error: Anchor 'a' value contains itself"},
+ {"value: -", "YAML error: block sequence entries are not allowed in this context"},
}
func (s *S) TestUnmarshalErrors(c *C) {
diff --git a/emitterc.go b/emitterc.go
index ac63f28..8fe2363 100644
--- a/emitterc.go
+++ b/emitterc.go
@@ -1012,7 +1012,7 @@
return true
}
- if (value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.') {
+ if len(value) == 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {
block_indicators = true
flow_indicators = true
}
diff --git a/encode_test.go b/encode_test.go
index 5d16426..9ef7c16 100644
--- a/encode_test.go
+++ b/encode_test.go
@@ -93,6 +93,9 @@
}, {
map[string]interface{}{"a": map[interface{}]interface{}{"b": "c"}},
"a:\n b: c\n",
+ }, {
+ map[string]interface{}{"a": "-"},
+ "a: '-'\n",
},
// Simple values.