changeset 101961:35c1915c9f6b

(?.): New character category for Base characters. Set them in the standard category table.
author Kenichi Handa <handa@m17n.org>
date Thu, 12 Feb 2009 05:45:02 +0000
parents 6f4559bfd1b6
children cf97dc31be17
files lisp/international/characters.el
diffstat 1 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/characters.el	Thu Feb 12 05:42:56 2009 +0000
+++ b/lisp/international/characters.el	Thu Feb 12 05:45:02 2009 +0000
@@ -110,9 +110,11 @@
 (define-category ?< "Not at eol
 A character which can't be placed at end of line.")
 
-;; Combining
+;; Base and Combining
+(define-category ?. "Base
+Base characters (Unicode General Category L,N,P,S,Zs)")
 (define-category ?^ "Combining
-Combining diacritic or mark")
+Combining diacritic or mark (Unicode General Category M")
 
 ;;; Setting syntax and category.
 
@@ -1049,7 +1051,6 @@
   (setq char-width-table (char-table-parent cjk-char-width-table)))
 
 (optimize-char-table (standard-case-table))
-(optimize-char-table (standard-category-table))
 (optimize-char-table (standard-syntax-table))
 
 
@@ -1182,6 +1183,15 @@
     table))
 
 (setq unicode-category-table (build-unicode-category-table))
+(map-char-table #'(lambda (key val)
+		    (if (and val
+			     (or (and (/= (aref (symbol-name val) 0) ?M)
+				      (/= (aref (symbol-name val) 0) ?C))
+				 (eq val 'Zs)))
+			(modify-category-entry key ?.)))
+		unicode-category-table)
+
+(optimize-char-table (standard-category-table))
 
 
 ;;; Setting word boundary.