Optimize ucs-normalize.el compilation
* lisp/international/ucs-normalize.el (ucs-normalize-combining-chars-regexp): (quick-check-list-to-regexp): Use regexp-opt-charset instead of regexp-opt. * lisp/international/ucs-normalize.el (quick-check-list): Reuse a single temp buffer for the whole loop.
This commit is contained in:
parent
eed3b46ca1
commit
e333157cba
1 changed files with 18 additions and 16 deletions
|
@ -263,7 +263,7 @@ Note that Hangul are excluded.")
|
|||
(defvar ucs-normalize-combining-chars-regexp nil
|
||||
"Regular expression to match sequence of combining characters.")
|
||||
(setq ucs-normalize-combining-chars-regexp
|
||||
(eval-when-compile (concat (regexp-opt (mapcar 'char-to-string combining-chars)) "+")))
|
||||
(eval-when-compile (concat (regexp-opt-charset combining-chars) "+")))
|
||||
|
||||
(declare-function decomposition-translation-alist "ucs-normalize"
|
||||
(decomposition-function))
|
||||
|
@ -396,20 +396,22 @@ If COMPOSITION-PREDICATE is not given, then do nothing."
|
|||
It includes Singletons, CompositionExclusions, and Non-Starter
|
||||
decomposition."
|
||||
(let (entries decomposition composition)
|
||||
(mapc
|
||||
(lambda (start-end)
|
||||
(cl-do ((i (car start-end) (+ i 1))) ((> i (cdr start-end)))
|
||||
(setq decomposition
|
||||
(string-to-list
|
||||
(with-temp-buffer
|
||||
(insert i)
|
||||
(translate-region 1 2 decomposition-translation)
|
||||
(buffer-string))))
|
||||
(setq composition
|
||||
(ucs-normalize-block-compose-chars decomposition composition-predicate))
|
||||
(when (not (equal composition (list i)))
|
||||
(setq entries (cons i entries)))))
|
||||
check-range)
|
||||
(with-temp-buffer
|
||||
(mapc
|
||||
(lambda (start-end)
|
||||
(cl-do ((i (car start-end) (+ i 1))) ((> i (cdr start-end)))
|
||||
(setq decomposition
|
||||
(string-to-list
|
||||
(progn
|
||||
(erase-buffer)
|
||||
(insert i)
|
||||
(translate-region 1 2 decomposition-translation)
|
||||
(buffer-string))))
|
||||
(setq composition
|
||||
(ucs-normalize-block-compose-chars decomposition composition-predicate))
|
||||
(when (not (equal composition (list i)))
|
||||
(setq entries (cons i entries)))))
|
||||
check-range))
|
||||
;;(remove-duplicates
|
||||
(append entries
|
||||
ucs-normalize-composition-exclusions
|
||||
|
@ -431,7 +433,7 @@ decomposition."
|
|||
(setq hfs-nfc-quick-check-list (quick-check-list 'ucs-normalize-hfs-nfd-table t ))
|
||||
|
||||
(defun quick-check-list-to-regexp (quick-check-list)
|
||||
(regexp-opt (mapcar 'char-to-string (append quick-check-list combining-chars))))
|
||||
(regexp-opt-charset (append quick-check-list combining-chars)))
|
||||
|
||||
(defun quick-check-decomposition-list-to-regexp (quick-check-list)
|
||||
(concat (quick-check-list-to-regexp quick-check-list) "\\|[가-힣]"))
|
||||
|
|
Loading…
Add table
Reference in a new issue