diff options
Diffstat (limited to 'lib/Daffm/Action')
| -rw-r--r-- | lib/Daffm/Action/Commands.hs | 6 | ||||
| -rw-r--r-- | lib/Daffm/Action/Core.hs | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/lib/Daffm/Action/Commands.hs b/lib/Daffm/Action/Commands.hs index a9b706f..a5116eb 100644 --- a/lib/Daffm/Action/Commands.hs +++ b/lib/Daffm/Action/Commands.hs @@ -4,13 +4,13 @@ module Daffm.Action.Commands where import qualified Brick as M +import Control.Monad (forM_) import Daffm.Action.Cmdline import Daffm.Action.Core import Daffm.Types import Daffm.Utils (trimStart) import Data.Bifunctor (Bifunctor (second)) import Data.Char (isSpace) -import Data.Maybe (fromMaybe) import qualified Data.Text as Text runCmdline :: AppEvent () @@ -24,8 +24,7 @@ parseCommand (Text.splitAt 2 -> ("!!", cmd)) = Just $ CmdShell True cmd parseCommand (Text.splitAt 1 -> ("!", cmd)) = Just $ CmdShell False cmd parseCommand cmd = mkCmd . splitCmdArgs $ trimStart cmd where - splitCmdArgs = second trimStart . Text.splitAt cmdEndIdx - cmdEndIdx = fromMaybe (Text.length cmd) $ Text.findIndex isSpace cmd + splitCmdArgs = second trimStart . Text.break isSpace mkCmd = \case ("q", _) -> Just CmdQuit ("quit", _) -> Just CmdQuit @@ -57,6 +56,7 @@ processCommand CmdReload = reloadDir processCommand CmdToggleSelection = toggleCurrentFileSelection processCommand CmdClearSelection = clearFileSelections processCommand CmdGoBack = goBackToParentDir +processCommand (CmdChain chain) = forM_ chain processCommand processCommand CmdNoop = pure () evaluateCommand :: Text.Text -> AppEvent () diff --git a/lib/Daffm/Action/Core.hs b/lib/Daffm/Action/Core.hs index f80e41a..a8dad32 100644 --- a/lib/Daffm/Action/Core.hs +++ b/lib/Daffm/Action/Core.hs @@ -65,8 +65,8 @@ cmdSubstitutions cmd = do let selections = Set.elems stateFileSelections let selectionsOrCurrent = if Set.null stateFileSelections then [file] else selections let subst = - Text.replace "%" file - . Text.replace "%d" stateCwd + Text.replace "%" (escape file) + . Text.replace "%d" (escape stateCwd) . Text.replace "%s" (Text.unwords $ map escape selections) . Text.replace "%S" (Text.dropWhileEnd (== '\n') $ Text.unlines selections) . Text.replace "%f" (Text.unwords $ map escape selectionsOrCurrent) |
