diff --git a/src/bin/psql/mainloop.c b/src/bin/psql/mainloop.c index b39b2a44e50d737f8ec772b5c54fd3eaaf1d3e62..b6f87670af0b9de80b681b10d994296d19696f8c 100644 --- a/src/bin/psql/mainloop.c +++ b/src/bin/psql/mainloop.c @@ -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)) {