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