Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
This commit is contained in:
@@ -187,7 +187,7 @@ switch EWW buffers through a minibuffer prompt, press @kbd{s}
|
||||
(@code{eww-switch-to-buffer}).
|
||||
|
||||
@findex eww-browse-with-external-browser
|
||||
@vindex shr-external-browser
|
||||
@vindex browse-url-external-browser
|
||||
@vindex eww-use-external-browser-for-content-type
|
||||
@kindex &
|
||||
@cindex External Browser
|
||||
@@ -197,7 +197,7 @@ or are not implemented (E.g., JavaScript). If you have trouble
|
||||
viewing a website with EWW then hit @kbd{&}
|
||||
(@code{eww-browse-with-external-browser}) inside the EWW buffer to
|
||||
open the website in the external browser specified by
|
||||
@code{shr-external-browser}. Some content types, such as video or
|
||||
@code{browse-url-external-browser}. Some content types, such as video or
|
||||
audio content, do not make sense to display in GNU Emacs at all. You
|
||||
can tell EWW to open specific content automatically in an external
|
||||
browser by customizing
|
||||
|
||||
@@ -10164,7 +10164,7 @@ do so.
|
||||
@findex gnus-summary-browse-url
|
||||
Scan the article buffer for links, and offer them to the user for
|
||||
browsing with @code{browse-url}. With a prefix argument, browse with
|
||||
@code{shr-external-browser} instead.
|
||||
@code{browse-url-external-browser} instead.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
10
etc/NEWS
10
etc/NEWS
@@ -765,6 +765,12 @@ start of a sentence or at '(point-min)', else '@ref'.
|
||||
It now treats the optional 2nd argument to mean that the URL should be
|
||||
shown in the currently selected window.
|
||||
|
||||
*** A new function, 'browse-url-add-buttons' can be used to add clickable
|
||||
links to most ordinary special-mode buffers that display text that
|
||||
have URLs embedded. 'browse-url-button-regexp' controls what's
|
||||
considered a button.
|
||||
|
||||
*** A new variable, 'browse-url-external-browser', has been added.
|
||||
** Comint
|
||||
|
||||
+++
|
||||
@@ -1037,6 +1043,10 @@ has been executed.
|
||||
If set, shr will not render tags with attribute 'aria-hidden="true"'.
|
||||
This attribute is meant to tell screen readers to ignore a tag.
|
||||
|
||||
+++
|
||||
*** 'shr-external-browser' has been made into an obsolete alias
|
||||
of 'browse-url-external-browser'.
|
||||
|
||||
---
|
||||
*** 'shr-tag-ol' now respects the ordered list 'start' attribute.
|
||||
|
||||
|
||||
@@ -113,9 +113,9 @@
|
||||
|
||||
;;;###autoload
|
||||
(defmacro define-derived-mode (child parent name &optional docstring &rest body)
|
||||
"Create a new mode as a variant of an existing mode.
|
||||
"Create a new mode CHILD which is a variant of an existing mode PARENT.
|
||||
|
||||
The arguments to this command are as follow:
|
||||
The arguments are as follows:
|
||||
|
||||
CHILD: the name of the command for the derived mode.
|
||||
PARENT: the name of the command for the parent mode (e.g. `text-mode')
|
||||
@@ -123,25 +123,28 @@ PARENT: the name of the command for the parent mode (e.g. `text-mode')
|
||||
NAME: a string which will appear in the status line (e.g. \"Hypertext\")
|
||||
DOCSTRING: an optional documentation string--if you do not supply one,
|
||||
the function will attempt to invent something useful.
|
||||
KEYWORDS: optional keywords.
|
||||
KEYWORD-ARGS:
|
||||
optional arguments in the form of pairs of keyword and value.
|
||||
The following keyword arguments are currently supported:
|
||||
|
||||
:group GROUP
|
||||
Declare the customization group that corresponds
|
||||
to this mode. The command `customize-mode' uses this.
|
||||
:syntax-table TABLE
|
||||
Use TABLE instead of the default (CHILD-syntax-table).
|
||||
A nil value means to simply use the same syntax-table
|
||||
as the parent.
|
||||
:abbrev-table TABLE
|
||||
Use TABLE instead of the default (CHILD-abbrev-table).
|
||||
A nil value means to simply use the same abbrev-table
|
||||
as the parent.
|
||||
:after-hook FORM
|
||||
A single lisp form which is evaluated after the mode
|
||||
hooks have been run. It should not be quoted.
|
||||
|
||||
BODY: forms to execute just before running the
|
||||
hooks for the new mode. Do not use `interactive' here.
|
||||
|
||||
The following keywords are currently supported:
|
||||
|
||||
:group GROUP
|
||||
Declare the customization group that corresponds to this mode.
|
||||
The command `customize-mode' uses this.
|
||||
:syntax-table TABLE
|
||||
Use TABLE instead of the default (CHILD-syntax-table).
|
||||
A nil value means to simply use the same syntax-table as the parent.
|
||||
:abbrev-table TABLE
|
||||
Use TABLE instead of the default (CHILD-abbrev-table).
|
||||
A nil value means to simply use the same abbrev-table as the parent.
|
||||
:after-hook FORM
|
||||
A single lisp form which is evaluated after the mode hooks have been
|
||||
run. It should not be quoted.
|
||||
|
||||
Here is how you could define LaTeX-Thesis mode as a variant of LaTeX mode:
|
||||
|
||||
(define-derived-mode LaTeX-thesis-mode LaTeX-mode \"LaTeX-Thesis\")
|
||||
@@ -165,7 +168,7 @@ The new mode runs the hook constructed by the function
|
||||
|
||||
See Info node `(elisp)Derived Modes' for more details.
|
||||
|
||||
\(fn CHILD PARENT NAME [DOCSTRING] [KEYWORDS...] &rest BODY)"
|
||||
\(fn CHILD PARENT NAME [DOCSTRING] [KEYWORD-ARGS...] &rest BODY)"
|
||||
(declare (debug (&define name symbolp sexp [&optional stringp]
|
||||
[&rest keywordp sexp] def-body))
|
||||
(doc-string 4)
|
||||
|
||||
@@ -151,6 +151,7 @@
|
||||
(require 'tabulated-list)
|
||||
(require 'macroexp)
|
||||
(require 'url-handlers)
|
||||
(require 'browse-url)
|
||||
|
||||
(defgroup package nil
|
||||
"Manager for Emacs Lisp packages."
|
||||
@@ -2504,44 +2505,47 @@ The description is read from the installed package files."
|
||||
|
||||
(insert "\n")
|
||||
|
||||
(if built-in
|
||||
;; For built-in packages, get the description from the
|
||||
;; Commentary header.
|
||||
(let ((fn (locate-file (format "%s.el" name) load-path
|
||||
load-file-rep-suffixes))
|
||||
(opoint (point)))
|
||||
(insert (or (lm-commentary fn) ""))
|
||||
(save-excursion
|
||||
(goto-char opoint)
|
||||
(when (re-search-forward "^;;; Commentary:\n" nil t)
|
||||
(replace-match ""))
|
||||
(while (re-search-forward "^\\(;+ ?\\)" nil t)
|
||||
(replace-match ""))))
|
||||
|
||||
(if (package-installed-p desc)
|
||||
;; For installed packages, get the description from the
|
||||
;; installed files.
|
||||
(insert (package--get-description desc))
|
||||
|
||||
;; For non-built-in, non-installed packages, get description from
|
||||
;; the archive.
|
||||
(let* ((basename (format "%s-readme.txt" name))
|
||||
readme-string)
|
||||
|
||||
(package--with-response-buffer (package-archive-base desc)
|
||||
:file basename :noerror t
|
||||
(let ((start-of-description (point)))
|
||||
(if built-in
|
||||
;; For built-in packages, get the description from the
|
||||
;; Commentary header.
|
||||
(let ((fn (locate-file (format "%s.el" name) load-path
|
||||
load-file-rep-suffixes))
|
||||
(opoint (point)))
|
||||
(insert (or (lm-commentary fn) ""))
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(unless (bolp)
|
||||
(insert ?\n)))
|
||||
(cl-assert (not enable-multibyte-characters))
|
||||
(setq readme-string
|
||||
;; The readme.txt files are defined to contain utf-8 text.
|
||||
(decode-coding-region (point-min) (point-max) 'utf-8 t))
|
||||
t)
|
||||
(insert (or readme-string
|
||||
"This package does not provide a description.")))
|
||||
))))
|
||||
(goto-char opoint)
|
||||
(when (re-search-forward "^;;; Commentary:\n" nil t)
|
||||
(replace-match ""))
|
||||
(while (re-search-forward "^\\(;+ ?\\)" nil t)
|
||||
(replace-match ""))))
|
||||
|
||||
(if (package-installed-p desc)
|
||||
;; For installed packages, get the description from the
|
||||
;; installed files.
|
||||
(insert (package--get-description desc))
|
||||
|
||||
;; For non-built-in, non-installed packages, get description from
|
||||
;; the archive.
|
||||
(let* ((basename (format "%s-readme.txt" name))
|
||||
readme-string)
|
||||
|
||||
(package--with-response-buffer (package-archive-base desc)
|
||||
:file basename :noerror t
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(unless (bolp)
|
||||
(insert ?\n)))
|
||||
(cl-assert (not enable-multibyte-characters))
|
||||
(setq readme-string
|
||||
;; The readme.txt files are defined to contain utf-8 text.
|
||||
(decode-coding-region (point-min) (point-max) 'utf-8 t))
|
||||
t)
|
||||
(insert (or readme-string
|
||||
"This package does not provide a description.")))))
|
||||
;; Make URLs in the description into links.
|
||||
(goto-char start-of-description)
|
||||
(browse-url-add-buttons))))
|
||||
|
||||
(defun package-install-button-action (button)
|
||||
(let ((pkg-desc (button-get button 'package-desc)))
|
||||
|
||||
@@ -7343,27 +7343,9 @@ groups."
|
||||
|
||||
;; Written by Per Abrahamsen <abraham@iesd.auc.dk>.
|
||||
|
||||
;;; Internal Variables:
|
||||
|
||||
(defcustom gnus-button-url-regexp
|
||||
(concat
|
||||
"\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|"
|
||||
"nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)"
|
||||
"\\(//[-a-z0-9_.]+:[0-9]*\\)?"
|
||||
(let ((chars "-a-z0-9_=#$@~%&*+\\/[:word:]")
|
||||
(punct "!?:;.,"))
|
||||
(concat
|
||||
"\\(?:"
|
||||
;; Match paired parentheses, e.g. in Wikipedia URLs:
|
||||
;; http://thread.gmane.org/47B4E3B2.3050402@gmail.com
|
||||
"[" chars punct "]+" "(" "[" chars punct "]+" "[" chars "]*)"
|
||||
"\\(?:" "[" chars punct "]+" "[" chars "]" "\\)?"
|
||||
"\\|"
|
||||
"[" chars punct "]+" "[" chars "]"
|
||||
"\\)"))
|
||||
"\\)")
|
||||
(defcustom gnus-button-url-regexp browse-url-button-regexp
|
||||
"Regular expression that matches URLs."
|
||||
:version "24.4"
|
||||
:version "27.1"
|
||||
:group 'gnus-article-buttons
|
||||
:type 'regexp)
|
||||
|
||||
|
||||
@@ -9478,7 +9478,7 @@ The 1st element is the widget named by `gnus-collect-urls-primary-text'."
|
||||
"Scan the current article body for links, and offer to browse them.
|
||||
|
||||
Links are opened using `browse-url' unless a prefix argument is
|
||||
given: Then `shr-external-browser' is used instead.
|
||||
given: Then `browse-url-external-browser' is used instead.
|
||||
|
||||
If only one link is found, browse that directly, otherwise use
|
||||
completion to select a link. The first link marked in the
|
||||
@@ -9502,7 +9502,7 @@ default."
|
||||
(car urls)))))
|
||||
(if target
|
||||
(if external
|
||||
(funcall shr-external-browser target)
|
||||
(funcall browse-url-external-browser target)
|
||||
(browse-url target))
|
||||
(message "No URLs found.")))))
|
||||
|
||||
|
||||
@@ -131,9 +131,36 @@
|
||||
:group 'external
|
||||
:group 'comm)
|
||||
|
||||
(defvar browse-url--browser-defcustom-type
|
||||
'(choice
|
||||
(function-item :tag "Emacs W3" :value browse-url-w3)
|
||||
(function-item :tag "eww" :value eww-browse-url)
|
||||
(function-item :tag "Mozilla" :value browse-url-mozilla)
|
||||
(function-item :tag "Firefox" :value browse-url-firefox)
|
||||
(function-item :tag "Google Chrome" :value browse-url-chrome)
|
||||
(function-item :tag "Chromium" :value browse-url-chromium)
|
||||
(function-item :tag "Epiphany" :value browse-url-epiphany)
|
||||
(function-item :tag "Conkeror" :value browse-url-conkeror)
|
||||
(function-item :tag "Text browser in an xterm window"
|
||||
:value browse-url-text-xterm)
|
||||
(function-item :tag "Text browser in an Emacs window"
|
||||
:value browse-url-text-emacs)
|
||||
(function-item :tag "KDE" :value browse-url-kde)
|
||||
(function-item :tag "Elinks" :value browse-url-elinks)
|
||||
(function-item :tag "Specified by `Browse Url Generic Program'"
|
||||
:value browse-url-generic)
|
||||
(function-item :tag "Default Windows browser"
|
||||
:value browse-url-default-windows-browser)
|
||||
(function-item :tag "Default macOS browser"
|
||||
:value browse-url-default-macosx-browser)
|
||||
(function-item :tag "Default browser"
|
||||
:value browse-url-default-browser)
|
||||
(function :tag "Your own function")
|
||||
(alist :tag "Regexp/function association list"
|
||||
:key-type regexp :value-type function)))
|
||||
|
||||
;;;###autoload
|
||||
(defcustom browse-url-browser-function
|
||||
'browse-url-default-browser
|
||||
(defcustom browse-url-browser-function 'browse-url-default-browser
|
||||
"Function to display the current buffer in a WWW browser.
|
||||
This is used by the `browse-url-at-point', `browse-url-at-mouse', and
|
||||
`browse-url-of-file' commands.
|
||||
@@ -143,34 +170,17 @@ If the value is not a function it should be a list of pairs
|
||||
associated with the first REGEXP which matches the current URL. The
|
||||
function is passed the URL and any other args of `browse-url'. The last
|
||||
regexp should probably be \".\" to specify a default browser."
|
||||
:type '(choice
|
||||
(function-item :tag "Emacs W3" :value browse-url-w3)
|
||||
(function-item :tag "eww" :value eww-browse-url)
|
||||
(function-item :tag "Mozilla" :value browse-url-mozilla)
|
||||
(function-item :tag "Firefox" :value browse-url-firefox)
|
||||
(function-item :tag "Google Chrome" :value browse-url-chrome)
|
||||
(function-item :tag "Chromium" :value browse-url-chromium)
|
||||
(function-item :tag "Epiphany" :value browse-url-epiphany)
|
||||
(function-item :tag "Conkeror" :value browse-url-conkeror)
|
||||
(function-item :tag "Text browser in an xterm window"
|
||||
:value browse-url-text-xterm)
|
||||
(function-item :tag "Text browser in an Emacs window"
|
||||
:value browse-url-text-emacs)
|
||||
(function-item :tag "KDE" :value browse-url-kde)
|
||||
(function-item :tag "Elinks" :value browse-url-elinks)
|
||||
(function-item :tag "Specified by `Browse Url Generic Program'"
|
||||
:value browse-url-generic)
|
||||
(function-item :tag "Default Windows browser"
|
||||
:value browse-url-default-windows-browser)
|
||||
(function-item :tag "Default macOS browser"
|
||||
:value browse-url-default-macosx-browser)
|
||||
(function-item :tag "Default browser"
|
||||
:value browse-url-default-browser)
|
||||
(function :tag "Your own function")
|
||||
(alist :tag "Regexp/function association list"
|
||||
:key-type regexp :value-type function))
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
:type browse-url--browser-defcustom-type
|
||||
:version "24.1")
|
||||
|
||||
(defcustom browse-url-external-browser 'browse-url-default-browser
|
||||
"Function used to launch an external browser.
|
||||
This can actually be any browser, internal or external, used as
|
||||
the secondary browser choice, and is typically used when giving a
|
||||
prefix argument to the URL-opening command (in those modes that
|
||||
support this (for instance, eww/shr)."
|
||||
:version "27.1"
|
||||
:type browse-url--browser-defcustom-type)
|
||||
|
||||
(defcustom browse-url-mailto-function 'browse-url-mail
|
||||
"Function to display mailto: links.
|
||||
@@ -181,8 +191,7 @@ be used instead."
|
||||
:type '(choice
|
||||
(function-item :tag "Emacs Mail" :value browse-url-mail)
|
||||
(function-item :tag "None" nil))
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
:version "24.1")
|
||||
|
||||
(defcustom browse-url-man-function 'browse-url-man
|
||||
"Function to display man: links."
|
||||
@@ -190,8 +199,28 @@ be used instead."
|
||||
(function-item :tag "Emacs Man" :value browse-url-man)
|
||||
(const :tag "None" nil)
|
||||
(function :tag "Other function"))
|
||||
:version "26.1"
|
||||
:group 'browse-url)
|
||||
:version "26.1")
|
||||
|
||||
(defcustom browse-url-button-regexp
|
||||
(concat
|
||||
"\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|"
|
||||
"nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)"
|
||||
"\\(//[-a-z0-9_.]+:[0-9]*\\)?"
|
||||
(let ((chars "-a-z0-9_=#$@~%&*+\\/[:word:]")
|
||||
(punct "!?:;.,"))
|
||||
(concat
|
||||
"\\(?:"
|
||||
;; Match paired parentheses, e.g. in Wikipedia URLs:
|
||||
;; http://thread.gmane.org/47B4E3B2.3050402@gmail.com
|
||||
"[" chars punct "]+" "(" "[" chars punct "]+" "[" chars "]*)"
|
||||
"\\(?:" "[" chars punct "]+" "[" chars "]" "\\)?"
|
||||
"\\|"
|
||||
"[" chars punct "]+" "[" chars "]"
|
||||
"\\)"))
|
||||
"\\)")
|
||||
"Regular expression that matches URLs."
|
||||
:version "27.1"
|
||||
:type 'regexp)
|
||||
|
||||
(defcustom browse-url-netscape-program "netscape"
|
||||
;; Info about netscape-remote from Karl Berry.
|
||||
@@ -202,15 +231,13 @@ The free program `netscape-remote' from
|
||||
up very much quicker than `netscape'. Reported to compile on a GNU
|
||||
system, given vroot.h from the same directory, with cc flags
|
||||
-DSTANDALONE -L/usr/X11R6/lib -lXmu -lX11."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(make-obsolete-variable 'browse-url-netscape-program nil "25.1")
|
||||
|
||||
(defcustom browse-url-netscape-arguments nil
|
||||
"A list of strings to pass to Netscape as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-netscape-arguments nil "25.1")
|
||||
|
||||
@@ -218,33 +245,27 @@ system, given vroot.h from the same directory, with cc flags
|
||||
"A list of strings to pass to Netscape when it starts up.
|
||||
Defaults to the value of `browse-url-netscape-arguments' at the time
|
||||
`browse-url' is loaded."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-netscape-startup-arguments nil "25.1")
|
||||
|
||||
(defcustom browse-url-browser-display nil
|
||||
"The X display for running the browser, if not same as Emacs's."
|
||||
:type '(choice string (const :tag "Default" nil))
|
||||
:group 'browse-url)
|
||||
:type '(choice string (const :tag "Default" nil)))
|
||||
|
||||
(defcustom browse-url-mozilla-program "mozilla"
|
||||
"The name by which to invoke Mozilla."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-mozilla-arguments nil
|
||||
"A list of strings to pass to Mozilla as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-mozilla-startup-arguments browse-url-mozilla-arguments
|
||||
"A list of strings to pass to Mozilla when it starts up.
|
||||
Defaults to the value of `browse-url-mozilla-arguments' at the time
|
||||
`browse-url' is loaded."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-firefox-program
|
||||
(let ((candidates '("icecat" "iceweasel" "firefox")))
|
||||
@@ -252,20 +273,17 @@ Defaults to the value of `browse-url-mozilla-arguments' at the time
|
||||
(setq candidates (cdr candidates)))
|
||||
(or (car candidates) "firefox"))
|
||||
"The name by which to invoke Firefox or a variant of it."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-firefox-arguments nil
|
||||
"A list of strings to pass to Firefox (or variant) as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-firefox-startup-arguments browse-url-firefox-arguments
|
||||
"A list of strings to pass to Firefox (or variant) when it starts up.
|
||||
Defaults to the value of `browse-url-firefox-arguments' at the time
|
||||
`browse-url' is loaded."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-firefox-startup-arguments
|
||||
"it no longer has any effect." "24.5")
|
||||
@@ -277,14 +295,12 @@ Defaults to the value of `browse-url-firefox-arguments' at the time
|
||||
(or (car candidates) "chromium"))
|
||||
"The name by which to invoke the Chrome browser."
|
||||
:type 'string
|
||||
:version "25.1"
|
||||
:group 'browse-url)
|
||||
:version "25.1")
|
||||
|
||||
(defcustom browse-url-chrome-arguments nil
|
||||
"A list of strings to pass to Google Chrome as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:version "25.1"
|
||||
:group 'browse-url)
|
||||
:version "25.1")
|
||||
|
||||
(defcustom browse-url-chromium-program
|
||||
(let ((candidates '("chromium" "chromium-browser")))
|
||||
@@ -293,26 +309,22 @@ Defaults to the value of `browse-url-firefox-arguments' at the time
|
||||
(or (car candidates) "chromium"))
|
||||
"The name by which to invoke Chromium."
|
||||
:type 'string
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
:version "24.1")
|
||||
|
||||
(defcustom browse-url-chromium-arguments nil
|
||||
"A list of strings to pass to Chromium as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
:version "24.1")
|
||||
|
||||
(defcustom browse-url-galeon-program "galeon"
|
||||
"The name by which to invoke Galeon."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(make-obsolete-variable 'browse-url-galeon-program nil "25.1")
|
||||
|
||||
(defcustom browse-url-galeon-arguments nil
|
||||
"A list of strings to pass to Galeon as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-galeon-arguments nil "25.1")
|
||||
|
||||
@@ -320,27 +332,23 @@ Defaults to the value of `browse-url-firefox-arguments' at the time
|
||||
"A list of strings to pass to Galeon when it starts up.
|
||||
Defaults to the value of `browse-url-galeon-arguments' at the time
|
||||
`browse-url' is loaded."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-galeon-startup-arguments nil "25.1")
|
||||
|
||||
(defcustom browse-url-epiphany-program "epiphany"
|
||||
"The name by which to invoke Epiphany."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-epiphany-arguments nil
|
||||
"A list of strings to pass to Epiphany as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-epiphany-startup-arguments browse-url-epiphany-arguments
|
||||
"A list of strings to pass to Epiphany when it starts up.
|
||||
Defaults to the value of `browse-url-epiphany-arguments' at the time
|
||||
`browse-url' is loaded."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
;; GNOME means of invoking either Mozilla or Netscape.
|
||||
(defvar browse-url-gnome-moz-program "gnome-moz-remote")
|
||||
@@ -350,8 +358,7 @@ Defaults to the value of `browse-url-epiphany-arguments' at the time
|
||||
(defcustom browse-url-gnome-moz-arguments '()
|
||||
"A list of strings passed to the GNOME mozilla viewer as arguments."
|
||||
:version "21.1"
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-gnome-moz-arguments nil "25.1")
|
||||
|
||||
@@ -359,30 +366,26 @@ Defaults to the value of `browse-url-epiphany-arguments' at the time
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new window if
|
||||
`browse-url-mozilla' is asked to open it in a new window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-firefox-new-window-is-tab nil
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new window if
|
||||
`browse-url-firefox' is asked to open it in a new window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-conkeror-new-window-is-buffer nil
|
||||
"Whether to open up new windows in a buffer or a new window.
|
||||
If non-nil, then open the URL in a new buffer rather than a new window if
|
||||
`browse-url-conkeror' is asked to open it in a new window."
|
||||
:version "25.1"
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-galeon-new-window-is-tab nil
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new window if
|
||||
`browse-url-galeon' is asked to open it in a new window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(make-obsolete-variable 'browse-url-galeon-new-window-is-tab nil "25.1")
|
||||
|
||||
@@ -390,16 +393,14 @@ If non-nil, then open the URL in a new tab rather than a new window if
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new window if
|
||||
`browse-url-epiphany' is asked to open it in a new window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-netscape-new-window-is-tab nil
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new
|
||||
window if `browse-url-netscape' is asked to open it in a new
|
||||
window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(make-obsolete-variable 'browse-url-netscape-new-window-is-tab nil "25.1")
|
||||
|
||||
@@ -407,42 +408,36 @@ window."
|
||||
"Non-nil means always open a new browser window with appropriate browsers.
|
||||
Passing an interactive argument to \\[browse-url], or specific browser
|
||||
commands reverses the effect of this variable."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-mosaic-program "xmosaic"
|
||||
"The name by which to invoke Mosaic (or mMosaic)."
|
||||
:type 'string
|
||||
:version "20.3"
|
||||
:group 'browse-url)
|
||||
:version "20.3")
|
||||
|
||||
(make-obsolete-variable 'browse-url-mosaic-program nil "25.1")
|
||||
|
||||
(defcustom browse-url-mosaic-arguments nil
|
||||
"A list of strings to pass to Mosaic as arguments."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(make-obsolete-variable 'browse-url-mosaic-arguments nil "25.1")
|
||||
|
||||
(defcustom browse-url-mosaic-pidfile "~/.mosaicpid"
|
||||
"The name of the pidfile created by Mosaic."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(make-obsolete-variable 'browse-url-mosaic-pidfile nil "25.1")
|
||||
|
||||
(defcustom browse-url-conkeror-program "conkeror"
|
||||
"The name by which to invoke Conkeror."
|
||||
:type 'string
|
||||
:version "25.1"
|
||||
:group 'browse-url)
|
||||
:version "25.1")
|
||||
|
||||
(defcustom browse-url-conkeror-arguments nil
|
||||
"A list of strings to pass to Conkeror as arguments."
|
||||
:version "25.1"
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-filename-alist
|
||||
`(("^/\\(ftp@\\|anonymous@\\)?\\([^:/]+\\):/*" . "ftp://\\2/")
|
||||
@@ -473,26 +468,22 @@ address to an HTTP URL:
|
||||
:type '(repeat (cons :format "%v"
|
||||
(regexp :tag "Regexp")
|
||||
(string :tag "Replacement")))
|
||||
:version "25.1"
|
||||
:group 'browse-url)
|
||||
:version "25.1")
|
||||
|
||||
(defcustom browse-url-save-file nil
|
||||
"If non-nil, save the buffer before displaying its file.
|
||||
Used by the `browse-url-of-file' command."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom browse-url-of-file-hook nil
|
||||
"Hook run after `browse-url-of-file' has asked a browser to load a file."
|
||||
:type 'hook
|
||||
:group 'browse-url)
|
||||
:type 'hook)
|
||||
|
||||
(defcustom browse-url-CCI-port 3003
|
||||
"Port to access XMosaic via CCI.
|
||||
This can be any number between 1024 and 65535 but must correspond to
|
||||
the value set in the browser."
|
||||
:type 'integer
|
||||
:group 'browse-url)
|
||||
:type 'integer)
|
||||
|
||||
(make-obsolete-variable 'browse-url-CCI-port nil "25.1")
|
||||
|
||||
@@ -500,8 +491,7 @@ the value set in the browser."
|
||||
"Host to access XMosaic via CCI.
|
||||
This should be the host name of the machine running XMosaic with CCI
|
||||
enabled. The port number should be set in `browse-url-CCI-port'."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(make-obsolete-variable 'browse-url-CCI-host nil "25.1")
|
||||
|
||||
@@ -511,57 +501,48 @@ enabled. The port number should be set in `browse-url-CCI-port'."
|
||||
(defcustom browse-url-xterm-program "xterm"
|
||||
"The name of the terminal emulator used by `browse-url-text-xterm'.
|
||||
This might, for instance, be a separate color version of xterm."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-xterm-args nil
|
||||
"A list of strings defining options for `browse-url-xterm-program'.
|
||||
These might set its size, for instance."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-gnudoit-program "gnudoit"
|
||||
"The name of the `gnudoit' program used by `browse-url-w3-gnudoit'."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-gnudoit-args '("-q")
|
||||
"A list of strings defining options for `browse-url-gnudoit-program'.
|
||||
These might set the port, for instance."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-generic-program nil
|
||||
"The name of the browser program used by `browse-url-generic'."
|
||||
:type '(choice string (const :tag "None" nil))
|
||||
:group 'browse-url)
|
||||
:type '(choice string (const :tag "None" nil)))
|
||||
|
||||
(defcustom browse-url-generic-args nil
|
||||
"A list of strings defining options for `browse-url-generic-program'."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-temp-dir temporary-file-directory
|
||||
"The name of a directory for browse-url's temporary files.
|
||||
Such files are generated by functions like `browse-url-of-region'.
|
||||
You might want to set this to somewhere with restricted read permissions
|
||||
for privacy's sake."
|
||||
:type 'string
|
||||
:group 'browse-url)
|
||||
:type 'string)
|
||||
|
||||
(defcustom browse-url-netscape-version 3
|
||||
"The version of Netscape you are using.
|
||||
This affects how URL reloading is done; the mechanism changed
|
||||
incompatibly at version 4."
|
||||
:type 'number
|
||||
:group 'browse-url)
|
||||
:type 'number)
|
||||
|
||||
(make-obsolete-variable 'browse-url-netscape-version nil "25.1")
|
||||
|
||||
(defcustom browse-url-text-browser "lynx"
|
||||
"The name of the text browser to invoke."
|
||||
:type 'string
|
||||
:group 'browse-url
|
||||
:version "23.1")
|
||||
|
||||
(defcustom browse-url-text-emacs-args (and (not window-system)
|
||||
@@ -572,8 +553,7 @@ The default is none in a window system, otherwise `-show_cursor' to
|
||||
indicate the position of the current link in the absence of
|
||||
highlighting, assuming the normal default for showing the cursor."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:version "23.1"
|
||||
:group 'browse-url)
|
||||
:version "23.1")
|
||||
|
||||
(defcustom browse-url-text-input-field 'avoid
|
||||
"Action on selecting an existing text browser buffer at an input field.
|
||||
@@ -586,36 +566,30 @@ down (this *won't* always work)."
|
||||
:type '(choice (const :tag "Move to try to avoid field" :value avoid)
|
||||
(const :tag "Disregard" :value nil)
|
||||
(const :tag "Warn, don't emit URL" :value warn))
|
||||
:version "23.1"
|
||||
:group 'browse-url)
|
||||
:version "23.1")
|
||||
|
||||
(defcustom browse-url-text-input-attempts 10
|
||||
"How many times to try to move down from a series of text browser input fields."
|
||||
:type 'integer
|
||||
:version "23.1"
|
||||
:group 'browse-url)
|
||||
:version "23.1")
|
||||
|
||||
(defcustom browse-url-text-input-delay 0.2
|
||||
"Seconds to wait for a text browser between moves down from an input field."
|
||||
:type 'number
|
||||
:version "23.1"
|
||||
:group 'browse-url)
|
||||
:version "23.1")
|
||||
|
||||
(defcustom browse-url-kde-program "kfmclient"
|
||||
"The name by which to invoke the KDE web browser."
|
||||
:type 'string
|
||||
:version "21.1"
|
||||
:group 'browse-url)
|
||||
:version "21.1")
|
||||
|
||||
(defcustom browse-url-kde-args '("openURL")
|
||||
"A list of strings defining options for `browse-url-kde-program'."
|
||||
:type '(repeat (string :tag "Argument"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Argument")))
|
||||
|
||||
(defcustom browse-url-elinks-wrapper '("xterm" "-e")
|
||||
"Wrapper command prepended to the Elinks command-line."
|
||||
:type '(repeat (string :tag "Wrapper"))
|
||||
:group 'browse-url)
|
||||
:type '(repeat (string :tag "Wrapper")))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; URL encoding
|
||||
@@ -1673,6 +1647,58 @@ from `browse-url-elinks-wrapper'."
|
||||
(error "Unrecognized exit-code %d of process `elinks'"
|
||||
exit-status))))
|
||||
|
||||
;;; Adding buttons to a buffer to call `browse-url' when you hit them.
|
||||
|
||||
(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)
|
||||
map)
|
||||
"The keymap used for browse-url buttons.")
|
||||
|
||||
(defface browse-url-button
|
||||
'((t :inherit link))
|
||||
"Face for browse-url buttons (i.e., links)."
|
||||
:version "27.1")
|
||||
|
||||
(defun browse-url-add-buttons ()
|
||||
"Add clickable buttons to the text following point in the current buffer.
|
||||
Everything that matches `browse-url-button-regexp' will be made
|
||||
clickable and will use `browse-url' to open the URLs in question."
|
||||
(let ((inhibit-read-only t))
|
||||
(save-excursion
|
||||
(while (re-search-forward browse-url-button-regexp nil t)
|
||||
(add-text-properties (match-beginning 0)
|
||||
(match-end 0)
|
||||
`(help-echo "Open the URL under point"
|
||||
keymap ,browse-url-button-map
|
||||
face browse-url-button
|
||||
button t
|
||||
browse-url-data ,(match-string 0)))))))
|
||||
|
||||
(defun browse-url-button-open (&optional external mouse-event)
|
||||
"Follow the link under point using `browse-url'.
|
||||
If EXTERNAL (the prefix if used interactively), open with the
|
||||
external browser instead of the default one."
|
||||
(interactive (list current-prefix-arg last-nonmenu-event))
|
||||
(mouse-set-point mouse-event)
|
||||
(let ((url (get-text-property (point) 'browse-url-data)))
|
||||
(unless url
|
||||
(error "No URL under point"))
|
||||
(if external
|
||||
(funcall browse-url-external-browser url)
|
||||
(browse-url url))))
|
||||
|
||||
(defun browse-url-button-copy ()
|
||||
"Copy the URL under point"
|
||||
(interactive)
|
||||
(let ((url (get-text-property (point) 'browse-url-data)))
|
||||
(unless url
|
||||
(error "No URL under point"))
|
||||
(kill-new url)
|
||||
(message "Copied %s" url)))
|
||||
|
||||
(provide 'browse-url)
|
||||
|
||||
;;; browse-url.el ends here
|
||||
|
||||
@@ -1501,13 +1501,15 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
|
||||
|
||||
(defun eww-browse-with-external-browser (&optional url)
|
||||
"Browse the current URL with an external browser.
|
||||
The browser to used is specified by the `shr-external-browser' variable."
|
||||
The browser to used is specified by the `browse-url-external-browser' variable."
|
||||
(interactive)
|
||||
(funcall shr-external-browser (or url (plist-get eww-data :url))))
|
||||
(funcall browse-url-external-browser (or url (plist-get eww-data :url))))
|
||||
|
||||
(defun eww-follow-link (&optional external mouse-event)
|
||||
"Browse the URL under point.
|
||||
If EXTERNAL is single prefix, browse the URL using `shr-external-browser'.
|
||||
If EXTERNAL is single prefix, browse the URL using
|
||||
`browse-url-external-browser'.
|
||||
|
||||
If EXTERNAL is double prefix, browse in new buffer."
|
||||
(interactive (list current-prefix-arg last-nonmenu-event))
|
||||
(mouse-set-point mouse-event)
|
||||
@@ -1518,7 +1520,7 @@ If EXTERNAL is double prefix, browse in new buffer."
|
||||
((string-match "^mailto:" url)
|
||||
(browse-url-mail url))
|
||||
((and (consp external) (<= (car external) 4))
|
||||
(funcall shr-external-browser url)
|
||||
(funcall browse-url-external-browser url)
|
||||
(shr--blink-link))
|
||||
;; This is a #target url in the same page as the current one.
|
||||
((and (url-target (url-generic-parse-url url))
|
||||
|
||||
@@ -53,53 +53,44 @@ width and height of the window. If they are larger than this,
|
||||
and Emacs supports it, then the images will be rescaled down to
|
||||
fit these criteria."
|
||||
:version "24.1"
|
||||
:group 'shr
|
||||
:type 'float)
|
||||
|
||||
(defcustom shr-blocked-images nil
|
||||
"Images that have URLs matching this regexp will be blocked."
|
||||
:version "24.1"
|
||||
:group 'shr
|
||||
:type '(choice (const nil) regexp))
|
||||
|
||||
(defcustom shr-use-fonts t
|
||||
"If non-nil, use proportional fonts for text."
|
||||
:version "25.1"
|
||||
:group 'shr
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom shr-discard-aria-hidden nil
|
||||
"If non-nil, don't render tags with `aria-hidden=\"true\"'.
|
||||
This attribute is meant to tell screen readers to ignore a tag."
|
||||
:version "27.1"
|
||||
:group 'shr
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom shr-use-colors t
|
||||
"If non-nil, respect color specifications in the HTML."
|
||||
:version "26.1"
|
||||
:group 'shr
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom shr-table-horizontal-line nil
|
||||
"Character used to draw horizontal table lines.
|
||||
If nil, don't draw horizontal table lines."
|
||||
:group 'shr
|
||||
:type '(choice (const nil) character))
|
||||
|
||||
(defcustom shr-table-vertical-line ?\s
|
||||
"Character used to draw vertical table lines."
|
||||
:group 'shr
|
||||
:type 'character)
|
||||
|
||||
(defcustom shr-table-corner ?\s
|
||||
"Character used to draw table corners."
|
||||
:group 'shr
|
||||
:type 'character)
|
||||
|
||||
(defcustom shr-hr-line ?-
|
||||
"Character used to draw hr lines."
|
||||
:group 'shr
|
||||
:type 'character)
|
||||
|
||||
(defcustom shr-width nil
|
||||
@@ -110,8 +101,7 @@ If `shr-use-fonts' is set, the mean character width is used to
|
||||
compute the pixel width, which is used instead."
|
||||
:version "25.1"
|
||||
:type '(choice (integer :tag "Fixed width in characters")
|
||||
(const :tag "Use the width of the window" nil))
|
||||
:group 'shr)
|
||||
(const :tag "Use the width of the window" nil)))
|
||||
|
||||
(defcustom shr-bullet "* "
|
||||
"Bullet used for unordered lists.
|
||||
@@ -119,19 +109,14 @@ Alternative suggestions are:
|
||||
- \" \"
|
||||
- \" \""
|
||||
:version "24.4"
|
||||
:type 'string
|
||||
:group 'shr)
|
||||
:type 'string)
|
||||
|
||||
(defcustom shr-external-browser 'browse-url-default-browser
|
||||
"Function used to launch an external browser."
|
||||
:version "24.4"
|
||||
:group 'shr
|
||||
:type 'function)
|
||||
(define-obsolete-variable-alias 'shr-external-browser
|
||||
'browse-url-external-browser "27.1")
|
||||
|
||||
(defcustom shr-image-animate t
|
||||
"Non nil means that images that can be animated will be."
|
||||
:version "24.4"
|
||||
:group 'shr
|
||||
:type 'boolean)
|
||||
|
||||
(defvar shr-content-function nil
|
||||
@@ -144,28 +129,24 @@ cid: URL as the argument.")
|
||||
|
||||
(defface shr-strike-through '((t :strike-through t))
|
||||
"Face for <s> elements."
|
||||
:version "24.1"
|
||||
:group 'shr)
|
||||
:version "24.1")
|
||||
|
||||
(defface shr-link
|
||||
'((t :inherit link))
|
||||
"Face for link elements."
|
||||
:version "24.1"
|
||||
:group 'shr)
|
||||
:version "24.1")
|
||||
|
||||
(defface shr-selected-link
|
||||
'((t :inherit shr-link :background "red"))
|
||||
"Temporary face for externally visited link elements.
|
||||
When a link is visited with an external browser, the link
|
||||
temporarily blinks with this face."
|
||||
:version "27.1"
|
||||
:group 'shr)
|
||||
:version "27.1")
|
||||
|
||||
(defface shr-abbreviation
|
||||
'((t :inherit underline :underline (:style wave)))
|
||||
"Face for <abbr> elements."
|
||||
:version "27.1"
|
||||
:group 'shr)
|
||||
:version "27.1")
|
||||
|
||||
(defvar shr-inhibit-images nil
|
||||
"If non-nil, inhibit loading images.")
|
||||
@@ -973,7 +954,7 @@ size, and full-buffer size."
|
||||
(defun shr-browse-url (&optional external mouse-event)
|
||||
"Browse the URL at point using `browse-url'.
|
||||
If EXTERNAL is non-nil (interactively, the prefix argument), browse
|
||||
the URL using `shr-external-browser'.
|
||||
the URL using `browse-url-external-browser'.
|
||||
If this function is invoked by a mouse click, it will browse the URL
|
||||
at the position of the click. Optional argument MOUSE-EVENT describes
|
||||
the mouse click event."
|
||||
@@ -988,7 +969,7 @@ the mouse click event."
|
||||
(t
|
||||
(if external
|
||||
(progn
|
||||
(funcall shr-external-browser url)
|
||||
(funcall browse-url-external-browser url)
|
||||
(shr--blink-link))
|
||||
(browse-url url))))))
|
||||
|
||||
@@ -1534,7 +1515,6 @@ The key element should be a regexp matched against the type of the source or
|
||||
url if no type is specified. The value should be a float in the range 0.0 to
|
||||
1.0. Media elements with higher value are preferred."
|
||||
:version "24.4"
|
||||
:group 'shr
|
||||
:type '(alist :key-type regexp :value-type float))
|
||||
|
||||
(defun shr--get-media-pref (elem)
|
||||
|
||||
@@ -1775,7 +1775,7 @@ defun."
|
||||
(setq arg (1+ arg)))
|
||||
(if (< arg 0)
|
||||
(c-while-widening-to-decl-block
|
||||
(< (setq arg (- (c-forward-to-nth-EOF-} (- arg) where))) 0)))
|
||||
(< (setq arg (- (c-forward-to-nth-EOF-\;-or-} (- arg) where))) 0)))
|
||||
;; Move forward to the next opening brace....
|
||||
(when (and (= arg 0)
|
||||
(progn
|
||||
@@ -1811,10 +1811,11 @@ defun."
|
||||
(c-keep-region-active)
|
||||
(= arg 0)))))
|
||||
|
||||
(defun c-forward-to-nth-EOF-} (n where)
|
||||
;; Skip to the closing brace of the Nth function after point. If
|
||||
;; point is inside a function, this counts as the first. Point must be
|
||||
;; outside any comment/string or macro.
|
||||
(defun c-forward-to-nth-EOF-\;-or-} (n where)
|
||||
;; Skip to the closing brace or semicolon of the Nth function after point.
|
||||
;; We move to a semicolon only for things like structs which don't end at a
|
||||
;; closing brace. If point is inside a function, this counts as the first.
|
||||
;; Point must be outside any comment/string or macro.
|
||||
;;
|
||||
;; N must be strictly positive.
|
||||
;; WHERE describes the position of point, one of the symbols `at-header',
|
||||
@@ -1836,23 +1837,24 @@ defun."
|
||||
(forward-sexp)
|
||||
(setq n (1- n)))
|
||||
((eq where 'in-trailer)
|
||||
(c-syntactic-skip-backward "^}")
|
||||
;; The actual movement is done below.
|
||||
(setq n (1- n)))
|
||||
((memq where '(at-function-end outwith-function at-header in-header))
|
||||
(when (c-syntactic-re-search-forward "{" nil 'eob)
|
||||
(backward-char)
|
||||
(forward-sexp)
|
||||
(setq n (1- n))))
|
||||
(t (error "c-forward-to-nth-EOF-}: `where' is %s" where)))
|
||||
(t (error "c-forward-to-nth-EOF-\\;-or-}: `where' is %s" where)))
|
||||
|
||||
(when (c-in-function-trailer-p)
|
||||
(c-syntactic-re-search-forward ";" nil 'eob t))
|
||||
|
||||
;; Each time round the loop, go forward to a "}" at the outermost level.
|
||||
(while (and (> n 0) (not (eobp)))
|
||||
;(c-parse-state) ; This call speeds up the following one by a factor
|
||||
; of ~6. Hmmm. 2006/4/5.
|
||||
(when (c-syntactic-re-search-forward "{" nil 'eob)
|
||||
(backward-char)
|
||||
(forward-sexp))
|
||||
(setq n (1- n)))
|
||||
(forward-sexp)
|
||||
(setq n (1- n))))
|
||||
n)
|
||||
|
||||
(defun c-end-of-defun (&optional arg)
|
||||
@@ -1907,7 +1909,7 @@ the open-parenthesis that starts a defun; see `beginning-of-defun'."
|
||||
;; Move forward to the } of a function
|
||||
(if (> arg 0)
|
||||
(c-while-widening-to-decl-block
|
||||
(> (setq arg (c-forward-to-nth-EOF-} arg where)) 0))))
|
||||
(> (setq arg (c-forward-to-nth-EOF-\;-or-} arg where)) 0))))
|
||||
|
||||
;; Do we need to move forward from the brace to the semicolon?
|
||||
(when (eq arg 0)
|
||||
|
||||
Reference in New Issue
Block a user