diff options
author | Joey Hess <joey@kitenet.net> | 2012-07-06 17:22:56 -0600 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-07-06 17:22:56 -0600 |
commit | 8ad844e45c3f8a65ef5b725e9c6ac0f414b50fa4 (patch) | |
tree | df3ade67917f01f8abfc89a1e85662ceddbf225b | |
parent | 2c4b39be4f68b53c2d2bc3647b17789b316fc542 (diff) |
fix leading period before two-element extensions
-rw-r--r-- | Backend/SHA.hs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Backend/SHA.hs b/Backend/SHA.hs index 95ce4a770..cf61139e0 100644 --- a/Backend/SHA.hs +++ b/Backend/SHA.hs @@ -102,9 +102,13 @@ keyValueE size source = keyValue size source >>= maybe (return Nothing) addE } selectExtension :: FilePath -> String -selectExtension = join "." . reverse . take 2 . takeWhile shortenough . - reverse . split "." . takeExtensions +selectExtension f + | null es = "" + | otherwise = join "." ("":es) where + es = filter (not . null) $ reverse $ + take 2 $ takeWhile shortenough $ + reverse $ split "." $ takeExtensions f shortenough e | '\n' `elem` e = False -- newline in extension?! | otherwise = length e <= 4 -- long enough for "jpeg" |