Previous: Changeword, Up: Input Control


7.5 入力の保存(save)

通常の入力が終りになるまで、テキストを`保存(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)で再読み込みが行われます。