+
+ for (xp = n->u.tag.attributes; xp; xp = xp->next)
+ {
+ char comb[512];
+
+ if (use == 1)
+ { /* attribute start */
+ wrd->reg_type = '0';
+ wrd->attrUse = 3;
+ wrd->string = xp->name;
+ wrd->length = strlen(xp->name);
+
+ wrd->seqno--;
+ (*p->tokenAdd)(wrd);
+ }
+
+ if (use == 1 && xp->value &&
+ strlen(xp->name) + strlen(xp->value) < sizeof(comb)-2)
+ {
+ /* attribute value exact */
+ strcpy (comb, xp->name);
+ strcat (comb, "=");
+ strcat (comb, xp->value);
+
+ wrd->attrUse = 3;
+ wrd->reg_type = '0';
+ wrd->string = comb;
+ wrd->length = strlen(comb);
+ wrd->seqno--;
+
+ (*p->tokenAdd)(wrd);
+
+ /* attribute value phrase */
+
+ wrd->attrUse = 1015;
+ wrd->reg_type = 'w';
+ wrd->string = xp->value;
+ wrd->length = strlen(xp->value);
+
+ (*p->tokenAdd)(wrd);
+ }
+ if (use == 2)
+ {
+ wrd->reg_type = '0';
+ wrd->attrUse = 4;
+ wrd->string = xp->name;
+ wrd->length = strlen(xp->name);
+
+ (*p->tokenAdd)(wrd);
+ }
+ }