* terms.c (term_title): use Sprintf() instead of snprintf() * doc-jp/README.cygwin doc/README.cygwin: add note about B20.1 From: patakuti@t3.rim.or.jp
		
			
				
	
	
		
			185 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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/
 | 
						||
 |