========================================================================
                 GNU Awk 3.0.4 + multi-byte extension 1.14
                  Feb. 21, 2001 by WILLs (okabe katsuyuki)
========================================================================

    gawk-3.0.4+mb1.14 -- マルチバイト文字対応版 Gnu Awk

○概要
    t^2 氏がマルチバイト文字対応化された gawk-2.15.6+mb1.04 を元に 
    gawk-3.0.4 をマルチバイト文字対応化したものです.

○使用法
    gawk からの拡張は基本的に gawk-2.15.6+mb1.04 と同じですが以下のオプ
    ションを追加しています.

        -Wctype=UTF8 または --ctype=UTF8
            マルチバイト文字として UTF8 を認識します. 文字セットは 
            UCS-2(unicode), UCS-4 共に使用できます.

        -Wmemory
            正規表現の DFA 生成を抑制することによりメモリ消費量を節約し
            ます. MSDOS のリアルモード版で頻繁にするようならば djgpp 版
            や WIN32 版を使用するようにした方がよいでしょう.

    起動時のプログラム名によりマルチバイト文字として認識する文字セットのデ
    フォルトを変更します。その規則は以下の通りです.
    
        1. jgawk などプログラム名の先頭が j のとき
           gawk コンパイルに指定した文字セットをマルチバイト文字として認
           識する.
        2. eucgawk などプログラム名の先頭が euc のとき
           マルチバイト文字として EUC を認識する.
        3. sjisgawk などプログラム名の先頭が sjis のとき
           マルチバイト文字として SJIS を認識する.
        4. utf8gawk などプログラム名の先頭が utf8 のとき
           マルチバイト文字として UTF8 を認識する.
        5. 環境変数 GAWKMB_ENABLE が設定されているとき
           gawk コンパイルに指定した文字セットをマルチバイト文字として認
           識する.
        6. 1.〜5. のいづれでもないとき
           マルチバイト文字を認識しない.
    
    その他の拡張については OREADME.MB の「●使用法」を参照してください.

○MSDOS 版実行形式を含むアーカイブについて
    1. アーカイブに含まれているファイル
        オリジナルソースからのファイル
            ANKNOWLEDGMENT              ANKNOWLEDGMENT
            COPYING                     COPYING
            ChangeLog                   ChangeLog
            FUTURES                     FUTURES
            LIMITATIONS                 LIMITATIONS
            NEWS                        NEWS
            POSIX.STD                   POSIX.STD
            PROBLEMS                    PROBLEMS
            README                      README
            README_d/README.FIRST       README_d/README.FIRST
            README_d/README.pc          README_d/README.pc
            awklib/assert.awk           awklib/eg/lib/assert.awk
            awklib/ctime.awk            awklib/eg/lib/ctime.awk
            awklib/ftrans.awk           awklib/eg/lib/ftrans.awk
            awklib/getopt.awk           awklib/eg/lib/getopt.awk
            awklib/gettiem.awk          awklib/eg/lib/gettime.awk
            awklib/join.awk             awklib/eg/lib/join.awk
            awklib/mktime.awk           awklib/eg/lib/mktime.awk
            awklib/nextfile.awk         awklib/eg/lib/nextfile.awk
            awklib/ord.awk              awklib/eg/lib/ord.awk
            awklib/round.awk            awklib/eg/lib/round.awk
            doc/gawk.info               doc/gawk.info

        gawk+mb 用のファイル
            ChangeLog.MB        変更履歴
            README.MB           このファイル
            OChangeLog.MB       gawk-2.15.6+mb1.04 までの変更履歴
            OREADME.MB          gawk-2.15.6+mb1.04 までの README.MB
 
        MSDOS 版 gawk+mb 用のファイル
            doc/gawk.cat        オリジナルソースに含まれているマニュアル
                                ページ doc/gawk.1 を GNU roff でフォーマッ
                                トしたもの.
            doc/igawk.cat       オリジナルソースに含まれているマニュアル
                                ページ doc/igawk.1 を GNU roff でフォー
                                マットしたもの.
            gawk.exe            djgpp 版 gawk-3.0.4+mb1.14 の実行ファイ
                                ル
            gawkr.exe           MSDOS(リアルモード)版 gawk-3.0.4+mb1.14 
                                の実行ファイル
            gawk32.exe          WIN32版 gawk-3.0.4+mb1.14 の実行ファイル
            igawk.exe           igawk 実行ファイル.
            readman.awk         おまけ

    2. gawk.exe, gawkr.exe, gawk32.exe について
        gawk.exe, gawkr.exe, gawk32.exe は, gawk-3.0.4+mb1.14 をそれぞれ
        djgpp-2.01(GNU C 2.8.1), Borland C++ 3.1, Visual C++ 6.0 + SP3に
        てコンパイルしたものです.

        gawk.exe (djgpp 版) のインストールは, そのまま PATH の通ったディ
        レクトリにコピーしてください. ただし gawk.exe を使用するためには
        ご使用のメモリマネージャが DPMI をサポートしている必要があります.

        gawkr.exe (リアルモード版), gawk32.exe(WIN32版) のインストールも
        djgpp 版と同様に PATH の通ったディレクトリにコピーしてください. そ
        の際 djgpp 版を使用しないのであればファイル名を gawk.exe に変更し
        て構いません.

        デフォルトで Shift-JIS 漢字コードを含むプログラムやファイルを処
        理するためにはファイル名を jgawk.exe などに変更して下さい. また、
        オプションにより変更することもできます.

    3. igawk.exe について
        gawk に include 機能を追加するプログラムです. スクリプト中に

            @include FILENAME

        と書くことで環境変数 AWKPATH 内にあるファイル名 ``FILENAME'' の
        ファイルをスクリプト中に取り込むことができます. 環境変数 AWKPATH 
        が設定されていなければその値として ``.;c:/gnu/lib/awk'' が用いら
        れます.
        gawk を子プロセスで呼び出すため gawk を実行できるだけのメモリが
        空いている必要があります.
        PATH が通っていない gawk を使用したいときやファイル名が gawk.exe 
        から変更してある gawk を使用したいときには環境変数 GAWK_PATH に
        使用する gawk のフルパスを設定してください.
        付属する igawk.exe は Borland C 3.1 でコンパイルしたものです. コ
        マンドライン引数の扱いはリアルモード版に準じます.

    4. コマンドライン引数について
        djgpp 版については djgpp の仕様に準じます.

        リアルモード版についてはそれぞれ serow 氏作の xargs.[ch], WIN32版
        では Bruce. 氏対応 xargs32.[ch] を使用することにより次のような拡張
        がなされています.

            - シングルクオート '' で引数を括ることができます.
              ただし >, |, < のような command.com に解釈されてしまうよな
              文字を使用するさいには従来のダブルクオート "" を用いてくだ
              さい.

            - csh-like なワイルドカード展開ができます.

    5. system() について
        serow 氏作の xsystem.c を使用することにより次のような拡張がなさ
        れています.

            - 戻り値が取得できます. ただし, command.com の内部コマンドの
              場合には常に 0 となります. また実行できなかった場合には 
              255 を返します.

            - 出力ハンドルの切り替えができます. [FD1]>&[FD2] のような書
              式によりファイルハンドル FD1 に出力される内容がファイルハ
              ンドル FD2 にリダイレクトされます. 例えば,

                  system("gawk 2>&1")

              とすることで, 通常は標準エラー出力(2)へ出力される gawk の 
              usage が標準出力(1)に出力されます. またこの機能は getline 
              へのパイプにも有効,

                  "gawk 2>&1" | getline

              とすることもできます.
              また標準出力および標準エラー出力は, [FD]>[FILENAME] の書式
              によりファイルハンドル FD に出力される内容がファイル 
              FILENAME に出力されます. [FD]>>[FILENAME] の書式のときには
              ファイルハンドル FD に出力される内容がファイル FILENAME に
              追加されます.

        ただし以上の拡張は環境変数 AWKSHELL, SHELL もしくは COMSPEC に 
        unix の born shell 系シェルが設定してある際には機能せず, そのま
        まシェルを利用します.

    6. 環境変数

        - AWKPATH
            環境変数 AWKPATH がセットされていれば, その値をディレクトリ
            のリストとみなし, -f で指定されたファイルをそのディレクトリ
            から探します. それぞれのディレクトリはコロン `:', セミコロン 
            `;' のどちらで区切っても構いません.

        - LFN
            Windows95 において環境変数 LFN に `N' または `n' 以外の文字
            が設定されているならばロングファイルネームが使用できるように
            なります.
            またリアルモード版では環境変数 XARGS に ``LFN'' を設定するこ
            とでもロングファイルネームが使用できるようになります.

    7. マニュアル
        roff 系のフォーマッタが使えない人のために GNU roff でフォーマッ
        ト済みのマニュアルを用意しました. less などでお読みください. エ
        ディタなどで見る方は, おまけの readman.awk を用い次のようにする
        ことで通常のテキストファイルが得られます.

            A>gawk -f readman.awk gawk.cat >gawk.txt

○インストール(コンパイル)
    1. unix or cygwin32 の場合
        デフォルトのマルチバイト文字の設定は, ./configure 実行時に指定し
        ます. デフォルトは EUC となっていますので, デフォルトを 
        Shift-JIS, ASCII に変更するには ./configure 実行時のオプションに
        それぞれ --enable-SJIS, --enable-ASCII を加えてください.

        例)
            ./configure --enable-SJIS   (デフォルトで Shift-JIS の場合)
            ./configure --enable-ASCII  (デフォルトで ASCII の場合)

        インストールに関するその他の事項は INSTALL を参照してください.

    2. MSDOS or OS/2 の場合
        ディレクトリ pc にあるファイルをこのディレクトリにコピーし, 必要
        があれば Makefile を編集し, make でコンパイル, make install でイ
        ンストールして下さい.

        Makefile 中にある prefix の定義は gawk をインストールするディレ
        クトリに影響します. 例えば prefix の値が a:/gnu に設定されている
        ときには gawk.exe は a:/gnu/bin にインストールされます. また 
        gawk のライブラリは a:/gnu/lib/awk にインストールされます.

        make をする際には使用するＯＳやコンパイラによってターゲットを与
        える必要があります. ターゲットには以下のものが用意されています.

            ターゲット  使用ＯＳ        コンパイラ
            djgpp       MSDOS           DJGPP v2
            djgppv1     MSDOS           DJGPP v1
            emx         OS/2            emx/gcc
            emxnt       Win32           emx/gcc
            emxbnd      OS/2 and MSDOS  emx/gcc
            msc         MSDOS           Microsoft C 7 & 8
            msc6        MSDOS           Microsoft C 6.00a
            msc6os2     OS/2            Microsoft C 6.00a
            msc6bnd     OS/2 and MSDOS  Microsoft C 6.00a
            vcWin32     Win32           Microsoft Visual C
            bcc31       MSDOS           Borland C 3.1

        当方では djgpp, vcWin32, bcc31 でコンパイルできることを確認してい
        ます. その際に使用した make はそれぞれ GNU make 3.76.1 for DJGPP 
        V2, cygwin32 β19 CDK の GNU make, GNUish make 3.71 です.

        例) Borland C 3.1 でコンパイルする場合
            A>copy pc/*.* .
            A>make bcc31

    3. HUMAN68K の場合
        autoconf や configure が実行できる環境が整っていないとインストー
        ルできません. 環境が整っている場合は最初に autoconf で HUMAN68K 
        用の configure を作成し unix でのインストール方に従ってください.

○バグなどその他
    OREADME.MB を参照してください.

○条件
    1. オリジナルの GNU awk の著作権は Free Software Foundation, Inc. が
       有しています. パッチ部分の著作権は私 (WILLs) が有しています. ただ
       し gawk-2.15.6+mb1.04 から引き継いでいる部分に関しては t^2 が著作
       権を有しています.

    2. GNU awk のソースコードは各所の ftp サイトから入手可能です.

    3. パッチファイルの再配布は自由です. これに関しては FSF の規定に従う
       必要はありません. しかし差分を適用した結果のソースコード, および
       実行形式での再配布の際は GNU GENERAL PUBLIC LICENSE (COPYING 参照)
       に従ってください.

       gawk+mb に何らかの改変を加えたものを再配布する際も, GNU GENERAL
       PUBLIC LICENSE に従うようにしてください. また gawk+mb に含まれる
       コード (dfa.[ch] や regex.[ch] など) を利用したプログラムを配布す
       る際も GNU GENERAL PUBLIC LICENSE の該当部分に従ってください.

    4. このプログラムは無保証です.

    5. この gawk+mb に何らかの不具合いが発生した場合, 私に連絡をしてくだ
       さい.

○謝辞
    原作者および FSF に感謝します.

    gawk+mb の原作者 t^2 氏に感謝します.

    このドキュメント(README.MB) は, OREADME.MB を参考にさせていただきま
    した.

    MSDOS 版には serow 氏作 xargs.[ch] を使用させていただきました.
    WIN32 版には Bruce. 氏対応 xargs32.[ch] を使用させていただきました.
    djgpp 版, MSDOS 版, WIN32 版には serow 氏作 xsystem.c を使用させていた
    だきました.

    MSDOS リアルモード版における Windows95 ロングファイルネームの対応に
    は, Bruce. 氏作 mawk for MBCS のソースを参考にさせていただきました.

    優れたソウトウェアを開発し, そのソースコードを公開してくださっている
    多くの方々に感謝します.

○連絡先
    e-mail: hgc02147@nifty.ne.jp

                                           ういるす / WILLs / 岡部　勝幸

# Local variables:
# mode: indented-text
# indent-tabs-mode: nil
# tab-stop-list: (4 8 16 24 32 40 48 56 64 72 80)
# left-margin: 4
# fill-column: 72
# fill-prefix: "    "
# version-control: never
# End:
