As you don't give example code I can only guess, but in general, calling
readline *from a signal handler* is a bit iffy, as readline may be busy
with its internal affairs (and hence in an inconsistent state) when the
signal fires.

A simple technique would be to set a global variable
remember_to_do_something from the signal handler, and then check it's value
in the main loop. To get this main loop to run *outside* readline itself
you would have to use readline's alternate  callback interface
<http://tiswww.case.edu/php/chet/readline/readline.html#SEC41>
which is not at all complicated to use.


Op za 9 jan. 2021 om 03:05 schreef Cosmin Petrescu <
[email protected]>:

> Hello
>
>       I was working with the Readline library on a linux basic shell and i
> found some unexpected behaviour with the unix_line_discard,
> kill_backward_line and kill_full_line functions. The program i am writing
> has a signal handler for ctrl+c and the purpose of it would be to "clear"
> the previous input considering that everything behind the ctrl+c is
> redundant. It all seems to work normally until i try to type the same
> letter as the one before the ctrl+c. For example, if i write x^C, the
> signal handler calls one of the functions (i tried with all of them) and
> then in the new line i can start typing anything but the letter x. It only
> allows writing the letter x after multiple keypresses. I am not 100% sure
> if this is a bug or a just a wrong way of using those functions but i am
> just making sure.
>
>

-- 
Hans Lub +31 (0)6 14818149         PGP key <https://hanslub.org/>
Dolomieten 74, NL 3524 VH Utrecht  [email protected]

Reply via email to