Change pfenv_print_int to take machine_uint_t rather than unsinged in
With this change, the following works: >>> print('%#x' % 0x1234567890abcdef) 0x1234567890abcdef
This commit is contained in:
parent
f81a49e464
commit
64ef5d7f4e
@ -79,10 +79,10 @@ int pfenv_print_strn(const pfenv_t *pfenv, const char *str, unsigned int len, in
|
||||
// We can use 16 characters for 32-bit and 32 characters for 64-bit
|
||||
#define INT_BUF_SIZE (sizeof(machine_int_t) * 4)
|
||||
|
||||
int pfenv_print_int(const pfenv_t *pfenv, unsigned int x, int sgn, int base, int base_char, int flags, char fill, int width) {
|
||||
int pfenv_print_int(const pfenv_t *pfenv, machine_uint_t x, int sgn, int base, int base_char, int flags, char fill, int width) {
|
||||
char sign = 0;
|
||||
if (sgn) {
|
||||
if ((int)x < 0) {
|
||||
if ((machine_int_t)x < 0) {
|
||||
sign = '-';
|
||||
x = -x;
|
||||
} else if (flags & PF_FLAG_SHOW_SIGN) {
|
||||
|
@ -17,7 +17,7 @@ typedef struct _pfenv_t {
|
||||
void pfenv_vstr_add_strn(void *data, const char *str, unsigned int len);
|
||||
|
||||
int pfenv_print_strn(const pfenv_t *pfenv, const char *str, unsigned int len, int flags, char fill, int width);
|
||||
int pfenv_print_int(const pfenv_t *pfenv, unsigned int x, int sgn, int base, int base_char, int flags, char fill, int width);
|
||||
int pfenv_print_int(const pfenv_t *pfenv, machine_uint_t x, int sgn, int base, int base_char, int flags, char fill, int width);
|
||||
#if MICROPY_ENABLE_FLOAT
|
||||
int pfenv_print_float(const pfenv_t *pfenv, mp_float_t f, char fmt, int flags, char fill, int width, int prec);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user