+
+bool psi_decl_is_blacklisted(const char *name)
+{
+ char *blacklisted;
+ size_t i = 0;
+
+ while (psi_plist_get(PSI_G(blacklist).decls, i++, &blacklisted)) {
+ if (!fnmatch(blacklisted, name, 0)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+struct psi_decl_arg *psi_decl_get_arg(struct psi_decl *decl, struct psi_decl_var *var) {
+ if (var->arg) {
+ size_t i = 0;
+ struct psi_decl_arg *arg = decl->func;
+
+ do {
+ if (var->arg == arg) {
+ return arg;
+ }
+ } while (psi_plist_get(decl->args, i++, &arg));
+ }
+
+ return psi_decl_arg_get_by_var(var, decl->args, decl->func);
+}
+