Index: src/bin/psql/command.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/bin/psql/command.c,v retrieving revision 1.168 diff -c -r1.168 command.c *** src/bin/psql/command.c 1 Jun 2006 00:15:36 -0000 1.168 --- src/bin/psql/command.c 4 Jun 2006 03:57:48 -0000 *************** *** 729,734 **** --- 729,735 ---- psql_scan_reset(scan_state); if (!quiet) puts(_("Query buffer reset (cleared).")); + status = PSQL_CMD_RESET_BUFFER; } /* \s save history in a file or show it on the screen */ Index: src/bin/psql/command.h =================================================================== RCS file: /projects/cvsroot/pgsql/src/bin/psql/command.h,v retrieving revision 1.25 diff -c -r1.25 command.h *** src/bin/psql/command.h 5 Mar 2006 15:58:51 -0000 1.25 --- src/bin/psql/command.h 4 Jun 2006 03:57:48 -0000 *************** *** 18,23 **** --- 18,24 ---- PSQL_CMD_UNKNOWN = 0, /* not done parsing yet (internal only) */ PSQL_CMD_SEND, /* query complete; send off */ PSQL_CMD_SKIP_LINE, /* keep building query */ + PSQL_CMD_RESET_BUFFER, /* reset the query buffer */ PSQL_CMD_TERMINATE, /* quit program */ PSQL_CMD_NEWEDIT, /* query buffer was changed (e.g., via \e) */ PSQL_CMD_ERROR /* the execution of the backslash command Index: src/bin/psql/mainloop.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/bin/psql/mainloop.c,v retrieving revision 1.74 diff -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 03:57:49 -0000 *************** *** 305,310 **** --- 305,317 ---- */ if (first_query_scan && pset.cur_cmd_interactive) { + /* If the \r command have been sent we completely erase + * the previous (multiline command). + * It won't be in the history after that + */ + if (slashCmdStatus == PSQL_CMD_RESET_BUFFER) + pg_clear_history(history_buf); + /* Sending a command (PSQL_CMD_SEND) zeros the length */ if (scan_result == PSCAN_BACKSLASH && query_buf->len != 0) pg_write_history(line);