MCPcopy Create free account
hub / github.com/MariaDB/server / backtick_string

Function backtick_string

strings/my_vsnprintf.c:154–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

152*/
153
154static char *backtick_string(CHARSET_INFO *cs, char *to, const char *end,
155 char *par, size_t par_len, char quote_char)
156{
157 uint char_len;
158 char *start= to;
159 char *par_end= par + par_len;
160 size_t buff_length= (size_t) (end - to);
161
162 if (buff_length <= par_len)
163 goto err;
164 *start++= quote_char;
165
166 for ( ; par < par_end; par+= char_len)
167 {
168 uchar c= *(uchar *) par;
169 char_len= my_ci_charlen_fix(cs, (const uchar *) par, (const uchar *) par_end);
170 if (char_len == 1 && c == (uchar) quote_char )
171 {
172 if (start + 1 >= end)
173 goto err;
174 *start++= quote_char;
175 }
176 if (start + char_len >= end)
177 goto err;
178 start= strnmov(start, par, char_len);
179 }
180
181 if (start + 1 >= end)
182 goto err;
183
184 *start++= quote_char;
185 return start;
186
187err:
188 *to='\0';
189 return to;
190}
191
192
193/**

Callers 1

process_str_argFunction · 0.85

Calls 2

my_ci_charlen_fixFunction · 0.85
strnmovFunction · 0.85

Tested by

no test coverage detected