MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / backtick_string

Function backtick_string

strings/my_vsnprintf.c:144–180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142*/
143
144static char *backtick_string(const CHARSET_INFO *cs, char *to, char *end,
145 char *par, size_t par_len, char quote_char)
146{
147 uint char_len;
148 char *start= to;
149 char *par_end= par + par_len;
150 size_t buff_length= (size_t) (end - to);
151
152 if (buff_length <= par_len)
153 goto err;
154 *start++= quote_char;
155
156 for ( ; par < par_end; par+= char_len)
157 {
158 uchar c= *(uchar *) par;
159 if (!(char_len= my_mbcharlen(cs, c)))
160 char_len= 1;
161 if (char_len == 1 && c == (uchar) quote_char )
162 {
163 if (start + 1 >= end)
164 goto err;
165 *start++= quote_char;
166 }
167 if (start + char_len >= end)
168 goto err;
169 start= strnmov(start, par, char_len);
170 }
171
172 if (start + 1 >= end)
173 goto err;
174 *start++= quote_char;
175 return start;
176
177err:
178 *to='\0';
179 return to;
180}
181
182
183/**

Callers 1

process_str_argFunction · 0.85

Calls 1

strnmovFunction · 0.85

Tested by

no test coverage detected