Function: use-cjk-char-width-table
use-cjk-char-width-table is a byte-compiled function defined in
characters.el.gz.
Signature
(use-cjk-char-width-table LOCALE-NAME)
Source Code
;; Defined in /usr/src/emacs/lisp/international/characters.el.gz
;; Internal use only.
;; Setup char-width-table appropriate for a language environment
;; corresponding to LOCALE-NAME (symbol).
(defun use-cjk-char-width-table (locale-name)
(while (char-table-parent char-width-table)
(setq char-width-table (char-table-parent char-width-table)))
(let ((slot (assq locale-name cjk-char-width-table-list)))
(or slot (error "Unknown locale for CJK language environment: %s"
locale-name))
(unless (nth 1 slot)
(let ((table (make-char-table nil)))
(dolist (charset-info (nthcdr 2 slot))
(let ((charset (car charset-info)))
(dolist (code-range (cdr charset-info))
(map-charset-chars (lambda (range _arg)
(set-char-table-range table range 2))
charset nil
(car code-range) (cdr code-range)))))
(optimize-char-table table)
(set-char-table-parent table char-width-table)
(setcar (cdr slot) table)))
(setq char-width-table (nth 1 slot))))