From e58cc288159e186dd3741437cb46fc43cb77b286 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Fri, 20 Mar 2015 14:02:58 -0700 Subject: [PATCH] Fix bug in here-doc parsing When a here-doc contains an empty line, any whitespace it contains should be ignored for purposes of determining the amount of leading whitespace to trim from each line. --- .../models/parser_versions/command_parser_version_base.coffee | 1 + .../parser_versions/command_parser_version_base.test.coffee | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coffee/models/parser_versions/command_parser_version_base.coffee b/src/coffee/models/parser_versions/command_parser_version_base.coffee index c9b29050d..f6a1efd32 100644 --- a/src/coffee/models/parser_versions/command_parser_version_base.coffee +++ b/src/coffee/models/parser_versions/command_parser_version_base.coffee @@ -125,6 +125,7 @@ module.exports = class CommandParserVersionBase shortestIndent = Number.MAX_VALUE for hereDocLine in hereDocLines + continue if hereDocLine.trim().length is 0 shortestIndent = Math.min hereDocLine.match(/( *).*/)[1].length, shortestIndent for i in [0...hereDocLines.length] diff --git a/src/coffee/test/parser_versions/command_parser_version_base.test.coffee b/src/coffee/test/parser_versions/command_parser_version_base.test.coffee index 6cfe148a7..08d50bee5 100644 --- a/src/coffee/test/parser_versions/command_parser_version_base.test.coffee +++ b/src/coffee/test/parser_versions/command_parser_version_base.test.coffee @@ -40,9 +40,9 @@ describe 'command_parser_version_base.coffee', -> expect(result[1]).to.be.null it 'trims smallest leading whitespace', -> - parser._lines = ['command: <<-END', ' alpha', ' bravo', ' charlie', 'END', 'command1: arg2'] + parser._lines = ['command: <<-END', ' alpha', ' bravo', '', ' charlie', 'END', 'command1: arg2'] parser._lineNumber = 1 result = parser._parseHereDoc parser._lines[0] result[0].should.equal 'command: ' - result[1].should.equal 'alpha\n bravo\ncharlie' + result[1].should.equal 'alpha\n bravo\n\ncharlie'