tmp[i++] = digits[num % base]; num /= base; 
tmp[i++] = digits[do_div(num, base)]; 
static char * number(char * str, long num, int base, int size, int precision, int type){	char c,sign,tmp[66];	const char *digits="0123456789abcdefghijklmnopqrstuvwxyz";	int i;	if (type & LARGE)		digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";	if (type & LEFT)		type &= ~ZEROPAD;	if (base < 2 || base > 36)		return 0;	c = (type & ZEROPAD) ? '0' : ' ';	sign = 0;	if (type & SIGN) {		if (num < 0) {			sign = '-';			num = -num;			size--;		} else if (type & PLUS) {			sign = '+';			size--;		} else if (type & SPACE) {			sign = ' ';			size--;		}	}	if (type & SPECIAL) {		if (base == 16)			size -= 2;		else if (base == 8)			size--;	}	i = 0;	if (num == 0)		tmp[i++]='0';	else while (num != 0) {		tmp[i++] = digits[num % base];		num /= base;	}	if (i > precision)		precision = i;	size -= precision;	if (!(type&(ZEROPAD+LEFT)))		while(size-->0)			*str++ = ' ';	if (sign)		*str++ = sign;	if (type & SPECIAL) {		if (base==8)			*str++ = '0';		else if (base==16) {			*str++ = '0';			*str++ = digits[33];		}	}	if (!(type & LEFT))		while (size-- > 0)			*str++ = c;	while (i < precision--)		*str++ = '0';	while (i-- > 0)		*str++ = tmp[i];	while (size-- > 0)		*str++ = ' ';	return str;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7840e5e95c1a8622425f11454600a49b6c718886/prom.c/clean/arch/ppc64/boot/prom.c