Fix InputString parsing for addFlagStringParam function family

pull/5/head
Lennart Spitzner 2016-12-30 22:12:04 +01:00
parent f35ebb733a
commit 11db0a98ab
2 changed files with 4 additions and 4 deletions

View File

@ -222,7 +222,7 @@ addFlagStringParam shorts longs name flag = addCmdPartInpA desc parseF (\_ -> pu
[drop (length s + 1) str | (s ++ " ") `isPrefixOf` str]
of
Nothing -> _flag_default flag <&> \x -> (x, InputString str)
Just rest1 -> let (x, rest2) = break (not . Char.isSpace) rest1
Just rest1 -> let (x, rest2) = break Char.isSpace $ dropWhile Char.isSpace rest1
in Just (x, InputString rest2)
parseF (InputArgs (s1:s2:sr)) | any (==s1) allStrs = Just (s2, InputArgs sr)
parseF inp@(InputArgs _) = _flag_default flag <&> \x -> (x, inp)
@ -274,7 +274,7 @@ addFlagStringParamsAll shorts longs name flag act = addCmdPartManyInpA desc pars
$ \s -> [ (x, InputString rest2)
| (s ++ " ") `isPrefixOf` str
, let rest1 = drop (length s + 1) str
, let (x, rest2) = break (not . Char.isSpace) rest1
, let (x, rest2) = break Char.isSpace $ dropWhile Char.isSpace rest1
]
parseF (InputArgs (s1:s2:sr))
= flip firstJust allStrs

View File

@ -105,7 +105,7 @@ addStringParam name par = addCmdPartInp desc parseF
$ PartVariable name
parseF :: Input -> Maybe (String, Input)
parseF (InputString str)
= case break (not . Char.isSpace) str of
= case break Char.isSpace $ dropWhile Char.isSpace str of
("", rest) -> _param_default par <&> \x -> (x, InputString rest)
(x, rest) -> Just (x, InputString rest)
parseF (InputArgs args) = case args of
@ -125,7 +125,7 @@ addStringParamOpt name par = addCmdPartInp desc parseF
$ PartVariable name
parseF :: Input -> Maybe (Maybe String, Input)
parseF (InputString str)
= case break (not . Char.isSpace) str of
= case break Char.isSpace $ dropWhile Char.isSpace str of
("", rest) -> Just (Nothing, InputString rest)
(x, rest) -> Just (Just x, InputString rest)
parseF (InputArgs args) = case args of