C comment: clarify why psql's help/exit/quit must alone
authorBruce Momjian <bruce@momjian.us>
Sat, 21 Dec 2019 22:02:38 +0000 (17:02 -0500)
committerBruce Momjian <bruce@momjian.us>
Sat, 21 Dec 2019 22:02:38 +0000 (17:02 -0500)
Document why no indentation and why no non-whitespace postfix is
supported.

Backpatch-through: master

src/bin/psql/mainloop.c

index f7b1b94599dc939777f6d816645ffb11b5f21b38..440bcd7df4ddd5ed35a56fd5bfac685cd030f48e 100644 (file)
@@ -237,7 +237,13 @@ MainLoop(FILE *source)
            bool        found_exit_or_quit = false;
            bool        found_q = false;
 
-           /* Search for the words we recognize;  must be first word */
+           /*
+            * The assistance words, help/exit/quit, must have no
+            * whitespace before them, and only whitespace after, with an
+            * optional semicolon.  This prevents indented use of these
+            * words, perhaps as identifiers, from invoking the assistance
+            * behavior.
+            */
            if (pg_strncasecmp(first_word, "help", 4) == 0)
            {
                rest_of_line = first_word + 4;
@@ -249,7 +255,6 @@ MainLoop(FILE *source)
                rest_of_line = first_word + 4;
                found_exit_or_quit = true;
            }
-
            else if (strncmp(first_word, "\\q", 2) == 0)
            {
                rest_of_line = first_word + 2;