7 #include "luautils.h"
\r
9 int eval_expr(lua_State *L, char *expr)
\r
12 sprintf(buf, "return %s", expr);
\r
13 return luaL_dostring(L, buf);
\r
16 int has_table(lua_State *L, char *name)
\r
20 result = lua_istable(L, -1);
\r
25 void string_expr(lua_State *L, char *dest, char *expr, const char* fallback)
\r
27 if (eval_expr(L, expr) == 0) {
\r
28 if (lua_isstring(L, -1))
\r
29 strcpy(dest, lua_tostring(L, -1));
\r
30 else if (fallback != NULL)
\r
31 strcpy(dest, fallback);
\r
36 double double_expr(lua_State *L, char *expr, double fallback)
\r
38 double result = fallback;
\r
39 if (eval_expr(L, expr) == 0) {
\r
40 if (lua_isnumber(L, -1))
\r
41 result = (double) lua_tonumber(L, -1);
\r
47 int int_expr(lua_State *L, char *expr, int fallback)
\r
49 int result = fallback;
\r
50 if (eval_expr(L, expr) == 0) {
\r
51 if (lua_isnumber(L, -1))
\r
52 result = (int) lua_tonumber(L, -1);
\r
58 bool bool_expr(lua_State *L, char *expr, bool fallback)
\r
60 bool result = fallback;
\r
61 if (eval_expr(L, expr) == 0) {
\r
62 if (lua_isboolean(L, -1))
\r
63 result = (bool) lua_toboolean(L, -1);
\r