[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00296] Re: FDclone 2.05f has been released
- Subject: [FDclone-users:00296] Re: FDclone 2.05f has been released
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Wed, 23 Jun 2004 23:35:35 +0900
しらいです。
In Message-Id <20040623134045.9D45953D0E@yuka.unixusers.net>
Takashi SHIRAI <shirai@unixusers.net>writes:
> しらいです。
本当は先週中に release する予定だったのですが、諸々の理由
で今週までずれ込んでしまいました。お蔭で最初に報告した分以外
の修正がわらわらと...。
> 「\」で終わるコマンド行を正しく処理出来ない点を修正。
[FDclone-users:00287] にて報告させて頂いた分です。単純なミ
スだったんですが、チェックの甘さゆえ bug 混入のまま release
してしまいました。すみません。
> アーカイブブラウザでマークがある時のランチャ起動ミスを修正。
archive browser で archive file の中を browse している時に
普通に file の上で Enter を押すと、launcher が発動して less
なり何なりが起動します。
ところが、この際にこの対象 file 以外の file に mark がつい
ていた場合、一時的に unpack される対象が mark file の方にな
ってしまい、肝腎の対象 file が unpack されないという支障があ
りました。
このため ENOENT で error 扱いになってしまっていました。
> USEGETCURSOR が機能していなかった点を修正。
TIOCGWINSZ 等の ioctl() で画面サイズ取得に失敗した場合でも、
USEGETCURSOR を有効にしておけば ANSI 互換の cursor 位置取得
用 escape sequence を用いて画面サイズ取得をする筈でした。
ところが、FD-2.05b で端末周りの調整を施した際に、この文字
列取得 routine の修正をミスりまして、文字列領域の先頭 1byte
だけを何度も書換えてしまっていました。
その結果、端末が正しく cursor 位置を返していてもその文字列
を取得出来ておらず、その結果画面サイズ不明という結果になって
しまっていました。
> 起動オプション -r が効いていなかった点を修正。
仕様上は、以下の何れかの場合は一部制限 shell として起動さ
れたこととなり、directory 移動や PATH の変更など一部の機能が
制限される筈でした。
・実行 file name が「r」で始まっていた場合
・環境変数 SHELL の値が「r」で始まっていた場合
・起動 option -r が与えられていた場合
このうち -r に関しては FD-2.04b から機能しておらず、-r を
指定していたにも拘らず無制限 shell となっていました。
> vi モードの行編集を改善。
EDITMODE=vi もしくは set -o vi しておくと、cursor 移動等の
key bind が vi ライクになります。
これまでの仕様では、まずは vi の command mode から始まって、
「i」なり「a」なりを入力すると初めて inset mode になるという
ことにしてありました。
このため、shell command line でも、一行入力する毎に command
mode になってしまい、cursor 移動以外の入力操作が煩わしくなっ
ていました。
今回この仕様を改め、mode の初期値を文字列入力 interface で
のみ insert mode にしてみました。
文字列入力では cursor 移動よりも文字入力の方に重点が置かれ
ていると判断したためこのような仕様にしてみましたが、これ以外
の interface、即ち [Y/N] や選択肢の選択等では依然旧来の仕様
を踏襲しています。
cursor 移動に重点が置かれた interface では command mode で
始まった方が便利だと思ってのことなんですが、実際どうすれば使
い易くなるのか判断に苦しむところです。
vi mode の interface 仕様に関しては、引続きみなさんの意見
を募りたいと思います。
> 新端末ラインディシプリン非対応のエラーを無視するよう修正。
termio 以前の端末 interface では、old tty mode と new tty
mode というものがあり、old tty mode では、例えば ^Z や ^V が
効かないとか job 制御が出来ないとか、そういう制限がありまし
た。
これは、job 制御が現れる以前の端末との互換性を保つための措
置で、最近の端末 interface では大概これらの mode の切替え機
能を実装しています。
ところが、一部の termio ベースの端末 interface では、この
mode 切替えに対応しておらず、new tty mode の挙動を示す端末で
も old tty mode であると答えるなど異常な環境が存在することが
判りました。
既に termios では、old tty mode には対応しておらずこれらの
mode 切替え機能も持たない実装が多いのですが、termio は SYSV
由来の interface で、mode 切替え機能も仕様上は対応している筈
なのです。
でも、termio の時代には既に new tty mode が主流であり、old
tty mode しか持たないという実装はあり得ないため、mode 切替え
に失敗した場合の処理を、termio/termios interface では「異常
終了」から「無視」に切替えました。
実際、old tty mode から mode 切替え出来ないという環境は、
Tru64 UNIX (OSF/1) に存在するのですが、この変更により支障が
ないことが確認されています。
しらい たかし