[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00251] Re: FDclone 2.05b has been released
- Subject: [FDclone-users:00251] Re: FDclone 2.05b has been released
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Wed, 14 Jan 2004 21:24:03 +0900
しらいです。
In Message-Id <20040114114753.70DB853DCB@yuka.unixusers.net>
Takashi SHIRAI <shirai@unixusers.net>writes:
> しらいです。
一応個々の修正点に解説しておきますが、今回の release は普
段とは違い、bug を見つけて修正したという過程ではなく、コード
の見直しの過程で見つかった bug を修正したといういきさつによ
るものです。
2.05 や 2.05a の release は急ぎ過ぎたきらいがあり、コード
として安定しないまま出してしまうという結果になってしまいまし
た。そこで 2.05a release 以降改めて全てのコードの見直しを行
なっています。
なので、修正点の数以上に patch が大きなものになってしまっ
ていますが、実際の変更点の大部分はこれらの修正点とは関係なく、
コードの合理化や最適化、安全性や可読性の向上といった目的によ
るものであることを、予めお伝えしておきます。
> 文字列入力時に InsLine キーで異常終了していた点を修正。
InsLine キーは後続入力キーのメタ機能を殺し通常キーとして入
力させるためのキーですが、この際の後続キーの入力待ちの際に不
要な signal 発生を行なってしまっていました。
本来ならば SIGALRM を発生させて catch しているのですが、そ
の代わりに Signal 1 (大抵は SIGHUP) を発生させてしまっていた
ため、SIGHUP の default 動作として hangup していました。
これは単に真偽値として用いていた変数値をそのまま signal 値
として扱ってしまったためで、改定時の関数仕様変更の際に全ての
呼出し側で引数の変更を行なえていなかったことに起因しているよ
うです。
> getopt のオプション文字に英小文字しか使えなかった点を修正。
何故か判らないんですが islower() でない option letter を弾
く処理にしていました。
> EUC 環境で片仮名キーにキー割当て出来なかった点を修正。
EUC-JP では半角仮名が 2byte コードになってしまうため、今ま
では漢字と同様に扱っていたのですが、日本語 keyboard を使って
いる PC-UNIX 環境では普通にキー入力するだけでこのキーコード
を発生してしまうので、対応してみました。
私は英字 keyboard しか使わないので、半角仮名のニーズには全
然気づいていませんでした。
なお、一部環境では漢字の直接入力が可能なこともあるようです
が、漢字は流石に種類が多過ぎるので、キー割当てには対応してい
ません。
> 16bit OS で初期設定ファイルエラー表示がおかしかった点を修正。
printf() 系関数の format 文字列で、「%l」による long 指定
を忘れていたため、sizeof(long) > sizeof(int) となる 16bit OS
環境では誤った引数を参照してしまっていました。
> CODEEUC 未指定時に文字列入力でカーソルを戻せなかった点を修正。
文字列入力でカーソルを戻す場合、カーソル位置の直前文字を見
て、1byte 分戻すか 2byte 分戻すかを決めています。ShiftJIS の
場合、漢字の 2byte 目に仮名文字が来ることがあり、その場合間
違って 1byte 分しか戻していませんでした。
> terminfo 環境で端末表示がおかしくなることがある点を修正。
terminfo 環境では、引数を要する sequence 文字列には「%p」
という meta 表現が必須なのですが、terminfo database に entry
が見つからなかった場合に用意する default 文字列に、この「%p」
を記述していませんでした。
また、curses library をベースとする環境では termcap なのに
「%p」を用いていることがあるので、termcap 環境でも parse の
際に「%p」を解釈するようにしました。
しらい たかし