** COPYRIGHT file in the root directory of the nmh distribution for
** complete copyright information.
**
-** Several options have been added to ease the inclusion of attachments
-** using the header field name mechanism added to anno and send. The
-** -attach option is used to specify the header field name for attachments.
+** The inclusion of attachments is eased by
+** using the header field name mechanism added to anno and send.
+** The header field name for attachments is predefined.
**
** Several commands have been added at the whatnow prompt:
**
{ "version", 0 },
#define HELPSW 4
{ "help", 0 },
-#define ATTACHSW 5
- { "attach header-field-name", 0 },
{ NULL, 0 }
};
char buf[BUFSIZ], prompt[BUFSIZ];
char **argp, **arguments;
struct stat st;
- char *attach = NULL; /* attachment header field name */
char cwd[MAXPATHLEN + 1]; /* current working directory */
char file[MAXPATHLEN + 1]; /* file name buffer */
char shell[MAXPATHLEN + 1]; /* shell response buffer */
argp[-2]);
continue;
- case ATTACHSW:
- if (attach != NULL)
- adios(NULL, "only one attachment header field name at a time!");
- if (!(attach = *argp++) || *attach == '-')
- adios(NULL, "missing argument to %s",
- argp[-2]);
- continue;
}
}
if (drft)
** -n numbers listing
*/
- if (attach == NULL) {
- advise(NULL, "can't list because no header field name was given.");
- break;
- }
-
l = NULL;
n = 0;
advise(NULL, "usage is alist [-ln].");
else
- annolist(drft, attach, l, n);
+ annolist(drft, attach_hdr, l, n);
break;
** Attach files to current draft.
*/
- if (attach == NULL) {
- advise(NULL, "can't attach because no header field name was given.");
- break;
- }
-
if (*(argp+1) == NULL) {
advise(NULL, "attach command requires file argument(s).");
break;
*(strchr(shell, '\n')) = '\0';
if (*shell == '/')
- annotate(drft, attach, shell,
- 1, 0, -2, 1);
+ annotate(drft, attach_hdr,
+ shell, 1, 0,
+ -2, 1);
else {
sprintf(file, "%s/%s", cwd,
shell);
- annotate(drft, attach, file,
- 1, 0, -2, 1);
+ annotate(drft, attach_hdr,
+ file, 1, 0,
+ -2, 1);
}
}
case DETACHCMDSW:
/*
** Detach files from current draft.
- */
-
- if (attach == NULL) {
- advise(NULL, "can't detach because no header field name was given.");
- break;
- }
-
- /*
+ **
** Scan the arguments for a -n. Mixed file
** names and numbers aren't allowed, so this
** catches a -n anywhere in the argument list.
if (**arguments != '\0') {
n = atoi(*arguments);
- annotate(drft, attach, NULL,
- 1, 0, n, 1);
+ annotate(drft, attach_hdr,
+ NULL, 1, 0,
+ n, 1);
for (argp = arguments + 1; *argp != NULL; argp++) {
if (atoi(*argp) > n) {
while (fgets(shell, sizeof (shell), f)
!= NULL) {
*(strchr(shell, '\n')) = '\0';
- annotate(drft, attach, shell,
+ annotate(drft, attach_hdr, shell,
1, 0, 0, 1);
}
pclose(f);
{ "server host", 6 },
#define SNOOPSW 31
{ "snoop", -5 },
-#define SNDATTACHSW 32
- { "attach file", 6 },
-#define SNDATTACHFORMAT 33
- { "attachformat", 7 },
-#define PORTSW 34
+#define PORTSW 32
{ "port server-port-name/number", 4 },
{ NULL, 0 }
};
char *cp, buf[BUFSIZ], **argp;
char **arguments, *vec[MAXARGS];
struct stat st;
- char *attach = NULL; /* attachment header field name */
- int attachformat = 0; /* mhbuild format specifier for attachments */
#ifndef lint
int distsw = 0;
vec[vecp++] = cp;
continue;
- case SNDATTACHSW:
- if (!(attach = *argp++) || *attach == '-') {
- advise(NULL, "missing argument to %s",
- argp[-2]);
- return;
- }
- continue;
-
- case SNDATTACHFORMAT:
- if (! *argp || **argp == '-')
- adios(NULL, "missing argument to %s",
- argp[-1]);
- else {
- attachformat = atoi(*argp);
- if (attachformat < 0 || attachformat > ATTACHFORMATS - 1) {
- advise(NULL, "unsupported attachformat %d", attachformat);
- continue;
- }
- }
- ++argp;
- continue;
}
}
advise(NULL, "usage: %s [switches]", sp);
vec[0] = mhbasename(postproc);
closefds(3);
- if (sendsbr(vec, vecp, file, &st, 1, attach, attachformat) == OK)
+ if (sendsbr(vec, vecp, file, &st, 1) == OK)
done(0);
}