mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03: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:
		| @@ -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'; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user