.\" @(MHWARNING) .\" written by MH-plus project .SC MH-HACK 8 .NA mh-hack \- MH をハックする方法 .SY big hack attack .DE これは、\fIMH\fR システムをどのように変更できるかを書いたものです。 \fIMH\fR は非常に複雑な相互関係があるので、コードに手を加える前に、 これを読んで何がどうなるかを理解すべきでしょう。 .in +.5i .ti -.5i 新しいプログラムの追加 .br 例えば、\*(lqpickle\*(rq という新しい \fIMH\fR command を作りたいとします。 まず最初に、\fBuip/\fR ディレクトリに \*(lqpickle.c\*(rq を作り、編集します。 次に、\fBconf/makefiles/uip\fR を \*(lqpickle\*(rq が含まれるように編集します。 どのように修正すれば良いかについて、このファイル内に指示があります。 次に、ドキュメントを更新します(詳細は下に)。 この時点で、 \fIMH\fR の再コンフィグが出来ます。 どのようにやるかの説明については、\fImh\-gen(8)\fR を参照して下さい (基本的に、 \*(lqmhconfig MH\*(rq することになるでしょう)。 .ti -.5i 新しいサブルーチンの追加 .br 例えば、\*(lqpickle\*(rq という新しい \fIMH\fR ルーチンを作りたいとします。 まず最初に、\fBsbr/\fR ディレクトリに \*(lqpickle.c\*(rq を作り、編集します。 次に、 \fBconf/makefiles/sbr\fR が \*(lqpickle\*(rq を含むように編集します。 どのように修正すれば良いかについて、このファイル内に指示があります。 \*(lqpickle ();\*(rq の定義のために、\fBconfig/mh.h\fR を修正しなくては なりません。また同様に \fIlint\fR のために、\fBsbr/llib\-lsbr\fR を修正 しなくてはなりません。 この時点で、 \fIMH\fR の再コンフィグが出来ます。 .ti -.5i ドキュメントの更新 .br \fBconf/doc/\fR の中の希望するファイルを編集して下さい。 新しいプログラムを文書化する時、例えば \*(lqpickle\*(rq であるとすると、 \*(lqpickle.rf\*(rq という名前でマニュアルページを作成しなくてはなりません。 \fBconf/doc/template\fR というファイルは、マニュアルページのテンプレートです。 新しいプログラムを文書化しているなら、他の三つのファイルも更新すべきです: \fBconf/doc/mh.rf\fR というファイルが、\*(lqpickle.rf\*(rq から \*(lq\&.NA\*(rq セクションを含むように修正すべきです。 \fBconf/doc/mh\-chart.rf\fR というファイルが、\*(lqpickle.rf\*(rq から \*(lq\&.SY\*(rq セクションを含むように修正すべきです。 最後に、 \fBconf/doc/MH.rf\fR ファイルが、\*(lq\&.so pickle.me\*(rq を 含むように修正するべきです。 もちろん、実際に \fImhconfig\fR を走らせるまでは、コンフィグレーション中の どのような変更も反映されません。 .in -.5i .Fi 言及すべきことが多過ぎます。本当。 .Sa mh\-gen(8) .Bu ハッキングはアートです。 でも多くのプログラマーはヘボで、アーチストではありません。 .En