diff --git a/3rd/lua/lstrlib.c b/3rd/lua/lstrlib.c index a650b768..43be88ec 100644 --- a/3rd/lua/lstrlib.c +++ b/3rd/lua/lstrlib.c @@ -798,7 +798,8 @@ static int str_gsub (lua_State *L) { */ /* maximum size of each formatted item (> len(format('%99.99f', -1e308))) */ -#define MAX_ITEM 512 +#define MAX_ITEM \ + (sizeof(lua_Number) <= 4 ? 150 : sizeof(lua_Number) <= 8 ? 450 : 5050) /* valid flags in a format specification */ #define FLAGS "-+ #0"