1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-05 23:56:58 +03:00

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 * 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 "postgres_fe.h"
#include "mainloop.h" #include "mainloop.h"
@ -14,6 +14,8 @@
#include "input.h" #include "input.h"
#include "settings.h" #include "settings.h"
#include "mb/pg_wchar.h"
/* /*
* Main processing loop for reading lines of input * Main processing loop for reading lines of input
@ -167,6 +169,10 @@ MainLoop(FILE *source)
pset.lineno++; 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 */ /* nothing left on line? then ignore */
if (line[0] == '\0' && !psql_scan_in_quote(scan_state)) if (line[0] == '\0' && !psql_scan_in_quote(scan_state))
{ {