nmh-workers
[Top] [All Lists]

Re: compose, while MM_CHARSET != us-ascii (with patch)

1992-11-06 00:44:43
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;

<Prev in Thread] Current Thread [Next in Thread>