update byteutil

This commit is contained in:
MihailRis
2024-12-27 09:25:09 +03:00
parent 5eb739fe24
commit 0af0e8a58d
@@ -11,6 +11,7 @@ static size_t calc_size(const char* format) {
switch (format[i]) { switch (format[i]) {
case 'b': case 'b':
case 'B': case 'B':
case '?':
outSize += 1; outSize += 1;
break; break;
case 'h': case 'h':
@@ -43,8 +44,14 @@ static int pack(lua::State* L, const char* format, bool usetable) {
for (int i = 0; format[i]; i++) { for (int i = 0; format[i]; i++) {
switch (format[i]) { switch (format[i]) {
case 'b': case 'b':
builder.put(lua::tointeger(L, index));
break;
case 'B':
builder.put(lua::tointeger(L, index) & 0xFF); builder.put(lua::tointeger(L, index) & 0xFF);
break; break;
case '?':
builder.put(lua::toboolean(L, index) ? 1 : 0);
break;
case 'h': case 'h':
builder.putInt16(lua::tointeger(L, index), bigEndian); builder.putInt16(lua::tointeger(L, index), bigEndian);
break; break;
@@ -102,6 +109,7 @@ static int count_elements(const char* format) {
switch (format[i]) { switch (format[i]) {
case 'b': case 'b':
case 'B': case 'B':
case '?':
case 'h': case 'h':
case 'H': case 'H':
case 'i': case 'i':
@@ -133,6 +141,12 @@ static int l_unpack(lua::State* L) {
case 'b': case 'b':
lua::pushinteger(L, reader.get()); lua::pushinteger(L, reader.get());
break; break;
case 'B':
lua::pushinteger(L, reader.get() & 0xFF);
break;
case '?':
lua::pushboolean(L, reader.get() != 0);
break;
case 'h': case 'h':
lua::pushinteger(L, reader.getInt16(bigEndian)); lua::pushinteger(L, reader.getInt16(bigEndian));
break; break;