Ignore UTF-8-encoded Unicode byte-order mark at the beginning of a file if

the client encoding is UTF-8.

a limited version of a patch proposed by Itagaki Takahiro
This commit is contained in:
Peter Eisentraut 2009-11-21 23:59:12 +00:00
parent e6c63bf660
commit 93d3bac564

View File

@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.96 2009/11/10 23:12:13 tgl Exp $
* $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.97 2009/11/21 23:59:12 petere Exp $
*/
#include "postgres_fe.h"
#include "mainloop.h"
@ -14,6 +14,8 @@
#include "input.h"
#include "settings.h"
#include "mb/pg_wchar.h"
/*
* Main processing loop for reading lines of input
@ -167,6 +169,10 @@ MainLoop(FILE *source)
pset.lineno++;
/* ignore UTF-8 Unicode byte-order mark */
if (pset.lineno == 1 && pset.encoding == PG_UTF8 && strncmp(line, "\xef\xbb\xbf", 3) == 0)
memmove(line, line + 3, strlen(line + 3) + 1);
/* nothing left on line? then ignore */
if (line[0] == '\0' && !psql_scan_in_quote(scan_state))
{