]> code.delx.au - gnu-emacs/commit
* lisp/character-fold.el: Remove special case-folding support
authorArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 4 Dec 2015 15:12:10 +0000 (15:12 +0000)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 4 Dec 2015 15:12:34 +0000 (15:12 +0000)
commit30f3432e9519f61882faa303e7851e761d2d18ea
treefbb216d979d5c7af77f4c4018ab4c4bf06b2a85e
parent3a9df7589ae189fc34a5fab98e82d85d2d40433f
* lisp/character-fold.el: Remove special case-folding support

(character-fold-to-regexp): Remove special code for
case-folding.  Char-fold search still respects the
`case-fold-search' variable (i.e., f matches F).  This only
removes the code that was added to ensure that f also matched
all chars that F matched.  For instance, after this commit, f
no longer matches 𝔽.

This was necessary because the logic created a regexp with
2^(length of the string) redundant paths.  So, when a very
long string "almost" matched, Emacs took a very long time to
figure out that it didn't.  This became particularly relevant
because isearch's lazy-highlight does a search bounded by (1-
match-end) (which, in most circumstances, is a search that
almost matches).  A recipe for this can be found in bug#22090.
lisp/character-fold.el
test/automated/character-fold-tests.el