diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index 22ba847a9b..cb60dd8759 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.124 2008/03/29 19:40:12 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.125 2008/04/04 17:42:43 momjian Exp $ */ #include "postgres_fe.h" @@ -188,6 +188,7 @@ slashUsage(unsigned short int pager) ON(pset.timing)); fprintf(output, _(" \\unset NAME unset (delete) internal variable\n")); fprintf(output, _(" \\! [COMMAND] execute command in shell or start interactive shell\n")); + fprintf(output, _(" \\? display this help output\n")); fprintf(output, "\n"); fprintf(output, _("Query Buffer\n")); diff --git a/src/bin/psql/mainloop.c b/src/bin/psql/mainloop.c index 613dab0506..3cdcd2d3cd 100644 --- a/src/bin/psql/mainloop.c +++ b/src/bin/psql/mainloop.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.87 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.88 2008/04/04 17:42:43 momjian Exp $ */ #include "postgres_fe.h" #include "mainloop.h" @@ -11,6 +11,7 @@ #include "command.h" #include "common.h" +#include "help.h" #include "input.h" #include "settings.h" @@ -171,6 +172,16 @@ MainLoop(FILE *source) continue; } + /* A request for help? Be friendly and show them the slash way of doing things */ + if (pset.cur_cmd_interactive && query_buf->len == 0 && + pg_strncasecmp(line, "help", 4) == 0 && + (line[4] == '\0' || line[4] == ';' || isspace(line[4]))) + { + free(line); + slashUsage(pset.popt.topt.pager); + continue; + } + /* echo back if flag is set */ if (pset.echo == PSQL_ECHO_ALL && !pset.cur_cmd_interactive) puts(line);