aboutsummaryrefslogtreecommitdiffstats
path: root/doc-jp/README.cygwin
blob: 297c34b64713c782b1a95c1850c0786eb27f6622 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
cygwin で w3m を使う
                                                     (2003/02/17) 渡邉勝之
						        knabe@sannet.ne.jp

Windows で w3m を動かすためには,Windows 上の UNIX互換環境である Cygwin が
必要です.
Cygwin に関する情報は http://cygwin.com/ を参照してください.


* ビルド

w3m-0.2 以降から cygwin 向けの修正パッチが取り込まれたため,cygwin-1.1.4
以降の環境であれば特に問題なくビルドできます.Net Release 前の B18, B19, 
B20あたりでもビルドできるはずですが,確認はされていません.
 (*) Cygwin B20.1 の環境では
     LOCAL_LIBRARIES に -luser32 をつける必要があります。

なお,termcap ないし ncurses パッケージは最新のものを使ってください.特
に termcap を使う場合,古いパッケージは /etc/termcap の cygwin のエント
リにバグがあり,表示がおかしくなります.この問題は termcap-20001020-1 で
修正されているため,これ以降のバージョンを使用してください.

ビルドする際には, 必ず ./configure してから make してください.以下で説
明するマクロが定義されなくなるため,正常に動作しなくなります.また,正常
にビルドできない,正常に動作しない場合には,バグ報告をする前に以下の点を
チェックしてください.

  o make veryclean してから再度 ./configure && make してみる.
  o gcc, binutils が正常にインストールされているかを確認する.
      cygwin の setup.exe に問題があり,パッケージファイルのダウンロード
      に失敗しても,エラーの報告をしないで正常終了してしまうことがあるよ
      うです.その場合には再度 setup をやりなおしてください.

また Win95/98/ME では,環境変数 CYGWIN に 'ntsec' もしくは 'ntea' が含ま
れていると,シェルスクリプトに実行属性がつかなくなるため,configure に失
敗するようです.w3m に限らず,他にも問題が発生するという報告があるため,
Win95/98/ME で Cygwin を使用する場合には,最初に cygwin1.dll をロードす
る際の環境変数 CYGWIN から ntsec, ntea の記述を取り除いてください.


* マクロ

config.h には,Cygwin 環境向けに以下のマクロを定義してあります.

o USE_BINMODE_STREAM
  -dump, -dump_{head,source,both,extra} 時の stdout への出力をバイナリ
  モードで行います.cygwin-1.3.11 以降では不要になっているはずですが,
  安全側に振っておくために残しています.
  Cygwin, EMX 環境で共通です.

o SUPPORT_DOS_DRIVE_PREFIX
  'C:', 'C:/', 'file://C:/', 'file://C|/' などのドライブレターを含むパ
  スを認識し,ファイル名として扱う機能を有効にします.
  Cygwin, EMX 環境で共通です.

o SUPPORT_NETBIOS_SHARE
  '//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 形式の
  NETBIOS 共有資源へのアクセスを ftp: スキーマではなく file: スキーマ
  として扱う機能を有効にします.
  Cygwin 環境に特有です.

o SUPPORT_WIN9X_CONSOLE_MBCS
  Win9X 系の DOS プロンプトで,検索およびフォームへの一行エディタ入力
  時に日本語 IME 経由の入力をサポートします.
  ただし,Win9X 系の DOS プロンプトの実装および Cygwin の tty レイヤー
  の問題により,ローカルコンソールで TERM=cygwin かつ環境変数 CYGWIN
  に 'tty' が含まれない場合のみ IME からの入力を許可しています.
  なお,NT 系ではこのマクロを無効にしても動作は変更されず,ローカルコ
  ンソールであれば IME による日本語入力が可能です.
  LANG=JA 指定時の Cygwin 環境に特有です.


* Native Application との連携

Cygwin 環境でビルドした w3m から Win32 Native アプリケーションを起動する
場合,パスの記述形式の違いによって,ファイルが見つからないなどのエラーが
発生します.

o ローカルCGI

Cygwin 環境でビルドすると,$LIB (通常は /usr/local/lib/w3m/cgi-bin) 以下
にインストールされるローカル CGI は cygwin の /usr/bin/perl を使うように
設定されます.これに対し,Native アプリケーションの ActivePerl などを使
用する場合,以下のようなラッパースクリプトを用意し,$LIB 以下の各スクリ
プトを修正してください.

------ /usr/local/bin/winperl ------
#!/bin/sh
# wrapper script for Win32 Native Perl
PERL=/cygdrive/c/Perl/bin/perl.exe
case $1 in
  -*)
    ;;
  *)
    SCRIPT=`cygpath -w $1`
    shift
    ;;
esac
exec "$PERL" "$SCRIPT" $@
------------------------------------
※PERL= には Cygwin 環境の内部から見た Native Perl のパスを記述してくだ
  さい.cygpath ユーティリティは cygwin パッケージに入っています.

なお,ディレクトリリストだけであれば,オプション設定で「ディレクトリリス
トに外部コマンドを使う」を NO にすれば,ローカル CGI を使わずにディレク
トリのブラウズを行います.

o エディタ

w3m はテキストエリアの内容編集などに外部エディタを使用しますが,外部エデ
ィタに Win32 Native アプリケーションを使う場合,以下のスクリプトを外部エ
ディタに指定してください.

------ /usr/local/lib/w3m/winedit ------
#!/bin/sh
EDITOR='/cygdrive/c/Program Files/sakura/sakura.exe'
FILE=`cygpath -a -w $1`
exec "$EDITOR" "$FILE"
----------------------------------------
※EDITOR= には Cygwin 環境の内側から見た Native アプリケーションのパスを
  記述してください.

なお,NT 系で inetd をサービスとして動かしていて,localhost に telnet で
接続している場合には,「デスクトップとの対話をサービスに許可」を ON にし
ておかなければ window が表示されません.


* 既知のバグ

以下は,Cygwin 環境で w3m を動かした場合の問題点です.

o -dump, -dump-source 時に LF -> CR+LF の変換が行われることがある.

  コンパイル時にマクロ USE_BINMODE_STREAM が define されていない可能性が
  あります.
  きちんと configure したうえでコンパイルしなおすか,環境変数 CYGWIN に 
  binmode を設定してください.

o Win9X 系の DOS プロンプトで IME 経由の入力ができない.

  環境変数 CYGWIN に 'tty' が含まれているときには,Cygwin の tty レイヤ
  の問題を回避するために IME 経由の入力を禁止しています.環境変数 CYGWIN
  から 'tty' を削除してください.

o Win9X 系の DOS プロンプトで IME が ON になっているとカーソルが効かない.

  Win9X の DOS プロンプトと Cygwin の tty レイヤーの実装の問題です.
  代わりに C-f, C-b, C-p, C-n を使ってください.

o NT 系のコマンドプロンプトで画面制御がおかしくなる.

  「レイアウト」タブで画面バッファのサイズとウィンドウのサイズを違う値に
  してバックスクロールができるように設定していると,画面制御がおかしくな
  ることがあるようです.

o DOS プロンプト,コマンドプロンプトでマウスが使えない.

  DOS プロンプト「編集オプション」/コマンドプロンプトの「オプション」で
  「簡易編集モード」が ON になっていると,マウスイベントが w3m に渡され
  ません.OFF に設定してください.

o DOS プロンプト,コマンドプロンプトでマウスボタンに対する反応がおかしい.

  cygwin-1.3.15 までの環境では,マウスの右と中央ボタンのエスケープシー
  ケンスが入れ替わっていました.これは cygwin-1.3.16-1 で修正されていま
  すが,w3m 側のバージョン判定が完全ではないため,使用する環境でビルド
  するようにしてください.


* その他

Cygwin 環境では,DOS プロンプト/コマンドプロンプトを使うよりも,inetd を
あげて,ローカルに TeraTerm, PuTTY などの telnet クライアント経由でログ
インする,ないしは rxvt, cygterm を使用するほうが快適です.

o rxvt:
    rxvt on Cygwin
      http://hp.vector.co.jp/authors/VA021953/rxvt/
    compiled package
      http://matsu-www.is.titech.ac.jp/~sohda/cygwin/dist/
o cygterm:
    CygTerm - Yet another Cygwin console
      http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/