On 4/18/20 6:45 PM, [email protected] wrote:
>
>
>
> Apr 18, 2020, 23:41 by [email protected]:
>
>>
>> On another note, I naively tried to patch out the POSIX requirement, for my
>> own/local_use puposes but had no effect:
>> in this code
>> + /* posix mode SIGINT during read -e. We only get here if SIGINT is
>> trapped. */
>> + if (posixly_correct && this_shell_builtin == read_builtin && sig == 2)
>> + {
>> + last_command_exit_value = 128|SIGINT;
>> + throw_to_top_level ();
>> + }
>> by removing "posixly_correct &&" from above. I've no idea why that would
>> have no effect, a bit stumped.
>> I've even tried with a prior 'make clean'. The only explanation is that some
>> other code that happens only during `POSIXly correct` mode is affecting this
>> somehow...
>>
> regarding the above, I stand corrected: it does indeed have effect but only
> on 'read -e' (just as the comment states), that bash_event_hook() function
> isn't entered for 'read -p' which to me was surprising, yet no doubt
> correct(I'm guessing).
The hook functions are a way for readline to communicate with calling
applications when signals or other events happen, since you can't really
do very much in a signal handler, so they're not called when not using
readline.
> The code that allows 'read -p' to be interrupted when posixly_correct, must
> then be somewhere else, I shall keep lookin', yet I fear I might not find it
> :-"
Look in read_builtin() and the calls to various zread* functions there.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/