Annotation of 43BSDReno/contrib/mh/sbr/m_seq.c, revision 1.1.1.1

1.1       root        1: /* m_seq.c - print out a message sequence */
                      2: 
                      3: #include "../h/mh.h"
                      4: #include <stdio.h>
                      5: 
                      6: 
                      7: char *
                      8: m_seq(mp, cp)
                      9:        struct msgs *mp;
                     10:        char *cp;
                     11: {
                     12:        int mask;
                     13:        register int i, j;
                     14:        register char *bp;
                     15:        static char buffer[ATTRSIZE];
                     16: 
                     17:        if (strcmp(current, cp) == 0) {
                     18:                if (mp->curmsg) {
                     19:                        (void) sprintf(buffer, "%s", m_name(mp->curmsg));
                     20:                        return (buffer);
                     21:                } else
                     22:                        return (NULL);
                     23:        }
                     24:        for (i = 0; mp->msgattrs[i]; i++)
                     25:                if (strcmp(mp->msgattrs[i], cp) == 0)
                     26:                        break;
                     27:        
                     28:        if (! mp->msgattrs[i])
                     29:                return (NULL);
                     30: 
                     31:        mask = EXISTS | (1 << (FFATTRSLOT + i));
                     32:        bp = buffer;
                     33:        for (i = mp->lowmsg; i <= mp->hghmsg; ++i) {
                     34:                if ((mp->msgstats[i] & mask) != mask)
                     35:                        continue;
                     36: 
                     37:                if (bp > buffer)
                     38:                        *bp++ = ' ';
                     39: 
                     40:                (void) sprintf(bp, "%s", m_name(i));
                     41:                bp += strlen(bp);
                     42:                j = i;
                     43:                for (++i; i <= mp->hghmsg && (mp->msgstats[i] & mask) == mask;
                     44:                     ++i)
                     45:                        ;
                     46:                if (i - j > 1) {
                     47:                        (void) sprintf(bp, "-%s", m_name(i - 1));
                     48:                        bp += strlen(bp);
                     49:                }
                     50:        }
                     51:        return (bp > buffer? buffer : NULL);
                     52: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.