From 940be3bb32ed1f11c46ede98d51516998b17e128 Mon Sep 17 00:00:00 2001 From: slotThe Date: Sat, 4 Jan 2020 21:20:56 +0100 Subject: Replace parseOpts with a generic function --- src/Xmobar/Plugins/Monitors/Alsa.hs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/Xmobar/Plugins/Monitors/Alsa.hs') diff --git a/src/Xmobar/Plugins/Monitors/Alsa.hs b/src/Xmobar/Plugins/Monitors/Alsa.hs index 00f7353..dfc7329 100644 --- a/src/Xmobar/Plugins/Monitors/Alsa.hs +++ b/src/Xmobar/Plugins/Monitors/Alsa.hs @@ -57,17 +57,12 @@ options = where modifyVolumeOpts f o = o { aoVolumeOpts = f (aoVolumeOpts o) } -parseOpts :: [String] -> IO AlsaOpts -parseOpts argv = - case getOpt Permute options argv of - (o, _, []) -> return $ foldr id defaultOpts o - (_, _, errs) -> ioError . userError $ concat errs - +-- | Drop generic Monitor args first, then apply 'parseOptsWith' in order to +-- parse everything. parseOptsIncludingMonitorArgs :: [String] -> IO AlsaOpts parseOptsIncludingMonitorArgs args = - -- Drop generic Monitor args first case getOpt Permute [] args of - (_, args', _) -> parseOpts args' + (_, args', _) -> parseOptsWith options defaultOpts args' startAlsaPlugin :: String -> String -> [String] -> (String -> IO ()) -> IO () startAlsaPlugin mixerName controlName args cb = do @@ -80,7 +75,7 @@ startAlsaPlugin mixerName controlName args cb = do -- it would have to inline 'runMBD', 'doArgs' and 'parseOpts' to see -- it, which probably isn't going to happen with the default -- optimization settings). - opts2 <- io $ parseOpts args2 + opts2 <- io $ parseOptsWith options defaultOpts args2 Volume.runVolumeWith (aoVolumeOpts opts2) mixerName controlName withMonitorWaiter mixerName (aoAlsaCtlPath opts) cb $ \wait_ -> -- cgit v1.2.3