]> diplodocus.org Git - nmh/blob - docs/historical/mh-6.8.5/zotnet/mf/umsift.c
Beginning of implementation of new argsplit() function to handle arguments
[nmh] / docs / historical / mh-6.8.5 / zotnet / mf / umsift.c
1 /* umsift.c - test out uumm */
2
3 #include "mf.h"
4 #include <stdio.h>
5
6 /* \f */
7
8 /* ARGSUSED */
9
10 main (argc, argv)
11 int argc;
12 char **argv;
13 {
14 int oops = 0;
15 char sobuf[BUFSIZ];
16 FILE * fp;
17
18 mts_init (*argv);
19 setbuf (stdout, sobuf);
20 if (argc < 2)
21 sift (stdin);
22 else
23 while (--argc) {
24 if ((fp = fopen (*++argv)) == NULL) {
25 perror (*argv);
26 oops++;
27 continue;
28 }
29 sift (fp);
30 fclose (fp);
31 }
32
33 exit (oops);
34 }
35
36 /* \f */
37
38 static sift (f)
39 FILE * f;
40 {
41 switch (uucp2mmdf (fileno (f), fileno (stdout), FALSE)) {
42 case MFOK:
43 break;
44
45 case MFPRM:
46 die ("internal error while filtering UUCP mail");
47
48 case MFSIO:
49 die ("no free file pointers -- you lose");
50
51 case MFERR:
52 die ("i/o error while filtering UUCP mail");
53
54 case MFROM:
55 case MFHDR:
56 case MFTXT:
57 fprintf (stderr, "UUCP mail was in bad format, patched...\n");
58 break;
59 }
60 }
61
62 /* \f */
63
64 /* VARARGS */
65
66 die (fmt, a, b, c, d)
67 char *fmt,
68 *a,
69 *b,
70 *c,
71 *d;
72 {
73 fflush (stdout);
74
75 fprintf (stderr, fmt, a, b, c, d);
76 putc ('\n', stderr);
77
78 exit (-1);
79 }