This is Info file indent.info, produced by Makeinfo version 1.68 from
the input file indent.texinfo.

INFO-DIR-SECTION Indent Code Formatter
START-INFO-DIR-ENTRY
* GNU indent: (indent).		C code formatter.
END-INFO-DIR-ENTRY

   This is Edition 2.2.6 of `The indent Manual', for Indent Version
2.2.6, last updated 16 November 2000.

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

   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.


File: indent.info,  Node: Top,  Next: Indent Program,  Prev: (dir),  Up: (dir)

indent:  Indent and Format C Program Source
*******************************************

   The indent program changes the appearance of a C program by
inserting or deleting whitespace.

   This is Edition 2.2.6, 16 November 2000, of `The indent Manual', for
Indent Version 2.2.6.

* Menu:

* Indent Program::              The indent Program
* Option Summary::              Option Summary
* Index::                       Index


File: indent.info,  Node: Indent Program,  Next: Option Summary,  Prev: Top,  Up: Top

The indent Program
******************

   The indent program can be used to make code easier to read.  It can
also convert from one style of writing C to another.

   indent understands a substantial amount about the syntax of C, but
it also attempts to cope with incomplete and misformed syntax.

   In version 1.2 and more recent versions, the GNU style of indenting
is the default.

* Menu:

* Invoking indent::             Invoking indent
* Backup files::                Backup Files
* Common styles::               Common styles
* Blank lines::                 Blank lines
* Comments::                    Comments
* Statements::                  Statements
* Declarations::                Declarations
* Indentation::                 Indentation
* Breaking long lines::         Breaking long lines
* Disabling Formatting::        Disabling Formatting
* Miscellaneous options::       Miscellaneous options
* Bugs::                 	Bugs
* Copyright::                   Copyright


File: indent.info,  Node: Invoking indent,  Next: Backup files,  Up: Indent Program

Invoking indent
===============

   As of version 1.3, the format of the indent command is:


     indent [OPTIONS] [INPUT-FILES]
     
     indent [OPTIONS] [SINGLE-INPUT-FILE] [-o OUTPUT-FILE]

   This format is different from earlier versions and other versions of
indent.

   In the first form, one or more input files are specified.  indent
makes a backup copy of each file, and the original file is replaced with
its indented version.  *Note Backup files::, for an explanation of how
backups are made.

   In the second form, only one input file is specified.  In this case,
or when the standard input is used, you may specify an output file after
the -o option.

   To cause indent to write to standard output, use the -st option.
This is only allowed when there is only one input file, or when the
standard input is used.

   If no input files are named, the standard input is read for input.
Also, if a filename named - is specified, then the standard input is
read.

   As an example, each of the following commands will input the program
`slithy_toves.c' and write its indented text to `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

   Most other options to indent control how programs are formatted.  As
of version 1.2, indent also recognizes a long name for each option
name.  Long options are prefixed by either - or +.(1) In most of this
document, the traditional, short names are used for the sake of brevity.
*Note Option Summary::, for a list of options, including both long and
short names.

   Here is another example:

     indent -br test/metabolism.c -l85

   This will indent the program `test/metabolism.c' using the -br and
-l85 options, write the output back to `test/metabolism.c', and write
the original contents of `test/metabolism.c' to a backup file in the
directory `test'.

   Equivalent invocations using long option names for this example would
be:


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

   If you find that you often use indent with the same options, you may
put those options into a file named `.indent.pro'.  indent will first
look for `.indent.pro' in the current directory and use that if found.
Otherwise, indent will search your home directory for `.indent.pro' and
use that file if it is found.  This behaviour is different from that of
other versions of indent, which load both files if they both exist.

   The format of `.indent.pro' is simply a list of options, just as
they would appear on the command line, separated by white space (tabs,
spaces, and newlines).  Options in `.indent.pro' may be surrounded by C
or C++ comments, in which case they are ignored.

   Command line switches are handled *after* processing `.indent.pro'.
Options specified later override arguments specified earlier, with one
exception: Explicitly specified options always override background
options (*note Common styles::.).  You can prevent indent from reading
an `.indent.pro' file by specifying the -npro option.

   ---------- Footnotes ----------

   (1)  + is being superseded by - to maintain consistency with the
POSIX standard.


File: indent.info,  Node: Backup files,  Next: Common styles,  Prev: Invoking indent,  Up: Indent Program

Backup Files
============

   As of version 1.3, GNU indent makes GNU-style backup files, the same
way GNU Emacs does.  This means that either "simple" or "numbered"
backup filenames may be made.

   Simple backup file names are generated by appending a suffix to the
original file name.  The default for this suffix is the one-character
string `~' (tilde).  Thus, the backup file for `python.c' would be
`python.c~'.

   Instead of the default, you may specify any string as a suffix by
setting the environment variable SIMPLE_BACKUP_SUFFIX to your preferred
suffix.

