MIKOTOBA for DOS & UNIX Version0.31 This text is Japanese Shift-JIS. DOS Version(ShiftJIS) :miko031s.lzh(with Binary) UNIX Version(EUC) :miko031e.lzh(without Binary) 1.何のソフト?  幾つかの御言葉(現在10個)をアットランダムに表示するだけのソフトです。  作者は会社の環境に組み込み、勝手に作者のアカウントを使う人への威嚇・・・ もとい、御言葉を知ってもらうために使っています。 2.使い方  このプログラムを起動すると、御言葉が出てプログラムは終了します。ですから、 DOSの場合"AUTOEXEC.BAT"の末尾に、UNIXの場合".login"や".cshrc"の末尾に プログラムを起動する命令を記述するとよいでしょう。  本分末尾に例を示します。参考にして下さい。 3.動作確認  DOS版はPC-DOS2000,Windows95,Windows98で行っています。  UNIX版はSunOS及びSolarisで行っています。  推測にすぎませんが、コンパイルさえ通ればUNIXじゃなくても、動くとは思います。  GCCだけではなく、CCでも動くのでMINIXでもMINIXを日本語化できれば動くでしょう。  ソースに手を入れればMSX-Cでもコンパイルできるかもしれません。 4.オプション  -nt タイトルを表示しなくなります。すなわち御言葉だけを表示します。 5.転載  取りあえず、厳禁にします。バージョン1まで待って下さい。 6.その他  本バージョンは仮リリースとします。何時かきっと正式版を出すでしょう。転職 しないとそんな暇がないという噂もあります。  仮リリースなんで本プログラムの転載は前述のように厳禁とします。  更に、このプログラムによって発生したいかなる問題、損害などを作者は一切関知 しないものとします。但し、バグレポートなどはご連絡くださると幸いです。  また、この御言葉は追加して欲しいなどのご連絡もくだされば善処いたします。 但し、必ず追加するなどの対応する義務は免除されるものとします。 7.UNIXでの使用  UNIXの場合、コンパイルする必要があります。これは、バイナリを配布すると特定の UNIXでしか動作しないための対処です。頑張ってコンパイルしましょう。  なお、本文はUNIXの一般的コマンドを理解しているものとして記述しています。  1)UNIX上の各自の環境へファイルをコピーする。(各OSや組み込まれている   ツールにより手順が違うため省略します)   この時、作業ディレクトリを作成しその配下に置くとよいでしょう。  2)UNIX版LHAで解凍します。(あんまし一般的ではないので、その内tarの配布に   します) %lha x miko031e.lzh  3)"mikotoba.c"と"mdata.c"が展開されたことを"ls"コマンドで確認します。  4)コンパイルします。 %cc -o mikotoba mikotoba.c mdata.c or %gcc -o mikotoba mikotoba.c mdata.c  6)出来た実行ファイル"mikotoba"を適当なところにおいて使いましょう。 8.使用例  1)DOSの場合 ----AUTOEXEC.BAT @ECHO OFF <--- バッチコマンドの未表示 C:\CDROM\MSCDEX /D:MSCD000 LH C:\DOS\SMARTDRV.EXE /X 4096 4096 PROMPT $p$g PATH C:\UTL;C:\WINDOWS;C:\DOS SET TEMP=C:\TMP LH C:\DOS\NLSFUNC.EXE C:\DOS\COUNTRY.SYS C:\DOS\CHEV.COM JP CLS <--- 画面をクリア C:\MIKO\MIKOTOBA.EXE -nt <--- 御言葉表示! ----  画面をクリアしてから使いたいところです。  作者はDOS版は作っているだけで使ってません(^^;。(開発はDOSですが・・・)  2)UNIXの場合 ----.cshrc ( SHELL tcsh ) : : 前略 ### ADD line alias md mkdir alias lo exit alias p stty erase ^? set filec mikotoba -nt <--- 御言葉表示 ----  UNIXの場合ログインのメッセージに続けて出すと、怪しさ倍増・・・というより それらしくなっていいでしょう。  設定する箇所としては".login"も考えられるのですが、X-Windowsを使った際に メッセージが出なくなるので、Windowを開く度にメッセージが出る".cshrc"に 設定しましょう。  なお、kshを使っている場合は".kshrc"になります。  画面例 ---- UNIX(r) System V Release 4.0 (******) login: suzukit Password: Last login: Wed May 5 13:47:22 from **** Sun Microsystems Inc. SunOS 5.5.1 Generic May 1996 私の足を雌鹿のようにし、私に高い所を歩ませる。 ハバクク書3:19 suzukit@******:101 % ---- 9.今後の展望  Windowsへの対応:悔しくても標準OSはWindows・・・。なんであんなこけまくるOSを 皆使うんだろうか。とは言え、Windowsの普及率は馬鹿にできないので、仕方無しに Windowsへの対応を考えています。  が、Windowsってフリーの開発ソフトがないのです。(あるにはあるだろうけど、 なんか今一つなんだよね)  というわけで、優先度が可成低いです。  御言葉データの分離:御言葉の追加削除のたびにソースをいじるのは、美しく ありません。別ファイルにするのがいいでしょう。  その時に、EUC,SJISの壁を越えたものにするともっといいでしょう。  というわけで、構想だけ広がっていて、手はついてません。 10.ソースの汚いところ  自分でも汚いなぁ、何とかしたいなぁ、と思っている場所はありますが、特に そこから一個所取り出して解説しましょう。プログラマを目指している人は真似しちゃ いけません。  この他に、ソース内の英語コメントがしっちゃかめっちゃかだという噂もありますが 取りあえず、置いておきましょう。(英語にしているのは複数の文字コード環境に対応 させるため・・・) ---- int getflag(int argc, char *argv[]) { if (argc < 2) { return (NML); } /* suport UNIX v0.3 */ if (strcmp(argv[1], "-nt") == 0) { <--- ここです! return (NTL); } /* notitle v0.2 */ printf("Illegal falg \"%s\"\n", argv[1]); /* Illegal v0.31 */ return (NML); } ----  現在フラグ処理は可成端折っていて-ntがオプション指定されたか否しか見てません。 最低なことに、オプション位置は第一オプションしか見てないのです。  その前に、オプションで"-"を使っている意味が全くない!  最低ですね。(自分で言うなって・・・(--# )  v0.31まで異常処理すら入っていなかったというのもある意味すごいかもしれません。 これは、早急に対処する必要があるのですが、暇がないのでやってません。  とはいえ、フラグが増えてもユーザインタフェースは互換が保てるのでまだマシかな と思っていますが・・・。(その際の工数はすごいことになるかも・・・非効率的この 上ない話・・・)  v0.31で少しは見やすくしたつもりですけど。  世の中、こんなプログラムが蔓延しているかもしれません。見てくれはちゃんと なっていても、中身がぐちゃぐちゃなプログラム・・・。 1999/5/5 職場にて(;_;) すず@slcc(tsuzuki@t-samukawa.or.jp) ----改版履歴 v0.1 取りあえず作る 12/07/98 t.suzuki v0.2 -ntを追加 12/14/98 t.suzuki v0.3 UNIX特有のバグ対処 03/25/99 t.suzuki v0.31 indentをかける 05/05/99 t.suzuki defineを使用するようにした フラグの異常処理追加