292kis00022yav 1998/03/26 01:10:24 前へ 後へ 上へ

Re: $USERの展開方法について

291へのコメント

> Windowsでも環境変数USERを単純に展開するような実装でいいのでしょうか?
> たとえば、USERが空ならWin32 APIでユーザー名を取得して置き換えるくらい
>のことはしたほうが親切かもしれないとか思っています。


じつは,rcファイルでオプションを指定できるようになったために,
めんどくさい環境変数の展開を実装したという裏があります.
コマンドラインではshellが環境変数を展開してくれるので問題ないのですが,
オプションをrcファイルに書いておく場合は
自前で展開しないといけないからです.
(rcファイルの内容をshellにechoしてもらうという手もあったのですが,
 それはそれで新たなセキュリティホールを作ってしまいますから.)

で,文字列の評価のルーチンに環境変数の展開をつけたら,
コメント文字列の評価でも環境変数を展開するようになったわけです.

もっともぜんぜん不完全なルーチンで,
${TMPDIR-$TMP} のように
$TMPDIRが定義されてたらその内容を,
定義されてなければ$TMPの内容を展開する
のようにネストしてる場合はちゃんと動作しないと思います.

だから,コメント文字列にはちょっと役不足で使えんというのが実感です.

> でもWindowsだと環境変数USERにユーザー名を設定するというお約束がないの
>で、あまり有効(なにがだ)でないような気もします。

unixでも,どのunixでもありそうなのは USER, HOME, TZ ぐらいか?
あ,TZってけっこうバリエーションありそうで頭イタそうだし,

> # あとMacに環境変数ってありましたっけ?

などの問題もあり,苦労して実装するわりにはむくわれないと思うので,
実装はおすすめしません.
fkissのように他の用途で必要になったのでルーチンを用意した場合はともかく,
コメント文字列中の$USERの展開のためだけにルーチンを書くのは
いくらなんでもコストパフォーマンス悪すぎだ. (T_T)
fkissのイベント拡張機能すら,
ふつうのKISSデータにはぜんぜん関係ないを
心苦しく思ってるオレにはちょっと耐えられんっス.
-- 
                                        UHD98984@biglobe.ne.jp
                                        yav@bigfoot.com
                                                        yav

前へ 後へ 上へ