diff options
author | simonpj <unknown> | 2005-05-23 09:50:26 +0000 |
---|---|---|
committer | simonpj <unknown> | 2005-05-23 09:50:26 +0000 |
commit | 9af07e05719cba32911e8832eeee96bccb14ea1d (patch) | |
tree | cd3a5edf22b986c49e79366ae1b9bbc0c8b0e7b8 | |
parent | 4c03d4ee9f9a1544608c3f8ee65ee59c30e9b8df (diff) | |
download | haskell-9af07e05719cba32911e8832eeee96bccb14ea1d.tar.gz |
[project @ 2005-05-23 09:50:26 by simonpj]
Clarify code for splitLongestPrefix; no effect on behaviour
-rw-r--r-- | ghc/compiler/utils/Util.lhs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ghc/compiler/utils/Util.lhs b/ghc/compiler/utils/Util.lhs index 59bc87eede..b16f6eb969 100644 --- a/ghc/compiler/utils/Util.lhs +++ b/ghc/compiler/utils/Util.lhs @@ -913,11 +913,12 @@ joinFileName dir fname = dir ++ '/':fname -- string is returned in the first component (and the second one is just -- empty). splitLongestPrefix :: String -> (Char -> Bool) -> (String,String) -splitLongestPrefix s pred - = case pre of - [] -> (reverse suf, []) - (_:pre) -> (reverse pre, reverse suf) - where (suf,pre) = break pred (reverse s) +splitLongestPrefix str pred + | null r_pre = (str, []) + | otherwise = (reverse (tail r_pre), reverse r_suf) + -- 'tail' drops the char satisfying 'pred' + where + (r_suf, r_pre) = break pred (reverse str) replaceFilenameSuffix :: FilePath -> Suffix -> FilePath replaceFilenameSuffix file suf = basenameOf file `joinFileExt` suf |