static void add_md_prop(picl_nodehdl_t node, int size, char *name, void* value, int type) { ptree_propinfo_t propinfo; picl_prophdl_t proph; if (!prop_exists(node, name)) { set_prop_info(&propinfo, size, name, type); (void) ptree_create_and_add_prop(node, &propinfo, value, &proph); } }
static package bf_set_prop_info(Var arglist, Byte next, void *vdata, Objid progr) { /* (object, prop-name, {owner, perms [, new-name]}) */ Objid oid = arglist.v.list[1].v.obj; const char *pname = arglist.v.list[2].v.str; Var info = arglist.v.list[3]; enum error e = set_prop_info(oid, pname, info, progr); free_var(arglist); if (e == E_NONE) return no_var_pack(); else return make_error_pack(e); }