※ このindent 2.2.9のマニュアルは既存の こちら GNU indent v1.3 の邦訳を元に 足りない部分を翻訳ソフトにかけて適当に(意味不明でも)でっちあげたもんです。


[Top] [Contents] [Index] [ ? ]

indent: Cプログラムソースのインデント&整形

indent プログラムは、空白の挿入や削除を行い、C 言語プログラムの見栄えを変える。

これは indent バージョン 2.2.9 用の「The indent Manual」の 2.2.9.(2002年11月10日)版である。

1. indent プログラム   
A. オプション要約   
索引  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. indent プログラム

indent プログラムを使うとコードを読みやすくすることができる。また、 C 言語のコード記述を、あるスタイルから別のスタイルに変換することもでき る。

indent はたくさんある C 言語の文法を理解するが、文法が不完全な部分や 誤っている部分もできるだけ処理しようとする。

バージョン 1.2 以降では、GNU スタイルのインデントがデフォルトである。

1.1 indentの起動  
1.2 バックアップファイル  
1.3 一般的なスタイル  
1.4 空行  
1.5 コメント  
1.6 文  
1.7 宣言  
1.8 インデント付け  
1.9 長い行の分割  
1.10 整形の抑止  
1.11 様々なオプション  
1.12 バグ  
1.13 コピーライト  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 indentの起動

バージョン 1.3 からはindentコマンドのフォーマットは以下のようになっている:

 
indent [options] [input-files]

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

このフォーマットは古いバージョンや他バージョンの indent と異なる。

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

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 は各オプ ション名として長い名前も認識する。長いオプションの前には ‘--’ か ‘+’ が置かれる。
(1) このドキュメントの大半では簡潔さのために従来の短い名前を使用している。 短い名前と長い名前の対応については 「A.オプション要約」セクションのリストを参照のこと。

別の使用例を挙げる:

 
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.pro’ というファイル に書いておくとよい。indent はまず、カレントディレクトリで ‘.indent.pro’ を探し、見つかった場合にはこれを使用する。見つからなけれ ば、indent はホームディレクトリの ‘.indent.pro’ を探し、見つかった場 合にはこれを使用する。この動作は従来のバージョンや別バージョンの indent と異なる。これらは、両方のディレクトリに ‘.indent.pro’ ファイ ルがあれば両方とも使用する。

.indent.pro’の書式は、コマンドラインでの指定と同様に 空白(タブ,スペース,改行)で区切られた単なるオプションの羅列である。 ‘.indent.pro’中でC/C++ 形式のコメントで囲むとオプションは無視される。

コマンドラインオプションが処理されるのは、‘.indent.pro’ を処理した である。後から指定したオプションは、前に指定した引き数を上書きす る。これには例外が 1 つある: 明示的に指定したオプションは暗黙のオプショ ンを必ず上書きする(「1.3 一般的なスタイル」を参照)。 ‘-npro’ オプションを指定することにより、 indent が ‘.indent.pro’ ファイルを読み込まないようにすることができる。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 バックアップ・ファイル

バージョン 1.3 からは、GNU indent は GNU 形式、すなわち GNU Emacs と 同様の方法でバックアップファイルを作成する。つまり、単純なバックアッ プファイルと番号付きのバックアップファイルをどちらも作成できる。

単純なバックアップファイルの名前は、元のファイル名にサフィックスを追加 して生成される。このサフィックスのデフォルト値は、1 文字からなる文字列 ‘~’(チルダ)である。したがって、‘python.c’ のバックアップファイルは ‘python.c~’ となる。

環境変数 ‘SIMPLE_BACKUP_SUFFIX’ に好きな文字列を好きな文字列を設定する ことにより、デフォルト値以外の任意の文字列をサフィックスとして使用でき る。

ファイル ‘momewraths.c’ の番号付きバックアップは、‘momewraths.c.~23~’ の ようになる。ここで、23 はこのファイルのバックアップのバージョンである。 ファイル ‘src/momewrath.c’ のバックアップを作成するとき、バックアップ ファイルの名前は ‘src/momewrath.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 が行うようにソースファ イルがあるディレクトリにバックアップを作成するのではなく、カレントディ レクトリにバックアップを作成する点にも注意すること。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 一般的なスタイル

C 言語には一般的なスタイルがいくつかある。例えば、GNU スタイル、 Kernighan & Ritchie スタイル、オリジナルの Berkeley スタイル等である。 スタイルはバックグラウンドオプション 1 つを使って選択することがで きる。このオプションは、他のオプション全ての値を指定する。ただし、明示 的に指定したオプションは、暗黙的に指定されたオプションよりも必ず優先さ れる。

バージョン 1.2 からは、GNU 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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 空行

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

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

‘-bap’ オプションを指定すると、手続き本体全ての後に必ず空行が置かれる。 ‘-nbap’ オプションを指定すると、このような空行は置かれない。

‘-bbb’ オプションを指定すると、ブロックコメント全ての前に必ず空行が置 かれる。(「1.5 コメント」.を参照のこと)
‘-nbbb’ オプションを指定すると、このような空行は置かれない。

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

1.4.1 --blank-lines-after-declarations    ‘-bad’オプションの詳細.
1.4.2 --blank-lines-after-procedures    ‘-bap’オプションの詳細.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4.1 --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;


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4.2 --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’ の後には空行は追加されない。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5 コメント

indentはC/C++コメントを整形できる。 Cコメントは‘/*’で始まり‘*/’で終わるもので、 間に改行があってもかまわない。 C++ コメントは‘//’で始まり改行で終わる。

indent はコメントの状況に応じた違いを扱う。 文に続くコメント、 宣言に続くコメント、 プリプロセッサ指令に続くコメント、 任意の種類のコードが先行しないコメントから始まる行(必ずしも1カラム目ではない)、 を識別しようとする。

indent は、手続きや構造体等の外部で見つかったコメントと 内部で見つかったものとをさらに区別する。 手続き内で見つかったコメントから始まる行は、現在のコードと同じインデント位置に インデントされる。 例外として、左端(1カラム目)から始まるコメントに関しては、その桁で出力される。

indent は、箱型コメントを変更せずにすまそうとする。 そのようなコメントは一般的に、視覚的に区別するために ‘*’かダッシュで囲まれた長方形あるいは“箱”になっている。 より正確には、箱型コメントは‘/*’で始まり ‘*’か ‘=’, ‘_’, ‘-’ が続き、続く毎行コメントデリミタ(‘/*’)で始まるもの、あるいは開始デリミタの‘*’と 同じカラムに‘*’が先頭に置かれた行が連なるものと定義している。

箱型コメントの例:

 
/**********************
 * Comment in a box!! *
 **********************/

       /*
        * A different kind of scent,
        * for a different kind of comment.
        */

indent はソースファイルで見つかった通りに箱型コメントを正確に残そうとする。 したがって、コメントのインデントは変更されない。また、その長さはどのようにもチェックされない。 変更があるとすれば、埋め込まれたタブ文字が適切な数の空白に変換されるかもしれないということだろう。

‘-bbb’が指定されている場合、 コードが箱型コメントに先行しなければ 空行がすべての箱型コメントの前に挿入される。

箱型でないコメントは整形されるだろう。 右マージンを満たすため行を分割し左側は空白で埋めることになる。 単一の改行は空白と等価だが、空行(連続2つ以上の改行)はパラグラフの分離として扱う。 ‘-fca’オプションを用いれと最初のカラムより後に始まるコメントの整形できる。 最初のカラムから始まるコメントの整形には‘-fc1’を用いる。これらの指定は デフォルトでは無効になっている。

デフォルトで右マージンは78になっているが、‘-lc’オプションを用いれば変更できる。 指定されたマージンでコメント表示が出来ない場合、 そのコメントの間自動的にマージンは拡張されるだろう。 コメントが整形されない場合、マージンは無視される。

コメントが行頭あり(つまり左側にプログラム・テキストがなく)、 コードブロック内にないならば、 見つかったカラムでインデントされるだろう。 ブロック内ならば、そのようなコメントはブロック内のコードの インデントと同じになるだろう (ただしコメントが行の先頭カラムでないならば)。 ‘-d’オプションでコメントがに移動するような指定がされたり 逆インデントされたりすると この位置合わせは影響をうけるかもしれない。 例えば‘-d2’はコードの左側にコメントと空白2個を置く。 デフォルトでは先頭カラムでないならば コメントはコードと同期する。先頭カラムだったならば デフォルトではその位置に残る。そのような場合も同期させたいならば ‘-fc1’を指定すること。

コードの右側のコメントはデフォルトでは33桁目から置かれる。 これは3つのオプションのうちいずれかで変更されるかもしれない。 ‘-c’を用いればコードに続くコメントのカラムを指定できる。 ‘-cd’を用いれば宣言に続くコメントのカラムを指定できる。 ‘-cp’を用いればプリプロセッサ指令#else,#endifに続く コメントのカラムを指定できる。

コメントの左側のコードが開始カラムを超過する場合は コードの終了あるいはプリプロセッサ指令ならば指令の終了を過ぎて からの次のタブ・ストップ・カラムに コメント開始カラムを変更するだろう。 この拡張は、特にそのコメントの出力の間のみ続く。

‘-cdb’オプションを用いれば、ブランク行にコメント・デリミタを置く。 したがって/* Loving hug */のような1行コメントは次のように変形できる:

 
/*
   Loving hug
 */

‘-sc’オプションを用いれば多重ライン・コメントの先頭に‘*’を 置くことができる。 したがって、1行コメントは次のように変形できるで(‘-cdb -sc’併用):

 
/*
 * Loving hug
 */


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.6 文

‘-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;
  }

‘-cbin’オプションを用いて case 文下のブレースの インデントを制御できる。 例えば‘-cli2 -cbi0’を使用した結果:

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

セミコロンが ‘for’ または ‘while’ 文と同じ行にある場合に ‘-ss’ を指定 すると、空白がセミコロンの前に置かれる。これによりセミコロンが強調され、 ‘for’ や ‘while’ 文の本体が空の文であることがはっきりする。‘-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++ = ’ ’;
    }


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.7 宣言

デフォルトでは、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’オプションを指定すると、関数宣言の終了ブラケットの手前で必ず改行する。 これらのオプションのデフォルト設定はどちらも'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;
};


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.8 インデント付け

コードを整形する時の問題の一つは、各行をどれだけ左端からインデントさせ るかである。‘if’ や ‘for’ 等の文の先頭部分があると、インデントの深さは ‘-i’ オプションで指定した値だけ増える。例えば、レベルごとに 8 文字分の インデントさせるには ‘-i8’ を使う。文が前の行から続いている場合には、 その部分は ‘-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つ以上の(...)括弧ペアのある文が分割されたとき、余分なペアのためインデントレベルは余分にインデントされる。

 
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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.9 長い行の分割

-ln’または‘--line-lengthn’オプションで、 Cコードの最大桁数を(続くコメントを含まないで)指定できる。

指定された桁数よりも長くなるとき、GNU indent は必然的な箇所で分割しようとする。 これは 2.1版で更新されたのだが、まだそれほど賢くないし柔軟でもない。

現在、2つのオプションがある。 1つは、どこで行を分割するかの判定を抑止する。

‘-bbo’オプションを用いると GNU indentは論理演算子 && や || の手前で行を分割しようとする。 ‘-nbbo’オプションを用いるとそのような優先を行わない。 例えばデフォルトオプションの‘-bbo’ (と一緒に‘--line-length60’ と‘--ignore-newlines’も) の場合 以下のようなコードになる:

 
  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 は触らないほうがよいだろう、 という考えに基づいている。 本当に汚いコードなら 少なくとも一度‘--ignore-newlines’オプションでも使用してから indent を実行すべきだろう。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.10 整形の抑止

プログラム中に特別のコントロール・コメントを埋め込むことにより Cプログラムコードの一部の整形を無効にできる。 プログラムセクションの整形を止めたい場合は、そのセクションの直前に 停止用コントロール・コメント /* *INDENT-OFF* */ のみの行を置く。 このコントロールコメント後のプログラムテキストは 対応する許可コメントのみの行が見つかるまで 入力を改変せずそのまま出力する。 許可用コントロール・コメントは /* *INDENT-ON* */ である。 このコメントの行の残りのテキストも未整形で出力される。 整形は許可用コントロール・コメントの次の入力行から再開する。

より正確には indentはこれらのCコメントの閉デリミタ(‘*/’)の確認さえ行わない。 また、この行にあるどんな空白も感知しない。

さらにこれらのコントロール・コメントは C++フォーマット形式 (すなわち // *INDENT-OFF* や  // *INDENT-ON* ) でも機能する。

注意すべきことはindentの内部状態は未整形のセクションの間は変化しないということである。 例えば、関数の最中に整形を止め、そして関数が終わってから整形を再開すると おかしな結果になるだろう。したがって未整形するコードの選択は多少モジュール的に選んだほうが よいだろう。

歴史的な経緯として、indent の初期バージョンのいくつかは *INDENT** で始まるエラーメッセージを生成していた。 これらのバージョンの indent は、そのようなエラーメッセージで始まる入力テキスト行を無視するように作られていた。 GNU indent では、この排他的な特徴は取り除かれた。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.11 様々なオプション

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

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

‘-pmt’オプションを用いるとindentは出力ファイルのアクセス修正時間を保持する。 このオプションの使用は、 運用中のプロジェクトでソースとヘッダファイルをすべてインデントしても ‘make’でターゲットのリビルドをさせたくないような場合に有用だ。 このオプションは、POSIXutime(2)機能を持つオペレーティング・システムでのみ 利用可能である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.12 バグ

何かバグがあれば bug-indent@gnu.org へレポートしてほしい。

1つのファイルに対して2回 indent を実行する場合、 そのファイルを同じプロファイルを用いて2回目の変換を行うべきでない。 indent の現在の仕組みでは保証することができない。 また広範囲のテストも行われていない。

indentは C を理解していない。 場合によっては無意味に行を繋げてしまう。 プロファイル(‘.indent.pro’)を備えたindentの 実行結果だったとしても、変換された入力ファイルを元に戻すことはできない。

indent を C++ 対応にする試みはあったが、 非常に単純な C++ソース以外には役に立たないだろう。

出力ファイルにコメントを出力するとき、indent は 指定された‘--line-length’オプションを用いない。 しばしば右に遠く置かれるコメントのためだ。 行末にコメントがある分割された文を indentに連結させないようにするには 分割された行の最初にコメントを置く必要がある。

/* *INDENT-OFF* */で無効にされる場合、 indentは行およびコメント(‘-v’オプションを参照)をカウントしない。

/*UPPERCASE*/形式の(大文字のみの)コメントはコメントとして扱われず、 次の行にそれらをつなぐ識別子として扱われるが、 コードから始まる行に埋め込まれていなければ意味はない。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.13 コピーライト

 下記の著作権表示は indent プログラムに対するものである。 このマニュアルの著作権および配布許諾は、‘indent.texinfo’や‘indent.info’の始めのほう、 および‘indent.1’の終わりのほうに書かれている。

 
Copyright © 2001 David Ingamells.
Copyright © 1999 Carlo Wood.
Copyright © 1995, 1996 Joseph Arceneaux.
Copyright © 1989, 1992, 1993, 1994, 1995, 1996 Free Software Foundation
Copyright © 1985 Sun Microsystems, Inc.
Copyright © 1980 The Regents of the University of California.
Copyright © 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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A. オプション要約

以下に indent の全てのオプションを示す。短い形のオプションをアルファ ベット順で並べている。その後には、長い形式のオプションをアルファベット 順に並べた参照キーを示している。

‘-bad’
‘--blank-lines-after-declarations’
宣言の後に必ず空行を置く。
1.4 空行 参照.

‘-bap’
‘--blank-lines-after-procedures’
手続き本体の後に必ず空行を置く。
1.4 空行 参照.

‘-bbb’
‘--blank-lines-before-block-comments’
ブロックコメントの後必ずに空行を置く。
1.4 空行 参照.

‘-bbo’
‘--break-before-boolean-operator’
長い行を論理演算子の手前で分割する。
1.9 長い行の分割 参照.

‘-bc’
‘--blank-lines-after-commas’
宣言中のコンマの後に必ず改行を置く。
1.7 宣言 参照.

‘-bl’
‘--braces-after-if-line’
ブレースは ‘if’ 等の次の行に置く。
1.6 文 参照.

‘-blin
‘--brace-indentn
ブレースを n 個の空白でインデントする。
1.6 文 参照.

‘-bls’
‘--braces-after-struct-decl-line’
‘struct’宣言の次の行にブレースを置く。
1.7 宣言 参照.

‘-br’
‘--braces-on-if-line’
ブレースは ‘if’ 等がある行に置く。
1.6 文 参照.

‘-brs’
‘--braces-on-struct-decl-line’
‘struct’宣言と同じ行にブレースを置く。
1.7 宣言 参照.

‘-bs’
‘--Bill-Shannon’
‘--blank-before-sizeof’
‘sizeof’と引数の間に空白を1つ置く。
1.6 文 参照.

‘-cn
‘--comment-indentationn
コメントをコードの右のカラム n に置く。
1.5 コメント 参照.

‘-cbin
‘--case-brace-indentationn
caseラベルの後のブレースをn個の空白でインデントする。
1.6 文 参照.

‘-cdn
‘--declaration-comment-columnn
コメントを宣言の右のカラム n に置く。
1.5 コメント 参照.

‘-cdb’
‘--comment-delimiters-on-blank-lines’
空行にコメント区切り文字を置く。
1.5 コメント 参照.

‘-cdw’
‘--cuddle-do-while’
‘do {} while;’の‘while’を直前の‘}’と並べる.
1.5 コメント 参照.

‘-ce’
‘--cuddle-else’
else とその前の ‘}’ を並べる。
1.5 コメント 参照.

‘-cin
‘--continuation-indentationn
前の行から継続している場合には、n 個の空白でインデントする。
1.6 文 参照.

‘-clin
‘--case-indentationn
case ラベルを n 個の空白でインデントする
1.6 文 参照.

‘-cpn
‘--else-endif-columnn
‘#else’ 文と ‘#endif’文の右のカラム n にコメントを置く。
1.5 コメント 参照.

‘-cs’
‘--space-after-cast’
キャスト演算子の後に空白を置く。
1.6 文 参照.

‘-dn
‘--line-comments-indentationn
コードの右でないコメントは空白 n 個でインデントするように設定する。
1.5 コメント 参照.

‘-bfda’
‘--break-function-decl-args’
関数宣言の引数をすべて分割する。
1.7 宣言 参照.

‘-bfde’
‘--break-function-decl-args’
関数宣言の最後の引数の後(')'の手前)も分割する。
1.7 宣言 参照.

‘-din
‘--declaration-indentationn
変数をカラム n に置く。
1.7 宣言 参照.

‘-fc1’
‘--format-first-column-comments’
最初のカラムから始まるコメントを整形する。
1.5 コメント 参照.

‘-fca’
‘--format-all-comments’
コメントのフォーマット全てを無効にしない。
1.5 コメント 参照.

‘-gnu’
‘--gnu-style’
GNU コーディングスタイルを使用する。これはデフォルトの動作である。
1.3 一般的なスタイル 参照.

‘-hnl’
‘--honour-newlines’
長い行のとき入力での改行位置で分割しようとする
1.9 長い行の分割 参照.

‘-in
‘--indent-leveln
インデントのレベルを空白 N 個に設定する。
1.8 インデント付け 参照.

‘-ipn
‘--parameter-indentationn
古い形式の関数定義のパラメータ型を空白 n 個でインデントする。
1.8 インデント付け 参照.

‘-kr’
‘--k-and-r-style’
Kernighan & Ritchie コーディングスタイルを使用する。
1.3 一般的なスタイル 参照.

‘-ln
‘--line-lengthn
最大の行の長さを n に設定する。
1.9 長い行の分割 参照.

‘-lcn
‘--comment-line-lengthn
コメント整形での最大桁数をn桁に設定。
1.5 コメント 参照.

‘-lp’
‘--continue-at-parentheses’
前の行に続く行を括弧の位置に揃える。
1.8 インデント付け 参照.

‘-lps’
‘--leave-preprocessor-space’
‘#’とプリプロセッサ命令との間の空白を残す。
1.8 インデント付け 参照.

‘-nbad’
‘--no-blank-lines-after-declarations’
宣言の後に空行を置かない。
1.4 空行 参照.

‘-nbap’
‘--no-blank-lines-after-procedures’
手続き本体の後に空行を置かない。
1.4 空行 参照.

‘-nbbb’
‘--no-blank-lines-before-block-comments’
ブロックコメントの後に空行を置かない。
1.4 空行 参照.

‘-nbbo’
‘--break-after-boolean-operator’
長い行を論理演算子の手前で分割しない。
1.9 長い行の分割 参照.

‘-nbc’
‘--no-blank-lines-after-commas’
宣言中のコンマの後に改行を置かない。
1.7 宣言 参照.

‘-nbfda’
‘--dont-break-function-decl-args’
関数宣言を引数ごとには分割しない.
1.7 宣言 参照.

‘-ncdb’
‘--no-comment-delimiters-on-blank-lines’
空行にコメント区切り文字を置かない。
1.5 コメント 参照.

‘-ncdw’
‘--dont-cuddle-do-while’
‘do {} while;’の‘while’を直前の‘}’と同じ行に並べない.
1.6 文 参照.

‘-nce’
‘--dont-cuddle-else’
‘}’ と ‘else’ を同じ行に並べない。
1.6 文 参照.

‘-ncs’
‘--no-space-after-casts’
キャスト演算子の後に空白を置かない。
1.6 文 参照.

‘-nfc1’
‘--dont-format-first-column-comments’
最初のカラムから始まるコメントを通常のように整形しない。
1.5 コメント 参照.

‘-nfca’
‘--dont-format-comments’
どのようなコメントも整形しない。
1.5 コメント 参照.

‘-nhnl’
‘--ignore-newlines’
長い行のときの分割で入力での改行位置を考慮しない。
1.9 長い行の分割 参照.

‘-nip’
‘--no-parameter-indentation’
パラメータのインデント幅を 0 にする。
1.8 インデント付け 参照.

‘-nlp’
‘--dont-line-up-parentheses’
括弧の位置を揃えない。
1.6 文 参照.

‘-npcs’
‘--no-space-after-function-call-names’
関数呼び出し内部の関数の後に空白を置かない。
1.6 文 参照.

‘-nprs’
‘--no-space-after-parentheses’
すべての’(’の直後と ’)’の直前に空白を置かない。
1.6 文 参照.

‘-npsl’
‘--dont-break-procedure-type’
手続きの型を名前と同じ行に置く。
1.7 宣言 参照.

‘-nsaf’
‘--no-space-after-for’
forの直後に空白を置かない。
1.6 文 参照.

‘-nsai’
‘--no-space-after-if’
ifの直後に空白を置かない。
1.6 文 参照.

‘-nsaw’
‘--no-space-after-while’
whileの直後に空白を置かない。
1.6 文 参照.

‘-nsc’
‘--dont-star-comments’
‘*’ をコメントの左に置かない。
1.5 コメント 参照.

‘-nsob’
‘--leave-optional-blank-lines’
余分な空行を削除しない。
1.4 空行 参照.

‘-nss’
‘--dont-space-special-semicolon’
特定の文の後のセミコロンの前に空白を置かない。 ‘-ss’ を無効にする。
1.6 文 参照.

‘-nut’
‘--no-tabs’
タブ文字の代わりに空白文字を使用する。
1.8 インデント付け 参照.

‘-nv’
‘--no-verbosity’
詳細表示モードを無効にする。
1.11 様々なオプション 参照.

‘-orig’
‘--original’
オリジナルの Berkeley コーディングスタイルを使用する。
1.3 一般的なスタイル 参照.

‘-npro’
‘--ignore-profile’
.indent.pro’ファイルを読み込まない。
1.1 indentの起動 参照.

‘-pcs’
‘--space-after-procedure-calls’
呼び出される手続きの名前と ‘(’ の間に空白を挿入する。
1.6 文 参照.

‘-pin
‘--paren-indentationn
文が分割されている時の開括弧'('に対して空白n文字インデントする。
1.6 文 参照.

‘-pmt’
‘--preserve-mtime’
出力ファイルのアクセス/修正日時を保持する。
1.11 様々なオプション 参照.

‘-prs’
‘--space-after-parentheses’
すべての ’(’の直後と ’)’の直前に空白を置く。
1.6 文 参照.

‘-psl’
‘--procnames-start-lines’
手続きの型を名前の前の行に置く。
1.7 宣言 参照.

‘-saf’
‘--space-after-for’
forの直後に空白を置く。
1.6 文 参照.

‘-sai’
‘--space-after-if’
ifの直後に空白を置く。
1.6 文 参照.

‘-saw’
‘--space-after-while’
whileの直後に空白を置く。
1.6 文 参照.

‘-sbin
‘--struct-brace-indentationn
struct,union,enum のブレースを空白n文字でインデントする。
1.6 文 参照.

‘-sc’
‘--start-left-side-of-comments’
‘*’ をコメントの左に置く。
1.5 コメント 参照.

‘-sob’
‘--swallow-optional-blank-lines’
余計な空行を取り除く。
1.4 空行 参照.

‘-ss’
‘--space-special-semicolon’
一行で記述した ‘for’ 文と ‘while’ 文において、セミコロンの前に空白を置く。
1.6 文 参照.

‘-st’
‘--standard-output’
標準出力に書き出す。
1.1 indentの起動 参照.

‘-T’
型名を indent に指定する。
1.7 宣言 参照.

‘-tsn
‘--tab-sizen
タブの幅を空白 n 個に設定する。
1.8 インデント付け 参照.

‘-ut’
‘--use-tabs’
タブ文字を使う。これはデフォルトである。
1.8 インデント付け 参照.

‘-v’
‘--verbose’
詳細表示モードを有効にする。
1.11 様々なオプション 参照.

‘-version’
indent のバージョン番号を表示する。
1.11 様々なオプション 参照.


オプションの相互参照

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

 
--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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

索引

Jump to:   -   .  
B   C   E   G   I   K   L   O   S   T   U  

Index Entry Section

-
--blank-after-sizeof1.6 文
--blank-lines-after-commas1.7 宣言
--blank-lines-after-declarations1.4.1 --blank-lines-after-declarations
--blank-lines-after-procedures1.4.2 --blank-lines-after-procedures
--blank-lines-before-block-comments1.4 空行
--brace-indentn1.6 文
--braces-after-if-line1.6 文
--braces-on-if-line1.6 文
--break-after-boolean-operator1.9 長い行の分割
--break-before-boolean-operator1.9 長い行の分割
--break-function-decl-args1.7 宣言
--break-function-decl-args-end1.7 宣言
--case-brace-indentationn1.6 文
--case-indentationn1.6 文
--comment-delimiters-on-blank-lines1.5 コメント
--comment-indentationn1.5 コメント
--continuation-indentationn1.8 インデント付け
--continue-at-parentheses1.8 インデント付け
--cuddle-do-while1.6 文
--cuddle-else1.6 文
--declaration-comment-columnn1.5 コメント
--declaration-indentationn1.7 宣言
--dont-break-function-decl-args1.7 宣言
--dont-break-function-decl-args-end1.7 宣言
--dont-break-procedure-type1.7 宣言
--dont-cuddle-do-while1.6 文
--dont-cuddle-else1.6 文
--dont-format-comments1.5 コメント
--dont-format-first-column-comments1.5 コメント
--dont-line-up-parentheses1.8 インデント付け
--dont-space-special-semicolon1.6 文
--dont-star-comments1.5 コメント
--else-endif-columnn1.5 コメント
--format-all-comments1.5 コメント
--format-first-column-comments1.5 コメント
--gnu-style1.3 一般的なスタイル
--honour-newlines1.9 長い行の分割
--ignore-newlines1.9 長い行の分割
--ignore-profile1.1 indentの起動
--indent-leveln1.8 インデント付け
--k-and-r-style1.3 一般的なスタイル
--leave-optional-blank-lines1.4 空行
--leave-preprocessor-space1.8 インデント付け
--line-comments-indentationn1.5 コメント
--line-lengthn1.9 長い行の分割
--no-blank-lines-after-commas1.7 宣言
--no-blank-lines-after-declarations1.4.1 --blank-lines-after-declarations
--no-blank-lines-after-procedures1.4.2 --blank-lines-after-procedures
--no-blank-lines-before-block-comments1.4 空行
--no-comment-delimiters-on-blank-lines1.5 コメント
--no-parameter-indentation1.8 インデント付け
--no-space-after-casts1.6 文
--no-space-after-for1.6 文
--no-space-after-function-call-names1.6 文
--no-space-after-if1.6 文
--no-space-after-while1.6 文
--no-verbosity1.11 様々なオプション
--original1.3 一般的なスタイル
--output-file1.1 indentの起動
--parameter-indentationn1.8 インデント付け
--preprocessor-indentationn1.8 インデント付け
--preserve-mtime1.11 様々なオプション
--procnames-start-lines1.7 宣言
--remove-preprocessor-space1.8 インデント付け
--space-after-cast1.6 文
--space-after-for1.6 文
--space-after-if1.6 文
--space-after-parentheses1.6 文
--space-after-procedure-calls1.6 文
--space-after-while1.6 文
--space-special-semicolon1.6 文
--standard-output1.1 indentの起動
--star-left-side-of-comments1.5 コメント
--swallow-optional-blank-lines1.4 空行
--tab-sizen1.8 インデント付け
--verbose1.11 様々なオプション
-bad1.4.1 --blank-lines-after-declarations
-bap1.4.2 --blank-lines-after-procedures
-bbb1.4 空行
-bbo1.9 長い行の分割
-bc1.7 宣言
-bfda1.7 宣言
-bfde1.7 宣言
-bl1.6 文
-blin1.6 文
-br1.6 文
-bs1.6 文
-cbin1.6 文
-cdb1.5 コメント
-cdn1.5 コメント
-cdw1.6 文
-ce1.6 文
-cin1.8 インデント付け
-clin1.6 文
-cn1.5 コメント
-cpn1.5 コメント
-cs1.6 文
-dce1.6 文
-din1.7 宣言
-dn1.5 コメント
-fc11.5 コメント
-fca1.5 コメント
-gnu1.3 一般的なスタイル
-hnl1.9 長い行の分割
-in1.8 インデント付け
-ipn1.8 インデント付け
-kr1.3 一般的なスタイル
-ln1.9 長い行の分割
-lp1.8 インデント付け
-lps1.8 インデント付け
-nbad1.4.1 --blank-lines-after-declarations
-nbap1.4.2 --blank-lines-after-procedures
-nbbb1.4 空行
-nbbo1.9 長い行の分割
-nbc1.7 宣言
-nbfda1.7 宣言
-nbfde1.7 宣言
-ncdb1.5 コメント
-ncdw1.6 文
-ncs1.6 文
-nfc11.5 コメント
-nfca1.5 コメント
-nhnl1.9 長い行の分割
-nip1.8 インデント付け
-nlp1.8 インデント付け
-nlps1.8 インデント付け
-npcs1.6 文
-npmt1.11 様々なオプション
-npro1.1 indentの起動
-npsl1.7 宣言
-nsaf1.6 文
-nsai1.6 文
-nsaw1.6 文
-nsc1.5 コメント
-nsob1.4 空行
-nss1.6 文
-nv1.11 様々なオプション
-o1.1 indentの起動
-orig1.3 一般的なスタイル
-pcs1.6 文
-pmt1.11 様々なオプション
-ppin1.8 インデント付け
-prs1.6 文
-psl1.7 宣言
-saf1.6 文
-sai1.6 文
-saw1.6 文
-sc1.5 コメント
-sob1.4 空行
-ss1.6 文
-st1.1 indentの起動
-T1.7 宣言
-tsn1.8 インデント付け
-v1.11 様々なオプション
-version1.11 様々なオプション

.
.indent.pro’ file1.1 indentの起動

B
backup files1.2 バックアップファイル
Beginning indent1.1 indentの起動
Berkeley style1.3 一般的なスタイル
Blank lines1.4 空行

C
Comments1.5 コメント

E
etags requires ‘-psl’1.7 宣言

G
GNU style1.3 一般的なスタイル

I
Initialization file1.1 indentの起動
Invoking indent1.1 indentの起動

K
Kernighan & Ritchie style1.3 一般的なスタイル

L
Long options, use of1.1 indentの起動

O
Original Berkeley style1.3 一般的なスタイル
Output File Specification1.1 indentの起動

S
Standard Output1.1 indentの起動
Starting indent1.1 indentの起動

T
typedef1.7 宣言
Typenames1.7 宣言

U
Using Standard Input1.1 indentの起動

Jump to:   -   .  
B   C   E   G   I   K   L   O   S   T   U  


[Top] [Contents] [Index] [ ? ]

脚注

(1)

POSIX標準に準拠するため、‘+’は‘--’に置き換えらた。


[Top] [Contents] [Index] [ ? ]

目次

1. indent プログラム
1.1 indentの起動
1.2 バックアップファイル
1.3 一般的なスタイル
1.4 空行
1.4.1 --blank-lines-after-declarations
1.4.2 --blank-lines-after-procedures
1.5 コメント
1.6 文
1.7 宣言
1.8 インデント付け
1.9 長い行の分割
1.10 整形の抑止
1.11 様々なオプション
1.12 バグ
1.13 コピーライト
A. オプション要約
索引

[Top] [Contents] [Index] [ ? ]

短い目次

1. indent プログラム
A. オプション要約
索引

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated by david ingamells on December, 16 2002 using texi2html