Kenichi Handa <[EMAIL PROTECTED]> writes: > That makes too many unnecessary calls of `kinsoku'. I've > just installed a fix of the different way. Could you please > try with the latest code?
The `kinsoku' processing works great now, but `nospace-between-words' still doesn't work for: (set-language-environment "UTF-8") and, (set-language-environment "Chinese-GB18030") Should we do the same thing to the `nospace-between-words' property?
* local directory is at [EMAIL PROTECTED]/emacs--unicode--0--patch-122 * comparing to [EMAIL PROTECTED]/emacs--unicode--0--patch-122 A lib-src/blessmail A patch.txt M lisp/textmodes/fill.el M lisp/international/characters.el * modified files --- orig/lisp/international/characters.el +++ mod/lisp/international/characters.el @@ -879,16 +879,20 @@ (set-char-table-range auto-fill-chars '(#xFF00 . #xFF9F) t) (set-char-table-range auto-fill-chars '(#x20000 . #x2FFFF) t) -(let ((l '(katakana-jisx0201 - japanese-jisx0208 japanese-jisx0212 - japanese-jisx0213-1 japanese-jisx0213-2 - chinese-gb2312 chinese-gbk chinese-big5-1 chinese-big5-2 - chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 - chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 - chinese-cns11643-7))) - (while l - (put-charset-property (car l) 'nospace-between-words t) - (setq l (cdr l)))) +(defvar nospace-between-words-chars-table + (let ((table (make-char-table nil))) + ;; Register `nospace-between-words' for scripts HAN, KANA, + ;; BOPOMPFO, and CJK-MISS. + (map-char-table #'(lambda (key val) + (if (memq val '(han kana bopomofo cjk-misc)) + (set-char-table-range table key + 'nospace-between-words))) + char-script-table) + ;; Register `nospace-between-words' also for full width characters. + (set-char-table-range table '(#xFF01 . #xFF61) 'nospace-between-words) + (set-char-table-range table '(#xFFE0 . #xFFE6) 'nospace-between-words) + table) + "A char-table for characters with `nospace-between-words' property.") ;; CJK double width characters. --- orig/lisp/textmodes/fill.el +++ mod/lisp/textmodes/fill.el @@ -452,7 +452,7 @@ (if enable-multibyte-characters ;; Delete unnecessay newlines surrounded by words. The ;; character category `|' means that we can break a line - ;; at the character. And, charset property + ;; at the character. And, character property ;; `nospace-between-words' tells how to concatenate ;; words. If the value is non-nil, never put spaces ;; between words, thus delete a newline between them. @@ -466,8 +466,7 @@ (next (following-char))) (if (and (or (aref (char-category-set next) ?|) (aref (char-category-set prev) ?|)) - (or (get-charset-property (char-charset prev) - 'nospace-between-words) + (or (aref nospace-between-words-chars-table prev) (get-text-property (1- (match-beginning 0)) 'nospace-between-words))) (delete-char -1)))))) * added files --- /dev/null +++ /home/brep/emacs-source/emacs--unicode--0/,,[EMAIL PROTECTED]/new-files-archive/./lib-src/blessmail @@ -0,0 +1,3 @@ +#!/bin/sh +chgrp 8 $* && chmod g+s $* +echo mail directory = /var/mail --- /dev/null +++ /home/brep/emacs-source/emacs--unicode--0/,,[EMAIL PROTECTED]/new-files-archive/./patch.txt @@ -0,0 +1,2 @@ +* local directory is at [EMAIL PROTECTED]/emacs--unicode--0--patch-122 +* comparing to [EMAIL PROTECTED]/emacs--unicode--0--patch-122
_______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug