diff options
| author | jao <jao@gnu.org> | 2016-07-28 00:30:21 +0200 | 
|---|---|---|
| committer | jao <jao@gnu.org> | 2016-07-28 00:30:21 +0200 | 
| commit | 5e783dc34abb507f4d9715f0fd30ed8db016772a (patch) | |
| tree | 8ffade9020f5cf770ff7bdb104f645465a2f55a8 /src/Plugins | |
| parent | 6af854ffa7ca840857876629690a10e143396e1f (diff) | |
| download | xmobar-5e783dc34abb507f4d9715f0fd30ed8db016772a.tar.gz xmobar-5e783dc34abb507f4d9715f0fd30ed8db016772a.tar.bz2 | |
Fixing compatibility with GHC 7.6
Diffstat (limited to 'src/Plugins')
| -rw-r--r-- | src/Plugins/MarqueePipeReader.hs | 9 | ||||
| -rw-r--r-- | src/Plugins/Monitors/Batt.hs | 8 | ||||
| -rw-r--r-- | src/Plugins/PipeReader.hs | 1 | 
3 files changed, 13 insertions, 5 deletions
| diff --git a/src/Plugins/MarqueePipeReader.hs b/src/Plugins/MarqueePipeReader.hs index 0b3a710..c46fff4 100644 --- a/src/Plugins/MarqueePipeReader.hs +++ b/src/Plugins/MarqueePipeReader.hs @@ -22,9 +22,10 @@ import Control.Concurrent(forkIO, threadDelay)  import Control.Concurrent.STM (TChan, atomically, writeTChan, tryReadTChan, newTChan)  import Control.Exception  import Control.Monad(forever, unless) +import Control.Applicative ((<$>))  type Length = Int       -- length of the text to display -type Rate = Int         -- delay in tenth seconds  +type Rate = Int         -- delay in tenth seconds  type Separator = String -- if text wraps around, use separator  data MarqueePipeReader = MarqueePipeReader String (Length, Rate, Separator) String @@ -48,16 +49,16 @@ instance Exec MarqueePipeReader where  pipeToChan :: Handle -> TChan String -> IO ()  pipeToChan h chan = do -    line <- hGetLineSafe h  +    line <- hGetLineSafe h      atomically $ writeTChan chan line  writer :: String -> Separator -> Length -> Rate -> TChan String -> (String -> IO ()) -> IO () -writer txt sep len rate chan cb = do  +writer txt sep len rate chan cb = do      cb (take len txt)      mbnext <- atomically $ tryReadTChan chan      case mbnext of          Just new -> writer (toInfTxt new sep) sep len rate chan cb -        Nothing -> tenthSeconds rate >> writer (drop 1 txt) sep len rate chan cb  +        Nothing -> tenthSeconds rate >> writer (drop 1 txt) sep len rate chan cb  toInfTxt :: String -> String -> String  toInfTxt line sep = concat (repeat $ line ++ " " ++ sep ++ " ") diff --git a/src/Plugins/Monitors/Batt.hs b/src/Plugins/Monitors/Batt.hs index 81c9aee..fba45dd 100644 --- a/src/Plugins/Monitors/Batt.hs +++ b/src/Plugins/Monitors/Batt.hs @@ -21,8 +21,9 @@ import System.FilePath ((</>))  import System.IO (IOMode(ReadMode), hGetLine, withFile)  import System.Posix.Files (fileExist)  import System.Console.GetOpt -import Data.List (sort, sortOn, group) +import Data.List (sort, sortBy, group)  import Data.Maybe (fromMaybe) +import Data.Ord (comparing)  import Text.Read (readMaybe)  data BattOpts = BattOpts @@ -163,6 +164,11 @@ readBattery sc files =            grabs f = handle onError' $ withFile f ReadMode hGetLine            onError' = const (return "Idle") :: SomeException -> IO String +-- sortOn is only available starting at ghc 7.10 +sortOn :: Ord b => (a -> b) -> [a] -> [a] +sortOn f = +  map snd . sortBy (comparing fst) . map (\x -> let y = f x in y `seq` (y, x)) +  readBatteries :: BattOpts -> [Files] -> IO Result  readBatteries opts bfs =      do bats <- mapM (readBattery (scale opts)) (take 3 bfs) diff --git a/src/Plugins/PipeReader.hs b/src/Plugins/PipeReader.hs index 653a72d..b3e178d 100644 --- a/src/Plugins/PipeReader.hs +++ b/src/Plugins/PipeReader.hs @@ -21,6 +21,7 @@ import System.Posix.Files  import Control.Concurrent(threadDelay)  import Control.Exception  import Control.Monad(forever, unless) +import Control.Applicative ((<$>))  data PipeReader = PipeReader String String      deriving (Read, Show) | 
