summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2003-01-20 21:37:02 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2003-01-20 21:37:02 +0000
commit94abe30b0c2af5beab44647fa0f4c32bc7592ad6 (patch)
tree994620eee555ebffa8ea3268b22168dc9bd89edd /lisp/emacs-lisp
parent945e6102fedb22aa5d200d9b60ceb7a6a256c0a9 (diff)
downloademacs-94abe30b0c2af5beab44647fa0f4c32bc7592ad6.tar.gz
emacs-94abe30b0c2af5beab44647fa0f4c32bc7592ad6.tar.bz2
emacs-94abe30b0c2af5beab44647fa0f4c32bc7592ad6.zip
(regexp-opt-group): Undo last change. Fix the docstring instead.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/regexp-opt.el25
1 files changed, 11 insertions, 14 deletions
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el
index ea80801b610..8ac4849d896 100644
--- a/lisp/emacs-lisp/regexp-opt.el
+++ b/lisp/emacs-lisp/regexp-opt.el
@@ -133,18 +133,18 @@ in REGEXP."
(require 'cl))
(defun regexp-opt-group (strings &optional paren lax)
- "Return a regexp to match a string in STRINGS.
-If PAREN non-nil, output regexp parentheses around returned regexp.
-If LAX non-nil, don't output parentheses if it doesn't require them.
-Merges keywords to avoid backtracking in Emacs' regexp matcher.
+ ;; Return a regexp to match a string in the sorted list STRINGS.
+ ;; If PAREN non-nil, output regexp parentheses around returned regexp.
+ ;; If LAX non-nil, don't output parentheses if it doesn't require them.
+ ;; Merges keywords to avoid backtracking in Emacs' regexp matcher.
-The basic idea is to find the shortest common prefix or suffix, remove it
-and recurse. If there is no prefix, we divide the list into two so that
-\(at least) one half will have at least a one-character common prefix.
+ ;; The basic idea is to find the shortest common prefix or suffix, remove it
+ ;; and recurse. If there is no prefix, we divide the list into two so that
+ ;; \(at least) one half will have at least a one-character common prefix.
-Also we delay the addition of grouping parenthesis as long as possible
-until we're sure we need them, and try to remove one-character sequences
-so we can use character sets rather than grouping parenthesis."
+ ;; Also we delay the addition of grouping parenthesis as long as possible
+ ;; until we're sure we need them, and try to remove one-character sequences
+ ;; so we can use character sets rather than grouping parenthesis.
(let* ((open-group (cond ((stringp paren) paren) (paren "\\(?:") (t "")))
(close-group (if paren "\\)" ""))
(open-charset (if lax "" open-group))
@@ -223,10 +223,7 @@ so we can use character sets rather than grouping parenthesis."
;; particular letter and those that do not, and recurse on them.
(let* ((char (char-to-string (string-to-char (car strings))))
(half1 (all-completions char strings))
- (half2 strings))
- ;; Remove from HALF2 whatever is in HALF1.
- (dolist (elt half1)
- (setq half2 (delq elt half2)))
+ (half2 (nthcdr (length half1) strings)))
(concat open-group
(regexp-opt-group half1)
"\\|" (regexp-opt-group half2)