Merge pull request #263 from Deewiant/final-quote-fix

Avoid panic on pretty string ending in single quote
This commit is contained in:
Alex Crichton 2018-10-01 10:05:36 -07:00 committed by GitHub
commit ae5595396f
4 changed files with 20 additions and 0 deletions

View file

@ -585,6 +585,10 @@ impl<'a> Serializer<'a> {
} }
} }
} }
if can_be_pretty && found_singles > 0 && value.ends_with('\'') {
// We cannot escape the ending quote so we must use """
can_be_pretty = false;
}
if !can_be_pretty { if !can_be_pretty {
debug_assert!(ty != Type::OnelineTripple); debug_assert!(ty != Type::OnelineTripple);
return Repr::Std(ty); return Repr::Std(ty);

View file

@ -250,3 +250,7 @@ test!(table_array_nest_no_keys,
test!(dotted_keys, test!(dotted_keys,
include_str!("valid/dotted-keys.toml"), include_str!("valid/dotted-keys.toml"),
include_str!("valid/dotted-keys.json")); include_str!("valid/dotted-keys.json"));
test!(quote_surrounded_value,
include_str!("valid/quote-surrounded-value.toml"),
include_str!("valid/quote-surrounded-value.json"));

View file

@ -0,0 +1,10 @@
{
"double": {
"type": "string",
"value": "\"double quotes here\""
},
"single": {
"type": "string",
"value": "'single quotes here'"
}
}

View file

@ -0,0 +1,2 @@
double = '"double quotes here"'
single = "'single quotes here'"