INDENT(1)

名称
indent - C 言語のプログラムに字下げと整形を施す

書式
indent [input-file [output-file]] [-bad | -nbad] [-bap | -nbap] [-bbb | -nbbb] [-bc | -nbc] [-bl] [-br] [-cn] [-cdn] [-cdb | -ncdb] [-ce | -nce] [-cin] [-clin] [-dn] [-din] [-fc1 | -nfc1] [-in] [-ip | -nip] [-ln] [-lcn] [-lp | -nlp] [-npro] [-pcs | -npcs] [-psl | -npsl] [-sc | -nsc] [-sob | -nsob] [-st] [-troff] [-v | -nv]

解説
indent は、 input-file で指定された、C のプログラムの整形を行い、 output_file に書き出すプログラムです。オプションの指定により、各種のフォーマットに 整形できます。もし、 output_file を指定しなかった場合、整形した結果は、 input_file に書き戻されます。元の input_file の内容は、カレントディレクトリに、元のファイル名に ``.BAK'' を付けた名前で コピーされます。

例えば、 input_file に、 ‘/blah/blah/file’ を指定した場合、整形した結果は、 ‘/blah/blah/file.c’ に書き込まれ、元の内容は、 file.BAK にコピーされます。

整形スタイルを制御するオプションは以下のものがあります。なお、 オプションスイッチをスペースかタブか改行で並べた ‘./.indent.pro’ というファイルをログインディレクトリもしくはカレントディレクトリに 置いておくことで、 indent のデフォルト動作を変更することができます。異なる設定があった場合 は、カラントディレクトリの内容が優先します。また、コマンドラインの オプションスイッチが指定された場合は、これが優先します。

-bad, -nbad
    -bad で、宣言の各ブロックの後に、空行を 1 行入れます。 デフォルトは、 -nbad で、空行を入れません。

-bap, -nbap
    -bap で、各手続きの本体の後に、空行を 1 行入れます。 デフォルトは、 -nbap で、空行を入れません。

-bbb, -nbbb
    -bbb で、コメントブロックの前に、空行を 1 行入れます。 デフォルトは、 -nbbb で、空行を入れません。

-bc, -nbc
    -bc で、宣言の中のコンマ毎に、改行を入れます。 -nbc で、これを抑止します。 デフォルトは -bc です。

-br, -bl
    ``{}''を使った複合文の書き方を指定します。 -bl で、次のようになります。

        if (...)
        {
          code
        }

    -br では、次のようになります。

        if (...) {
          code
        }

    デフォルトは、 -br です。

-cn プログラムのコードの右側に書かれたコメントに関して、桁位置を n で指定した位置に揃えます。デフォルトでは、 33 桁目に揃えられます。

-cdn
    プログラムの宣言の右側に書かれたコメントに関して、桁位置を n で指定した位置に揃えます。デフォルトは、 -c と同じ値になります。

-cdb, -ncdb
    複数行に渡る長いコメントについて書き方を指定します。 -cdb で、次のようになります。

        	/*
        	 * this is a comment
        	 */

    -ncdb では、次のようになります。

        	/* this is a comment */

    デフォルトは、 -cdb です。

-ce, -nce
    -ce で、 ``} else'' のように、直前の ``}'' に寄せて ``else'' を書きます。 -nce は、寄せません。デフォルトは、 -ce です。

-cin
    継続行の字下げを n で指定します。 デフォルトは、 -i と同じ値になります。

-clin
    case で使うラベルの字下げを、switch 文の字下げ位置から、 n で指定するタブストップで指定します。 -cli0 -.5 なら、タブストップの半分になります。 デフォルトは、 -cli0 です。

-dn コードの右側に書かれたものでない、独立したコメントに関して、 その場所を制御します。 デフォルトは、 -d0 で、コードの字下げのレベルに合わせます。 -d1 を指定した場合は、コードの字下げより 1 段左側にします。

-din
    宣言部から、それに続いて書かれているコード部分までの字下げ量を n で指定した文字数にします。デフォルトは 16 文字です。

-dj, -ndj
    -dj で、宣言を、左側に寄せます。 デフォルトは、 -ndj で、コードと同じ字下げを行います。

-ei, -nei
    -ei で、else の直後に if が来る場合、else if と みなして、最初の if 文と同じ字下げ量にします。 -nei では、特別な処理はしません。 デフォルトは、 -ei です。

-fc1, -nfc1
    -fc1 で、1 桁目からコメントが始まっている場合も整形します。 コメントが 1 桁目から始まっている場合、プログラマの 意図でコメントが書かれている場合がしばしばあるので、この場合は、 -nfc1 により、整形をしないようにします。 デフォルトは、 -fc1 です。

-in 1 段の字下げ量を n で指定します。デフォルトは 4 です。

-ip, -nip
    -ip で、パラメータ宣言の字下げを指定します。 -nip では、パラメータの字下げをしません。 デフォルトは、 -ip です。

-ln 出力行の最大幅を n で指定します。デフォルトは 75 文字です。

-lp, -nlp
    括弧内の継続行についての処理を指定します。 -nlp では、次のようになります。

        p1 = first_procedure(second_procedure(p2, p3),
          third_procedure(p4,p5));

    -lp で、次のようになります。

        p1 = first_procedure(second_procedure(p2, p3),
                             third_procedure(p4,p5));

    デフォルトは、 -lp です。

-npro
    字下げのプロファイルを指定したファイル、 ‘./.indent.pro’ および ‘~/.indent.pro’ を無視します。

-pcs, -npcs
    -pcs で、関数名と括弧の間に空白を 1 つ入れます。 デフォルトは、 -npcs で、空白を入れません。

-psl, -npsl
    -psl で、関数定義の関数名を、1 桁目に置くようにします。 デフォルトは、 -psl です。

-sc, -nsc
    -sc で、全てのコメントの左端に、`*' を置きます。

-sob, -nsob
    -sob で、不要な空白行を取り除く デフォルトは、 -nsob です。

-st 標準入力から読み込み、整形結果を標準出力に出力するようにします。

-Ttypename
    indent が認識するタイプのキーワードに、 typename を追加し ます。このオプションは何度でも使用でき、 typedef で定義したタイプを指定するのに使えます。もっとも、これを完全に指定 しなくても、うまく整形されるでしょう。

-troff
    troff(1) で処理できるフォーマットにします。本オプションを指定した場合は、 output_file が指定されてなくても、 input_file に書き戻す事はせず、標準出力に結果を出力します。

-v, -nv
    -v で、 `verbose' モードを指定します。`verbose' モード では、入力の 1 行が、整形結果、2 行以上に分割される場合、 その旨を表示するようになります。 デフォルトは、 -nv です。

環境変数

HOME
    ホームディレクトリを調べるために、使用します。

関連ファイル
./.indent.pro
    デフォルト設定を指定するファイルです。
~/.indent.pro
    デフォルト設定を指定するファイルです。

歴史
indent コマンドは 4.2BSD から登場しました。

バグ
indent は、 ls(1) 以上に多くのオプションスイッチを持っています。

カレントディレクトリの全ての C のプログラムにインデントを行おうとして、

    indent *.c

としても、期待した動作にはなりません。