2 Proprietary Rand Corporation
, 1981.
3 Further distribution of
this software
4 subject to the terms of the Rand
20 struct swit switches
[] = {
25 "noheader", 0, /* 4 */
30 "nonumdate", 0, /* 9 */
34 extern char _sobuf
[]; /* MLW standard out buffer */
40 char *folder
, *maildir
, *msgs
[100];
42 register char *cp
, **ap
;
46 char *arguments
[50], **argp
;
50 setbuf(stdout
, _sobuf
);
55 ff
= 0; msgp
= 0; folder
= 0;
56 cp
= r1bindex(argv
[0], '/');
57 if((cp
= m_find(cp
)) != NULL
) {
58 ap
= brkstring(cp
= getcpy(cp
), " ", "\n");
59 ap
= copyip(ap
, arguments
);
62 VOID
copyip(argv
+1, ap
);
66 switch(smatch(++cp
, switches
)) {
67 case -2:ambigsw(cp
, switches
); /* ambiguous */
70 case -1:fprintf(stderr
, "scan: -%s unknown\n", cp
);
73 case 0: fprintf(stderr
, "\"-all\" changed to \"all\"\n");
75 case 1: ff
= 1; continue; /* -ff */
76 case 2: ff
= 0; continue; /* -noff */
77 case 3: hdrflag
= 1; continue; /* -header */
78 case 4: hdrflag
= 0; continue; /* -noheader */
79 case 6: timeflag
= 1; continue; /* -time */
80 case 7: timeflag
= 0; continue; /* -notime */
81 case 8: numflag
= 1; continue; /* -numdate */
82 case 9: numflag
= 0; continue; /* -nonumdate */
83 case 5: help("scan [+folder] [msgs] [switches]",
89 fprintf(stderr
, "Only one folder at a time.\n");
92 folder
= path(cp
+1, TFOLDER
);
96 if(!m_find("path")) free(path("./", TFOLDER
));
98 folder
= m_getfolder();
99 maildir
= m_maildir(folder
);
100 if(chdir(maildir
) < 0) {
101 fprintf(stderr
, "Can't chdir to: ");
105 if(!(mp
= m_gmsg(folder
))) {
106 fprintf(stderr
, "Can't read folder!?\n");
109 if(mp
->hghmsg
== 0) {
110 fprintf(stderr
, "No messages in \"%s\".\n", folder
);
114 msgs
[msgp
++] = "first-last";
115 for(msgnum
= 0; msgnum
< msgp
; msgnum
++)
116 if(!m_convert(msgs
[msgnum
]))
118 if(mp
->numsel
== 0) {
119 fprintf(stderr
, "scan: matzo balls.\n"); /* never get here */
122 m_replace(pfolder
,folder
);
123 for(msgnum
= mp
->lowsel
; msgnum
<= mp
->hghsel
; msgnum
++) {
124 if(mp
->msgstats
[msgnum
]&SELECTED
) {
125 if((in
= fopen(cp
= m_name(msgnum
), "r")) == NULL
)
126 fprintf(stderr
, "--Can't open %s\n", cp
);
129 now
= time((long *)0);
131 cp
[9] = ' '; cp
[15] = 0;
133 Folder %-32s%s\n\n", folder
, cp
);
135 VOID
scan(in
, msgnum
, 0,
136 msgnum
== mp
->curmsg
,
137 (timeflag
? DOTIME
: 0)
138 | (numflag
? NUMDATE
: 0), hdrflag
);
141 if(stdout
->_cnt
< 80)