+ /*
+ ** 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));