1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

* 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.
This commit is contained in:
Artur Malabarba 2015-08-05 18:51:34 +01:00
parent ee50e62a44
commit 437862c5c9

View file

@ -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