プログラミングユーティリティ

出力の分割

処理中に、m4 の出力を一時ファイルにすることができます。収集されたデータはコマンドで出力できます。m4 は、出力を 1 番から 9 番の 9 つに分割することができます。組み込みマクロ divert(n) を使用した場合には、後続の出力はすべて n で参照される 1 つの一時ファイルに追加されます。このファイルへの出力を停止するには、divert() マクロまたは divert(0) マクロを使用します。これによって、通常の出力プロセスが再開されます。

分割された出力テキストは、通常は処理の終わりに番号順に配置されます。新しい分割出力を現在の出力の後に追加することによって、いつでも分割出力を元に戻すことができます。0 〜 9 以外の番号で分割された出力は、破棄されます。組み込みマクロ undivert() は、すべての分割出力を番号順に元に戻します。undivert()に引数を指定すると、指定された分割出力を指定された順に元に戻します。引数なしで undivert() を使用すると、(divert() の場合と同様に) 分割された出力テキストは 0 〜 9 以外の番号が付けられ破棄されます。

undivert() の値は、分割された出力テキストではありません。また、分割出力されたマクロのデータは、再度読み取られません。組み込みマクロ divnum() は、現在アクティブな分割出力の番号を返します。通常の出力方法で処理を行なっている場合、divnum() の値は 0 です。