announce now looks for the first unread message if there
authorKurt A. Schoens <kas@ucbvax.Berkeley.EDU>
Fri, 17 Oct 1980 16:32:30 +0000 (08:32 -0800)
committerKurt A. Schoens <kas@ucbvax.Berkeley.EDU>
Fri, 17 Oct 1980 16:32:30 +0000 (08:32 -0800)
are no new messages and sets dot to the first "interesting" message
it finds

SCCS-vsn: usr.bin/mail/lex.c 1.7

usr/src/usr.bin/mail/lex.c

index 34b5512..a283590 100644 (file)
@@ -8,7 +8,7 @@
  * Lexical processing of commands.
  */
 
  * Lexical processing of commands.
  */
 
-static char *SccsId = "@(#)lex.c       1.6 %G%";
+static char *SccsId = "@(#)lex.c       1.7 %G%";
 
 /*
  * Set up editing on the given file name.
 
 /*
  * Set up editing on the given file name.
@@ -479,17 +479,22 @@ char      *greeting       = "Mail version 2.0 %s.  Type ? for help.\n";
 
 announce(pr)
 {
 
 announce(pr)
 {
-       int vec[2];
+       int vec[2], mdot;
        extern char *version;
        register struct message *mp;
 
        for (mp = &message[0]; mp < &message[msgCount]; mp++)
                if (mp->m_flag & MNEW)
                        break;
        extern char *version;
        register struct message *mp;
 
        for (mp = &message[0]; mp < &message[msgCount]; mp++)
                if (mp->m_flag & MNEW)
                        break;
+       if (mp >= &message[msgCount])
+               for (mp = &message[0]; mp < &message[msgCount]; mp++)
+                       if ((mp->m_flag & MREAD) == 0)
+                               break;
        if (mp < &message[msgCount])
        if (mp < &message[msgCount])
-               vec[0] = mp - &message[0] + 1;
+               mdot = mp - &message[0] + 1;
        else
        else
-               vec[0] = 1;
+               mdot = 1;
+       vec[0] = mdot;
        vec[1] = 0;
        if (pr && value("quiet") == NOSTR)
                printf(greeting, version);
        vec[1] = 0;
        if (pr && value("quiet") == NOSTR)
                printf(greeting, version);
@@ -501,6 +506,7 @@ announce(pr)
                printf(" [Read only]");
        printf("\n");
        headers(vec);
                printf(" [Read only]");
        printf("\n");
        headers(vec);
+       dot = &message[mdot - 1];
 }
 
 strace() {}
 }
 
 strace() {}