diff options
author | Markus Roberts <Markus@reality.com> | 2010-10-18 14:25:17 -0700 |
---|---|---|
committer | Markus Roberts <Markus@reality.com> | 2010-10-18 16:24:31 -0700 |
commit | 3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b (patch) | |
tree | 5bed430d4525a4e1b1532974ced06da9c1d83162 /lib/puppet | |
parent | e3fc5b95d133aee1ae3dc188e6c47e88786dfc6e (diff) | |
download | puppet-3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b.tar.gz puppet-3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b.tar.xz puppet-3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b.zip |
Fix for #5022 -- Escaped newlines should be elided
This was a regression, not covered by a test; previously the string
"foo\
bar"
would be interpreded as "foobar" but this was changed to "foo\\\nbar" in
2.6.x with my string interpolation refactor. This change restores the
behaviour.
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/parser/lexer.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/puppet/parser/lexer.rb b/lib/puppet/parser/lexer.rb index 9036d652e..31d39ae2f 100644 --- a/lib/puppet/parser/lexer.rb +++ b/lib/puppet/parser/lexer.rb @@ -522,13 +522,14 @@ class Puppet::Parser::Lexer # backslash; the caret is there to match empty strings str = @scanner.scan_until(/([^\\]|^|[^\\])([\\]{2})*[#{terminators}]/) or lex_error "Unclosed quote after '#{last}' in '#{rest}'" @line += str.count("\n") # literal carriage returns add to the line count. - str.gsub!(/\\(.)/) { + str.gsub!(/\\(.)/m) { ch = $1 if escapes.include? ch case ch when 'n'; "\n" when 't'; "\t" when 's'; " " + when "\n": '' else ch end else |