1 # name : mysql_remove_eol_carret.patch
2 # introduced : 11 or before
6 # Any small change to this file in the main branch
7 # should be done or reviewed by the maintainer!
8 --- a/client/client_priv.h
9 +++ b/client/client_priv.h
14 + OPT_NO_REMOVE_EOL_CARRET,
20 enum enum_info_type { INFO_INFO,INFO_ERROR,INFO_RESULT};
21 typedef enum enum_info_type INFO_TYPE;
23 +my_bool opt_no_remove_eol_carret=0;
25 static MYSQL mysql; /* The connection */
26 static my_bool ignore_errors=0,wait_flag=0,quick=0,
27 connected=0,opt_raw_data=0,unbuffered=0,output_tables=0,
28 @@ -1439,6 +1441,10 @@
29 NO_ARG, 1, 0, 0, 0, 0, 0},
30 {"skip-line-numbers", 'L', "Don't write line number for errors.", 0, 0, 0, GET_NO_ARG,
31 NO_ARG, 0, 0, 0, 0, 0, 0},
32 + {"no-remove-eol-carret", OPT_NO_REMOVE_EOL_CARRET, "Do not remove \\r before \\n in batch mode",
33 + (uchar**)&opt_no_remove_eol_carret , (uchar**)&opt_no_remove_eol_carret, 0,
35 + NO_ARG, 0, 0, 0, 0, 0, 0},
36 {"unbuffered", 'n', "Flush buffer after each query.", &unbuffered,
37 &unbuffered, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
38 {"column-names", OPT_COLUMN_NAMES, "Write column names in results.",
39 --- a/client/readline.cc
40 +++ b/client/readline.cc
43 #include "my_readline.h"
45 +extern my_bool opt_no_remove_eol_carret;
47 static bool init_line_buffer(LINE_BUFFER *buffer,File file,ulong size,
49 static bool init_line_buffer_from_string(LINE_BUFFER *buffer,char * str);
51 char *batch_readline(LINE_BUFFER *line_buff)
55 + ulong UNINIT_VAR(out_length);
57 if (!(pos=intern_read_line(line_buff, &out_length)))
59 if (out_length && pos[out_length-1] == '\n')
60 - if (--out_length && pos[out_length-1] == '\r') /* Remove '\n' */
61 + if (--out_length && !opt_no_remove_eol_carret && pos[out_length-1] == '\r') /* Remove '\n' */
62 out_length--; /* Remove '\r' */
63 line_buff->read_length=out_length;
66 +++ b/patch_info/mysql_remove_eol_carret.patch
68 +File=mysql_remove_eol_carret.patch
71 +Author=Percona <info@percona.com>
73 +Comment=Do not remove carret before eol if --no-remove-eol-carret is enabled in MySQL client.