9e566a4
diff -Naur cyrus-imapd-2.2.12/doc/man/deliver.8.html cyrus-imapd-2.2.12.munge8bit/doc/man/deliver.8.html
9e566a4
--- cyrus-imapd-2.2.12/doc/man/deliver.8.html	2005-02-14 19:02:17.000000000 +0100
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/doc/man/deliver.8.html	2005-06-18 19:02:39.000000000 +0200
9e566a4
@@ -223,13 +223,15 @@
38f2261
 
38f2261
 
38f2261
 

Depending on the setting of reject8bit in

38f2261
-imapd.conf(5), deliver either rejects messages with
38f2261
-8-bit-set characters in the headers or changes these
38f2261
-characters to ‘X’. This is because such
38f2261
-characters can’t be interpreted since the character
38f2261
-set is not known, although some communities not well-served
38f2261
-by US-ASCII assume that those characters can be used to
38f2261
-represent characters not present in US-ASCII.

38f2261
+imapd.conf(5), deliver either rejects/accepts
38f2261
+messages with 8-bit-set characters in the headers. If we
38f2261
+accept messages with 8-bit-set characters in the headers,
38f2261
+then depending on the setting of munge8bit, these
9e566a4
+characters are either left un-touched or changed to ‘X’. This
38f2261
+is because such characters can’t be interpreted since
38f2261
+the character set is not known, although some communities
38f2261
+not well-served by US-ASCII assume that those characters can
38f2261
+be used to represent characters not present in US-ASCII.

38f2261
 
38f2261
 

A method for encoding 8-bit-set characters is provided by

38f2261
 RFC 2047.

9e566a4
diff -Naur cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html cyrus-imapd-2.2.12.munge8bit/doc/man/imapd.conf.5.html
9e566a4
--- cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html	2005-02-14 19:02:18.000000000 +0100
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/doc/man/imapd.conf.5.html	2005-06-18 18:59:46.000000000 +0200
9e566a4
@@ -2562,7 +2562,7 @@
9e566a4
 
9e566a4
 

If enabled, lmtpd rejects messages with 8-bit characters

9e566a4
 in the headers. Otherwise, 8-bit characters are changed to
9e566a4
-‘X’. (A proper soultion to non-ASCII characters
9e566a4
+‘X’. (A proper solution to non-ASCII characters
9e566a4
 in headers is offered by RFC 2047 and its predecessors.)

9e566a4
 
9e566a4
 
9e566a4
diff -Naur cyrus-imapd-2.2.12/imap/message.c cyrus-imapd-2.2.12.munge8bit/imap/message.c
9e566a4
--- cyrus-imapd-2.2.12/imap/message.c	2004-09-16 19:58:54.000000000 +0200
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/imap/message.c	2005-06-18 18:58:33.000000000 +0200
38f2261
@@ -227,6 +227,7 @@
38f2261
     int n;
38f2261
     int sawcr = 0, sawnl;
38f2261
     int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
38f2261
+    int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
38f2261
     int inheader = 1, blankline = 1;
38f2261
 
38f2261
     while (size) {
38f2261
@@ -262,7 +263,7 @@
38f2261
 			/* We have been configured to reject all mail of this
38f2261
 			   form. */
38f2261
 			if (!r) r = IMAP_MESSAGE_CONTAINS8BIT;
38f2261
-		    } else {
38f2261
+		    } else if (munge8bit) {
38f2261
 			/* We have been configured to munge all mail of this
38f2261
 			   form. */
38f2261
 			*p = 'X';
9e566a4
diff -Naur cyrus-imapd-2.2.12/imap/spool.c cyrus-imapd-2.2.12.munge8bit/imap/spool.c
9e566a4
--- cyrus-imapd-2.2.12/imap/spool.c	2004-10-27 22:40:50.000000000 +0200
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/imap/spool.c	2005-06-18 18:58:33.000000000 +0200
38f2261
@@ -140,6 +140,7 @@
38f2261
     state s = NAME_START;
38f2261
     int r = 0;
38f2261
     int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
38f2261
+    int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
38f2261
     const char **skip = NULL;
38f2261
 
38f2261
     if (namelen == 0) {
38f2261
@@ -266,7 +267,7 @@
38f2261
 			   form. */
38f2261
 			r = IMAP_MESSAGE_CONTAINS8BIT;
38f2261
 			goto ph_error;
38f2261
-		    } else {
38f2261
+		    } else if (munge8bit) {
38f2261
 			/* We have been configured to munge all mail of this
38f2261
 			   form. */
38f2261
 			c = 'X';
9e566a4
diff -Naur cyrus-imapd-2.2.12/lib/imapoptions cyrus-imapd-2.2.12.munge8bit/lib/imapoptions
9e566a4
--- cyrus-imapd-2.2.12/lib/imapoptions	2004-07-21 21:07:45.000000000 +0200
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/lib/imapoptions	2005-06-18 18:58:33.000000000 +0200
9e566a4
@@ -458,6 +458,12 @@
38f2261
 { "mboxlist_db", "skiplist", STRINGLIST("flat", "berkeley", "skiplist")}
38f2261
 /* The cyrusdb backend to use for the mailbox list. */
38f2261
 
38f2261
+{ "munge8bit", 1, SWITCH }
38f2261
+/* If enabled, lmtpd munges messages with 8-bit characters.  These characters
9e566a4
+   are changed to `X'.  If \fBreject8bit\fR is enabled, setting \fBmunge8bit\fR
9e566a4
+   has no effect.  (A proper solution to non-ASCII characters in headers is
38f2261
+   offered by RFC 2047 and its predecessors.) */
38f2261
+
38f2261
 # xxx badly worded
38f2261
 { "mupdate_connections_max", 128, INT }
38f2261
 /* The max number of connections that a mupdate process will allow, this
9e566a4
@@ -670,9 +676,7 @@
38f2261
 
38f2261
 { "reject8bit", 0, SWITCH }
38f2261
 /* If enabled, lmtpd rejects messages with 8-bit characters in the
38f2261
-   headers.  Otherwise, 8-bit characters are changed to `X'.  (A
38f2261
-   proper soultion to non-ASCII characters in headers is offered by  
38f2261
-   RFC 2047 and its predecessors.) */
38f2261
+   headers. */
38f2261
 
38f2261
 { "rfc2046_strict", 0, SWITCH }
38f2261
 /* If enabled, imapd will be strict (per RFC 2046) when matching MIME
9e566a4
diff -Naur cyrus-imapd-2.2.12/man/deliver.8 cyrus-imapd-2.2.12.munge8bit/man/deliver.8
9e566a4
--- cyrus-imapd-2.2.12/man/deliver.8	2004-06-21 20:40:10.000000000 +0200
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/man/deliver.8	2005-06-18 18:58:33.000000000 +0200
38f2261
@@ -147,8 +147,10 @@
38f2261
 Accept messages using the LMTP protocol.
38f2261
 .SH NOTES
38f2261
 Depending on the setting of \fBreject8bit\fR in \fBimapd.conf(5)\fR, deliver
38f2261
-either rejects messages with 8-bit-set characters in the headers or 
38f2261
-changes these characters to `X'.
38f2261
+either rejects/accepts messages with 8-bit-set characters in the headers.
38f2261
+If we accept messages with 8-bit-set characters in the headers, then depending
38f2261
+on the setting of \fBmunge8bit\fR, these characters are either left un-touched
38f2261
+or changed to .
38f2261
 This is because such characters can't be interpreted since the
38f2261
 character set is not known, although some communities not well-served by
38f2261
 US-ASCII assume that those characters can be used to represent characters not
9e566a4
diff -Naur cyrus-imapd-2.2.12/man/imapd.conf.5 cyrus-imapd-2.2.12.munge8bit/man/imapd.conf.5
9e566a4
--- cyrus-imapd-2.2.12/man/imapd.conf.5	2005-02-14 19:02:16.000000000 +0100
9e566a4
+++ cyrus-imapd-2.2.12.munge8bit/man/imapd.conf.5	2005-06-18 18:59:08.000000000 +0200
9e566a4
@@ -551,7 +551,7 @@
9e566a4
 .IP "\fBreject8bit:\fR 0" 5
9e566a4
 If enabled, lmtpd rejects messages with 8-bit characters in the
9e566a4
 headers.  Otherwise, 8-bit characters are changed to `X'.  (A
9e566a4
-proper soultion to non-ASCII characters in headers is offered by  
9e566a4
+proper solution to non-ASCII characters in headers is offered by  
9e566a4
 RFC 2047 and its predecessors.) 
9e566a4
 .IP "\fBrfc2046_strict:\fR 0" 5
9e566a4
 If enabled, imapd will be strict (per RFC 2046) when matching MIME