X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhoutsbr.c;h=d517e6e82627e70c5ca29b359d09c248f18e9cd0;hp=f82cc6c35094fe806cbc5f5dfff054a210631c4e;hb=01a3480928da485b4d6109d36d751dfa71799d58;hpb=0c648c7c1509760370d4c4267a45a5a305885e7f diff --git a/uip/mhoutsbr.c b/uip/mhoutsbr.c index f82cc6c..d517e6e 100644 --- a/uip/mhoutsbr.c +++ b/uip/mhoutsbr.c @@ -10,49 +10,12 @@ #include #include #include -#include #include #include #include #include #include -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+/"; @@ -69,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 *); @@ -126,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) { @@ -159,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; /* @@ -234,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 */ @@ -376,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++; @@ -429,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;