;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2001 Free Software Foundation, Inc.
;; Keywords: multibyte character, character set, syntax, category
(define-category ?> "A character which can't be placed at beginning of line.")
(define-category ?< "A character which can't be placed at end of line.")
+;; Combining
+(define-category ?^ "Combining diacritic or mark")
\f
;;; Setting syntax and category.
arabic-1-column
arabic-2-column)))
(while charsets
- (modify-syntax-entry (make-char (car charsets)) "w")
+;; (modify-syntax-entry (make-char (car charsets)) "w")
(modify-category-entry (make-char (car charsets)) ?b)
(setq charsets (cdr charsets))))
+(let ((ch #x600))
+ (while (<= ch #x6ff)
+ (modify-category-entry (decode-char 'ucs ch) ?b)
+ (setq ch (1+ ch)))
+ (setq ch #xfb50)
+ (while (<= ch #xfdff)
+ (modify-category-entry (decode-char 'ucs ch) ?b)
+ (setq ch (1+ ch)))
+ (setq ch #xfe70)
+ (while (<= ch #xfefe)
+ (modify-category-entry (decode-char 'ucs ch) ?b)
+ (setq ch (1+ ch))))
;; Chinese character set (GB2312)
-(modify-syntax-entry (make-char 'chinese-gb2312) "w")
+;; (modify-syntax-entry (make-char 'chinese-gb2312) "w")
(modify-syntax-entry (make-char 'chinese-gb2312 33) "_")
(modify-syntax-entry (make-char 'chinese-gb2312 34) "_")
(modify-syntax-entry (make-char 'chinese-gb2312 41) "_")
(modify-syntax-entry ?\\e$A!;\e(B ")\e$A!:\e(B")
(modify-syntax-entry ?\\e$A!=\e(B ")\e$A!<\e(B")
(modify-syntax-entry ?\\e$A!?\e(B ")\e$A!>\e(B")
+;; Unicode equivalents of above
+(modify-syntax-entry ?\\e$,2=T\e(B "(\e$,2=U\e(B")
+(modify-syntax-entry ?\\e$,2=H\e(B "(\e$,2=I\e(B")
+(modify-syntax-entry ?\\e$,2=J\e(B "(\e$,2=K\e(B")
+(modify-syntax-entry ?\\e$,2=L\e(B "(\e$,2=M\e(B")
+(modify-syntax-entry ?\\e$,2=N\e(B "(\e$,2=O\e(B")
+(modify-syntax-entry ?\\e$,2=V\e(B "(\e$,2=W\e(B")
+(modify-syntax-entry ?\\e$,2=P\e(B "(\e$,2=Q\e(B")
+(modify-syntax-entry ?\\e$,2=U\e(B ")\e$,2=T\e(B")
+(modify-syntax-entry ?\\e$,2=I\e(B ")\e$,2=H\e(B")
+(modify-syntax-entry ?\\e$,2=K\e(B ")\e$,2=J\e(B")
+(modify-syntax-entry ?\\e$,2=M\e(B ")\e$,2=L\e(B")
+(modify-syntax-entry ?\\e$,2=O\e(B ")\e$,2=N\e(B")
+(modify-syntax-entry ?\\e$,2=W\e(B ")\e$,2=V\e(B")
+(modify-syntax-entry ?\\e$,2=Q\e(B ")\e$,2=P\e(B")
(modify-category-entry (make-char 'chinese-gb2312) ?c)
(modify-category-entry (make-char 'chinese-gb2312) ?\|)
(let ((generic-big5-1-char (make-char 'chinese-big5-1))
(generic-big5-2-char (make-char 'chinese-big5-2)))
- (modify-syntax-entry generic-big5-1-char "w")
- (modify-syntax-entry generic-big5-2-char "w")
+;; (modify-syntax-entry generic-big5-1-char "w")
+;; (modify-syntax-entry generic-big5-2-char "w")
(modify-category-entry generic-big5-1-char ?c)
(modify-category-entry generic-big5-2-char ?c)
generic-char)
(while cns-list
(setq generic-char (make-char (car cns-list)))
- (modify-syntax-entry generic-char "w")
+;; (modify-syntax-entry generic-char "w")
(modify-category-entry generic-char ?c)
(modify-category-entry generic-char ?C)
(modify-category-entry generic-char ?|)
(set-case-syntax-pair ?\e,LL\e(B ?\e,Ll\e(B tbl)
(set-case-syntax-pair ?\e,LM\e(B ?\e,Lm\e(B tbl)
(set-case-syntax-pair ?\e,LN\e(B ?\e,Ln\e(B tbl)
- (set-case-syntax-pair ?\e,LO\e(B ?\e,Lo\e(B tbl))
+ (set-case-syntax-pair ?\e,LO\e(B ?\e,Lo\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(!\e(B ?\e$,1(q\e(B tbl)
+ (set-case-syntax-pair ?\e$,1("\e(B ?\e$,1(r\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(#\e(B ?\e$,1(s\e(B tbl)
+ (set-case-syntax-pair ?\e$,1($\e(B ?\e$,1(t\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(%\e(B ?\e$,1(u\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(&\e(B ?\e$,1(v\e(B tbl)
+ (set-case-syntax-pair ?\e$,1('\e(B ?\e$,1(w\e(B tbl)
+ (set-case-syntax-pair ?\e$,1((\e(B ?\e$,1(x\e(B tbl)
+ (set-case-syntax-pair ?\e$,1()\e(B ?\e$,1(y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(*\e(B ?\e$,1(z\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(+\e(B ?\e$,1({\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(,\e(B ?\e$,1(|\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(.\e(B ?\e$,1(~\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(/\e(B ?\e$,1(\7f\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(0\e(B ?\e$,1(P\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(1\e(B ?\e$,1(Q\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(2\e(B ?\e$,1(R\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(3\e(B ?\e$,1(S\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(4\e(B ?\e$,1(T\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(5\e(B ?\e$,1(U\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(6\e(B ?\e$,1(V\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(7\e(B ?\e$,1(W\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(8\e(B ?\e$,1(X\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(9\e(B ?\e$,1(Y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(:\e(B ?\e$,1(Z\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(;\e(B ?\e$,1([\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(<\e(B ?\e$,1(\\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(=\e(B ?\e$,1(]\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(>\e(B ?\e$,1(^\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(?\e(B ?\e$,1(_\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(@\e(B ?\e$,1(`\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(A\e(B ?\e$,1(a\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(B\e(B ?\e$,1(b\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(C\e(B ?\e$,1(c\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(D\e(B ?\e$,1(d\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(E\e(B ?\e$,1(e\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(F\e(B ?\e$,1(f\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(G\e(B ?\e$,1(g\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(H\e(B ?\e$,1(h\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(I\e(B ?\e$,1(i\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(J\e(B ?\e$,1(j\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(K\e(B ?\e$,1(k\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(L\e(B ?\e$,1(l\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(M\e(B ?\e$,1(m\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(N\e(B ?\e$,1(n\e(B tbl)
+ (set-case-syntax-pair ?\e$,1(O\e(B ?\e$,1(o\e(B tbl))
;; Devanagari character set
-(let ((deflist '(;; chars syntax category
- ("\e$(5!!!"!#\e(B" "w" ?7) ; vowel-modifying diacritical mark
- ; chandrabindu, anuswar, visarga
- ("\e$(5!$\e(B-\e$(5!2\e(B" "w" ?1) ; independent vowel
- ("\e$(5!3\e(B-\e$(5!X\e(B" "w" ?0) ; consonant
- ("\e$(5!Z\e(B-\e$(5!g\e(B" "w" ?8) ; matra
- ("\e$(5!q\e(B-\e$(5!z\e(B" "w" ?6) ; digit
- ))
- elm chars len syntax category to ch i)
- (while deflist
- (setq elm (car deflist))
- (setq chars (car elm)
- len (length chars)
- syntax (nth 1 elm)
- category (nth 2 elm)
- i 0)
- (while (< i len)
- (if (= (aref chars i) ?-)
- (setq i (1+ i)
- to (aref chars i))
- (setq ch (aref chars i)
- to ch))
- (while (<= ch to)
- (modify-syntax-entry ch syntax)
- (modify-category-entry ch category)
- (setq ch (1+ ch)))
- (setq i (1+ i)))
- (setq deflist (cdr deflist))))
+;;; Commented out since the categories appear not to be used anywhere
+;;; and word syntax is the default.
+;; (let ((deflist '(;; chars syntax category
+;; ("\e$(5!!!"!#\e(B" "w" ?7) ; vowel-modifying diacritical mark
+;; ; chandrabindu, anuswar, visarga
+;; ("\e$(5!$\e(B-\e$(5!2\e(B" "w" ?1) ; independent vowel
+;; ("\e$(5!3\e(B-\e$(5!X\e(B" "w" ?0) ; consonant
+;; ("\e$(5!Z\e(B-\e$(5!g\e(B" "w" ?8) ; matra
+;; ("\e$(5!q\e(B-\e$(5!z\e(B" "w" ?6) ; digit
+;; ;; Unicode equivalents
+;; ("\e$,15A5B5C\e(B" "w" ?7) ; vowel-modifying diacritical mark
+;; ; chandrabindu, anuswar, visarga
+;; ("\e$,15E\e(B-\e$,15M\e(B" "w" ?1) ; independent vowel
+;; ("\e$,15U\e(B-\e$,15y\e(B" "w" ?0) ; consonant
+;; ("\e$,15~\e(B-\e$,16)\e(B" "w" ?8) ; matra
+;; ("\e$,16F\e(B-\e$,16O\e(B" "w" ?6) ; digit
+;; ))
+;; elm chars len syntax category to ch i)
+;; (while deflist
+;; (setq elm (car deflist))
+;; (setq chars (car elm)
+;; len (length chars)
+;; syntax (nth 1 elm)
+;; category (nth 2 elm)
+;; i 0)
+;; (while (< i len)
+;; (if (= (aref chars i) ?-)
+;; (setq i (1+ i)
+;; to (aref chars i))
+;; (setq ch (aref chars i)
+;; to ch))
+;; (while (<= ch to)
+;; (modify-syntax-entry ch syntax)
+;; (modify-category-entry ch category)
+;; (setq ch (1+ ch)))
+;; (setq i (1+ i)))
+;; (setq deflist (cdr deflist))))
;; Ethiopic character set
(modify-category-entry (make-char 'ethiopic) ?e)
-(modify-syntax-entry (make-char 'ethiopic) "w")
-(let ((chars '(?\e$(3$h\e(B ?\e$(3$i\e(B ?\e$(3$j\e(B ?\e$(3$k\e(B ?\e$(3$l\e(B ?\e$(3$m\e(B ?\e$(3$n\e(B ?\e$(3$o\e(B ?\e$(3%i\e(B ?\e$(3%t\e(B ?\e$(3%u\e(B ?\e$(3%v\e(B ?\e$(3%w\e(B ?\e$(3%x\e(B)))
+;; (modify-syntax-entry (make-char 'ethiopic) "w")
+(dotimes (i (1+ (- #x137c #x1200)))
+ (modify-category-entry (decode-char 'ucs (+ #x1200 i)) ?e))
+(let ((chars '(?\e$(3$h\e(B ?\e$(3$i\e(B ?\e$(3$j\e(B ?\e$(3$k\e(B ?\e$(3$l\e(B ?\e$(3$m\e(B ?\e$(3$n\e(B ?\e$(3$o\e(B ?\e$(3%i\e(B ?\e$(3%t\e(B ?\e$(3%u\e(B ?\e$(3%v\e(B ?\e$(3%w\e(B ?\e$(3%x\e(B
+ ;; Unicode equivalents of the above:
+ ?\e$,1Q!\e(B ?\e$,1Q"\e(B ?\e$,1Q#\e(B ?\e$,1Q$\e(B ?\e$,1Q%\e(B ?\e$,1Q&\e(B ?\e$,1Q'\e(B ?\e$,1Q(\e(B ?\e$,3op\e(B ?\e$,3o{\e(B ?\e$,3o|\e(B ?\e$,3o}\e(B ?\e$,3o~\e(B ?\e$,3o\7f\e(B)))
(while chars
(modify-syntax-entry (car chars) ".")
(setq chars (cdr chars))))
;; Greek character set (ISO-8859-7)
(modify-category-entry (make-char 'greek-iso8859-7) ?g)
-
-(let ((c 182))
- (while (< c 255)
- (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w")
+(let ((c #x370))
+ (while (<= c #x3ff)
+ (modify-category-entry (decode-char 'ucs c) ?g)
(setq c (1+ c))))
-(modify-syntax-entry (make-char 'greek-iso8859-7 160) "w") ; NBSP
+
+;; (let ((c 182))
+;; (while (< c 255)
+;; (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w")
+;; (setq c (1+ c))))
+;; (modify-syntax-entry (make-char 'greek-iso8859-7 160) "w") ; NBSP
(modify-syntax-entry ?\e,F7\e(B ".")
(modify-syntax-entry ?\e,F;\e(B ".")
(modify-syntax-entry ?\e,F=\e(B ".")
(let ((tbl (standard-case-table)))
+ ;; Fixme: non-letter syntax copied from latin-1, but that's dubious
+ ;; in several cases.
+ (set-case-syntax ?\e,F!\e(B "." tbl)
+ (set-case-syntax ?\e,F"\e(B "." tbl)
+ (set-case-syntax ?\e,F&\e(B "." tbl)
+ (set-case-syntax ?\e,F&\e(B "_" tbl)
+ (set-case-syntax ?\e,F'\e(B "." tbl)
+ (set-case-syntax ?\e,F)\e(B "_" tbl)
+ (set-case-syntax ?\e,F+\e(B "." tbl)
+ (set-case-syntax ?\e,F,\e(B "_" tbl)
+ (set-case-syntax ?\e,F-\e(B "_" tbl)
+ (set-case-syntax ?\e,F/\e(B "." tbl)
+ (set-case-syntax ?\e,F0\e(B "_" tbl)
+ (set-case-syntax ?\e,F1\e(B "_" tbl)
+;; (set-case-syntax ?\e,F7\e(B "_" tbl)
+;; (set-case-syntax ?\e,F=\e(B "_" tbl)
(set-case-syntax-pair ?\e,FA\e(B ?\e,Fa\e(B tbl)
(set-case-syntax-pair ?\e,FB\e(B ?\e,Fb\e(B tbl)
(set-case-syntax-pair ?\e,FC\e(B ?\e,Fc\e(B tbl)
(set-case-syntax-pair ?\e,F6\e(B ?\e,F\\e(B tbl)
(set-case-syntax-pair ?\e,F8\e(B ?\e,F]\e(B tbl)
(set-case-syntax-pair ?\e,F9\e(B ?\e,F^\e(B tbl)
- (set-case-syntax-pair ?\e,F:\e(B ?\e,F_\e(B tbl))
+ (set-case-syntax-pair ?\e,F:\e(B ?\e,F_\e(B tbl)
+ ;; Unicode equivalents
+ (set-case-syntax-pair ?\e$,1&q\e(B ?\e$,1'1\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&r\e(B ?\e$,1'2\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&s\e(B ?\e$,1'3\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&t\e(B ?\e$,1'4\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&u\e(B ?\e$,1'5\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&v\e(B ?\e$,1'6\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&w\e(B ?\e$,1'7\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&x\e(B ?\e$,1'8\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&y\e(B ?\e$,1'9\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&z\e(B ?\e$,1':\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&{\e(B ?\e$,1';\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&|\e(B ?\e$,1'<\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&}\e(B ?\e$,1'=\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&~\e(B ?\e$,1'>\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&\7f\e(B ?\e$,1'?\e(B tbl)
+ (set-case-syntax-pair ?\e$,1' \e(B ?\e$,1'@\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'!\e(B ?\e$,1'A\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'#\e(B ?\e$,1'C\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'$\e(B ?\e$,1'D\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'%\e(B ?\e$,1'E\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'&\e(B ?\e$,1'F\e(B tbl)
+ (set-case-syntax-pair ?\e$,1''\e(B ?\e$,1'G\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'(\e(B ?\e$,1'H\e(B tbl)
+ (set-case-syntax-pair ?\e$,1')\e(B ?\e$,1'I\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'*\e(B ?\e$,1'J\e(B tbl)
+ (set-case-syntax-pair ?\e$,1'+\e(B ?\e$,1'K\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&o\e(B ?\e$,1'N\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&n\e(B ?\e$,1'M\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&l\e(B ?\e$,1'L\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&f\e(B ?\e$,1',\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&h\e(B ?\e$,1'-\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&i\e(B ?\e$,1'.\e(B tbl)
+ (set-case-syntax-pair ?\e$,1&j\e(B ?\e$,1'/\e(B tbl))
;; Hebrew character set (ISO-8859-8)
-(modify-category-entry (make-char 'hebrew-iso8859-8) ?w)
+;; (modify-category-entry (make-char 'hebrew-iso8859-8) ?w)
-(let ((c 224))
- (while (< c 251)
- (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w")
- (setq c (1+ c))))
-(modify-syntax-entry (make-char 'hebrew-iso8859-8 160) "w") ; NBSP
+;; (let ((c 224))
+;; (while (< c 251)
+;; (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w")
+;; (setq c (1+ c))))
+;; (modify-syntax-entry (make-char 'hebrew-iso8859-8 160) "w") ; NBSP
;; Indian character set (IS 13194 and other Emacs original Indian charsets)
(modify-category-entry (make-char 'indian-is13194) ?i)
(modify-category-entry (make-char 'indian-2-column) ?I)
(modify-category-entry (make-char 'indian-glyph) ?I)
+;; Unicode Devanagari block
+(let ((c #x901))
+ (while (<= c #x970)
+ (modify-category-entry (decode-char 'ucs c) ?i)
+ (setq c (1+ c))))
-(let ((deflist
- '(;; chars syntax category
- ("\e(5!"#\e(B" "w" ?7) ; vowel-modifying diacritical mark
- ; chandrabindu, anuswar, visarga
- ("\e(5$\e(B-\e(52\e(B" "w" ?1) ; base (independent) vowel
- ("\e(53\e(B-\e(5X\e(B" "w" ?0) ; consonant
- ("\e(5Z\e(B-\e(5g\e(B" "w" ?8) ; matra
- ("\e(5q\e(B-\e(5z\e(B" "w" ?6) ; digit
- ))
- elm chars len syntax category to ch i)
- (while deflist
- (setq elm (car deflist))
- (setq chars (car elm)
- len (length chars)
- syntax (nth 1 elm)
- category (nth 2 elm)
- i 0)
- (while (< i len)
- (if (= (aref chars i) ?-)
- (setq i (1+ i)
- to (aref chars i))
- (setq ch (aref chars i)
- to ch))
- (while (<= ch to)
- (modify-syntax-entry ch syntax)
- (modify-category-entry ch category)
- (setq ch (1+ ch)))
- (setq i (1+ i)))
- (setq deflist (cdr deflist))))
+;;; Commented out since the categories appear not to be used anywhere
+;;; and word syntax is the default.
+;; (let ((deflist ;
+;; '(;; chars syntax category
+;; ("\e(5!"#\e(B" "w" ?7) ; vowel-modifying diacritical mark
+;; ; chandrabindu, anuswar, visarga
+;; ("\e(5$\e(B-\e(52\e(B" "w" ?1) ; base (independent) vowel
+;; ("\e(53\e(B-\e(5X\e(B" "w" ?0) ; consonant
+;; ("\e(5Z\e(B-\e(5g\e(B" "w" ?8) ; matra
+;; ("\e(5q\e(B-\e(5z\e(B" "w" ?6) ; digit
+;; ))
+;; elm chars len syntax category to ch i)
+;; (while deflist
+;; (setq elm (car deflist))
+;; (setq chars (car elm)
+;; len (length chars)
+;; syntax (nth 1 elm)
+;; category (nth 2 elm)
+;; i 0)
+;; (while (< i len)
+;; (if (= (aref chars i) ?-)
+;; (setq i (1+ i)
+;; to (aref chars i))
+;; (setq ch (aref chars i)
+;; to ch))
+;; (while (<= ch to)
+;; (modify-syntax-entry ch syntax)
+;; (modify-category-entry ch category)
+;; (setq ch (1+ ch)))
+;; (setq i (1+ i)))
+;; (setq deflist (cdr deflist))))
;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212)
(modify-category-entry (make-char 'japanese-jisx0208) ?\|)
(modify-category-entry (make-char 'japanese-jisx0212) ?\|)
+;; Unicode equivalents of JISX0201-kana
+(let ((c #xff61))
+ (while (<= c #xff9f)
+ (modify-category-entry (decode-char 'ucs c) ?k)
+ (modify-category-entry (decode-char 'ucs c) ?j)
+ (modify-category-entry (decode-char 'ucs c) ?\|)
+ (setq c (1+ c))))
+
+;; Katakana block
+(let ((c #x30a0))
+ (while (<= c #x30ff)
+ ;; ?K is double width, ?k isn't specified
+ (modify-category-entry (decode-char 'ucs c) ?k)
+ (modify-category-entry (decode-char 'ucs c) ?j)
+ (modify-category-entry (decode-char 'ucs c) ?\|)
+ (setq c (1+ c))))
+
+;; Hiragana block
+(let ((c #x3040))
+ (while (<= c #x309f)
+ ;; ?H is actually defined to be double width
+ (modify-category-entry (decode-char 'ucs c) ?H)
+ ;;(modify-category-entry (decode-char 'ucs c) ?j)
+ (modify-category-entry (decode-char 'ucs c) ?\|)
+ (setq c (1+ c))))
+
;; JISX0208
-(modify-syntax-entry (make-char 'japanese-jisx0208) "w")
+;; (modify-syntax-entry (make-char 'japanese-jisx0208) "w")
(modify-syntax-entry (make-char 'japanese-jisx0208 33) "_")
(modify-syntax-entry (make-char 'japanese-jisx0208 34) "_")
(modify-syntax-entry (make-char 'japanese-jisx0208 40) "_")
-(let ((chars '(?\e$B!<\e(B ?\e$B!+\e(B ?\e$B!,\e(B ?\e$B!3\e(B ?\e$B!4\e(B ?\e$B!5\e(B ?\e$B!6\e(B ?\e$B!7\e(B ?\e$B!8\e(B ?\e$B!9\e(B ?\e$B!:\e(B ?\e$B!;\e(B)))
- (while chars
- (modify-syntax-entry (car chars) "w")
- (setq chars (cdr chars))))
+;; (let ((chars '(?\e$B!<\e(B ?\e$B!+\e(B ?\e$B!,\e(B ?\e$B!3\e(B ?\e$B!4\e(B ?\e$B!5\e(B ?\e$B!6\e(B ?\e$B!7\e(B ?\e$B!8\e(B ?\e$B!9\e(B ?\e$B!:\e(B ?\e$B!;\e(B)))
+;; (while chars
+;; (modify-syntax-entry (car chars) "w")
+;; (setq chars (cdr chars))))
(modify-syntax-entry ?\\e$B!J\e(B "(\e$B!K\e(B")
(modify-syntax-entry ?\\e$B!N\e(B "(\e$B!O\e(B")
(modify-syntax-entry ?\\e$B!P\e(B "(\e$B!Q\e(B")
(setq chars (cdr chars))))
;; JISX0212
-(modify-syntax-entry (make-char 'japanese-jisx0212) "w")
+;; (modify-syntax-entry (make-char 'japanese-jisx0212) "w")
(modify-syntax-entry (make-char 'japanese-jisx0212 33) "_")
(modify-syntax-entry (make-char 'japanese-jisx0212 34) "_")
(modify-syntax-entry (make-char 'japanese-jisx0212 35) "_")
(modify-category-entry (make-char 'japanese-jisx0212 ) ?C)
;; JISX0201-Kana
-(modify-syntax-entry (make-char 'katakana-jisx0201) "w")
-(let ((chars '(?\e(I!\e(B ?\e(I$\e(B ?\e(I%\e(B)))
+;; (modify-syntax-entry (make-char 'katakana-jisx0201) "w")
+(let ((chars '(?\e(I!\e(B ?\e(I$\e(B ?\e(I%\e(B
+ ;; Unicode:
+ ?\e$,3sa\e(B ?\e$,3sd\e(B ?\e$,3se\e(B)))
(while chars
(modify-syntax-entry (car chars) ".")
(setq chars (cdr chars))))
;; Korean character set (KSC5601)
-(modify-syntax-entry (make-char 'korean-ksc5601) "w")
+;; (modify-syntax-entry (make-char 'korean-ksc5601) "w")
(modify-syntax-entry (make-char 'korean-ksc5601 33) "_")
(modify-syntax-entry (make-char 'korean-ksc5601 34) "_")
(modify-syntax-entry (make-char 'korean-ksc5601 38) "_")
;; Lao character set
(modify-category-entry (make-char 'lao) ?o)
+(dotimes (i (1+ (- #xeff #xe80)))
+ (modify-category-entry (decode-char 'ucs (+ i #xe80)) ?o))
(let ((deflist '(;; chars syntax category
("\e(1!\e(B-\e(1N\e(B" "w" ?0) ; consonant
("\e(1\\e(B" "w" ?9) ; semivowel lower
("\e(1p\e(B-\e(1y\e(B" "w" ?6) ; digit
("\e(1Of\e(B" "_" ?5) ; symbol
+ ;; Unicode equivalents
+ ("\e$,1D!\e(B-\e$,1DN\e(B" "w" ?0) ; consonant
+ ("\e$,1DPDRDSD]D`\e(B-\e$,1Dd\e(B" "w" ?1) ; vowel base
+ ("\e$,1DQDT\e(B-\e$,1DWD[Dm\e(B" "w" ?2) ; vowel upper
+ ("\e$,1DXDY\e(B" "w" ?3) ; vowel lower
+ ("\e$,1Dh\e(B-\e$,1Dk\e(B" "w" ?4) ; tone mark
+ ("\e$,1D\D]\e(B" "w" ?9) ; semivowel lower
+ ("\e$,1Dp\e(B-\e$,1Dy\e(B" "w" ?6) ; digit
+ ("\e$,1DODf\e(B" "_" ?5) ; symbol
))
elm chars len syntax category to ch i)
(while deflist
(setq ch (aref chars i)
to ch))
(while (<= ch to)
- (modify-syntax-entry ch syntax)
+ (unless (string-equal syntax "w")
+ (modify-syntax-entry ch syntax))
(modify-category-entry ch category)
(setq ch (1+ ch)))
(setq i (1+ i)))
;; Thai character set (TIS620)
(modify-category-entry (make-char 'thai-tis620) ?t)
+(dotimes (i (1+ (- #xe7f #xe00)))
+ (modify-category-entry (decode-char 'ucs (+ i #xe00)) ?t))
(let ((deflist '(;; chars syntax category
("\e,T!\e(B-\e,TCEG\e(B-\e,TN\e(B" "w" ?0) ; consonant
("\e,Th\e(B-\e,Tm\e(B" "w" ?4) ; tone mark
("\e,Tp\e(B-\e,Ty\e(B" "w" ?6) ; digit
("\e,TOf_oz{\e(B" "_" ?5) ; symbol
+ ;; Unicode equivalents
+ ("\e$,1Ba\e(B-\e$,1C#C%C'\e(B-\e$,1C.\e(B" "w" ?0) ; consonant
+ ("\e$,1C$C&C0C2C3C@\e(B-\e$,1CE\e(B" "w" ?1) ; vowel base
+ ("\e$,1C1C4\e(B-\e$,1C7CGCN\e(B" "w" ?2) ; vowel upper
+ ("\e$,1C8\e(B-\e$,1C:\e(B" "w" ?3) ; vowel lower
+ ("\e$,1CH\e(B-\e$,1CM\e(B" "w" ?4) ; tone mark
+ ("\e$,1CP\e(B-\e$,1CY\e(B" "w" ?6) ; digit
+ ("\e$,1C/CFC?COCZC[\e(B" "_" ?5) ; symbol
))
elm chars len syntax category to ch i)
(while deflist
(setq ch (aref chars i)
to ch))
(while (<= ch to)
- (modify-syntax-entry ch syntax)
+ (unless (string-equal syntax "w")
+ (modify-syntax-entry ch syntax))
(modify-category-entry ch category)
(setq ch (1+ ch)))
(setq i (1+ i)))
(modify-category-entry (make-char 'tibetan) ?q)
(modify-category-entry (make-char 'tibetan-1-column) ?q)
+(dotimes (i (1+ (- #xfff #xf00)))
+ (modify-category-entry (decode-char 'ucs (+ i #xf00)) ?q))
(let ((deflist '(;; chars syntax category
- ("\e$(7"!\e(B-\e$(7"J"K\e(B" "w" ?0) ; consonant
+ ("\e4\e$(7"!\e0"!\e1\e(B-\e4\e$(7"J\e0"J\e1\e4"K\e0"K\e1\e(B" "w" ?0) ; consonant
("\e$(7#!\e(B-\e$(7#J#K#L#M!"!#\e(B" "w" ?0) ;
("\e$(7$!\e(B-\e$(7$e\e(B" "w" ?0) ;
("\e$(7%!\e(B-\e$(7%u\e(B" "w" ?0) ;
("\e$(8!;!=!?!@!A!D"`\e(B" "." ?>) ;
("\e$(7!0\e(B-\e$(7!:!l#R#S"f\e(B" "." ?<) ; prohibition
("\e$(7!C!E\e(B-\e$(7!H!J\e(B-\e$(7!O!f!h\e(B-\e$(7!k!n!o#O#P\e(B-\e$(7#`\e(B" "." ?q) ; others
+
+ ;; Unicode version (not complete)
+ ("\e$,1F \e(B-\e$,1FIFJ\e(B" "w" ?0) ; consonant
+ ("\e$,1Fp\e(B-\e$,1G9G:G;G<\e(B" "w" ?0) ;
+ ("\e$,1FRFZF[F\F]F`\e(B" "w" ?2) ; upper vowel
+ ("\e$,1F^FbFcFfFgFhFiFjFk\e(B" "w" ?2) ; upper modifier
+ ("\e$,1EYFPFQFTFdEuEw\e(B" "w" ?3) ; lowel vowel/modifier
+ ("\e$,1E`\e(B-\e$,1EiEj\e(B-\e$,1Es\e(B" "w" ?6) ; digit
+ ("\e$,1EKEM\e(B-\e$,1ERETF_\e(B" "." ?|) ; line-break char
+ ("\e$,1EHEKEM\e(B-\e$,1ERETF_E}Et\e(B" "." ?>) ; prohibition
+ ("\e$,1E@\e(B-\e$,1EJE|GAGBFe\e(B" "." ?<) ; prohibition
+ ("\e$,1ESEU\e(B-\e$,1EXEZ\e(B-\e$,1E_EvEx\e(B-\e$,1E{E~E\7fG>G?\e(B-\e$,1GO\e(B" "." ?q) ; others
))
elm chars len syntax category to ch i)
(while deflist
(setq ch (aref chars i)
to ch))
(while (<= ch to)
- (modify-syntax-entry ch syntax)
+ (unless (string-equal syntax "w")
+ (modify-syntax-entry ch syntax))
(modify-category-entry ch category)
(setq ch (1+ ch)))
(setq i (1+ i)))
(let ((lower (make-char 'vietnamese-viscii-lower))
(upper (make-char 'vietnamese-viscii-upper)))
- (modify-syntax-entry lower "w")
- (modify-syntax-entry upper "w")
+;; (modify-syntax-entry lower "w")
+;; (modify-syntax-entry upper "w")
(modify-category-entry lower ?v)
(modify-category-entry upper ?v)
(modify-category-entry lower ?l) ; To make a word with
;; Thus we have to check language-environment to handle casing
;; correctly. Currently only I<->i is available.
-;; case-syntax-pair's are not yet given for Latin Extendet-B
-
;; Latin Extended-A, Latin Extended-B
(setq c #x0100)
(while (<= c #x0233)
(set-case-syntax-pair ?\e$,1!;\e(B ?\e$,1!<\e(B tbl)
(set-case-syntax-pair ?\e$,1!=\e(B ?\e$,1!>\e(B tbl)
+ ;; Latin Extended-B
+ (set-case-syntax-pair ?\e$,1!A\e(B ?\e$,1#S\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!B\e(B ?\e$,1!C\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!D\e(B ?\e$,1!E\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!F\e(B ?\e$,1#T\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!G\e(B ?\e$,1!H\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!I\e(B ?\e$,1#V\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!J\e(B ?\e$,1#W\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!K\e(B ?\e$,1!L\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!N\e(B ?\e$,1"=\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!O\e(B ?\e$,1#Y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!P\e(B ?\e$,1#[\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!Q\e(B ?\e$,1!R\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!S\e(B ?\e$,1#`\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!T\e(B ?\e$,1#c\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!V\e(B ?\e$,1#i\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!W\e(B ?\e$,1#h\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!X\e(B ?\e$,1!Y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!\\e(B ?\e$,1#o\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!]\e(B ?\e$,1#r\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!_\e(B ?\e$,1#u\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!`\e(B ?\e$,1!a\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!b\e(B ?\e$,1!c\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!d\e(B ?\e$,1!e\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!f\e(B ?\e$,1$ \e(B tbl)
+ (set-case-syntax-pair ?\e$,1!g\e(B ?\e$,1!h\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!i\e(B ?\e$,1$#\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!l\e(B ?\e$,1!m\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!n\e(B ?\e$,1$(\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!o\e(B ?\e$,1!p\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!q\e(B ?\e$,1$*\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!r\e(B ?\e$,1$+\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!s\e(B ?\e$,1!t\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!u\e(B ?\e$,1!v\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!w\e(B ?\e$,1$2\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!x\e(B ?\e$,1!y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1!|\e(B ?\e$,1!}\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"$\e(B ?\e$,1"&\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"%\e(B ?\e$,1"&\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"'\e(B ?\e$,1")\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"(\e(B ?\e$,1")\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"*\e(B ?\e$,1",\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"+\e(B ?\e$,1",\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"-\e(B ?\e$,1".\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"/\e(B ?\e$,1"0\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"1\e(B ?\e$,1"2\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"3\e(B ?\e$,1"4\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"5\e(B ?\e$,1"6\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"7\e(B ?\e$,1"8\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"9\e(B ?\e$,1":\e(B tbl)
+ (set-case-syntax-pair ?\e$,1";\e(B ?\e$,1"<\e(B tbl)
+ (set-case-syntax-pair ?\e$,1">\e(B ?\e$,1"?\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"@\e(B ?\e$,1"A\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"B\e(B ?\e$,1"C\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"D\e(B ?\e$,1"E\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"F\e(B ?\e$,1"G\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"H\e(B ?\e$,1"I\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"J\e(B ?\e$,1"K\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"L\e(B ?\e$,1"M\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"N\e(B ?\e$,1"O\e(B tbl)
+ ;; 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON
+ (set-case-syntax-pair ?\e$,1"Q\e(B ?\e$,1"S\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"R\e(B ?\e$,1"S\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"T\e(B ?\e$,1"U\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"V\e(B ?\e$,1!U\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"W\e(B ?\e$,1!\7f\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"X\e(B ?\e$,1"Y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"Z\e(B ?\e$,1"[\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"\\e(B ?\e$,1"]\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"^\e(B ?\e$,1"_\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"`\e(B ?\e$,1"a\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"b\e(B ?\e$,1"c\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"d\e(B ?\e$,1"e\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"f\e(B ?\e$,1"g\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"h\e(B ?\e$,1"i\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"j\e(B ?\e$,1"k\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"l\e(B ?\e$,1"m\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"n\e(B ?\e$,1"o\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"p\e(B ?\e$,1"q\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"r\e(B ?\e$,1"s\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"t\e(B ?\e$,1"u\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"v\e(B ?\e$,1"w\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"x\e(B ?\e$,1"y\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"z\e(B ?\e$,1"{\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"|\e(B ?\e$,1"}\e(B tbl)
+ (set-case-syntax-pair ?\e$,1"~\e(B ?\e$,1"\7f\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#"\e(B ?\e$,1##\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#$\e(B ?\e$,1#%\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#&\e(B ?\e$,1#'\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#(\e(B ?\e$,1#)\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#*\e(B ?\e$,1#+\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#,\e(B ?\e$,1#-\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#.\e(B ?\e$,1#/\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#0\e(B ?\e$,1#1\e(B tbl)
+ (set-case-syntax-pair ?\e$,1#2\e(B ?\e$,1#3\e(B tbl)
+
;; Latin Extended Additional
(setq c #x1e00)
(while (<= c #x1ef9)
(set-case-syntax-pair ?\e$,1&n\e(B ?\e$,1'M\e(B tbl)
(set-case-syntax-pair ?\e$,1&o\e(B ?\e$,1'N\e(B tbl)
+ ;; Armenian
+ (setq c #x531)
+ (while (<= c #x556)
+ (set-case-syntax-pair (decode-char 'ucs c)
+ (decode-char 'ucs (+ c #x30)) tbl)
+ (setq c (1+ c)))
+
;; Greek Extended
(setq c #x1f00)
(while (<= c #x1fff)
(while (<= c #x2027)
(set-case-syntax c "_" tbl)
(setq c (1+ c)))
- )
+ ;; Roman numerals
+ (setq c #x2160)
+ (while (<= c #x216f)
+ (set-case-syntax-pair (decode-char 'ucs c)
+ (decode-char 'ucs (+ c #x10)) tbl)
+ (setq c (1+ c)))
+
+ ;; Circled Latin
+ (setq c #x24b6)
+ (while (<= c #x24cf)
+ (set-case-syntax-pair (decode-char 'ucs c)
+ (decode-char 'ucs (+ c 26)) tbl)
+ (modify-category-entry (decode-char 'ucs c) ?l)
+ (modify-category-entry (decode-char 'ucs (+ c 26)) ?l)
+ (setq c (1+ c)))
+
+ ;; Fullwidth Latin
+ (setq c #xff21)
+ (while (<= c #xff3a)
+ (set-case-syntax-pair (decode-char 'ucs c)
+ (decode-char 'ucs (+ c #x20)) tbl)
+ (modify-category-entry (decode-char 'ucs c) ?l)
+ (modify-category-entry (decode-char 'ucs (+ c #x20)) ?l)
+ (setq c (1+ c)))
+
+ ;; Ohm, Kelvin, Angstrom
+ (set-case-syntax-pair ?\e$,1uf\e(B ?\e$,1'I\e(B tbl)
+ (set-case-syntax-pair ?\e$,1uj\e(B ?k tbl)
+ (set-case-syntax-pair ?\e$,1uk\e(B ?\e,Ae\e(B tbl)
+
+ ;; Combining diacritics
+ (setq c #x300)
+ (while (<= c #x362)
+ (modify-category-entry (decode-char 'ucs c) ?^)
+ (setq c (1+ c)))
+
+ ;; Combining marks
+ (setq c #x20d0)
+ (while (<= c #x20e3)
+ (modify-category-entry (decode-char 'ucs c) ?^)
+ (setq c (1+ c)))
+
+ ;; Fixme: syntax for symbols &c
+ )
\f
;;; Setting word boundary.
\f
;; Setup auto-fill-chars for charsets that should invoke auto-filling.
-;; SPACE and NEWLIE are already set. Also put `nospace-between-words'
-;; property to the charsets.
+;; SPACE and NEWLINE are already set. Also put `nospace-between-words'
+;; property on the charsets.
(let ((l '(katakana-jisx0201
japanese-jisx0208 japanese-jisx0212
chinese-gb2312 chinese-big5-1 chinese-big5-2)))