Loading mysys/string.c +13 −15 Original line number Diff line number Diff line Loading @@ -131,37 +131,35 @@ my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, ...) { #ifdef __WIN__ char quote_str[]= "\""; const char *quote_str= "\""; const uint quote_len= 1; #else char quote_str[]= "\'"; const char *quote_str= "\'"; const uint quote_len= 1; #endif /* __WIN__ */ my_bool ret= TRUE; va_list dirty_text; ret&= dynstr_append(str, quote_str); /* Leading quote */ ret&= dynstr_append_mem(str, quote_str, quote_len); /* Leading quote */ va_start(dirty_text, append); while (append != NullS) { char *cur_pos= append; char *next_pos= cur_pos; const char *cur_pos= append; const char *next_pos= cur_pos; /* Search for quote in each string and replace with escaped quote */ while(*(next_pos= strcend(cur_pos, quote_str[0])) != '\0') { char *tmp_buff= my_malloc((next_pos - cur_pos) + 1, MYF(MY_ZEROFILL)); strnmov(tmp_buff, cur_pos, (next_pos - cur_pos)); ret&= dynstr_append(str, tmp_buff); my_free((gptr)tmp_buff, MYF(0)); ret&= dynstr_append(str ,"\\"); ret&= dynstr_append(str, quote_str); ret&= dynstr_append_mem(str, cur_pos, next_pos - cur_pos); ret&= dynstr_append_mem(str ,"\\", 1); ret&= dynstr_append_mem(str, quote_str, quote_len); cur_pos= next_pos + 1; } ret&= dynstr_append(str, cur_pos); ret&= dynstr_append_mem(str, cur_pos, next_pos - cur_pos); append= va_arg(dirty_text, char *); } va_end(dirty_text); ret&= dynstr_append(str, quote_str); /* Trailing quote */ ret&= dynstr_append_mem(str, quote_str, quote_len); /* Trailing quote */ return ret; } Loading Loading
mysys/string.c +13 −15 Original line number Diff line number Diff line Loading @@ -131,37 +131,35 @@ my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, ...) { #ifdef __WIN__ char quote_str[]= "\""; const char *quote_str= "\""; const uint quote_len= 1; #else char quote_str[]= "\'"; const char *quote_str= "\'"; const uint quote_len= 1; #endif /* __WIN__ */ my_bool ret= TRUE; va_list dirty_text; ret&= dynstr_append(str, quote_str); /* Leading quote */ ret&= dynstr_append_mem(str, quote_str, quote_len); /* Leading quote */ va_start(dirty_text, append); while (append != NullS) { char *cur_pos= append; char *next_pos= cur_pos; const char *cur_pos= append; const char *next_pos= cur_pos; /* Search for quote in each string and replace with escaped quote */ while(*(next_pos= strcend(cur_pos, quote_str[0])) != '\0') { char *tmp_buff= my_malloc((next_pos - cur_pos) + 1, MYF(MY_ZEROFILL)); strnmov(tmp_buff, cur_pos, (next_pos - cur_pos)); ret&= dynstr_append(str, tmp_buff); my_free((gptr)tmp_buff, MYF(0)); ret&= dynstr_append(str ,"\\"); ret&= dynstr_append(str, quote_str); ret&= dynstr_append_mem(str, cur_pos, next_pos - cur_pos); ret&= dynstr_append_mem(str ,"\\", 1); ret&= dynstr_append_mem(str, quote_str, quote_len); cur_pos= next_pos + 1; } ret&= dynstr_append(str, cur_pos); ret&= dynstr_append_mem(str, cur_pos, next_pos - cur_pos); append= va_arg(dirty_text, char *); } va_end(dirty_text); ret&= dynstr_append(str, quote_str); /* Trailing quote */ ret&= dynstr_append_mem(str, quote_str, quote_len); /* Trailing quote */ return ret; } Loading