char * addStringFromIntWithComma(char * buf, int val)
{
char * p;

if (val < 0) {
p = strchr(buf, '\0');
p[0] = '-';
p[1] = '\0';
return addStringFromIntWithComma(buf, -val);
}
if (val >= 1000) {
p = addStringFromIntWithComma(buf, val / 1000);
return p + sprintf(p, ",%03d", val % 1000);
}
p = strchr(buf, '\0');
return p + sprintf(p, "%d", val);
}