From d2fa88dd91f71f561d151bf46bd3bfb93255be91 Mon Sep 17 00:00:00 2001 From: "Joseph C. Sible" Date: Sun, 5 Apr 2020 14:04:23 -0400 Subject: [PATCH] Simplify nameExpansion --- src/ShellCheck/AnalyzerLib.hs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ShellCheck/AnalyzerLib.hs b/src/ShellCheck/AnalyzerLib.hs index 453d53d..73449d7 100644 --- a/src/ShellCheck/AnalyzerLib.hs +++ b/src/ShellCheck/AnalyzerLib.hs @@ -840,10 +840,9 @@ getBracedReference s = fromMaybe s $ if c `elem` "*@#?-$!" then return [c] else fail "not special" getSpecial _ = fail "empty" - nameExpansion ('!':rest) = do -- e.g. ${!foo*bar*} - let suffix = dropWhile isVariableChar rest - guard $ suffix /= rest -- e.g. ${!@} - first <- suffix !!! 0 + nameExpansion ('!':next:rest) = do -- e.g. ${!foo*bar*} + guard $ isVariableChar next -- e.g. ${!@} + first <- find (not . isVariableChar) rest guard $ first `elem` "*?" return "" nameExpansion _ = Nothing