diff options
Diffstat (limited to 'Command.hs')
-rw-r--r-- | Command.hs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Command.hs b/Command.hs index e54add707..1c1ff6bbc 100644 --- a/Command.hs +++ b/Command.hs @@ -183,17 +183,16 @@ filterFiles l = do exclude <- Annex.getState Annex.exclude if null exclude then return l' - else do - let regexp = compile (wildsRegex exclude) [] - return $ filter (notExcluded regexp) l' + else return $ filter (notExcluded $ wildsRegex exclude) l' where notState f = not $ stateDir `isPrefixOf` f notExcluded r f = case match r f [] of Nothing -> True Just _ -> False -wildsRegex :: [String] -> String -wildsRegex ws = "^(" ++ wildsRegex' ws "" ++ ")" +wildsRegex :: [String] -> Regex +wildsRegex ws = compile regex [] + where regex = "^(" ++ wildsRegex' ws "" ++ ")" wildsRegex' :: [String] -> String -> String wildsRegex' [] c = c wildsRegex' (w:ws) "" = wildsRegex' ws (wildToRegex w) |