Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ indent(1) — A/UX 0.7

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cb(1)



     indent(1)                                               indent(1)



     NAME
          indent - indent and format C program source

     SYNOPSIS
          indent input[output] [flags]

     DESCRIPTION
          indent is intended primarily as a C program formatter.
          Specifically, indent will:

               indent code lines

               align comments

               insert spaces around operators where necessary

               break up declaration lists as in int a,b,c;.

          indent will not break up long statements to make them fit
          within the maximum line length, but it will flag lines that
          are too long.  Lines will be broken so that each statement
          starts a new line, and braces will appear alone on a line.
          (See the -br flag option to inhibit this.) Also, an attempt
          is made to line up identifiers in declarations.

          The flags which can be specified follow. They may appear
          before or after the file names.  If the output file is
          omitted, the formatted file will be written back into input
          and a ``backup'' copy of input will be written in the
          current directory.  If input is named /blah/blah/file, the
          backup file will be named .Bfile.  If output is specified,
          indent checks to make sure it is different from input.

          The following flag options may be used to control the
          formatting style imposed by indent.

          -lnnn      Maximum length of an output line.  The default is
                     75.

          -cnnn     The column in which comments will start.  The
                    default is 33.

          -cdnnn    The column in which comments on declarations will
                    start.  The default is for these comments to start
                    in the same column as other comments.

          -innn     The number of spaces for one indentation level.
                    The default is 4.

          -dj,-ndj  -dj will cause declarations to be left justified.
                    -ndj will cause them to be indented the same as
                    code.  The default is -ndj .



     Page 1                                        (last mod. 1/20/87)





     indent(1)                                               indent(1)



          -v,-nv    -v turns on ``verbose'' mode, -nv turns it off.
                    When in verbose mode, indent will report when it
                    splits one line of input into two or more lines of
                    output, and it will give some size statistics at
                    completion. The default is -nv.

          -bc,-nbc  If -bc is specified, then a newline will be forced
                    after each comma in a declaration. -nbc will turn
                    off this flag option.  The default is -bc.

          -dnnn     This flag option controls the placement of
                    comments which are not to the right of code.
                    Specifying -d2 means that such comments will be
                    placed two indentation levels to the left of code.
                    The default -d0 lines up these comments with the
                    code.  See the section on comment indentation
                    below.

          -br,-bl   Specifying -bl will cause complex statements to be
                    lined up like this:
                        if (...)
                        {
                            code
                        }
                    Specifying -br (the default) will make them look
                    like this:
                        if (...) {
                            code
                        }

          You may set up your own profile of defaults to indent by
          creating the file .indent.pro in your login directory and
          including whatever switches you like.  If indent is run and
          a profile file exists, then it is read to set up the
          program's defaults.  Switches on the command line, though,
          will always override profile switches.  The profile file
          must be a single line of not more than 127 characters.  The
          switches should be separated on the line by spaces or tabs.

        Multi-line expressions
          indent will not break up complicated expressions that extend
          over multiple lines, but it will usually correctly indent
          such expressions which have already been broken up.  Such an












     Page 2                                        (last mod. 1/20/87)





     indent(1)                                               indent(1)



          expression might end up looking like this:
              x =
                      (
                          (Arbitrary parenthesized expression)
                          +
                          (
                              (Parenthesized expression)
                              *
                              (Parenthesized expression)
                          )
                      );


        Comments
          indent recognizes four kinds of comments. They are: straight
          text, box comments, UNIX®-style comments, and comments that
          should be passed through unchanged. The action taken with
          these various types are as follows:

          Box comments.   indent assumes that any comment with a dash
          immediately after the start of comment (i.e. /*-) is a
          comment surrounded by a box of stars.  Each line of such a
          comment will be left unchanged, except that the first non-
          blank character of each successive line will be lined up
          with the beginning slash of the first line.  Box comments
          will be indented (see below).

          UNIX-style comments.   This is the type of section header
          which is used extensively in the UNIX system source.  If the
          start of comment (/*) appears on a line by itself, indent
          assumes that it is a UNIX-style comment.  These will be
          treated similarly to box comments, except the first non-
          blank character on each line will be lined up with the `*'
          of the /*.

          Unchanged comments.   Any comment which starts in column 1
          will be left completely unchanged.  This is intended
          primarily for documentation header pages.  The check for
          unchanged comments is made before the check for UNIX-style
          comments.

          Straight text.   All other comments are treated as straight
          text. indent will fit as many words (separated by blanks,
          tabs, or newlines) on a line as possible.  Straight text
          comments will be indented.

        Comment indentation
          Box, UNIX-style, and straight text comments may be indented.
          If a comment is on a line with code it will be started in
          the comment column, which is set by the -cnnn command line
          parameter.  Otherwise, the comment will be started at nnn
          indentation levels less than where code is currently being



     Page 3                                        (last mod. 1/20/87)





     indent(1)                                               indent(1)



          placed, where nnn is specified by the -dnnn command line
          parameter.  (Indented comments will never be placed in
          column 1.) If the code on a line extends past the comment
          column, the comment will be moved to the next line.

     DIAGNOSTICS
          Diagnostic error messages, mostly to tell that a text line
          has been broken or is too long for the output line.

     FILES
          /usr/ucb/indent
          .indent.pro    profile file

     SEE ALSO
          cb(1).

     BUGS
          Does not know how to format ``long'' declarations.





































     Page 4                                        (last mod. 1/20/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026