diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-11-30 15:05:44 +0000 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-11-30 15:05:58 +0000 |
commit | 0d576434a8fdbe32e0bc984b21fc20403acff812 (patch) | |
tree | 486b837bd0c2897d29c9fa6c9a8da083ef55cb33 | |
parent | 36649e0150fa7be91040b9d74009ccc085f8a363 (diff) | |
download | emacs-0d576434a8fdbe32e0bc984b21fc20403acff812.tar.gz |
* lisp/character-fold.el: Comment out branching code
(character-fold-to-regexp): Comment out code that uses multi-char
table. The branching caused by this induces absurdly long regexps,
up to 10k chars for as little as 25 input characters.
-rw-r--r-- | lisp/character-fold.el | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/lisp/character-fold.el b/lisp/character-fold.el index 88622b32a7d..07537d88ad5 100644 --- a/lisp/character-fold.el +++ b/lisp/character-fold.el @@ -180,19 +180,19 @@ from which to start." (regexp-quote (string c)))) (alist nil)) ;; Long string. The regexp would probably be too long. - (unless (> end 50) - (setq alist (aref multi-char-table c)) - (when case-fold-search - (let ((other-c (aref lower-case-table c))) - (when (or (not other-c) - (eq other-c c)) - (setq other-c (aref upper-case-table c))) - (when other-c - (setq alist (append alist (aref multi-char-table other-c))) - (setq regexp (concat "\\(?:" regexp "\\|" - (or (aref character-fold-table other-c) - (regexp-quote (string other-c))) - "\\)")))))) + ;; (unless (> end 50) + ;; (setq alist (aref multi-char-table c)) + ;; (when case-fold-search + ;; (let ((other-c (aref lower-case-table c))) + ;; (when (or (not other-c) + ;; (eq other-c c)) + ;; (setq other-c (aref upper-case-table c))) + ;; (when other-c + ;; (setq alist (append alist (aref multi-char-table other-c))) + ;; (setq regexp (concat "\\(?:" regexp "\\|" + ;; (or (aref character-fold-table other-c) + ;; (regexp-quote (string other-c))) + ;; "\\)")))))) (push (let ((alist-out '("\\)"))) (pcase-dolist (`(,suffix . ,out-regexp) alist) (let ((len-suf (length suffix))) @@ -223,7 +223,7 @@ from which to start." (push (character-fold--make-space-string spaces) out)) (let ((regexp (apply #'concat (nreverse out)))) ;; Limited by `MAX_BUF_SIZE' in `regex.c'. - (if (> (length regexp) 32000) + (if (> (length regexp) 10000) (regexp-quote string) regexp)))) |