* clinearg に関する諸々の事々
*
*       document from Aug.14,1999       by d'm.

================================================================
◎コンパイル
----------------
○必要な環境
        ・GCC, HAS, HLK
        ・GNU make
        ・libc

○必要なファイル
        ・clinearg.c, clinearg.h, clinearg.mak
        ・拙作ライブラリ/ヘッダ:
                comtype.h
                easymac.h
                dummyc.a, dummyc.h
                hufilec.a, hufilec.h

----------------
○オブジェクトファイル (clinearg.o) の作成

 コマンドラインから次のように実行します。
        > make -f clinearg.mak

 より明示的にしたい場合は、
        > make -f clinearg.mak clinearg.o

----------------
○エラーメッセージ表示オブジェクトファイル (clargmes.o) の作成

 コマンドラインから次のように実行します。
        > make -f clinearg.mak clargmes.o

----------------
○テスト実行ファイル (clinearg.x) の作成

 コマンドラインから次のように実行します。
        > make -f clinearg.mak clinearg.x

----------------
○ clinearg.o を含む実行ファイルの作成の注意点

・拙作のライブラリ dummyc.a, hufilec.a が必要です。必ずリンクして
ください。
 この2つのライブラリは、このソースパッケージに同梱されているはず
です。


================================================================
◎大域関数仕様
----------------------------------------------------------------
char *get_cmdline_arg(char ***argvp)

内容:   コマンドライン引数を一つ取得します。
引数:   argvp   - コマンドライン引数テーブルアドレス格納変数アドレス
返値:   コマンドライン引数アドレス
        既に最後まで取得した後に、さらに取得しようとすると NULL を返す
        (*argvp)        - 次に参照するコマンドライン引数テーブルアドレス

使用例)
        int main(int argc, char **argv)
        {
                        :
                /* NULL に出会うまでループ */
                while ((argp = get_cmdline_arg(&argv)) != NULL) {
                        /* コマンドライン処理 */
                }
                        :
        }

        ※もうちょっと具体的な例が、clinearg.c の main() 関数にあります
        ので、ご参照ください。

================================================================
◎コンパイル時のマクロ定義
----------------------------------------------------------------

TEST_MAIN_DEFINE        (定義されているかだけが問題で、定義内容は無関係)

         定義されていると、動作確認用の main() がコンパイルされ、単独の
        実行プログラムが作成できるようになります。
         また、自動的にエラーメッセージ表示マクロ INDIRECT_MES_PRINT
        も定義されます。


INDIRECT_ARG_ALLOCATE   (定義されているかだけが問題で、定義内容は無関係)

         定義されていると、ファイルから取り込んだコマンドライン引数を
        別途確保したメモリに格納するようになります。
         ただし、定義した場合に正しく処理されるかは確認していません。

         定義されていない場合、ファイルから取り込んだ引数は static
        配列に格納されます。


INDIRECT_MES_PRINT      (定義されているかだけが問題で、定義内容は無関係)

         定義されていると、インダイレクトファイルアクセス中にエラーが発生
        した場合に、エラーメッセージを表示するようになります。

         main() 定義マクロ TEST_MAIN_DEFINE が定義されていると、自動的に
        このマクロも定義されます。


CLINEARG_INDIRECT_FILE_OPT_STR  (文字列を指定)

         インダイレクトファイルオプション文字列を指定します。
         デフォルトは "-+-+-" で、この場合
                        > foo.x -+-+-indirect
        のようにして使用することになります。

         ちなみに、オプション文字列とファイル名の間にスペースを入れて
                        > foo.x -+-+- indirect
        のように指定することはできません。


CLINEARG_INDIRECT_FILE_CMNT_CHRS        (文字列を指定)

         インダイレクトファイル中のコメント行開始文字を、文字列として
        指定します。
         ファイルから読み込んだ1行の『行頭』に、この文字列中のどれか
        1文字があった場合、その行はコメント行となり、無視します。

         デフォルトは "#;" で、この場合 '#' または ';' がコメント開始文字
        となります。
                例)     # これもコメント行
                        ; これもコメント行
                        ; この次↓からはコメントじゃない
                        -cfoo
                        -b
                        barbaz.qux

================================================================
[EOF]