Sujet : Re: 80386 C compiler
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.lang.cDate : 26. Nov 2024, 23:27:51
Autres entêtes
Organisation : None to speak of
Message-ID : <871pyxljfc.fsf@nosuchdomain.example.com>
References : 1 2 3 4 5 6 7 8
User-Agent : Gnus/5.13 (Gnus v5.13)
"Paul Edwards" <
mutazilah@gmail.com> writes:
"Keith Thompson" <Keith.S.Thompson+u@gmail.com> wrote in message
news:875xo9ln93.fsf@nosuchdomain.example.com...
>
True, but I don't know of anyone who's interested in a C 90 compiler
with this kind of extension. Paul Edwards has made it clear he's only
interested in unextended C90, and anyone else can just use a more modern
compiler.
>
While not a "compiler" per se, there is one extension to
C90 I might add, which is to have formal names like:
>
ESC_CHAR '\x1b'
ESC_CHAR_STR "\x1b"
>
that would allow me to support ASCII and EBCDIC in
my "starter suite".
I don't see why this needs to be a language extension. Just define it
as a macro wherever it's needed.
Microemacs and msged need them.
Do they?
I probably need names for the control keys too for microemacs.
>
I'll need to revisit the code to be sure.
My guess is that getting microemacs and/or msged to work with EBCDIC is
going to involve more than just defining the Escape character.
For example, here's a code fragment from msged :
while ((ch != 'a') && (ch != 'r')) {
ch = 0x7f & getkey();
ch = tolower(ch);
if (ch == 0x1b)
return(NULL);
}
0x1b is the ASCII code for the Escape character. Defining a macro
*within the code* is nearly trivial; the only tricky part would be
determining whether the current system uses EBCDIC.. But masking the
character value will break on an EBCDIC system, where many printable
characters have codes exceeding 0x7f. (This is assuming there's any
reason at all to make microemacs and msged support EBCDIC, something I'm
very skeptical about.)
If you insist on using a language extension to support the Escape
character, you could just copy gcc's '\e'.
[...]
-- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.comvoid Void(void) { Void(); } /* The recursive call of the void */