Doesn't compile with eris lua yet. Getting closer.
This commit is contained in:
@@ -6,7 +6,6 @@ LuaSpecial LuaRegistry(LUA_REGISTRYINDEX);
|
||||
LuaSpecial LuaGlobals(LUA_GLOBALSINDEX);
|
||||
LuaNilMarker LuaNil;
|
||||
LuaNewTableMarker LuaNewTable;
|
||||
LuaDiscardMarker LuaDiscard;
|
||||
|
||||
LuaFunctionReg::LuaFunctionReg(const char *m, const char *n, lua_CFunction f) {
|
||||
mode_ = m;
|
||||
@@ -27,6 +26,28 @@ LuaFunctionReg::List LuaFunctionReg::all() {
|
||||
LuaFunctionReg *LuaFunctionReg::LuaFunctionRegistry;
|
||||
|
||||
|
||||
lua_Integer LuaStack::ckinteger(LuaSlot s) const {
|
||||
luaL_checktype(L_, s, LUA_TNUMBER);
|
||||
return lua_tointeger(L_, s);
|
||||
}
|
||||
|
||||
lua_Number LuaStack::cknumber(LuaSlot s) const {
|
||||
luaL_checktype(L_, s, LUA_TNUMBER);
|
||||
return lua_tonumber(L_, s);
|
||||
}
|
||||
|
||||
std::string LuaStack::ckstring(LuaSlot s) const {
|
||||
luaL_checktype(L_, s, LUA_TSTRING);
|
||||
size_t len;
|
||||
const char *s = lua_tolstring(L_, s, &len);
|
||||
return std::string(s, len);
|
||||
}
|
||||
|
||||
lua_State *LuaStack::ckthread(LuaSlot s) const {
|
||||
luaL_checktype(L_, s, LUA_TTHREAD);
|
||||
return lua_tothread(L_, s);
|
||||
}
|
||||
|
||||
void LuaStack::count_slots_finalize(int narg, int nvar, int nret) {
|
||||
narg_ = narg;
|
||||
nret_ = nret;
|
||||
@@ -62,42 +83,27 @@ int LuaStack::result() {
|
||||
return nret_;
|
||||
}
|
||||
|
||||
void LuaStack::pop_any_value(lua_Integer &s) const {
|
||||
luaL_checktype(L_, -1, LUA_TNUMBER);
|
||||
s = lua_tointeger(L_, -1);
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
void LuaStack::pop_any_value(lua_Number &s) const {
|
||||
luaL_checktype(L_, -1, LUA_TNUMBER);
|
||||
s = lua_tonumber(L_, -1);
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
|
||||
void LuaStack::pop_any_value(std::string &s) const {
|
||||
luaL_checktype(L_, -1, LUA_TSTRING);
|
||||
size_t len;
|
||||
const char *str = luaL_cklstring(L_, -1, &len);
|
||||
const char *str = lua_tolstring(L_, -1, &len);
|
||||
s = std::string(str, len);
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
void LuaStack::pop_any_value(LuaAcceptNilNumber &s) const {
|
||||
if (lua_isnil(L_, -1)) {
|
||||
s.v = 0.0;
|
||||
} else {
|
||||
s.v = luaL_cknumber(L_, -1);
|
||||
}
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
void LuaStack::pop_any_value(LuaAcceptNilInteger &s) const {
|
||||
if (lua_isnil(L_, -1)) {
|
||||
s.v = 0;
|
||||
} else {
|
||||
s.v = luaL_ckinteger(L_, -1);
|
||||
}
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
void LuaStack::pop_any_value(LuaAcceptNilString &s) const {
|
||||
if (lua_isnil(L_, -1)) {
|
||||
s.v = "";
|
||||
} else {
|
||||
size_t len;
|
||||
const char *str = luaL_cklstring(L_, -1, &len);
|
||||
s.v = std::string(str, len);
|
||||
}
|
||||
lua_pop(L_, 1);
|
||||
}
|
||||
|
||||
std::string LuaStack::ckstring(LuaSlot s) const {
|
||||
size_t len;
|
||||
const char *str = luaL_cklstring(L_, s, &len);
|
||||
|
||||
Reference in New Issue
Block a user