From 619a309d1bd56f6cb8ecff7c53edb83e27585e4f Mon Sep 17 00:00:00 2001 From: Paul Graunke Date: Wed, 3 Jul 2002 18:34:11 +0000 Subject: [PATCH] abstracted finding which browser to use a little added mozilla support original commit: cf59ff8eac8a0fab7c34775d1b79dce5242bc5a8 --- collects/net/sendurl.ss | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/collects/net/sendurl.ss b/collects/net/sendurl.ss index 7c82b643cb..700954d654 100644 --- a/collects/net/sendurl.ss +++ b/collects/net/sendurl.ss @@ -27,9 +27,7 @@ [(eq? (system-type) 'unix) (let ([preferred (get-preference 'external-browser (lambda () #f))]) (cond - [(and (or (not preferred) - (eq? preferred 'opera)) - (find-executable-path "opera" #f)) + [(use-browser 'opera preferred) => (lambda (browser-path) ;; opera may not return -- always open asyncronously @@ -39,9 +37,8 @@ (if separate-window? (format "~a,new-window" str) str))))] - [(and (and (or (not preferred) - (eq? preferred 'netscape))) - (find-executable-path "netscape" #f)) + [(or (use-browser 'mozilla preferred) + (use-browser 'netscape preferred)) => (lambda (browser-path) ;; netscape's -remote returns with an error code, if no @@ -52,15 +49,20 @@ (format "~a,new-window" str) str))) (process*/close-ports browser-path str)))] - [(and (and (or (not preferred) - (eq? preferred 'dillo))) - (find-executable-path "dillo" #f)) + [(use-browser 'dillo preferred) => (lambda (browser-path) (process*/close-ports browser-path str))] [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))])))) + + ; : 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 (define null-input