Let xdg-open handle images - 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 952bbbec802d000e6df8e215c476e20abcd27612
 (DIR) parent 02fc2868d59a92bb4d19a5845e66ade988c09a56
 (HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
       Date:   Fri,  3 Aug 2018 10:27:41 +0200
       
       Let xdg-open handle images
       
       Diffstat:
         holymoly.scm                        |      14 +++++++++++---
       
       1 file changed, 11 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/holymoly.scm b/holymoly.scm
       @@ -6,6 +6,7 @@
            (chicken base)
            (chicken bitwise)
            (chicken condition)
       +    (chicken file posix)
            (chicken format)
            (chicken io)
            (chicken irregex)
       @@ -235,8 +236,13 @@
            (else
             (sprintf " > ~a" (entry-title e)))))
        
       -(define (call prog r)
       -  (with-output-to-pipe prog (lambda () (display r))))
       +(define (xdg-open r)
       + (let-values (((fd temp-path) (file-mkstemp "/tmp/mytemporary.XXXXXX")))
       +  (let ((temp-port (open-output-file* fd)))
       +    (write-u8vector r temp-port)
       +    (close-output-port temp-port))
       +    (process "xdg-open" (list temp-path))
       +    (previous-page)))
        
        (define history '())
        
       @@ -269,7 +275,9 @@
        (define type-handlers
          `((file . ,(lambda (c) (pager c win: (main-win)) (previous-page)))
            (directory . ,render-directory)
       -    (index-search . ,render-directory)))
       +    (index-search . ,render-directory)
       +    (image . ,(lambda (c) (xdg-open c)))
       +    (gif . ,(lambda (c) (xdg-open c)))))
        
        (define (save-selector entry content)
          (let* ((filename (string-append "/tmp/"