X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..9322ba2854211794c27fae9468768b80b767c211:/sbr/context_del.c diff --git a/sbr/context_del.c b/sbr/context_del.c index 702c15d0..37cbce00 100644 --- a/sbr/context_del.c +++ b/sbr/context_del.c @@ -2,10 +2,13 @@ /* * context_del.c -- delete an entry from the context/profile list * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include +#include /* * Delete a key/value pair from the context/profile list. @@ -15,14 +18,10 @@ int context_del (char *key) { - register struct node *np, *pp; - - /* sanity check - check that context has been read */ - if (defpath == NULL) - adios (NULL, "oops, context hasn't been read yet"); + struct node *np, *pp; for (np = m_defs, pp = NULL; np; pp = np, np = np->n_next) { - if (!strcasecmp (np->n_name, key)) { + if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) { if (!np->n_context) admonish (NULL, "bug: context_del(key=\"%s\")", np->n_name); if (pp) @@ -30,9 +29,8 @@ context_del (char *key) else m_defs = np->n_next; free (np->n_name); - if (np->n_field) - free (np->n_field); - free ((char *) np); + mh_xfree(np->n_field); + free(np); ctxflags |= CTXMOD; return 0; }