diff options
Diffstat (limited to 'lisp/net/browse-url.el')
-rw-r--r-- | lisp/net/browse-url.el | 100 |
1 files changed, 56 insertions, 44 deletions
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 58f01d5bf98..f739cd72cc3 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -47,6 +47,7 @@ ;; browse-url-xdg-open freedesktop.org xdg-open ;; browse-url-kde KDE konqueror (kfm) ;; browse-url-elinks Elinks Don't know (tried with 0.12.GIT) +;; eww-browse-url Emacs Web Wowser ;; Browsers can cache Web pages so it may be necessary to tell them to ;; reload the current page if it has changed (e.g., if you have edited @@ -758,7 +759,7 @@ for use in `interactive'." ;;;###autoload (defun browse-url-of-file (&optional file) - "Ask a WWW browser to display FILE. + "Use a web browser to display FILE. Display the current buffer's file if FILE is nil or if called interactively. Turn the filename into a URL with function `browse-url-file-url'. Pass the URL to a browser using the @@ -773,6 +774,8 @@ interactively. Turn the filename into a URL with function (cond ((not (buffer-modified-p))) (browse-url-save-file (save-buffer)) (t (message "%s modified since last save" file)))))) + (when (file-remote-p file) + (setq file (file-local-copy file))) (browse-url (browse-url-file-url file)) (run-hooks 'browse-url-of-file-hook)) @@ -793,7 +796,9 @@ Use variable `browse-url-filename-alist' to map filenames to URLs." ;;;###autoload (defun browse-url-of-buffer (&optional buffer) - "Ask a WWW browser to display BUFFER. + "Use a web browser to display BUFFER. +See `browse-url' for details. + Display the current buffer if BUFFER is nil. Display only the currently visible part of BUFFER (from a temporary file) if buffer is narrowed." @@ -826,7 +831,7 @@ If optional arg TEMP-FILE-NAME is non-nil, delete it instead." (if (and file-name (file-exists-p file-name)) (delete-file file-name)))) -(add-hook 'kill-buffer-hook 'browse-url-delete-temp-file) +(add-hook 'kill-buffer-hook #'browse-url-delete-temp-file) (declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep)) @@ -842,7 +847,8 @@ If optional arg TEMP-FILE-NAME is non-nil, delete it instead." ;;;###autoload (defun browse-url-of-region (min max) - "Ask a WWW browser to display the current region." + "Use a web browser to display the current region. +See `browse-url' for details." (interactive "r") (save-excursion (save-restriction @@ -856,14 +862,18 @@ If optional arg TEMP-FILE-NAME is non-nil, delete it instead." ;;;###autoload (defun browse-url (url &rest args) - "Ask a WWW browser to load URL. -Prompt for a URL, defaulting to the URL at or before point. -Invokes a suitable browser function which does the actual job. + "Open URL using a configurable method. +This will typically (by default) open URL with an external web +browser, but a wide variety of different methods can be used, +depending on the URL type. The variables `browse-url-browser-function', `browse-url-handlers', and `browse-url-default-handlers' determine which browser function to use. +This command prompts for a URL, defaulting to the URL at or +before point. + The additional ARGS are passed to the browser function. See the doc strings of the actual functions, starting with `browse-url-browser-function', for information about the @@ -895,8 +905,8 @@ If ARGS are omitted, the default is to pass ;;;###autoload (defun browse-url-at-point (&optional arg) - "Ask a WWW browser to load the URL at or before point. -Variable `browse-url-browser-function' says which browser to use. + "Open URL at point using a configurable method. +See `browse-url' for details. Optional prefix argument ARG non-nil inverts the value of the option `browse-url-new-window-flag'." (interactive "P") @@ -937,10 +947,11 @@ opposite of the browser kind of `browse-url-browser-function'." ;;;###autoload (defun browse-url-at-mouse (event) - "Ask a WWW browser to load a URL clicked with the mouse. -The URL is the one around or before the position of the mouse click -but point is not changed. Variable `browse-url-browser-function' -says which browser to use." + "Use a web browser to load a URL clicked with the mouse. +See `browse-url' for details. + +The URL is the one around or before the position of the mouse +click but point is not changed." (interactive "e") (save-excursion (mouse-set-point event) @@ -1064,7 +1075,7 @@ xdg-open is a desktop utility that calls your preferred web browser." (executable-find "xdg-open"))) ;;;###autoload -(defun browse-url-xdg-open (url &optional ignored) +(defun browse-url-xdg-open (url &optional _ignored) "Pass the specified URL to the \"xdg-open\" command. xdg-open is a desktop utility that calls your preferred web browser. The optional argument IGNORED is not used." @@ -1095,7 +1106,7 @@ used instead of `browse-url-new-window-flag'." (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment)) (process - (apply 'start-process + (apply #'start-process (concat "netscape " url) nil browse-url-netscape-program (append @@ -1113,8 +1124,8 @@ used instead of `browse-url-new-window-flag'." ",new-window")) ")")))))))) (set-process-sentinel process - `(lambda (process change) - (browse-url-netscape-sentinel process ,url))))) + (lambda (process _change) + (browse-url-netscape-sentinel process url))))) (function-put 'browse-url-netscape 'browse-url-browser-kind 'external) @@ -1125,7 +1136,7 @@ used instead of `browse-url-new-window-flag'." (let* ((process-environment (browse-url-process-environment))) ;; Netscape not running - start it (message "Starting %s..." browse-url-netscape-program) - (apply 'start-process (concat "netscape" url) nil + (apply #'start-process (concat "netscape" url) nil browse-url-netscape-program (append browse-url-netscape-startup-arguments (list url)))))) @@ -1144,7 +1155,7 @@ How depends on `browse-url-netscape-version'." "Send a remote control command to Netscape." (declare (obsolete nil "25.1")) (let* ((process-environment (browse-url-process-environment))) - (apply 'start-process "netscape" nil + (apply #'start-process "netscape" nil browse-url-netscape-program (append browse-url-netscape-arguments (list "-remote" command))))) @@ -1170,7 +1181,7 @@ used instead of `browse-url-new-window-flag'." (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment)) (process - (apply 'start-process + (apply #'start-process (concat "mozilla " url) nil browse-url-mozilla-program (append @@ -1185,8 +1196,8 @@ used instead of `browse-url-new-window-flag'." ",new-window")) ")")))))) (set-process-sentinel process - `(lambda (process change) - (browse-url-mozilla-sentinel process ,url))))) + (lambda (process _change) + (browse-url-mozilla-sentinel process url))))) (function-put 'browse-url-mozilla 'browse-url-browser-kind 'external) @@ -1196,7 +1207,7 @@ used instead of `browse-url-new-window-flag'." (let* ((process-environment (browse-url-process-environment))) ;; Mozilla is not running - start it (message "Starting %s..." browse-url-mozilla-program) - (apply 'start-process (concat "mozilla " url) nil + (apply #'start-process (concat "mozilla " url) nil browse-url-mozilla-program (append browse-url-mozilla-startup-arguments (list url)))))) @@ -1219,7 +1230,7 @@ instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment))) - (apply 'start-process + (apply #'start-process (concat "firefox " url) nil browse-url-firefox-program (append @@ -1242,7 +1253,7 @@ The optional argument NEW-WINDOW is not used." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment))) - (apply 'start-process + (apply #'start-process (concat "chromium " url) nil browse-url-chromium-program (append @@ -1260,7 +1271,7 @@ The optional argument NEW-WINDOW is not used." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment))) - (apply 'start-process + (apply #'start-process (concat "google-chrome " url) nil browse-url-chrome-program (append @@ -1290,7 +1301,7 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment)) - (process (apply 'start-process + (process (apply #'start-process (concat "galeon " url) nil browse-url-galeon-program @@ -1303,8 +1314,8 @@ used instead of `browse-url-new-window-flag'." '("--existing")) (list url))))) (set-process-sentinel process - `(lambda (process change) - (browse-url-galeon-sentinel process ,url))))) + (lambda (process _change) + (browse-url-galeon-sentinel process url))))) (function-put 'browse-url-galeon 'browse-url-browser-kind 'external) @@ -1315,7 +1326,7 @@ used instead of `browse-url-new-window-flag'." (let* ((process-environment (browse-url-process-environment))) ;; Galeon is not running - start it (message "Starting %s..." browse-url-galeon-program) - (apply 'start-process (concat "galeon " url) nil + (apply #'start-process (concat "galeon " url) nil browse-url-galeon-program (append browse-url-galeon-startup-arguments (list url)))))) @@ -1338,7 +1349,7 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment)) - (process (apply 'start-process + (process (apply #'start-process (concat "epiphany " url) nil browse-url-epiphany-program @@ -1351,8 +1362,8 @@ used instead of `browse-url-new-window-flag'." '("--existing")) (list url))))) (set-process-sentinel process - `(lambda (process change) - (browse-url-epiphany-sentinel process ,url))))) + (lambda (process _change) + (browse-url-epiphany-sentinel process url))))) (function-put 'browse-url-epiphany 'browse-url-browser-kind 'external) @@ -1362,7 +1373,7 @@ used instead of `browse-url-new-window-flag'." (let* ((process-environment (browse-url-process-environment))) ;; Epiphany is not running - start it (message "Starting %s..." browse-url-epiphany-program) - (apply 'start-process (concat "epiphany " url) nil + (apply #'start-process (concat "epiphany " url) nil browse-url-epiphany-program (append browse-url-epiphany-startup-arguments (list url)))))) @@ -1403,7 +1414,7 @@ When called non-interactively, optional second argument NEW-WINDOW is used instead of `browse-url-new-window-flag'." (declare (obsolete nil "25.1")) (interactive (browse-url-interactive-arg "URL: ")) - (apply 'start-process (concat "gnome-moz-remote " url) + (apply #'start-process (concat "gnome-moz-remote " url) nil browse-url-gnome-moz-program (append @@ -1437,7 +1448,7 @@ NEW-WINDOW instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) (let* ((process-environment (browse-url-process-environment))) - (apply 'start-process (format "conkeror %s" url) + (apply #'start-process (format "conkeror %s" url) nil browse-url-conkeror-program (append @@ -1487,7 +1498,7 @@ The `browse-url-gnudoit-program' program is used with options given by `browse-url-gnudoit-args'. Default to the URL around or before point." (declare (obsolete nil "25.1")) (interactive (browse-url-interactive-arg "W3 URL: ")) - (apply 'start-process (concat "gnudoit:" url) nil + (apply #'start-process (concat "gnudoit:" url) nil browse-url-gnudoit-program (append browse-url-gnudoit-args (list (concat "(w3-fetch \"" url "\")") @@ -1633,7 +1644,7 @@ used instead of `browse-url-new-window-flag'." (insert "\n")) (goto-char (prog1 (point) - (insert (replace-regexp-in-string "\r\n" "\n" body)) + (insert (string-replace "\r\n" "\n" body)) (unless (bolp) (insert "\n")))))))) @@ -1667,7 +1678,7 @@ don't offer a form of remote control." (interactive (browse-url-interactive-arg "URL: ")) (if (not browse-url-generic-program) (error "No browser defined (`browse-url-generic-program')")) - (apply 'call-process browse-url-generic-program nil + (apply #'call-process browse-url-generic-program nil 0 nil (append browse-url-generic-args (list url)))) @@ -1715,8 +1726,8 @@ from `browse-url-elinks-wrapper'." (elinks-ping-process (start-process "elinks-ping" nil "elinks" "-remote" "ping()"))) (set-process-sentinel elinks-ping-process - `(lambda (process change) - (browse-url-elinks-sentinel process ,url)))))) + (lambda (process _change) + (browse-url-elinks-sentinel process url)))))) (function-put 'browse-url-elinks 'browse-url-browser-kind 'external) @@ -1742,9 +1753,9 @@ from `browse-url-elinks-wrapper'." (defvar browse-url-button-map (let ((map (make-sparse-keymap))) - (define-key map "\r" 'browse-url-button-open) - (define-key map [mouse-2] 'browse-url-button-open) - (define-key map "w" 'browse-url-button-copy) + (define-key map "\r" #'browse-url-button-open) + (define-key map [mouse-2] #'browse-url-button-open) + (define-key map "w" #'browse-url-button-copy) map) "The keymap used for browse-url buttons.") @@ -1782,6 +1793,7 @@ external browser instead of the default one." (funcall browse-url-secondary-browser-function url) (browse-url url)))) +;;;###autoload (defun browse-url-button-open-url (url) "Open URL using `browse-url'. If `current-prefix-arg' is non-nil, use |