summaryrefslogtreecommitdiff
path: root/lisp/international/characters.el
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2011-07-07 07:43:48 +0900
committerKenichi Handa <handa@m17n.org>2011-07-07 07:43:48 +0900
commitc805dec0b5fa81b5c9f2b724e2ec12a17d723aca (patch)
treec29a8490c976fdf4dbf64ef1b13a57f7d1110cc1 /lisp/international/characters.el
parent5c62d133468c354b47a1643092add8292e084765 (diff)
downloademacs-c805dec0b5fa81b5c9f2b724e2ec12a17d723aca.tar.gz
emacs-c805dec0b5fa81b5c9f2b724e2ec12a17d723aca.tar.bz2
emacs-c805dec0b5fa81b5c9f2b724e2ec12a17d723aca.zip
Add C interface for Unicode character property table.
Diffstat (limited to 'lisp/international/characters.el')
-rw-r--r--lisp/international/characters.el18
1 files changed, 2 insertions, 16 deletions
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 455cbe697d6..a9657c17b9f 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1206,22 +1206,8 @@ Setup char-width-table appropriate for non-CJK language environment."
;;; Setting unicode-category-table.
-;; This macro is to build unicode-category-table at compile time so
-;; that C code can access the table efficiently.
-(defmacro build-unicode-category-table ()
- (let ((table (make-char-table 'unicode-category-table nil)))
- (dotimes (i #x110000)
- (if (or (< i #xD800)
- (and (>= i #xF900) (< i #x30000))
- (and (>= i #xE0000) (< i #xE0200)))
- (aset table i (get-char-code-property i 'general-category))))
- (set-char-table-range table '(#xE000 . #xF8FF) 'Co)
- (set-char-table-range table '(#xF0000 . #xFFFFD) 'Co)
- (set-char-table-range table '(#x100000 . #x10FFFD) 'Co)
- (optimize-char-table table 'eq)
- table))
-
-(setq unicode-category-table (build-unicode-category-table))
+(setq unicode-category-table
+ (unicode-property-table-internal 'general-category))
(map-char-table #'(lambda (key val)
(if (and val
(or (and (/= (aref (symbol-name val) 0) ?M)