comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: get_immediate echoe character--compiled error?
Date: Wed, 04 Oct 2023 09:22:05 +0100	[thread overview]
Message-ID: <lyh6n64x1u.fsf@pushface.org> (raw)
In-Reply-To: 874jj75joi.fsf@nosuchdomain.example.com

Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

> Simon Wright <simon@pushface.org> writes:
>> The low-level Get_Immediate implementation is in sysdep.c (probably
>> not in the adainclude/ directory in an installed compiler), in
>> getc_immediate() and getc_immediate_nowait(), both of which call
>> getc_immediate_common(), and I can't see any difference! ECHO gets
>> turned off in getc_immediate_common(), regardless of caller - see
>> link.
>>
>> https://github.com/gcc-mirror/gcc/blob/3ca09d684e496240a87c0327687e2898060c2363/gcc/ada/sysdep.c#L387
>
> I haven't really looked into this, but I *think* what's happening is
> that for the versions with the Available parameter, ECHO hasn't yet been
> turned off when the user types the character.  If you type 'x', it
> echoes immediately, because the program has no way of knowing that the
> character will later be consumed by a call to Get_Immediate.  Presumably
> if the user hasn't typed anything, causing Available to be set to false,
> Get_Immediate will turn echoing off and back on again very quickly.
> Echoing is disabled only for small fraction of a second it takes for
> Get_Immediate to be executed.
>
> The Get_Immediate functions without the Available parameter block
> until a character is entered.  They can disable echoing before the
> character is entered.  Echoing will typically be disabled for minutes
> or seconds, from the time Get_Immediate is called and the time the
> user types something.
>
> The only solution I can think of would be to disable echoing (in some
> non-portable manner; I don't think the standard library provides this)
> before the user starts typing.  (Perhaps you want to run the
> Get_Immediate without the Available parameter in a separate task?)

Great analysis! Is this worth raising a PR on GCC Bugzilla? (maybe only
on the documentation?)

Or, alternatively, don't turn echoing off at all - what's the use case
for turning it off? After all, the ARM says nothing about it.

  reply	other threads:[~2023-10-04  8:22 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-02  2:42 get_immediate echoe character--compiled error? richardthiebaud
2023-10-02  5:48 ` Keith Thompson
2023-10-02 20:07   ` richardthiebaud
2023-10-02 22:27     ` Keith Thompson
2023-10-02 22:41       ` richardthiebaud
2023-10-02 22:47       ` richardthiebaud
2023-10-03  8:41         ` Niklas Holsti
2023-10-03 10:20           ` Simon Wright
2023-10-04  0:13             ` Keith Thompson
2023-10-04  8:22               ` Simon Wright [this message]
2023-10-04 10:48                 ` Jeffrey R.Carter
2023-10-04 11:38                   ` Simon Wright
2023-10-04 13:05                     ` Jeffrey R.Carter
2023-10-05  0:43                       ` Randy Brukardt
2023-10-04 16:55                 ` Niklas Holsti
2023-10-04 19:39                   ` Keith Thompson
2023-10-04 21:20                     ` Niklas Holsti
2023-10-03 21:00 ` G.B.
2023-10-04 21:14 ` Jeffrey R.Carter
2023-10-04 22:12   ` Keith Thompson
2023-10-05  9:51     ` Jeffrey R.Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox