VGRIND(1)                  BSD System Compatibility                  VGRIND(1)

       vgrind - grind nice listings of programs

       vgrind [-2ftnxw] [-sn] [-h header] [-d file] [-l language] [-P printer]
              [-T device] [-o list] name ...

       Vgrind formats the program sources which are arguments in a nice style
       using troff(1).  Comments are placed in italics, keywords in bold face,
       and the name of the current function is listed down the margin of each
       page as it is encountered.

       Vgrind runs in two basic modes, filter mode or regular mode.  In filter
       mode vgrind acts as a filter in a manner similar to tbl(1).  The
       standard input is passed directly to the standard output except for
       lines bracketed by the troff-like macros:

       .vS    - starts processing

       .vE    - ends processing

       These lines are formatted as described above.  The output from this
       filter can be passed to troff for output.  There need be no particular
       ordering with eqn(1) or tbl(1).

       In regular mode vgrind accepts input files, processes them, and passes
       them to troff(1) for output.

       In both modes vgrind passes any lines beginning with a decimal point
       without conversion.

       The options are:

       -2     produce two-column output

       -f     forces filter mode

       -t     similar to the same option in troff causing formatted text to go
              to the standard output

       -n     forces no keyword bolding

       -x     outputs the index file in a ``pretty'' format.  The index file
              itself is produced whenever vgrind is run with a file called
              index in the current directory.  The index of function
              definitions can then be run off by giving vgrind the -x option
              and the file index as argument.

       -s     specifies a point size to use on output (exactly the same as the
              argument of a .ps)

       -h     specifies a particular header to put on every output page
              (default is the file name)

       -d     specifies an alternate language definitions file (default is

       -l     specifies the language to use.  Currently known are PASCAL
              (-lp), MODEL (-lm), C (-lc or the default), C++ (-lc++), CSH
              (-lcsh), SHELL (-lsh), RATFOR (-lr), MODULA2 (-lmod2), YACC
              (-lyacc), ISP (-lisp), and ICON (-lI).

       -P     specifies that output is directed to the named printer.

       -T     is passed to troff and specifies the device to use.

       -o     is passed to troff and specifies selected pages to print.

       -w     Sets the size of tabulators to four instead of the default

       index     file where source for index is created
       /usr/ucblib/tmac/vgrind  macro package
       /usr/ucblib/vfontedpr    preprocessor
       /usr/ucblib/vgrindefs    language descriptions


       Vfontedpr assumes that a certain programming style is followed:

       For C and C++ - function names can be preceded on a line only by
       spaces, tabs, or an asterisk.  The parenthesized arguments must also be
       on the same line.

       For PASCAL - function names need to appear on the same line as the
       keywords function or procedure.

       For MODEL - function names need to appear on the same line as the
       keywords is beginproc.

       If these conventions are not followed, the indexing and marginal
       function name comment mechanisms will fail.

       More generally, arbitrary formatting styles for programs mostly look
       bad.  The use of spaces to align source code fails miserably; if you
       plan to vgrind your program you should use tabs.  This is somewhat
       inevitable since the font used by vgrind is variable width.

       The mechanism of ctags in recognizing functions should be used here.

       Filter mode does not work in documents using the -me or -ms macros.
       (So what use is it anyway?)

       Written by Dave Presotto & William Joy.

4th Berkeley Distribution           11/6/05                          VGRIND(1)