char *EstEID_jsonString(const char *src) { size_t specialSymbolCount = 0u; char *s = (char *)src; size_t srcLen = 0u; for (; *s; srcLen++) if (isEscapedSymbol(*(s++))) specialSymbolCount++; if (SIZE_MAX - srcLen < specialSymbolCount) return NULL; if (SIZE_MAX - srcLen - specialSymbolCount < 1u) return NULL; char *result = (char*)malloc(srcLen + specialSymbolCount + 1u); if (!result) return NULL; s = (char *)src; char *r = result; while (*s) { if (isEscapedSymbol(*s)) *(r++) = '\\'; switch (*s) { case '\n' : *(r++) = 'n'; break; case '\r' : *(r++) = 'r'; break; case '\t' : *(r++) = 't'; break; default: *(r++) = *s; } s++; } *r = 0; return result; }
char *EstEID_jsonString(const char *src) { int specialSymbolCount = 0; char *s = (char *)src; while (*s) if (isEscapedSymbol(*(s++))) specialSymbolCount++; char *result = (char*)malloc(strlen(src) + specialSymbolCount + 1); s = (char *)src; char *r = result; while (*s) { if (isEscapedSymbol(*s)) *(r++) = '\\'; switch (*s) { case '\n' : *(r++) = 'n'; break; case '\r' : *(r++) = 'r'; break; case '\t' : *(r++) = 't'; break; default: *(r++) = *s; } s++; } *r = 0; return result; }