find-coding-system() in pces-e20.el
Hideyuki SHIRAI (=?iso-2022-jp?B?GyRCR3IwZj0oOVQbKEI=?=)
shirai @ rdmg.mgcs.mei.co.jp
2000年 9月 27日 (水) 17:37:29 JST
はじめまして、白井と申します。以後、よろしくお願いします。
早速本題なのですが、pces-e20.el などにある
(defsubst-maybe find-coding-system (obj)
"Return OBJ if it is a coding-system."
(if (coding-system-p obj)
obj))
について質問があります。
Emacs 20.7 などの built-in function の coding-system-p() は
(coding-system-p nil) => t
と 'nil' を与えたときに 't' が帰ってくるのが仕様の様ですが、例え
ば、(APEL の使用を想定していないパッケージで)XEmacs と Emacs で
共有の関数を書くために
(if (fboundp 'find-coding-system)
(fset 'hoge-coding-system-p (symbol-function 'find-coding-system))
(fset 'hoge-coding-system-p (symbol-function 'coding-system-p)))
と宣言しておくと、上記の defsubst-maybe で pces-e20.el で定義さ
れている find-coding-system() を使うことになります。そうすると、
(hoge-coding-system-p nil) => nil
となってしまい、本来 nil を想定していないため、以降の処理が破綻
してしまいます。
ちなみに、XEmacs 21.2.53 では
(find-coding-system nil) => #<coding_system binary>
となります。
『仕様』『バグ』『使い方が悪い』というのが考えられるのですが、ど
のようなものでしょうか?
--
白井秀行 (mailto:shirai @ rdmg.mgcs.mei.co.jp)
More information about the APEL-ja
mailing list