1cygwin で w3m を使う
2                                                     (2003/02/17) 渡邉勝之
3						        knabe@sannet.ne.jp
4
5Windows で w3m を動かすためには,Windows 上の UNIX互換環境である Cygwin が
6必要です.
7Cygwin に関する情報は http://cygwin.com/ を参照してください.
8
9
10* ビルド
11
12w3m-0.2 以降から cygwin 向けの修正パッチが取り込まれたため,cygwin-1.1.4
13以降の環境であれば特に問題なくビルドできます.Net Release 前の B18, B19,
14B20あたりでもビルドできるはずですが,確認はされていません.
15 (*) Cygwin B20.1 の環境では
16     LOCAL_LIBRARIES に -luser32 をつける必要があります。
17
18なお,termcap ないし ncurses パッケージは最新のものを使ってください.特
19に termcap を使う場合,古いパッケージは /etc/termcap の cygwin のエント
20リにバグがあり,表示がおかしくなります.この問題は termcap-20001020-1 で
21修正されているため,これ以降のバージョンを使用してください.
22
23ビルドする際には, 必ず ./configure してから make してください.以下で説
24明するマクロが定義されなくなるため,正常に動作しなくなります.また,正常
25にビルドできない,正常に動作しない場合には,バグ報告をする前に以下の点を
26チェックしてください.
27
28  o make veryclean してから再度 ./configure && make してみる.
29  o gcc, binutils が正常にインストールされているかを確認する.
30      cygwin の setup.exe に問題があり,パッケージファイルのダウンロード
31      に失敗しても,エラーの報告をしないで正常終了してしまうことがあるよ
32      うです.その場合には再度 setup をやりなおしてください.
33
34また Win95/98/ME では,環境変数 CYGWIN に 'ntsec' もしくは 'ntea' が含ま
35れていると,シェルスクリプトに実行属性がつかなくなるため,configure に失
36敗するようです.w3m に限らず,他にも問題が発生するという報告があるため,
37Win95/98/ME で Cygwin を使用する場合には,最初に cygwin1.dll をロードす
38る際の環境変数 CYGWIN から ntsec, ntea の記述を取り除いてください.
39
40
41* マクロ
42
43config.h には,Cygwin 環境向けに以下のマクロを定義してあります.
44
45o USE_BINMODE_STREAM
46  -dump, -dump_{head,source,both,extra} 時の stdout への出力をバイナリ
47  モードで行います.cygwin-1.3.11 以降では不要になっているはずですが,
48  安全側に振っておくために残しています.
49  Cygwin, EMX 環境で共通です.
50
51o SUPPORT_DOS_DRIVE_PREFIX
52  'C:', 'C:/', 'file://C:/', 'file://C|/' などのドライブレターを含むパ
53  スを認識し,ファイル名として扱う機能を有効にします.
54  Cygwin, EMX 環境で共通です.
55
56o SUPPORT_NETBIOS_SHARE
57  '//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 形式の
58  NETBIOS 共有資源へのアクセスを ftp: スキーマではなく file: スキーマ
59  として扱う機能を有効にします.
60  Cygwin 環境に特有です.
61
62o SUPPORT_WIN9X_CONSOLE_MBCS
63  Win9X 系の DOS プロンプトで,検索およびフォームへの一行エディタ入力
64  時に日本語 IME 経由の入力をサポートします.
65  ただし,Win9X 系の DOS プロンプトの実装および Cygwin の tty レイヤー
66  の問題により,ローカルコンソールで TERM=cygwin かつ環境変数 CYGWIN
67  に 'tty' が含まれない場合のみ IME からの入力を許可しています.
68  なお,NT 系ではこのマクロを無効にしても動作は変更されず,ローカルコ
69  ンソールであれば IME による日本語入力が可能です.
70  LANG=JA 指定時の Cygwin 環境に特有です.
71
72
73* Native Application との連携
74
75Cygwin 環境でビルドした w3m から Win32 Native アプリケーションを起動する
76場合,パスの記述形式の違いによって,ファイルが見つからないなどのエラーが
77発生します.
78
79o ローカルCGI
80
81Cygwin 環境でビルドすると,$LIB (通常は /usr/local/lib/w3m/cgi-bin) 以下
82にインストールされるローカル CGI は cygwin の /usr/bin/perl を使うように
83設定されます.これに対し,Native アプリケーションの ActivePerl などを使
84用する場合,以下のようなラッパースクリプトを用意し,$LIB 以下の各スクリ
85プトを修正してください.
86
87------ /usr/local/bin/winperl ------
88#!/bin/sh
89# wrapper script for Win32 Native Perl
90PERL=/cygdrive/c/Perl/bin/perl.exe
91case $1 in
92  -*)
93    ;;
94  *)
95    SCRIPT=`cygpath -w $1`
96    shift
97    ;;
98esac
99exec "$PERL" "$SCRIPT" $@
100------------------------------------
101※PERL= には Cygwin 環境の内部から見た Native Perl のパスを記述してくだ
102  さい.cygpath ユーティリティは cygwin パッケージに入っています.
103
104なお,ディレクトリリストだけであれば,オプション設定で「ディレクトリリス
105トに外部コマンドを使う」を NO にすれば,ローカル CGI を使わずにディレク
106トリのブラウズを行います.
107
108o エディタ
109
110w3m はテキストエリアの内容編集などに外部エディタを使用しますが,外部エデ
111ィタに Win32 Native アプリケーションを使う場合,以下のスクリプトを外部エ
112ディタに指定してください.
113
114------ /usr/local/lib/w3m/winedit ------
115#!/bin/sh
116EDITOR='/cygdrive/c/Program Files/sakura/sakura.exe'
117FILE=`cygpath -a -w $1`
118exec "$EDITOR" "$FILE"
119----------------------------------------
120※EDITOR= には Cygwin 環境の内側から見た Native アプリケーションのパスを
121  記述してください.
122
123なお,NT 系で inetd をサービスとして動かしていて,localhost に telnet で
124接続している場合には,「デスクトップとの対話をサービスに許可」を ON にし
125ておかなければ window が表示されません.
126
127
128* 既知のバグ
129
130以下は,Cygwin 環境で w3m を動かした場合の問題点です.
131
132o -dump, -dump-source 時に LF -> CR+LF の変換が行われることがある.
133
134  コンパイル時にマクロ USE_BINMODE_STREAM が define されていない可能性が
135  あります.
136  きちんと configure したうえでコンパイルしなおすか,環境変数 CYGWIN に
137  binmode を設定してください.
138
139o Win9X 系の DOS プロンプトで IME 経由の入力ができない.
140
141  環境変数 CYGWIN に 'tty' が含まれているときには,Cygwin の tty レイヤ
142  の問題を回避するために IME 経由の入力を禁止しています.環境変数 CYGWIN
143  から 'tty' を削除してください.
144
145o Win9X 系の DOS プロンプトで IME が ON になっているとカーソルが効かない.
146
147  Win9X の DOS プロンプトと Cygwin の tty レイヤーの実装の問題です.
148  代わりに C-f, C-b, C-p, C-n を使ってください.
149
150o NT 系のコマンドプロンプトで画面制御がおかしくなる.
151
152  「レイアウト」タブで画面バッファのサイズとウィンドウのサイズを違う値に
153  してバックスクロールができるように設定していると,画面制御がおかしくな
154  ることがあるようです.
155
156o DOS プロンプト,コマンドプロンプトでマウスが使えない.
157
158  DOS プロンプト「編集オプション」/コマンドプロンプトの「オプション」で
159  「簡易編集モード」が ON になっていると,マウスイベントが w3m に渡され
160  ません.OFF に設定してください.
161
162o DOS プロンプト,コマンドプロンプトでマウスボタンに対する反応がおかしい.
163
164  cygwin-1.3.15 までの環境では,マウスの右と中央ボタンのエスケープシー
165  ケンスが入れ替わっていました.これは cygwin-1.3.16-1 で修正されていま
166  すが,w3m 側のバージョン判定が完全ではないため,使用する環境でビルド
167  するようにしてください.
168
169
170* その他
171
172Cygwin 環境では,DOS プロンプト/コマンドプロンプトを使うよりも,inetd を
173あげて,ローカルに TeraTerm, PuTTY などの telnet クライアント経由でログ
174インする,ないしは rxvt, cygterm を使用するほうが快適です.
175
176o rxvt:
177    rxvt on Cygwin
178      http://hp.vector.co.jp/authors/VA021953/rxvt/
179    compiled package
180      http://matsu-www.is.titech.ac.jp/~sohda/cygwin/dist/
181o cygterm:
182    CygTerm - Yet another Cygwin console
183      http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/
184
185