On 4/18/20 6:45 PM, gentoo_esh...@tutanota.com wrote: > > > > Apr 18, 2020, 23:41 by gentoo_esh...@tutanota.com: > >> >> 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 c...@case.edu http://tiswww.cwru.edu/~chet/