mirror of
				https://github.com/koalaman/shellcheck.git
				synced 2025-10-31 22:52:50 +08:00 
			
		
		
		
	Merge pull request #1873 from josephcsible/checkwhilereadpitfalls
Simplify checkWhileReadPitfalls
This commit is contained in:
		| @@ -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 | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user