@@ -167,12 +167,18 @@ const lauxBindings: Record<string, lauxBindingFactoryFunc> = {
167
167
luaL_loadstring : function ( L : LuaState , s : string ) {
168
168
return ( this as LauxLib ) . luaL_loadbuffer ( L , s , s . length , s ) ;
169
169
} ,
170
+ luaL_loadbuffer : function ( L : LuaState , s : string , slen : number , name : string ) {
171
+ // Terrible, awful hack to prevent the end of the string from being mangled by the C wrapper
172
+ const pad = " " ;
173
+ const loadbuffer = luaGlue . cwrap ( "luaL_loadbuffer" , "number" , [ "number" , "string" , "number" , "string" ] ) ;
174
+ return loadbuffer ( L , s + pad , slen + pad . length , name ) ;
175
+ } ,
170
176
luaL_newstate : luaGlue . cwrap ( "lua_open" , "number" , [ ] ) ,
171
177
}
172
178
} ,
173
- "<= 5.1.x" : function ( luaGlue : LuaEmscriptenModule , _lua : Lua ) {
179
+ "5.1.x" : function ( luaGlue : LuaEmscriptenModule , _lua : Lua ) {
174
180
return {
175
- luaL_loadbuffer : luaGlue . cwrap ( "luaL_loadbuffer" , "number" , [ "number" , "string" , "number" , "string" ] ) ,
181
+ luaL_loadbuffer : luaGlue . cwrap ( "luaL_loadbuffer" , "number" , [ "number" , "string" , "number" , "string" ] )
176
182
}
177
183
} ,
178
184
">=5.1.0" : function ( luaGlue : LuaEmscriptenModule , lua : Lua ) {
0 commit comments