net/sendurl: Avoid touching preferences until needed.
This commit is contained in:
parent
ba661e009b
commit
8e7fa0f706
|
@ -4,7 +4,7 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
|
|
||||||
(require racket/system racket/file racket/promise racket/port
|
(require racket/system racket/file racket/promise racket/port
|
||||||
racket/contract)
|
racket/contract racket/promise)
|
||||||
|
|
||||||
(provide send-url send-url/file send-url/contents
|
(provide send-url send-url/file send-url/contents
|
||||||
unix-browser-list browser-preference? external-browser
|
unix-browser-list browser-preference? external-browser
|
||||||
|
@ -16,9 +16,9 @@
|
||||||
|
|
||||||
(define separate-by-default?
|
(define separate-by-default?
|
||||||
;; internal configuration, 'browser-default lets some browsers decide
|
;; internal configuration, 'browser-default lets some browsers decide
|
||||||
(get-preference 'new-browser-for-urls
|
(delay (get-preference 'new-browser-for-urls
|
||||||
(lambda () 'browser-default)
|
(lambda () 'browser-default)
|
||||||
#:timeout-lock-there (lambda (path) 'browser-default)))
|
#:timeout-lock-there (lambda (path) 'browser-default))))
|
||||||
|
|
||||||
;; all possible unix browsers, filtered later to just existing executables
|
;; all possible unix browsers, filtered later to just existing executables
|
||||||
;; order matters: the default will be the first of these that is found
|
;; order matters: the default will be the first of these that is found
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
(case stype
|
(case stype
|
||||||
[(macosx) (send-url/mac url-str)]
|
[(macosx) (send-url/mac url-str)]
|
||||||
[(windows) (send-url/win url-str)]
|
[(windows) (send-url/win url-str)]
|
||||||
[(unix) (send-url/unix url-str separate-window?)]
|
[(unix) (send-url/unix url-str (force separate-window?))]
|
||||||
[else (error 'send-url
|
[else (error 'send-url
|
||||||
"don't know how to open URL on platform: ~s" stype)])))
|
"don't know how to open URL on platform: ~s" stype)])))
|
||||||
(void))
|
(void))
|
||||||
|
@ -131,9 +131,10 @@
|
||||||
[path (if query (string-append path "?" (escape-url query)) path)]
|
[path (if query (string-append path "?" (escape-url query)) path)]
|
||||||
[path (if fragment (string-append path "#" (escape-url fragment))
|
[path (if fragment (string-append path "#" (escape-url fragment))
|
||||||
path)])
|
path)])
|
||||||
(send-url path separate-window? #:escape? #f)))
|
(send-url path (force separate-window?) #:escape? #f)))
|
||||||
|
|
||||||
;; See the documentation for the `delete-at' argument
|
;; See the documentation for the `delete-at' argument
|
||||||
|
;; separate-window? is never used
|
||||||
(define (send-url/contents contents [separate-window? separate-by-default?]
|
(define (send-url/contents contents [separate-window? separate-by-default?]
|
||||||
#:fragment [fragment #f] #:query [query #f]
|
#:fragment [fragment #f] #:query [query #f]
|
||||||
#:delete-at [delete-at #f])
|
#:delete-at [delete-at #f])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user