-
/*
- * seq_setunseen.c -- add/delete all messages which have the SELECT_UNSEEN
- * -- bit set to/from the Unseen-Sequence
- *
- * $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.
- */
+** seq_setunseen.c -- add/delete all messages which have the SELECT_UNSEEN
+** -- bit set to/from the Unseen-Sequence
+**
+** 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 <h/mh.h>
/*
- * We scan through the folder and act upon all messages
- * that are marked with the SELECT_UNSEEN bit.
- *
- * If seen == 1, delete messages from unseen sequence.
- * If seen == 0, add messages to unseen sequence.
- */
-
+** We scan through the folder and act upon all messages
+** that are marked with the SELECT_UNSEEN bit.
+**
+** Either add messages to or (if doadd is false) delete messages from
+** the unseen sequence(s).
+*/
void
-seq_setunseen (struct msgs *mp, int seen)
+seq_setunseen(struct msgs *mp, int doadd)
{
- int msgnum;
- char **ap, *cp, *dp;
+ int n;
+ char **ap, *cp, *dp;
- /*
- * Get the list of sequences for Unseen-Sequence
- * and split them.
- */
- if ((cp = context_find (usequence))) {
- dp = getcpy (cp);
- if (!(ap = brkstring (dp, " ", "\n")) || !*ap) {
- free (dp);
- return;
+ /*
+ ** Get the list of sequences for Unseen-Sequence
+ ** and split them.
+ */
+ if ((cp = context_find(usequence))) {
+ dp = getcpy(cp);
+ } else {
+ /* not set in profile, thus use the default */
+ dp = getcpy(seq_unseen);
+ }
+ if (!(ap = brkstring(dp, " ", "\n")) || !*ap) {
+ /* contains no sequence name, i.e. we're finished */
+ free(dp);
+ return;
}
- } else {
- return;
- }
- /*
- * Now add/delete each message which has the SELECT_UNSEEN
- * bit set to/from each of these sequences.
- */
- for (; *ap; ap++) {
- if (seen) {
- /* make sure sequence exists first */
- if (seq_getnum(mp, *ap) != -1)
- for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++)
- if (is_unseen (mp, msgnum))
- seq_delmsg (mp, *ap, msgnum);
- } else {
- for (msgnum = mp->lowmsg; msgnum <= mp->hghmsg; msgnum++)
- if (is_unseen (mp, msgnum))
- seq_addmsg (mp, *ap, msgnum, -1, 0);
+ /*
+ ** Now add/delete each message which has the SELECT_UNSEEN
+ ** bit set to/from each of these sequences.
+ */
+ for (; *ap; ap++) {
+ if (doadd) {
+ for (n = mp->lowmsg; n <= mp->hghmsg; n++) {
+ if (is_unseen(mp, n)) {
+ seq_addmsg(mp, *ap, n, -1, 0);
+ }
+ }
+ } else {
+ /* make sure sequence exists first */
+ if (seq_getnum(mp, *ap) != -1) {
+ for (n = mp->lowsel; n <= mp->hghsel; n++) {
+ if (is_unseen(mp, n)) {
+ seq_delmsg(mp, *ap, n);
+ }
+ }
+ }
+ }
}
- }
- free (dp);
+ free(dp);
}