From b3a906a2eca869ccd2dcd4a067aa60ede5b25ddb Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Fri, 3 May 2002 00:38:45 +0000 Subject: Fixed the fix for stupidly-broken-mailer bug #5 to work when multiple 2002-05-02 Jeffrey Stedfast * camel-mime-utils.c (header_decode_mailbox): Fixed the fix for stupidly-broken-mailer bug #5 to work when multiple unescaped characters were in a row. Fixes bug #24140. svn path=/trunk/; revision=16672 --- camel/ChangeLog | 7 +++++++ camel/camel-mime-utils.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index e3d981d6e5..447a2f2e14 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,12 @@ 2002-05-02 Jeffrey Stedfast + * camel-mime-utils.c (header_decode_mailbox): Fixed the fix for + stupidly-broken-mailer bug #5 to work when multiple unescaped + characters were in a row. Fixes bug #24140. + + * camel-tcp-stream-raw.c (socket_connect): Check select() for + EINTR errors. + * camel-pgp-context.c (crypto_exec_with_passwd): Change the order of some code so that we check if the select() failed before we check for user-cancellation. diff --git a/camel/camel-mime-utils.c b/camel/camel-mime-utils.c index 148eea9a80..d32558096e 100644 --- a/camel/camel-mime-utils.c +++ b/camel/camel-mime-utils.c @@ -73,7 +73,7 @@ int free_count = 0; #endif /* for all non-essential warnings ... */ -#define w(x) +#define w(x) #define d(x) #define d2(x) @@ -2388,7 +2388,7 @@ header_decode_mailbox(const char **in) } else { /* Fix for stupidly-broken-mailers that like to put '.''s in names unquoted */ /* see bug #8147 */ - if (*inptr && *inptr != '<') { + while (!pre && *inptr && *inptr != '<') { w(g_warning("Working around stupid mailer bug #5: unescaped characters in names")); name = g_string_append_c(name, *inptr++); pre = header_decode_word(&inptr); @@ -2994,7 +2994,7 @@ header_encode_param (const unsigned char *in, gboolean *encoded) inbuf = in; if (e_iconv (cd, &inbuf, &inleft, &outptr, &outleft) == (size_t) -1) { - w(g_warning ("Conversion problem: conversion truncated: %s" g_strerror (errno))); + w(g_warning ("Conversion problem: conversion truncated: %s", g_strerror (errno))); } else { e_iconv (cd, NULL, 0, &outptr, &outleft); } -- cgit v1.2.3