From 15c72e1d4a26582d5d0efa85fc3f0e0e403ea760 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 3 Sep 2008 14:09:49 +0000 Subject: [PATCH] (completion-pcm--pattern->regex): Undo last change. (completion-pcm--all-completions): Move the case-fold-search binding to it also applies to completion-regexp-list (used in all-completions). (completion-pcm--hilit-commonality): Add missing case-fold-search. --- lisp/ChangeLog | 7 +++++++ lisp/minibuffer.el | 24 ++++++++++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5f518b6fd08..f3b8c285f74 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2008-09-03 Stefan Monnier + + * minibuffer.el (completion-pcm--pattern->regex): Undo last change. + (completion-pcm--all-completions): Move the case-fold-search binding to + it also applies to completion-regexp-list (used in all-completions). + (completion-pcm--hilit-commonality): Add missing case-fold-search. + 2008-09-03 Martin Rudalics * window.el (pop-up-frame-function): Move ... diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 163bebb5028..b64a8d08ae5 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1381,17 +1381,12 @@ or a symbol chosen among `any', `star', `point'." (mapconcat (lambda (x) (case x - ((star any point) - (if (if (consp group) (memq x group) group) - "\\(.*?\\)" - ".*?")) - (t - (if (and completion-ignore-case - (string-match "[[:alpha:]]" x)) - (format "[%s%s]" (downcase x) (upcase x)) - (regexp-quote x))))) - pattern - "")))) + ((star any point) + (if (if (consp group) (memq x group) group) + "\\(.*?\\)" ".*?")) + (t (regexp-quote x)))) + pattern + "")))) ;; Avoid pathological backtracking. (while (string-match "\\.\\*\\?\\(?:\\\\[()]\\)*\\(\\.\\*\\?\\)" re) (setq re (replace-match "" t t re 1))) @@ -1413,7 +1408,8 @@ PATTERN is as returned by `completion-pcm--string->pattern'." ;; since all-completions is written in C! (let* (;; Convert search pattern to a standard regular expression. (regex (completion-pcm--pattern->regex pattern)) - (completion-regexp-list (cons regex completion-regexp-list)) + (case-fold-search completion-ignore-case) + (completion-regexp-list (cons regex completion-regexp-list)) (compl (all-completions (concat prefix (if (stringp (car pattern)) (car pattern) "")) table pred)) @@ -1426,8 +1422,7 @@ PATTERN is as returned by `completion-pcm--string->pattern'." (if (not (functionp table)) ;; The internal functions already obeyed completion-regexp-list. compl - (let ((case-fold-search completion-ignore-case) - (poss ())) + (let ((poss ())) (dolist (c compl) (when (string-match regex c) (push c poss))) poss))))) @@ -1435,6 +1430,7 @@ PATTERN is as returned by `completion-pcm--string->pattern'." (defun completion-pcm--hilit-commonality (pattern completions) (when completions (let* ((re (completion-pcm--pattern->regex pattern '(point))) + (case-fold-search completion-ignore-case) (last (last completions)) (base-size (cdr last))) ;; Remove base-size during mapcar, and add it back later. -- 2.39.2