|
@@ -218,8 +218,15 @@ LUALIB_API char *luaL_prepbuffer(luaL_Buffer *B)
|
|
|
|
|
|
LUALIB_API void luaL_addlstring(luaL_Buffer *B, const char *s, size_t l)
|
|
|
{
|
|
|
- while (l--)
|
|
|
- luaL_addchar(B, *s++);
|
|
|
+ if (l <= bufffree(B)) {
|
|
|
+ memcpy(B->p, s, l);
|
|
|
+ B->p += l;
|
|
|
+ } else {
|
|
|
+ emptybuffer(B);
|
|
|
+ lua_pushlstring(B->L, s, l);
|
|
|
+ B->lvl++;
|
|
|
+ adjuststack(B);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
LUALIB_API void luaL_addstring(luaL_Buffer *B, const char *s)
|