|
|
1.1 ! root 1: .\" Copyright (c) 1980 ,1990 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)vgrind.1 6.4 (Berkeley) 6/24/90 ! 19: .\" ! 20: .TH VGRIND 1 "October 25, 1988" ! 21: .UC 4 ! 22: .SH NAME ! 23: vgrind \- grind nice listings of programs ! 24: .SH SYNOPSIS ! 25: .B vgrind ! 26: [ ! 27: .B \-f ! 28: ] [ ! 29: .B \- ! 30: ] [ ! 31: .B \-t ! 32: ] [ ! 33: .B \-n ! 34: ] [ ! 35: .B \-x ! 36: ] [ ! 37: .B \-W ! 38: ] [ ! 39: .B \-sn ! 40: ] [ ! 41: .B \-h ! 42: header ! 43: ] [ ! 44: .B \-d ! 45: file ! 46: ] [ ! 47: .BI \-l language ! 48: ] ! 49: name ... ! 50: .SH DESCRIPTION ! 51: .I Vgrind ! 52: formats the program sources which are arguments ! 53: in a nice style using ! 54: .IR troff (1) ! 55: Comments are placed in italics, keywords in bold face, ! 56: and the name of the current function is listed down the margin of each ! 57: page as it is encountered. ! 58: .PP ! 59: .I Vgrind ! 60: runs in two basic modes, filter mode or regular mode. In filter mode ! 61: .I vgrind ! 62: acts as a filter in a manner similar to ! 63: .IR tbl (1). ! 64: The standard input is passed directly to the standard output except ! 65: for lines bracketed by the ! 66: .I troff-like ! 67: macros: ! 68: .IP .vS ! 69: - starts processing ! 70: .IP .vE ! 71: - ends processing ! 72: .LP ! 73: These lines are formatted as described above. The output from this ! 74: filter can be passed to ! 75: .I troff ! 76: for output. There need be no particular ordering with ! 77: .IR eqn (1) ! 78: or ! 79: .IR tbl (1). ! 80: .PP ! 81: In regular mode ! 82: .I vgrind ! 83: accepts input files, processes them, and passes them to ! 84: .IR troff (1) ! 85: for output. ! 86: .PP ! 87: In both modes ! 88: .I vgrind ! 89: passes any lines beginning with a decimal point without conversion. ! 90: .PP ! 91: The options are: ! 92: .IP \fB\-f\fP ! 93: forces filter mode ! 94: .IP \fB\-\fP ! 95: forces input to be taken from standard input (default if ! 96: .B \fB\-f\fP ! 97: is specified ) ! 98: .IP \fB\-t\fP ! 99: similar to the same option in ! 100: .I troff ! 101: causing formatted text to go to the standard output ! 102: .IP \fB\-n\fP ! 103: forces no keyword bolding ! 104: .IP \fB\-x\fP ! 105: outputs the index file in a ``pretty'' format. ! 106: The index file itself is produced whenever ! 107: .I vgrind ! 108: is run with a file called ! 109: .I index ! 110: in the current directory. ! 111: The index of function ! 112: definitions can then be run off by giving ! 113: .I vgrind ! 114: the ! 115: .B \-x ! 116: option and the file ! 117: .I index ! 118: as argument. ! 119: .IP \fB\-W\fP ! 120: forces output to the (wide) Versatec printer rather than the (narrow) ! 121: Varian ! 122: .IP \fB\-s\fP ! 123: specifies a point size to use on output (exactly the same as the argument ! 124: of a .ps) ! 125: .IP \fB\-h\fP ! 126: specifies a particular header to put on every output page (default is ! 127: the file name) ! 128: .IP \fB\-d\fP ! 129: specifies an alternate language definitions ! 130: file (default is /usr/share/misc/vgrindefs) ! 131: .IP \fB\-l\fP ! 132: specifies the language to use. Currently known are PASCAL ! 133: .RB ( \-lp ), ! 134: MODEL ! 135: .RB ( \-lm ), C ! 136: .RB ( \-lc ! 137: or the default), CSH ! 138: .RB ( \-lcsh ), ! 139: SHELL ! 140: .RB ( \-lsh ), ! 141: RATFOR ! 142: .RB ( \-lr ), ! 143: MODULA2 ! 144: .RB ( \-lmod2 ), ! 145: YACC ! 146: .RB ( \-lyacc ), ! 147: ISP ! 148: .RB ( \-lisp ), ! 149: and ICON ! 150: .RB ( \-lI ). ! 151: .SH FILES ! 152: .ta 2i ! 153: index file where source for index is created ! 154: .br ! 155: /usr/share/tmac/tmac.vgrind macro package ! 156: .br ! 157: /usr/libexec/vfontedpr preprocessor ! 158: .br ! 159: /usr/share/misc/vgrindefs language descriptions ! 160: .SH AUTHOR ! 161: Dave Presotto & William Joy ! 162: .SH SEE ALSO ! 163: vlp(1), ! 164: vtroff(1), ! 165: vgrindefs(5) ! 166: .SH BUGS ! 167: Vfontedpr assumes that a certain programming style is followed: ! 168: .PP ! 169: For ! 170: .B C ! 171: \- function names can be preceded on a line only by spaces, tabs, or an ! 172: asterisk. The parenthesized arguments must also be on the same line. ! 173: .PP ! 174: For ! 175: .B PASCAL ! 176: \- function names need to appear on the same line as the keywords ! 177: .I function ! 178: or ! 179: .I procedure. ! 180: .PP ! 181: For ! 182: .B MODEL ! 183: \- function names need to appear on the same line as the keywords ! 184: .I is ! 185: .I beginproc. ! 186: .PP ! 187: If these conventions are not followed, the indexing and marginal function ! 188: name comment mechanisms will fail. ! 189: .sp ! 190: More generally, arbitrary formatting styles for programs mostly look bad. ! 191: The use of spaces to align source code fails miserably; if you plan to ! 192: .I vgrind ! 193: your program you should use tabs. This is somewhat inevitable since the ! 194: font used by ! 195: .I vgrind ! 196: is variable width. ! 197: .PP ! 198: The mechanism of ctags in recognizing functions should be used here. ! 199: .PP ! 200: Filter mode does not work in documents using the \-me or \-ms macros. ! 201: (So what use is it anyway?)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.