make-temp-file definition is not effective

Shuhei KOBAYASHI shuhei @ aqua.ocn.ne.jp
2003年 7月 1日 (火) 06:28:25 JST


teranisi @ gohome.org (Yuuichi Teranishi) writes:
> > > 邪悪と書きましたが, 最後のがよさそうな気がしてきました.
> > > どうでしょうか?
> うーむ、こんなことができるとは…。

built-in function には使えない手なのですよね.
副作用のために load 時ではなく compile 時に判定を行ないたい built-in が
存在して version 判定という逃げ道も使えなければ compile 時の判定は避け
られない.
もし XEmacs にそんな built-in が存在するなら, 複数の version の XEmacs
を対象とした package として APEL を提供するのはやはり問題があることにな
りそうです. (XEmacs と密着しているので version 判定でほとんど回避可能?)

> > この方針でとりあえず作ってみましたがもうちょっと整理が必要な気がします.

'defun-maybe property の想定外の使い方をしてしまいましたが, compile 時
の判定結果を後(compile 時と load 時)から使うというのはすでに broken.el
がしていることなのですよね.

単に broken かどうかではなくどう壊れているのかを判定する macro と,
その判定結果を利用して定義を切り替える macro を用意して,
byte-compile 時の設定でそれぞれが評価されるタイミングを compile 時か
load 時かに設定できるようにするのがよい気がしてきましたが,
それは APEL-Diet 後の課題ということで.

> これに default-file-modes が無い Emacs への対応もつけてみました。
> (Nemacs 3.3.2 @ 18.59 で動作)

default-file-modes がないのは Emacs 18 だけです.
Demacs は対象外のはず(Emacs 18 では multi-user 限定)なので, ここは
compile 時に判定したいところです.

    ((not (fboundp 'default-file-modes))
     ;; Emacs 18
     (put 'make-temp-file 'defun-maybe 'no-default-file-modes))
    ((not (fboundp 'make-temp-file))
     ;; Emacs 20 and earlier, or XEmacs.
     (put 'make-temp-file 'defun-maybe 'no-make-temp-file))

としてしまうか, あるいは make-temp-file の定義を default-file-modes を
使わない以下のものにしてしまっても問題はないかと思います.

-- 
Shuhei KOBAYASHI

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: make-temp-file-18.el
型:         application/emacs-lisp
サイズ:     3250 バイト
説明:       without default-file-modes/set-default-file-modes
URL:        <http://lists.chise.org/pipermail/apel-ja/attachments/20030701/e70d8018/attachment-0001.bin>


More information about the APEL-ja mailing list