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.
This commit is contained in:
Paul Eggert 2019-03-27 11:36:13 -07:00
parent a35a1f6a94
commit 92acab73e0
3 changed files with 12 additions and 10 deletions

View file

@ -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.

View file

@ -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))

View file

@ -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)