This appears to have been a hack that got out-of-sync.
Adding a proper isEmpty() to the API is probably a better approach.
string a = lua_tostring(lua, 1);
- if (::arg().isEmpty(a))
+ if (lb->my_isEmpty(a))
lua_pushnil(lua);
else
lua_pushstring(lua, lb->my_getArg(a).c_str());
string a = lua_tostring(lua, 1);
- if (::arg().isEmpty(a))
+ if (lb->my_isEmpty(a))
lua_pushnil(lua);
else
lua_pushboolean(lua, lb->my_mustDo(a));
#include <string>
using std::string;
+#define LUABACKEND_PREFIX "lua"
class LUAException {
public:
//private.cc
string my_getArg(string a);
bool my_mustDo(string a);
+ bool my_isEmpty(string a);
private:
LUABackend::LUABackend(const string &suffix) {
- setArgPrefix("lua"+suffix);
+ setArgPrefix(LUABACKEND_PREFIX+suffix);
try {
return mustDo(a);
}
+bool LUABackend::my_isEmpty(string a) {
+ return ::arg().isEmpty(LUABACKEND_PREFIX+"-"+a);
+}
+
bool LUABackend::domaininfo_from_table(DomainInfo *di) {
di->backend = NULL;
f.append(name);
string arg = "";
- if (!::arg().isEmpty(f))
+ if (!::arg().isEmpty(LUABACKEND_PREFIX+"-"+f))
arg = getArg(f);
lua_getglobal(lua, arg == "" ? name : arg.c_str());