unifdef(1) FreeBSD 一般コマンドマニュアル

unifdef

前のページ 上に戻る 次のページ

unifdef




解説

     unifdef はファイルから #ifdef された行を削除する場合に用いられます。
     unifdef は #ifdef, #ifndef, #else, #endif 行を解釈します。 unifdef にはコ
     メント、クォート(シングルクォートとダブルクォート)で無効になるこれらのプ
     リプロセッサマクロを判断するために必要な最小限の C 言語の知識しかありませ
     ん。クォートの解析は非常に単純です。クォートに遭遇すると (エスケープされ
     たクォートを除いて) 対応するクォートが出現するまでの部分を全て無視しま
     す。途中でエスケープされていない改行が存在しても警告はしません。


オプション

     -Dsym
     -Usym   指定したシンボルを定義する、または未定義にすることを指定します。
             シンボルを定義するように指定した場合 ifdef で囲まれたブロックは出
             力され、未定義を指定した場合は削除されます。指定されたシンボル
             sym に対応する ifdef、ifndef、else、endif 行は削除されます。指定
             しなかったシンボルに関する ifdef や if 行は、対応する
             ifdef、else、endif 行とともに、そのまま出力されます。 ifdef X が
             別の ifdef X 中に出現した場合、内側の ifdef は指定しなかったシン
             ボルに関する ifdef と同等に扱われます。同じシンボルを複数指定した
             場合は最後の指定が有効となります。

     -c      unifdef の効果を逆転します。すなわち、通常削除されるべき行を残
             し、残されるべき行を削除します。

     -l      削除される部分を空行で置き換えます。
     -t      C 言語のコメントとクォートの解釈を禁止します。通常のテキストファ
             イル等に unifdef を適用する場合に有用です。

     -iDsym
     -iUsym  無視すべき ifdef を指定します。C 言語コードで、ifdef を C 言語で
             はない部分やコメントや作りかけのコードを区切るために用いている場
             合は、その内部のクォートやコメントを無視するように指示する必要が
             あります。無視すべき ifdef は -Dsym-Usym と同様の方法で指定し
             ます。

     unifdef は標準出力に出力を行い、ファイル名が指定されなかった場合は標準入
     力を使用します。

     unifdef は、4.1 BSD の diff(1)-Dsym オプションとともに使用することが
     できます。


関連項目

     diff(1)


診断

     不適切な else または endif を検出します。
     #ifdef に対応する #endif が現れる前にファイルが終了したとき、その #ifdef
     のある行番号を検出します。
     入力と出力が同一になる場合 0、そうでなければ 1、エラー時には 2 を終了ステ
     ータスとして返します。


ABELNET VPSサービス