Skip to content

Commit 0b268f2

Browse files
committed
fix(encode): Correct encoding for key with mixed quotes
1 parent 82c0195 commit 0b268f2

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

crates/toml_edit/src/encode.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,10 @@ fn infer_style(
418418
match (style, literal) {
419419
(Some(style), Some(literal)) => (style, literal),
420420
(None, Some(literal)) => (infer_all_style(value).0, literal),
421-
(Some(style), None) => (style, infer_all_style(value).1),
421+
(Some(style), None) => {
422+
let literal = !value.contains('\'') && (value.contains('"') | value.contains('\\'));
423+
(style, literal)
424+
}
422425
(None, None) => infer_all_style(value),
423426
}
424427
}

crates/toml_edit/tests/testsuite/parse.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -1834,12 +1834,10 @@ fn key_value_roundtrip() {
18341834
r#""squoted 'content' squoted""#,
18351835
str![[r#""squoted 'content' squoted""#]],
18361836
);
1837-
/*
18381837
assert_key_value_roundtrip(
18391838
r#""mixed quoted \"start\" 'end'' mixed quote""#,
1840-
str![[r#""squoted 'content' squoted""#]],
1839+
str![[r#""mixed quoted /"start/" 'end'' mixed quote""#]],
18411840
);
1842-
*/
18431841
}
18441842

18451843
#[track_caller]

0 commit comments

Comments
 (0)