175 |
{ |
{ |
176 |
int status; |
int status; |
177 |
ofile = env->ofile; |
ofile = env->ofile; |
178 |
status = mail_shell (argc, argv); |
++*argv; |
179 |
|
status = mail_execute (1, argc, argv); |
180 |
ofile = env->file; |
ofile = env->file; |
181 |
return status; |
return status; |
182 |
} |
} |
299 |
return 0; |
return 0; |
300 |
} |
} |
301 |
|
|
302 |
|
static void |
303 |
|
run_editor (char *ed, char *arg) |
304 |
|
{ |
305 |
|
char *argv[3]; |
306 |
|
|
307 |
|
argv[0] = ed; |
308 |
|
argv[1] = arg; |
309 |
|
argv[2] = NULL; |
310 |
|
return mail_execute (1, 2, argv); |
311 |
|
} |
312 |
|
|
313 |
static int |
static int |
314 |
var_run_editor (char *ed, int argc, char **argv, compose_env_t *env) |
var_run_editor (char *ed, int argc, char **argv, compose_env_t *env) |
315 |
{ |
{ |
332 |
do |
do |
333 |
{ |
{ |
334 |
fclose (fp); |
fclose (fp); |
335 |
util_do_command ("!%s %s", ed, filename); |
run_editor (ed, filename); |
336 |
fp = fopen (filename, "r"); |
fp = fopen (filename, "r"); |
337 |
} |
} |
338 |
while ((rc = parse_headers (fp, env)) < 0); |
while ((rc = parse_headers (fp, env)) < 0); |
353 |
{ |
{ |
354 |
fclose (env->file); |
fclose (env->file); |
355 |
ofile = env->ofile; |
ofile = env->ofile; |
356 |
util_do_command ("!%s %s", ed, env->filename); |
run_editor (ed, env->filename); |
357 |
} |
} |
358 |
|
|
359 |
env->file = fopen (env->filename, "a+"); |
env->file = fopen (env->filename, "a+"); |