From f71c142a441ddc93e5b98d43205166818925152b Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sun, 4 Mar 2018 15:24:04 -0800 Subject: [PATCH] Don't ignore parse failures in here documents. Fixes #1135. --- ShellCheck/Parser.hs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ShellCheck/Parser.hs b/ShellCheck/Parser.hs index d14bc85..84b80dc 100644 --- a/ShellCheck/Parser.hs +++ b/ShellCheck/Parser.hs @@ -1594,7 +1594,7 @@ readDollarLonely = do prop_readHereDoc = isOk readScript "cat << foo\nlol\ncow\nfoo" prop_readHereDoc2 = isWarning readScript "cat <<- EOF\n cow\n EOF" prop_readHereDoc3 = isOk readScript "cat << foo\n$\"\nfoo" -prop_readHereDoc4 = isOk readScript "cat << foo\n`\nfoo" +prop_readHereDoc4 = isNotOk readScript "cat << foo\n`\nfoo" prop_readHereDoc5 = isOk readScript "cat <<- !foo\nbar\n!foo" prop_readHereDoc6 = isOk readScript "cat << foo\\ bar\ncow\nfoo bar" prop_readHereDoc7 = isOk readScript "cat << foo\n\\$(f ())\nfoo" @@ -1664,7 +1664,6 @@ readPendingHereDocs = do c | c `elem` ";&" -> ppt 1121 "Add ;/& terminators (and other syntax) on the line with the <<, not here." _ -> ppt 1122 "Nothing allowed after end token. To continue a command, put it on the line with the <<." - parsedData <- parseHereData quoted pos hereData list <- parseHereData quoted pos hereData addToHereDocMap id list @@ -1682,7 +1681,7 @@ readPendingHereDocs = do parseHereData Unquoted startPos hereData = subParse startPos readHereData hereData - readHereData = many $ try doubleQuotedPart <|> readHereLiteral + readHereData = many $ doubleQuotedPart <|> readHereLiteral readHereLiteral = do id <- getNextId