diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Plugins/MBox.hs | 11 | ||||
| -rw-r--r-- | src/Plugins/Mail.hs | 19 | 
2 files changed, 26 insertions, 4 deletions
| diff --git a/src/Plugins/MBox.hs b/src/Plugins/MBox.hs index 62f9d78..48a6228 100644 --- a/src/Plugins/MBox.hs +++ b/src/Plugins/MBox.hs @@ -31,6 +31,15 @@ import System.INotify (Event(..), EventVariety(..), initINotify, addWatch)  import qualified Data.ByteString.Lazy.Char8 as B +#if MIN_VERSION_hinotify(0,3,10) +import qualified Data.ByteString.Char8 as BS (ByteString, pack) +pack :: String -> BS.ByteString +pack = BS.pack +#else +pack :: String -> String +pack = id +#endif +  data Options = Options                 { oAll :: Bool                 , oUniq :: Bool @@ -93,7 +102,7 @@ instance Exec MBox where                     n <- if exists then countMails f else return (-1)                     v <- newTVarIO (f, n)                     when exists $ -                     addWatch i events f (handleNotification v) >> return () +                     addWatch i events (pack f) (handleNotification v) >> return ()                     return v)                  boxes diff --git a/src/Plugins/Mail.hs b/src/Plugins/Mail.hs index 772d1d7..538bcf7 100644 --- a/src/Plugins/Mail.hs +++ b/src/Plugins/Mail.hs @@ -29,6 +29,19 @@ import System.INotify  import Data.List (isPrefixOf)  import Data.Set (Set)  import qualified Data.Set as S + +#if MIN_VERSION_hinotify(0,3,10) +import qualified Data.ByteString.Char8 as BS (ByteString, pack, unpack) +unpack :: BS.ByteString -> String +unpack = BS.unpack +pack :: String -> BS.ByteString +pack = BS.pack +#else +unpack :: String -> String +unpack = id +pack :: String -> String +pack = id +#endif  #else  import System.IO  #endif @@ -54,7 +67,7 @@ instance Exec Mail where          ds <- mapM expandHome rs          i <- initINotify -        zipWithM_ (\d v -> addWatch i ev d (handle v)) ds vs +        zipWithM_ (\d v -> addWatch i ev d (handle v)) (map pack ds) vs          forM_ (zip ds vs) $ \(d, v) -> do              s <- fmap (S.fromList . filter (not . isPrefixOf ".")) @@ -74,6 +87,6 @@ handle v e = atomically $ modifyTVar v $ case e of      MovedOut {} -> delete      _           -> id   where -    delete = S.delete (filePath e) -    create = S.insert (filePath e) +    delete = S.delete ((unpack . filePath) e) +    create = S.insert ((unpack . filePath) e)  #endif | 
