X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fseq_save.c;h=f546cb89c6dea9311f44f940eac683df4d1d55a0;hp=0c14f47db41928cc953cebce885b421b7013b67f;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1 diff --git a/sbr/seq_save.c b/sbr/seq_save.c index 0c14f47..f546cb8 100644 --- a/sbr/seq_save.c +++ b/sbr/seq_save.c @@ -1,27 +1,28 @@ /* - * seq_save.c -- 1) synchronize sequences - * -- 2) save public sequences - * - * 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. - */ +** seq_save.c -- 1) synchronize sequences +** -- 2) save public sequences +** +** 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 +#include /* - * 1. If sequence is public and folder is readonly, - * then change it to be private - * 2a. If sequence is public, then add it to the sequences file - * in folder (name specified by mh-sequences profile entry). - * 2b. If sequence is private, then add it to the - * context file. - */ +** 1. If sequence is public and folder is readonly, +** then change it to be private +** 2a. If sequence is public, then add it to the sequences file +** in folder (name specified by mh-sequences profile entry). +** 2b. If sequence is private, then add it to the +** context file. +*/ void -seq_save (struct msgs *mp) +seq_save(struct msgs *mp) { int i; char flags, *cp, attr[BUFSIZ], seqfile[PATH_MAX]; @@ -37,76 +38,75 @@ seq_save (struct msgs *mp) flags = mp->msgflags; /* record folder flags */ /* - * If no mh-sequences file is defined, or if a mh-sequences file - * is defined but empty (*mh_seq == '\0'), then pretend folder - * is readonly. This will force all sequences to be private. - */ + ** If no mh-sequences file is defined, or if a mh-sequences file + ** is defined but empty (*mh_seq == '\0'), then pretend folder + ** is readonly. This will force all sequences to be private. + */ if (mh_seq == NULL || *mh_seq == '\0') - set_readonly (mp); + set_readonly(mp); else - snprintf (seqfile, sizeof(seqfile), "%s/%s", mp->foldpath, mh_seq); + snprintf(seqfile, sizeof(seqfile), "%s/%s", mp->foldpath, + mh_seq); for (i = 0; mp->msgattrs[i]; i++) { - snprintf (attr, sizeof(attr), "atr-%s-%s", mp->msgattrs[i], mp->foldpath); + snprintf(attr, sizeof(attr), "atr-%s-%s", mp->msgattrs[i], + mp->foldpath); /* get space separated list of sequence ranges */ if (!(cp = seq_list(mp, mp->msgattrs[i]))) { - context_del (attr); /* delete sequence from context */ + context_del(attr); /* delete sequence from context */ continue; } if (is_readonly(mp) || is_seq_private(mp, i)) { priv: - /* - * sequence is private - */ - context_replace (attr, cp); /* update sequence in context */ + /* sequence is private */ + context_replace(attr, cp); /* update seq in ctx */ } else { - /* - * sequence is public - */ - context_del (attr); /* delete sequence from context */ + /* sequence is public */ + context_del(attr); /* delete sequence from context */ if (!fp) { /* - * Attempt to open file for public sequences. - * If that fails (probably because folder is - * readonly), then make sequence private. - */ - if ((fp = lkfopen (seqfile, "w")) == NULL - && (unlink (seqfile) == -1 || - (fp = lkfopen (seqfile, "w")) == NULL)) { - admonish (attr, "unable to write"); + ** Attempt to open file for public sequences. + ** If that fails (probably because folder is + ** readonly), then make sequence private. + */ + if ((fp = lkfopen(seqfile, "w")) == NULL + && (unlink(seqfile) == -1 || + (fp = lkfopen(seqfile, "w")) + == NULL)) { + admonish(attr, "unable to write"); goto priv; } /* block a few signals */ - sigemptyset (&set); + sigemptyset(&set); sigaddset(&set, SIGHUP); sigaddset(&set, SIGINT); sigaddset(&set, SIGQUIT); sigaddset(&set, SIGTERM); - SIGPROCMASK (SIG_BLOCK, &set, &oset); + sigprocmask(SIG_BLOCK, &set, &oset); } - fprintf (fp, "%s: %s\n", mp->msgattrs[i], cp); + fprintf(fp, "%s: %s\n", mp->msgattrs[i], cp); } } if (fp) { - lkfclose (fp, seqfile); - SIGPROCMASK (SIG_SETMASK, &oset, &set); /* reset signal mask */ + lkfclose(fp, seqfile); + sigprocmask(SIG_SETMASK, &oset, &set); /* reset signal mask */ } else { /* - * If folder is not readonly, and we didn't save any - * public sequences, then remove that file. - */ + ** If folder is not readonly, and we didn't save any + ** public sequences, then remove that file. + */ if (!is_readonly(mp)) - unlink (seqfile); + unlink(seqfile); } /* - * Reset folder flag, since we may be - * pretending that folder is readonly. - */ + ** Reset folder flag, since we may be + ** pretending that folder is readonly. + */ mp->msgflags = flags; }