[English page] [Back to Cygwin page] [Back to Top page]
これは、FreeWnn 1.0 の jserver を、Windows 95/98/NT 上の Cygwin環境で動作させるためのパッチです。コンパイルのためには、 Cygwin B20.1 と X11R6.4(imake) が必要です。現在動作するものは jserver のみで、他の言語のサーバ(cserver、 kserver)や、クライア ント(uum、Xwnmo)はサポートしていません。
このパッチでは、jserver と共にオプショナルな辞書 pubdic+、 gerodic、および pubdic+のための補遺を同時にインストールするよう になっています。必要なファイル(必要なファイル 章参照)を前もって取得し、インストール手順 の章に従ってインストールしてください。
注意点として、このパッチでは、FreeWnn 1.0 に標準で附属する pubdic をインストール「しないで」、その pubdic の代わりとして pubdic+ をインストールします。というのは、どうせ新規にインストー ルするわけですから、わざわざ古いものを好きこのんで使う理由が見当 たらないからです。辞書を作成された関係者の皆様に感謝しつつ、より 賢い新しい辞書を使わせて頂きましょう。
このパッチでコンパイルするには、以下のファイルが必要です。
pubdic+ とその補遺は、遠藤さんのページ から入手できるものです。詳しい情報はそちらのページでどうぞ。 なお、遠藤さんのページには gerodic も置いてありますが、これと同 じものは FreeWnn-1.00.tar.gz にすでに含まれていますので、特に取 得する必要はありません。
$ tar xfvz FreeWnn-1.00.tar.gz
$ cd Xsi/Contrib/dic
$ tar xfvz pubdic+-wnn-1.0.tar.gz
$ tar xfvz pubdic+-sup-1.07.tar.gz
$ cd ../../..
そしてパッチを適用します。
$ gzip -cd FreeWnn-1.0-cygwin-990519.diff.gz | patch -bp1
カスタマイズを行なうには、コンフィグレーションファイル `config/Wnn.conf' を修正して下さい。これは UNIX 上の Wnn とは異なっ ています。UNIX 上では `config/Project.tmpl' が使われていましたが、 Cygwin の imake ではうまく動かなかったので、このパッチでは使って いません。
デフォルトのインストールディレクトリは、UNIX 上と同様、以下 のようになっています。
/usr/local/bin/Wnn4 jserver とツール類
/usr/local/lib/wnn 辞書、設定ファイル
/usr/local/lib Wnn ライブラリ
/usr/local/include/wnn ライブラリを使うためのヘッダファイル
なお、インストールファイルの所有者は設定されません。chown、 chmod コマンドは無視されるようになっています。
ここで、以下のようにコマンドを実行してコンパイル、インストー ルします。
$ cd Xsi
$ xmkmf
$ make World
$ make install
これだけでよいはずです。
jserver は通常の Windows コンソールアプリケーションです。 jserver をスタートさせるには DOS プロンプトからコマンド名をタイ プ(あるいは Explorer からダブルクリック)して下さい。現在は、デー モンのようにバックグラウンドでは実行できません。
$ /usr/local/bin/Wnn4/jserver.exe
標準のコマンドラインオプションに加えて、このパッチを当てた jserver では `-l' オプションが利用できます。このオプションを指定 すると、jserver は localhost に対してのみ listen を行なうように なります。これは jserver を完全に個人で利用する場合で、他人から はネットワーク経由でアクセスされたくないときに便利です。
jserver を終了させるには、別の DOS プロンプトから wnnkill.exe コマンドを実行します。
$ /usr/local/bin/Wnn4/wnnkill.exe
ここでは、EGG Next Generation(通称 Tamagotchy)で使う場合の Emacs(Meadow) の設定例を示します。私は実際にこの設定で、 `egg-980712.tar.gz' を使っています。実際はこの `wnn-dictionary-specification-list' 変数の値は、もともとの値に二 つの新しい辞書のエントリを追加しただけです。
; patch for egg-cnv.el
(eval-after-load
"egg-cnv"
'(progn
(defun egg-finalize-backend ()
(funcall (aref egg-conversion-backend 12)))
)); end eval-after-load
(setq wnn-dictionary-specification-list
'((jserver
(nil nil ""
[2 10 2 45 100 200 5 1 40 -100 200 -100 200 80 200 200 200]
"pubdic/full.fzk"
["pubdic/kihon.dic" ("kihon.h") 5 nil t]
["pubdic/setsuji.dic" ("setsuji.h") 5 nil t]
["pubdic/koyuu.dic" ("koyuu.h") 1 nil t]
["pubdic/chimei.dic" ("chimei.h") 1 nil t]
["pubdic/jinmei.dic" ("jinmei.h") 1 nil t]
["pubdic/special.dic" ("special.h") 5 nil t]
["pubdic/computer.dic" ("computer.h") 5 nil t]
["pubdic/symbol.dic" ("symbol.h") 1 nil t]
["pubdic/tankan.dic" ("tankan.h") 1 nil t]
["pubdic/bio.dic" ("bio.h") 1 nil t]
["gerodic/g-jinmei.dic" ("g-jinmei.h") 1 nil t]
["misc/supplement.dic" ("supplement.h") 1 nil t]
["wnncons/tankan2.dic" nil 1 nil nil]
["wnncons/tankan3.dic" nil 1 nil nil]
[("ud") nil 5 t t])
(nil t "R"
[2 10 2 45 1 80 5 1 50 -20 400 -10 100 -100 200 0 200]
"pubdic/full.fzk"
["pubdic/kihon.dic" ("kihon.h") 5 nil t]
["pubdic/setsuji.dic" ("setsuji.h") 5 nil t]
["pubdic/koyuu.dic" ("koyuu.h") 1 nil t]
["pubdic/chimei.dic" ("chimei.h") 1 nil t]
["pubdic/jinmei.dic" ("jinmei.h") 1 nil t]
["pubdic/special.dic" ("special.h") 5 nil t]
["pubdic/computer.dic" ("computer.h") 5 nil t]
["pubdic/symbol.dic" ("symbol.h") 1 nil t]
["pubdic/tankan.dic" ("tankan.h") 1 nil t]
["pubdic/bio.dic" ("bio.h") 1 nil t]
["gerodic/g-jinmei.dic" ("g-jinmei.h") 1 nil t]
["misc/supplement.dic" ("supplement.h") 1 nil t]
["wnncons/tankan2.dic" nil 1 nil nil]
["wnncons/tankan3.dic" nil 1 nil nil]
[("ud") nil 5 t t]))
(cserver
(Q nil "Q"
nil
"sys/full.con"
["sys/QianMa.dic" nil 1 nil nil])
(W nil "W"
nil
"sys/full.con"
["sys/WuBi.dic" nil 1 nil nil])
(nil nil "PZ"
[1 5 2 750 10 80 10 5 1000 50 0 -200 0 0 0 16 0]
"sys/full.con"
["sys/level_1.dic" ("level_1.h") 4 nil t]
["sys/level_2.dic" ("level_2.h") 1 nil t]
["sys/basic.dic" ("basic.h") 7 nil t]
["sys/computer.dic" ("computer.h") 4 nil t]
["sys/cwnn.dic" ("cwnn.h") 4 nil t]
[("ud") nil 5 t t])
(Q t "QR"
nil
"sys/full.conR"
["sys/QianMa.dic" nil 1 nil nil])
(W t "WR"
nil
"sys/full.conR"
["sys/WuBi.dic" nil 1 nil nil])
(nil t "PZR"
[1 5 2 750 10 80 10 5 1000 50 0 -200 0 0 0 16 0]
"sys/full.conR"
["sys/level_1.dic" ("level_1.h") 4 nil t]
["sys/level_2.dic" ("level_2.h") 1 nil t]
["sys/basic.dic" ("basic.h") 7 nil t]
["sys/computer.dic" ("computer.h") 4 nil t]
["sys/cwnn.dic" ("cwnn.h") 4 nil t]
[("ud") nil 5 t t]))
(tserver
(nil nil ""
[1 5 2 750 10 80 10 5 1000 50 0 -200 0 0 0 16 0]
"sys/full.con"
["sys/cns_ch.dic" ("cns_ch.h") 4 nil t]
["sys/cns_wd.dic" ("cns_wd.h") 1 nil t]
[("ud") nil 5 t t])
(nil t "R"
[1 5 2 750 10 80 10 5 1000 50 0 -200 0 0 0 16 0]
"sys/full.conR"
["sys/cns_ch.dic" ("cns_ch.h") 4 nil t]
["sys/cns_wd.dic" ("cns_wd.h") 1 nil t]
[("ud") nil 5 t t]))
(kserver
(nil nil ""
[2 5 2 45 200 80 5 1 40 0 400 -100 400 80 200 2 200]
"sys/full.fzk"
["sys/hword.dic" ("hword.h") 5 nil t]
["sys/single.dic" ("single.h") 1 nil t]
[("ud") nil 2 t t])
(nil t "R"
[2 10 2 45 1 80 5 1 50 -20 400 -10 100 -100 200 0 200]
"sys/full.fzk"
["sys/hword.dic" ("hword.h") 5 nil t]
["sys/single.dic" ("single.h") 1 nil t]
[("ud") nil 2 t t]))))