int Xml_load (lua_State *L) { const char * filename = luaL_checkstring(L,1); FILE * file=fopen(filename,"r"); if(!file) return luaL_error(L,"LuaXml ERROR: \"%s\" file error or file not found!",filename); fseek (file , 0 , SEEK_END); size_t sz = ftell (file); rewind (file); char* buffer = (char*)malloc(sz+1); fread (buffer,1,sz,file); fclose(file); buffer[sz]=0; lua_pushlightuserdata(L,buffer); lua_replace(L,1); return Xml_eval(L); };
int Xml_load (HSQUIRRELVM v) { SQ_FUNC_VARS_NO_TOP(v); SQ_GET_STRING(v, 2, filename); FILE * file=fopen(filename,"r"); if(!file) return sq_throwerror(v, _SC("SQXml ERROR: \"%s\" file error or file not found!"),filename); fseek (file , 0 , SEEK_END); size_t sz = ftell (file); rewind (file); char* buffer = (char*)sq_malloc(sz+1); sz = fread (buffer,1,sz,file); fclose(file); buffer[sz]=0; sq_pushuserpointer(v,buffer); sq_replace(v,2); return Xml_eval(v); };