view runtime/tools/ccfilter_README.txt @ 34548:db67c09ccd53 v9.1.0175

patch 9.1.0175: wrong window positions with 'winfix{width,height}' Commit: https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a Author: Sean Dewar <6256228+seandewar@users.noreply.github.com> Date: Wed Mar 13 20:17:24 2024 +0100 patch 9.1.0175: wrong window positions with 'winfix{width,height}' Problem: winframe functions incorrectly recompute window positions if the altframe wasn't adjacent to the closed frame, which is possible if adjacent windows had 'winfix{width,height}' set. Solution: recompute for windows within the parent of the altframe and closed frame. Skip this (as before) if the altframe was top/left, but only if adjacent to the closed frame, as positions won't change in that case. Also correct the return value documentation for win_screenpos. (Sean Dewar) The issue revealed itself after removing the win_comp_pos call below winframe_restore in win_splitmove. Similarly, wrong positions could result from windows closed in other tabpages, as win_free_mem uses winframe_remove (at least until it is entered later, where enter_tabpage calls win_comp_pos). NOTE: As win_comp_pos handles only curtab, it's possible via other means for positions in non-current tabpages to be wrong (e.g: after changing 'laststatus', 'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional as an optimization? Should probably be documented in win_screenpos then, but I won't address that here. closes: #14191 Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 13 Mar 2024 20:30:03 +0100
parents e751b5c9dff3
children
line wrap: on
line source

READ THIS FIRST
===============

ccfilter is a C program to filter the output of a few compilers to a common
QuickFix format.  It is provided with Vim to make quickfix useful for more
compilers.

ccfilter WILL FAIL with long lines (more than 2047 bytes).


COMPILING AND INSTALLING:
=========================

To compile ccfilter, you can just do a plain:
    cc ccfilter.c -o ccfilter
Though, it may be wise to have your default compiler defined,
so you would normally compile it with one of the following:
    cc -D_GCC     ccfilter.c -o ccfilter
    cc -D_AIX     ccfilter.c -o ccfilter
    cc -D_ATT     ccfilter.c -o ccfilter
    cc -D_IRIX    ccfilter.c -o ccfilter
    cc -D_SOLARIS ccfilter.c -o ccfilter
    cc -D_HPUX    ccfilter.c -o ccfilter
You can then copy ccfilter to its target destination (i.e: /usr/local/bin).
The man page ccfilter.1 has to be copied to somewhere in your MANPATH,
under a man1 directory (i.e: /usr/local/man/man1).


SUPPORTED COMPILERS/PORTING NOTES:
==================================

The supported formats for the different compilers are described below:
In this section, meta-names are used as place-holders in the line
formats: <FILE> <ROW> <COL> <SEVERITY> <REASON> <>
The <> denotes ignored text.
Line formats are delimited by the ^ (caret) symbol.

0)  Special case: "gmake directory change" lines:
    Lines with a format like:
      ^gmake[<NUM>]: Entering directory `<DIR>'^
    are used to follow the directory changes during the make process,
    providing in the <FILE> part, a relative (if possible) directory
    path to the erroneous file.


1)  GCC:
    Recognized lines are of the format:
    - ^In file included from <FILE>:<ROW>:^
      Line following this one is used as <REASON>
      <SEVERITY> is always 'e' (error)
      <COL> is always '0'

    - ^<FILE>:<ROW>:<REASON>^
      <SEVERITY> is always 'e' (error)
      <COL> is always '0'


2)  AIX:
    Recognized lines are of the format:
    - ^"<FILE>", line <ROW>.<COL>: <> (<SEVERITY>) <REASON>",


3)  HPUX:
    Recognized lines are of the format:
    - ^cc: "<FILE>", line <ROW>: <SEVERITY>: <REASON>^
      <COL> is always '0'


4)  SOLARIS:
    Recognized lines are of the format:
    - ^"<FILE>", line <ROW>: warning: <REASON>^
      This assumes <SEVERITY> is "W"
      <COL> is always '0'

    - ^"<FILE>", line <ROW>: <REASON>^
      This assumes <SEVERITY> is "E"
      <COL> is always '0'


5)  ATT / NCR:
    Recognized lines are of the format:
    - ^<SEVERITY> "<FILE>",L<ROW>/C<COL><>:<REASON>^
			 or
    - ^<SEVERITY> "<FILE>",L<ROW>/C<COL>:<REASON>^
      Following lines beginning with a pipe (|) are continuation
      lines, and are therefore appended to the <REASON>

    - ^<SEVERITY> "<FILE>",L<ROW>:<REASON>^
      <COL> is '0'
      Following lines beginning with a pipe (|) are continuation
      lines, and are therefore appended to the <REASON>


6)  SGI-IRIX:
    Recognized lines are of the format:
    - ^cfe: <SEVERITY>: <FILE>: <ROW>: <REASON>^
			 or
      ^cfe: <SEVERITY>: <FILE>, line <ROW>: <REASON>^
      Following lines beginning with a dash (-) are "column-bar"
      that end with a caret in the column of the error. These lines
      are analyzed to generate the <COL>.