diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-23 21:04:52 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-23 21:04:52 +0000 |
commit | a1dc0f56e3b24e7c042ea90f3ace824f156403c8 (patch) | |
tree | aa1b9f3904a09d1b021ff440aed4d3a15783bc37 | |
parent | 1181f094e065a5f3b72ca9628e8d779917e5d6bc (diff) | |
download | mailutils-a1dc0f56e3b24e7c042ea90f3ace824f156403c8.tar.gz mailutils-a1dc0f56e3b24e7c042ea90f3ace824f156403c8.tar.bz2 |
(escape_deadletter): Add missing check.mu-1-2-1-before-new-config
-rw-r--r-- | mail/escape.c | 9 |
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] */ |
270 | int | 270 | int |
271 | escape_bcc (int argc, char **argv, compose_env_t *env) | 271 | escape_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] */ |
279 | int | 279 | int |
280 | escape_cc (int argc, char **argv, compose_env_t *env) | 280 | escape_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 */ |
288 | int | 288 | int |
289 | escape_deadletter (int argc MU_ARG_UNUSED, char **argv MU_ARG_UNUSED, | 289 | escape_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 | ||
301 | static int | 304 | static int |
302 | run_editor (char *ed, char *arg) | 305 | run_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 | ||
312 | static int | 315 | static int |
313 | escape_run_editor (char *ed, int argc, char **argv, compose_env_t *env) | 316 | escape_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); |