Fix query selector logic - holymoly - A tor enabled gopher client written in CHICKEN scheme
(HTM) git clone git://vernunftzentrum.de/holymoly.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit acf908821b6d484c52f8e9d70f90635d7d2a7a95
(DIR) parent a9f5e6402e1e1de7edc549f54980f2ebc4e91ce5
(HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
Date: Wed, 15 Aug 2018 16:27:02 +0200
Fix query selector logic
Diffstat:
holymoly.scm | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
---
(DIR) diff --git a/holymoly.scm b/holymoly.scm
@@ -307,17 +307,19 @@
(when (equal? (entry-type e) 'url)
(xdg-open (entry-selector e))
(select-entry (current-page)))
- (when (and (equal? (entry-type e) 'index-search)
- (= 1) (length (string-split (entry-selector e) "?")))
- (let* ((query (get-user-input))
- (old-selector (entry-selector e)))
- (if (null? query)
- (select-entry (current-page))
- (entry-selector-set! e (string-append (car (string-split old-selector "?")) "?" (string-intersperse (string-split query) "+"))))))
- (unless (equal? e (current-page))
+ (when (equal? (entry-type e) 'index-search)
+ (let* ((base+query (string-split (entry-selector e) "?"))
+ (query (if (= 1 (length base+query))
+ (get-user-input)
+ (cdr base+query)))
+ (base-selector (car base+query)))
+ (if (null? query)
+ (select-entry (current-page))
+ (entry-selector-set! e (string-concatenate `(,base-selector ,(string #\tab) ,@query))))))
+ (unless (equal? e (current-page))
(push! e history))
- (let* ((res (request-resource (entry-host e) (entry-selector e) (entry-port e) (memq (entry-type e) '(dos-archive binary gif image))))
- (handler (or
+ (let* ((res (request-resource (entry-host e) (entry-selector e) (entry-port e) (memq (entry-type e) '(dos-archive binary gif image))))
+ (handler (or
(alist-ref (entry-type e) type-handlers)
(lambda (c) (save-selector e c))))
(next (begin