diff options
author | unknown <iggy@recycle.(none)> | 2007-01-19 13:11:03 -0500 |
---|---|---|
committer | unknown <iggy@recycle.(none)> | 2007-01-19 13:11:03 -0500 |
commit | 3de7ec1f2bb5e3947bb8b050037af52533384adf (patch) | |
tree | 75eaf4c2dfadde1c6d470180fe5d32904af2bc57 /mysys/string.c | |
parent | 4ee678f9d2e7e5a04401dd4c5e7c51b5673b8171 (diff) | |
parent | 4032c303a9d5e030149f2a0ff87d54408237ef7e (diff) | |
download | mariadb-git-3de7ec1f2bb5e3947bb8b050037af52533384adf.tar.gz |
Merge recycle.(none):/src/bug22807/my50-bug22807
into recycle.(none):/src/bug22807/my51-bug22807
mysys/string.c:
Auto merged
Diffstat (limited to 'mysys/string.c')
-rw-r--r-- | mysys/string.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/mysys/string.c b/mysys/string.c index dd483e6da87..e1ff9ec8c26 100644 --- a/mysys/string.c +++ b/mysys/string.c @@ -137,37 +137,35 @@ my_bool dynstr_trunc(DYNAMIC_STRING *str, int n) 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 */ - va_start(dirty_text,append); + 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; } |