● 確認されている問題点

    [1] データ転送中（DNS への問い合わせを含む）の中断が利かない。
       （本来、z キーで可能なはず）
        → 1998/03/30 (Mon) 以降は、この問題を解決しました。

    [2] フォーム入力中に、カーソルキーが使えないことがある。(7/16 FIX)

    [3] ローカルの画像イメージを閲覧するため、外部のヘルパを起動すると、
        TEMP ディレクトリにコピーの後に動作が開始する。
        → ローカルファイルを見る場合の不要なコピーを廃止しました。

    [4] 外部ヘルパを起動すると、起動したソフトがアクティブになる。
        → 1997/10/28 (Tue) LYNX27nJ にて解決。
        → 1997/11/01 (Sat) 11:37:23 95/NT の違いを吸収

    [5] EXTERNAL: 外部ヘルパプログラムのエラーを検出できない
        → 1997/11/01 (Sat) 対策済み

    [6] 日本語入力がうまく出来ません。
        → NT では完璧、 Win95 は暫定対応です。

    [7] Windows NT では、マウスのクリックがダブルクリック？

    [8] lynx.lss には、対応しないの？
        → 現状では、対応しないほうが使い易いのです。

    [9] 文字入力時の反応が悪いのですが。
        → 無駄な画面の書き換えを止め、効率良い方法に変更しました。

   [10] 漢字入力行にファイル内容の一部が表示される事があります。
        → 971201 以降の版から、改善されました。
        これ以前の版をお使いの方は、lynx.exe を更新してください。

   [11] ファイルのダウンロードに失敗することがあります。
        → エラーを検出し、可能ならリトライする様にしました。

   [12] EUC の半角カナ(8eXX)の含まれたページの表示が文字化けます。
        → 一応、 EUC 半角文字にも対応しました。文字化けする時には、^L を
        数回押し、相手先の推定される漢字コードにし、ページをリロード(^R)し
        てください。

   [13] 'E' キーで、Vzエディタに移行すると、行が一致しません。

   [14]  www.goo.ne.jp のページで文字化けが多発します。
        → 相手先の漢字コードの扱いが不適切な為です。
           goo 側にて改善が行われました。

   [15]  AltaVista で検索すると、漢字ばかりのページが表示されます。
         → AltaVista 側で改善が行われました。

   [16]  マウスが使えません。

--

[1] ネットワーク動作中の中断が利かない。（本来、z キーで可能なはず）

   実際には、 DNS のタイムアウトを検出するまで、約　60秒程度かかることが原
   因とわかりました。つまり、１分間程待つことで操作が可能になります。
   しかしながら、 タイムアウトにはならない場合もあり、イライラの大きな原因
   になっていました。 通常のインストール形態では、ｚキーは、データ転送中の
   中断を意味しているようです。

   ある種の UNIX 版 Lynx では、 DNS の問い合わせの際にも中断が有効です。  
   fork という特別な関数を使い、キーの入力と並行して動作させることで実現し
   ています。
   Win32 版では、Thread を利用して同等の機能を実装しました。存在しない URL
   のアドレスの解決のために、無限に待つこと無くなります。
   
!	ただし、 理由は不明ですが、Windows NT と 95 では、動作に違いがあ
!     るため、 対処療法ですが、95 において gethostbyname() を同一のスレ
!      ッドから呼び出しています。その理由は、ある条件で連続して呼び出すと、
!      内部でエラーを生じるためです。
   
   なお、 この対策を行っても、プロキシサーバ経由でのアクセスでは、データ転
   送中の中断は行われません。 そこで、980330 以降の版では、recv() の呼び出
   しも別スレッドで動作させ、この問題を改善しました。
   著名なプロキシサーバーである、squide での動作を確認しています。
   なお、squid は、最新の版（ver 1.1.21以降）の利用をお薦めいたします。

   また、 ftp_proxy も http の形式で代理サーバが動作することが多いため、適
   切な指示を、LYNX.CFG に記述することが重要です。

   → 1997/10/16 (Thu) 以降の版では、 若干ですが中断を利きやすくするコード
   を追加しました。お試しください。）
   また、気休めかもしれませんが、Borland C++ ver 5.02 のマルチスレッドライ
   ブラリをリンクしました。（多少改善されたような気がします）

   → 1997/10/19(Sun) で、winsock の使い方を再検討し、ブロックを避けるコー
   ディングを心掛けました。 逆に、エラー検出が早すぎるような気がします。
   不具合の報告をお願いいたします。（27qJ にて抜本的な対策を講じました）

   早速問題が確認されました。 なんとＮＴでは、変更されたコードでは動作しま
   せん。そこで、95 と NT の処理を分けました。
   system_is_NT がキーワードです。（なぜなんだ！＞ＭＳ）

   → 1997/11/01 (Sat) 色々変更したので、 再度ＮＴで確認したところ、何とき
   ちんと動きます。あながち、ＮＴだけのせいでは無かったようです。
   （Winsock の方言的なエラーコードがあだになっているようです。
     でも、UNIX 系の実装も、方言の山です。(^_^;）


[2] フォーム入力中に、カーソルキーが使えないことがある。(7/16 FIX)

   →テンキーの上下キーを使ってください。PC98 では、これしか動かない？？
     ^P, ^N を使えるようにしたので、お試しください。
     また、漢字の入力を切り替えるとカーソルキーが無効になる場合があります。
     ^E を入力し、入力した漢字データをリフレッシュさせてください。

[3] ローカルの画像イメージを閲覧するため、外部のヘルパを起動すると、一旦
   TEMP ディレクトリにコピーの後に動作が開始する。（無駄なので改善したい）
   どうも、これは作者の意図した動作のようです。一応、修正可能なモードで
   オープンされる事を予期し、一時ファイルを作成後にアプリケーションに渡す
   仕様の様です。（でも、単なるビューワとして使うには無駄の多い仕様ですね）

   →　980105 の版から、この動作を改善しました。


[4] 外部のヘルパを起動すると、起動したソフトがアクティブになる。

   通常はこれで問題は無いのですが、 画像の閲覧時やリアルオーディオなどの対
   話処理を必要としない場合にはキーやマウスの操作が必要となり使いにくいと 
   感じました。 （LYNX27nJ にて  解決しました。  GetForegroundWindow()  で
   HANDLE を得て、SetForegroundWindow(HANDLE) としただけ）
   
   その後、 Windows 95/NT の動作に違いがあることがわかり、現在動作を統一す
   べく作業を行いました。

   具体的には、

       Windows 95 : 外部ヘルパの実行終了を待たない。
       Windows NT : 外部ヘルパの実行終了を待つ。

   という「大きな」違いです。 いずれの場合も、各々メリットがあるため、独自
   に共通に動作する viewer_exec() を作成し、対処しました。
   利用に際しては、viewer として登録するコマンドは、'>','<' などのリダイレ
   クト機能、 dir などの、cmd.exe/command.com の機能は利用できず、また独自
   の窓を持つ32bit アプリケーションである必要があります。 （ほとんどのアプ
   リケーションは、この条件を満たしています）

   この変更により、Win95 と NT の動作は、同一になりました。

   また、上記の動作を選択できるように、FORCUS_WINDOWS というオプションを追
   加しました。



[5] EXTERNAL: 外部ヘルパプログラムのエラーを検出できない。

   以前の版では外部ヘルパの実行エラーを検出できないため、 エラーの回復処理
   が出来ませんでした。 （Borland C++  の  system()  は、  command.com  や
   cmd.exe の起動ができれば成功したと判断し、 希望のコマンドの実行結果は返
   さないようです。）

   →　ac-0.84 対応から、system() を書き直し対応しました。
       なお、書き直した関数は、EXTERNAL の実行部分にのみ利用しています。

   → LYNX27qJ から、MessageBox でエラーの詳細を確認できます。


[6] 日本語入力がうまく出来ません。

    Windows NT では、問題なく入力できますが、現在のところ　Windows95 では、
    不自然な動作を強いられます。 （ 以前の版では ^L でリドローが必要でした
    が、 どうもミスが多いので、^E キーで確定します。）

    この操作により使い勝手は向上していると思います。

    （Web の検索ページで数文字の漢字が入力できれば良い、という程度のつもり
      で移植を行っています。長文を入力されるなら、別のエディタ等からのペー
      ストを利用してください。）

    もっと完全な入力ルーチンを作成に協力してくださる方を募集中です。
    （木内さん、期待しております。）

[7] Windows NT では、マウスのクリックがダブルクリック？

    どういうわけか、 Windows 95 では問題なく動作するシングルクリックが機能
    しません。しかたなく、NT と 95 で処理を分けました。
    （ＮＴユーザーの協力をお願いいたします。）
    →　この動作は、MS から、不具合の改訂が出ているようです。
        つまり、NT の持っているBUG が原因していたのでした。(^_^;

[8] lynx.lss には、対応しないの？

    試してみたことは何度もありますが、あまりにカラフルな表示になること、日
    本語化が不完全で意図しないところにリンクの色使いになる、などの問題があ
    るため、そのうち気が向いたら対応したいと考えています。

[9] 文字入力時の反応が悪いのですが。

    漢字入力の際に色々なチェックと再描画をしている関係です。ビデオの表示が
    遅い場合にストレスを感じるようです。ビデオの描画処理さえ速ければ、軽快
    に動作します。最近の Lynx では、コードを見直したので、ストレスは感じな
    いレベルになっています。

[10] 漢字入力行にファイル内容の一部が表示される事があります。

    オリジナルのコードにおいて、メニューの部分までを書き込んでしまう事があ
    ります。その後、再度メニューを書き直すので、実害は無いようですが、日本
    語版においては問題が表面化します。

    971201 以降の版からは、この問題は発生しません。更新された lynx.exe を
    ご利用ください。（PDcurses 側の変更で対応しました。）

[11] ファイルのダウンロードに失敗することがあります。

    http:// リンクからファイルを入手する場合には、プロトコルの制約からリト
    ライが困難であり、ネットワークの混雑時にはファイルの取得に失敗すること
    があります。 これは、http プロトコルの抱える基本的な問題点ですが、Wget
    といったツールは、Web サーバーの拡張機能を利用して、エラーを避ける設計
    になっています。信頼性を重視する方は、Wget　との併用をお薦めします。
    なお、入手したファイルのサイズを必ず確認ください。（エラー時は、データ
    の欠落を伴うため、小さいサイズになることがあります）

    なお、この現象を捉えるため、オリジナルと異なるサイズのファイルを取得し
    た場合には警告を発するようにしました。

[12] EUC の半角カナ(8eXX)の含まれたページの表示が文字化けます。

   いろいろ考えたのですが、 文字コードの自動変換を行っている関係で、ちょっ
   と難しいです。こんなページは作成しなようにお願いいたします。

   でも、charset=x-euc-jp なんて書いてくれているページくらいは、対応しよう
   と考えました。（euc-jp が正しいんですが、そんなことは言っても無駄でしょ
   うね、きっと）

   この変更により、（かえって）文字化けが生じる可能性があります。
   理由は、charset= を書いているページは必ずしも多くないからです。
   この問題に対応するため、^L で相手側の文字コードを変更できる様にしました。
   文字化けが発生した際にお使いください。
   ^L で、 相手側のコード（つまり現在とは別のコード）に切り替え、^R でリロ
   ードすれば、文字化けは解消するハズです。

   相手先が JIS などなら大丈夫なハズですが、同一のサイトでも、ページによっ
   て混在している場合に特に効果があります。

[13] 'E' キーで、Vzエディタに移行すると、行が一致しません。

   画面の表示行番号と、html ファイルの内容が一致しないためです。
   キーワードを決め、検索機能を使い、移動したい箇所を探してください。

[14]  www.goo.ne.jp のページで文字化けが多発します。
   goo 側の Lynx 対応（日本語化対応）が不完全であることが判明し、 問い合わ
   せたところ「改善する」旨の回答を得ました。以下がメールの内容です。

   ※　1998/10/07 現在では、問題の無いページになっています。

Shuji Asakawa さんは書きました:
>ｇｏｏをＮＴＴでやっております、浅川です。
>
>先般からのLynx の問題についての対応ですが、近々予定しております、フロントエ
>ンドのバージョンアップで改善する方向で進めさせていただこうと考えております。
>バージョンアップは来年早々を予定しております。
>
>当方としては１２月中にも改善したいのですが、米国側のソフトにも一部改善が及ぶ
>ため、バージョンアップ時に一括して実施することにしたいと思います。
>
>千秋様始め一部のユーザの皆様には、ご迷惑をおかけしておりますが、ご了解下さ
>い。
>
>今後ともｇｏｏについての要望、バグなどどしどしメール下さい。
>
>**********************************************
>Shuji Asakawa
>浅川　秀治
>NTT Multimedia Business Department
>e-mail:asakawa@mbd.mbc.ntt.co.jp
>tel: 03.5200.6812/fax: 03.3279.8234(National)
>tel: 81.3.5200.6812/fax: 81.3.3279.8234(International)
>NTT Group's Mall -> http://www.gsquare.or.jp
>NTT Group's Search Engine -> http://www.goo.ne.jp
>Send your heart! -> http://www.gsquare.or.jp/g-card/
>**********************************************

[15]  AltaVista で検索すると、漢字ばかりのページが表示されます。

   AltaVista などを利用して、 日本の情報を検索すると、漢字ばかりの全く意味
   不明な表示が続くことがあります。

   この原因は、検索結果を JIS コードで表示することがあり、漢字表示エスケー
   プシーケンスで始まり、 それを終了するコードが無いページを返すことがある
   ためです。いくつかのブラウザ(MS-IE, Netscape Navogator,...)は悪影響が無
   い表示をしてくれるので、Lynx がおかしな動作をしているように見えますが、
   真の原因は相手先の漢字コードに対する配慮の無さです。

   現在では、この現象が起きないように、AltaVista サイドで改良が行われました。
   以前の暫定的な対応は無くなりました。

   ※　1998/10/07 現在では、問題の無いページになっています。

[16]  マウスが使えません。

   dev.18 以前は、マウスの設定に関係なくマウスが使えるようになっていました。
   これを、dev.18 以降は正しく扱うようになったために、使えなくなったと勘違
   いすることが考えられます。

   lynx.cfg ファイル中の

#USE_MOUSE:FALSE
USE_MOUSE:TRUE

   の行に注目ください。以前、私が配布していた CFG ファイルの中に、':' の直後
   に ' ' が混入しているものがありました。この場合には、FALSE を設定した
   ことになり、マウスは無効になります。
   また、 Windows 95 では、MS-DOS prompt の設定の方で、Quick Edit モードを
   指定していると、マウスがエディット用（Cut & Paste専用）にしか使えなくな
   ることが確認されています。


● Compile option（以下のフラグをセットしています）

    ACCESS_AUTH
    COLOR_CURSES
    DISP_PARTIAL		（1998/06/12 (Fri) 追加）
    DOSPATH
    EXP_CHARTRANS
    EXP_PERSISTENT_COOKIES	（1998/07/08 (Wed) 追加）
    FANCY_CURSES
    HAVE_DIRENT_H=1
    HAVE_KEYPAD
    JAPAN
    LONG_LIST
    NCURSES
    NCURSES_MOUSE_VERSION
    NCURSES_VERSION
    NOSIGHUP
    NOUSERS
    NO_CUSERID
    NO_FILIO_H
    NO_TTYTYPE
    NO_UNISTD_H
    NO_UTMP
    PDCURSES
    SUPPORT_MULTIBYTE_EDIT
    USE_COLOR_TABLE
    USE_EXTERNALS
    USE_MULTIBYTE_CURSES
    USE_ZLIB
    VC="2.14FM"
    XMOSAIC_HACK
    _WINDOWS

●実行ファイルの作成手順

自分で作ってみてね、と随所で紹介していますが、どこにも作成に関する項目があ
りませんでした。（今までに、ただの一回の問い合わせもありませんでしたから、
不要と考えていました）

でも、さすがにこの規模のプログラムの保守は大変です。一個人が自分の余暇を使
って作成できる限界の規模の巨大なソフトウエアなのかも知れません。（もちろん、
不足している機能は、外部のヘルパに任せる機構を持っていますから、ユーザーレ
ベルでも機能の強化は可能です。）

したがって、我こそは「もっとすごい機能を追加するぞ！」とか、「気に入らない
動作をするので改良したい」という方は、以下を参考にしてください。

私は、こういった方々の出現を心待ちにしています。アメリカでは、こういった方
々も結構いるようです。  （使うだけの人が増えることに、  日本の危機を感じま
す。）

0. 開発ツールを準備する。
   -  Borland C++ 5.02J (C++ Builder 1.01J, BCC++ 4.52J でも可）
   - gzip, patch, diff, tar などのツール

1. ソースコードを入手する。
   - PDcurses 2.3
   - lynx-2.7.1-ac0.XX.tar.gz
   - lynx282j-YYMMDD.lzh に含まれる差分ファイル (WIN32xxx.DIF)
   - Zlib-1.1.3.tar.gz

2. lynx 用の作業ディレクトリを準備する。（最低でも 10MB は確保する）
   mkdir c:\usr\lynx

3.  PDcurses および zlib ライブラリを作る。
   （そして、動作を確認する）

4. lynx 用の作業エリヤを確保し、ソースを展開し、パッチを当てる。
   c:
   cd \usr\lynx
   
   ここで、オリジナルのソースを展開する。
   tar zxvf lynx2.8.2dev.XX.tar.gz 
   （私の使っている tar は、tar.gz 形式も処理できる）

   gzip -d lynx2.8.2dev.XX.tar.gz 
   tar xvf lynx2.8.2dev.XX.tar

   cd lynx2-8-2
   patch -p1 < ..\WIN32dXX.DIF
   

5. 作成したライブラリをソースコードの親ディレクトリの下に
   curses ディレクトリをつくり、コピーする。

6. ソースコードの親ディレクトリの下に obj ディレクトリをつくる。

7. src/chrtrans に移り、makew32.bat を実行する。

8. cd ..\.. に移り、makew32.bat を実行する。

9. 問題がなければ、lynx.exe が、4分（Celeron 300AMHzの場合）から20分後に
   出来上がります。

私は、この処理を数百回は行っています。もう慣れたので、一から上記の処理を行
っても、数十分で完了します。もちろん、一度作成できれば、更新は変更した部分
のみになりますから、もう少し少ない時間で更新できます。

初めて取り組まれる時は、丸一日を覚悟してください。休日を目一杯、有意義に過
ごす事ができます。 （Visual C++ も有効とは思いますが、色々な部分の書き換え
の手間を考えると、初心者には推薦できません。もし、移植できた方は、その手順
を教えてください。私は途中で断念しました。）


※　なお、この手順は私が独自に調査検討し確立したものです。INSTALL ファイル
  にも類似のことが書かれていますので、参考にしてください。（なお、移植に必
  要となるツール類は、 全て配布可能な GNU のツールです。必要な方は、千秋ま
  で問い合わせください。）


---

●実行ファイルの作成手順 (Microsoft Visual C++ 編)
  （この項は、木内さんの手になるものです。）

0. 開発ツールを準備します。
   - Microsoft Visual C++ 4.2 以上
     (5.0 でもビルド出来ることを確認しています)
   - gzip, patch, diff, tar などのツール

1. ソースコードを入手します。
   - PDcurses 2.3
   - lynx2.8.2dev.xx.tar.gz
   - lynx282j-YYMMDD.lzh に含まれる差分ファイル (WIN32xxx.DIF)
   - Zlib-1.1.3.tar.gz

2. lynx 用の作業ディレクトリを準備します。
   mkdir c:\usr\lynx

3. 必要なライブラリを作ります。

   - PDcurses
     win32\vcwin32.mak を使用します。
     CFLAGS に /MT を追加してください。

   - dirent
     dirent.lib という名前で .lib を作成してください。
     コンパイル時に /MT オプションが必要です。

   - zlib
     nt\Makefile.nt を使用します。

4. lynx 用の作業エリヤを確保し、ソースを展開し、パッチを当てます。
   c:
   cd \usr\lynx

   ここで、オリジナルのソースを展開します。
   tar zxvf lynx2.8.2dev.xx.tar.gz

     or

   gzip -d lynx2.8.2dev.xx.tar.gz
   tar xvf lynx2.8.2dev.xx.tar

   cd lynx2.8.8
   patch -p1 < WIN32xxx.DIF


5. 作成したライブラリを lynx2-8-2\lib ディレクトリへコピーします。
   curses.h/dirent.h/zconf.h/zlib.h も、ここにコピーします。

6. src/chrtrans に移り、make-msc.bat を実行します。

7. cd ..\.. に移り、nmake /f makefle.msc を実行します。

8. 問題がなければ、Lynx.exe が、10から20分後に出来上がります。

9. zlib.dll を Lynx.exe と同じディレクトリにコピーします。

---

●実行ファイルの作成手順 (Cygwin-b20.1 gcc 編)

(1) cygwin-b20 の full.exe をインストールします。

(2) zlib, pdcurses を 付属の gcc で make し、ライブラリを準備します。
    libpdcurses.a pdcurses.h をインストールしてください。
    （ncursesライブラリとの名前の衝突を避けるための配慮です）

(3) オリジナルのソースに、win32dXX.dif をパッチし、make します。
    このとき、./confugure は完了していますので、
    ./configure は行わないこと（一部、手作業で修正を行っています）

    ※ ここで使う patch は、jolt で提供しているものをお薦めします。

    Cygwin に付属する patch.exe は、 行末コードが CR/LF のファイルをうまく
    扱えません。Cygwin の patch を使いたい方は、すべてのソースファイルが、
    行末コードがNL(0x0a) のみであることを確認の上、 パッチを適用くださるよ
    うお願い致します。
       
    でも、 これは面倒すぎますので、自家製のツール（DJ 氏作の改良版ですが）
    を公開しました。fconv10.lzh の dtou.exe をご利用ください。数十秒で変換
    が完了します。

---

[A-2] SENDMAIL.EXE の説明

このWin32 sendmailは、Tin archive の

 ftp://ftp.wa.com/pub/users/ntnews/tin/utils

から来ている。

それを使うには、PATH で示されるディレクトリにコピーし、以下の行を lynx.cfg
に追加する（指定の場所が用意されている）。

SYSTEM_MAIL:sendmail -f me@my.host -h my.host -r my.smtp.mailer -m SMTP


PATHにコピーをしたくない場合には、 特定の sendmail へのPATH をそのまま記述
すれば使うことができる。

設定については、「my」のついた部分（３ヶ所）ローカルな適切な値に変更する必
要がある。

また、 もしWindowsのデフォルト・コマンド・インタプリタと異なる場合、それは
働かないかもしれない。

他の目的のためにこれを使いたいかもしれない人々のために、それにパッケージさ
れていたインストラクションがある。



             Tinから使用のためのsendmail.exeをセットアップする
             ===============================================

                               ＊＊重要＊＊
以下の sendmail.exe を利用する場合、 現在の版(ac-0.81)では、subject の変換
は行っていないため、  英字のみでご利用願います。  これが難しい場合には、  
EXTERNAL: の機能を利用し、 LYNX.CFG ファイルに使いなれたメーラを設定後、利
用することをお薦めします。
                               ＊＊重要＊＊


Sendmailは、 2つのトランスポート、MAPI、あるいは TCP/IP 上の sendmail を使
って、ローカルな SMTP サーバーにメールを送ることができる。以下のセクション
は、あなたの ~/tin/tinrcファイルで要求されたエントリーを詳しく述べる。
問題や質問は、nigele@microsoft.com に電子メールで問い合わせること。

Sendmailは、  一度に   多数の受取人に手紙を送ることをサポートする。

受取人リストは、コンマ、スペース、あるいは半コロンで区切られたリストである
べきだ。


==

1) MAPI

MAPIダイアログ使用を使う場合

  default_mailer_format=sendmail -m XMAPI -t"%T" -f %U -s "%S" -F %F


そうでないときは：

  default_mailer_format=sendmail -m MAPI -t"%T" -f %U -s "%S" -F %F


2) SMTPを使う場合

  default_mailer_format=sendmail -f myname@microsoft.com -h myhostname 
                                 -r mysmtphost -m SMTP -t"%T" 
                                 -f %U -s "%S" -F %F

