char content_type[BUFSIZ];
char cmdbuf[BUFSIZ];
char *cmd = mimetypequeryproc;
+ int semicolon = 0;
for (np = m_defs; np; np = np->n_next) {
if (strcasecmp(np->n_name, mimetypequery)==0) {
adios(NULL, "unable to access file `%s'", file_name);
}
- cp = (!(cp = strrchr(file_name, '/'))) ? file_name : cp + 1;
- fprintf(composition_file, "#%s; name=\"%s\" <> [%s] {attachment}",
- content_type, cp, cp);
+ /* Check for broken file(1). See man page mh-profile(5). */
+ for (cp=content_type; *cp; cp++) {
+ if (isspace(*cp)) {
+ if (!semicolon) {
+ adios(NULL, "Sorry, your Mime-Type-Query command (%s) is broken.\n\tThe output misses a semicolon before the whitespace.\n\tOutput was: %s", cmd, content_type);
+ }
+ } else if (*cp == ';') {
+ semicolon = 1;
+ } else {
+ semicolon = 0;
+ }
+ }
- fprintf(composition_file, " %s\n", file_name);
+ cp = (!(cp = strrchr(file_name, '/'))) ? file_name : cp + 1;
+ fprintf(composition_file,
+ "#%s; name=\"%s\" <> [%s] {attachment} %s\n",
+ content_type, cp, cp, file_name);
return;
}