aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog13
-rw-r--r--camel/camel-multipart-signed.c5
-rw-r--r--camel/providers/imap/camel-imap-command.c12
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 {