INDENT.9
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:10k
源码类别:

操作系统开发

开发平台:

C/C++

  1. Command:   indent - reformat the layout of a program
  2. Syntax:    indent in_file [out_file] [options]
  3. Flags:     (many)
  4. Examples:  indent -br -c25 prog.c   # Indent prog.c
  5.            indent -npcs prog.c newprog.c # Put output on newprog.c
  6.      Indent reads a C program in, rearranges the layout, and  outputs  a
  7. new  C  program  that  will compile to the same executable binary as the
  8. original one.  The difference between the input and output is  that  the
  9. output  is in a standard layout determined by a large number of options.
  10. For most of the options there are two choices, one that enables  it  and
  11. one that disables it.
  12.      If indent is called with no file files, it operates  as  a  filter.
  13. If  called  with  one file name, that file is reformatted and the result
  14. replaces the original file.  A backup  is  created,  however,  with  the
  15. suffix  .BAK.  If it is called with two file names, the first one is the
  16. input file and the second one is the output file.  Only one file can  be
  17. reformatted  at  a  time  (e.g.,  one  cannot  call  indent  with *.c as
  18. argument; this is an error and will not work.).
  19. Options
  20.      Many options are available.  If you want to format a program to the
  21. 'official'  MINIX format, use pretty, which calls indent with the proper
  22. options and then postprocesses the output.   The  options  listed  below
  23. control the formatting style.
  24. OPTION: -bad, -nbad
  25.      If -bad is specified, a blank line is forced after every  block  of
  26. declarations.  Default: -nbad.
  27. OPTION: -bap, -nbap
  28.      If -bap is specified, a blank line is forced after every  procedure
  29. body.  Default: -nbap.
  30. OPTION: -bbb, -nbbb
  31.      If -bbb is specified, a blank line is  forced  before  every  block
  32. comment.  Default: -nbbb.
  33. OPTION: -bc, -nbc
  34.      If -bc is specified, then a newline is forced after each comma in a
  35. declaration. -nbc turns off this option.  The default is -nbc.
  36. OPTION: -bl, -br
  37.                                                                         
  38.                                                                         
  39.      Specifying -bl lines up compound statements like this:
  40.    if (...)
  41.    {
  42.        code
  43.    }
  44. Specifying -br (the default) makes them look like this:
  45.    if (...) {
  46.        code
  47.    }
  48. OPTION: -cn
  49.      The column in which comments on code start.  The default is 33.
  50. OPTION: -cdn
  51.      The column in which comments on declarations start.  The default is
  52. for these comments to start in the same column as those on code.
  53. OPTION: -cdb, -ncdb
  54.      Enables (disables) the placement of  comment  delimiters  on  blank
  55. lines.  With this option enabled, comments look like this:
  56.     /*
  57.      * this is a comment
  58.      */
  59. Rather than like this:
  60.     /* this is a comment */
  61. This only affects block comments, not comments to the right of code. The
  62. default is -cdb.
  63. OPTION: -ce, -nce
  64.      Enables (disables) forcing 'else's to cuddle up to the  immediately
  65. preceding '}'.  The default is -ce.
  66. OPTION: -cin
  67.      Sets the continuation indent to be n.  Continuation lines  will  be
  68. indented that far from the beginning of the first line of the statement.
  69. Parenthesized expressions have extra indentation added to  indicate  the
  70. nesting, unless -lp is in effect.  -ci defaults to the same value as -i.
  71.                                                                         
  72.                                                                         
  73. OPTION: -clin
  74.      Causes case labels to be indented n tab stops to the right  of  the
  75. containing  switch statement.  -cli0.5 causes case labels to be indented
  76. half a tab stop.  The default is -cli0. (This is the  only  option  that
  77. takes a fractional argument.)
  78. OPTION: -dn
  79.      Controls the placement of comments which are not to  the  right  of
  80. code.    Specifying   -d1  means  that  such  comments  are  placed  one
  81. indentation level to the left of code.  The default -d0 lines  up  these
  82. comments with the code.  See the section on comment indentation below.
  83. OPTION: -din
  84.      Specifies  the  indentation,  in  character   positions,   from   a
  85. declaration keyword to the following identifier.  The default is -di16.
  86. OPTION: -dj, -ndj
  87.      -dj left justifies declarations.   -ndj  indents  declarations  the
  88. same as code.  The default is -ndj.
  89. OPTION: -ei, -nei
  90.      Enables (disables) special  else-if  processing.  If  enabled,  ifs
  91. following  elses  will  have  the  same  indentation as the preceding if
  92. statement.  The default is -ei.
  93. OPTION: -fc1, -nfc1
  94.      Enables (disables) the formatting of comments that start in  column
  95. 1.  Often, comments whose leading '/' is in column 1 have been carefully
  96. hand formatted by the programmer.  In such cases, -nfc1 should be  used.
  97. The default is -fc1.
  98. OPTION: -in
  99.      The number of spaces for one indentation level.  The default is 8.
  100. OPTION: -ip, -nip
  101.      Enables (disables) the indentation of parameter  declarations  from
  102. the left margin.  The default is -ip.
  103. OPTION: -ln
  104.                                                                         
  105.                                                                         
  106.      Maximum length of an output line.  The default is 78.
  107. OPTION: -lp, -nlp
  108.      Lines up code surrounded by parenthesis in continuation lines.   If
  109. a  line  has  a  left  paren  which  is  not  closed  on that line, then
  110. continuation lines will be lined up to start at the  character  position
  111. just after the left paren.
  112. OPTION: -npro
  113.      Causes the profile files, .indent.pro in both the current directory
  114. and the user's home directory to be ignored.
  115. OPTION: -pcs, -npcs
  116.      If true (-pcs) all procedure  calls  will  have  a  space  inserted
  117. between the name and the '('. The default is -npcs.
  118. OPTION: -ps, -nps
  119.      If  true  (-ps)  the  pointer  following  operator  '->'  will   be
  120. surrounded by spaces on either side.  The default is -nps.
  121. OPTION: -psl, -npsl
  122.      If true (-psl) the names of procedures being defined are placed  in
  123. column 1 - their types, if any, will be left on the previous lines.  The
  124. default is -psl.
  125. OPTION: -sc, -nsc
  126.      Enables (disables) the placement of asterisks (*) at the left  edge
  127. of all comments.  The default is -sc.
  128. OPTION: -sob, -nsob
  129.      If -sob is specified, indent will  swallow  optional  blank  lines.
  130. You  can  use  this  to  get  rid of blank lines after declarations. The
  131. default is -nsob.
  132. OPTION: -st
  133.      Causes indent to take its input from stdin, and put its  output  to
  134. stdout.
  135. OPTION: -Ttypename
  136.                                                                         
  137.                                                                         
  138.      Adds typename to the list of type keywords.  Names  accumulate:  -T
  139. can  be specified more than once.  You need to specify all the typenames
  140. that appear in your program that are defined by #typedefs. Nothing  will
  141. be  harmed  if  you miss a few, but the program will not be formatted as
  142. nicely as it should.  This sounds like a painful thing to  have  to  do,
  143. but it is really a symptom of a problem in C: typedef causes a syntactic
  144. change in the language and indent cannot find all typedefs.
  145. OPTION: -troff
  146.      Causes indent to format the program for  processing  by  troff.  It
  147. will  produce a fancy listing in much the same spirit as vgrind.  If the
  148. output file is not specified, the default  is  standard  output,  rather
  149. than formatting in place.
  150. OPTION: -v, -nv
  151.      The -v flag turns on verbose mode;  -nv  turns  it  off.   When  in
  152. verbose  mode,  indent reports when it splits one line of input into two
  153. or more lines of output, and gives some size statistics  at  completion.
  154. The default is -nv.
  155. User Profiles
  156.      You may set up your own profile of defaults to indent by creating a
  157. file  called  .indent.pro  in  either  your  login  directory and/or the
  158. current directory and including whatever switches you like.  Switches in
  159. .indent.pro  in  the  current  directory  override  those  in your login
  160. directory (with  the  exception  of  -T  type  definitions,  which  just
  161. accumulate). If indent is run and a profile file exists, then it is read
  162. to set up the program's defaults.  The switches should be  separated  by
  163. spaces,  tabs  or  newlines.   Switches  on  the  command line, however,
  164. override profile switches.
  165. Comments
  166.      Indent assumes that any comment with a  dash  or  star  immediately
  167. after  the  start  of  comment  (that  is,  '/*-' or '/**') is a comment
  168. surrounded by a box of stars.  Each line  of  such  a  comment  is  left
  169. unchanged,  except  that  its indentation may be adjusted to account for
  170. the change in indentation of the first line of the comment.
  171.      All other comments are treated as straight text.   Indent  fits  as
  172. many  words  (separated  by  blanks,  tabs,  or  newlines)  on a line as
  173. possible.  Blank lines break paragraphs.
  174.      If a comment is on a line with code it is started  in  the  comment
  175. column,  which is set by the -cn command line parameter.  Otherwise, the
  176. comment is started at n indentation  levels  less  than  where  code  is
  177. currently  being  placed,  where  n is specified by the -dn command line
  178.                                                                         
  179.                                                                         
  180. parameter.  If the code on a line extends past the comment  column,  the
  181. comment  starts  further  to  the  right,  and  the  right margin may be
  182. automatically extended in extreme cases.
  183. Preprocessor Lines
  184.      In general, indent  leaves  preprocessor  lines  alone.   The  only
  185. reformatting  that  it will do is to straighten up trailing comments. It
  186. leaves    embedded    comments    alone.     Conditional     compilation
  187. (#ifdef...#endif)   is  recognized  and  indent  attempts  to  correctly
  188. compensate for the syntactic peculiarities introduced.
  189. C Syntax
  190.      Indent understands a substantial amount about the syntax of C,  but
  191. it  has a forgiving parser.  It attempts to cope with the usual sorts of
  192. incomplete and misformed syntax.  In particular, the use of macros like:
  193.         #define forever for(;;)
  194. is handled properly.
  195.