Commit 93d3bac5 authored by Peter Eisentraut's avatar Peter Eisentraut

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
parent e6c63bf6
...@@ -3,7 +3,7 @@ ...@@ -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 @@ ...@@ -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) ...@@ -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))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment