1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-23 10:34:07 +00:00

* lisp/ido.el (ido-set-matches-1): Improve flex matching performance by

removing backtracking in the regexp (suggested by Stefan).

Fixes: debbugs:12796
This commit is contained in:
Leo Liu 2012-11-10 09:28:22 +08:00
parent 32e5c58ca9
commit 05a859c1bd
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-11-10 Leo Liu <sdl.web@gmail.com>
* ido.el (ido-set-matches-1): Improve flex matching performance by
removing backtracking in the regexp (suggested by Stefan). (Bug#12796)
2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/advice.el (ad-set-advice-info): Set defalias-fset-function.

View File

@ -3764,7 +3764,11 @@ This is to make them appear as if they were \"virtual buffers\"."
ido-enable-flex-matching
(> (length ido-text) 1)
(not ido-enable-regexp))
(setq re (mapconcat #'regexp-quote (split-string ido-text "") ".*"))
(setq re (concat (regexp-quote (string (aref ido-text 0)))
(mapconcat (lambda (c)
(concat "[^" (string c) "]*"
(regexp-quote (string c))))
(substring ido-text 1) "")))
(if ido-enable-prefix
(setq re (concat "\\`" re)))
(mapc