mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#29323 mysql client only accetps ANSI encoded files
Fix: ignore BOM marker in the first line.
This commit is contained in:
@ -1042,6 +1042,17 @@ static int read_and_execute(bool interactive)
|
|||||||
if (!interactive)
|
if (!interactive)
|
||||||
{
|
{
|
||||||
line=batch_readline(status.line_buff);
|
line=batch_readline(status.line_buff);
|
||||||
|
/*
|
||||||
|
Skip UTF8 Byte Order Marker (BOM) 0xEFBBBF.
|
||||||
|
Editors like "notepad" put this marker in
|
||||||
|
the very beginning of a text file when
|
||||||
|
you save the file using "Unicode UTF-8" format.
|
||||||
|
*/
|
||||||
|
if (!line_number &&
|
||||||
|
(uchar) line[0] == 0xEF &&
|
||||||
|
(uchar) line[1] == 0xBB &&
|
||||||
|
(uchar) line[2] == 0xBF)
|
||||||
|
line+= 3;
|
||||||
line_number++;
|
line_number++;
|
||||||
if (!glob_buffer.length())
|
if (!glob_buffer.length())
|
||||||
status.query_start_line=line_number;
|
status.query_start_line=line_number;
|
||||||
|
@ -178,4 +178,6 @@ ERROR at line 1: DELIMITER cannot contain a backslash character
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
This is a file starting with UTF8 BOM 0xEFBBBF
|
||||||
|
This is a file starting with UTF8 BOM 0xEFBBBF
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -281,4 +281,13 @@ remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
|
|||||||
#
|
#
|
||||||
--exec $MYSQL test -e "/*! \C latin1 */ select 1;"
|
--exec $MYSQL test -e "/*! \C latin1 */ select 1;"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#29323 mysql client only accetps ANSI encoded files
|
||||||
|
#
|
||||||
|
--write_file $MYSQLTEST_VARDIR/tmp/bug29323.sql
|
||||||
|
select "This is a file starting with UTF8 BOM 0xEFBBBF";
|
||||||
|
EOF
|
||||||
|
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug29323.sql 2>&1
|
||||||
|
remove_file $MYSQLTEST_VARDIR/tmp/bug29323.sql;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
Reference in New Issue
Block a user