[Top][All Lists]

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

Re: looking for consistent C-c trap behavior

From: Chet Ramey
Subject: Re: looking for consistent C-c trap behavior
Date: Sun, 19 Apr 2020 15:20:56 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

On 4/18/20 6:45 PM, address@hidden wrote:
> Apr 18, 2020, 23:41 by address@hidden:
>> 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

> 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    address@hidden    http://tiswww.cwru.edu/~chet/

reply via email to

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