mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
Fixed parsing of newline character in string expression #1430
This commit is contained in:
parent
1fd96e168e
commit
e02bb71948
@ -352,8 +352,12 @@ func nullValue() yqAction {
|
|||||||
|
|
||||||
func stringValue() yqAction {
|
func stringValue() yqAction {
|
||||||
return func(rawToken lexer.Token) (*token, error) {
|
return func(rawToken lexer.Token) (*token, error) {
|
||||||
|
log.Debug("rawTokenvalue: %v", rawToken.Value)
|
||||||
value := unwrap(rawToken.Value)
|
value := unwrap(rawToken.Value)
|
||||||
|
log.Debug("unwrapped: %v", value)
|
||||||
value = strings.ReplaceAll(value, "\\\"", "\"")
|
value = strings.ReplaceAll(value, "\\\"", "\"")
|
||||||
|
value = strings.ReplaceAll(value, "\\n", "\n")
|
||||||
|
log.Debug("replaced: %v", value)
|
||||||
return &token{TokenType: operationToken, Operation: createValueOperation(value, value)}, nil
|
return &token{TokenType: operationToken, Operation: createValueOperation(value, value)}, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -620,6 +620,27 @@ var participleLexerScenarios = []participleLexerScenario{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
expression: `"string with a\n"`,
|
||||||
|
tokens: []*token{
|
||||||
|
{
|
||||||
|
TokenType: operationToken,
|
||||||
|
Operation: &Operation{
|
||||||
|
OperationType: valueOpType,
|
||||||
|
Value: "string with a\n",
|
||||||
|
StringValue: "string with a\n",
|
||||||
|
Preferences: nil,
|
||||||
|
CandidateNode: &CandidateNode{
|
||||||
|
Node: &yaml.Node{
|
||||||
|
Kind: yaml.ScalarNode,
|
||||||
|
Tag: "!!str",
|
||||||
|
Value: "string with a\n",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
expression: `"string with a \""`,
|
expression: `"string with a \""`,
|
||||||
tokens: []*token{
|
tokens: []*token{
|
||||||
|
@ -432,6 +432,7 @@ func split(value string, spltStr string) *yaml.Node {
|
|||||||
var contents []*yaml.Node
|
var contents []*yaml.Node
|
||||||
|
|
||||||
if value != "" {
|
if value != "" {
|
||||||
|
log.Debug("going to spltStr[%v]", spltStr)
|
||||||
var newStrings = strings.Split(value, spltStr)
|
var newStrings = strings.Split(value, spltStr)
|
||||||
contents = make([]*yaml.Node, len(newStrings))
|
contents = make([]*yaml.Node, len(newStrings))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user