diff --git a/py/objstr.c b/py/objstr.c index 0621a8df75..7c1be50cc0 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -270,7 +270,8 @@ mp_obj_t str_format(int n_args, const mp_obj_t *args) { str++; if (*str == '{') { vstr_add_char(vstr, '{'); - } else if (*str == '}') { + } else { + while (*str != '}') str++; if (arg_i >= n_args) { nlr_jump(mp_obj_new_exception_msg(MP_QSTR_IndexError, "tuple index out of range")); } diff --git a/tests/basics/tests/string-format.py b/tests/basics/tests/string-format.py new file mode 100644 index 0000000000..ba51e0890b --- /dev/null +++ b/tests/basics/tests/string-format.py @@ -0,0 +1,8 @@ +print("{}-{}".format(1, [4, 5])) +print("{0}-{1}".format(1, [4, 5])) +print("{:x}".format(1)) +print("{!r}".format(2)) +# TODO +#print("{1}-{0}".format(1, [4, 5])) +#print("{:x}".format(0x10)) +#print("{!r}".format("foo"))