- for (; p; p = p->next)
- {
- /* scan local set */
- for (a = p->atts; a; a = a->next)
- if (a->value == att)
- return a;
- /* scan included sets */
- if (p->children && (a = getatt(p->children, att)))
+ /* scan local set */
+ for (a = p->atts; a; a = a->next)
+ if (sattr && !yaz_matchstr(sattr, a->name))
+ return a;
+ else if (a->value == att)
+ return a;
+ /* scan included sets */
+ for (c = p->children; c; c = c->next)
+ if ((a = getatt(c->child, att, sattr)))