Skip to content
Browse files

Heredoc indentation detector ignores blank lines without trailing whi…

…tespace.
  • Loading branch information...
1 parent c435647 commit 01c14bc6402198b09f1a7f23f67e4ff05e8c562c @sstephenson committed Sep 22, 2010
Showing with 11 additions and 2 deletions.
  1. +1 −1 lib/lexer.js
  2. +1 −1 src/lexer.coffee
  3. +9 −0 test/test_heredocs.coffee
View
2 lib/lexer.js
@@ -395,7 +395,7 @@
if (!(options.herecomment)) {
while ((match = HEREDOC_INDENT.exec(doc)) !== null) {
attempt = (typeof (_ref2 = match[2]) !== "undefined" && _ref2 !== null) ? match[2] : match[3];
- if (!(typeof indent !== "undefined" && indent !== null) || attempt.length < indent.length) {
+ if (!(typeof indent !== "undefined" && indent !== null) || (0 < attempt.length) && (attempt.length < indent.length)) {
indent = attempt;
}
}
View
2 src/lexer.coffee
@@ -323,7 +323,7 @@ exports.Lexer = class Lexer
unless options.herecomment
while (match = HEREDOC_INDENT.exec(doc)) isnt null
attempt = if match[2]? then match[2] else match[3]
- indent = attempt if not indent? or attempt.length < indent.length
+ indent = attempt if not indent? or 0 < attempt.length < indent.length
indent or= ''
doc = doc.replace(new RegExp("^" + indent, 'gm'), '')
return doc if options.herecomment
View
9 test/test_heredocs.coffee
@@ -79,3 +79,12 @@ ok b is "basic heredoc \#{val}\non two lines"
a = '''here's an apostrophe'''
ok a is "here's an apostrophe"
+
+
+# The indentation detector ignores blank lines without trailing whitespace
+a = """
+ one
+ two
+
+ """
+ok a is "one\ntwo\n"

0 comments on commit 01c14bc

Please sign in to comment.
Something went wrong with that request. Please try again.