MCPcopy Index your code
hub / github.com/assaultcube/AC / filterrichtext

Function filterrichtext

source/src/protocol.cpp:393–430  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

391// dst can be identical to src; dst needs to be of size "min(len, strlen(s)) + 1"
392
393void filterrichtext(char *dst, const char *src, int len)
394{
395 int b, c;
396 unsigned long ul;
397 for(c = *src; c; c = *++src)
398 {
399 c &= 0x7F; // 7-bit ascii
400 if(c == '\\')
401 {
402 b = 0;
403 c = *++src;
404 switch(c)
405 {
406 case '\0': --src; continue;
407 case 'f': c = '\f'; break;
408 case 'i': c = '\1'; break;
409 case 'a': c = '\a'; break;
410 case 't': c = '\t'; break;
411 case 'n': c = '\n'; break;
412 case '_': c = ' '; break;
413 case 'x':
414 b = 16;
415 c = *++src;
416 default:
417 if(isspace(c)) continue;
418 if(b == 0 && !isdigit(c)) break;
419 ul = strtoul(src, (char **) &src, b);
420 --src;
421 c = (int) ul & 0x7f;
422 if(!c) continue; // number conversion failed
423 break;
424 }
425 }
426 *dst++ = c;
427 if(!--len || !*src) break;
428 }
429 *dst = '\0';
430}
431
432// counterpart of filterrichtext
433

Callers 8

checkargMethod · 0.85
readMethod · 0.85
loadMethod · 0.85
parsevitasFunction · 0.85
parsequotesFunction · 0.85
explodelistFunction · 0.85
indexlistFunction · 0.85
findFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected