Merge pull request #1873 from josephcsible/checkwhilereadpitfalls
Simplify checkWhileReadPitfalls
This commit is contained in:
commit
c60323fb25
|
@ -2340,18 +2340,18 @@ checkWhileReadPitfalls params (T_WhileExpression id [command] contents)
|
||||||
let plaintext = oversimplify cmd
|
let plaintext = oversimplify cmd
|
||||||
in headOrDefault "" plaintext == "read"
|
in headOrDefault "" plaintext == "read"
|
||||||
&& ("-u" `notElem` plaintext)
|
&& ("-u" `notElem` plaintext)
|
||||||
&& all (not . stdinRedirect) redirs
|
&& not (any stdinRedirect redirs)
|
||||||
isStdinReadCommand _ = False
|
isStdinReadCommand _ = False
|
||||||
|
|
||||||
checkMuncher :: Token -> Writer [TokenComment] ()
|
checkMuncher :: Token -> Writer [TokenComment] ()
|
||||||
checkMuncher (T_Pipeline _ _ (T_Redirecting _ redirs cmd:_)) = do
|
checkMuncher (T_Pipeline _ _ (T_Redirecting _ redirs cmd:_)) = do
|
||||||
-- Check command substitutions regardless of the command
|
-- Check command substitutions regardless of the command
|
||||||
sequence_ $ do
|
case cmd of
|
||||||
(T_SimpleCommand _ vars args) <- Just cmd
|
T_SimpleCommand _ vars args ->
|
||||||
let words = concat $ concatMap getCommandSequences $ concatMap getWords $ vars ++ args
|
mapM_ checkMuncher $ concat $ concatMap getCommandSequences $ concatMap getWords $ vars ++ args
|
||||||
return $ mapM_ checkMuncher words
|
_ -> return ()
|
||||||
|
|
||||||
when (not $ any stdinRedirect redirs) $ do
|
unless (any stdinRedirect redirs) $ do
|
||||||
-- Recurse into ifs/loops/groups/etc if this doesn't redirect
|
-- Recurse into ifs/loops/groups/etc if this doesn't redirect
|
||||||
mapM_ checkMuncher $ concat $ getCommandSequences cmd
|
mapM_ checkMuncher $ concat $ getCommandSequences cmd
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue