diff options
-rw-r--r-- | camel/ChangeLog | 13 | ||||
-rw-r--r-- | camel/camel-multipart-signed.c | 5 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-command.c | 12 |
3 files changed, 23 insertions, 7 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 968dcc4e0a..1fac038131 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,16 @@ +2003-06-16 Not Zed <NotZed@Ximian.com> + + ** See bug #44322 + + * providers/imap/camel-imap-command.c (imap_command_strdup_vprintf): + If we are outputting a folder name, make sure we calculate buffer + size based on the raw/utf7 version + + ** See bug #44121 + + * camel-multipart-signed.c (signed_get_part): If we can't parse + the content, but we have a stream, just use that as the content. + 2003-06-05 Jeffrey Stedfast <fejj@ximian.com> Fix for bug #40788. diff --git a/camel/camel-multipart-signed.c b/camel/camel-multipart-signed.c index 5bce467295..a089cb0cc3 100644 --- a/camel/camel-multipart-signed.c +++ b/camel/camel-multipart-signed.c @@ -334,13 +334,16 @@ signed_get_part(CamelMultipart *multipart, guint index) return NULL; } else if (dw->stream == NULL) { return NULL; + } else if (mps->start1 == -1) { + stream = dw->stream; + camel_object_ref(stream); } else { stream = camel_seekable_substream_new((CamelSeekableStream *)dw->stream, mps->start1, mps->end1); } camel_stream_reset(stream); mps->content = camel_mime_part_new(); camel_data_wrapper_construct_from_stream((CamelDataWrapper *)mps->content, stream); - camel_object_unref((CamelObject *)stream); + camel_object_unref(stream); return mps->content; case CAMEL_MULTIPART_SIGNED_SIGNATURE: if (mps->signature) diff --git a/camel/providers/imap/camel-imap-command.c b/camel/providers/imap/camel-imap-command.c index 5b6293bdb6..45e5751b87 100644 --- a/camel/providers/imap/camel-imap-command.c +++ b/camel/providers/imap/camel-imap-command.c @@ -699,7 +699,7 @@ imap_command_strdup_vprintf (CamelImapStore *store, const char *fmt, const char *p, *start; char *out, *outptr, *string; int num, len, i, arglen; - + args = g_ptr_array_new (); /* Determine the length of the data */ @@ -726,6 +726,11 @@ imap_command_strdup_vprintf (CamelImapStore *store, const char *fmt, case 'S': case 'F': string = va_arg (ap, char *); + if (*p == 'F') { + /* NB: this is freed during output */ + char *s = camel_imap_store_summary_full_from_path(store->summary, string); + string = s?s:camel_utf8_utf7(string); + } arglen = strlen (string); g_ptr_array_add (args, string); if (imap_is_atom (string)) { @@ -776,11 +781,6 @@ imap_command_strdup_vprintf (CamelImapStore *store, const char *fmt, case 'S': case 'F': string = args->pdata[i++]; - if (*p == 'F') { - char *s = camel_imap_store_summary_full_from_path(store->summary, string); - string = s?s:camel_utf8_utf7(string); - } - if (imap_is_atom (string)) { outptr += sprintf (outptr, "%s", string); } else { |