summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2007-10-23 21:04:52 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2007-10-23 21:04:52 +0000
commita1dc0f56e3b24e7c042ea90f3ace824f156403c8 (patch)
treeaa1b9f3904a09d1b021ff440aed4d3a15783bc37
parent1181f094e065a5f3b72ca9628e8d779917e5d6bc (diff)
downloadmailutils-a1dc0f56e3b24e7c042ea90f3ace824f156403c8.tar.gz
mailutils-a1dc0f56e3b24e7c042ea90f3ace824f156403c8.tar.bz2
(escape_deadletter): Add missing check.mu-1-2-1-before-new-config
-rw-r--r--mail/escape.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mail/escape.c b/mail/escape.c
index 8675ec847..7733ec513 100644
--- a/mail/escape.c
+++ b/mail/escape.c
@@ -247,99 +247,102 @@ escape_sign (int argc MU_ARG_UNUSED, char **argv, compose_env_t *env MU_ARG_UNUS
247 247
248 if (!fp) 248 if (!fp)
249 { 249 {
250 util_error (_("Cannot open %s: %s"), name, mu_strerror (errno)); 250 util_error (_("Cannot open %s: %s"), name, mu_strerror (errno));
251 free (name); 251 free (name);
252 } 252 }
253 253
254 fprintf (stdout, _("Reading %s\n"), name); 254 fprintf (stdout, _("Reading %s\n"), name);
255 while (getline (&buf, &n, fp) > 0) 255 while (getline (&buf, &n, fp) > 0)
256 fprintf (ofile, "%s", buf); 256 fprintf (ofile, "%s", buf);
257 257
258 fclose (fp); 258 fclose (fp);
259 free (buf); 259 free (buf);
260 free (name); 260 free (name);
261 } 261 }
262 else 262 else
263 fprintf (ofile, "%s", p); 263 fprintf (ofile, "%s", p);
264 escape_continue (); 264 escape_continue ();
265 } 265 }
266 return 0; 266 return 0;
267} 267}
268 268
269/* ~b[bcc-list] */ 269/* ~b[bcc-list] */
270int 270int
271escape_bcc (int argc, char **argv, compose_env_t *env) 271escape_bcc (int argc, char **argv, compose_env_t *env)
272{ 272{
273 while (--argc) 273 while (--argc)
274 compose_header_set (env, MU_HEADER_BCC, *++argv, COMPOSE_SINGLE_LINE); 274 compose_header_set (env, MU_HEADER_BCC, *++argv, COMPOSE_SINGLE_LINE);
275 return 0; 275 return 0;
276} 276}
277 277
278/* ~c[cc-list] */ 278/* ~c[cc-list] */
279int 279int
280escape_cc (int argc, char **argv, compose_env_t *env) 280escape_cc (int argc, char **argv, compose_env_t *env)
281{ 281{
282 while (--argc) 282 while (--argc)
283 compose_header_set (env, MU_HEADER_CC, *++argv, COMPOSE_SINGLE_LINE); 283 compose_header_set (env, MU_HEADER_CC, *++argv, COMPOSE_SINGLE_LINE);
284 return 0; 284 return 0;
285} 285}
286 286
287/* ~d */ 287/* ~d */
288int 288int
289escape_deadletter (int argc MU_ARG_UNUSED, char **argv MU_ARG_UNUSED, 289escape_deadletter (int argc MU_ARG_UNUSED, char **argv MU_ARG_UNUSED,
290 compose_env_t *env MU_ARG_UNUSED) 290 compose_env_t *env MU_ARG_UNUSED)
291{ 291{
292 FILE *dead = fopen (getenv ("DEAD"), "r"); 292 FILE *dead = fopen (getenv ("DEAD"), "r");
293 int c; 293 int c;
294 294
295 while ((c = fgetc (dead)) != EOF) 295 if (dead)
296 fputc (c, ofile); 296 {
297 fclose (dead); 297 while ((c = fgetc (dead)) != EOF)
298 fputc (c, ofile);
299 fclose (dead);
300 }
298 return 0; 301 return 0;
299} 302}
300 303
301static int 304static int
302run_editor (char *ed, char *arg) 305run_editor (char *ed, char *arg)
303{ 306{
304 char *argv[3]; 307 char *argv[3];
305 308
306 argv[0] = ed; 309 argv[0] = ed;
307 argv[1] = arg; 310 argv[1] = arg;
308 argv[2] = NULL; 311 argv[2] = NULL;
309 return mail_execute (1, 2, argv); 312 return mail_execute (1, 2, argv);
310} 313}
311 314
312static int 315static int
313escape_run_editor (char *ed, int argc, char **argv, compose_env_t *env) 316escape_run_editor (char *ed, int argc, char **argv, compose_env_t *env)
314{ 317{
315 if (!util_getenv (NULL, "editheaders", Mail_env_boolean, 0)) 318 if (!util_getenv (NULL, "editheaders", Mail_env_boolean, 0))
316 { 319 {
317 char *filename; 320 char *filename;
318 int fd = mu_tempfile (NULL, &filename); 321 int fd = mu_tempfile (NULL, &filename);
319 FILE *fp = fdopen (fd, "w+"); 322 FILE *fp = fdopen (fd, "w+");
320 char buffer[512]; 323 char buffer[512];
321 int rc; 324 int rc;
322 325
323 dump_headers (fp, env); 326 dump_headers (fp, env);
324 327
325 rewind (env->file); 328 rewind (env->file);
326 while (fgets (buffer, sizeof (buffer), env->file)) 329 while (fgets (buffer, sizeof (buffer), env->file))
327 fputs (buffer, fp); 330 fputs (buffer, fp);
328 331
329 fclose (env->file); 332 fclose (env->file);
330 333
331 do 334 do
332 { 335 {
333 fclose (fp); 336 fclose (fp);
334 run_editor (ed, filename); 337 run_editor (ed, filename);
335 fp = fopen (filename, "r"); 338 fp = fopen (filename, "r");
336 } 339 }
337 while ((rc = parse_headers (fp, env)) < 0); 340 while ((rc = parse_headers (fp, env)) < 0);
338 341
339 if (rc == 0) 342 if (rc == 0)
340 { 343 {
341 env->file = fopen (env->filename, "w"); 344 env->file = fopen (env->filename, "w");
342 while (fgets (buffer, sizeof (buffer), fp)) 345 while (fgets (buffer, sizeof (buffer), fp))
343 fputs (buffer, env->file); 346 fputs (buffer, env->file);
344 347
345 fclose (env->file); 348 fclose (env->file);

Return to:

Send suggestions and report system problems to the System administrator.