diff options
author | Dave Hylands <dhylands@gmail.com> | 2014-03-30 21:06:50 -0700 |
---|---|---|
committer | Dave Hylands <dhylands@gmail.com> | 2014-04-01 01:17:33 -0700 |
commit | baf6f14deb567ab626c1b05213af346108f41700 (patch) | |
tree | dc531b159f6e5d3c3940e5fad752df9692e4ec60 /py/pfenv.h | |
parent | e44d26ae0c1b5d248fa4db112cdeabe404944f3c (diff) | |
download | micropython-baf6f14deb567ab626c1b05213af346108f41700.tar.gz micropython-baf6f14deb567ab626c1b05213af346108f41700.zip |
Enhance str.format support
This adds support for almost everything (the comma isn't currently
supported).
The "unspecified" type with floats also doesn't behave exactly like
python.
Tested under unix with float and double
Spot tested on stmhal
Diffstat (limited to 'py/pfenv.h')
-rw-r--r-- | py/pfenv.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/py/pfenv.h b/py/pfenv.h new file mode 100644 index 0000000000..edceaf3e4e --- /dev/null +++ b/py/pfenv.h @@ -0,0 +1,23 @@ +#define PF_FLAG_LEFT_ADJUST (0x001) +#define PF_FLAG_SHOW_SIGN (0x002) +#define PF_FLAG_SPACE_SIGN (0x004) +#define PF_FLAG_NO_TRAILZ (0x008) +#define PF_FLAG_SHOW_PREFIX (0x010) +#define PF_FLAG_SHOW_COMMA (0x020) +#define PF_FLAG_PAD_AFTER_SIGN (0x040) +#define PF_FLAG_CENTER_ADJUST (0x080) +#define PF_FLAG_ADD_PERCENT (0x100) +#define PF_FLAG_PAD_NAN_INF (0x200) + +typedef struct _pfenv_t { + void *data; + void (*print_strn)(void *, const char *str, unsigned int len); +} 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); +#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 |