Uno de los problemas más antiguos en el sistema de carga de scripts es que en Windows las líneas comentadas anulaban las líneas siguientes. Debido a la forma en que leo los scripts, línea por línea, agregándolos a una cadena (obviamente debería haber una forma mejor), es natural que si no hay un cambio de línea adecuado las líneas de código queden ocultas a continuación de los --. A mí particularmente me resulta muy recontrarejodido programar más de 20 líneas sin comentarios. ¿La solución? Parsear cada línea buscando -- al principio y no agregarlas, muy burda, por cierto. Y aquí vamos a la forma mejor, creo que en Lua hay una función que permite leer un script a una cadena. Por supuesto que dicha función se me ha escondido muy bien y he perdido las referencias que tenía en mis correos guardados.
Buenas, yo uso esto:
ResponderEliminarString tmp = mStream->getAsString( );
#if LUA_VERSION_NUM >= 501
#define luaL_doBuffer(L, buff, sz, name) \
(luaL_loadbuffer(L, buff, sz, name) || lua_pcall(L, 0, LUA_MULTRET, 0))
errorcode = luaL_doBuffer( pLuaVM, tmp.c_str( ), mStream->size( ), mName.c_str( ) );
#else
errorcode = lua_dobuffer( pLuaVM, tmp.c_str( ), mStream->size( ), mName.c_str( ) );
#endif
Espero que te ayude ;)
Hoy mismo lo pruebo.
ResponderEliminar