poem's char-or-char-int-p causes invalid character errors

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2005年 5月 10日 (火) 16:58:48 JST


>>>>> In [apel-ja : No.01271] 
>>>>>	Tatsuya Kinoshita <tats @ vega.ocn.ne.jp> wrote:

> > + (defalias-maybe 'char-valid-p 'integerp)

> > という風に、char-valid-p を defalias-maybe してしまうのはまずいで
> > しょうか?

> 単にintegerpにしてしまうと、XEmacsで今回と同じような問題が起こりやす
> くなってしまわないでしょうか。(たとえばgnus/lisp/mm-util.elの
> mm-char-or-char-int-pでchar-or-char-int-pとchar-valid-pの判定順が逆
> だったら……)

おっしゃる通りですね。

;; 自分でもすぐに気づいてしまった (^_^;;;

> 定義するなら、下記のような感じだとどうでしょうか。

> (defalias-maybe 'char-valid-p
>   (cond
>    ((fboundp 'char-or-char-int-p) 'char-or-char-int-p)
>    (t 'integerp)))

XEmacs の場合、エボラ化後では characterp の方が良いと思います。という
訳で、

Index: poem-xm.el
===================================================================
RCS file: /cvs/root/apel/poem-xm.el,v
retrieving revision 1.16
diff -c -r1.16 poem-xm.el
*** poem-xm.el	5 Sep 2003 04:45:16 -0000	1.16
--- poem-xm.el	10 May 2005 07:33:01 -0000
***************
*** 1,6 ****
  ;;; poem-xm.el --- poem module for XEmacs-mule; -*-byte-compile-dynamic: t;-*-
  
! ;; Copyright (C) 1998,1999 Free Software Foundation, Inc.
  
  ;; Author: MORIOKA Tomohiko <tomo @ m17n.org>
  ;; Keywords: emulation, compatibility, Mule
--- 1,6 ----
  ;;; poem-xm.el --- poem module for XEmacs-mule; -*-byte-compile-dynamic: t;-*-
  
! ;; Copyright (C) 1998,1999,2002,2003,2005 Free Software Foundation, Inc.
  
  ;; Author: MORIOKA Tomohiko <tomo @ m17n.org>
  ;; Keywords: emulation, compatibility, Mule
***************
*** 75,80 ****
--- 75,82 ----
  It always returns 1 in XEmacs.  It is for compatibility with MULE 2.3."
  	1)))
  
+ (defalias-maybe 'char-valid-p 'characterp)
+ 
  
  ;;; @ string
  ;;;

を追加ではいかがでしょうか?

と、思ったけど、関数の引数で文字を指定すべき所に整数を入れても OK な場
合は結構ありますね。うーむ。やっぱ、char-or-char-int-p かな?

また、XEmacs without Mule の場合のことも考えないとまずいですね。この場
合も characterp か char-or-char-int-p か?

また、上記のような poem-xm.el で定義する方式を採る場合、poem-ltn1.el 
あたりに

(when (and (featurep 'xemacs)
	   (fboundp 'characterp))
  (defalias-maybe 'char-valid-p 'characterp))

みたいなのを入れるのが良いのか?

-- 
┯━…‥・懐かしい未来の記憶をふと思い出しかけた・‥…━━┯━━━┯━
││ ─ │  ─  /    ─   ┼─     ┬                ─   ─┼ ┬┴─
┼┼─┼|〓━─┼ 守岡 知彦 (MORIOKA Tomohiko) <tomo @ m17n.org> ─ ─┬
┻┻━┻━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━





More information about the APEL-ja mailing list