]>
diplodocus.org Git - nmh/blob - docs/historical/2.9BSD/cmds/send.c
2 static char sccsid
[] = "@(#)send.c 4.2 2/23/83";
12 char *anoyes
[]; /* Std no/yes gans array */
17 struct swit switches
[] = {
21 "noformat", 0, /* 3 */
25 "noverbose", 0, /* 7 */
35 register char *drft
, *cp
;
40 char *arguments
[50], **argp
;
46 vec
[vecp
++] = "mh_deliver";
47 cp
= r1bindex(argv
[0], '/');
48 if((cp
= m_find(cp
)) != NULL
) {
49 ap
= brkstring(cp
= getcpy(cp
), " ", "\n");
50 ap
= copyip(ap
, arguments
);
57 switch(smatch(++cp
, switches
)) {
58 case -2:ambigsw(cp
, switches
); /* ambiguous */
61 case -1:fprintf(stderr
, "send: -%s unknown\n", cp
);
64 case 1: vec
[vecp
++] = drft
= m_maildir(draft
);
67 case 2: case 3: case 4:
68 case 5: case 6: case 7:
71 case 8: help("send [file] [switches]",
76 fprintf(stderr
, "Send: Only one message at a time.\n");
79 vec
[vecp
++] = drft
= cp
;
82 drft
= m_maildir(draft
);
83 if(stat(drft
, &stbuf
) == -1) {
84 fprintf(stderr
, "Draft file: %s doesn't exist.\n", drft
);
87 cp
= concat("Use \"", drft
, "\"? ", 0);
92 if(stat(drft
, &stbuf
) == -1) {
93 fprintf(stderr
, "Draft file: %s doesn't exist.\n", drft
);
100 while((pid
= fork()) == -1) {
101 fprintf("Waiting for a fork\n");
105 execv(mh_deliver
, vec
);
109 signal(SIGINT
, SIG_IGN
);
110 signal(SIGQUIT
, SIG_IGN
);
111 while((i
= wait(&status
)) != -1 && i
!= pid
) ;
112 if(status
== 0 && !debug
)
116 /*** m_update(); ***/
125 extern char *rindex();
128 if(cp
= rindex(file
, '/'))
129 sprintf(buf
, "%.*s", (++cp
)-file
, file
);
139 if(link(file
, buf
) < 0 || unlink(file
) < 0) {
140 fprintf(stderr
, "Send: Backup rename failure ");