py/modstruct: In struct.pack, stop converting if there are no args left.
This patch makes a repeat counter behave the same as repeating the
typecode, when there are not enough args. For example:
struct.pack('2I', 1) now behave the same as struct.pack('II', 1).
This commit is contained in:
@@ -206,7 +206,8 @@ STATIC void struct_pack_into_internal(mp_obj_t fmt_in, byte *p, byte* end_p, siz
|
||||
memset(p + to_copy, 0, sz - to_copy);
|
||||
p += sz;
|
||||
} else {
|
||||
while (sz--) {
|
||||
// If we run out of args then we just finish; CPython would raise struct.error
|
||||
while (sz-- && i < n_args) {
|
||||
mp_binary_set_val(fmt_type, *fmt, args[i++], &p);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user