summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-03-27 11:36:13 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2019-03-27 11:37:47 -0700
commit92acab73e0dd3921b53eac4f3fba327b7aa4d3aa (patch)
treed853281b0ef547f99b74994bb70caecac9a3f778
parenta35a1f6a9406bc98b4ab83489e5dc7843ffacfb6 (diff)
downloademacs-92acab73e0dd3921b53eac4f3fba327b7aa4d3aa.tar.gz
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.el6
-rw-r--r--lisp/erc/erc.el4
-rw-r--r--lisp/mail/footnote.el12
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)