From: Artur Malabarba Date: Wed, 5 Aug 2015 17:51:34 +0000 (+0100) Subject: * lisp/character-fold.el: Fix lax whitespace X-Git-Tag: emacs-25.0.90~824^2~5 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=437862c5c9bf381669979b4ebbb13859c5d5d9a5;p=emacs.git * lisp/character-fold.el: Fix lax whitespace (character-fold-table): Don't make space match other whitespace chars. (character-fold-to-regexp): Simplify lax behaviour. --- diff --git a/lisp/character-fold.el b/lisp/character-fold.el index bf5ae59f41a..6bbb3ec87e4 100644 --- a/lisp/character-fold.el +++ b/lisp/character-fold.el @@ -94,8 +94,7 @@ some).") ;; Add some manual entries. (dolist (it '((?\" """ "“" "”" "”" "„" "⹂" "〞" "‟" "‟" "❞" "❝" "❠" "“" "„" "〝" "〟" "🙷" "🙶" "🙸" "«" "»") (?' "❟" "❛" "❜" "‘" "’" "‚" "‛" "‚" "󠀢" "❮" "❯" "‹" "›") - (?` "❛" "‘" "‛" "󠀢" "❮" "‹") - (?\s "\t" "\r" "\n"))) + (?` "❛" "‘" "‛" "󠀢" "❮" "‹"))) (let ((idx (car it)) (chars (cdr it))) (aset equiv idx (append chars (aref equiv idx))))) @@ -121,12 +120,11 @@ If LAX is non-nil, any single whitespace character is allowed to match any number of times." (if character-fold-search (apply #'concat - (mapcar (lambda (c) (let ((out (or (aref character-fold-table c) - (regexp-quote (string c))))) - (if (and lax (memq c '(?\s ?\t ?\r ?\n ))) - (concat out "+") - out))) - string)) + (mapcar (lambda (c) (if (and lax (memq c '(?\s ?\t ?\r ?\n))) + "[ \t\n\r\xa0\x2002\x2d\x200a\x202f\x205f\x3000]+" + (or (aref character-fold-table c) + (regexp-quote (string c))))) + string)) (regexp-quote string))) ;;; character-fold.el ends here