[Top][All Lists]

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

bug#14409: emacs 24.3 -- windows

From: Frank P Esposito
Subject: bug#14409: emacs 24.3 -- windows
Date: Thu, 30 May 2013 23:26:13 -0400

Hello -- 

Were you able to debug the expanded macros with the i-files I sent to you? 

here is a link to the i-file (in a zip) 


Frank Esposito 

On Thu, May 16, 2013 at 1:33 AM, Eli Zaretskii <address@hidden> wrote:
> Date: Wed, 15 May 2013 22:31:48 -0400
> From: Frank P Esposito <address@hidden>
> You need to fix the code, or  update the readme / install (text) files to
> note that this version of emacs  DOES NOT COMPILE with versions of visual
> studio that ARE NOT C99 compliant.

There was no intent to break compilation with Studio 2003.  It's just
that the number of people who use that seems to be vanishingly small,
and in particular none of them tried the pretest version and reported

> there are references to  defines that are  part of stdint.h (C99) --  you
> need to define them or not use them

We have a replacement stdint.h in nt/inc.  If something is missing
from there, please tell what that is.

> it seems that there is new code in  "charset.c charset.h" that have very
> complex macros that are imbedded in other complex macros
> that expand to something  like (see below)  which is impossible to debug --
> this is causing the error
> coding.c
> coding.c(2604) : error C2065: 'value' : undeclared identifier
> coding.c(2604) : error C2143: syntax error : missing ':' before ')'
> coding.c(2604) : error C2059: syntax error : ')'
> coding.c(2604) : error C2059: syntax error : ')'
> coding.c(2604) : error C2059: syntax error : ')'
> coding.c(2604) : fatal error C1013: compiler limit : too many open
> parentheses

This is about CODING_CHAR_CHARSET, right?  But then I don't understand
the expansion you are showing, which starts with this:

>         charset = (charset_table + (preferred_charset_id));
>         do { ptrdiff_t offset; charset_map_loaded = 0; result = (((((sizeof
> ((c) + 0)) > (sizeof ((0x80) + 0)) ? (sizeof ((c) + 0)) : (sizeof ((0x80) +
> 0))) <= sizeof (unsigned) ? ((c) + (unsigned) 0) < ((0x80) + (unsigned) 0)
> : ((c) + (unsigned long) 0) < ((0x80) + (unsigned long) 0)) &&

I see no "result = ...", or anything that could expand into it, the
definition of CODING_CHAR_CHARSET.  What am I missing?

> I would be willing work to get this cleaned up  -- VC 7.1 supports inline
> functions

Please do, and thanks.  Just one request: try to keep the
MSVC-specific stuff separate, preferably somewhere under the nt/
directory (e.g., nt/inc/ms-w32.h) or in a clearly #ifdef'ed section at
the beginning of a .c or .h file in src/, so that these changes don't
make reading of the code harder.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]