psql: initialize comment-begin setting to a useful value by default.
authorTom Lane <[email protected]>
Wed, 1 Dec 2021 17:24:50 +0000 (12:24 -0500)
committerTom Lane <[email protected]>
Wed, 1 Dec 2021 17:24:50 +0000 (12:24 -0500)
Readline's meta-# command is supposed to insert a comment marker
at the start of the current line.  However, the default marker is
"#" which is entirely unhelpful for SQL.  Set it to "-- " instead.
(This setting can still be overridden in one's ~/.inputrc file,
so this change won't affect people who have already taken steps
to make the command useful.)

Discussion: https://postgr.es/m/CAJcOf-cAdMVr7azeYR7nWKsNp7qhORzc84rV6d7m7knG5Hrtsw@mail.gmail.com

src/bin/psql/input.c

index f926bc98dc208ec0b749b7af3eea4b41c00d76b0..1dcd95a7b9e0db4c59cf06506febb178275242be 100644 (file)
@@ -353,8 +353,13 @@ initializeInput(int flags)
 
                useReadline = true;
 
-               /* these two things must be done in this order: */
+               /* set appropriate values for Readline's global variables */
                initialize_readline();
+
+               /* set comment-begin to a useful value for SQL */
+               (void) rl_variable_bind("comment-begin", "-- ");
+
+               /* this reads ~/.inputrc, so do it after rl_variable_bind */
                rl_initialize();
 
                useHistory = true;