X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhoutsbr.c;h=d517e6e82627e70c5ca29b359d09c248f18e9cd0;hp=939275f61f81ed5592de27b42e7b1bfaf058c882;hb=01a3480928da485b4d6109d36d751dfa71799d58;hpb=5b792c4424571f05bc2008e3109797d18d7d00d1 diff --git a/uip/mhoutsbr.c b/uip/mhoutsbr.c index 939275f..d517e6e 100644 --- a/uip/mhoutsbr.c +++ b/uip/mhoutsbr.c @@ -10,55 +10,12 @@ #include #include #include -#include #include #include -#include #include #include #include -#ifdef HAVE_SYS_WAIT_H -# include -#endif - - -extern int ebcdicsw; - -static char ebcdicsafe[0x100] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; static char nib2b64[0x40+1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; @@ -75,7 +32,6 @@ int writeBase64aux(FILE *, FILE *); */ static int output_content(CT, FILE *); static void output_headers(CT, FILE *); -static int writeExternalBody(CT, FILE *); static int write8Bit(CT, FILE *); static int writeQuoted(CT, FILE *); static int writeBase64(CT, FILE *); @@ -132,14 +88,6 @@ output_content(CT ct, FILE *out) output_headers(ct, out); /* - ** If this is the internal content structure for a - ** "message/external", then we are done with the - ** headers (since it has no body). - */ - if (ct->c_ctexbody) - return OK; - - /* ** Now output the content bodies. */ switch (ct->c_type) { @@ -165,19 +113,7 @@ output_content(CT ct, FILE *out) case CT_MESSAGE: putc('\n', out); - if (ct->c_subtype == MESSAGE_EXTERNAL) { - struct exbody *e; - - e = (struct exbody *) ct->c_ctparams; - if (output_content(e->eb_content, out) == NOTOK) - return NOTOK; - - /* output phantom body for access-type "mail-server" */ - if (e->eb_body) - writeExternalBody(ct, out); - } else { - result = write8Bit(ct, out); - } + result = write8Bit(ct, out); break; /* @@ -240,78 +176,6 @@ output_headers(CT ct, FILE *out) /* -** Write the phantom body for access-type "mail-server". -*/ - -static int -writeExternalBody(CT ct, FILE *out) -{ - char **ap, **ep, *cp; - struct exbody *e = (struct exbody *) ct->c_ctparams; - - putc('\n', out); - for (cp = e->eb_body; *cp; cp++) { - CT ct2 = e->eb_content; - CI ci2 = &ct2->c_ctinfo; - - if (*cp == '\\') { - switch (*++cp) { - case 'I': - if (ct2->c_id) { - char *dp = trimcpy(ct2->c_id); - - fputs(dp, out); - free(dp); - } - continue; - - case 'N': - for (ap = ci2->ci_attrs, ep = ci2->ci_values; - *ap; ap++, ep++) - if (!mh_strcasecmp(*ap, "name")) { - fprintf(out, "%s", *ep); - break; - } - continue; - - case 'T': - fprintf(out, "%s/%s", ci2->ci_type, - ci2->ci_subtype); - for (ap = ci2->ci_attrs, ep = ci2->ci_values; - *ap; ap++, ep++) - fprintf(out, "; %s=\"%s\"", *ap, *ep); - continue; - - case 'n': - putc('\n', out); - continue; - - case 't': - putc('\t', out); - continue; - - case '\0': - cp--; - break; - - case '\\': - case '"': - break; - - default: - putc('\\', out); - break; - } - } - putc(*cp, out); - } - putc('\n', out); - - return OK; -} - - -/* ** Output a content without any transfer encoding */ @@ -382,7 +246,7 @@ writeQuoted(CT ct, FILE *out) break; default: - if (*cp < '!' || *cp > '~' || (ebcdicsw && !ebcdicsafe[*cp & 0xff])) + if (*cp < '!' || *cp > '~') goto three_print; putc(*cp, out); n++; @@ -435,7 +299,7 @@ writeBase64(CT ct, FILE *out) int writeBase64aux(FILE *in, FILE *out) { - int cc, n; + unsigned int cc, n; char inbuf[3]; n = BPERLIN;