Thanks for the patch. I'm actually going to use something just a tad
different. (A subset of your patch.)
Basically, the charset is captured from the environment, like your
patch. But, it is encoded using quoted-printable, not 8bit.
Not all software is 8bit-clean and this has caused quite a bit of
difficulty in the past. (Also 822 is based on 7bit anyway!)
/mtr
*** uip/_mhn.c Wed Nov 4 12:33:52 1992
--- uip/mhn.c Thu Nov 5 21:41:42 1992
***************
*** 5443,5450 ****
**ep;
register struct text *t;
! if (charset == -1)
! charset = CHARSET_USASCII;
if ((t = (struct text *) calloc (1, sizeof *t)) == NULL)
adios (NULLCP, "out of memory");
--- 5444,5454 ----
**ep;
register struct text *t;
! if (charset == CHARSET_UNKNOWN && mm_charset)
! charset = -2;
! else
! if (charset == -1)
! charset = CHARSET_USASCII;
if ((t = (struct text *) calloc (1, sizeof *t)) == NULL)
adios (NULLCP, "out of memory");
***************
*** 5453,5464 ****
*ap;
ap++, ep++)
continue;
! cp = index (*ap++ =
! add ((t -> tx_charset = charset)
! == CHARSET_USASCII
! ? "charset=us-ascii"
! : "charset=x-unknown", NULLCP),
! '=');
*ap = NULL;
*cp++ = '\0';
*ep = cp;
--- 5457,5477 ----
*ap;
ap++, ep++)
continue;
! switch (t -> tx_charset = charset) {
! case CHARSET_USASCII:
! *ap = add ("charset=us-ascii", NULLCP);
! break;
!
! case CHARSET_UNKNOWN:
! default:
! *ap = add ("charset=x-unknown", NULLCP);
! break;
!
! case -2:
! *ap = concat ("charset=", mm_charset, NULLCP);
! break;
! }
! cp = index (*ap++, '=');
*ap = NULL;
*cp++ = '\0';
*ep = cp;