]> granicus.if.org Git - postgresql/commitdiff
Allow 'help' in psql to show \? help, for novice assistance.
authorBruce Momjian <bruce@momjian.us>
Fri, 4 Apr 2008 17:42:43 +0000 (17:42 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 4 Apr 2008 17:42:43 +0000 (17:42 +0000)
Greg Sabino Mullane

src/bin/psql/help.c
src/bin/psql/mainloop.c

index 22ba847a9bcd02c08d8bc347f307259fe4d6d1e0..cb60dd8759dcfbc2fce2b8c027d6b69541b72434 100644 (file)
@@ -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"));
index 613dab0506efd6fb581b0bde4fb75cefd0804cc3..3cdcd2d3cd66dac2624976d5a108aecba9bad75f 100644 (file)
@@ -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);