+2008-02-28 [colin] 3.3.1cvs5
+
+ * src/compose.c
+ Fix bug 1534, 'Segmentation fault when doing
+ some draft saving and then throwing away'
+ * src/imap.c
+ Fix bug 1533, 'Claws is unable to mark messages
+ as "read" in IMAP shared folders'
+ * src/etpan/imap-thread.c
+ Fix bug 1515, 'large messages crash claws when
+ syncing for offline mode'. This is rather a
+ workaround, and mails > 64MB will still be
+ problematic if there's less than 64MB available
+ on the dataroot volume.
+ * src/messageview.c
+ MAEMO: Add information when fetching big messages
+
2008-02-26 [colin] 3.3.1cvs4
* src/imap.c
( cvs diff -u -r 1.115.2.189 -r 1.115.2.190 src/main.c; ) > 3.3.1cvs2.patchset
( cvs diff -u -r 1.29.2.10 -r 1.29.2.11 INSTALL; cvs diff -u -r 1.8.2.47 -r 1.8.2.48 README; ) > 3.3.1cvs3.patchset
( cvs diff -u -r 1.179.2.211 -r 1.179.2.212 src/imap.c; ) > 3.3.1cvs4.patchset
+( cvs diff -u -r 1.382.2.438 -r 1.382.2.439 src/compose.c; cvs diff -u -r 1.179.2.212 -r 1.179.2.213 src/imap.c; cvs diff -u -r 1.94.2.171 -r 1.94.2.172 src/messageview.c; cvs diff -u -r 1.1.4.97 -r 1.1.4.98 src/etpan/imap-thread.c; ) > 3.3.1cvs5.patchset
MICRO_VERSION=1
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=4
+EXTRA_VERSION=5
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
#endif
if (compose->modified) {
+ if (!g_mutex_trylock(compose->mutex)) {
+ /* we don't want to lock the mutex once it's available,
+ * because as the only other part of compose.c locking
+ * it is compose_close - which means once unlocked,
+ * the compose struct will be freed */
+ debug_print("couldn't lock mutex, probably sending\n");
+ return;
+ }
val = alertpanel(_("Discard message"),
_("This message has been modified. Discard it?"),
_("_Discard"), _("_Save to Drafts"), GTK_STOCK_CANCEL);
-
+ g_mutex_unlock(compose->mutex);
switch (val) {
case G_ALERTDEFAULT:
if (prefs_common.autosave)
r = fwrite(content, 1, content_size, f);
if (r < content_size) {
+ result->error = MAILIMAP_ERROR_FETCH;
goto fclose;
}
r = fclose(f);
if (r == EOF) {
+ result->error = MAILIMAP_ERROR_FETCH;
goto unlink;
}
goto free;
free(content);
}
- debug_print("imap fetch_content run - end %i\n", r);
+ debug_print("imap fetch_content run - end %i\n", result->error);
}
int imap_threaded_fetch_content(Folder * folder, uint32_t msg_index,
flag_list = mailimap_flag_list_new_empty();
- if (IMAP_IS_SEEN(flags) && flag_ok(item, IMAP_FLAG_SEEN))
+ if (IMAP_IS_SEEN(flags))
mailimap_flag_list_add(flag_list,
mailimap_flag_new_seen());
- if (IMAP_IS_ANSWERED(flags) && flag_ok(item, IMAP_FLAG_ANSWERED))
+ if (IMAP_IS_ANSWERED(flags))
mailimap_flag_list_add(flag_list,
mailimap_flag_new_answered());
- if (IMAP_IS_FLAGGED(flags) && flag_ok(item, IMAP_FLAG_FLAGGED))
+ if (IMAP_IS_FLAGGED(flags))
mailimap_flag_list_add(flag_list,
mailimap_flag_new_flagged());
- if (IMAP_IS_DELETED(flags) && flag_ok(item, IMAP_FLAG_DELETED))
+ if (IMAP_IS_DELETED(flags))
mailimap_flag_list_add(flag_list,
mailimap_flag_new_deleted());
- if (IMAP_IS_DRAFT(flags) && flag_ok(item, IMAP_FLAG_DRAFT))
+ if (IMAP_IS_DRAFT(flags))
mailimap_flag_list_add(flag_list,
mailimap_flag_new_draft());
if (IMAP_IS_FORWARDED(flags) && flag_ok(item, IMAP_FLAG_FORWARDED))
#include "printing.h"
#include "quoted-printable.h"
#include "version.h"
+#include "statusbar.h"
static GList *messageview_list = NULL;
mimeview_clear(messageview->mimeview);
messageview->updating = TRUE;
+ if (msginfo->size > 1024*1024)
+ statuswindow_print_all(_("Fetching message (%s)..."),
+ to_human_readable(msginfo->size));
+
file = procmsg_get_message_file_path(msginfo);
+
+ if (msginfo->size > 1024*1024)
+ statuswindow_pop_all();
+
if (!file) {
g_warning("can't get message file path.\n");
textview_show_error(messageview->mimeview->textview);