Skip command argument when checking trap signal specs (#946)
This commit is contained in:
parent
a06ad41bfa
commit
8f31ae913b
|
@ -119,6 +119,11 @@ getLeadingFlags = getFlagsUntil (\x -> x == "--" || (not $ "-" `isPrefixOf` x))
|
||||||
-- Check if a command has a flag.
|
-- Check if a command has a flag.
|
||||||
hasFlag cmd str = str `elem` (map snd $ getAllFlags cmd)
|
hasFlag cmd str = str `elem` (map snd $ getAllFlags cmd)
|
||||||
|
|
||||||
|
-- Is this token a word that starts with a dash?
|
||||||
|
isFlag token =
|
||||||
|
case getWordParts token of
|
||||||
|
T_Literal _ ('-':_) : _ -> True
|
||||||
|
_ -> False
|
||||||
|
|
||||||
-- Given a T_DollarBraced, return a simplified version of the string contents.
|
-- Given a T_DollarBraced, return a simplified version of the string contents.
|
||||||
bracedString (T_DollarBraced _ l) = concat $ oversimplify l
|
bracedString (T_DollarBraced _ l) = concat $ oversimplify l
|
||||||
|
|
|
@ -415,9 +415,13 @@ prop_checkNonportableSignals3 = verifyNot checkNonportableSignals "trap f 14"
|
||||||
prop_checkNonportableSignals4 = verify checkNonportableSignals "trap f SIGKILL"
|
prop_checkNonportableSignals4 = verify checkNonportableSignals "trap f SIGKILL"
|
||||||
prop_checkNonportableSignals5 = verify checkNonportableSignals "trap f 9"
|
prop_checkNonportableSignals5 = verify checkNonportableSignals "trap f 9"
|
||||||
prop_checkNonportableSignals6 = verify checkNonportableSignals "trap f stop"
|
prop_checkNonportableSignals6 = verify checkNonportableSignals "trap f stop"
|
||||||
|
prop_checkNonportableSignals7 = verifyNot checkNonportableSignals "trap 'stop' int"
|
||||||
checkNonportableSignals = CommandCheck (Exactly "trap") (f . arguments)
|
checkNonportableSignals = CommandCheck (Exactly "trap") (f . arguments)
|
||||||
where
|
where
|
||||||
f = mapM_ check
|
f args = case args of
|
||||||
|
first:rest -> unless (isFlag first) $ mapM_ check rest
|
||||||
|
_ -> return ()
|
||||||
|
|
||||||
check param = potentially $ do
|
check param = potentially $ do
|
||||||
str <- getLiteralString param
|
str <- getLiteralString param
|
||||||
let id = getId param
|
let id = getId param
|
||||||
|
|
Loading…
Reference in New Issue