* src/compose.c
* src/imap.c
* src/summaryview.c
* src/gtk/gtkaspell.c
More leaks fixed
* src/prefs_folder_item.c
Fix recursive prefs apply
+2005-12-14 [colin] 1.9.100cvs89
+
+ * src/compose.c
+ * src/imap.c
+ * src/summaryview.c
+ * src/gtk/gtkaspell.c
+ More leaks fixed
+ * src/prefs_folder_item.c
+ Fix recursive prefs apply
+
+
2005-12-14 [cleroy] 1.9.100cvs88
* src/compose.c
2005-12-14 [cleroy] 1.9.100cvs88
* src/compose.c
( cvs diff -u -r 1.179.2.83 -r 1.179.2.84 src/imap.c; cvs diff -u -r 1.101.2.18 -r 1.101.2.19 src/news.c; cvs diff -u -r 1.13.2.10 -r 1.13.2.11 src/common/plugin.c; cvs diff -u -r 1.1.4.25 -r 1.1.4.26 src/etpan/imap-thread.c; ) > 1.9.100cvs86.patchset
( cvs diff -u -r 1.382.2.203 -r 1.382.2.204 src/compose.c; ) > 1.9.100cvs87.patchset
( cvs diff -u -r 1.382.2.204 -r 1.382.2.205 src/compose.c; ) > 1.9.100cvs88.patchset
( cvs diff -u -r 1.179.2.83 -r 1.179.2.84 src/imap.c; cvs diff -u -r 1.101.2.18 -r 1.101.2.19 src/news.c; cvs diff -u -r 1.13.2.10 -r 1.13.2.11 src/common/plugin.c; cvs diff -u -r 1.1.4.25 -r 1.1.4.26 src/etpan/imap-thread.c; ) > 1.9.100cvs86.patchset
( cvs diff -u -r 1.382.2.203 -r 1.382.2.204 src/compose.c; ) > 1.9.100cvs87.patchset
( cvs diff -u -r 1.382.2.204 -r 1.382.2.205 src/compose.c; ) > 1.9.100cvs88.patchset
+( cvs diff -u -r 1.382.2.205 -r 1.382.2.206 src/compose.c; cvs diff -u -r 1.179.2.84 -r 1.179.2.85 src/imap.c; cvs diff -u -r 1.52.2.16 -r 1.52.2.17 src/prefs_folder_item.c; cvs diff -u -r 1.395.2.151 -r 1.395.2.152 src/summaryview.c; cvs diff -u -r 1.9.2.33 -r 1.9.2.34 src/gtk/gtkaspell.c; ) > 1.9.100cvs89.patchset
MICRO_VERSION=100
INTERFACE_AGE=0
BINARY_AGE=0
MICRO_VERSION=100
INTERFACE_AGE=0
BINARY_AGE=0
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
/* move iter to current line start */
gtk_text_iter_set_line_offset(&iter, 0);
/* move iter to current line start */
gtk_text_iter_set_line_offset(&iter, 0);
+ if (quote_str) {
+ g_free(quote_str);
+ quote_str = NULL;
+ }
continue;
} else {
/* move iter to next line start */
continue;
} else {
/* move iter to next line start */
mimemsg->type = MIMETYPE_MESSAGE;
mimemsg->subtype = g_strdup("rfc822");
mimemsg->content = MIMECONTENT_MEM;
mimemsg->type = MIMETYPE_MESSAGE;
mimemsg->subtype = g_strdup("rfc822");
mimemsg->content = MIMECONTENT_MEM;
+ mimemsg->tmp = TRUE; /* must free content later */
mimemsg->data.mem = compose_get_header(compose);
/* Create text part MimeInfo */
mimemsg->data.mem = compose_get_header(compose);
/* Create text part MimeInfo */
mimetext = procmime_mimeinfo_new();
mimetext->content = MIMECONTENT_MEM;
mimetext = procmime_mimeinfo_new();
mimetext->content = MIMECONTENT_MEM;
+ mimetext->tmp = TRUE; /* must free content later */
mimetext->data.mem = buf;
mimetext->type = MIMETYPE_TEXT;
mimetext->subtype = g_strdup("plain");
mimetext->data.mem = buf;
mimetext->type = MIMETYPE_TEXT;
mimetext->subtype = g_strdup("plain");
mimepart = procmime_mimeinfo_new();
mimepart->content = MIMECONTENT_FILE;
mimepart->data.filename = g_strdup(ainfo->file);
mimepart = procmime_mimeinfo_new();
mimepart->content = MIMECONTENT_FILE;
mimepart->data.filename = g_strdup(ainfo->file);
+ mimepart->tmp = FALSE; /* or we destroy our attachment */
mimepart->offset = 0;
stat(ainfo->file, &statbuf);
mimepart->offset = 0;
stat(ainfo->file, &statbuf);
GtkTextView *view = gtkaspell->gtktext;
GtkTextBuffer *buffer = gtk_text_view_get_buffer(view);
GtkTextIter start, end;
GtkTextView *view = gtkaspell->gtktext;
GtkTextBuffer *buffer = gtk_text_view_get_buffer(view);
GtkTextIter start, end;
- const gchar *utf8chars;
guchar a = '\0';
gtk_text_buffer_get_iter_at_offset(buffer, &start, pos);
guchar a = '\0';
gtk_text_buffer_get_iter_at_offset(buffer, &start, pos);
last_uid = new_uid;
if (file_is_tmp)
g_unlink(real_file);
last_uid = new_uid;
if (file_is_tmp)
g_unlink(real_file);
}
statusbar_progress_all(0,0,0);
statusbar_pop_all();
}
statusbar_progress_all(0,0,0);
statusbar_pop_all();
!(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->request_return_receipt_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->save_copy_to_folder_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_to_rec_checkbtn)) ||
!(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->request_return_receipt_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->save_copy_to_folder_rec_checkbtn)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_to_rec_checkbtn)) ||
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_account_rec_checkbtn)) ||
+#if USE_ASPELL
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_dictionary_rec_checkbtn)) ||
+#endif
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_reply_to_rec_checkbtn))))
return TRUE;
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->default_reply_to_rec_checkbtn))))
return TRUE;
GSList *mlist);
static void summary_set_header (SummaryView *summaryview,
gchar *text[],
GSList *mlist);
static void summary_set_header (SummaryView *summaryview,
gchar *text[],
+ MsgInfo *msginfo,
+ gboolean *free_from_to);
static void summary_display_msg (SummaryView *summaryview,
GtkCTreeNode *row);
static void summary_display_msg_full (SummaryView *summaryview,
static void summary_display_msg (SummaryView *summaryview,
GtkCTreeNode *row);
static void summary_display_msg_full (SummaryView *summaryview,
gint *col_pos = summaryview->col_pos;
const gchar *msgid = msginfo->msgid;
GHashTable *msgid_table = summaryview->msgid_table;
gint *col_pos = summaryview->col_pos;
const gchar *msgid = msginfo->msgid;
GHashTable *msgid_table = summaryview->msgid_table;
-
- summary_set_header(summaryview, text, msginfo);
+ gboolean free_from_to = FALSE;
+
+ summary_set_header(summaryview, text, msginfo, &free_from_to);
gtk_sctree_set_node_info(ctree, cnode, text[col_pos[S_COL_SUBJECT]], 2,
NULL, NULL, NULL, NULL, FALSE,
gtk_sctree_set_node_info(ctree, cnode, text[col_pos[S_COL_SUBJECT]], 2,
NULL, NULL, NULL, NULL, FALSE,
SET_TEXT(S_COL_TO);
/* SET_TEXT(S_COL_SUBJECT); already set by node info */
SET_TEXT(S_COL_TO);
/* SET_TEXT(S_COL_SUBJECT); already set by node info */
+ if (free_from_to) {
+ g_free(text[col_pos[S_COL_FROM]]);
+ g_free(text[col_pos[S_COL_TO]]);
+ text[col_pos[S_COL_FROM]] = NULL;
+ text[col_pos[S_COL_TO]] = NULL;
+ }
+
#undef SET_TEXT
GTKUT_CTREE_NODE_SET_ROW_DATA(cnode, msginfo);
#undef SET_TEXT
GTKUT_CTREE_NODE_SET_ROW_DATA(cnode, msginfo);
summary_thread_init(summaryview);
} else {
gchar *text[N_SUMMARY_COLS];
summary_thread_init(summaryview);
} else {
gchar *text[N_SUMMARY_COLS];
+ gboolean free_from_to = FALSE;
+ gint *col_pos = summaryview->col_pos;
+
cur = mlist;
for (; mlist != NULL; mlist = mlist->next) {
msginfo = (MsgInfo *)mlist->data;
cur = mlist;
for (; mlist != NULL; mlist = mlist->next) {
msginfo = (MsgInfo *)mlist->data;
- summary_set_header(summaryview, text, msginfo);
+ summary_set_header(summaryview, text, msginfo, &free_from_to);
node = gtk_sctree_insert_node
(ctree, NULL, node, text, 2,
NULL, NULL, NULL, NULL,
FALSE, FALSE);
node = gtk_sctree_insert_node
(ctree, NULL, node, text, 2,
NULL, NULL, NULL, NULL,
FALSE, FALSE);
+ if (free_from_to) {
+ g_free(text[col_pos[S_COL_FROM]]);
+ g_free(text[col_pos[S_COL_TO]]);
+ text[col_pos[S_COL_FROM]] = NULL;
+ text[col_pos[S_COL_TO]] = NULL;
+ }
GTKUT_CTREE_NODE_SET_ROW_DATA(node, msginfo);
summary_set_marks_func(ctree, node, summaryview);
GTKUT_CTREE_NODE_SET_ROW_DATA(node, msginfo);
summary_set_marks_func(ctree, node, summaryview);
}
static void summary_set_header(SummaryView *summaryview, gchar *text[],
}
static void summary_set_header(SummaryView *summaryview, gchar *text[],
+ MsgInfo *msginfo, gboolean *free_from_to)
{
static gchar date_modified[80];
static gchar col_score[11];
{
static gchar date_modified[80];
static gchar col_score[11];
if (!should_swap) {
text[col_pos[S_COL_FROM]] = from_text;
text[col_pos[S_COL_TO]] = to_text;
if (!should_swap) {
text[col_pos[S_COL_FROM]] = from_text;
text[col_pos[S_COL_TO]] = to_text;
} else {
gchar *tmp = NULL;
tmp = g_strconcat("-->", to_text, NULL);
text[col_pos[S_COL_FROM]] = tmp;
tmp = g_strconcat("<--", from_text, NULL);
text[col_pos[S_COL_TO]] = tmp;
} else {
gchar *tmp = NULL;
tmp = g_strconcat("-->", to_text, NULL);
text[col_pos[S_COL_FROM]] = tmp;
tmp = g_strconcat("<--", from_text, NULL);
text[col_pos[S_COL_TO]] = tmp;
}
if (summaryview->simplify_subject_preg != NULL)
}
if (summaryview->simplify_subject_preg != NULL)