diff options
author | defanor <defanor@uberspace.net> | 2019-02-18 12:05:36 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2019-02-18 12:05:36 +0300 |
commit | 637f52294ef1a7ee6bbaf3fa8eda8e35472d316e (patch) | |
tree | e6c21981cb328d4c1986b3eba9ad74cd42c9210c /Pancake.hs | |
parent | e198647ea5e12c6d80b74b615d382de9beb5d6b6 (diff) |
Add the "gs" command for Gopher search
Diffstat (limited to 'Pancake.hs')
-rw-r--r-- | Pancake.hs | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -283,6 +283,16 @@ command (GoTo t (RNumber i)) = do if length (rLinks $ rendered st) > i then command (GoTo t $ RURI $ rLinks (rendered st) !! i) else putErrLn "No such link" +command (GopherSearch i q) = do + st <- get + if length (rLinks $ rendered st) > i + then + let refURIString = uriToString id (rLinks (rendered st) !! i) "" + searchString = refURIString ++ "%09" ++ escapeURIString isUnreserved q + in maybe (putErrLn "Failed to compose a valid search URI") + (command . GoTo Nothing . RURI) + (parseURI searchString) + else putErrLn "No such link" command Back = do st <- get case history st of |