Fixed abort of e.g. comp when draft folder is empty.
[mmh] / sbr / seq_add.c
index 38bbdcf..6c99b5d 100644 (file)
@@ -33,14 +33,14 @@ seq_addsel(struct msgs *mp, char *cp, int public, int zero)
        ** We keep mp->curmsg and cur sequence in sync.
        ** See seq_list() and seq_init().
        */
-       if (!strcmp(seq_cur, cp))
+       if (strcmp(seq_cur, cp)==0)
                mp->curmsg = mp->hghsel;
 
        /*
        ** Get the number for this sequence
        */
        for (i = 0; mp->msgattrs[i]; i++) {
-               if (!strcmp(mp->msgattrs[i], cp)) {
+               if (strcmp(mp->msgattrs[i], cp)==0) {
                        new_seq = 0;
                        break;
                }
@@ -124,14 +124,14 @@ seq_addmsg(struct msgs *mp, char *cp, int msgnum, int public, int zero)
        /*
        ** keep mp->curmsg and msgattrs[] of seq_cur in sync - see seq_list()
        */
-       if (!strcmp(seq_cur, cp))
+       if (strcmp(seq_cur, cp)==0)
                mp->curmsg = msgnum;
 
        /*
        ** Get the number for this sequence
        */
        for (i = 0; mp->msgattrs[i]; i++) {
-               if (!strcmp(mp->msgattrs[i], cp)) {
+               if (strcmp(mp->msgattrs[i], cp)==0) {
                        new_seq = 0;
                        break;
                }
@@ -156,7 +156,7 @@ seq_addmsg(struct msgs *mp, char *cp, int msgnum, int public, int zero)
        ** If sequence is new, or zero flag is set, then first
        ** clear the bit for this sequence from all messages.
        */
-       if (new_seq || zero) {
+       if (mp->nummsg>0 && (new_seq || zero)) {
                for (j = mp->lowmsg; j <= mp->hghmsg; j++)
                        clear_sequence(mp, i, j);
        }