MCPcopy Create free account
hub / github.com/acl-dev/acl / markup_unescape2

Function markup_unescape2

lib_acl/src/code/acl_xmlcode.c:278–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

276}
277
278static const char *markup_unescape2(const char *in, char **out, size_t *size)
279{
280 unsigned int n;
281 char temp[2], buf[7];
282
283 while (*in != 0) {
284 if (*in == '&' && *(in + 1) == '#'
285 && (sscanf(in, "&#%u%1[;]", &n, temp) == 2
286 || sscanf(in, "&#x%x%1[;]", &n, temp) == 2)
287 && n != 0)
288 {
289 size_t buflen = uni2utf8(n, buf, sizeof(buf));
290
291 if (copy_buf(out, size, buf, buflen) > 0)
292 break;
293
294 n = *(in + 2) == 'x' ? 3 : 2;
295 while (isxdigit((int) in[n]))
296 n++;
297
298 if(in[n] == ';')
299 n++;
300 in += n;
301 } else {
302 if (*size <= 0)
303 break;
304 **out = *in++;
305 *out += 1;
306 *size -= 1;
307 }
308 }
309
310 return in;
311}
312
313const char *acl_xml_decode2(const char *in, char **out, size_t *size)
314{

Callers 1

acl_xml_decode2Function · 0.85

Calls 2

uni2utf8Function · 0.85
copy_bufFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…