Esempio n. 1
0
static int
print_itoa(char **buffer, size_t bufsize, unsigned long value,
					unsigned short base, bool upper)
{
	const char zeichen[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
	char c;
	int i, len;

	if(base <= 2 || base > 16)
		return 0;

	len = i = print_intlen(value, base);

	/* Don't print to buffer if bufsize is not enough. */
	if (len > bufsize)
		return 0;

	do {
		c = zeichen[value % base];
		if (upper)
			c = toupper(c);

		(*buffer)[--i] = c;
		value /= base;
	} while(value);

	*buffer += len;

	return 1;
}
Esempio n. 2
0
static int
print_fill(char **buffer, char *sizec, unsigned long size, unsigned short int base, char c, int optlen)
{
	int i, sizei, len;

	sizei = strtoul(sizec, NULL, 10);
 	len = print_intlen(size, base) + optlen;
	if(sizei > len) {
		for(i = 0; i < (sizei - len); i++) {
			**buffer = c;
			*buffer += 1;
		}
	}

	return 0;
}