[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[emacs-unicode-2] encode-coding-stringからの CCL 呼出し
- To: mule-ja@xxxxxxxx
- Subject: [emacs-unicode-2] encode-coding-stringからの CCL 呼出し
- From: ARISAWA Akihiro <ari@xxxxxxxxxxxxxxxx>
- Date: Fri, 03 Mar 2006 22:37:11 +0900
- Reply-to: mule-ja@xxxxxxxx
- User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.51 (i686-pc-linux-gnu)
Emacs23 にて encode-coding-string で CCL な coding-system を
指定した時に、最後まで出力されない(?)ことがあります。
(define-ccl-program t1-encoder
'(2
(loop
(read r0)
(write ?1)
(write ?2)
(repeat))))
(define-coding-system 't1 "ccl test coding system"
:mnemonic ?t
:coding-type 'ccl
:ccl-decoder 't1-encoder
:ccl-encoder 't1-encoder)
(encode-coding-string "t" 't1)
=> ""
(encode-coding-string "te" 't1)
=> "12"
(encode-coding-string "tes" 't1)
=> "121"
(encode-coding-string "test" 't1)
=> "1212"
入力より長い文字列を出力できないような感じです。
なお、ccl-execute-on-string からであれば期待通りに出力されました。
ついでにお聞きしたいのですが、define-ccl-program の DOC-STRING で
;; character. If the dimension of charset is two, set REG_1
;; to ((CODE0 << 7) | CODE1), where CODE0 is the first code
;; point and CODE1 is the second code point.
| (read-multibyte-character REG_0 REG_1)
とありますが、REG_1 には ((CODE0 << 8) | CODE1) が入るようです。
これは仕様変更でしょうか?
--
有沢 明宏
;; 2年前に見付けて忘れてました(^^;