X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..8ae191f927b3e294b7a50124b8c806365c4dbeb8:/sbr/context_save.c diff --git a/sbr/context_save.c b/sbr/context_save.c index b3f8168b..33cd23dd 100644 --- a/sbr/context_save.c +++ b/sbr/context_save.c @@ -2,7 +2,9 @@ /* * context_save.c -- write out the updated context file * - * $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 @@ -21,6 +23,10 @@ context_save (void) register struct node *np; FILE *out; sigset_t set, oset; + + /* No context in use -- silently ignore any changes! */ + if (!ctxpath) + return; if (!(ctxflags & CTXMOD)) return; @@ -35,16 +41,16 @@ context_save (void) sigaddset (&set, SIGINT); sigaddset (&set, SIGQUIT); sigaddset (&set, SIGTERM); - SIGPROCMASK (SIG_BLOCK, &set, &oset); + sigprocmask (SIG_BLOCK, &set, &oset); - if (!(out = fopen (ctxpath, "w"))) + if (!(out = lkfopen (ctxpath, "w"))) adios (ctxpath, "unable to write"); for (np = m_defs; np; np = np->n_next) if (np->n_context) fprintf (out, "%s: %s\n", np->n_name, np->n_field); - fclose (out); + lkfclose (out, ctxpath); - SIGPROCMASK (SIG_SETMASK, &oset, &set); /* reset the signal mask */ + sigprocmask (SIG_SETMASK, &oset, &set); /* reset the signal mask */ if (action == 0) _exit (0); /* we are child, time to die */