annotate uip/show.c @ 12:441a2190cfae

Lion fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Apr 2012 13:10:49 +0900
parents bce86c4163a3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1 /* show.c - list messages */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2 #ifndef lint
12
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
3 static char ident[] = "@(#)$Id: show.c,v 1.1.1.1 2005/04/18 14:46:07 kono Exp $";
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
4 #endif /* lint */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
5
bce86c4163a3 Initial revision
kono
parents:
diff changeset
6 #include "../h/mh.h"
bce86c4163a3 Initial revision
kono
parents:
diff changeset
7 #include <ctype.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
8 #include <stdio.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
9 #ifdef LOCALE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
10 #include <locale.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
11 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
12
bce86c4163a3 Initial revision
kono
parents:
diff changeset
13 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
14
bce86c4163a3 Initial revision
kono
parents:
diff changeset
15 static struct swit switches[] = {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
16 #define DRFTSW 0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
17 "draft", 5,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
18
bce86c4163a3 Initial revision
kono
parents:
diff changeset
19 #define FORMSW 1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
20 "form formfile", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
21 #define PROGSW 2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
22 "moreproc program", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
23 #define NPROGSW 3
bce86c4163a3 Initial revision
kono
parents:
diff changeset
24 "nomoreproc", 3,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
25 #define LENSW 4
bce86c4163a3 Initial revision
kono
parents:
diff changeset
26 "length lines", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
27 #define WIDSW 5
bce86c4163a3 Initial revision
kono
parents:
diff changeset
28 "width columns", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
29
bce86c4163a3 Initial revision
kono
parents:
diff changeset
30 #define SHOWSW 6
bce86c4163a3 Initial revision
kono
parents:
diff changeset
31 "showproc program", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
32 #define NSHOWSW 7
bce86c4163a3 Initial revision
kono
parents:
diff changeset
33 "noshowproc", 3,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
34
bce86c4163a3 Initial revision
kono
parents:
diff changeset
35 #define HEADSW 8
bce86c4163a3 Initial revision
kono
parents:
diff changeset
36 "header", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
37 #define NHEADSW 9
bce86c4163a3 Initial revision
kono
parents:
diff changeset
38 "noheader", 3,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
39
bce86c4163a3 Initial revision
kono
parents:
diff changeset
40 #define FILESW 10
bce86c4163a3 Initial revision
kono
parents:
diff changeset
41 "file file", -4, /* interface from showfile */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
42
bce86c4163a3 Initial revision
kono
parents:
diff changeset
43 #define HELPSW 11
bce86c4163a3 Initial revision
kono
parents:
diff changeset
44 "help", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
45
bce86c4163a3 Initial revision
kono
parents:
diff changeset
46 NULL, 0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
47 };
bce86c4163a3 Initial revision
kono
parents:
diff changeset
48
bce86c4163a3 Initial revision
kono
parents:
diff changeset
49 #ifdef MIME
bce86c4163a3 Initial revision
kono
parents:
diff changeset
50 static int nontext();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
51 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
52
bce86c4163a3 Initial revision
kono
parents:
diff changeset
53 #define SHOW 0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
54 #define NEXT 1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
55 #define PREV 2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
56
bce86c4163a3 Initial revision
kono
parents:
diff changeset
57 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
58
bce86c4163a3 Initial revision
kono
parents:
diff changeset
59 /* ARGSUSED */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
61 main (argc, argv)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
62 int argc;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
63 char **argv;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
64 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
65 int draftsw = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
66 headersw = 1,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
67 nshow = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
68 msgp = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
69 vecp = 1,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
70 procp = 1,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
71 isdf = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
72 mode = SHOW,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
73 msgnum;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
74 char *cp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
75 *maildir,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
76 *file = NULL,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
77 *folder = NULL,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
78 *proc,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
79 buf[100],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
80 **ap,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
81 **argp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
82 *arguments[MAXARGS],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
83 *msgs[MAXARGS],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
84 *vec[MAXARGS];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
85 struct msgs *mp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
86
bce86c4163a3 Initial revision
kono
parents:
diff changeset
87 #ifdef LOCALE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
88 setlocale(LC_ALL, "");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
89 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
90 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
91 ml_init();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
92 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
93 invo_name = r1bindex (argv[0], '/');
bce86c4163a3 Initial revision
kono
parents:
diff changeset
94 if (uleq (invo_name, "next"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
95 mode = NEXT;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
96 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
97 if (uleq (invo_name, "prev"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
98 mode = PREV;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
99 if ((cp = m_find (invo_name)) != NULL) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
100 ap = brkstring (cp = getcpy (cp), " ", "\n");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
101 ap = copyip (ap, arguments);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
102 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
103 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
104 ap = arguments;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
105 (void) copyip (argv + 1, ap);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
106 argp = arguments;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
107
bce86c4163a3 Initial revision
kono
parents:
diff changeset
108 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
109
bce86c4163a3 Initial revision
kono
parents:
diff changeset
110 while (cp = *argp++) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
111 if (*cp == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
112 switch (smatch (++cp, switches)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
113 case AMBIGSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
114 ambigsw (cp, switches);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
115 done (1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
116 case UNKWNSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
117 case NPROGSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
118 vec[vecp++] = --cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
119 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
120 case HELPSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
121 (void) sprintf (buf,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
122 "%s [+folder] %s[switches] [switches for showproc]",
bce86c4163a3 Initial revision
kono
parents:
diff changeset
123 invo_name, mode == SHOW ? "[msgs] ": "");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
124 help (buf, switches);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
125 done (1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
126
bce86c4163a3 Initial revision
kono
parents:
diff changeset
127 case DRFTSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
128 if (file)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
129 adios (NULLCP, "only one file at a time!");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
130 draftsw++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
131 if (mode == SHOW)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
132 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
133 usage: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
134 adios (NULLCP,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
135 "usage: %s [+folder] [switches] [switches for showproc]",
bce86c4163a3 Initial revision
kono
parents:
diff changeset
136 invo_name);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
137 case FILESW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
138 if (mode != SHOW)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
139 goto usage;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
140 if (draftsw || file)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
141 adios (NULLCP, "only one file at a time!");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
142 if (!(cp = *argp++) || *cp == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
143 adios (NULLCP, "missing argument to %s", argp[-2]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
144 file = path (cp, TFILE);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
145 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
146
bce86c4163a3 Initial revision
kono
parents:
diff changeset
147 case HEADSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
148 headersw++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
149 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
150 case NHEADSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
151 headersw = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
152 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
153
bce86c4163a3 Initial revision
kono
parents:
diff changeset
154 case FORMSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
155 vec[vecp++] = --cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
156 if (!(cp = *argp++) || *cp == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
157 adios (NULLCP, "missing argument to %s", argp[-2]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
158 vec[vecp++] = getcpy (libpath(cp));
bce86c4163a3 Initial revision
kono
parents:
diff changeset
159 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
160
bce86c4163a3 Initial revision
kono
parents:
diff changeset
161 case PROGSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
162 case LENSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
163 case WIDSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
164 vec[vecp++] = --cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
165 if (!(cp = *argp++) || *cp == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
166 adios (NULLCP, "missing argument to %s", argp[-2]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
167 vec[vecp++] = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
168 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
169
bce86c4163a3 Initial revision
kono
parents:
diff changeset
170 case SHOWSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
171 if (!(showproc = *argp++) || *showproc == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
172 adios (NULLCP, "missing argument to %s", argp[-2]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
173 nshow = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
174 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
175 case NSHOWSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
176 nshow++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
177 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
178 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
179 if (*cp == '+' || *cp == '@') {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
180 if (folder)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
181 adios (NULLCP, "only one folder at a time!");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
182 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
183 folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
184 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
185 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
186 if (mode != SHOW)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
187 goto usage;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
188 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
189 msgs[msgp++] = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
190 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
191 procp = vecp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
192
bce86c4163a3 Initial revision
kono
parents:
diff changeset
193 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
194
bce86c4163a3 Initial revision
kono
parents:
diff changeset
195 if (!m_find ("path"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
196 free (path ("./", TFOLDER));
bce86c4163a3 Initial revision
kono
parents:
diff changeset
197
bce86c4163a3 Initial revision
kono
parents:
diff changeset
198 if (draftsw || file) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
199 if (msgp)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
200 adios (NULLCP, "only one file at a time!");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
201 vec[vecp++] = draftsw
bce86c4163a3 Initial revision
kono
parents:
diff changeset
202 ? getcpy (m_draft (folder, msgp ? msgs[0] : NULL, 1, &isdf))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
203 : file;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
204 goto go_to_it;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
205 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
206
bce86c4163a3 Initial revision
kono
parents:
diff changeset
207 #ifdef WHATNOW
bce86c4163a3 Initial revision
kono
parents:
diff changeset
208 if (!msgp && !folder && mode == SHOW && (cp = getenv ("mhdraft")) && *cp) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
209 draftsw++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
210 vec[vecp++] = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
211 goto go_to_it;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
212 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
213 #endif /* WHATNOW */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
214
bce86c4163a3 Initial revision
kono
parents:
diff changeset
215 if (!msgp)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
216 msgs[msgp++] = mode == NEXT ? "next" : mode == PREV ? "prev" : "cur";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
217 if (!folder)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
218 folder = m_getfolder ();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
219 maildir = m_maildir (folder);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
220
bce86c4163a3 Initial revision
kono
parents:
diff changeset
221 if (chdir (maildir) == NOTOK)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
222 adios (maildir, "unable to change directory to");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
223 if (!(mp = m_gmsg (folder)))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
224 adios (NULLCP, "unable to read folder %s", folder);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
225 if (mp -> hghmsg == 0)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
226 adios (NULLCP, "no messages in %s", folder);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
227
bce86c4163a3 Initial revision
kono
parents:
diff changeset
228 for (msgnum = 0; msgnum < msgp; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
229 if (!m_convert (mp, msgs[msgnum]))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
230 done (1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
231 for (msgnum = mp -> lowsel; msgnum <= mp -> hghsel; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
232 if (mp -> msgstats[msgnum] & SELECTED)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
233 mp -> msgstats[msgnum] |= UNSEEN;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
234 m_setseq (mp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
235 m_setvis (mp, 1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
236
bce86c4163a3 Initial revision
kono
parents:
diff changeset
237 if (mp -> numsel > MAXARGS - 2)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
238 adios (NULLCP, "more than %d messages for show exec", MAXARGS - 2);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
239 for (msgnum = mp -> lowsel; msgnum <= mp -> hghsel; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
240 if (mp -> msgstats[msgnum] & SELECTED)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
241 vec[vecp++] = getcpy (m_name (msgnum));
bce86c4163a3 Initial revision
kono
parents:
diff changeset
242
bce86c4163a3 Initial revision
kono
parents:
diff changeset
243 m_replace (pfolder, folder);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
244 if (mp -> hghsel != mp -> curmsg)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
245 m_setcur (mp, mp -> hghsel);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
246 m_sync (mp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
247 m_update ();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
248
bce86c4163a3 Initial revision
kono
parents:
diff changeset
249 if (vecp == 2 && headersw)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
250 printf ("(Message %s:%s)\n", folder, vec[1]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
251
bce86c4163a3 Initial revision
kono
parents:
diff changeset
252 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
253
bce86c4163a3 Initial revision
kono
parents:
diff changeset
254 go_to_it: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
255 (void) fflush (stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
256
bce86c4163a3 Initial revision
kono
parents:
diff changeset
257 vec[vecp] = NULL;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
258
bce86c4163a3 Initial revision
kono
parents:
diff changeset
259 #ifdef MIME
bce86c4163a3 Initial revision
kono
parents:
diff changeset
260 if (!nshow && !getenv ("NOMHNPROC")) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
261 if (!(cp = m_find ("mhnproc")))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
262 cp = "mhn";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
263
bce86c4163a3 Initial revision
kono
parents:
diff changeset
264 if (draftsw || file) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
265 if (nontext (vec[vecp - 1])) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
266 vec[vecp] = vec[vecp - 1];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
267 vec[vecp - 1] = "-file";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
268 vecp++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
269 goto use_mmp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
270 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
271 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
272 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
273 for (msgnum = mp -> lowsel; msgnum <= mp -> hghsel; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
274 if ((mp -> msgstats[msgnum] & SELECTED)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
275 && nontext (m_name (msgnum))) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
276 use_mmp: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
277 proc = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
278 vec[vecp++] = "-show";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
279 vec[vecp] = NULL;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
280 goto finish;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
281 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
282 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
283 #endif /* MIME */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
284 if (nshow) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
285 proc = "/bin/cat";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
286 for (msgnum = procp; msgnum <= vecp; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
287 vec[msgnum - procp + 1] = vec[msgnum];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
288 vecp -= procp - 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
289 procp = 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
290 } else {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
291 if (folder && !draftsw && !file)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
292 (void) m_putenv ("mhfolder", folder);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
293 if (strcmp (r1bindex (showproc, '/'), "mhl") == 0) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
294 vec[0] = "mhl";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
295 (void) mhl (vecp, vec);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
296 done (0);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
297 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
298 proc = showproc;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
299 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
300
bce86c4163a3 Initial revision
kono
parents:
diff changeset
301 if (!draftsw
bce86c4163a3 Initial revision
kono
parents:
diff changeset
302 && !file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
303 && chdir (maildir = concat (m_maildir (""), "/", NULLCP))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
304 != NOTOK) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
305 mp -> foldpath = concat (mp -> foldpath, "/", NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
306 cp = ssequal (maildir, mp -> foldpath)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
307 ? mp -> foldpath + strlen (maildir)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
308 : mp -> foldpath;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
309 for (msgnum = procp; msgnum < vecp; msgnum++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
310 vec[msgnum] = concat (cp, vec[msgnum], NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
311 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
312
bce86c4163a3 Initial revision
kono
parents:
diff changeset
313 finish:;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
314 vec[0] = r1bindex (proc, '/');
bce86c4163a3 Initial revision
kono
parents:
diff changeset
315 execvp (proc, vec);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
316 adios (proc, "unable to exec");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
317 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
318
bce86c4163a3 Initial revision
kono
parents:
diff changeset
319 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
320
bce86c4163a3 Initial revision
kono
parents:
diff changeset
321 /* Cheat: we are loaded with adrparse, which wants a routine called
bce86c4163a3 Initial revision
kono
parents:
diff changeset
322 OfficialName(). We call adrparse:getm() with the correct arguments
bce86c4163a3 Initial revision
kono
parents:
diff changeset
323 to prevent OfficialName() from being called. Hence, the following
bce86c4163a3 Initial revision
kono
parents:
diff changeset
324 is to keep the loader happy.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
325 */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
326
bce86c4163a3 Initial revision
kono
parents:
diff changeset
327 char *OfficialName (name)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
328 register char *name;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
329 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
330 return name;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
331 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
332
bce86c4163a3 Initial revision
kono
parents:
diff changeset
333 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
334
bce86c4163a3 Initial revision
kono
parents:
diff changeset
335 #ifdef MIME
bce86c4163a3 Initial revision
kono
parents:
diff changeset
336 #include "../h/mhn.h"
bce86c4163a3 Initial revision
kono
parents:
diff changeset
337
bce86c4163a3 Initial revision
kono
parents:
diff changeset
338
bce86c4163a3 Initial revision
kono
parents:
diff changeset
339 static int nontext (msgnam)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
340 char *msgnam;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
341 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
342 int result,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
343 state;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
344 register char *bp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
345 *dp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
346 char *chset,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
347 *cp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
348 buf[BUFSIZ],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
349 name[NAMESZ];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
350 FILE *fp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
351
bce86c4163a3 Initial revision
kono
parents:
diff changeset
352 if ((fp = fopen (msgnam, "r")) == NULL)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
353 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
354
bce86c4163a3 Initial revision
kono
parents:
diff changeset
355 if (!(chset = getenv ("MM_CHARSET")))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
356 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
357 chset = "iso-2022-jp";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
358 #else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
359 chset = "us-ascii";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
360 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
361
bce86c4163a3 Initial revision
kono
parents:
diff changeset
362 for (state = FLD;;)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
363 switch (state = m_getfld (state, name, buf, sizeof buf, fp)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
364 case FLD:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
365 case FLDPLUS:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
366 case FLDEOF:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
367 if (uleq (name, TYPE_FIELD)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
368 int passno;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
369 char c;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
370
bce86c4163a3 Initial revision
kono
parents:
diff changeset
371 cp = add (buf, NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
372 while (state == FLDPLUS) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
373 state = m_getfld (state, name, buf, sizeof buf, fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
374 cp = add (buf, cp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
375 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
376 bp = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
377 passno = 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
378
bce86c4163a3 Initial revision
kono
parents:
diff changeset
379 again: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
380 for (; isspace (*bp); bp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
381 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
382 if (*bp == '(') {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
383 int i;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
384
bce86c4163a3 Initial revision
kono
parents:
diff changeset
385 for (bp++, i = 0;;) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
386 switch (*bp++) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
387 case '\0':
bce86c4163a3 Initial revision
kono
parents:
diff changeset
388 invalid: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
389 result = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
390 goto out;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
391 case '\\':
bce86c4163a3 Initial revision
kono
parents:
diff changeset
392 if (*bp++ == '\0')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
393 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
394 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
395 case '(':
bce86c4163a3 Initial revision
kono
parents:
diff changeset
396 i++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
397 /* and fall... */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
398 default:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
399 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
400 case ')':
bce86c4163a3 Initial revision
kono
parents:
diff changeset
401 if (--i < 0)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
402 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
403 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
404 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
405 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
406 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
407 for (; isspace (*bp); bp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
408 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
409 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
410 if (passno == 2) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
411 if (*bp != '/')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
412 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
413 bp++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
414 passno = 3;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
415 goto again;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
416 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
417 else if (passno == 4) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
418 if (*bp != ';')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
419 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
420 bp++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
421 passno = 5;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
422 goto again;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
423 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
424 for (dp = bp; istoken (*dp); dp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
425 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
426 c = *dp, *dp = '\0';
bce86c4163a3 Initial revision
kono
parents:
diff changeset
427 if (*bp == '\0')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
428 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
429 if (passno == 3) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
430 if (result = !uleq (bp, "plain"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
431 goto out;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
432 *dp = c;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
433 bp = dp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
434 passno = 4;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
435 goto again;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
436 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
437 if (passno > 1) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
438 if (result = !uprf (bp, "charset"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
439 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
440 *dp = c;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
441 while (isspace (*dp))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
442 dp++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
443 if (*dp++ != '=')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
444 goto invalid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
445 while (isspace (*dp))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
446 dp++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
447 if (*dp == '"') {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
448 if (bp = index (++dp, '"'))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
449 *bp = '\0';
bce86c4163a3 Initial revision
kono
parents:
diff changeset
450 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
451 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
452 for (bp = dp; *bp; bp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
453 if (!istoken (*bp)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
454 *bp = '\0';
bce86c4163a3 Initial revision
kono
parents:
diff changeset
455 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
456 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
457 if ((result = !uleq (dp, chset))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
458 && uleq (dp, "us-ascii")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
459 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
460 && (uleq (chset, "iso-2022-jp")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
461 || uleq (chset, "euc-jp")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
462 || uleq (chset, "shift_jis")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
463 || (uprf (chset, "iso-8859-")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
464 && m_atoi (chset+9) >= 1)))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
465 #else /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
466 /* && uleq (chset, "iso-8859-1")) */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
467 && uprf (chset, "iso-8859-")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
468 && m_atoi (chset+9) >= 1)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
469 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
470 result = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
471 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
472 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
473 if (!(result = !uleq (bp, "text"))) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
474 *dp = c;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
475 bp = dp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
476 passno = 2;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
477 goto again;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
478 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
479
bce86c4163a3 Initial revision
kono
parents:
diff changeset
480 out: ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
481 free (cp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
482 if (result) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
483 (void) fclose (fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
484 return result;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
485 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
486 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
487 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
488 if (uleq (name, ENCODING_FIELD)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
489 cp = add (buf, NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
490 while (state == FLDPLUS) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
491 state = m_getfld (state, name, buf, sizeof buf, fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
492 cp = add (buf, cp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
493 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
494 for (bp = cp; isspace (*bp); bp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
495 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
496 for (dp = bp; istoken (*dp); dp++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
497 continue;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
498 *dp = '\0';
bce86c4163a3 Initial revision
kono
parents:
diff changeset
499 result = !uleq (bp, "7bit")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
500 && !uleq (bp, "8bit")
bce86c4163a3 Initial revision
kono
parents:
diff changeset
501 && !uleq (bp, "binary");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
502
bce86c4163a3 Initial revision
kono
parents:
diff changeset
503 free (cp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
504 if (result) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
505 (void) fclose (fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
506 return result;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
507 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
508 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
509 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
510 while (state == FLDPLUS)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
511 state = m_getfld (state, name, buf, sizeof buf, fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
512 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
513
bce86c4163a3 Initial revision
kono
parents:
diff changeset
514 default:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
515 (void) fclose (fp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
516 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
517 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
518 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
519 #endif /* MIME */