unifdef - C プログラムソースの ifdef された行の解決および削除
unifdef [-clt] [-Dname] [-Uname] [-iDname] [-iUname] ... [filename]
unifdef は、ifdef された行があればファイルから削除し、なければそのファイルをそのままにします。これは、C 構文の入れ子になった ifdef、コメント、単一および二重の引用符を処理するのに十分な性能がありますが、マクロを含めたり、解釈したりすることはありません。また、コメントを認識して無視しますが、それを取り除くこともありません。–D オプションで定義したいシンボルを指定し、–U オプションで未定義にしたいシンボルを指定します。これらの ifdef 内部の行は、必要に応じて出力にコピーされるか、削除されます。filename に関連付けられているすべての ifdef、ifndef、else、および endif 行も削除されます。
指定しないシンボルを含む ifdef は変更されず、それに関連付けられた ifdef、else、および endif 行とともにコピー出力されます。
ifdefX が別の ifdefX 内部で入れ子で出現する場合、内部の ifdef は認識できないシンボルであるかのように扱われます。同じシンボルが複数の引数内に出現する場合は、最初のものだけが有効です。
filename 引数が指定されていない場合、unifdef はその出力を標準出力にコピーし、標準入力から入力を受け取ります。
サポートしているオプションは、次のとおりです。
通常の操作を補完します。削除される、または空白にされる行が保持されます。逆の場合も同様です。
「lines removed」行を空白行に置き換えます。
標準テキストオプション。unifdef は、コメント、単一引用符、および二重引用符の認識を試みません。
定義済みシンボルの name に関係付けられた行。
未定義シンボルの name に関連付けられた行。
定義済みシンボルの name に関連付けられた行を無視しますが、出力します。ifdef を使用して、コメントや作成中のコードなど C 言語以外の行を区切る場合、unifdef が内部の引用符やコメントの解析を試みることがないように、その目的で使用するシンボルを伝える必要があります。
未定義シンボルの name に関連付けられた行を無視しますが、出力します。
次の終了ステータスが返されます。
正常終了。
操作が失敗しました。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
不適切な else または endif。