summaryrefslogtreecommitdiff
path: root/mysys/string.c
diff options
context:
space:
mode:
authorunknown <iggy@recycle.(none)>2007-01-19 13:11:03 -0500
committerunknown <iggy@recycle.(none)>2007-01-19 13:11:03 -0500
commit3de7ec1f2bb5e3947bb8b050037af52533384adf (patch)
tree75eaf4c2dfadde1c6d470180fe5d32904af2bc57 /mysys/string.c
parent4ee678f9d2e7e5a04401dd4c5e7c51b5673b8171 (diff)
parent4032c303a9d5e030149f2a0ff87d54408237ef7e (diff)
downloadmariadb-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.c28
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;
}