]>
diplodocus.org Git - nmh/blob - docs/historical/mh-nov-1983/cmds/scan.c
9 struct swit switches
[] = {
14 "noheader", 0, /* 4 */
23 char *folder
, *maildir
, *msgs
[100];
25 register char *cp
, **ap
;
29 char *arguments
[50], **argp
;
32 setbuf(stdout
, _sobuf
);
36 ff
= 0; msgp
= 0; folder
= 0;
37 cp
= r1bindex(argv
[0], '/');
38 if((cp
= m_find(cp
)) != NULL
) {
39 ap
= brkstring(cp
= getcpy(cp
), " ", "\n");
40 ap
= copyip(ap
, arguments
);
47 switch(smatch(++cp
, switches
)) {
48 case -2:ambigsw(cp
, switches
); /* ambiguous */
51 case -1:fprintf(stderr
, "scan: -%s unknown\n", cp
);
54 case 0: fprintf(stderr
, "\"-all\" changed to \"all\"\n");
56 case 1: ff
= 1; continue; /* -ff */
57 case 2: ff
= 0; continue; /* -noff */
58 case 3: hdrflag
= 0; continue; /* -header */
59 case 4: hdrflag
= 1; continue; /* -noheader */
60 case 5: reverse
= 1; continue; /* -reverse */
61 case 6: help("scan [+folder] [msgs] [switches]",
67 fprintf(stderr
, "Only one folder at a time.\n");
75 folder
= m_getfolder();
76 maildir
= m_maildir(folder
);
77 if(chdir(maildir
) < 0) {
78 fprintf(stderr
, "Can't chdir to: ");
82 if(!(mp
= m_gmsg(folder
))) {
83 fprintf(stderr
, "Can't read folder!?\n");
87 fprintf(stderr
, "No messages in \"%s\".\n", folder
);
91 msgs
[msgp
++] = "first-last";
92 for(msgnum
= 0; msgnum
< msgp
; msgnum
++)
93 if(!m_convert(msgs
[msgnum
]))
96 fprintf(stderr
, "scan: matzo balls.\n"); /* never get here */
99 m_replace(pfolder
,folder
);
100 for( msgnum
= (reverse
? mp
->hghsel
: mp
->lowsel
);
101 (reverse
? msgnum
>= mp
->lowsel
: msgnum
<= mp
->hghsel
);
102 (reverse
? msgnum
-- : msgnum
++)) {
103 if(mp
->msgstats
[msgnum
]&SELECTED
) {
104 if((in
= fopen(cp
= m_name(msgnum
), "r")) == NULL
)
105 fprintf(stderr
, "--Can't open %s\n", cp
);
110 cp
[9] = ' '; cp
[15] = 0;
113 # Date From Subject [<<Body]\n\n", folder
, cp
);
115 scan(in
, msgnum
, 0, msgnum
== mp
->curmsg
);
117 if(stdout
->_cnt
< 80)