diff options
Diffstat (limited to 'client/mysql.cc')
-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, |