diff options
Diffstat (limited to 'client/mysql.cc')
-rw-r--r-- | client/mysql.cc | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index 9c6320fe10a..bea015d721e 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -5112,17 +5112,31 @@ static const char *construct_prompt() processed_prompt.append("unknown"); break; case 'h': + case 'H': { - const char *prompt; - prompt= connected ? mysql_get_host_info(&mysql) : "not_connected"; - if (strstr(prompt, "Localhost")) - processed_prompt.append("localhost"); - else - { - const char *end=strcend(prompt,' '); - processed_prompt.append(prompt, (uint) (end-prompt)); - } - break; + const char *prompt; + prompt= connected ? mysql_get_host_info(&mysql) : "not_connected"; + if (strstr(prompt, "Localhost")) + { + if (*c == 'h') + processed_prompt.append("localhost"); + else + { + static char hostname[FN_REFLEN]; + if (hostname[0]) + processed_prompt.append(hostname); + else if (gethostname(hostname, sizeof(hostname)) == 0) + processed_prompt.append(hostname); + else + processed_prompt.append("gethostname(2) failed"); + } + } + else + { + const char *end=strcend(prompt,' '); + processed_prompt.append(prompt, (uint) (end-prompt)); + } + break; } case 'p': { |