print: add support for uint64 bits
This commit is contained in:
parent
8542914426
commit
f5355fe75a
|
@ -201,8 +201,8 @@ static size_t print_hex(char** str, size_t* size, uint64_t hex, uint32_t padding
|
|||
* @param[in] prefix if 0b prefix should be printed
|
||||
* @return number of characters printed
|
||||
**/
|
||||
static size_t print_bits(char** str, size_t* size, uint32_t u, uint32_t padding, bool prefix) {
|
||||
char bits[32] = {0}; // construct the bit string in reverse order
|
||||
static size_t print_bits(char** str, size_t* size, uint64_t u, uint32_t padding, bool prefix) {
|
||||
char bits[64] = {0}; // construct the bit string in reverse order
|
||||
uint8_t digits = 0; // to count the number of digits
|
||||
size_t length = 0; // number of characters printed
|
||||
do {
|
||||
|
@ -307,9 +307,12 @@ static size_t vsnprintf(char** str, size_t* size, const char *format, va_list va
|
|||
case 'H': // for uint64_t upcase hexadecimal
|
||||
print_printed(&length, print_hex(str, size, va_arg(va,uint64_t), padding, sign, true));
|
||||
break;
|
||||
case 'b': // for bits
|
||||
case 'b': // for uint8_t, uint16_t, uint32_t bits
|
||||
print_printed(&length, print_bits(str, size, va_arg(va,uint32_t), padding, sign));
|
||||
break;
|
||||
case 'B': // for uint64_t bits
|
||||
print_printed(&length, print_bits(str, size, va_arg(va,uint64_t), padding, sign));
|
||||
break;
|
||||
case 's': // for strings
|
||||
print_printed(&length, print_string(str, size, va_arg(va,char*)));
|
||||
break;
|
||||
|
|
|
@ -25,7 +25,8 @@
|
|||
* - X for uint64_t lower case hexadecimal
|
||||
* - h for up to uint32_t upper case hexadecimal
|
||||
* - H for uint64_t upper case hexadecimal
|
||||
* - b for bits up to uint32_t
|
||||
* - b for up to uint32_t bits
|
||||
* - B for uint64_t bits
|
||||
* @file print.h
|
||||
* @author King Kévin <kingkevin@cuvoodoo.info>
|
||||
* @date 2017
|
||||
|
|
Loading…
Reference in New Issue