Fix BSD style flag parsing to stop at --

This commit is contained in:
Vidar Holen 2016-12-11 10:58:01 -08:00
parent 0a381be37b
commit f6618d4332
2 changed files with 3 additions and 2 deletions

View File

@ -112,8 +112,8 @@ getFlagsUntil _ _ = error "Internal shellcheck error, please report! (getFlags o
-- Get all flags in a GNU way, up until --
getAllFlags = getFlagsUntil (== "--")
-- Get all flags in a BSD way, up until first non-flag argument
getLeadingFlags = getFlagsUntil (not . ("-" `isPrefixOf`))
-- Get all flags in a BSD way, up until first non-flag argument or --
getLeadingFlags = getFlagsUntil (\x -> x == "--" || (not $ "-" `isPrefixOf` x))
-- Given a T_DollarBraced, return a simplified version of the string contents.

View File

@ -133,6 +133,7 @@ prop_checkBashisms49= verify checkBashisms "#!/bin/dash\necho $MACHTYPE"
prop_checkBashisms50= verify checkBashisms "#!/bin/sh\ncmd >& file"
prop_checkBashisms51= verifyNot checkBashisms "#!/bin/sh\ncmd 2>&1"
prop_checkBashisms52= verifyNot checkBashisms "#!/bin/sh\ncmd >&2"
prop_checkBashisms53= verifyNot checkBashisms "#!/bin/sh\nprintf -- -f\n"
checkBashisms = ForShell [Sh, Dash] $ \t -> do
params <- ask
kludge params t