f=(void (*)())sk_value(names_free,type); f(ret->name,ret->type,ret->data);
f.char_p=sk_value(names_free,type); f.fn_p(ret->name,ret->type,ret->data);
int OBJ_NAME_remove(const char *name, int type)	{	OBJ_NAME on,*ret;	void (*f)();	if (names_lh == NULL) return(0);	type&= ~OBJ_NAME_ALIAS;	on.name=name;	on.type=type;	ret=(OBJ_NAME *)lh_delete(names_lh,(char *)&on);	if (ret != NULL)		{		/* free things */		if ((names_free != NULL) && (sk_num(names_free) > type))			{			f=(void (*)())sk_value(names_free,type);			f(ret->name,ret->type,ret->data);			}		Free((char *)ret);		return(1);		}	else		return(0);	}