Mercurial > hg > Applications > mh
comparison sbr/refile.c @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children | 441a2190cfae |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bce86c4163a3 |
---|---|
1 /* refile.c - refile the draft into another folder */ | |
2 #ifndef lint | |
3 static char ident[] = "@(#)$Id$"; | |
4 #endif /* lint */ | |
5 | |
6 #include "../h/mh.h" | |
7 #include <stdio.h> | |
8 #ifdef UNISTD | |
9 #include <unistd.h> | |
10 #endif | |
11 | |
12 int refile (arg, file) | |
13 register char **arg, | |
14 *file; | |
15 { | |
16 int pid; | |
17 register int vecp; | |
18 char *vec[MAXARGS]; | |
19 | |
20 vecp = 0; | |
21 vec[vecp++] = r1bindex (fileproc, '/'); | |
22 vec[vecp++] = "-nolink"; /* override bad .mh_profile defaults */ | |
23 vec[vecp++] = "-nopreserve"; | |
24 vec[vecp++] = "-file"; | |
25 vec[vecp++] = file; | |
26 | |
27 if (arg) | |
28 while (*arg) | |
29 vec[vecp++] = *arg++; | |
30 vec[vecp] = NULL; | |
31 | |
32 m_update (); | |
33 (void) fflush (stdout); | |
34 | |
35 switch (pid = vfork ()) { | |
36 case NOTOK: | |
37 advise ("fork", "unable to"); | |
38 return NOTOK; | |
39 | |
40 case OK: | |
41 execvp (fileproc, vec); | |
42 fprintf (stderr, "unable to exec "); | |
43 perror (fileproc); | |
44 _exit (-1); | |
45 | |
46 default: | |
47 return (pidwait (pid, NOTOK)); | |
48 } | |
49 } |