1READ THIS FIRST
2===============
3
4ccfilter is a C program to filter the output of a few compilers to a common
5QuickFix format.  It is provided with Vim to make quickfix useful for more
6compilers.
7
8ccfilter WILL FAIL with long lines (more than 2047 bytes).
9
10
11COMPILING AND INSTALLING:
12=========================
13
14To compile ccfilter, you can just do a plain:
15    cc ccfilter.c -o ccfilter
16Though, it may be wise to have your default compiler defined,
17so you would normally compile it with one of the following:
18    cc -D_GCC     ccfilter.c -o ccfilter
19    cc -D_AIX     ccfilter.c -o ccfilter
20    cc -D_ATT     ccfilter.c -o ccfilter
21    cc -D_IRIX    ccfilter.c -o ccfilter
22    cc -D_SOLARIS ccfilter.c -o ccfilter
23    cc -D_HPUX    ccfilter.c -o ccfilter
24You can then copy ccfilter to its target destination (i.e: /usr/local/bin).
25The man page ccfilter.1 has to be copied to somewhere in your MANPATH,
26under a man1 directory (i.e: /usr/local/man/man1).
27
28
29SUPPORTED COMPILERS/PORTING NOTES:
30==================================
31
32The supported formats for the different compilers are described below:
33In this section, meta-names are used as place-holders in the line
34formats: <FILE> <ROW> <COL> <SEVERITY> <REASON> <>
35The <> denotes ignored text.
36Line formats are delimited by the ^ (caret) symbol.
37
380)  Special case: "gmake directory change" lines:
39    Lines with a format like:
40      ^gmake[<NUM>]: Entering directory `<DIR>'^
41    are used to follow the directory changes during the make process,
42    providing in the <FILE> part, a relative (if possible) directory
43    path to the erroneous file.
44
45
461)  GCC:
47    Recognized lines are of the format:
48    - ^In file included from <FILE>:<ROW>:^
49      Line following this one is used as <REASON>
50      <SEVERITY> is always 'e' (error)
51      <COL> is always '0'
52
53    - ^<FILE>:<ROW>:<REASON>^
54      <SEVERITY> is always 'e' (error)
55      <COL> is always '0'
56
57
582)  AIX:
59    Recognized lines are of the format:
60    - ^"<FILE>", line <ROW>.<COL>: <> (<SEVERITY>) <REASON>",
61
62
633)  HPUX:
64    Recognized lines are of the format:
65    - ^cc: "<FILE>", line <ROW>: <SEVERITY>: <REASON>^
66      <COL> is always '0'
67
68
694)  SOLARIS:
70    Recognized lines are of the format:
71    - ^"<FILE>", line <ROW>: warning: <REASON>^
72      This assumes <SEVERITY> is "W"
73      <COL> is always '0'
74
75    - ^"<FILE>", line <ROW>: <REASON>^
76      This assumes <SEVERITY> is "E"
77      <COL> is always '0'
78
79
805)  ATT / NCR:
81    Recognized lines are of the format:
82    - ^<SEVERITY> "<FILE>",L<ROW>/C<COL><>:<REASON>^
83			 or
84    - ^<SEVERITY> "<FILE>",L<ROW>/C<COL>:<REASON>^
85      Following lines beginning with a pipe (|) are continuation
86      lines, and are therefore appended to the <REASON>
87
88    - ^<SEVERITY> "<FILE>",L<ROW>:<REASON>^
89      <COL> is '0'
90      Following lines beginning with a pipe (|) are continuation
91      lines, and are therefore appended to the <REASON>
92
93
946)  SGI-IRIX:
95    Recognized lines are of the format:
96    - ^cfe: <SEVERITY>: <FILE>: <ROW>: <REASON>^
97			 or
98      ^cfe: <SEVERITY>: <FILE>, line <ROW>: <REASON>^
99      Following lines beginning with a dash (-) are "column-bar"
100      that end with a caret in the column of the error. These lines
101      are analyzed to generate the <COL>.
102