[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00981] Re: FDclone 3.00l has been released



 しらいです。

 既報のとおり Android 対応に手間取って遅くなりましたが、何
とか 3.00l の release に漕ぎ着けることが出来ました。

In Message-Id <20120629184748.32E7D4805E5@yuka.unixusers.net>
        Takashi SHIRAI <shirai@unixusers.net>writes:
>  しらいです。

>  以下は HISTORY より今回の変更点の抜粋です。

 以下、修正項目の解説を行ないます。


> 	Android 4.0 対応。

 [FDclone-users:00979] での予告のとおり Android に対応しま
した。code freeze 後に公開になった 4.1 は、HISTORY には反映
されていませんが、emulator 上で compile 出来ています。
 因みに、Android 4.1 用に Android SDK を更新したんですが、
R20 から emulator 上で hardware keyboard が効かなくなったの
で、検証にはひどく手間が掛かりました。


> 	MINIX 3.2 対応。

 これも [FDclone-users:00979] での予告どおりです。


> 	コンパイル用識別子 DEFKCODE, UTF8DOC, LANGWIDTH を追加。

 これは主に UTF-8 環境への対応になります。各識別子の詳細に
ついては TECHKNOW を参照して下さい。
 machine.h では、Mac OS X, Cygwin, Android のみ標準コードを
UTF-8 と定義しています。Linux は Distribution や version に
より環境がまちまちなので EUC-JP のままにしてあります。
 それを言うと Cygwin も version によって ShiftJIS だったり
するんですが、主に server 用途の Linux と比べて Cygwin は敢
えて旧版を使う理由が乏しいので最新版に合わせました。
 但し、RPM 用の fd.spec は UTF-8 用に手を加えてあるので、そ
うでない環境で RPM を作る場合は気をつけて下さい。

 なお、UTF-8 対応と言っても内部コードは飽くまでも EUC-JP な
ので、performance に関しては従来通りです。


> 	コンパイル用識別子 _NOUNICDTBL, _NODICTTBL を追加。

 色々検索してみると、実行ファイルのみをコピーして使おうとす
ると色々不具合があることに対し、少なからずの不満の声があるよ
うでしたので対応してみました。
 fd-cat.ja/fd-cat.C に関しては、従来より _NOCATALOG にて埋
込み可能ですので、これを含めて 3 識別子を全て定義することで、
単体で動作する実行ファイルを作成出来ます。
 意図が良く理解し切れていないのですが、Android の場合 cross
compile が多いので、必要なファイルが少ない方が楽だということ
なのかも知れません。


> 	クロスコンパイル対応を強化。

 従来も cross compile は可能だったのですが、host と target
とで全く異なる OS というケースを想定していませんでした。その
場合、machine.h が host 用と target 用に必要になるんですね。
 具体的な手順は Install に書いてありますが、自動判別で対応
し切れない場合も、CFLAGS と HOSTCFLAGS のように各々の cc 用
の指定が出来るようにしてあります。


> 	横幅の狭い端末でファイル属性変更画面がおかしくなる点を修正。

 Android 端末は横 80 columns に足りないことが多いようで、そ
ういう環境で検証して初めて炙り出される bug もあるというお話
です。
 属性変更を行なう画面では横幅に応じてレイアウトを変更してあ
るのですが、狭い画面用のレイアウトではカーソル移動がおかしく
なってしまっていました。


> 	アーカイブブラウザを開くと異常終了することがある点を修正。

 [FDclone-users:00976] で報告のあった bug に対する対処です。
release まで時間が掛かってすみませんでした。


> 	MS-DOS 形式のパスへのアクセスで異常終了することがある点を修正。

 単なる TYPO なんですが、pointer の指す変数に値を代入する際
に、pointer の NULL check ではなくて値の NULL check を行なっ
ていたために、NULL pointer に代入して SIGSEGV になってました。
 その値というのが drive letter だったために、MS-DOS 形式の
path を使わない場合は値が 0 になって bug が表面化していませ
んでした。


> 	TRADLAYOUT=1 の時に「しばらくお待ち下さい」が消えない点を修正。

 「しばらくお待ち下さい」は画面最下段に表示されますが、通常
レイアウトではその位置にステータス行があるので上書きされて消
えてくれます。TRADLAYOUT ではステータス行は上にあります。
 TRADLAYOUT は 2.05 で導入された機能ですが、2.06d でこの不
具合が発生してそのままずっと放置されていたので、よっぽど使用
頻度の低い機能なんだと思います。
 無闇にリクエストに応じるのも考えものかも知れませんね。


> 	PTYMODE=1 時にカーソル保存シーケンスが効かない点を修正。

 ESC-7 もしくは CSI-s という ESC sequence を発行すると、現
在の cursor 情報を保持し、ESC-7 もしくは CSI-u で復帰するこ
とになっています。
 ところが CSI-H や CSI-f で cursor 移動した際にも何故か保持
する実装になっていたので、復帰時に意図しない cursor 位置に移
動してしまっていました。
 あと、VT100 の仕様に合わせて、位置だけではなく cursor 属性
も保持するように修正してあります。


> 	アーカイブブラウザで「./」で始まるファイルを読めない点を修正。

 FD-3.00k で embug してたのを直しました。「.」って普通は移
動しても意味の無い directory なので、移動出来ないようにして
しまったんですね。
 「tar cf xxx.tar .」みたいなことをすると「.」が archive に
含まれることは往々にして生じるので、その場合は「.」に敢えて
移動するという操作が必要になります。
 FD-3.00k で LOG_DIR 周りの実装を大きく改めた際に、「.」の
扱いに関して熟考が足りなかったのが原因です。なので、元に戻す
と言うよりは、新実装用に新たに「.」対応を追加しています。

                                               しらい たかし