summaryrefslogtreecommitdiffstats
path: root/rfc2047.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>1998-12-07 10:05:07 +0000
committerThomas Roessler <roessler@does-not-exist.org>1998-12-07 10:05:07 +0000
commit9bad2b2aa4954df74ccdc2fd7ea7fee6bb24d22c (patch)
tree23153ec99745fd7256807f56ac6fd9c8436a3c40 /rfc2047.c
parent0aaef6eff952354d2c08e2ea0d0196b46b0b64ae (diff)
Don't tag us-ascii headers as $Charset or unknown-8bit.
Diffstat (limited to 'rfc2047.c')
-rw-r--r--rfc2047.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/rfc2047.c b/rfc2047.c
index 806c5f43..a0a37c33 100644
--- a/rfc2047.c
+++ b/rfc2047.c
@@ -35,9 +35,20 @@ static void q_encode_string (char *d, size_t dlen, const unsigned char *s)
char charset[SHORT_STRING];
size_t cslen, wordlen;
char *wptr = d;
+ const unsigned char *t;
+ int hibit = 0;
+
+ for(t = s; *t && !hibit; t++)
+ if(*t & 0x80) hibit = 1;
+
+ if(hibit)
+ {
+ snprintf (charset, sizeof (charset), "=?%s?Q?",
+ mutt_strcasecmp ("us-ascii", Charset) == 0 ? "unknown-8bit" : NONULL(Charset));
+ }
+ else
+ strfcpy(charset, "=?us-ascii?Q?", sizeof(charset));
- snprintf (charset, sizeof (charset), "=?%s?Q?",
- mutt_strcasecmp ("us-ascii", Charset) == 0 ? "unknown-8bit" : NONULL(Charset));
cslen = mutt_strlen (charset);
strcpy (wptr, charset);