cvt = &cvtbuf[0] + sizeof(cvtbuf);
cvt = &cvtbuf[0] + ELEMENTS_OF(cvtbuf);
static int cvt_l(SprintfState *ss, long num, int width, int prec, int radix,		 int type, int flags, const PRUnichar *hexp){    PRUnichar cvtbuf[100];    PRUnichar *cvt;    int digits;    /* according to the man page this needs to happen */    if ((prec == 0) && (num == 0)) {	return 0;    }    /*    ** Converting decimal is a little tricky. In the unsigned case we    ** need to stop when we hit 10 digits. In the signed case, we can    ** stop when the number is zero.    */    cvt = &cvtbuf[0] + sizeof(cvtbuf);    digits = 0;    while (num) {	int digit = (((unsigned long)num) % radix) & 0xF;	*--cvt = hexp[digit];	digits++;	num = (long)(((unsigned long)num) / radix);    }    if (digits == 0) {	*--cvt = '0';	digits++;    }    /*    ** Now that we have the number converted without its sign, deal with    ** the sign and zero padding.    */    return fill_n(ss, cvt, digits, width, prec, type, flags);}