if (name == NULL && !(type & SYMBOL_TYPE_CALLBACK)) {
msg_warn_cache ("no name for non-callback symbol!");
}
- else if ((type & SYMBOL_TYPE_VIRTUAL) && parent == -1) {
+ else if ((type & SYMBOL_TYPE_VIRTUAL & (~SYMBOL_TYPE_GHOST)) && parent == -1) {
msg_warn_cache ("no parent symbol is associated with virtual symbol %s",
name);
}
item->specific.normal.condition_cb = -1;
}
else {
- /* Require parent */
- g_assert (parent != -1);
-
item->is_virtual = TRUE;
item->specific.virtual.parent = parent;
item->id = cache->virtual->len;
return 1;
}
-static gint
+static guint
lua_parse_symbol_flags (const gchar *str)
{
- int ret = 0;
+ guint ret = 0;
if (str) {
if (strstr (str, "fine") != NULL) {
if (strstr (str, "trivial") != NULL) {
ret |= SYMBOL_TYPE_TRIVIAL;
}
+ if (strstr (str, "ghost") != NULL) {
+ ret |= SYMBOL_TYPE_GHOST;
+ }
if (strstr (str, "mime") != NULL) {
ret |= SYMBOL_TYPE_MIME_ONLY;
}
return ret;
}
-static gint
+static guint
lua_parse_symbol_type (const gchar *str)
{
- gint ret = SYMBOL_TYPE_NORMAL;
+ guint ret = SYMBOL_TYPE_NORMAL;
gchar **vec;
guint i, l;