| 葉山文書 7/16〜8/13の戯事篇 |
僕も eadir などという内蔵コマンドを作ったものですが、 そのせいか、OS/2 mag.で、REXXでコメントを扱う記事が 出る度に「NYAOS は .COMMENT の扱いがしやすいぞー」 と叫んでしまいます。(だったら、メイルでも送れよと自分でも思うが、勇気がないので、 今度、葉書を出そう(笑))
そういえば、lha の書庫のレベル2形式にはコメントヘッダというものがあるそうです。 これに「.COMMENT」の内容を保存するようにできないものでしょうかねぇ。 「-e」オプションでも保存できますが、そうすると希望しない拡張属性(アイコン、REXXのキャッシュ情報) まで保存されてしまいますから、サイズが大きくなってしまう場合があります。 ちょっとしたことですが、できたらうれしいのですがねぇ。 (だったら、作者の平松さん へメイルを送れよと自分でも思うが、 一般にメジャーなフリーウェアの作者はこの手のメイルでメイルボックスがあふれて 迷惑していると聞くし...。 あ、僕宛は全然歓迎っす(その前にメジャーぢゃない))。
# しかし、lha は ヘッダ識別子に1byteしか取っていないのは、 # 明らかに間違いだと思う。 # ここは、OSのid×256を足した2bytesにすべきだっただろう。しかし、せっかく、コメントの属性にファイルの説明を付けても、 Muleでエディットすると、消えてしまうんですよねぇ。 (正確には「foo」というファイルをエディットすると、 「foo~」に移ってしまう)
拡張属性は使ってはいけないものなんだろうか...
OS/2 には、他に KL とか FD/2 とかがありますけど、 そのいづれも、C-n,C-p どころか、ダイヤモンドカーソルすら サポートしていないのは、なぜなんでしょうかねぇ。 英語圏に行けばあるかもしれませんが、あの枠線が化けるのは みっともなくて嫌ですしねぇ(AXの呪い)。 PM用は、起動する度にディスクがカリカリ言うし...
これは俺がやるしかないのかな。
今なら、その筋の人のシェアを独占できるかも。
# 実は、もはや、そんな暇はないが...
(補足)ですが、「続・たのしいUNIX」を見たところ、これは
あとから、ソースを見たら、「&」「&&」「||」など、 命令の区切文字に関しては、スクリプト展開のルーチンでやってました。
そういえば、次の Warp 5 では、ドライブレターが消えるという話をどっかの雑誌で読んだ記憶がありますが、 本当なんでしょうかねぇ。ついでに、ハード/シンボリックリンクもサポートしてくれたらよいのですが。
(補足)
Journaling File System for Warp とかいうそうです。 AIXからの移植で、Server用だそうです(ちと残念) (http://www.os2ss.com/Information/Warp5)。
わざわざ、メイルで教えてくださいました宇野さんに お礼申しあげます。 (NYAOSのバグリポートとかもよくいただき、 非常に助かってます。m(__)m)
IBMEWS の startdos を使えば、日本語環境で起動できますが、 いちいち「startdos ... 実行ファイル名」と入力するのも 結構、うっとうしいですね。しかし、これは...、 おお、SCRIPTPATHと同じ方法で解決できるではないか! なぜ、今まで思いつかなかったんだろう(と思ったのが一ヶ月前)。
ここは、DOSVPATHなる環境変数に記述されているディレクトリ内に ある実行ファイルについては「startdos ...」を直前に付加するように すればよいわけですね。しかし、入力の度に検索するディレクトリの数が 増えるわけですから、さらに速度が遅くなるかもしれません。
やはり、ここは独自キャッシュを用意した方がよさそうです。 いくらディスクキャッシュで実際にディスクとアクセスしないといえども、 毎回 opendir で検索するのも、不経済です。 ここは ハッシュテーブル を用意して、検索速度を稼ぐのが、 正しいプログラマの態度でしょう。 でも、SCRIPT実行支援を On にした時でも、さほど速度低下は感じられないしなー。 いらぬ改造をして、またバグを大量噴出させるのはなー。 ううむ、あ、そういう時こそ、option 選択か!
まぁ、どっちにしても、DOSVPATH はやります。この他、前から アナウンスしていて、全然やっていないものに SOS スクリプトの OS/2窓実行機能というのがあります。SOSというのは言語ぢゃなくて、 DOS上で「#!」機能を実現するソフトウェアです。といっても、 常駐プログラムとかではなくて、スクリプトファイルの先頭に 挿入して、拡張子を COM に変えれば、そのまま実行ファイルに なってしまうという テキスト型の実行ファイルのヘッダです。 最新版はftp://ftp.ics.nara-wu.ac.jp/pub/dosutil/ から Get できるはずです。 作られたのは、奈良女子大学の新出尚之先生です。 実は昔、先生の講義(京大教養の情報処理実習)を受けたことがあり、 awk やシェルスクリプトの便利さを教えていただきました。
この SOS で作ったCOM型スクリプトというのは、OS/2窓でも全く問題 実行でき、OS/2コマンドともパイプがちゃんとつながるのですが、 いかんせん、PC-DOS窓を毎回開くので、ちょっとスムーズとはいえないのです。 ここは NYAOS の出番かなぁと思うのですが、実際に それほど Needs があるのかが疑問なんで、 まだ、手が動くには至ってません。 あと、SOSスクリプトと普通のCOMファイルの判別に 時間がかかりそうだというのもあるんですよね。
でも、まぁ、このへんは、近々登場すると言われている、 TCSH OS/2日本語版に唯一対抗できそうな点なんで、 避けては通れません。まぁ、1.24 か 1.25 くらいで、 なんとかしたいですね(いっそーのこと、1.30 に格上げするか!)。
上で、「ls .*」と「!」のメッセージの件については、
簡単に直りました。次のバージョンでは、ばっちりです。
(8/9:朝)
カーソルの件は、どう対処したらいいか、困っているという状況です。 カーソルを On にするには、v_ctypeという関数を呼び出せばいいのですが、 これには二つの引数(カーソル開始ライン、カーソル終了ラインだったと思う)を 渡さなければいけません。で、これが mode coXX,YYの YY によって、 適切な値が変わってしまうようなんです。v_getctype という関数でこの値を 得られるのですが、これをいつ実行するかをちょっと悩んでいます。 どなたか助言をくださいませ。なお、点滅でないカーソルでも構わないなら、
cursor 0;47;30 1;37;40
で、ニセカーソルを利用することもできます。
しかし、なぜ今まで、このバグが発生しなかったのか不思議だ。