py/objstr: Binary type of str/bytes for buffer protocol is 'B'.
The type is an unsigned 8-bit value, since bytes objects are exactly
that. And it's also sensible for unicode strings to return unsigned
values when accessed in a byte-wise manner (CPython does not allow this).
diff --git a/py/objstr.c b/py/objstr.c
index d0d090b..3d3845f 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -1806,7 +1806,7 @@
GET_STR_DATA_LEN(self_in, str_data, str_len);
bufinfo->buf = (void*)str_data;
bufinfo->len = str_len;
- bufinfo->typecode = 'b';
+ bufinfo->typecode = 'B'; // bytes should be unsigned, so should unicode byte-access
return 0;
} else {
// can't write to a string