summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorMarkus Roberts <Markus@reality.com>2010-10-18 14:25:17 -0700
committerMarkus Roberts <Markus@reality.com>2010-10-18 16:24:31 -0700
commit3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b (patch)
tree5bed430d4525a4e1b1532974ced06da9c1d83162 /lib/puppet
parente3fc5b95d133aee1ae3dc188e6c47e88786dfc6e (diff)
downloadpuppet-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.rb3
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