summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnel Husakovic <anel@mariadb.org>2019-05-22 01:54:47 -0700
committerAnel Husakovic <anel@mariadb.org>2019-10-28 02:29:14 -0700
commit396313d301b3567aeadd04ae6a9322da2adc0a8b (patch)
tree894c0e83556ee1ce3557ef51cbfe3a6c52d506d5
parent719ac0ad4af0dd1e20dbc94eff8f8c9f786b3393 (diff)
downloadmariadb-git-396313d301b3567aeadd04ae6a9322da2adc0a8b.tar.gz
MDEV-14448: Ctrl-C should not exit the client
-rw-r--r--client/mysql.cc13
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,