talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 7f2b44d816687c86343251e0baeda263353ce631
parent 3b2977e64340b30c6626c6a1576321da38bfc51b
Author: Colin Leroy <colin@colino.net>
Date:   Mon, 29 Sep 2008 16:16:13 +0000

2008-09-29 [colin]	3.5.0cvs138

	* src/folder_item_prefs.c
	* src/folder_item_prefs.h
	* src/matcher.c
	* src/prefs_folder_item.c
	* src/prefs_matcher.c
	* src/summaryview.c
	* src/common/string_match.c
	* src/common/utils.c
		Fix a huge leak (dozens of megs per folder
		change) on Windows: disable regexps

Diffstat:
MChangeLog | 13+++++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/common/string_match.c | 5++++-
Msrc/common/utils.c | 38+++++++++++++++++++++++++++++++++++++-
Msrc/folder_item_prefs.c | 6++++++
Msrc/folder_item_prefs.h | 2++
Msrc/matcher.c | 3++-
Msrc/prefs_folder_item.c | 32++++++++++++++++++++++++++------
Msrc/prefs_matcher.c | 32++++++++++++++++++++++++++++++++
Msrc/summaryview.c | 15++++++++++++---
11 files changed, 136 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,16 @@ +2008-09-29 [colin] 3.5.0cvs138 + + * src/folder_item_prefs.c + * src/folder_item_prefs.h + * src/matcher.c + * src/prefs_folder_item.c + * src/prefs_matcher.c + * src/summaryview.c + * src/common/string_match.c + * src/common/utils.c + Fix a huge leak (dozens of megs per folder + change) on Windows: disable regexps + 2008-09-28 [paul] 3.5.0cvs137 * po/en_GB.po diff --git a/PATCHSETS b/PATCHSETS @@ -3549,3 +3549,4 @@ ( cvs diff -u -r 1.179.2.230 -r 1.179.2.231 src/imap.c; ) > 3.5.0cvs135.patchset ( cvs diff -u -r 1.61.2.88 -r 1.61.2.89 src/account.c; cvs diff -u -r 1.11.2.12 -r 1.11.2.13 src/account.h; ) > 3.5.0cvs136.patchset ( cvs diff -u -r 1.12.2.17 -r 1.12.2.18 po/en_GB.po; ) > 3.5.0cvs137.patchset +( cvs diff -u -r 1.2.2.31 -r 1.2.2.32 src/folder_item_prefs.c; cvs diff -u -r 1.2.2.18 -r 1.2.2.19 src/folder_item_prefs.h; cvs diff -u -r 1.75.2.60 -r 1.75.2.61 src/matcher.c; cvs diff -u -r 1.52.2.69 -r 1.52.2.70 src/prefs_folder_item.c; cvs diff -u -r 1.43.2.76 -r 1.43.2.77 src/prefs_matcher.c; cvs diff -u -r 1.395.2.391 -r 1.395.2.392 src/summaryview.c; cvs diff -u -r 1.1.4.5 -r 1.1.4.6 src/common/string_match.c; cvs diff -u -r 1.36.2.150 -r 1.36.2.151 src/common/utils.c; ) > 3.5.0cvs138.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=5 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=137 +EXTRA_VERSION=138 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/common/string_match.c b/src/common/string_match.c @@ -51,7 +51,9 @@ gchar *string_remove_match(gchar *buf, gint buflen, gchar * txt, regex_t *preg) regmatch_t match; int notfound; gint i, j ,k; - +#ifdef G_OS_WIN32 + return txt; +#else if (!preg) return txt; if (*txt != 0x00) { @@ -83,5 +85,6 @@ gchar *string_remove_match(gchar *buf, gint buflen, gchar * txt, regex_t *preg) return buf; } return txt; +#endif } diff --git a/src/common/utils.c b/src/common/utils.c @@ -3619,19 +3619,25 @@ void subject_table_remove(GHashTable *subject_table, gchar * subject) * for a "clean" subject line. If no prefix was found, 0 * is returned. */ + +#ifndef G_OS_WIN32 static regex_t u_regex; static gboolean u_init_; +#endif void utils_free_regex(void) { +#ifndef G_OS_WIN32 if (u_init_) { regfree(&u_regex); u_init_ = FALSE; } +#endif } int subject_get_prefix_length(const gchar *subject) { +#ifndef G_OS_WIN32 /*!< Array with allowable reply prefixes regexps. */ static const gchar * const prefixes[] = { "Re\\:", /* "Re:" */ @@ -3690,8 +3696,38 @@ int subject_get_prefix_length(const gchar *subject) return pos.rm_eo; else return 0; -} +#else + /*!< Array with allowable reply prefixes regexps. */ + static const gchar * const prefixes[] = { + "Re:", /* "Re:" */ + "Antw:", /* "Antw:" (Dutch / German Outlook) */ + "Aw:", /* "Aw:" (German) */ + "Antwort:", /* "Antwort:" (German Lotus Notes) */ + "Res:", /* "Res:" (Brazilian Outlook) */ + "Fw:", /* "Fw:" Forward */ + "Fwd:", /* "Fwd:" Forward */ + "Enc:", /* "Enc:" Forward (Brazilian Outlook) */ + "Odp:", /* "Odp:" Re (Polish Outlook) */ + "Rif:", /* "Rif:" (Italian Outlook) */ + "Sv:", /* "Sv" (Norwegian) */ + "Vs:", /* "Vs" (Norwegian) */ + "Ad:", /* "Ad" (Norwegian) */ + /* add more */ + }; + const int PREFIXES = sizeof prefixes / sizeof prefixes[0]; + int n; + + if (!subject) return 0; + if (!*subject) return 0; + for (n = 0; n < PREFIXES; n++) { + int len = strlen(prefixes[n]); + if (!strncmp(subject, prefixes[n], len)) + return len; + } + return 0; +#endif +} static guint g_stricase_hash(gconstpointer gptr) { guint hash_result = 0; diff --git a/src/folder_item_prefs.c b/src/folder_item_prefs.c @@ -44,8 +44,10 @@ static PrefParam param[] = { NULL, NULL, NULL}, {"enable_simplify_subject", "", &tmp_prefs.enable_simplify_subject, P_BOOL, NULL, NULL, NULL}, +#ifndef G_OS_WIN32 {"simplify_subject_regexp", "", &tmp_prefs.simplify_subject_regexp, P_STRING, NULL, NULL, NULL}, +#endif {"enable_folder_chmod", "", &tmp_prefs.enable_folder_chmod, P_BOOL, NULL, NULL, NULL}, {"folder_chmod", "", &tmp_prefs.folder_chmod, P_INT, @@ -157,7 +159,9 @@ static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs) prefs->enable_default_reply_to = FALSE; prefs->default_reply_to = NULL; prefs->enable_simplify_subject = FALSE; +#ifndef G_OS_WIN32 prefs->simplify_subject_regexp = NULL; +#endif prefs->enable_folder_chmod = FALSE; prefs->folder_chmod = 0; prefs->enable_default_account = FALSE; @@ -253,7 +257,9 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest) tmp_prefs.enable_default_reply_to = src->prefs->enable_default_reply_to; tmp_prefs.default_reply_to = g_strdup(src->prefs->default_reply_to); tmp_prefs.enable_simplify_subject = src->prefs->enable_simplify_subject; +#ifndef G_OS_WIN32 tmp_prefs.simplify_subject_regexp = g_strdup(src->prefs->simplify_subject_regexp); +#endif tmp_prefs.enable_folder_chmod = src->prefs->enable_folder_chmod; tmp_prefs.folder_chmod = src->prefs->folder_chmod; tmp_prefs.enable_default_account = src->prefs->enable_default_account; diff --git a/src/folder_item_prefs.h b/src/folder_item_prefs.h @@ -45,7 +45,9 @@ struct _FolderItemPrefs { gboolean enable_default_reply_to; gchar *default_reply_to; gboolean enable_simplify_subject; +#ifndef G_OS_WIN32 gchar *simplify_subject_regexp; +#endif gboolean enable_folder_chmod; gint folder_chmod; gboolean enable_default_account; diff --git a/src/matcher.c b/src/matcher.c @@ -463,6 +463,7 @@ static gboolean matcherprop_string_match(MatcherProp *prop, const gchar *str, switch (prop->matchtype) { case MATCHTYPE_REGEXPCASE: case MATCHTYPE_REGEXP: +#ifndef G_OS_WIN32 if (!prop->preg && (prop->error == 0)) { prop->preg = g_new0(regex_t, 1); /* if regexp then don't use the escaped string */ @@ -505,7 +506,7 @@ static gboolean matcherprop_string_match(MatcherProp *prop, const gchar *str, g_free(stripped); } break; - +#endif case MATCHTYPE_MATCHCASE: case MATCHTYPE_MATCH: ret = (strstr(str1, down_expr) != NULL); diff --git a/src/prefs_folder_item.c b/src/prefs_folder_item.c @@ -77,10 +77,12 @@ struct _FolderItemGeneralPage GtkWidget *table; GtkWidget *no_save_warning; GtkWidget *folder_type; +#ifndef G_OS_WIN32 GtkWidget *checkbtn_simplify_subject; GtkWidget *entry_simplify_subject; GtkWidget *entry_regexp_test_string; GtkWidget *entry_regexp_test_result; +#endif GtkWidget *checkbtn_folder_chmod; GtkWidget *entry_folder_chmod; GtkWidget *folder_color_btn; @@ -94,7 +96,9 @@ struct _FolderItemGeneralPage GtkWidget *checkbtn_remove_old_offlinesync; /* apply to sub folders */ +#ifndef G_OS_WIN32 GtkWidget *simplify_subject_rec_checkbtn; +#endif GtkWidget *folder_chmod_rec_checkbtn; GtkWidget *folder_color_rec_checkbtn; GtkWidget *enable_processing_rec_checkbtn; @@ -181,9 +185,10 @@ static gint prefs_folder_item_chmod_mode (gchar *folder_chmod); static void folder_color_set_dialog(GtkWidget *widget, gpointer data); static void clean_cache_cb(GtkWidget *widget, gpointer data); +#ifndef G_OS_WIN32 static void folder_regexp_test_cb(GtkWidget *widget, gpointer data); static void folder_regexp_set_subject_example_cb(GtkWidget *widget, gpointer data); - +#endif #define SAFE_STRING(str) \ (str) ? (str) : "" @@ -206,6 +211,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, SpecialFolderItemType type; GtkWidget *no_save_warning = NULL; +#ifndef G_OS_WIN32 GtkWidget *checkbtn_simplify_subject; GtkWidget *entry_simplify_subject; GtkWidget *hbox_regexp; @@ -213,7 +219,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, GtkWidget *entry_regexp_test_string; GtkWidget *left_arrow; GtkWidget *entry_regexp_test_result; - +#endif GtkWidget *checkbtn_folder_chmod; GtkWidget *entry_folder_chmod; GtkWidget *folder_color; @@ -227,7 +233,9 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, GtkWidget *label_end_offlinesync; GtkWidget *checkbtn_remove_old_offlinesync; +#ifndef G_OS_WIN32 GtkWidget *simplify_subject_rec_checkbtn; +#endif GtkWidget *folder_chmod_rec_checkbtn; GtkWidget *folder_color_rec_checkbtn; GtkWidget *enable_processing_rec_checkbtn; @@ -313,6 +321,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, rowcount++; +#ifndef G_OS_WIN32 /* Simplify Subject */ checkbtn_simplify_subject = gtk_check_button_new_with_label(_("Simplify Subject RegExp")); gtk_table_attach(GTK_TABLE(table), checkbtn_simplify_subject, 0, 1, @@ -370,7 +379,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, gtk_editable_set_editable(GTK_EDITABLE(entry_regexp_test_result), FALSE); rowcount++; - +#endif /* Folder chmod */ checkbtn_folder_chmod = gtk_check_button_new_with_label(_("Folder chmod")); gtk_table_attach(GTK_TABLE(table), checkbtn_folder_chmod, 0, 1, @@ -564,10 +573,12 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->table = table; page->folder_type = folder_type; page->no_save_warning = no_save_warning; +#ifndef G_OS_WIN32 page->checkbtn_simplify_subject = checkbtn_simplify_subject; page->entry_simplify_subject = entry_simplify_subject; page->entry_regexp_test_string = entry_regexp_test_string; page->entry_regexp_test_result = entry_regexp_test_result; +#endif page->checkbtn_folder_chmod = checkbtn_folder_chmod; page->entry_folder_chmod = entry_folder_chmod; page->folder_color_btn = folder_color_btn; @@ -580,7 +591,9 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->label_end_offlinesync = label_end_offlinesync; page->checkbtn_remove_old_offlinesync = checkbtn_remove_old_offlinesync; +#ifndef G_OS_WIN32 page->simplify_subject_rec_checkbtn = simplify_subject_rec_checkbtn; +#endif page->folder_chmod_rec_checkbtn = folder_chmod_rec_checkbtn; page->folder_color_rec_checkbtn = folder_color_rec_checkbtn; page->enable_processing_rec_checkbtn = enable_processing_rec_checkbtn; @@ -590,7 +603,9 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->page.widget = table; +#ifndef G_OS_WIN32 folder_regexp_set_subject_example_cb(NULL, page); +#endif } static void prefs_folder_item_general_destroy_widget_func(PrefsPage *page_) @@ -623,13 +638,14 @@ static void general_save_folder_prefs(FolderItem *folder, FolderItemGeneralPage folder_item_change_type(folder, type); } +#ifndef G_OS_WIN32 if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->simplify_subject_rec_checkbtn))) { prefs->enable_simplify_subject = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_simplify_subject)); ASSIGN_STRING(prefs->simplify_subject_regexp, gtk_editable_get_chars(GTK_EDITABLE(page->entry_simplify_subject), 0, -1)); } - +#endif if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->folder_chmod_rec_checkbtn))) { prefs->enable_folder_chmod = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_folder_chmod)); @@ -688,7 +704,10 @@ static gboolean general_save_recurse_func(GNode *node, gpointer data) check boxes are selected - and optimise the checking by only doing it once */ if ((node == page->item->node) && - !(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->simplify_subject_rec_checkbtn)) || + !( +#ifndef G_OS_WIN32 + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->simplify_subject_rec_checkbtn)) || +#endif gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->folder_chmod_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->folder_color_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_processing_rec_checkbtn)) || @@ -1466,6 +1485,7 @@ static void clean_cache_cb(GtkWidget *widget, gpointer data) folderview_select(folderview,item); } +#ifndef G_OS_WIN32 static regex_t *summary_compile_simplify_regexp(gchar *simplify_subject_regexp) { int err; @@ -1562,7 +1582,7 @@ static void folder_regexp_set_subject_example_cb(GtkWidget *widget, gpointer dat } } } - +#endif static void register_general_page() { static gchar *pfi_general_path[3]; diff --git a/src/prefs_matcher.c b/src/prefs_matcher.c @@ -90,7 +90,9 @@ static struct Matcher { GtkWidget *numeric_label; GtkWidget *addressbook_folder_combo; GtkWidget *case_checkbtn; +#ifndef G_OS_WIN32 GtkWidget *regexp_checkbtn; +#endif GtkWidget *color_optmenu; GtkWidget *test_btn; @@ -491,7 +493,9 @@ static void prefs_matcher_create(void) GtkWidget *numeric_entry; GtkWidget *numeric_label; +#ifndef G_OS_WIN32 GtkWidget *regexp_checkbtn; +#endif GtkWidget *case_checkbtn; GtkWidget *reg_hbox; @@ -694,7 +698,9 @@ static void prefs_matcher_create(void) hbox = gtk_hbox_new(FALSE, HSPACING_NARROW); gtk_size_group_add_widget(size_group, hbox); PACK_CHECK_BUTTON(hbox, case_checkbtn, _("Case sensitive")); +#ifndef G_OS_WIN32 PACK_CHECK_BUTTON(hbox, regexp_checkbtn, _("Use regexp")); +#endif gtk_box_pack_end(GTK_BOX(hbox), gtk_label_new(""), TRUE, TRUE, 0); gtk_table_attach(GTK_TABLE(table), hbox, 2, 3, 2, 3, GTK_FILL, GTK_SHRINK, 4, 0); @@ -810,7 +816,9 @@ static void prefs_matcher_create(void) matcher.addressbook_folder_combo = addressbook_folder_combo; matcher.match_combo = match_combo; matcher.case_checkbtn = case_checkbtn; +#ifndef G_OS_WIN32 matcher.regexp_checkbtn = regexp_checkbtn; +#endif matcher.bool_op_combo = bool_op_combo; matcher.test_btn = test_btn; matcher.addressbook_select_btn = addressbook_select_btn; @@ -874,7 +882,9 @@ static void prefs_matcher_reset_condition(void) gtk_entry_set_text(GTK_ENTRY(matcher.header_addr_entry), ""); gtk_entry_set_text(GTK_ENTRY(matcher.string_entry), ""); gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((matcher.addressbook_folder_combo)))), ""); +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); } @@ -1345,7 +1355,11 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void) if(value_pred) criteria = prefs_matcher_not_criteria(criteria); +#ifndef G_OS_WIN32 use_regexp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn)); +#else + use_regexp = FALSE; +#endif case_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn)); if (use_regexp) { @@ -1709,15 +1723,19 @@ static void prefs_matcher_second_criteria_sel(GtkWidget *widget, prefs_matcher_enable_widget(matcher.match_label2, TRUE); prefs_matcher_enable_widget(matcher.string_entry, FALSE); prefs_matcher_enable_widget(matcher.case_checkbtn, FALSE); +#ifndef G_OS_WIN32 prefs_matcher_enable_widget(matcher.regexp_checkbtn, FALSE); +#endif } else { prefs_matcher_enable_widget(matcher.upper_filler, TRUE); prefs_matcher_enable_widget(matcher.match_label2, FALSE); prefs_matcher_enable_widget(matcher.string_entry, TRUE); prefs_matcher_enable_widget(matcher.case_checkbtn, TRUE); +#ifndef G_OS_WIN32 prefs_matcher_enable_widget(matcher.regexp_checkbtn, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( matcher.case_checkbtn), FALSE); } @@ -1788,8 +1806,10 @@ static void prefs_matcher_criteria_select(GtkWidget *widget, MATCH_COMBO_IS_ENABLED(value)); prefs_matcher_enable_widget(matcher.case_checkbtn, MATCH_CASE_REGEXP(value)); +#ifndef G_OS_WIN32 prefs_matcher_enable_widget(matcher.regexp_checkbtn, MATCH_CASE_REGEXP(value)); +#endif prefs_matcher_enable_widget(matcher.test_btn, (value == MATCH_TEST)); prefs_matcher_enable_widget(matcher.addressbook_select_btn, @@ -1832,7 +1852,9 @@ static void prefs_matcher_criteria_select(GtkWidget *widget, prefs_matcher_set_model(matcher.match_combo, matcher.model_contain); gtk_label_set_text(GTK_LABEL(matcher.criteria_label2), _("Name:")); gtk_label_set_text(GTK_LABEL(matcher.match_label), _("Header")); +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); break; case MATCH_LABEL: @@ -1849,7 +1871,9 @@ static void prefs_matcher_criteria_select(GtkWidget *widget, prefs_matcher_set_model(matcher.criteria_combo2, matcher.model_phrase); prefs_matcher_set_model(matcher.match_combo, matcher.model_contain); gtk_label_set_text(GTK_LABEL(matcher.criteria_label2), _("in")); +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); prefs_matcher_second_criteria_sel(NULL, NULL); break; @@ -2460,22 +2484,30 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector, switch(prop->matchtype) { case MATCHTYPE_MATCH: +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), TRUE); break; case MATCHTYPE_MATCHCASE: +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); break; case MATCHTYPE_REGEXP: +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), TRUE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), TRUE); break; case MATCHTYPE_REGEXPCASE: +#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), TRUE); +#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); break; } diff --git a/src/summaryview.c b/src/summaryview.c @@ -1138,8 +1138,9 @@ void summary_init(SummaryView *summaryview) summaryview->sort_type = SORT_ASCENDING; /* Init summaryview extra data */ +#ifndef G_OS_WIN32 summaryview->simplify_subject_preg = NULL; - +#endif summary_clear_list(summaryview); summary_set_column_titles(summaryview); summary_colorlabel_menu_create(summaryview, FALSE); @@ -2956,9 +2957,11 @@ void summary_sort(SummaryView *summaryview, cmp_func = (GtkCMCListCompareFunc)summary_cmp_by_from; break; case SORT_BY_SUBJECT: +#ifndef G_OS_WIN32 if (summaryview->simplify_subject_preg) cmp_func = (GtkCMCListCompareFunc)summary_cmp_by_simplified_subject; else +#endif cmp_func = (GtkCMCListCompareFunc)summary_cmp_by_subject; break; case SORT_BY_SCORE: @@ -3362,12 +3365,14 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[], text[col_pos[S_COL_FROM]] = tmp2; } +#ifndef G_OS_WIN32 if (summaryview->simplify_subject_preg != NULL) text[col_pos[S_COL_SUBJECT]] = msginfo->subject ? string_remove_match(tmp3, BUFFSIZE, msginfo->subject, summaryview->simplify_subject_preg) : _("(No Subject)"); else +#endif text[col_pos[S_COL_SUBJECT]] = msginfo->subject ? msginfo->subject : _("(No Subject)"); if (vert && prefs_common.two_line_vert) { @@ -5896,11 +5901,13 @@ static void summary_tags_menu_item_activate_item_cb(GtkMenuItem *menu_item, void summaryview_destroy(SummaryView *summaryview) { +#ifndef G_OS_WIN32 if(summaryview->simplify_subject_preg) { regfree(summaryview->simplify_subject_preg); g_free(summaryview->simplify_subject_preg); summaryview->simplify_subject_preg = NULL; } +#endif } static void summary_tags_menu_item_apply_tags_activate_cb(GtkWidget *widget, gpointer data) @@ -7640,6 +7647,7 @@ void summary_harvest_address(SummaryView *summaryview) g_list_free( msgList ); } +#ifndef G_OS_WIN32 static regex_t *summary_compile_simplify_regexp(gchar *simplify_subject_regexp) { int err; @@ -7659,7 +7667,7 @@ static regex_t *summary_compile_simplify_regexp(gchar *simplify_subject_regexp) return preg; } - +#endif void summary_set_prefs_from_folderitem(SummaryView *summaryview, FolderItem *item) { FolderSortKey sort_key; @@ -7668,6 +7676,7 @@ void summary_set_prefs_from_folderitem(SummaryView *summaryview, FolderItem *ite g_return_if_fail(item != NULL); /* Subject simplification */ +#ifndef G_OS_WIN32 if(summaryview->simplify_subject_preg) { regfree(summaryview->simplify_subject_preg); g_free(summaryview->simplify_subject_preg); @@ -7676,7 +7685,7 @@ void summary_set_prefs_from_folderitem(SummaryView *summaryview, FolderItem *ite if(item->prefs && item->prefs->simplify_subject_regexp && item->prefs->simplify_subject_regexp[0] && item->prefs->enable_simplify_subject) summaryview->simplify_subject_preg = summary_compile_simplify_regexp(item->prefs->simplify_subject_regexp); - +#endif /* Sorting */ sort_key = item->sort_key; sort_type = item->sort_type;