diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-27 11:36:13 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-27 11:37:47 -0700 |
commit | 92acab73e0dd3921b53eac4f3fba327b7aa4d3aa (patch) | |
tree | d853281b0ef547f99b74994bb70caecac9a3f778 | |
parent | a35a1f6a9406bc98b4ab83489e5dc7843ffacfb6 (diff) | |
download | emacs-92acab73e0dd3921b53eac4f3fba327b7aa4d3aa.tar.gz emacs-92acab73e0dd3921b53eac4f3fba327b7aa4d3aa.tar.bz2 emacs-92acab73e0dd3921b53eac4f3fba327b7aa4d3aa.zip |
Use regexp-opt-charset to improve regexp tweaks
* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
Reword confusing sentence in doc string.
* lisp/erc/erc.el (erc-lurker-maybe-trim):
* lisp/mail/footnote.el (footnote-hebrew-numeric-regex):
Improve by using regexp-opt-charset.
-rw-r--r-- | lisp/emacs-lisp/regexp-opt.el | 6 | ||||
-rw-r--r-- | lisp/erc/erc.el | 4 | ||||
-rw-r--r-- | lisp/mail/footnote.el | 12 |
3 files changed, 12 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index fce6a47d989..d883752d712 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -86,9 +86,9 @@ ;;;###autoload (defun regexp-opt (strings &optional paren keep-order) "Return a regexp to match a string in the list STRINGS. -Each string should be unique in STRINGS and should not contain -any regexps, quoted or not. Optional PAREN specifies how the -returned regexp is surrounded by grouping constructs. +Each member of STRINGS is treated as a fixed string, not as a regexp. +Optional PAREN specifies how the returned regexp is surrounded by +grouping constructs. If STRINGS is the empty list, the return value is a regexp that never matches anything. diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index e34487de273..d1fa5c7f120 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -67,7 +67,6 @@ (load "erc-loaddefs" nil t) (eval-when-compile (require 'cl-lib)) -(require 'cl-seq) (require 'font-lock) (require 'pp) (require 'thingatpt) @@ -2523,8 +2522,7 @@ Returns NICK unmodified unless `erc-lurker-trim-nicks' is non-nil." (if erc-lurker-trim-nicks (replace-regexp-in-string - (regexp-opt (cl-delete-duplicates - (mapcar #'char-to-string erc-lurker-ignore-chars))) + (regexp-opt-charset (string-to-list erc-lurker-ignore-chars)) "" nick) nick)) diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 7f88e30120d..81dc11de763 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -64,7 +64,6 @@ ;;; Code: (eval-when-compile (require 'cl-lib)) -(require 'cl-seq) (defvar filladapt-token-table) (defgroup footnote nil @@ -364,9 +363,9 @@ Use Unicode characters for footnoting." ("ק" "ר" "ש" "ת" "תק" "תר" "תש" "תת" "תתק"))) (defconst footnote-hebrew-numeric-regex - (concat "[" (cl-delete-duplicates - (apply #'concat (apply #'append footnote-hebrew-numeric))) - "']+")) + (let ((numchars (string-to-list + (apply #'concat (apply #'append footnote-hebrew-numeric))))) + (concat (regexp-opt-charset (cons ?' numchars)) "+"))) ;; (defconst footnote-hebrew-numeric-regex "\\([אבגדהוזחט]'\\)?\\(ת\\)?\\(ת\\)?\\([קרשת]\\)?\\([טיכלמנסעפצ]\\)?\\([אבגדהוזחט]\\)?") (defun footnote--hebrew-numeric (n) @@ -464,6 +463,11 @@ Conversion is done based upon the current selected style." (nth 0 footnote-style-alist))))) (concat ;; Hack to avoid repetition of repetition. + ;; FIXME: I'm not sure the added * makes sense at all; there is + ;; always a single number within the footnote-{start,end}-tag pairs. + ;; Worse, the code goes on and adds yet another + later on, in + ;; footnote-refresh-footnotes, just in case. That makes even less sense. + ;; Likely, both the * and the extra + should go away. (if (string-match "[^\\]\\\\\\{2\\}*[*+?]\\'" regexp) (substring regexp 0 -1) regexp) |