Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <87ttbtjjyt.fsf@nosuchdomain.example.com>
Deutsch   English   Français   Italiano  
<87ttbtjjyt.fsf@nosuchdomain.example.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: 80386 C compiler
Date: Tue, 26 Nov 2024 21:59:06 -0800
Organization: None to speak of
Lines: 136
Message-ID: <87ttbtjjyt.fsf@nosuchdomain.example.com>
References: <vhvbhf$28opb$1@dont-email.me> <vhvsm9$2bmq9$1@dont-email.me>
	<vi0dt1$2el7m$1@dont-email.me> <20241125101701.894@kylheku.com>
	<qrp9kjd09n2v3srmabqccmnsbr1r6nkm2m@4ax.com>
	<20241125132021.212@kylheku.com>
	<875xo9ln93.fsf@nosuchdomain.example.com>
	<vi5elj$3kdmr$1@dont-email.me>
	<871pyxljfc.fsf@nosuchdomain.example.com>
	<vi6adc$3shu6$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Wed, 27 Nov 2024 06:59:10 +0100 (CET)
Injection-Info: dont-email.me; posting-host="94b120d49bf499dd826bd7ffb8691177";
	logging-data="4085883"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+qn6MwXqsbAKHQdGugEEjM"
User-Agent: Gnus/5.13 (Gnus v5.13)
Cancel-Lock: sha1:jPpwjMUKiBX45zLnFZc3TxFKbds=
	sha1:1KV3TXj7Z2EDq+dzcC0YhsXmsDA=
Bytes: 6098

"Paul Edwards" <mutazilah@gmail.com> writes:
> "Keith Thompson" <Keith.S.Thompson+u@gmail.com> wrote in message
> news:871pyxljfc.fsf@nosuchdomain.example.com...
>> "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.
>
> Because it is something I expect from the language - a portable
> way to provide the keys required to drive an ANSI X3.64 terminal.

I don't think that's a reasonable expectation, but it's your project,
so do what you like.

>> > Microemacs and msged need them.
>>
>> Do they?
>
> How else do you propose providing a fullscreen interface?
>
> We have a standard - ANSI X3.64.

It doesn't address EBCDIC.  If you want to create your own standard that
does, nobody is going to stop you.

>> > 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.
>
> microemacs has been working on EBCDIC for years. I ported
> it already (to a sufficient extent, anyway).

Apparently you think you need a language extension for something
you've already implemented.  Odd.

>> 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);
>>     }
>
> I haven't attempted to do msged yet. But yes, that's exactly
> the sort of code that I want to eliminate. Although that
> particular bit of code isn't in the msged version I am using:

It's from https://github.com/jrnutt/msged .

[...]

> But yes - that's the whole point - I expect to be able to write
> that code portably, in either the standard, or a modified
> standard - whatever is required to get ANSI X3.159-1989
> to support ANSI X3.64.

The (ancient and obsolete) 1990 ISO C standard does not support your
expectation.

> It could be an ANSI X3.64 extension I suppose.
>
>> 0x1b is the ASCII code for the Escape character.  Defining a macro
>> *within the code* is nearly trivial;
>
> Defining it in a standard C90 header file or some extension
> is equally as trivial, and would put it where it belongs, rather
> than in every single fullscreen application.

OK, you have your opinion about where it "belongs".  I won't continue
arguing about it.

>> 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.
>
> And a C90-compliant program *already* shouldn't be doing
> such masks, as C90 *already* allows for EBCDIC.

Or for any other character set that satisifies a few requirements, and
which may or may not have a character called "escape".

Apparently by "C90-compliant" you mean "100% portable", which is
certainly not what I mean by it.  The source code for microemacs and
msged is not 100% portable.  If you want to work on making it so, knock
yourself out.

>> (This is assuming there's any
>> reason at all to make microemacs and msged support EBCDIC, something I'm
>> very skeptical about.)
>
> What editor would you like me to use on my mainframe
> operating systems (z/PDOS and z/PDOS-generic) instead?
> edlin?

Use any editor you like.  You've now said you already have a working
microemacs for mainframe operating systems.

[...]

>> If you insist on using a language extension to support the Escape
>> character, you could just copy gcc's '\e'.
>
> That puts a burden on the compiler - every compiler,
> basically - which is far from the trivial addition to an
> existing header file, or a new header file, that I
> suggested as an alternative.

What do you mean by "every compiler"?  I thought all you cared
about was a (currently nonexistent) public domain C90 compiler.

[...]

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */