sref in filename.el

Hiroya Murata lapis-lazuli @ pop06.odn.ne.jp
2005年 6月 6日 (月) 11:14:57 JST


先ず前提として, ユーザに (defalias 'sref 'aref) させるのは, なしっ
て事にしたいです.

In the message [apel-ja : No.01292]
   on Mon, 06 Jun 2005 09:34:38 +0900, Katsumi Yamaoka wrote:

> Emacs 20.2 以下における非 ascii 文字の扱いは、それ以降のものとは
> まったく異なるので、filename.el に古い Emacs もサポートさせるな
> らば aref で置き換えることはできません。以下は Mule 2.3 @ 19.34> 場合です。

[...]

> 一方、最近まで sref が aref への alias だったように、きちんと書
> かれた sref を使うコードを、上位の Emacs では aref に置き換えて
> しまうことは可能です。

古い Emacs では, sref と aref に互換性はないので, 単純に置き換えは
出来ないと言うのは理解しました. ただ, CVS head で sref の定義がな
くなった以上,

 1. このまま sref を使い, (defalias 'sref 'aref) も提供する
 2. aref で置き換え, (aref と sref に互換性のない) 古い Emacs 用に
    aref を再定義する

のどちらかが必要だと思います. (そもそも 2が可能かどうかと言う問題
もありますが)

1 の方が簡単で影響も少ないのでしょうが, これから書かれる APEL を使っ
て互換性を維持しようとするプログラムで, 文字列から文字を取り出す目
的で sref を使えって言うのもどうかと言う気がします.

> > 逆に, 古い emacs 用に aref を emulate する必要がありますか?

(fset 'aref-original (symbol-function 'aref))
(defun aref (array index)
  (if (stringp array)
      (sref array index)
    (aref-original array index)))

この程度で済むのであれば, 上記の 2の方が良い様に思えます.

どうでしょうか?

-- 
Hiroya Murata (村田 浩也) <lapis-lazuli @ pop06.odn.ne.jp>
PGP fingerprint: 53B6 1B4A 8193 A2D4 1526  BC9E 9AEF 2F6D 249D 5F17





More information about the APEL-ja mailing list