Re: [HACKERS] Still not happy with psql's multiline history behavior
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Still not happy with psql's multiline history behavior |
Дата | |
Msg-id | 200606040436.k544acC01227@candle.pha.pa.us обсуждение исходный текст |
Список | pgsql-patches |
I think I have fixed both problems with the attached, applied patch. Please let me know if it is OK. --------------------------------------------------------------------------- Tom Lane wrote: > I'm getting grudgingly more used to CVS HEAD's behavior of stuffing a > multiline command into the history buffer as a single item, but there's > still something bothering me about it. I've finally put my finger on > what. I think it should not combine SQL text and backslash commands > into a single history entry. The example that seriously sucks is: > > regression=# select foo ... > regression-# \r > Query buffer reset (cleared). > now control-P brings back: > regression=# select foo ... > \r > > In the case where I type SQL and backslash on one line, of course it > can't break them apart, but I think there should be a general rule that > a line starting with a backslash is always a separate history entry. > > Also, \e is seriously broken: after you edit the text and exit the > editor, the text is not reloaded into the visible display (although it > does seem to still be "behind the scenes" somewhere). > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings > -- Bruce Momjian http://candle.pha.pa.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + Index: src/bin/psql/mainloop.c =================================================================== RCS file: /cvsroot/pgsql/src/bin/psql/mainloop.c,v retrieving revision 1.74 diff -c -c -r1.74 mainloop.c *** src/bin/psql/mainloop.c 21 Mar 2006 13:38:12 -0000 1.74 --- src/bin/psql/mainloop.c 4 Jun 2006 04:33:34 -0000 *************** *** 306,312 **** if (first_query_scan && pset.cur_cmd_interactive) { /* Sending a command (PSQL_CMD_SEND) zeros the length */ ! if (scan_result == PSCAN_BACKSLASH && query_buf->len != 0) pg_write_history(line); else pg_append_history(line, history_buf); --- 306,312 ---- if (first_query_scan && pset.cur_cmd_interactive) { /* Sending a command (PSQL_CMD_SEND) zeros the length */ ! if (scan_result == PSCAN_BACKSLASH && history_buf->len != 0) pg_write_history(line); else pg_append_history(line, history_buf);
В списке pgsql-patches по дате отправления: