mirror of
https://github.com/troglobit/editline.git
synced 2025-10-16 23:18:08 +08:00
Add support for disabling default SIGINT and EOF behavior.
This patch adds support for `--disable-eof` and `--disable-sigint` to the Editline configure script. With either of these two switches the `tty_special()` function bypasses the special TTY checks making it possible to bind Ctrl-C and Ctrl-D to custom callbacks. This can be useful if you want to emulate a Cisco style CLI rather than traditional UNIX. The user can of course also redefine the VINTR and VEOF special terminal control characters, but these configure script switches may be easier to use for some. Also, the CLI example has been updated to bind Ctrl-D, Ctrl-C and Ctrl-Z for testing purposes. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
@@ -102,6 +102,24 @@ el_status_t list_possible(void)
|
||||
return el_ring_bell();
|
||||
}
|
||||
|
||||
el_status_t do_break(void)
|
||||
{
|
||||
puts("Breakout!");
|
||||
return CSeof;
|
||||
}
|
||||
|
||||
el_status_t do_exit(void)
|
||||
{
|
||||
puts("Bye bye!");
|
||||
return CSeof;
|
||||
}
|
||||
|
||||
el_status_t do_suspend(void)
|
||||
{
|
||||
puts("Abort!");
|
||||
return CSstay;
|
||||
}
|
||||
|
||||
int main(int ac __attribute__ ((unused)), char *av[] __attribute__ ((unused)))
|
||||
{
|
||||
char *line;
|
||||
@@ -111,6 +129,9 @@ int main(int ac __attribute__ ((unused)), char *av[] __attribute__ ((unused)))
|
||||
rl_set_complete_func(&my_rl_complete);
|
||||
rl_set_list_possib_func(&my_rl_list_possib);
|
||||
el_bind_key('?', list_possible);
|
||||
el_bind_key(CTL('C'), do_break);
|
||||
el_bind_key(CTL('D'), do_exit);
|
||||
el_bind_key(CTL('Z'), do_suspend);
|
||||
read_history(HISTORY);
|
||||
|
||||
while ((line = readline(prompt)) != NULL) {
|
||||
|
Reference in New Issue
Block a user