Provided by: manpages-ja_0.5.0.0.20080615-1_all bug

indent動
       バージョン 1.3 からは、indent コマンドの書式は 以下のようになっている:

            indent [options] [input-files]

            indent [options] [single-input-file] [-o output-file]

       この書式は古いバージョンや他バージョンの indent と異なる。

       最初の書式では      1      つ以上の入力ファイルを指定する。      indent
       は、各ファイルのバックアップコピーを作成してから、
       オリジナルのファイルをインデント付けしたものに置ご垢┐襦
       バックアップの作り方については、
       襦廛札ションを参照すること。

       2         番目の書式では入力ファイルを        1        つだけ指定する。
       この場合、または標準入力を使う場合には、                           `-o'
       オプションの後に出力ファイルを指定することがでい襦

       indent      に標準出力へ出力させるには     `-st'     オプションを使う。
       これが許されるのは、入力ファイルが          1          つだけの場合か、
       標準入力を使う場合だけである。

       入力ファイルを指定しなければ入力は標準入力から読み込まれる。  また、`-'
       というファイル名が指定された場合にも標準入力が読み込まれる。

       使用例としては、以下のコマンドは  いずれもプログラム   `slithy_toves.c'
       を読み込み、 インデント付けしたテゥ好箸 `slithy_toves.out' に書すむ:

            indent slithy_toves.c -o slithy_toves.out

            indent -st slithy_toves.c > slithy_toves.out

            cat slithy_toves.c | indent -o slithy_toves.out

       indent                                   の他のオプションのほとんどは、
       プログラムをどのように整形するかを制御するためのものである。 バージョン
       1.2    からは、indent    は    各オプション名として長い名前も認識する。
       長いオプションの前には `--' か  `+'  が置かれる。  [POSIX  標準と一貫-
       を持たせるため、       現在は       `+'       を       `--'      に置-
       換えようとしているところである。]
       本ドゥ絅瓮鵐箸梁臧分では、
       簡潔に表現するために伝統的な短い名前を使っている。
       長いオプション名と短いオプション名のリストは、
       廖廚鮖仮箸垢襪海函

       別の使用例を挙げる:

            indent -br test/metabolism.c -l85

       これにより、プログラム `test/metabolism.c' が `-br' オプションと `-l85'
       オプションを用いてインデント付けされ、  その出力が  `test/metabolism.c'
       に重ね書い気譟     元の     `test/metabolism.c'     の内容は    `test'
       ディレクトリにバックアップファイルとして書すまれる。

       この例と同じ指定を長いオプション名を用いて行うと以下のようになる:

            indent --braces-on-if-line --line-length185 test/metabolism.c

            indent +braces-on-if-line +line-length185 test/metabolism.c

       indent  を頻繁に同じオプションで使うならば、   これらを   `.indent.pro'
       というファイルに書いておくとよい。          indent         は         3
       つの場所でプロファイルファイルを探す。   最初に環曲竸   INDENT_PROFILE
       があるかをチェックする。                                       この環-
       変数がある場合、その値を使用するファイルの名前として解釈する。 この環-
       変数がない場合、indent      はカレントディレクトリの      `.indent.pro'
       を探し、もし存在すればこれを使う。 indent  は最後にホームディレクトリの
       `.indent.pro'            を探し、            もし存在すればこれを使う。
       この動作は従来のバージョンや別バージョンの      indent       と異なる。
       これらは、両方のディレクトリに     `.indent.pro'     ファイルがあれば、
       両方とも使用する。

       `.indent.pro'    の書式は、コマンドラインに指定するのと同じく、    空白
       (タブ、スペース、改行)     で区切られた単なるオプションのリストである。
       `.indent.pro' のオプションは、 C または C++  のコメントで囲むことがで-
       る。 コメントで囲んだオプションは無視される。

       コマンドラインオプションが処理されるのは、                `.indent.pro'
       を処理した_indent      が      `.indent.pro'
       ファイルを読み込まないようにすることがでい襦

ル
       バージョン 1.3 からは、GNU indent は  GNU  形式、  すなわち  GNU  Emacs
       と同様の方法でバックアップファイルを作成する。
       つまり、___SIMPLE_BACKUP_SUFFIX    に好い癖源列を設定することにより、
       デフォルト値以外の任意の文字列をサフィックスとして使用でい襦

       ファイル  `momeraths.c'  の番号付ぅ丱奪アップは、   `momeraths.c.~23~'
       のようになる。                                               ここで、23
       はこのファイルのバックアップのバージョンである。               ファイル
       `src/momeraths.c'                         のバックアップを作成するとぁ
       バックアップファイルの名前は    `src/momeraths.c.~V~'    のようになる。
       ここで、V  はディレクトリ  `src'  に現在ある  最も大いぅ弌璽献腑鵑茲 1
       大いた字である。  環曲竸  VERSION_WIDTH  は、  必要に応じて左側に   0
       を追加することにより、数字の桁数を制御する。    例えばこの変数を    "2"
       に設定すると、     バックアップファイルの名前は      `momeraths.c.~04~'
       のようになる。

       どちらの方法でバックアップファイルを作るかは、  環曲竸 VERSION_CONTROL
       で制御する。                   この文字列が                    `simple'
       ならば、単純なバックアップだけが作成される。     この値が    `numbered'
       ならば、番号付ぅ丱奪アップが作成される。 この値が  `numbered-existing'
       ならば、                           インデント付けするファイルの番号付-
       のバックアップが_VERSION_CONTROL
       が設定されていなければ、      indent       は       `numbered-existing'
       が指定されているものとして動作する。

       別バージョンの        indent       は、       サフィックス       `.BAK'
       を使ってバックアップファイルの名前を生成する。
       この動作は、SIMPLE_BACKUP_SUFFIX          に          `.BAK'         を
       設定することによりエミュレートすることがでい襦

       別バージョンの    indent    は、現在の    GNU    indent    が行うように
       ソースファイルがあるディレクトリにバックアップを作成するのではなく、
       カレントディレクトリにバックアップを作成する点にも注意すること。

ル
       C         言語には一般的なスタイルがいくつかある。          例えば、GNU
       スタイル、Kernighan   &   Ritchie   スタイル、   オリジナルの  Berkeley
       スタイル等である。        スタイルは_indent   のデフォルトのスタイルは   GNU
       スタイルである。   したがって、このフォーマットで出力するために  `-gnu'
       オプションを指定する必要はなくなった。
       ただし、このオプションを指定してもエラーにはならない。              GNU
       スタイルに対応するオプション設定は以下である:

            -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
            -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -nprs -psl -saf -sai
            -saw -nsc -nsob

       GNU コーディングスタイルは  GNU  プロジェクトで推奨されている。  これは
       GNU  Emacs の C モードが適用しようとするスタイルであり、 GNU Emacs の C
       で欺劼気譴辛分で使われているスタイルである。                      (GNU
       プロジェクトのためにプログラムを書くことに興味がある方は、        「GNU
       コーディング規約   (The   GNU    Coding    Standards)」を入手されたい。
       この文書では、メモリの使い方や整数のサイズ等、   セマンティックや移植-
       についても説明されている。)

       Kernighan & Ritchie スタイルは楊召塀饑 「プログラミング言語 C  (The  C
       Programming  Language)」で使われている。  これは  `-kr'  オプションで-
       効となる。              Kernighan               &               Ritchie
       スタイルは、以下のオプションの組合せと同等である:

            -nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
            -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
            -nprs -npsl -saf -sai -saw -nsc -nsob -nss

       Kernighan  & Ritchie スタイルでは、コードがある行の右の部分にコメントが
       入れられることはない  (コードの右に空白を  1  つだけ入れることもない)。
       したがって、このスタイルのカラム数       33      というのは      indent
       が勝手に決めたものである:

       オリジナルの    Berkeley    版    indent     のスタイルは、     `-orig'
       (または長いオプション名             `--original')を指定すれば得られる。
       このスタイルは、以下の設定と同じ意味である:

            -nbad -nbap -bbo -bc -br -brs -c33 -cd33 -cdb -ce -ci4 -cli0
            -cp33 -di16 -fc1 -fca -hnl -i4 -ip4 -l75 -lp -npcs -nprs -psl
            -saf -sai -saw -sc -nsob -nss -ts8

行
       各種プログラミングスタイルごとに、空白は異なる場所に置かれる。
       indentには、特定の場所に空白行を挿入・削除するための
       オプションがたくさんある。

       `-bad'                 オプションを指定すると、                  indent
       は宣言ブロック全ての後に必ず空行を置く。                        `-nbad'
       オプションを指定すると、このような空白行は置かれない。

       `-bap'  オプションを指定すると、手続に楝料瓦討慮紊防ず空行が置かれる。
       `-nbap' オプションを指定すると、このような空行は置かれない。

       `-bbb'                                         オプションを指定すると、
       箱形コメント全ての前に必ず空行が置かれる
       (箱形コメントについては函廛札ションを参照すること)。  `-nbbb'
       オプションを指定すると、このような空行は置かれない。

       `-sob'      を指定すると、indent      は省略でい覿行を飲み込んでしまう
       (つまり、入力行に含まれる省略でい覿行が出力から全て削除される)。
       `-nsob'                                                  を指定すると、
       入力行に含まれる空行は出力ファイルにも全てコピーされる。

--blank-lines-after-declarations

       `-bad'   オプションを指定すると、宣言ブロックの後に必ず空行が置かれる。
       `-nbad' オプションを指定すると、このような空行は追加されない。

       例えば、以下の入力を与えると
            char *foo;
            char *bar;
            /* このコメントは宣言のブロックを分けている */
            int baz;

       indent -bad の出力は以下のようになる。

            char *foo;
            char *bar;

            /* このコメントは宣言のブロックを分けている */
            int baz;

       また、indent -nbad の出力は以下のようになる。

            char *foo;
            char *bar;
            /* このコメントは宣言のブロックを分けている */
            int baz;

--blank-lines-after-procedures

       `-bap'
       オプションを指定すると、それぞれの宣言本体の後に必ず空行が置かれる。

       例えば、以下の入力を与えると

            int
            foo ()
            {
              puts("Hi");
            }
            /* この手続 bar には意味はない  */
            char *
            bar ()
            {
              puts("Hello");
            }

       indent -bap の出力は以下となる。

            int
            foo ()
            {
              puts ("Hi");
            }

            /* この手続 bar には意味はない  */
            char *
            bar ()
            {
              puts ("Hello");
            }

       また、indent -nbap の出力は以下となる。

            int
            foo ()
            {
              puts ("Hi");
            }
            /* この手続 bar には意味はない  */
            char *
            bar ()
            {
              puts ("Hello");
            }

       手続 foo の後には空行は追加されない。

ト
       indent   は   C  と  C++  のコメントを整形する。  C  のコメントは  `/*'
       で始まって     `*/'     で終り、      改行文字を含んでもよい。      C++
       のコメントは区切り文字 `//' で始まり改行で終る。

       indent はコメントの文脈によって別々の扱い方をする。 indent は文・宣言・
       プリプロセッサディレクティブが後に続くコメントと
       どのコードの前にも置かれていないコメントを区別する。
       どのコードの前にも置かれていないコメントとは、
       行が開始されるコメントのことである               (カラム              1
       から始まっている必要はない)。

       さらに           indent           は手続い篏弦臑里粒安Δ砲△襯灰瓮鵐箸
       内側にあるコメントを区別する。                               特に手続-
       の内側で行の最初にあるコメントは、
       コードが現在インデントされているカラムにインデントされる。
       最も左側のカラムから始まるコメントは例外であり、
       コメントはそのカラムから出力される。

       indent_indent                                               は箱形のコメントを
       ソースファイルの中に見つかった場所に残しておく。
       よってコメントのインデント付けは変わらず、
       その長さもどちらにしても変わらない。
       別なモードでは、埋め込まれたタブ文字が適切な数の空白に変換されるだけである。

       `-bbb'                                     オプションが指定された場合、
       箱形コメントがコードの前に置かれていないとい蓮
       箱形コメントの後に空行を置く。

       箱形でないコメントは整形される。
       これは、行が右端に合うように折り返され、
       左側は空白で埋められるという意味である。                              1
       つの改行文字は空白と同じであるが、  (1  行に  2 つ以上の改行文字がある)
       空行は                             パラグラフの切れ目として解釈される。
       最初のカラムの後から始まるコメントの整形は、    `-fca'   オプションで-
       効になる。    カラム     1     から始まるコメントを整形するには、`-fc1'
       を指定する。 このような整形は、デフォルトでは無効にされている。

       整形する際の右端は、デフォルトでは       78       であるが、      `-lc'
       オプションで変更でい襦 指定された右端まででコメントが表示でい覆ぞ豺隋
       コメントの終りまで右端が自動的に拡張される。
       コメントが整形されない場合、右端の位置は守られない。

       コメントで行が開始される場合
       (つまり、コメントの左側にプログラムの文字列がない場合)、
       コメントがコードのブロック中になければ、
       そのコメントがあったカラムにインデントされる。
       この場合、(最初のカラムからコメントが開始されていなければ)
       そのブロックのインデントされたコードにコメントの左端を揃える。
       揃える位置は               `-d'                オプションで変更可能で、
       何カラム_#else#endif
       の後のコメントのカラムを指定する。

       コメントの左側にあるコードが最初のカラムから開始されていない場合、
       コードの終りの次のタブストップの位置からコメントカラムが開始される。
       プリプロセッサディレクティブが最初のカラムから開始されていない場合、
       ディレクティブの終りの    1    カラム後からコメントカラムが開始される。
       この拡張はこのような特定のカラムの出力に対してのみ適応される。

       `-cdb'  オプションを指定すると、コメント区切り文字を空行に置く。 よって
       /* Loving hug */ のような 1 行のコメントは、 以下のように変換される。

            /*
               Loving hug
             */

       `-sc'     オプションを指定すると、      複数行コメントの始めに      `*'
       を置くことがでい襦   上気   1   行のコメントは  (`-cdb  -sc'  により)
       以下のように変換される。

            /*
             * Loving hug
             */

文
       `-br'                           または                            `-bl'
       オプションは、ブレースをどのように整形するかを指定する。

       `-br' オプションを指定するとブレースは以下のように整形される:

            if (x > 0) {
              x--;
            }

       `-bl' オプションを指定するとブレースは以下のように整形される:

            if (x > 0)
              {
                x--;
              }

       `-bl'    オプションを使う場合には    `-bli'    オプションも使うとよい。
       このオプションはブレースのインデント付けに使う空白の数を指定する。
       `-bli2'    (デフォルト値)を指定すると、先に示した結果となる。   `-bli0'
       を指定した場合の結果は以下である:

            if (x > 0)
            {
              x--;
            }

       `-br'   オプションを使う場合には、多分   `-ce'   も使いたくなるだろう。
       このオプションは  if-then-else  構文の  else  を直前の `}' に隣に置く。
       例えば `-br -ce' を指定すると、出力は以下のようになる:

            if (x > 0) {
              x--;
            } else {
              fprintf (stderr, "...something wrong?\n");
            }

       同じコードで `-br -nce' を指定すると以下のようになる:

            if (x > 0) {
              x--;
            }
            else {
              fprintf (stderr, "...something wrong?\n");
            }

       これにより do-while ループの while  は直前の  `}'  と同じ行に置かれる。
       例えば `-cdw' により以下のような出力が得られる。

            do {
              x--;
            } while (x);

       同じコードで `-ncdw' を指定すると以下のようになる:

            do {
              x--;
            }
            while (x);

       `-cli'      オプションは、case     構文のラベルを     switch     文から
       右にインデントする際に空白をいくつ入れるかを指定する。

       デフォルトでは以下のようなコードが得られる。

            switch (i)
              {
              case 0:
                break;
              case 1:
                {
                  ++i;
                }
              default:
                break;
              }

       `-cli2' を使うと以下のようになる。

            switch (i)
              {
                case 0:
                  break;
                case 1:
                  {
                    ++i;
                  }
                default:
                  break;
              }

       case 文の後のブレースのインデントは、  `-cbin'  オプションで制御でい襦
       例えば `-cli2 -cbi0' を使うと次のような結果になる。

            switch (i)
              {
                case 0:
                  break;
                case 1:
                {
                  ++i;
                }
                default:
                  break;
              }

       セミコロンが    for    または    while   文と同じ行にある場合に   `-ss'
       を指定すると、空白がセミコロンの前に置かれる。
       これによりセミコロンが強調され、          forwhile
       文の本体が空の文であることがはっい蠅垢襦                        `-nss'
       を指定すると、この機能は無効になる。

       `-pcs'       オプションを指定すると、呼び出される手続い量樵阿      `('
       の間に空白が置かれる   (例えば、puts ("Hi");   となる。   また、`-npcs'
       オプションを指定している場合には puts("Hi");) となる。)

       `-cs' オプションを指定すると、 indent はゥ礇好髪藥算劼慮紊剖白を置く。

       `-bs'    オプションを指定すると、    ァ璽錙璽    sizeof     とその引-
       数の間に必ず空白が置かれる。      バージョンによっては、     この機能は
       `Bill_Shannon' オプションとして知られている。

       `-saf'     オプションは     for      とその後の括弧の間に空白を入れる。
       これがデフォルトである。

       `-sai'      オプションは      if     とその後の括弧の間に空白を入れる。
       これがデフォルトである。

       `-saw'    オプションは     while     とその後の括弧の間に空白を入れる。
       これがデフォルトである。

       `-prs'       オプションは全ての括弧とその間にあるものの間に空白を置く。
       例えば `-prs' を使うと以下のようなコードになる。

              while ( ( e_code - s_code ) < ( dec_ind - 1 ) )
                {
                  set_buf_break ( bb_dec_ind );
                  *e_code++ = ' ';
                }

言
       デフォルトでは、indent       は       `-di'        オプションで指定した
       カラムで識別子を揃える。 例えば、`-di16' を指定すると以下のようになる:

            int             foo;
            char           *bar;

       `-di'     オプションに小さい値     (1    や    2    など)    を使うと、
       置くことが可能な最初の場所に識別子を置くことがでい襦 例を以下に示す:

            int foo;
            char *bar;

       この場合でも、`-di'                            オプションに指定した値は
       型指定と異なる行に置いた変数には影響を与える。           例えば、`-di2'
       を指定すると以下のようになる:

            int
              foo;

       `-bc'      オプションを指定すると、宣言中のコンマの後に改行が置かれる。
       例を以下に示す:

            int a,
              b,
              c;

       同じコードで `-nbc' オプションを指定した場合は以下のようになる:

            int a, b, c;

       `-bfda'             オプションを指定すると、             関数宣言の引-
       数のコンマの後で改行を入れる。          引た瑤牢愎宣言より           1
       段深くインデントされる。    これは引た瑤離螢好箸長い場合に特に役立つ。
       `-bfde' オプションを指定すると、 関数宣言の閉括弧の前に改行を入れる。 2
       つのオプションとも 'n' を設定した -nbdfa と -nbdfe がデフォルトになる。

       例えば、

            void foo (int arg1, char arg2, int *arg3, long arg4, char arg5);

       は、`-bfda' オプションを指定すると次のようになり、

            void foo (
                int arg1,
                char arg2,
                int *arg3,
                long arg4,
                char arg5);

       更に `-bfde' オプションを指定すると次のようになる。

            void foo (
                int arg1,
                char arg2,
                int *arg3,
                long arg4,
                char arg5
                );

       `-psl'       オプションを指定すると、       定義される手続い侶燭麓蠡海-
       の名前の前の行に置かれる。  このスタイルは、etags プログラムや Emacs の
       c-mode の 一部の機能を正しく動作させるために必要である。

       プログラム中で      typedef      で定義された型の名前を全て、      `-T'
       オプションを使って       indent      に教えなければならない。      `-T'
       は複数個指定することがでぁ∋慊蠅気譴秦瓦討量樵阿鮖箸Δ海箸でい襦
       例えば、プログラムに

            typedef unsigned long CODE_ADDR;
            typedef enum {red, blue, green} COLOR;

       という欺劼ある場合には、    オプション   `-T   CODE_ADDR   -T   COLOR'
       を使うことになるだろう。

       `-brs'      や      `-bls'       オプションは       struct       宣言の
       ブレースをどのように整形するかを指定する。                       `-brs'
       オプションはブレースを次のように整形する。

            struct foo {
              int x;
            };

       `-bls' オプションはブレースを次のように整形する。

            struct foo
            {
              int x;
            };

け
       コードを整形する時の問題の                   1                   つは、
       各行をどれだけ左端からインデントさせるかである。      iffor
       等の文の先頭部分があると、           インデントの深さは            `-i'
       オプションで指定した値だけ増える。        例えば、レベルごとに        8
       文字分のインデントさせるには      `-i8'      を使う。      文が       2
       行に折り返されている場合、           2           行目は           `-ci'
       オプションで指定した追加のスペース分だけインデントされる。        `-ci'
       のデフォルト値は           0           である。           しかし、`-lp'
       オプションが指定されており、かつ同じ行で閉じられていない
       左括弧がある場合、その続-
       の行が始まる文字は左括弧の直後の位置に揃えられる。    この処理は    `['
       および初期化リストに現われる  `{'  にも適用される。 例えば、`-nlp -ci3'
       が邑になっていると、 行をまたがるコードは以下のようになる:

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

       `-lp' を邑にすると、コードはいくらか見やすくなる:

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

       文が      2      つ以上の括弧の組      (...)       にわかれている場合、
       追加された括弧の組ごとに 1 段深くインデントされる。

            if ((((i < 2 &&
                    k > 0) || p == 0) &&
                q == 1) ||
              n = 0)

       オプション    `-ipN'   は、括弧ごとの追加オフセットを設定するのに使う。
       例えば `-ip0' は上気離魁璽匹鮗,里茲Δ棒扱舛垢襦

            if ((((i < 2 &&
              k > 0) || p == 0) &&
              q == 1) ||
              n = 0)

       indent                           はタブが入力と出力のストリームの両方で
       一定の間隔で置かれることを想定している。   この間隔はデフォルトでは   8
       カラム幅であるが、      (バージョン       1.2       からは)       `-ts'
       オプションで変更することがでい襦 タブは複数個の空白と同じ意味である。

       古い形式の関数定義における型宣言のインデント付けは、              `-ip'
       パラメータで制御することがでい襦
       これは、型宣言では空白何個分のインデントを行うかを
       指定する数値パラメータである。        例えばデフォルトの         `-ip5'
       では、定義は以下のように整形される:

            char *
            create_world (x, y, scale)
                 int x;
                 int y;
                 float scale;
            {
              . . .
            }

       他のバージョンの    indent    との互換世里燭瓩    オプション    `-nip'
       が用意されている。 これは `-ip0' と同じである。

       ANSI C  ではプリプロセッサコマンドラインの文字  `#'  とコマンド名の間に
       空白を入れることが許可されている。         デフォルトでは        indent
       はこの空白を削除するが、   `-lps'   オプションを指定することで   indent
       にこの空白を変更しないように指示でい襦  オプション  `-ppi' は  `-nlps'
       と  `-lps' を上書い垢襦

       このオプションにより、
       プリプロセッサ条件文を指定された空白数でインデントでい襦
       例えばオプション `-ppi 3' は

            #if X
            #if Y
            #define Z 1
            #else
            #define Z 0
            #endif
            #endif
       を次のように整形する。
            #if X
            #   if Y
            #      define Z 1
            #   else
            #      define Z 0
            #   endif
            #endif

し
       オプション     `-ln'     または     `--line-lengthn'     により、     C
       言語コードの行の最大長を指定することがでい襦
       ただしコードの後のコメントは含まない。

       指定された行の長さより長い場合、               GNU               indent
       は行を論理的な位置で折り返す。  これはバージョン 2.1 の新機能であるが、
       まだそれほど犬はなく柔軟でもない。

       どこで行を折り返すかを決定するアルゴリズムに干渉するためのオプションが、
       現在のところ 2 つある。

       `-bbo'  オプションを指定すると、GNU  indent は 長い行をブーリアン演算子
       &&|| の前で折り返す。 `-nbbo' オプションを指定すると、GNU indent は
       長い行をブーリアン演算子の前で折り返さない。 例えば、(`--line-length60'
       と    `--ignore-newlines'と一緒に)    デフォルトのオプション     `-bbo'
       を指定することにより、 コードは以下のようになる。

              if (mask
                  && ((mask[0] == '\0')
                      || (mask[1] == '\0'
                          && ((mask[0] == '0') || (mask[0] == '*')))))

       オプション `-nbbo' を使うと、次のようになる。

              if (mask &&
                  ((mask[0] == '\0') ||
                   (mask[1] == '\0' &&
                    ((mask[0] == '0') || (mask[0] == '*')))))

       しかしデフォルトの  `-hnl'  では、 入力ファイルにおける改行を重視して、
       そこで改行するように可能な限りの優先度を与える。
       例えば入力ファイルが以下のような場合、

              if (mask
                  && ((mask[0] == '\0')
                  || (mask[1] == '\0' && ((mask[0] == '0') || (mask[0] == '*')))))

       オプション  `-hnl'  または  `--honour-newlines'  を  上述の  `-nbbo' と
       `--line-length60'  と一緒に使うと、  前の例で示したような出力ではなく、
       入力ファイルのコードで改行されている位置でなるべく折り返される。

              if (mask
                  && ((mask[0] == '\0')
                      || (mask[1] == '\0' &&
                          ((mask[0] == '0') || (mask[0] == '*')))))

       このオプションの背景となる考え方は、   既に折り返されている長すぎる行は
       GNU  indent  で変更しないというものである。  しかし本当に汚いコードは、
       少なくとも   1   回は   `--ignore-newlines'  オプションを付けて  indent
       に通しておくべい任△襦

化
       特別な_/*      *INDENT-OFF*      */      だけの行を
       セクションの直前に置けばよい。             この制御用コメントの後でス-
       ャンされたプログラムテゥ好箸蓮             邑化コメントだけの行がス-
       ャンされるまで、 入力の通りに変更されず出力される。 邑化制御コメントは
       /*    *INDENT-ON*    */   であり、   このコメントと同じ行で後に続くテ-
       ストも整形されずに出力される。                                       -
       効化制御コメントの後に続く行から整形が再開される。

       もっと正確に言うと、indent  は  C  言語コメントの  終了区切り文字  (*/)
       を検証せず、 その行の空白は存在が意識されない。

       これらの制御コメントは、 C++ の書式、 つまり   //  *INDENT-OFF*//
       *INDENT-ON* でも機能する。

       indent               の内部状態は整形しないセクションでも変更されない、
       という点に注意すべい任△襦  よって、例えば関数の途中で整形を無効にして
       関数の終りまで無効にし続けた場合、変な結果になる。
       したがって、コードを整形しないことを選択する場合は、
       モジュールにしておくのがよい。

       歴史的な注意点:     以前のバージョンの     indent     では    *INDENT**
       で始まるエラーメッセージを生成するものがあった。   これらのバージョンの
       indent      は、      このようなエラーメッセージで始まる入力テゥ好塙圓
       無視するように書かれていた。    私はこの閉鎖的な機能を    GNU    indent
       から削除した。

ン
       使っている  indent  のバージョンを知るには、  コマンド  indent -version
       を用いること。    これを用いると、通常の処理は全く行われず、     indent
       のバージョン番号が表示される。

       `-v'       オプションを用いると、詳細表示モードを邑にすることがでい襦
       詳細表示モードでは、indent は 1  つの行を出力で複数行にする時には報告を
       行い、実行終了時にサイズに関する情報を出力する。

       `-pmt'                 オプションを指定すると、indent                は
       出力ファイルのアクセス時刻と修正時刻を保存する。
       このオプションを使うと、全てのソースファイルとヘッダファイルに   indent
       を実行しても、make はターゲットを再構築しない。 このオプションは  POSIX
       utime(2) 関数がある オペレーティングシステムでのみ利用可能である。

グ
       バグは bug-indent@gnu.org に報告してほしい。

       同じプロファイルで  1  つのファイルに  indent  を  2 回実行した場合、 2
       回目はファイルを_indent
       の現在の設計では、それは保証でい此 詳細にはテストされていない。

       indent   が   C   を理解しない。  このため、行を結合でい覆ぞ豺腓發△襦
       指定されたプロファイル        (`.indent.pro')         で         indent
       を実行した結果のファイルを入力として使った場合でも、             indent
       を通したファイルが_indent         を動作させることを試みたが、
       とても簡単なものでない限り、                                        C++
       のソースに対しては良い結果が得られない。

       出力ファイルにコメントを書そ个靴討い訃豺隋     indent     は指定された
       `--line-length'                                オプションを参照しない。
       そのため、たびたびコメントがかなり右に置かれる。
       コメントが末尾にある折り返された行を                             indent
       が結合しないようにするため、
       コメントが折り返しの最初の行から始まっていることを確認すること。

       /*  *INDENT-OFF*  */  によって  indent  が無効にされている場合、 indent
       は行数やコメント数を数えない (`-v' オプションを参照)。

       /*UPPERCASE*/                                  という形式のコメントは、
       コメントとして扱われないが、次の行と結合する識別子として扱われる。
       この動作によって、コードの最初に埋め込まれない限り、
       このタイプのコメントを無用なものにしてしまう。

示
       以下の著作権表示は            indent           プログラムに適用される。
       このマニュアルに関する著作権と複製許可については、 `indent.texinfo'  と
       `indent.info' の先頭近くと `indent.1' の末尾近くに欺劼気譴討い襦

       Copyright (c) 2001 David Ingamells.
       Copyright (c) 1999 Carlo Wood.
       Copyright (c) 1995, 1996 Joseph Arceneaux.
       Copyright (c) 1989, 1992, 1993, 1994, 1995, 1996 Free Software Foundation
       Copyright (c) 1985 Sun Microsystems, Inc.
       Copyright (c) 1980 The Regents of the University of California.
       Copyright (c) 1976 Board of Trustees of the University of Illinois.
       All rights reserved.

       Redistribution and use in source and binary forms are permitted
       provided that the above copyright notice and this paragraph are
       duplicated in all such forms and that any documentation,
       advertising materials, and other materials related to such
       distribution and use acknowledge that the software was developed
       by the University of California, Berkeley, the University of Illinois,
       Urbana, and Sun Microsystems, Inc.  The name of either University
       or Sun Microsystems may not be used to endorse or promote products
       derived from this software without specific prior written permission.
       THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
       IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
       WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
       PURPOSE.

ー
       長い名前についてアルファベット順に並べたオプションのリストを示す。
       これを使えば対応する短いオプション名が簡単に分かる。

            --blank-lines-after-commas                      -bc
            --blank-lines-after-declarations                -bad
            --blank-lines-after-procedures                  -bap
            --blank-lines-before-block-comments             -bbb
            --braces-after-if-line                          -bl
            --brace-indent                                  -bli
            --braces-after-struct-decl-line                 -bls
            --braces-on-if-line                             -br
            --braces-on-struct-decl-line                    -brs
            --break-after-boolean-operator                  -nbbo
            --break-before-boolean-operator                 -bbo
            --break-function-decl-args                      -bfda
            --break-function-decl-args-end                  -bfde
            --case-indentation                              -clin
            --case-brace-indentation                        -cbin
            --comment-delimiters-on-blank-lines             -cdb
            --comment-indentation                           -cn
            --continuation-indentation                      -cin
            --continue-at-parentheses                       -lp
            --cuddle-do-while                               -cdw
            --cuddle-else                                   -ce
            --declaration-comment-column                    -cdn
            --declaration-indentation                       -din
            --dont-break-function-decl-args                 -nbfda
            --dont-break-function-decl-args-end             -nbfde
            --dont-break-procedure-type                     -npsl
            --dont-cuddle-do-while                          -ncdw
            --dont-cuddle-else                              -nce
            --dont-format-comments                          -nfca
            --dont-format-first-column-comments             -nfc1
            --dont-line-up-parentheses                      -nlp
            --dont-space-special-semicolon                  -nss
            --dont-star-comments                            -nsc
            --else-endif-column                             -cpn
            --format-all-comments                           -fca
            --format-first-column-comments                  -fc1
            --gnu-style                                     -gnu
            --honour-newlines                               -hnl
            --ignore-newlines                               -nhnl
            --ignore-profile                                -npro
            --indent-level                                  -in
            --k-and-r-style                                 -kr
            --leave-optional-blank-lines                    -nsob
            --leave-preprocessor-space                      -lps
            --line-comments-indentation                     -dn
            --line-length                                   -ln
            --no-blank-lines-after-commas                   -nbc
            --no-blank-lines-after-declarations             -nbad
            --no-blank-lines-after-procedures               -nbap
            --no-blank-lines-before-block-comments          -nbbb
            --no-comment-delimiters-on-blank-lines          -ncdb
            --no-space-after-casts                          -ncs
            --no-parameter-indentation                      -nip
            --no-space-after-for                            -nsaf
            --no-space-after-function-call-names            -npcs
            --no-space-after-if                             -nsai
            --no-space-after-parentheses                    -nprs
            --no-space-after-while                          -nsaw
            --no-tabs                                       -nut
            --no-verbosity                                  -nv
            --original                                      -orig
            --parameter-indentation                         -ipn
            --paren-indentation                             -pin
            --preserve-mtime                                -pmt
            --procnames-start-lines                         -psl
            --space-after-cast                              -cs
            --space-after-for                               -saf
            --space-after-if                                -sai
            --space-after-parentheses                       -prs
            --space-after-procedure-calls                   -pcs
            --space-after-while                             -saw
            --space-special-semicolon                       -ss
            --standard-output                               -st
            --start-left-side-of-comments                   -sc
            --struct-brace-indentation                      -sbin
            --swallow-optional-blank-lines                  -sob
            --tab-size                                      -tsn
            --use-tabs                                      -ut
            --verbose                                       -v

値
       不明。

ル
       $HOME/.indent.pro   indent のデフォルトのオプションを設定する

者
       Carlo Wood
       Joseph Arceneaux
       Jim Kingdon
       David Ingamells

歴
       UCB の "indent" プログラムが起源である。

権
       Copyright  (C)  1989,  1992,  1993,  1994,  1995,  1996  Free  Software
       Foundation, Inc.  Copyright (C) 1995, 1996 Joseph Arceneaux.  Copyright
       (C) 1999 Carlo Wood.  Copyright (C) 2001 David Ingamells.

       Permission is granted to make and distribute verbatim  copies  of  this
       manual  provided  the  copyright  notice and this permission notice are
       preserved on all copies.

                                                                    INDENT(1L)