+ /*
+ * Search list of context/profile entries for
+ * this key, and replace its value if found.
+ */
+ for (np = m_defs;; np = np->n_next) {
+ if (!mh_strcasecmp (np->n_name, key)) {
+ if (strcmp (value, np->n_field)) {
+ if (!np->n_context)
+ admonish (NULL, "bug: context_replace(key=\"%s\",value=\"%s\")", key, value);
+ if (np->n_field)
+ free (np->n_field);
+ np->n_field = getcpy (value);
+ ctxflags |= CTXMOD;
+ }
+ return;
+ }
+ if (!np->n_next)
+ break;
+ }
+
+ /*
+ * Else add this new entry at the end
+ */
+ np->n_next = (struct node *) mh_xmalloc (sizeof(*np));