[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: the GCC -traditional-cpp bugs



On Thu, Nov 20, 2003 at 09:43:40PM -0500, Nathanael Nerode wrote:
> OK.  I fixed a bug in gcc 3.4 and hope to backport it to the 3.3
> branch soon; now directives *really* need to be in column 1 to be treated
> as directives.  This fixes the main problem spotted in the sample at
> http://redwald.deadbeast.net/tmp/ABIDING_HATRED_OF_CPP/.
> 
> The other difference is genuinely strange, since the 'expected' result is
> produced by cpp-3.2, but not by cpp-2.95 (or 3.3, of course).  Accordingly,
> I think this probably qualifies as a bug of some sort in the Xresources file;
> either that, or the 'actual' output from cpp 3.3 is the correct one and the
> 'expected' output from cpp 3.2 is the wrong one.  Please help clarify.
> 
> That is this part:
> 
> --- Xresources.expected_output	2003-10-29 13:02:51.000000000 -0500
> +++ Xresources.actual_output	2003-10-28 23:21:02.000000000 -0500
> @@ -7,17 +7,17 @@
>  !
> 
> 
> -xlogin*login.translations: #override
> -	Ctrl<Key>R: abort-display()\n
> -	<Key>F1: set-session-argument(failsafe) finish-field()\n
> -	<Key>Delete: delete-character()\n
> -	<Key>Left: move-backward-character()\n 
> -	<Key>Right: move-forward-character()\n
> -	<Key>Home: move-to-begining()\n
> -	<Key>End: move-to-end()\n 
> -	Ctrl<Key>KP_Enter: set-session-argument(failsafe) finish-field()\n 
> -	<Key>KP_Enter: set-session-argument() finish-field()\n 
> -	Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n
> +xlogin*login.translations: #override \
> +	Ctrl<Key>R: abort-display()\n\
> +	<Key>F1: set-session-argument(failsafe) finish-field()\n\
> +	<Key>Delete: delete-character()\n\
> +	<Key>Left: move-backward-character()\n\
> +	<Key>Right: move-forward-character()\n\
> +	<Key>Home: move-to-begining()\n\
> +	<Key>End: move-to-end()\n\
> +	Ctrl<Key>KP_Enter: set-session-argument(failsafe) finish-field()\n\
> +	<Key>KP_Enter: set-session-argument() finish-field()\n\
> +	Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
>  	<Key>Return: set-session-argument() finish-field()

If I understand you correctly, then the following clarification should
help:

This "#override" business is not intended to be interpreted by cpp.  It
is translation table syntax.  It means "clobber any existing entries in
the event translation table for these events with the ones specified
here".

I think XFree86 will be happy if "[C preprocessor] directives *really*
need to be in column 1 to be treated as directives."

-- 
G. Branden Robinson                |    You should try building some of the
Debian GNU/Linux                   |    stuff in main that is
branden@debian.org                 |    modern...turning on -Wall is like
http://people.debian.org/~branden/ |    turning on the pain. -- James Troup

Attachment: signature.asc
Description: Digital signature


Reply to: