From f577c73f3a4a4f95053cda80f6b67da0a5a50f52 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Tue, 19 May 2020 22:35:36 -0700 Subject: Convert everything to UTF-8. Verified that the manpages work with the mandoc tool. They do not work with groff, which does not like Unicode input, but it didn't like ISO-2022-JP input either. --- README | 222 +++++++++++++++++++++++++++++------------------------------ README-SUPP | 92 ++++++++++++------------- oneko.c | 138 ++++++++++++++++++------------------- oneko.h | 64 ++++++++--------- oneko.man.jp | 150 ++++++++++++++++++++-------------------- 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' $@$rl9g$O$D$^$i$J$$$@$C$?!J!)!K$H$iG-$K$9$k5!G=$r:N$jF~$l$^$7$?!#(J - $@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 $@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 猫が使うインターバルタイマの値を変えます。デフォルトは + micro second 単位で 125000 になっていますが、この値を + 小さくするほど猫が速く動きます。 --speed $@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 猫が一度に移動する距離をドットの数で指定します。デフォ + ルトは 16 ですが、この値を大きくするほど猫が速く移動し + ます。 --idle $@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 猫が寝ている時、どれだけの速度でねずみが動いたら起きる + のかを指定できます。デフォルトは 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 $@%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 フォアグラウンドの色を指定します。モノクロームのディス + プレイでは無視されてしまいます。 --bg $@%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 バックグラウンドの色を指定します。モノクロームのディス + プレイでは無視されてしまいます。 -$@$^$?!"%$%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!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$De$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%-!$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 $@G-$N%&%#%s%I%&L>$r;XDj$7$^$9!#(J +-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 $@;XDj$5$l$?L>A0$N%&%#%s%I%&$r%^%&%9$NBe$o$j$KDI$$$+$1$^(J - $@$9!#(J +-toname 指定された名前のウィンドウをマウスの代わりに追いかけま + す。 --tofocus $@G-$O%U%)!<%+%9%&%#%s%I%&$K8~$+$C$FAv$j!"$=$7$F$=$N>eIt(J - $@$rAv$j$^$9!#(J +-tofocus 猫はフォーカスウィンドウに向かって走り、そしてその上部 + を走ります。 -position - $@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%-!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$ruBV@_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 @@ -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.$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 $@Cme!"(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 -$@