Now takes -N flag to suppress initial header printing
[unix-history] / usr / src / usr.bin / mail / lex.c
index 3b5e51f..f76c673 100644 (file)
@@ -8,7 +8,7 @@
  * Lexical processing of commands.
  */
 
  * Lexical processing of commands.
  */
 
-static char *SccsId = "@(#)lex.c       1.11 %G%";
+static char *SccsId = "@(#)lex.c       1.14 %G%";
 
 /*
  * Set up editing on the given file name.
 
 /*
  * Set up editing on the given file name.
@@ -86,7 +86,6 @@ setfile(name, isedit)
        fclose(ibuf);
        for (i = SIGINT; i <= SIGQUIT; i++)
                signal(i, sigs[i - SIGINT]);
        fclose(ibuf);
        for (i = SIGINT; i <= SIGQUIT; i++)
                signal(i, sigs[i - SIGINT]);
-       printf("%s: ", name);
        shudann = 1;
        sawcom = 0;
        return(0);
        shudann = 1;
        sawcom = 0;
        return(0);
@@ -225,7 +224,7 @@ execute(linebuf, contxt)
                return(0);
        }
        cp2 = word;
                return(0);
        }
        cp2 = word;
-       while (*cp && !any(*cp, " \t0123456789$^./-+*'\""))
+       while (*cp && !any(*cp, " \t0123456789$^.:/-+*'\""))
                *cp2++ = *cp++;
        *cp2 = '\0';
 
                *cp2++ = *cp++;
        *cp2 = '\0';
 
@@ -498,8 +497,26 @@ announce(pr)
 {
        int vec[2], mdot;
        extern char *version;
 {
        int vec[2], mdot;
        extern char *version;
+
+       mdot = newfileinfo();
+       vec[0] = mdot;
+       vec[1] = 0;
+       if (pr && value("quiet") == NOSTR)
+               printf(greeting, version);
+       dot = &message[mdot - 1];
+       if (msgCount > 0 && !noheader)
+               headers(vec);
+}
+
+/*
+ * Announce information about the file we are editing.
+ * Return a likely place to set dot.
+ */
+
+newfileinfo()
+{
        register struct message *mp;
        register struct message *mp;
-       register int u, n;
+       register int u, n, mdot;
 
        for (mp = &message[0]; mp < &message[msgCount]; mp++)
                if (mp->m_flag & MNEW)
 
        for (mp = &message[0]; mp < &message[msgCount]; mp++)
                if (mp->m_flag & MNEW)
@@ -512,30 +529,25 @@ announce(pr)
                mdot = mp - &message[0] + 1;
        else
                mdot = 1;
                mdot = mp - &message[0] + 1;
        else
                mdot = 1;
-       vec[0] = mdot;
-       vec[1] = 0;
-       if (pr && value("quiet") == NOSTR)
-               printf(greeting, version);
-       if (msgCount == 1)
-               printf("1 message");
-       else
-               printf("%d messages", msgCount);
-       if (readonly)
-               printf(" [Read only]");
        for (mp = &message[0], n = 0, u = 0; mp < &message[msgCount]; mp++) {
                if (mp->m_flag & MNEW)
                        n++;
                if ((mp->m_flag & MREAD) == 0)
                        u++;
        }
        for (mp = &message[0], n = 0, u = 0; mp < &message[msgCount]; mp++) {
                if (mp->m_flag & MNEW)
                        n++;
                if ((mp->m_flag & MREAD) == 0)
                        u++;
        }
+       printf("\"%s\": ", mailname);
+       if (msgCount == 1)
+               printf("1 message");
+       else
+               printf("%d messages", msgCount);
        if (n > 0)
                printf(" %d new", n);
        if (u-n > 0)
                printf(" %d unread", u);
        if (n > 0)
                printf(" %d new", n);
        if (u-n > 0)
                printf(" %d unread", u);
+       if (readonly)
+               printf(" [Read only]");
        printf("\n");
        printf("\n");
-       if (msgCount > 0)
-               headers(vec);
-       dot = &message[mdot - 1];
+       return(mdot);
 }
 
 strace() {}
 }
 
 strace() {}