X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fsendsbr.c;h=aeba011e1377352e48db87e90cd7ea3d862b7ba0;hb=30fd2ad6d3eff3749b2ae99ec90d2215bf1b1aca;hp=a43627f1eec29614d07d47476866891ca8a59ba2;hpb=5ff96d61ee5af34956ae958a0bc72ee78734a4d7;p=mmh diff --git a/uip/sendsbr.c b/uip/sendsbr.c index a43627f..aeba011 100644 --- a/uip/sendsbr.c +++ b/uip/sendsbr.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #ifdef TIME_WITH_SYS_TIME @@ -400,7 +401,7 @@ make_mime_composition_file_entry(char *file_name, int attachformat) if ((p = strrchr(file_name, '.')) != (char *)0) { for (np = m_defs; np; np = np->n_next) { - if (strncasecmp(np->n_name, "mhshow-suffix-", 14) == 0 && strcasecmp(p, np->n_field) == 0) { + if (strncasecmp(np->n_name, "mhshow-suffix-", 14) == 0 && mh_strcasecmp(p, np->n_field) == 0) { content_type = np->n_name + 14; break; } @@ -488,17 +489,37 @@ make_mime_composition_file_entry(char *file_name, int attachformat) break; case 1: - /* Suppress Content-Id, insert simple Content-Disposition. */ - (void) fprintf (composition_file, "#%s <>{attachment}", content_type); + if (stringdex (m_maildir(invo_name), file_name) == 0) { + /* Content had been placed by send into a temp file. + Don't generate Content-Disposition header, because + it confuses Microsoft Outlook, Build 10.0.6626, at + least. */ + (void) fprintf (composition_file, "#%s <>", content_type); + } else { + /* Suppress Content-Id, insert simple Content-Disposition. */ + (void) fprintf (composition_file, + "#%s; name=\"%s\" <>{attachment}", + content_type, + ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1); + } break; case 2: - /* Suppress Content-Id, insert Content-Disposition with - modification date. */ - (void) fprintf (composition_file, - "#%s <>{attachment; modification-date=\"%s\"}", - content_type, - dtime (&st.st_mtim, 0)); + if (stringdex (m_maildir(invo_name), file_name) == 0) { + /* Content had been placed by send into a temp file. + Don't generate Content-Disposition header, because + it confuses Microsoft Outlook, Build 10.0.6626, at + least. */ + (void) fprintf (composition_file, "#%s <>", content_type); + } else { + /* Suppress Content-Id, insert Content-Disposition with + modification date. */ + (void) fprintf (composition_file, + "#%s; name=\"%s\" <>{attachment; modification-date=\"%s\"}", + content_type, + ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1, + dtime (&st.st_mtime, 0)); + } break; default: @@ -550,13 +571,13 @@ splitmsg (char **vec, int vecp, char *drft, struct stat *st, int delay) /* * This header field is discarded. */ - if (!strcasecmp (name, "Message-ID")) { + if (!mh_strcasecmp (name, "Message-ID")) { while (state == FLDPLUS) state = m_getfld (state, name, buffer, sizeof(buffer), in); } else if (uprf (name, XXX_FIELD_PRF) - || !strcasecmp (name, VRSN_FIELD) - || !strcasecmp (name, "Subject") - || !strcasecmp (name, "Encrypted")) { + || !mh_strcasecmp (name, VRSN_FIELD) + || !mh_strcasecmp (name, "Subject") + || !mh_strcasecmp (name, "Encrypted")) { /* * These header fields are copied to the enclosed * header of the first message in the collection @@ -565,7 +586,7 @@ splitmsg (char **vec, int vecp, char *drft, struct stat *st, int delay) * version of it, can be copied to the header * of each messsage/partial in the collection. */ - if (!strcasecmp (name, "Subject")) { + if (!mh_strcasecmp (name, "Subject")) { size_t sublen; strncpy (subject, buffer, BUFSIZ); @@ -989,7 +1010,7 @@ annoaux (int fd) } if (!(mp = folder_read (folder))) { if (debugsw) - admonish (NULL, "unable to read folder %s"); + admonish (NULL, "unable to read folder %s", folder); return; }