mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Use 0x01 for newlines in saved history. It was determined to be not
used by multi-byte sequences, but futher invesetigation might prove this to be false.
This commit is contained in:
parent
f7d9874415
commit
18cbc7aefc
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2000-2005, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.47 2006/02/11 21:55:35 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.48 2006/02/12 05:24:38 momjian Exp $
|
||||
*/
|
||||
#include "postgres_fe.h"
|
||||
|
||||
@ -26,6 +26,15 @@ static bool useReadline;
|
||||
static bool useHistory;
|
||||
char *psql_history;
|
||||
|
||||
/*
|
||||
* Preserve newlines in saved queries by mapping '\n' to NL_IN_HISTORY
|
||||
*
|
||||
* It is assumed NL_IN_HISTORY will never be entered by the user
|
||||
* nor appear inside a multi-byte string. 0x00 is not properly
|
||||
* handled by the readline routines so it can not be used
|
||||
* for this purpose.
|
||||
*/
|
||||
#define NL_IN_HISTORY 0x01
|
||||
|
||||
enum histcontrol
|
||||
{
|
||||
@ -213,7 +222,7 @@ static void encode_history()
|
||||
cur_hist; cur_hist = next_history())
|
||||
for (cur_ptr = cur_hist->line; *cur_ptr; cur_ptr++)
|
||||
if (*cur_ptr == '\n')
|
||||
*cur_ptr = '\0';
|
||||
*cur_ptr = NL_IN_HISTORY;
|
||||
}
|
||||
|
||||
static void decode_history()
|
||||
@ -224,7 +233,7 @@ static void decode_history()
|
||||
for (history_set_pos(0), cur_hist = current_history();
|
||||
cur_hist; cur_hist = next_history())
|
||||
for (cur_ptr = cur_hist->line; *cur_ptr; cur_ptr++)
|
||||
if (*cur_ptr == '\0')
|
||||
if (*cur_ptr == NL_IN_HISTORY)
|
||||
*cur_ptr = '\n';
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user