通常の入力が終りになるまで、テキストを`保存(save)'しておくことができます。
保存されたテキストは通常の入力が終った段階でm4
に再び読み込まれます。
通常この機能は一時ファイルの削除など正常終了前に行うクリーンアップ動作を
開始するために使われます。
入力テキストを保存するためには組み込みマクロm4wrap
を使います。
m4wrap(string, ...)
stringと残りの引数は入力が終端に達したときに再び読み込まれるように 安全な場所に保存されます。
define(`cleanup', `This is the `cleanup' actions. ') ⇒ m4wrap(`cleanup') ⇒ This is the first and last normal input line. ⇒This is the first and last normal input line. ^D ⇒This is the cleanup actions.
保存されている入力は通常の入力が終端に達したときだけ再び読み込まれます。
m4
を終了するためにm4exit
が使われたときは再読み込みは行われません。
保存されたテキストの中でm4wrap
を呼びだしても差し支えありませんが、
そのとき保存されたテキストが再読み込みされる順番は決まっていません。
m4wrap
が再帰的に使われていない場合、
保存された各テキストはそれぞれが保存されたのと逆の順番(LIFO—last in, first out)で再読み込みが行われます。