abstracted finding which browser to use a little

added mozilla support

original commit: cf59ff8eac8a0fab7c34775d1b79dce5242bc5a8
This commit is contained in:
Paul Graunke 2002-07-03 18:34:11 +00:00
parent 61a6fdeeeb
commit 619a309d1b

View File

@ -27,9 +27,7 @@
[(eq? (system-type) 'unix) [(eq? (system-type) 'unix)
(let ([preferred (get-preference 'external-browser (lambda () #f))]) (let ([preferred (get-preference 'external-browser (lambda () #f))])
(cond (cond
[(and (or (not preferred) [(use-browser 'opera preferred)
(eq? preferred 'opera))
(find-executable-path "opera" #f))
=> =>
(lambda (browser-path) (lambda (browser-path)
;; opera may not return -- always open asyncronously ;; opera may not return -- always open asyncronously
@ -39,9 +37,8 @@
(if separate-window? (if separate-window?
(format "~a,new-window" str) (format "~a,new-window" str)
str))))] str))))]
[(and (and (or (not preferred) [(or (use-browser 'mozilla preferred)
(eq? preferred 'netscape))) (use-browser 'netscape preferred))
(find-executable-path "netscape" #f))
=> =>
(lambda (browser-path) (lambda (browser-path)
;; netscape's -remote returns with an error code, if no ;; netscape's -remote returns with an error code, if no
@ -52,16 +49,21 @@
(format "~a,new-window" str) (format "~a,new-window" str)
str))) str)))
(process*/close-ports browser-path str)))] (process*/close-ports browser-path str)))]
[(and (and (or (not preferred) [(use-browser 'dillo preferred)
(eq? preferred 'dillo)))
(find-executable-path "dillo" #f))
=> =>
(lambda (browser-path) (lambda (browser-path)
(process*/close-ports browser-path str))] (process*/close-ports browser-path str))]
[else [else
(error 'open-url "Couldn't find Opera, Netscape, or Dillo to open URL: ~e" str)]))] (error 'open-url "Couldn't find Opera, Mozilla, Netscape, or Dillo to open URL: ~e" str)]))]
[else (error 'send-url "don't know how to open URL on platform: ~s" (system-type))])))) [else (error 'send-url "don't know how to open URL on platform: ~s" (system-type))]))))
; : sym sym -> (U #f str)
; to find the path for the named browser, unless another browser is preferred
(define (use-browser browser-name preferred)
(and (or (not preferred)
(eq? preferred browser-name))
(find-executable-path (symbol->string browser-name) #f)))
; null-input : iport ; null-input : iport
(define null-input (define null-input
(make-custom-input-port #f (make-custom-input-port #f