MCPcopy Create free account
hub / github.com/ddnet/ddnet / EscapeJson

Function EscapeJson

src/engine/shared/json.cpp:62–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62char *EscapeJson(char *pBuffer, int BufferSize, const char *pString)
63{
64 dbg_assert(BufferSize > 0, "can't null-terminate the string");
65 // Subtract the space for null termination early.
66 BufferSize--;
67
68 char *pResult = pBuffer;
69 while(BufferSize && *pString)
70 {
71 char c = *pString;
72 pString++;
73 char Escaped = EscapeJsonChar(c);
74 if(Escaped)
75 {
76 if(BufferSize < 2)
77 {
78 break;
79 }
80 *pBuffer++ = '\\';
81 *pBuffer++ = Escaped;
82 BufferSize -= 2;
83 }
84 // Assuming ASCII/UTF-8, "if control character".
85 else if((unsigned char)c < 0x20)
86 {
87 // \uXXXX
88 if(BufferSize < 6)
89 {
90 break;
91 }
92 str_format(pBuffer, BufferSize, "\\u%04x", c);
93 pBuffer += 6;
94 BufferSize -= 6;
95 }
96 else
97 {
98 *pBuffer++ = c;
99 BufferSize--;
100 }
101 }
102 *pBuffer = 0;
103 return pResult;
104}
105
106const char *JsonBool(bool Bool)
107{

Callers 1

TESTFunction · 0.85

Calls 2

str_formatFunction · 0.85
EscapeJsonCharFunction · 0.70

Tested by 1

TESTFunction · 0.68