static void *ucl_null;
-struct _rspamd_lua_text {
+struct rspamd_compat_lua_text {
const char *start;
unsigned int len;
unsigned int flags;
}
else {
/* Assume it is a text like object */
- struct _rspamd_lua_text *t = lua_touserdata(L, idx);
+ struct rspamd_compat_lua_text *t = lua_touserdata(L, idx);
if (t) {
if (t->len > 0) {
lua_ucl_parser_parse_text(lua_State *L)
{
struct ucl_parser *parser;
- struct _rspamd_lua_text *t;
+ struct rspamd_compat_lua_text *t;
enum ucl_parse_type type = UCL_PARSE_UCL;
int ret = 2;
else if (lua_type(L, 2) == LUA_TSTRING) {
const char *s;
gsize len;
- static struct _rspamd_lua_text st_t;
+ static struct rspamd_compat_lua_text st_t;
s = lua_tolstring(L, 2, &len);
st_t.start = s;
ucl_object_replace_key(obj, value_obj, key, keylen, true);
}
else {
- return luaL_error(L, "invalid value type: %s", lua_typename(L, value_type));
+ /* Delete key */
+ ucl_object_delete_keyl(obj, key, keylen);
}
}
else {
- ucl_object_insert_key(obj, value_obj, key, keylen, true);
+ if (value_obj != NULL) {
+ ucl_object_insert_key(obj, value_obj, key, keylen, true);
+ }
+ /* Do nothing if value_obj is null, like Lua does */
}
return 0;