summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--README222
-rw-r--r--README-SUPP92
-rw-r--r--oneko.c138
-rw-r--r--oneko.h64
-rw-r--r--oneko.man.jp150
5 files changed, 333 insertions, 333 deletions
diff --git a/README b/README
index 9cf783a..c3da26c 100644
--- a/README
+++ b/README
@@ -7,188 +7,188 @@
 					Tatsuya Kato (kato@ntts.co.jp)
 
 
-$@0JA0!"(Jfj.sources $@$K(J xneko $@$H$$$&(J X Window $@>e$GF0$/!VG-!W$,Ej9F$5$l$F$$(J
-$@$^$7$?$,!";DG0$J$,$i$3$N!VG-!W$O0l$D$N%&%$%s%I%&$r:n$C$F$=$N%&%$%s%I%&(J
-$@$NCf$G%^%&%9$rDI$$$+$1$FAv$j2s$k$b$N$G$7$?!#(J
+以前、fj.sources に xneko という X Window 上で動く「猫」が投稿されてい
+ましたが、残念ながらこの「猫」は一つのウインドウを作ってそのウインドウ
+の中でマウスを追いかけて走り回るものでした。
 
-$@$=$3$G;d$,!VG-$r$*$j$KJD$89~$a$F$*$/$N$O2D0%A[$8$c$J$$$+!W$H;W$$!"2hLL(J
-$@$N>e$r=D2#L5?T$KAv$j2s$k$h$&$K2~B$$7$F$"$2$^$7$?!#(J
+そこで私が「猫をおりに閉じ込めておくのは可哀想じゃないか」と思い、画面
+の上を縦横無尽に走り回るように改造してあげました。
 
-$@$=$NL>$b(J "oneko"$@!#:G=i$O(J 'oclock' $@$N(J 'o' $@$r<h$C$?$D$b$j$@$C$?$N$G$9$,!"(J
-oclock $@$C$F4]$$$+$i(J 'o' $@$J$s$8$c$J$/$F(J o'clock $@$N(J 'o' $@$G$9$h$M!#$G!"(J'
-o' $@$N$3$8$D$1$K(J "Neko runs Over the windows" $@$N(J 'o' $@$r$D$1$^$7$?!#!J6l(J
-$@$7$$!K(J
+その名も "oneko"。最初は 'oclock' の 'o' を取ったつもりだったのですが、
+oclock って丸いから 'o' なんじゃなくて o'clock の 'o' ですよね。で、'
+o' のこじつけに "Neko runs Over the windows" の 'o' をつけました。(苦
+しい)
 
-$@!t(J $@#n$H#m$ONY9g$o$;$N%-!<$J$N$G$/$l$0$l$b4V0c$C$FF~NO$7$J$$$h$&$K$7$F(J
-$@!t(J $@2<$5$$!#(J
+# nとmは隣合わせのキーなのでくれぐれも間違って入力しないようにして
+# 下さい。
 
-$@$3$N%W%m%0%i%`$r<B9T$9$k$K$O(J X Window System $@$,I,MW$G$9!#(JX $@$N%P!<%8%g(J
-$@%s$O(J R3 $@$^$?$O(J R4 $@$G$9$,!"(JR4 $@$G:N$jF~$l$i$l$?(J Shape extention $@$r;H$C$F(J
-$@$$$^$9$N$G(J R3 $@$G<B9T$9$k>l9g$O$D$^$i$J$$<B9T7k2L$K$J$C$F$7$^$$$^$9!#(J
-$@!J(JShape extention $@$,$J$/$F$b%3%s%Q%$%k$O$G$-$k$h$&$K$7$F$"$j$^$9!#!K(J
+このプログラムを実行するには X Window System が必要です。X のバージョ
+ンは R3 または R4 ですが、R4 で採り入れられた Shape extention を使って
+いますので R3 で実行する場合はつまらない実行結果になってしまいます。
+(Shape extention がなくてもコンパイルはできるようにしてあります。)
 
-$@<B9T$9$k%^%7%s$O(J Sun4/330 $@$H!"(JNCD $@$N#XC<Kv$G$7$+;n$7$F$^$;$s$,!"#XC<Kv(J
-$@$G$O$O$C$-$j$$$C$FCY$$$G$9!#(JSun $@$N%3%s%=!<%k$G$d$C$?;~$K$O%Q%i%a!<%?$N(J
-$@@_Dj$G$+$J$j$NB.EY$^$G$"$2$i$l$k$N$G$9$,(J ......$@!#(J
+実行するマシンは Sun4/330 と、NCD のX端末でしか試してませんが、X端末
+でははっきりいって遅いです。Sun のコンソールでやった時にはパラメータの
+設定でかなりの速度まであげられるのですが ......。
 
-$@$*;n$7$/$@$5$$!#(J
+お試しください。
 
-$@!c%P!<%8%g%s%"%C%W$K$h$k5!G=3HD%!d(J
+<バージョンアップによる機能拡張>
 
-$@!}(J $@%*%W%7%g%s$O$9$Y$F%j%=!<%9$+$i$b;XDj$G$-$k$h$&$K$J$j$^$7$?!#$?$@$7!"(J
-   Xrm $@%i%$%V%i%j4X?t$r;HMQ$;$:!"(JXGetDefault $@$G%j%=!<%9$N<hF@$r9T$J$C(J
-   $@$F$$$^$9!J(JX11R1 $@AjEv$N5!G=!K$N$G!"%"%W%j%1!<%7%g%s%G%U%)%k%H(J
-   (/usr/lib/X11/app-default $@$K$"$k%U%!%$%k!K$G$N%j%=!<%9;XDj$O$^$@$G(J
-   $@$-$^$;$s!#(J
+◎ オプションはすべてリソースからも指定できるようになりました。ただし、
+   Xrm ライブラリ関数を使用せず、XGetDefault でリソースの取得を行なっ
+   ています(X11R1 相当の機能)ので、アプリケーションデフォルト
+   (/usr/lib/X11/app-default にあるファイル)でのリソース指定はまだで
+   きません。
 
-$@!}(J NTTSOFT local $@$G9%I>$@$C$?!J!)!K$H$iG-$K$9$k5!G=$r:N$jF~$l$^$7$?!#(J
-   $@<B9T;~$K(J
+◎ NTTSOFT local で好評だった(?)とら猫にする機能を採り入れました。
+   実行時に
 
    % oneko -tora
 
-   $@$H$9$k$HG-$NLOMM$,JQ$o$j$^$9!#(J
+   とすると猫の模様が変わります。
 
-$@!}(J $@?'$N;XDj$,$G$-$k$h$&$K$J$j$^$7$?!#5/F0;~$N%*%W%7%g%s$G(J -fg, -bg $@$r(J
-   $@;XDj$7$F2<$5$$!#(J
+◎ 色の指定ができるようになりました。起動時のオプションで -fg, -bg を
+   指定して下さい。
 
-$@!}(J $@$3$NG-$O!"?2$F$$$k;~$K$M$:$_$r$f$C$/$j0\F0$5$;$k$H5$$E$+$:$K?2$F(J
-   $@$$$^$9!#$3$l$O0lDj;~4VFb$K%^%&%9$NF0$$$?5wN%$,$"$kCM$r1[$($J$1$l$P(J
-   $@5$$,$D$+$J$$$h$&$K$J$C$F$$$k$N$G$9$,!"$3$N!V$"$kCM!W$r%*%W%7%g%s$G(J
-   $@JQ$($i$l$k$h$&$K$7$^$7$?!#%G%U%)%k%H$O#6$K$J$C$F$$$k$N$G$9$,!"(J
+◎ この猫は、寝ている時にねずみをゆっくり移動させると気づかずに寝て
+   います。これは一定時間内にマウスの動いた距離がある値を越えなければ
+   気がつかないようになっているのですが、この「ある値」をオプションで
+   変えられるようにしました。デフォルトは6になっているのですが、
 
    % oneko -idle 20
 
-   $@$H$9$k$H!V$h$jF_$$!WG-$N=PMh>e$,$j$G$9!#(J
+   とすると「より鈍い」猫の出来上がりです。
 
-$@!}(J $@%3%s%Q%$%i$K(J gcc $@$r;H$&$HF0$+$J$$$=$&$G$9!#!J;d$b3NG'$7$?!K$3$N$?$a(J
-   $@:#EY$N(J Imakefile $@$G$O6/@)E*$K(J cc $@$G%3%s%Q%$%k$9$k$h$&$K;XDj$7$F$$$^(J
-   $@$9!#(J
+◎ コンパイラに gcc を使うと動かないそうです。(私も確認した)このため
+   今度の Imakefile では強制的に cc でコンパイルするように指定していま
+   す。
 
-$@!}(J Shape extention $@$N%i%$%V%i%j$,$J$/$F$b%3%s%Q%$%k$G$-$^$9!#$b$7$"$J(J
-   $@$?$N;HMQ$7$F$$$k#X$,(J R4 $@$G$O$J$/$F!"$+$D(J SONY NEWS $@$G$O$J$$>l9g$O(J
-   Imakefile $@$N(J
+◎ Shape extention のライブラリがなくてもコンパイルできます。もしあな
+   たの使用しているXが R4 ではなくて、かつ SONY NEWS ではない場合は
+   Imakefile の
 
           DEFINES = -DSHAPE
 
-   $@$H$$$&9T$r>C$7$F2<$5$$!#!J(JNEWS $@$G;H$($k$+$I$&$+$O;n$7$F$^$;$s!#C/$+(J
-   $@3NG'$7$F2<$5$$!#!K(J
+   という行を消して下さい。(NEWS で使えるかどうかは試してません。誰か
+   確認して下さい。)
 
-$@!c%3%s%Q%$%k$N;EJ}!d(J
+<コンパイルの仕方>
 
-1. $@$^$:!"$3$N5-;v$r(J unshar $@$7$F%=!<%90l<0$r<h$j=P$7$F$/$@$5$$!#(J
+1. まず、この記事を unshar してソース一式を取り出してください。
 
-2. Makefile $@$r:n$j$^$9!#(Joneko $@$N%G%#%l%/%H%j$K0\$C$F!"(J
+2. Makefile を作ります。oneko のディレクトリに移って、
 
 % xmkmf
 
-$@$r<B9T$7$F$/$@$5$$!#$b$7!"$3$N%3%^%s%I$,$J$1$l$P!"(J
+を実行してください。もし、このコマンドがなければ、
 
 % imake -DUseInstalled -I/usr/lib/X11/config
 
-$@$G$bF1$8$G$9!#(J
+でも同じです。
 
-3. make $@$r<B9T$7$^$9!#(J
+3. make を実行します。
 
 % make
 
-$@$3$l$G!"<B9T2DG=$J!VG-!W$,=PMh$^$9!#$b$7!"(J/usr/bin/X11 $@$K$$$l$F!"$_$s(J
-$@$J$G;H$$$?$$$N$G$7$?$i(J
+これで、実行可能な「猫」が出来ます。もし、/usr/bin/X11 にいれて、みん
+なで使いたいのでしたら
 
 # make install
 
-$@$r!J%9!<%Q%f!<%6$G!K<B9T$7$F$/$@$5$$!#(J
+を(スーパユーザで)実行してください。
 
-$@$3$l$G%3%s%Q%$%k$O=*N;$G$9!#$"$H$O!"(J
+これでコンパイルは終了です。あとは、
 
 % oneko &
 
-$@$r<B9T$7$F3Z$7$s$G$/$@$5$$(J :-)
+を実行して楽しんでください :-)
 
-$@!c;HMQJ}K!!d(J
+<使用方法>
 
-$@4pK\E*$K%*%W%7%g%s$O$$$j$^$;$s!#$,!"$3$s$J$*$W$7$g$s$b$"$j$^$9!#(J
-help $@$r=|$/%*%W%7%g%s$O%j%=!<%9$+$i$bJQ99$G$-$^$9!#(J
+基本的にオプションはいりません。が、こんなおぷしょんもあります。
+help を除くオプションはリソースからも変更できます。
 
--help		$@%*%W%7%g%s$N(J help $@$rI=<($7$^$9!#(J
+-help		オプションの help を表示します。
 
--tora		$@G-$,$H$iG-$KJQ$o$j$^$9!#(J
+-tora		猫がとら猫に変わります。
 
--time <n>	$@G-$,;H$&%$%s%?!<%P%k%?%$%^$NCM$rJQ$($^$9!#%G%U%)%k%H$O(J 
-		micro second $@C10L$G(J 125000 $@$K$J$C$F$$$^$9$,!"$3$NCM$r(J
-		$@>.$5$/$9$k$[$IG-$,B.$/F0$-$^$9!#(J
+-time <n>	猫が使うインターバルタイマの値を変えます。デフォルトは 
+		micro second 単位で 125000 になっていますが、この値を
+		小さくするほど猫が速く動きます。
 
--speed <n>	$@G-$,0lEY$K0\F0$9$k5wN%$r%I%C%H$N?t$G;XDj$7$^$9!#%G%U%)(J
-		$@%k%H$O(J 16 $@$G$9$,!"$3$NCM$rBg$-$/$9$k$[$IG-$,B.$/0\F0$7(J
-		$@$^$9!#(J
+-speed <n>	猫が一度に移動する距離をドットの数で指定します。デフォ
+		ルトは 16 ですが、この値を大きくするほど猫が速く移動し
+		ます。
 
--idle <n>	$@G-$,?2$F$$$k;~!"$I$l$@$1$NB.EY$G$M$:$_$,F0$$$?$i5/$-$k(J
-		$@$N$+$r;XDj$G$-$^$9!#%G%U%)%k%H$O(J 6 $@$G$9!#(J
+-idle <n>	猫が寝ている時、どれだけの速度でねずみが動いたら起きる
+		のかを指定できます。デフォルトは 6 です。
 
--rv		$@?'$rH?E>$7$^$9!#!J%+%i!<$N%G%#%9%W%l%$$G$O(J fg, bg $@$G;X(J
-		$@Dj$G$-$k$N$G!"$"$s$^$j0UL#$,$"$j$^$;$s!#!K(J
+-rv		色を反転します。(カラーのディスプレイでは fg, bg で指
+		定できるので、あんまり意味がありません。)
 
--noshape	X $@$N(J Shape Extension $@$r;H$o$:$K<B9T$7$^$9!#B.EY$O$+$J(J
-		$@$jB.$/$J$j$^$9$,!"I=<($,$D$^$i$J$/$J$j$^$9!#!J<B:]$K$d$C(J
-		$@$F$_$F$/$@$5$$!#!K(J
+-noshape	X の Shape Extension を使わずに実行します。速度はかな
+		り速くなりますが、表示がつまらなくなります。(実際にやっ
+		てみてください。)
 
--fg <color>	$@%U%)%"%0%i%&%s%I$N?'$r;XDj$7$^$9!#%b%N%/%m!<%`$N%G%#%9(J
-		$@%W%l%$$G$OL5;k$5$l$F$7$^$$$^$9!#(J
+-fg <color>	フォアグラウンドの色を指定します。モノクロームのディス
+		プレイでは無視されてしまいます。
 
--bg <color>	$@%P%C%/%0%i%&%s%I$N?'$r;XDj$7$^$9!#%b%N%/%m!<%`$N%G%#%9(J
-		$@%W%l%$$G$OL5;k$5$l$F$7$^$$$^$9!#(J
+-bg <color>	バックグラウンドの色を指定します。モノクロームのディス
+		プレイでは無視されてしまいます。
 
-$@$^$?!"%$%s%9%H!<%k$9$k$H(J tora $@$K$b(J symbolic link $@$rD%$j$^$9!#(Jtora $@$H$$(J
-$@$&%3%^%s%IL>$G5/F0$7$?;~$K$O%G%U%)%k%H$G(J -tora $@%*%W%7%g%s$r$D$1$?;~$H(J
-$@F1$8$K$J$j$^$9!#(J
+また、インストールすると tora にも symbolic link を張ります。tora とい
+うコマンド名で起動した時にはデフォルトで -tora オプションをつけた時と
+同じになります。
 
-$@%j%=!<%9$G;XDj$7$?>l9g$O$3$&$G$9!#(J
+リソースで指定した場合はこうです。
 
 oneko.foreground:	black
 oneko.background:	red
 oneko.time:		100000
 oneko.reverse:		true
 
-$@%3%^%s%I$,(J oneko $@$G$O$J$/!"(Jtora $@$H$$$&L>A0$G5/F0$5$l$?>l9g%j%=!<%9L>$O(J 
-tora.* $@$K$J$j$^$9$+$i(J
+コマンドが oneko ではなく、tora という名前で起動された場合リソース名は 
+tora.* になりますから
 
 tora.foreground:	sienna
 tora.background:	moccasin
 
-$@$H$7$F$H$iG-$N@_Dj$HIaDL$NG-$N@_Dj$rJL$K$9$k$3$H$b2DG=$G$9!#$H$iG-$N?'(J
-$@$O$=$N$^$^$G$OGr9u$K$J$C$F$7$^$&$N$G>e$N#29T$r(J resoerce $@$K$$$l$F2<$5$$!#(J
+としてとら猫の設定と普通の猫の設定を別にすることも可能です。とら猫の色
+はそのままでは白黒になってしまうので上の2行を resoerce にいれて下さい。
 
-$@$^$?!"%3%^%s%IL>$G$J$/$F%/%i%9L>!J(J"Oneko"$@!K$G;O$^$k%j%=!<%9$bFI$`$h$&(J
-$@$K$7$^$7$?!#$G$9$+$i(J speed, time $@$J$I!"A4$F$NG-$K6&DL$J%j%=!<%9$O%/%i(J
-$@%9L>$G!"G-$N<oN`!JIaDL$NG-!"$H$iG-!K$K$h$C$FJQ$($?$$?'$J$I$N%j%=!<%9$O(J
-$@%3%^%s%IL>!J%$%s%9%?%s%9L>!K$G;XDj$9$k$N$,$$$$$G$7$g$&!#(J
+また、コマンド名でなくてクラス名("Oneko")で始まるリソースも読むよう
+にしました。ですから speed, time など、全ての猫に共通なリソースはクラ
+ス名で、猫の種類(普通の猫、とら猫)によって変えたい色などのリソースは
+コマンド名(インスタンス名)で指定するのがいいでしょう。
 
-$@$3$NJU$N(J implement $@$O;O$a$+$i(J Xrm* $@$r;H$($P$h$+$C$?$N$G$9$,!"$3$N4X?t(J
-$@$NB8:_$rCN$i$J$+$C$?$N$G(J XGetDefault $@$r;H$C$F!VL5M}LpM}!W=q$$$F$$$^$9!#(J
+この辺の implement は始めから Xrm* を使えばよかったのですが、この関数
+の存在を知らなかったので XGetDefault を使って「無理矢理」書いています。
 
-$@!c$P$0!"$3$l$+$i%P!<%8%g%s%"%C%W$7$?$$$H$3$m!d(J
+<ばぐ、これからバージョンアップしたいところ>
 
-$@J#?t$NG-$rF1;~$KF0$+$;$k$h$&$K$7$?$$!#:#$N$^$^$G$O(J oneko $@$r#2$D<B9T$9(J
-$@$k$HF1$8F0$-$r$9$k$N$G=E$J$C$F$7$^$$$^$9!#!J(J-speed $@$d(J -time $@$rJQ$($F<B(J
-$@9T$9$k$H$=$l$J$j$KF0$$$F$/$l$^$9$,!#;n$7$F$_$F2<$5$$!#!K(J
+複数の猫を同時に動かせるようにしたい。今のままでは oneko を2つ実行す
+ると同じ動きをするので重なってしまいます。(-speed や -time を変えて実
+行するとそれなりに動いてくれますが。試してみて下さい。)
 
-$@G-$,Av$C$?8e$NNN0h$K(J Expose $@$,5/$-$k$N$G!"(Jkterm $@Ey$@$H$A$i$A$i$7$^$9!#(J
-Save Under $@$b;n$7$F$_$^$7$?$,!"CY$/$F$d$a$F$7$^$$$^$7$?!#2?$+$$$$J}K!(J
-$@$,$J$$$G$7$g$&$+!)(J
+猫が走った後の領域に Expose が起きるので、kterm 等だとちらちらします。
+Save Under も試してみましたが、遅くてやめてしまいました。何かいい方法
+がないでしょうか?
 
-$@%+!<%=%k$,%k!<%H%&%#%s%I%&$N>e$HG-$N>e$K$"$k;~$K$O%M%:%_$KJQ$o$j$^$9$,!"(J
-$@%M%:%_$N?'$OC1$KG-$N?'$rH?E>$7$?$b$N$K$J$C$F$$$^$9!#;~4V$,$"$l$PD>$9$N(J
-$@$O$9$0$J$N$G$9$,!"5^$$$@$N$G$=$N$^$^$K$J$C$F$$$^$9!#%P!<%8%g%s%"%C%W$r(J
-$@4|BT$7$F$$$F2<$5$$!#(J
+カーソルがルートウィンドウの上と猫の上にある時にはネズミに変わりますが、
+ネズミの色は単に猫の色を反転したものになっています。時間があれば直すの
+はすぐなのですが、急いだのでそのままになっています。バージョンアップを
+期待していて下さい。
 
-$@B.EY$rAa$/$7$?$$(J ...... $@$1$I!"$3$l0J>e$OL5M}$+$J!)(J $@$I$J$?$+!V$3$&$7$?(J
-$@$i$b$C$HB.$/$J$k!W$H$$$&J}K!$r65$($F2<$5$$!#!J6aF#!w$U8&(J $@$5$s$NDs0F$7(J
-$@$F2<$5$C$?(J Map/Unmap $@$r;H$C$?J}K!$O$^$@;n$7$F$^$;$s!#2K$,$J$/$C$F!#!K(J
+速度を早くしたい ...... けど、これ以上は無理かな? どなたか「こうした
+らもっと速くなる」という方法を教えて下さい。(近藤@ふ研 さんの提案し
+て下さった Map/Unmap を使った方法はまだ試してません。暇がなくって。)
 
-$@;E;v$7$F$$$k;~!"G-$rF0$+$7$F$$$k$H;~!9G-$K%-!<F~NO$r<YKb$5$l$k$3$H$,$"(J
-$@$j$^$9!#%-!<F~NO$rL5;k$7$F2<$N%&%$%s%I%&$KEO$9$3$H$,=PMh$k$N$G$7$g$&$+!)(J
-$@!J$=$&$$$C$F$$$k3d$K$O:#$N%P!<%8%g%s$NG-$O%-!<%$%Y%s%H$r(J Select input 
-$@$7$F$$$^$9!#!K(J
+仕事している時、猫を動かしていると時々猫にキー入力を邪魔されることがあ
+ります。キー入力を無視して下のウインドウに渡すことが出来るのでしょうか?
+(そういっている割には今のバージョンの猫はキーイベントを Select input 
+しています。)
 
-$@!t(J $@4pK\E*$K#P#D#S$G$9$,!"%P%0=$@5$d5!G=3HD%$O!J$3$C$=$j$G$b$$$$$G$9$+(J
-$@!t(J $@$i!K;d!J(Jkato@ntts.co.jp$@!K$K65$($F2<$5$$$M!#%P!<%8%g%s%"%C%W$b$9$k$D(J
-$@!t(J $@$b$j$G$9!#(J
+# 基本的にPDSですが、バグ修正や機能拡張は(こっそりでもいいですか
+# ら)私(kato@ntts.co.jp)に教えて下さいね。バージョンアップもするつ
+# もりです。
diff --git a/README-SUPP b/README-SUPP
index 63ecc41..fc6660c 100644
--- a/README-SUPP
+++ b/README-SUPP
@@ -17,81 +17,81 @@
 					(mukose@hbar.mp.es.osaka-u.ac.jp)
 
 
-Kato $@;a$K$h$k(J oneko $@$b!"B?$/$N?M$?$A$N<j$K$h$C$F$5$i$K@.D9$7$F$$$^$9!#(J
-$@$=$3$G(J README $@$X$NJdB-$H$7$F$3$N%I%-%e%a%s%H$r=q$-$^$9!#$^$:(J README $@$*(J
-$@$h$S(J README-NEW $@$r$*FI$_$/$@$5$$!#(J
+Kato 氏による oneko も、多くの人たちの手によってさらに成長しています。
+そこで README への補足としてこのドキュメントを書きます。まず README お
+よび README-NEW をお読みください。
 
-$@!c%P!<%8%g%s%"%C%W$K$h$k5!G=3HD%!d(J
+<バージョンアップによる機能拡張>
 
-$@!}(J $@G-$r8$$d(J BSD $@%G!<%b%s$K$9$k5!G=$,DI2C$5$l$^$7$?!#$^$?!"L!2h!X%+!<%I(J
-   $@%-%c%W%?!<$5$/$i!Y!J(JCLAMP, $@9VCL<R!K$N%-%c%i%/%?!<!"LZG7K\:y$dBgF;;{(J
-   $@CN@$$K$b$J$j$^$9!#<B9T;~$K$=$l$>$l(J
+◎ 猫を犬や BSD デーモンにする機能が追加されました。また、漫画『カード
+   キャプターさくら』(CLAMP, 講談社)のキャラクター、木之本桜や大道寺
+   知世にもなります。実行時にそれぞれ
 
    % oneko -dog
-   % oneko -bsd_daemon $@$b$7$/$O(J -bsd
+   % oneko -bsd_daemon もしくは -bsd
    % oneko -sakura
    % oneko -tomoyo
 
-   $@$H$9$k$H%S%C%H%^%C%W$,JQ$o$j$^$9!#(J
+   とするとビットマップが変わります。
 
-   BSD $@%G!<%b%s$O(J Marshall Kirk McKusick $@;a$NCx:nJ*$G$9!#$3$N%W%m%0%i(J
-   $@%`$O(J McKusick $@;a$N>5Bz$rF@$F$3$l$r;HMQ$7$F$$$^$9!#(J
+   BSD デーモンは Marshall Kirk McKusick 氏の著作物です。このプログラ
+   ムは McKusick 氏の承諾を得てこれを使用しています。
 
-   $@!X%+!<%I%-%c%W%?!<$5$/$i!Y$*$h$S$=$N%-%c%i%/%?!<$O(J CLAMP $@$NCx:nJ*$G(J
-   $@$9!#$?$@$7$=$N%-%c%i%/%?!<$OF1?M;oEy$K$*$1$kMxMQ$,MFG'$5$l$F$$$^$9!#(J 
-   CLAMP $@3X1`EE;RJ,9;!J(Jhttp://www.clamp.f-2.co.jp/$@!K$r$4;2>H$/$@$5$$!#(J
+   『カードキャプターさくら』およびそのキャラクターは CLAMP の著作物で
+   す。ただしそのキャラクターは同人誌等における利用が容認されています。 
+   CLAMP 学園電子分校(http://www.clamp.f-2.co.jp/)をご参照ください。
 
-$@!}(J $@%3%s%Q%$%i$K(J gcc $@$r;H$&$HF0$+$J$$LdBj$O!"8=:_$G$O8+$i$l$J$/$J$C$?$h(J
-   $@$&$G$9!#(JImakefile $@$N(J CC=cc $@$O%3%a%s%H%"%&%H$5$l$^$7$?!#(J
+◎ コンパイラに gcc を使うと動かない問題は、現在では見られなくなったよ
+   うです。Imakefile の CC=cc はコメントアウトされました。
 
-$@!}(J $@G-$N%^%&%9$X$NAjBP0LCV$r;XDj$G$-$k$h$&$K$J$j$^$7$?!#(J-position $@%*%W(J
-   $@%7%g%s$r$*;H$$$/$@$5$$!#(J
+◎ 猫のマウスへの相対位置を指定できるようになりました。-position オプ
+   ションをお使いください。
 
-$@!}(J $@%&%#%s%I%&L>$r;XDj$G$-$k$h$&$K$J$j$^$7$?!#(J-name $@%*%W%7%g%s$r$*;H$$(J
-   $@$/$@$5$$!#(J
+◎ ウィンドウ名を指定できるようになりました。-name オプションをお使い
+   ください。
 
-$@!}(J $@%^%&%90J30$KG$0U$N%&%#%s%I%&$rDI$$$+$1$k$3$H$,$G$-$k$h$&$K$J$j$^$7(J
-   $@$?!#$9$G$KAv$C$F$$$kB>$N(J oneko $@$rL\I8$K$9$k$3$H$b$G$-$^$9!#(J
-   -towindow $@%*%W%7%g%s$b$7$/$O(J -toname $@%*%W%7%g%s$r$*;H$$$/$@$5$$!#(J
+◎ マウス以外に任意のウィンドウを追いかけることができるようになりまし
+   た。すでに走っている他の oneko を目標にすることもできます。
+   -towindow オプションもしくは -toname オプションをお使いください。
 
    % oneko -name tama
    % oneko -dog -toname tama
 
-   $@$H$9$k$H!"AM$rG-$,DI$$$+$1!"$=$NG-$r8$$,DI$$$+$1$^$9!#(J
+   とすると、鼠を猫が追いかけ、その猫を犬が追いかけます。
 
-$@!}(J $@%U%)!<%+%9%&%#%s%I%&$N>eIt$rAv$i$;$k$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#(J
-   -tofocus $@%*%W%7%g%s$r$*;H$$$/$@$5$$!#(J
+◎ フォーカスウィンドウの上部を走らせることができるようになりました。
+   -tofocus オプションをお使いください。
 
-$@!c?7$7$$5!G=$N;HMQJ}K!!d(J
+<新しい機能の使用方法>
 
--dog		$@G-$KBe$o$j8$$,Av$j$^$9!#(J
+-dog		猫に代わり犬が走ります。
 
--bsd_daemon	$@G-$KBe$o$j(J 4.3BSD $@%G!<%b%s$,Av$j$^$9!#(J
+-bsd_daemon	猫に代わり 4.3BSD デーモンが走ります。
 
--bsd		-bsd_daemon $@$KF1$8!#(J
+-bsd		-bsd_daemon に同じ。
 
--sakura		$@G-$KBe$o$jLZG7K\:y$,Av$j$^$9!#(J
+-sakura		猫に代わり木之本桜が走ります。
 
--tomoyo		$@G-$KBe$o$jBgF;;{CN@$$,Av$j$^$9!#(J
+-tomoyo		猫に代わり大道寺知世が走ります。
 
--name <name>	$@G-$N%&%#%s%I%&L>$r;XDj$7$^$9!#(J
+-name <name>	猫のウィンドウ名を指定します。
 
--towindow	$@5/F08e$K%^%&%9$GA*Br$5$l$?%&%#%s%I%&$r%^%&%9$NBe$o$j$K(J
-		$@DI$$$+$1$^$9!#(J
+-towindow	起動後にマウスで選択されたウィンドウをマウスの代わりに
+		追いかけます。
 
--toname <name>	$@;XDj$5$l$?L>A0$N%&%#%s%I%&$r%^%&%9$NBe$o$j$KDI$$$+$1$^(J
-		$@$9!#(J
+-toname <name>	指定された名前のウィンドウをマウスの代わりに追いかけま
+		す。
 
--tofocus	$@G-$O%U%)!<%+%9%&%#%s%I%&$K8~$+$C$FAv$j!"$=$7$F$=$N>eIt(J
-		$@$rAv$j$^$9!#(J
+-tofocus	猫はフォーカスウィンドウに向かって走り、そしてその上部
+		を走ります。
 
 -position <geometry>
-		$@G-$N%^%&%9$H$NAjBP0LCV$rD4@a$7$^$9!#%G%U%)%k%HCM$+$i$N(J
-		$@:9$G;XDj$7$^$9!#(J
+		猫のマウスとの相対位置を調節します。デフォルト値からの
+		差で指定します。
 
-README $@$K5s$2$i$l$F$$$k=>Mh$N%*%W%7%g%s$bA4$FM-8z$G$9!#(J
+README に挙げられている従来のオプションも全て有効です。
 
-$@3F%S%C%H%^%C%W$4$H$K@_Dj$5$l$F$$$k%G%U%)%k%HCM$O(J
+各ビットマップごとに設定されているデフォルト値は
 
 		time	speed	idle	position
 default neko	125000	13	6	+0+0
@@ -101,7 +101,7 @@ bsd_daemon	300000	16	6	+22+20
 sakura		125000	13	6	+0+0
 tomoyo		125000	10	6	+32+32
 
-$@$J$*!"G-$K%-!<F~NO$rEO$9$3$H$,2DG=$J>l9g$K$O!"(JMeta (Alt) + q $@$K$h$C$F(J
-$@=*N;$5$;$k$3$H$b$G$-$^$9!#(J
+なお、猫にキー入力を渡すことが可能な場合には、Meta (Alt) + q によって
+終了させることもできます。
 
-$@LdBj$dITL@$JE@$,$4$6$$$^$7$?$i(J mukose@hbar.mp.es.osaka-u.ac.jp $@$^$G!#(J
+問題や不明な点がございましたら mukose@hbar.mp.es.osaka-u.ac.jp まで。
diff --git a/oneko.c b/oneko.c
index d2b81fe..de54c1e 100644
--- a/oneko.c
+++ b/oneko.c
@@ -1,5 +1,5 @@
 /*
- *	oneko  -  X11 $@G-(J
+ *	oneko  -  X11 猫
  */
 
 #ifndef	lint
@@ -9,27 +9,27 @@ static char rcsid[] = "$Header: /home/sun/unix/kato/xsam/oneko/oneko.c,v 1.5 90/
 #include "oneko.h"
 #include "patchlevel.h"
 /*
- *	$@%0%m!<%P%kJQ?t(J
+ *	グローバル変数
  */
 
-char	*ClassName = "Oneko";		/* $@%3%^%s%IL>>N(J */
-char	*ProgramName;			/* $@%3%^%s%IL>>N(J */
+char	*ClassName = "Oneko";		/* コマンド名称 */
+char	*ProgramName;			/* コマンド名称 */
 
-Display	*theDisplay;			/* $@%G%#%9%W%l%$9=B$BN(J */
-int	theScreen;			/* $@%9%/%j!<%sHV9f(J */
-unsigned int	theDepth;		/* $@%G%W%9(J */
-Window	theRoot;			/* $@%k!<%H%&%#%s%I%&$N#I#D(J */
-Window	theWindow;			/* $@G-%&%#%s%I%&$N#I#D(J */
-char    *WindowName = NULL;		/* $@G-%&%#%s%I%&$NL>A0(J */
-Window	theTarget = None;		/* $@L\I8%&%#%s%I%&$N#I#D(J */
-char    *TargetName = NULL;		/* $@L\I8%&%#%s%I%&$NL>A0(J */
-Cursor	theCursor;			/* $@$M$:$_%+!<%=%k(J */
+Display	*theDisplay;			/* ディスプレイ構造体 */
+int	theScreen;			/* スクリーン番号 */
+unsigned int	theDepth;		/* デプス */
+Window	theRoot;			/* ルートウィンドウのID */
+Window	theWindow;			/* 猫ウィンドウのID */
+char    *WindowName = NULL;		/* 猫ウィンドウの名前 */
+Window	theTarget = None;		/* 目標ウィンドウのID */
+char    *TargetName = NULL;		/* 目標ウィンドウの名前 */
+Cursor	theCursor;			/* ねずみカーソル */
 
-unsigned int	WindowWidth;		/* $@%k!<%H%&%#%s%I%&$NI}(J */
-unsigned int	WindowHeight;		/* $@%k!<%H%&%#%s%I%&$N9b$5(J */
+unsigned int	WindowWidth;		/* ルートウィンドウの幅 */
+unsigned int	WindowHeight;		/* ルートウィンドウの高さ */
 
-XColor	theForegroundColor;		/* $@?'(J ($@%U%)%"%0%i%&%s%I(J) */
-XColor	theBackgroundColor;		/* $@?'(J ($@%P%C%/%0%i%&%s%I(J) */
+XColor	theForegroundColor;		/* 色 (フォアグラウンド) */
+XColor	theBackgroundColor;		/* 色 (バックグラウンド) */
 
 int Synchronous = False;
 /* Types of animals */
@@ -60,7 +60,7 @@ AnimalDefaultsData AnimalDefaultsDataTable[] =
 };
 
 /*
- *	$@$$$m$$$m$J=i4|@_Dj(J ($@%*%W%7%g%s!"%j%=!<%9$GJQ$($i$l$k$h(J)
+ *	いろいろな初期設定 (オプション、リソースで変えられるよ)
  */
 
 					/* Resource:	*/
@@ -77,41 +77,41 @@ int	ToFocus = NOTDEFINED;		/*   tofocus	*/
 int     XOffset=0,YOffset=0;            /* X and Y offsets for cat from mouse
 					   pointer. */
 /*
- *	$@$$$m$$$m$J>uBVJQ?t(J
+ *	いろいろな状態変数
  */
 
 Bool	DontMapped = True;
 
-int	NekoTickCount;		/* $@G-F0:n%+%&%s%?(J */
-int	NekoStateCount;		/* $@G-F10l>uBV%+%&%s%?(J */
-int	NekoState;		/* $@G-$N>uBV(J */
+int	NekoTickCount;		/* 猫動作カウンタ */
+int	NekoStateCount;		/* 猫同一状態カウンタ */
+int	NekoState;		/* 猫の状態 */
 
-int	MouseX;			/* $@%^%&%9#X:BI8(J */
-int	MouseY;			/* $@%^%&%9#Y:BI8(J */
+int	MouseX;			/* マウスX座標 */
+int	MouseY;			/* マウスY座標 */
 
-int	PrevMouseX = 0;		/* $@D>A0$N%^%&%9#X:BI8(J */
-int	PrevMouseY = 0;		/* $@D>A0$N%^%&%9#Y:BI8(J */
-Window	PrevTarget = None;	/* $@D>A0$NL\I8%&%#%s%I%&$N#I#D(J */
+int	PrevMouseX = 0;		/* 直前のマウスX座標 */
+int	PrevMouseY = 0;		/* 直前のマウスY座標 */
+Window	PrevTarget = None;	/* 直前の目標ウィンドウのID */
 
-int	NekoX;			/* $@G-#X:BI8(J */
-int	NekoY;			/* $@G-#Y:BI8(J */
+int	NekoX;			/* 猫X座標 */
+int	NekoY;			/* 猫Y座標 */
 
-int	NekoMoveDx;		/* $@G-0\F05wN%#X(J */
-int	NekoMoveDy;		/* $@G-0\F05wN%#Y(J */
+int	NekoMoveDx;		/* 猫移動距離X */
+int	NekoMoveDy;		/* 猫移動距離Y */
 
-int	NekoLastX;		/* $@G-:G=*IA2h#X:BI8(J */
-int	NekoLastY;		/* $@G-:G=*IA2h#Y:BI8(J */
-GC	NekoLastGC;		/* $@G-:G=*IA2h(J GC */
+int	NekoLastX;		/* 猫最終描画X座標 */
+int	NekoLastY;		/* 猫最終描画Y座標 */
+GC	NekoLastGC;		/* 猫最終描画 GC */
 /* Variables used to set how quickly the program will chose to raise itself. */
 /* Look at Interval(), Handle Visiblility Notify Event */
 #define DEFAULT_RAISE_WAIT 16  /* About 2 seconds with default interval */
 int     RaiseWindowDelay=0;
 /*
- *	$@$=$NB>(J
+ *	その他
  */
 
-double	SinPiPer8Times3;	/* sin($@#3&P!?#8(J) */
-double	SinPiPer8;		/* sin($@&P!?#8(J) */
+double	SinPiPer8Times3;	/* sin(3π/8) */
+double	SinPiPer8;		/* sin(π/8) */
 
 Pixmap	Mati2Xbm, Jare2Xbm, Kaki1Xbm, Kaki2Xbm, Mati3Xbm, Sleep1Xbm, Sleep2Xbm;
 Pixmap	Mati2Msk, Jare2Msk, Kaki1Msk, Kaki2Msk, Mati3Msk, Sleep1Msk, Sleep2Msk;
@@ -269,7 +269,7 @@ Animation	AnimationPattern[][2] =
 static void NullFunction();
 
 /*
- *	$@%S%C%H%^%C%W%G!<%?!&(JGC $@=i4|2=(J
+ *	ビットマップデータ・GC 初期化
  */
 
 void
@@ -313,7 +313,7 @@ InitBitmapAndGCs()
 }
 
 /*
- *	$@%j%=!<%9!&%G!<%?%Y!<%9$+$iI,MW$J%j%=!<%9$r<h$j=P$9(J
+ *	リソース・データベースから必要なリソースを取り出す
  */
 
 char	*
@@ -332,7 +332,7 @@ char	*resource;
 }
 
 /*
- *	$@%j%=!<%9!&%G!<%?%Y!<%9$+$i%*%W%7%g%s$r@_Dj(J
+ *	リソース・データベースからオプションを設定
  */
 
 GetResources()
@@ -431,7 +431,7 @@ GetResources()
 }
 
 /*
- *	$@$M$:$_7?%+!<%=%k$r:n$k(J
+ *	ねずみ型カーソルを作る
  */
 
 MakeMouseCursor()
@@ -460,7 +460,7 @@ MakeMouseCursor()
 }
 
 /*
- *	$@?'$r=i4|@_Dj$9$k(J
+ *	色を初期設定する
  */
 
 SetupColors()
@@ -586,7 +586,7 @@ Window Window_With_Name(dpy, top, name)
 }
 
 /*
- *	$@%9%/%j!<%s4D6-=i4|2=(J
+ *	スクリーン環境初期化
  */
 
 void
@@ -707,7 +707,7 @@ InitScreen(DisplayName)
 
 
 /*
- *	SIGINT $@%7%0%J%k=hM}(J
+ *	SIGINT シグナル処理
  */
 
 void
@@ -733,10 +733,10 @@ RestoreCursor()
 
 
 /*
- *	$@%$%s%?!<%P%k(J
+ *	インターバル
  *
- *	$@!!$3$N4X?t$r8F$V$H!"$"$k0lDj$N;~4VJV$C$F$3$J$/$J$k!#G-(J
- *	$@$NF0:n%?%$%_%s%0D4@0$KMxMQ$9$k$3$H!#(J
+ *	 この関数を呼ぶと、ある一定の時間返ってこなくなる。猫
+ *	の動作タイミング調整に利用すること。
  */
 
 void
@@ -749,7 +749,7 @@ Interval()
 
 
 /*
- *	$@%F%#%C%/%+%&%s%H=hM}(J
+ *	ティックカウント処理
  */
 
 void
@@ -768,7 +768,7 @@ TickCount()
 
 
 /*
- *	$@G->uBV@_Dj(J
+ *	猫状態設定
  */
 
 void
@@ -783,7 +783,7 @@ SetNekoState(SetValue)
 
 
 /*
- *	$@G-IA2h=hM}(J
+ *	猫描画処理
  */
 
 void
@@ -828,7 +828,7 @@ DrawNeko(x, y, DrawAnime)
 
 
 /*
- *	$@G-:FIA2h=hM}(J
+ *	猫再描画処理
  */
 
 void
@@ -842,7 +842,7 @@ RedrawNeko()
 
 
 /*
- *	$@G-0\F0J}K!7hDj(J
+ *	猫移動方法決定
  *
  *      This sets the direction that the neko is moving.
  *
@@ -904,7 +904,7 @@ NekoDirection()
 
 
 /*
- *	$@G-JI$V$D$+$jH=Dj(J
+ *	猫壁ぶつかり判定
  */
 
 Bool
@@ -932,7 +932,7 @@ IsWindowOver()
 
 
 /*
- *	$@G-0\F0>u67H=Dj(J
+ *	猫移動状況判定
  */
 
 Bool
@@ -947,7 +947,7 @@ IsNekoDontMove()
 
 
 /*
- *	$@G-0\F03+;OH=Dj(J
+ *	猫移動開始判定
  */
 
 Bool
@@ -966,7 +966,7 @@ IsNekoMoveStart()
 
 
 /*
- *	$@G-0\F0(J dx, dy $@7W;;(J
+ *	猫移動 dx, dy 計算
  */
 
 void
@@ -1086,7 +1086,7 @@ CalcDxDy()
 
 
 /*
- *	$@F0:n2r@OG-IA2h=hM}(J
+ *	動作解析猫描画処理
  */
 
 void
@@ -1168,7 +1168,7 @@ NekoThinkDraw()
 	if (NekoStateCount < NEKO_AWAKE_TIME) {
 	    break;
 	}
-	NekoDirection();	/* $@G-$,F0$/8~$-$r5a$a$k(J */
+	NekoDirection();	/* 猫が動く向きを求める */
 	break;
     case NEKO_U_MOVE:
     case NEKO_D_MOVE:
@@ -1211,7 +1211,7 @@ NekoThinkDraw()
 
 
 /*
- *	$@%-!<%$%Y%s%H=hM}(J
+ *	キーイベント処理
  */
 
 Bool
@@ -1235,7 +1235,7 @@ ProcessKeyPress(theKeyEvent)
     switch (theKeyBuffer[0]) {
     case 'q':
     case 'Q':
-      if (theKeyEvent->state & Mod1Mask) { /* META (Alt) $@%-!<(J */
+      if (theKeyEvent->state & Mod1Mask) { /* META (Alt) キー */
 	ReturnState = False;
       }
       break;
@@ -1249,7 +1249,7 @@ ProcessKeyPress(theKeyEvent)
 
 
 /*
- *	$@%$%Y%s%H=hM}(J
+ *	イベント処理
  */
 
 Bool
@@ -1288,7 +1288,7 @@ ProcessEvent()
 
 
 /*
- *	$@G-=hM}(J
+ *	猫処理
  */
 
 void
@@ -1296,7 +1296,7 @@ ProcessNeko()
 {
   struct itimerval	Value;
 
-  /* $@G-$N=i4|2=(J */
+  /* 猫の初期化 */
 
   NekoX = (WindowWidth - BITMAP_WIDTH / 2) / 2;
   NekoY = (WindowHeight - BITMAP_HEIGHT / 2) / 2;
@@ -1306,7 +1306,7 @@ ProcessNeko()
 
   SetNekoState(NEKO_STOP);
 
-  /* $@%?%$%^!<@_Dj(J */
+  /* タイマー設定 */
 
   timerclear(&Value.it_interval);
   timerclear(&Value.it_value);
@@ -1316,7 +1316,7 @@ ProcessNeko()
 
   setitimer(ITIMER_REAL, &Value, 0);
 
-  /* $@%a%$%s=hM}(J */
+  /* メイン処理 */
 
   do {
     NekoThinkDraw();
@@ -1325,7 +1325,7 @@ ProcessNeko()
 
 
 /*
- *	SIGALRM $@%7%0%J%k=hM}(J
+ *	SIGALRM シグナル処理
  */
 
 static void
@@ -1338,7 +1338,7 @@ NullFunction()
 }
 
 /*
- *	$@%(%i!<=hM}(J
+ *	エラー処理
  */
 
 int
@@ -1398,7 +1398,7 @@ Usage()
 
 
 /*
- *	$@%*%W%7%g%s$NM}2r(J
+ *	オプションの理解
  */
 
 Bool
@@ -1535,7 +1535,7 @@ GetArguments(argc, argv, theDisplayName)
 
 
 /*
- *	$@%a%$%s4X?t(J
+ *	メイン関数
  */
 
 int
diff --git a/oneko.h b/oneko.h
index 414e12f..0b0566a 100644
--- a/oneko.h
+++ b/oneko.h
@@ -1,11 +1,11 @@
 /*
- *	oneko  -  X11 $@G-(J
+ *	oneko  -  X11 猫
  *
  *	$Header: /home/sun/unix/kato/xsam/oneko/oneko.h,v 1.4 90/10/18 16:52:57 kato Exp Locker: kato $
  */
 
 /*
- *	$@%$%s%/%k!<%I%U%!%$%k(J
+ *	インクルードファイル
  */
 
 #include <X11/Xlib.h>
@@ -22,13 +22,13 @@
 
 
 /*
- *	$@%+!<%=%k%S%C%H%^%C%W%U%!%$%k$NFI$_9~$_(J
+ *	カーソルビットマップファイルの読み込み
  */
 
 #include "cursors/cursor.include"
 
 /*
- *	$@IaDL$NG-MQ%S%C%H%^%C%W%U%!%$%k$NFI$_9~$_(J
+ *	普通の猫用ビットマップファイルの読み込み
  *      These include files in the directories noted.
  *      These are the bitmaps.
  */
@@ -49,60 +49,60 @@
 #include "bitmasks/tomoyo/tomoyo.mask.include"
 
 /*
- *	$@Dj?tDj5A(J
+ *	定数定義
  */
 
-#define	BITMAP_WIDTH		32	/* $@#1%-%c%i%/%?$NI}(J ($@%T%/%;%k(J) */
-#define	BITMAP_HEIGHT		32	/* $@#1%-%c%i%/%?$N9b$5(J ($@%T%/%;%k(J) */
+#define	BITMAP_WIDTH		32	/* 1キャラクタの幅 (ピクセル) */
+#define	BITMAP_HEIGHT		32	/* 1キャラクタの高さ (ピクセル) */
 
 #define	AVAIL_KEYBUF		255
 #define	MAX_TICK		9999		/* Odd Only! */
 
-#define	DEFAULT_FOREGROUND	"black"		/* $@%U%)%"%0%i%&%s%I%+%i!<(J */
-#define	DEFAULT_BACKGROUND	"white"		/* $@%P%C%/%0%i%&%s%I%+%i!<(J */
+#define	DEFAULT_FOREGROUND	"black"		/* フォアグラウンドカラー */
+#define	DEFAULT_BACKGROUND	"white"		/* バックグラウンドカラー */
 
 /*
- *	$@G-$N>uBVDj?t(J
+ *	猫の状態定数
  */
 
-#define	NEKO_STOP		0	/* $@N)$A;_$^$C$?(J */
-#define	NEKO_JARE		1	/* $@4i$r@v$C$F$$$k(J */
-#define	NEKO_KAKI		2	/* $@F,$rA_$$$F$$$k(J */
-#define	NEKO_AKUBI		3	/* $@$"$/$S$r$7$F$$$k(J */
-#define	NEKO_SLEEP		4	/* $@?2$F$7$^$C$?(J */
-#define	NEKO_AWAKE		5	/* $@L\$,3P$a$?(J */
-#define	NEKO_U_MOVE		6	/* $@>e$K0\F0Cf(J */
-#define	NEKO_D_MOVE		7	/* $@2<$K0\F0Cf(J */
-#define	NEKO_L_MOVE		8	/* $@:8$K0\F0Cf(J */
-#define	NEKO_R_MOVE		9	/* $@1&$K0\F0Cf(J */
-#define	NEKO_UL_MOVE		10	/* $@:8>e$K0\F0Cf(J */
-#define	NEKO_UR_MOVE		11	/* $@1&>e$K0\F0Cf(J */
-#define	NEKO_DL_MOVE		12	/* $@:82<$K0\F0Cf(J */
-#define	NEKO_DR_MOVE		13	/* $@1&2<$K0\F0Cf(J */
-#define	NEKO_U_TOGI		14	/* $@>e$NJI$r0z$CA_$$$F$$$k(J */
-#define	NEKO_D_TOGI		15	/* $@2<$NJI$r0z$CA_$$$F$$$k(J */
-#define	NEKO_L_TOGI		16	/* $@:8$NJI$r0z$CA_$$$F$$$k(J */
-#define	NEKO_R_TOGI		17	/* $@1&$NJI$r0z$CA_$$$F$$$k(J */
+#define	NEKO_STOP		0	/* 立ち止まった */
+#define	NEKO_JARE		1	/* 顔を洗っている */
+#define	NEKO_KAKI		2	/* 頭を掻いている */
+#define	NEKO_AKUBI		3	/* あくびをしている */
+#define	NEKO_SLEEP		4	/* 寝てしまった */
+#define	NEKO_AWAKE		5	/* 目が覚めた */
+#define	NEKO_U_MOVE		6	/* 上に移動中 */
+#define	NEKO_D_MOVE		7	/* 下に移動中 */
+#define	NEKO_L_MOVE		8	/* 左に移動中 */
+#define	NEKO_R_MOVE		9	/* 右に移動中 */
+#define	NEKO_UL_MOVE		10	/* 左上に移動中 */
+#define	NEKO_UR_MOVE		11	/* 右上に移動中 */
+#define	NEKO_DL_MOVE		12	/* 左下に移動中 */
+#define	NEKO_DR_MOVE		13	/* 右下に移動中 */
+#define	NEKO_U_TOGI		14	/* 上の壁を引っ掻いている */
+#define	NEKO_D_TOGI		15	/* 下の壁を引っ掻いている */
+#define	NEKO_L_TOGI		16	/* 左の壁を引っ掻いている */
+#define	NEKO_R_TOGI		17	/* 右の壁を引っ掻いている */
 
 /*
- *	$@G-$N%"%K%a!<%7%g%s7+$jJV$72s?t(J
+ *	猫のアニメーション繰り返し回数
  */
 
 #define	NEKO_STOP_TIME		4
 #define	NEKO_JARE_TIME		10
 #define	NEKO_KAKI_TIME		4
-#define	NEKO_AKUBI_TIME		6	/* $@$b$H$b$H#3$@$C$?$1$ID9$$J}$,$$$$(J */
+#define	NEKO_AKUBI_TIME		6	/* もともと3だったけど長い方がいい */
 #define	NEKO_AWAKE_TIME		3
 #define	NEKO_TOGI_TIME		10
 
 #define	PI_PER8			((double)3.1415926535/(double)8)
 
-#define	MAXDISPLAYNAME		(64 + 5)	/* $@%G%#%9%W%l%$L>$ND9$5(J */
+#define	MAXDISPLAYNAME		(64 + 5)	/* ディスプレイ名の長さ */
 
 #define	NOTDEFINED		(-1)
 
 /*
- *	$@%^%/%mDj5A(J
+ *	マクロ定義
  */
 
 #define IsTrue(str)     (strcmp((str), "true") == 0)
diff --git a/oneko.man.jp b/oneko.man.jp
index 96f9e3a..fe5ff12 100644
--- a/oneko.man.jp
+++ b/oneko.man.jp
@@ -1,7 +1,7 @@
 .TH ONEKO 6
-.SH $@L>>N(J oneko
-$@$+$o$$$$G-$,%^%&%9%+!<%=%k$rDI$$$+$1$k%W%m%0%i%`(J
-.SH $@=q<0(J
+.SH 名称 oneko
+かわいい猫がマウスカーソルを追いかけるプログラム
+.SH 書式
 .B oneko
 [\fB-help\fP] [\fB-tora\fP]
 [\fB-dog\fP] [\fB-bsd_daemon\fP] [\fB-bsd\fP]
@@ -11,139 +11,139 @@
 [\fB-tofocus\fP]
 [\fB-position\fP \fIgeometry\fP]
 [\fB-rv\fP] [\fB-noshape\fP] [\fB-fg\fP] [\fB-bg\fP]
-.SH $@2r@b(J
+.SH 解説
 .I oneko
-$@$r<B9T$9$k$H%^%&%9%+!<%=%k$O$M$:$_$H$J$j!"$=$7$F>.$5$J$+$o$$$$G-$,$=$N(J
-$@%^%&%9%+!<%=%k$rDI$$$+$1$O$8$a$^$9!#(J
-$@$M$:$_$KDI$$$D$/$HG-$OL2$j$O$8$a$^$9!#(J
-.SS $@%*%W%7%g%s(J
+を実行するとマウスカーソルはねずみとなり、そして小さなかわいい猫がその
+マウスカーソルを追いかけはじめます。
+ねずみに追いつくと猫は眠りはじめます。
+.SS オプション
 .TP
 .B -help
-$@;H$$J}$N4JC1$J@bL@$r=PNO$7$^$9!#(J
+使い方の簡単な説明を出力します。
 .TP
 .B -tora
-$@G-$r%H%iG-$K$7$^$9!#(J
+猫をトラ猫にします。
 .TP
 .B -dog
-$@G-$KBe$o$j8$$,Av$j$^$9!#(J
+猫に代わり犬が走ります。
 .TP
 .B -bsd_daemon
-$@G-$KBe$o$j(J 4.3BSD $@%G!<%b%s$,Av$j$^$9!#(J
+猫に代わり 4.3BSD デーモンが走ります。
 .TP
 .B -bsd
 .B -bsd_daemon
-$@$KF1$8!#(J
+に同じ。
 .TP
 .B -sakura
-$@G-$KBe$o$jLZG7K\:y$,Av$j$^$9!#(J
+猫に代わり木之本桜が走ります。
 .TP
 .B -tomoyo
-$@G-$KBe$o$jBgF;;{CN@$$,Av$j$^$9!#(J
+猫に代わり大道寺知世が走ります。
 .TP
 .BI \-time " interval"
-$@G-%"%K%a!<%7%g%s$N4V3V$r;XDj$7$^$9!#(J
-$@%G%U%)%k%HCM$O(J 125000 $@$GC10L$O%^%$%/%mIC$G$9!#(J
-$@$3$NCM$r$h$j>.$5$/;XDj$9$k$HG-$O$h$jB.$/Av$j$^$9!#(J
+猫アニメーションの間隔を指定します。
+デフォルト値は 125000 で単位はマイクロ秒です。
+この値をより小さく指定すると猫はより速く走ります。
 .TP
 .BI \-speed " distance"
-$@G-$,0l$D$NF0:n$G0\F0$9$k5wN%$r%I%C%H$G;XDj$7$^$9!#(J
-$@%G%U%)%k%HCM$O(J 16 $@$G$9!#(J
+猫が一つの動作で移動する距離をドットで指定します。
+デフォルト値は 16 です。
 .TP
 .BI \-idle " speed"
-$@F($2$k$M$:$_$,G-$NL\$r3P$^$5$;$k$K;j$k%9%T!<%I$r;XDj$7$^$9!#(J
+逃げるねずみが猫の目を覚まさせるに至るスピードを指定します。
 .TP
 .BI \-name " name"
-$@G-$N%&%#%s%I%&L>$r;XDj$7$^$9!#(J
+猫のウィンドウ名を指定します。
 .TP
 .B -towindow
 .I oneko
-$@$,$3$N%*%W%7%g%s$H$H$b$K5/F0$5$l$?;~$O!"$"$J$?$O%+!<%=%k$G%&%#%s%I%&$r(J
-$@A*Br$7$J$1$l$P$J$j$^$;$s!#(J
-$@$9$k$HG-$,$"$i$o$l$F!"$M$:$_$NBe$o$j$K$=$N%&%#%s%I%&$rDI$$$+$1$O$8$a$^(J
-$@$9!#(J
-$@$9$G$K5/F0$7$F$$$kB>$N(J
+がこのオプションとともに起動された時は、あなたはカーソルでウィンドウを
+選択しなければなりません。
+すると猫があらわれて、ねずみの代わりにそのウィンドウを追いかけはじめま
+す。
+すでに起動している他の
 .I oneko
-$@$rL\I8$K$9$k$3$H$b$G$-$^$9!#(J
-$@%k!<%H%&%#%s%I%&$,A*Br$5$l$?>l9g$O!"DL>o$N$h$&$K%^%&%9$rDI$$$+$1$^$9!#(J
-$@L\I8%&%#%s%I%&$,JD$8$i$l$F$O$$$J$$$b$N$N8+$($J$$;~$K$O!"DL>o$N$h$&$K%^(J
-$@%&%9$rDI$$$+$1$^$9!#(J
-$@L\I8%&%#%s%I%&$,JD$8$i$l$k$H%W%m%0%i%`$O=*N;$7$^$9!#(J
+を目標にすることもできます。
+ルートウィンドウが選択された場合は、通常のようにマウスを追いかけます。
+目標ウィンドウが閉じられてはいないものの見えない時には、通常のようにマ
+ウスを追いかけます。
+目標ウィンドウが閉じられるとプログラムは終了します。
 .TP
 .BI \-toname " name"
-$@G-$O;XDj$5$l$?L>A0$N%&%#%s%I%&$r$M$:$_$NBe$o$j$KDI$$$+$1$^$9!#(J
-$@$9$G$K5/F0$7$F$$$kB>$N(J
+猫は指定された名前のウィンドウをねずみの代わりに追いかけます。
+すでに起動している他の
 .I oneko
-$@$rL\I8$K$9$k$3$H$b$G$-$^$9!#(J
-$@L\I8%&%#%s%I%&$,JD$8$i$l$F$O$$$J$$$b$N$N8+$($J$$;~$K$O!"DL>o$N$h$&$K%^(J
-$@%&%9$rDI$$$+$1$^$9!#(J
-$@L\I8%&%#%s%I%&$,JD$8$i$l$k$H%W%m%0%i%`$O=*N;$7$^$9!#(J
+を目標にすることもできます。
+目標ウィンドウが閉じられてはいないものの見えない時には、通常のようにマ
+ウスを追いかけます。
+目標ウィンドウが閉じられるとプログラムは終了します。
 .TP
 .B -tofocus
-$@G-$O%U%)!<%+%9%&%#%s%I%&$K8~$+$C$FAv$j!"$=$7$F$=$N>eIt$rAv$j$^$9!#(J
-$@%U%)!<%+%9%&%#%s%I%&$,8+$($J$$;~$K$O!"DL>o$N$h$&$K%^%&%9$rDI$$$+$1$^$9!#(J
+猫はフォーカスウィンドウに向かって走り、そしてその上部を走ります。
+フォーカスウィンドウが見えない時には、通常のようにマウスを追いかけます。
 .TP
 .BI \-position " geometry"
-X $@$H(J Y $@$N%*%U%;%C%H$r;XDj$7$FG-$N$M$:$_$X$NAjBP0LCV$rD4@0$7$^$9!#(J
+X と Y のオフセットを指定して猫のねずみへの相対位置を調整します。
 .TP
 .B -rv
-$@GX7J?'$HA07J?'$rH?E>$7$^$9!#(J
+背景色と前景色を反転します。
 .TP
 .B -noshape
-SHAPE extension $@$r;H$$$^$;$s!#(J
+SHAPE extension を使いません。
 .TP
 .BI \-fg " color"
-$@A07J?'!#(J
+前景色。
 .TP
 .BI \-bg " color"
-$@GX7J?'!#(J
-.SS $@%j%=!<%9(J
-$@%"%W%j%1!<%7%g%sL>$O(J neko $@$b$7$/$O(J tora $@$G!"%/%i%9L>$O(J Oneko $@$G$9!#(J
+背景色。
+.SS リソース
+アプリケーション名は neko もしくは tora で、クラス名は Oneko です。
 .TP
 .B tora
-$@%H%iG-$rAv$i$;$?$$>l9g$K$O(J True $@$H$7$^$9!#(J
+トラ猫を走らせたい場合には True とします。
 .TP
 .B time
-$@%"%K%a!<%7%g%s$N4V3V$r%^%$%/%mIC$G@_Dj$7$^$9!#(J
+アニメーションの間隔をマイクロ秒で設定します。
 .TP
 .B speed
-$@0\F05wN%$r%T%/%;%k$G;XDj$7$^$9!#(J
+移動距離をピクセルで指定します。
 .TP
 .B idle
-$@F($2$k$M$:$_$,G-$NL\$r3P$^$5$;$k$K;j$k%9%T!<%I$r;XDj$7$^$9!#(J
+逃げるねずみが猫の目を覚まさせるに至るスピードを指定します。
 .TP
 .B noshape
-SHAPE extension $@$r;H$$$?$/$J$$>l9g(J True $@$H$7$^$9!#(J
+SHAPE extension を使いたくない場合 True とします。
 .TP
 .B reverse
-$@A07J?'$HGX7J?'$r8r49$7$?$$>l9g(J True $@$H$7$^$9!#(J
+前景色と背景色を交換したい場合 True とします。
 .TP
 .B foreground
-$@A07J?'!#(J
+前景色。
 .TP
 .B background
-$@GX7J?'!#(J
-.SH $@Cm<a(J
-$@$3$N%W%m%0%i%`$,(J XGetDefault $@$rMxMQ$7$F$$$k0J>e!"(J neko.resouce $@$N7A<0(J
-$@$r;H$&$3$H$KN10U$7$F$/$@$5$$!#(J
-$@%O!<%I%j%s%/$"$k$$$O%=%U%H%j%s%/$K$h$C$F!"$3$N%W%m%0%i%`$r(J tora $@$H$7$F(J
-$@5/F0$7$?>l9g$K$O!"%G%U%)%k%H$G(J \fB-tora\fP $@%*%W%7%g%s$,M-8z$H$J$j$^$9!#(J
+背景色。
+.SH 注釈
+このプログラムが XGetDefault を利用している以上、 neko.resouce の形式
+を使うことに留意してください。
+ハードリンクあるいはソフトリンクによって、このプログラムを tora として
+起動した場合には、デフォルトで \fB-tora\fP オプションが有効となります。
 .PP
-BSD $@%G!<%b%s$O(J  Marshall Kirk McKusick $@;a$NCx:nJ*$G$9!#$9$Y$F$N8"Mx$O(J
-$@J];}$5$l$F$$$^$9!#(J
+BSD デーモンは  Marshall Kirk McKusick 氏の著作物です。すべての権利は
+保持されています。
 BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.
 .PP
-$@LZG7K\:y$*$h$SBgF;;{CN@$$OL!2h!X%+!<%I%-%c%W%?!<$5$/$i!Y!J(JCLAMP, $@9VCL(J
-$@<R!K$N%-%c%i%/%?!<$G$"$j!"(JCLAMP $@3X1`EE;RJ,9;(J
-$@!J(Jhttp://www.clamp.f-2.co.jp/$@!K$K<($5$l$F$$$kMFG'$N$b$H$KMxMQ$5$l$F$$(J
-$@$^$9!#(J
-.SH $@:n<T(J
-$@%*%j%8%J%k$N(J
+木之本桜および大道寺知世は漫画『カードキャプターさくら』(CLAMP, 講談
+社)のキャラクターであり、CLAMP 学園電子分校
+(http://www.clamp.f-2.co.jp/)に示されている容認のもとに利用されてい
+ます。
+.SH 作者
+オリジナルの
 .I xneko
-$@$O(J Masayuki Koba $@$K$h$C$F=q$+$l!"(J
-$@$=$7$F(J Tatsuya Kato $@$K$h$C$F2~JQ$5$l(J
+は Masayuki Koba によって書かれ、
+そして Tatsuya Kato によって改変され
 .I oneko
-$@$H$J$j$^$7$?!#(J
-$@$=$N8e(J John Lerchey $@$H(J Eric Anderson $@!"(J Toshihiro Kanda $@!"$*$h$S(J 
-Kiichiroh Mukose $@$K$h$C$F$5$i$K2~JQ$5$l$^$7$?!#(J
-.SH $@J]<i<T(J
-$@LdBj$dITL@$JE@$,$4$6$$$^$7$?$i(J mukose@hbar.mp.es.osaka-u.ac.jp $@$^$G!#(J
+となりました。
+その後 John Lerchey と Eric Anderson 、 Toshihiro Kanda 、および 
+Kiichiroh Mukose によってさらに改変されました。
+.SH 保守者
+問題や不明な点がございましたら mukose@hbar.mp.es.osaka-u.ac.jp まで。