From 637f52294ef1a7ee6bbaf3fa8eda8e35472d316e Mon Sep 17 00:00:00 2001 From: defanor Date: Mon, 18 Feb 2019 12:05:36 +0300 Subject: Add the "gs" command for Gopher search --- Pancake/Command.hs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'Pancake/Command.hs') diff --git a/Pancake/Command.hs b/Pancake/Command.hs index 4686924..297a438 100644 --- a/Pancake/Command.hs +++ b/Pancake/Command.hs @@ -52,6 +52,7 @@ data Command = Quit | More | GoTo (Maybe String) Reference -- ^ Document type, reference + | GopherSearch Int String | Save Reference (Maybe FilePath) | Back | Forward @@ -166,6 +167,16 @@ loadConf = string "load config" *> (LoadConfig <$> optionMaybe (space *> many1 anyChar)) <* eof +gopherSearch :: String -> Parser Command +gopherSearch digits = do + string "gs" + space + ref <- pNumber digits + _ <- space + query <- many1 anyChar + _ <- eof + pure $ GopherSearch ref query + -- | Command parser. command :: Config -> Parser Command command c = @@ -181,4 +192,5 @@ command c = , setPos "set position" , loadConf "load config" , goTo "follow uri" + , gopherSearch (referenceDigits c) "gopher search" ]) -- cgit v1.2.3