diff options
Diffstat (limited to 'src/bin/psql/prompt.c')
-rw-r--r-- | src/bin/psql/prompt.c | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c index f01a55b5696..194c6ef0f66 100644 --- a/src/bin/psql/prompt.c +++ b/src/bin/psql/prompt.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.22 2001/10/25 05:49:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.23 2003/03/20 06:43:35 momjian Exp $ */ #include "postgres_fe.h" #include "prompt.h" @@ -69,17 +69,30 @@ get_prompt(promptStatus_t status) char buf[MAX_PROMPT_SIZE + 1]; bool esc = false; const char *p; - const char *prompt_string; + const char *prompt_string = "? "; + const char *prompt_name = NULL; - if (status == PROMPT_READY) - prompt_string = GetVariable(pset.vars, "PROMPT1"); - else if (status == PROMPT_CONTINUE || status == PROMPT_SINGLEQUOTE || status == PROMPT_DOUBLEQUOTE || status == PROMPT_COMMENT || status == PROMPT_PAREN) - prompt_string = GetVariable(pset.vars, "PROMPT2"); - else if (status == PROMPT_COPY) - prompt_string = GetVariable(pset.vars, "PROMPT3"); - else - prompt_string = "? "; + switch (status) + { + case PROMPT_READY: + prompt_name = "PROMPT1"; + break; + + case PROMPT_CONTINUE: + case PROMPT_SINGLEQUOTE: + case PROMPT_DOUBLEQUOTE: + case PROMPT_COMMENT: + case PROMPT_PAREN: + prompt_name = "PROMPT2"; + break; + + case PROMPT_COPY: + prompt_name = "PROMPT3"; + break; + } + if (prompt_name) + prompt_string = GetVariable(pset.vars, prompt_name); destination[0] = '\0'; @@ -92,21 +105,15 @@ get_prompt(promptStatus_t status) { switch (*p) { - case '%': - strcpy(buf, "%"); - break; - /* Current database */ case '/': if (pset.db) strncpy(buf, PQdb(pset.db), MAX_PROMPT_SIZE); break; case '~': - { - const char *var; - if (pset.db) { + const char *var; if (strcmp(PQdb(pset.db), PQuser(pset.db)) == 0 || ((var = getenv("PGDATABASE")) && strcmp(var, PQdb(pset.db)) == 0)) strcpy(buf, "~"); @@ -114,7 +121,7 @@ get_prompt(promptStatus_t status) strncpy(buf, PQdb(pset.db), MAX_PROMPT_SIZE); } break; - } + /* DB server hostname (long/short) */ case 'M': case 'm': @@ -164,15 +171,8 @@ get_prompt(promptStatus_t status) case '7': case '8': case '9': - { - long int l; - char *end; - - l = strtol(p, &end, 0); - sprintf(buf, "%c", (unsigned char) l); - p = end - 1; + *buf = parse_char(&p); break; - } case 'R': switch (status) |