Allow delimiter quotes at the end of multiline strings (#393)
TOML allows (unlike many other formats) up to 2 additonal quotes that are part of the string: basic = """2 extra quotes -->""""" literal = '''here too '''' Changed in TOML v1.0.0-rc.1 See also #392
This commit is contained in:
parent
b84615a24c
commit
af05f537d8
|
@ -334,7 +334,7 @@ impl<'a> Tokenizer<'a> {
|
|||
return Err(Error::NewlineInString(i));
|
||||
}
|
||||
}
|
||||
Some((i, ch)) if ch == delim => {
|
||||
Some((mut i, ch)) if ch == delim => {
|
||||
if multiline {
|
||||
if !self.eatc(delim) {
|
||||
val.push(delim);
|
||||
|
@ -345,6 +345,14 @@ impl<'a> Tokenizer<'a> {
|
|||
val.push(delim);
|
||||
continue 'outer;
|
||||
}
|
||||
if self.eatc(delim) {
|
||||
val.push(delim);
|
||||
i += 1;
|
||||
}
|
||||
if self.eatc(delim) {
|
||||
val.push(delim);
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
return Ok(String {
|
||||
src: &self.input[start..self.current()],
|
||||
|
|
|
@ -389,3 +389,9 @@ test!(
|
|||
include_str!("valid/float-exponent.toml"),
|
||||
include_str!("valid/float-exponent.json")
|
||||
);
|
||||
|
||||
test!(
|
||||
string_delim_end,
|
||||
include_str!("valid/string-delim-end.toml"),
|
||||
include_str!("valid/string-delim-end.json")
|
||||
);
|
||||
|
|
14
test-suite/tests/valid/string-delim-end.json
Normal file
14
test-suite/tests/valid/string-delim-end.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"str1": {
|
||||
"type": "string",
|
||||
"value": "\"This,\" she said, \"is just a pointless statement.\""
|
||||
},
|
||||
"str2": {
|
||||
"type": "string",
|
||||
"value": "foo''bar''"
|
||||
},
|
||||
"str3": {
|
||||
"type": "string",
|
||||
"value": "\"\""
|
||||
}
|
||||
}
|
3
test-suite/tests/valid/string-delim-end.toml
Normal file
3
test-suite/tests/valid/string-delim-end.toml
Normal file
|
@ -0,0 +1,3 @@
|
|||
str1 = """"This," she said, "is just a pointless statement.""""
|
||||
str2 = '''foo''bar'''''
|
||||
str3 = """"""""
|
Loading…
Reference in a new issue