Next: , Previous: Input Control, Up: Input Control


7.1 入力中の空白(whitespace)を削除する

組み込みマクロdnlは最初の改行文字までにある文字をすべて読み込んでから 改行文字も含めてそれらを捨てます。

     dnl

次の例のようにdefineの呼び出しの後に続く改行を取り除くために、 defineと一緒によく使います。

     define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
     foo
     Macro foo.

コメントの扱かわれ方とは対照的に(see Comments)、 次の改行までの入力が改行を含めて捨てられます。

通常dnlの後ろには、行末もしくはその他の空白(whitespace)が続きます。 GNU m4dnlに続いて開きカッコがあるとき、 それを警告する診断メッセージを出します。 この場合dnlは閉じカッコを探しながら、引数をすべて集めて処理します。 この引数の収集に起因する副作用はすべて発生します。 このときdnlは何も出力せず、閉じカッコのあとに続く次の改行までの入力は、 それがどの行にあっても、改行を含めてやはり捨てられます。