Blob Blame History Raw
diff -urN racket-6.12-wbsvr/share/pkgs/scribble-lib/help/search.rkt racket-6.12/share/pkgs/scribble-lib/help/search.rkt
--- racket-6.12-wbsvr/share/pkgs/scribble-lib/help/search.rkt	2018-03-19 17:14:56.017273013 -0400
+++ racket-6.12/share/pkgs/scribble-lib/help/search.rkt	2018-03-19 17:15:37.839113929 -0400
@@ -17,33 +17,38 @@
                         #:notify [notify void])
   (define open-url (get-doc-open-url))
   (cond
-   [open-url
-    (define dest-url (let ([u (string->url open-url)])
-                       (combine-url/relative
-                        u
-                        (string-join
-                         (for/list ([s (explode-path sub)])
-                           (if (path? s)
-                               (path-element->string s)
-                               (format "~a" s)))
-                         "/"))))
-    (notify (url->string dest-url))
-    (send-url (url->string
-               (struct-copy url dest-url
-                            [fragment (or fragment
-                                          (url-fragment dest-url))]
-                            [query (append
-                                    (url-query dest-url)
-                                    (if query
-                                        (url-query
-                                         (string->url
-                                          (format "q?~a" query)))
-                                        null))])))]
-   [else
-    (let* ([path (build-path (find-user-doc-dir) sub)]
-           [path (if (file-exists? path) path (build-path (find-doc-dir) sub))])
-      (notify path)
-      (send-url/file path #:fragment fragment #:query query))]))
+    [open-url
+      (define dest-url (let ([u (string->url open-url)])
+                         (combine-url/relative
+                           u
+                           (string-join
+                             (for/list ([s (explode-path sub)])
+                               (if (path? s)
+                                 (path-element->string s)
+                                 (format "~a" s)))
+                             "/"))))
+      (notify (url->string dest-url))
+      (send-url (url->string
+                  (struct-copy url dest-url
+                               [fragment (or fragment
+                                             (url-fragment dest-url))]
+                               [query (append
+                                        (url-query dest-url)
+                                        (if query
+                                          (url-query
+                                            (string->url
+                                              (format "q?~a" query)))
+                                          null))])))]
+    [else
+      (let* ([path (build-path (find-user-doc-dir) sub)]
+             [path (if (file-exists? path) path (build-path (find-doc-dir) sub))])
+        (notify path)
+        (if (file-exists? path)
+          (send-url/file path #:fragment fragment #:query query)
+          (let ([part (lambda (pfx x) (if x (string-append pfx x) ""))])
+            (send-url (string-append
+                        "https://docs.racket-lang.org/"
+                        sub (part "#" fragment) (part "?" query))))))]))
 
 ;; This is an example of changing this code to use the online manuals.
 ;; Normally, it's better to set `doc-open-url` in "etc/config.rktd",