+ /*
+ * Collect names of plugins overridden (disabled) by the
+ * current plugin.
+ */
+ if (reg->overrides[0])
+ {
+ const char *overrides = reg->overrides;
+ u8 *override_name_copy, *overridden_by_name_copy;
+ u8 *sp, *ep;
+ uword *p;
+
+ sp = ep = (u8 *) overrides;
+
+ while (1)
+ {
+ if (*sp == 0
+ || (sp >= (u8 *) overrides + ARRAY_LEN (reg->overrides)))
+ break;
+ if (*sp == ' ' || *sp == ',')
+ {
+ sp++;
+ continue;
+ }
+ ep = sp;
+ while (*ep && *ep != ' ' && *ep != ',' &&
+ ep < (u8 *) overrides + ARRAY_LEN (reg->overrides))
+ ep++;
+ if (*ep == ' ' || *ep == ',')
+ ep--;
+
+ override_name_copy = extract (sp, ep);
+
+
+ p = hash_get_mem (pm->plugin_overrides_by_name_hash,
+ override_name_copy);
+ /* Already overridden... */
+ if (p)
+ vec_free (override_name_copy);
+ else
+ {
+ overridden_by_name_copy = format (0, "%s%c", pi->name, 0);
+ hash_set_mem (pm->plugin_overrides_by_name_hash,
+ override_name_copy, overridden_by_name_copy);
+ }
+ sp = *ep ? ep + 1 : ep;
+ }
+ }