|
|
@@ -3114,7 +3114,12 @@ typedef enum KOption { |
|
|
|
Knop /* no-op (configuration or spaces) */ |
|
|
|
} KOption; |
|
|
|
|
|
|
|
#if LUA_VERSION_NUM < 503 |
|
|
|
#if LUA_VERSION_NUM <= 502 |
|
|
|
#define lua_Unsigned size_t |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
|
|
|
|
#define lua_Unsigned size_t |
|
|
|
|
|
|
|
typedef struct luaL_Buffer_53 { |
|
|
@@ -3128,6 +3133,7 @@ typedef struct luaL_Buffer_53 { |
|
|
|
#define luaL_Buffer luaL_Buffer_53 |
|
|
|
#define COMPAT53_PREFIX lua |
|
|
|
#undef COMPAT53_API |
|
|
|
|
|
|
|
#if defined(__GNUC__) || defined(__clang__) |
|
|
|
# define COMPAT53_API __attribute__((__unused__)) static |
|
|
|
#else |
|
|
@@ -3176,19 +3182,14 @@ COMPAT53_API void |
|
|
|
luaL_buffinit (lua_State *L, luaL_Buffer_53 *B) |
|
|
|
{ |
|
|
|
/* make it crash if used via pointer to a 5.1-style luaL_Buffer */ |
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
B->b.p = NULL; |
|
|
|
B->b.L = NULL; |
|
|
|
B->b.lvl = 0; |
|
|
|
/* reuse the buffer from the 5.1-style luaL_Buffer though! */ |
|
|
|
B->ptr = B->b.buffer; |
|
|
|
B->nelems = 0; |
|
|
|
#elif LUA_VERSION_NUM == 502 |
|
|
|
B->ptr = B->b.b; |
|
|
|
B->nelems = B->b.n; |
|
|
|
#endif |
|
|
|
B->capacity = LUAL_BUFFERSIZE; |
|
|
|
B->L2 = L; |
|
|
|
B->L2 = L; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@@ -3204,12 +3205,9 @@ luaL_prepbuffsize (luaL_Buffer_53 *B, size_t s) |
|
|
|
luaL_error (B->L2, "buffer too large"); |
|
|
|
newptr = (char *) lua_newuserdata (B->L2, newcap); |
|
|
|
memcpy(newptr, B->ptr, B->nelems); |
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
if (B->ptr != B->b.buffer) |
|
|
|
#elif LUA_VERSION_NUM == 502 |
|
|
|
if (B->ptr != B->b.b) |
|
|
|
#endif |
|
|
|
if (B->ptr != B->b.buffer) { |
|
|
|
lua_replace (B->L2, -2); /* remove old buffer */ |
|
|
|
} |
|
|
|
B->ptr = newptr; |
|
|
|
B->capacity = newcap; |
|
|
|
} |
|
|
@@ -3232,18 +3230,11 @@ luaL_addvalue (luaL_Buffer_53 *B) |
|
|
|
const char *s = lua_tolstring (B->L2, -1, &len); |
|
|
|
if (!s) |
|
|
|
luaL_error (B->L2, "cannot convert value to string"); |
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
if (B->ptr != B->b.buffer) |
|
|
|
#elif LUA_VERSION_NUM == 502 |
|
|
|
if (B->ptr != B->b.b) |
|
|
|
#endif |
|
|
|
if (B->ptr != B->b.buffer) { |
|
|
|
lua_insert (B->L2, -2); /* userdata buffer must be at stack top */ |
|
|
|
} |
|
|
|
luaL_addlstring (B, s, len); |
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
lua_remove (B->L2, B->ptr != B->b.buffer ? -2 : -1); |
|
|
|
#elif LUA_VERSION_NUM == 502 |
|
|
|
lua_remove (B->L2, B->ptr != B->b.b ? -2 : -1); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@@ -3251,12 +3242,9 @@ COMPAT53_API void |
|
|
|
luaL_pushresult (luaL_Buffer_53 *B) |
|
|
|
{ |
|
|
|
lua_pushlstring (B->L2, B->ptr, B->nelems); |
|
|
|
#if LUA_VERSION_NUM < 502 |
|
|
|
if (B->ptr != B->b.buffer) |
|
|
|
#elif LUA_VERSION_NUM == 502 |
|
|
|
if (B->ptr != B->b.b) |
|
|
|
#endif |
|
|
|
if (B->ptr != B->b.buffer) { |
|
|
|
lua_replace (B->L2, -2); /* remove userdata buffer */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#endif |