diff options
author | Anel Husakovic <anel@mariadb.org> | 2019-05-22 01:54:47 -0700 |
---|---|---|
committer | Anel Husakovic <anel@mariadb.org> | 2019-10-28 02:29:14 -0700 |
commit | 396313d301b3567aeadd04ae6a9322da2adc0a8b (patch) | |
tree | 894c0e83556ee1ce3557ef51cbfe3a6c52d506d5 /client | |
parent | 719ac0ad4af0dd1e20dbc94eff8f8c9f786b3393 (diff) | |
download | mariadb-git-396313d301b3567aeadd04ae6a9322da2adc0a8b.tar.gz |
MDEV-14448: Ctrl-C should not exit the client
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index 50d45696a5c..86ee22e5e6a 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1368,12 +1368,21 @@ sig_handler handle_sigint(int sig) char kill_buffer[40]; MYSQL *kill_mysql= NULL; - /* terminate if no query being executed, or we already tried interrupting */ - if (!executing_query || (interrupted_query == 2)) + /* Terminate if we already tried interrupting. */ + if (interrupted_query == 2) { tee_fprintf(stdout, "Ctrl-C -- exit!\n"); goto err; } + /* If no query being executed, don't exit. */ + if (!executing_query) + { + tee_fprintf(stdout, "Ctrl-C\n"); + rl_on_new_line(); // Regenerate the prompt on a newline + rl_replace_line("", 0); // Clear the previous text + rl_redisplay(); + return; + } kill_mysql= mysql_init(kill_mysql); if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password, |