diff options
author | Amin Bandali <bandali@gnu.org> | 2019-11-18 10:24:48 -0500 |
---|---|---|
committer | Amin Bandali <bandali@gnu.org> | 2020-01-13 01:51:00 -0500 |
commit | 37e0d00c143ddb6d5e978eb1d3ac9c1d1aba3860 (patch) | |
tree | 16d37222fb74bc03499852b7acbb47256983ff1b /lisp/erc/erc-button.el | |
parent | d47b157969356f15e038dbbfa4da7769f6f98583 (diff) | |
download | emacs-37e0d00c143ddb6d5e978eb1d3ac9c1d1aba3860.tar.gz |
Improve ERC's matching of nicks and URLs (bug#38257)
* lisp/erc/erc-{button,match}.el (erc-{button,match}-syntax-table):
Omit (, ), and '; as they're not valid nick characters, per RFC 2812
section 2.3.1. This enables correct matching/highlighting of nicks
when they're surrounded by parens, like (nick), and when adjacent to
an apostrophe, like nick's.
* lisp/erc/erc-button.el (erc-button-url-regexp): Use the regexp from
browse-url-button-regexp, which among other things, seems to handle
surrounding pair of parens better.
Diffstat (limited to 'lisp/erc/erc-button.el')
-rw-r--r-- | lisp/erc/erc-button.el | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 6e30b3a7935..e4f5a190913 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -41,6 +41,7 @@ (require 'erc) (require 'wid-edit) (require 'erc-fill) +(require 'browse-url) ;;; Minor Mode @@ -87,12 +88,9 @@ above them." :type 'face :group 'erc-faces) -(defcustom erc-button-url-regexp - (concat "\\(www\\.\\|\\(s?https?\\|" - "ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\)" - "\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?" - "[-a-zA-Z0-9_=!?#$@~`%&*+\\/:;.,()]+[-a-zA-Z0-9_=#$@~`%&*+\\/()]") +(defcustom erc-button-url-regexp browse-url-button-regexp "Regular expression that matches URLs." + :version "27.1" :group 'erc-button :type 'regexp) @@ -223,14 +221,11 @@ PAR is a number of a regexp grouping whose text will be passed to (defvar erc-button-syntax-table (let ((table (make-syntax-table))) - (modify-syntax-entry ?\( "w" table) - (modify-syntax-entry ?\) "w" table) (modify-syntax-entry ?\[ "w" table) (modify-syntax-entry ?\] "w" table) (modify-syntax-entry ?\{ "w" table) (modify-syntax-entry ?\} "w" table) (modify-syntax-entry ?` "w" table) - (modify-syntax-entry ?' "w" table) (modify-syntax-entry ?^ "w" table) (modify-syntax-entry ?- "w" table) (modify-syntax-entry ?_ "w" table) |