[xyzzy:08770] Re: set-defalut-directory が効かない
- Subject: [xyzzy:08770] Re: set-defalut-directory が効かない
- From: 渡辺 徹 <t-watanabe11@xxxxxxxxxxxx>
- X-mailer: KaMail-0.0.2.4[01/04/06] on xyzzy-0.2.2.233 (windows-98)
- X-yzzy-version: 0.2.2.233
Nobuyoshi Nakadaさん、こんにちは渡辺 徹です。
2003年4月9日(水)[19:09:55]の、
[xyzzy:08768] Re: set-defalut-directory が効かない
への返事です。
中田さん、何度もお返事ありがとうございます。
> 猫まねきの側の問題じゃないでしょうか。1.20で試してみましたが、
> 「作業フォルダー」の設定が効いていないように見えます。
これは、よくわかりません。少なくとも、同じように猫まねきのキー操作から
呼び出しているそのほかのアプリケーションでは作業フォルダに関しての問題は
出ていませんから。
> siteinit.lに書いても意味はありません。
> 「デスクトップにアイコン」というのがショートカットのことならば、
> 「プロパティ」から「作業フォルダ」を変更してみてください。「ファ
> イル名を指定して実行」にはカレントディレクトリを指定する方法自
> 体ありませんから、無理だと思います。
ショートカットの「プロパティ」、作業フォルダを確認してみましたが、ちゃ
んとxyzzy.exeのフォルダになっています。それでもうまく行っていないです。
> 確実にディレクトリを指定できる方法としては、カレントディレクト
> リを移動してからxyzzyを起動するバッチファイルを作るというのもあ
> るかも知れません。
こちらはうまく行きました。バッチファイルでカレントドライブと、カレント
ディレクトリを移動してから、xyzzy.exeを起動し、(default-directory)を評価
してみましたら、ちゃんとバッチファイルで移動したドライブのディレクトリに
なっています。と言うことは(set-default-directory)はxyzzyの内部状態を操作
しているわけでは無いと言うことですね。
> ダンプとバイトコンパイルを混同されてるように思えます。.lcファイ
> ルはバイトコンパイルによって作られるもので、ダンプには関係あり
> ません。バイトコンパイルしていようといまいと、ダンプを作る時点
> でsiteinit.l(またはsiteinit.lc)がロード、評価されます。
ご指摘の通りでした、ごく基本的なことなので恥ずかしいのですが、確認させ
てください。
バイトコンパイル -> .Lから.LCの作成
ダンプ -> xyzzy.w98の作成
この点がクリアになって、やっと[08756]で中田さんが書かれた次の説明が理
解出来ました。
> siteinit.lと.xyzzyでは評価される時点が違うので、完全に期待され
> る通りの動作だと思います。default-directoryは実行時に動的に決定
> される値なので、siteinit.lで設定されてダンプされた値は意味を持
> たず、起動した後に評価される.xyzzyで設定された値は有効になると
> いう。
しかし、set-default-directoryはなぜxyzzyの内部を操作するものではないの
か、と言う疑問もあります。たとえば、
(set-default *default-directory* "C:/")
の様な書き方なら、siteinit.lに書いても大丈夫なはずです。
後、default-directoryの話から、少し脱線しますが、ダンプされるプログラ
ムファイルはどのみち評価されて、保存されるわけですから、バイトコンパイル
する必要が無いと言うことでしょうか。autoloadで後から読み込まれるファイル
はロードを速くするために、バイトコンパイルすることに意味がありますが。
/|
/ |
/ W|
~~~| 渡辺 徹
\-------/ t-watanabe11@xxxxxxxxxxxx
~~~ \____/ ~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~