diff --git a/net-doc/net/scribblings/sendurl.scrbl b/net-doc/net/scribblings/sendurl.scrbl index d5dae63651..8c2bb43317 100644 --- a/net-doc/net/scribblings/sendurl.scrbl +++ b/net-doc/net/scribblings/sendurl.scrbl @@ -77,6 +77,18 @@ the @racket[#:delete-at] argument is @racket[#f], no eager deletion happens, but old temporary files are still deleted as described above.} +@defproc[(send-url/mac [url string?] + [#:browser browser (or/c string? #f) #f]) + void?]{ + Like @racket[send-url], but only for use on a Mac OS X machine. + + The optional @racket[browser] argument, if present, should be the name + of a browser installed on the system. For example, + @racketblock[(send-url/mac "http://www.google.com/" #:browser "Firefox")] + would open the url in Firefox, even if that's not the default browser. + Passing @racket[#f] means to use the default browser. +} + @defparam[external-browser cmd browser-preference?]{ A parameter that can hold a procedure to override how a browser is diff --git a/net-lib/net/sendurl.rkt b/net-lib/net/sendurl.rkt index 37c19cede1..56742bfd61 100644 --- a/net-lib/net/sendurl.rkt +++ b/net-lib/net/sendurl.rkt @@ -3,10 +3,16 @@ #lang racket/base -(require racket/system racket/file racket/promise racket/port) +(require racket/system racket/file racket/promise racket/port + racket/contract) -(provide send-url send-url/file send-url/contents send-url/mac - unix-browser-list browser-preference? external-browser) +(provide send-url send-url/file send-url/contents + unix-browser-list browser-preference? external-browser + (contract-out + [send-url/mac + (->* (string?) (#:browser string?) + #:pre (equal? (system-type) 'macosx) + void?)])) (define separate-by-default? ;; internal configuration, 'browser-default lets some browsers decide