summaryrefslogtreecommitdiff
path: root/client/mysql.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/mysql.cc')
-rw-r--r--client/mysql.cc34
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':
{