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/"