*
*\param lines String with "\n"-separated expressions
*\param bool_and Operator
+ *\param case_sensitive If the matching is case sensitive or not
*
*\return MatcherList * New matcher list
*/
-MatcherList *matcherlist_new_from_lines(gchar *lines, gboolean bool_and)
+MatcherList *matcherlist_new_from_lines(gchar *lines, gboolean bool_and,
+ gboolean case_sensitive)
{
MatcherProp *m = NULL;
GSList *matchers = NULL;
expr = build_complete_regexp(strings);
debug_print("building matcherprop for expr '%s'\n", expr?expr:"NULL");
- m = matcherprop_new(MATCHCRITERIA_SUBJECT, NULL, MATCHTYPE_REGEXP,
- expr, 0);
+ m = matcherprop_new(MATCHCRITERIA_SUBJECT, NULL,
+ case_sensitive? MATCHTYPE_REGEXP: MATCHTYPE_REGEXPCASE,
+ expr, 0);
if (m == NULL) {
/* print error message */
debug_print("failed to allocate memory for matcherprop\n");
#else
int i = 0;
while (strings && strings[i] && *strings[i]) {
- m = matcherprop_new(MATCHCRITERIA_SUBJECT, NULL, MATCHTYPE_MATCHCASE,
- strings[i], 0);
+ m = matcherprop_new(MATCHCRITERIA_SUBJECT, NULL,
+ case_sensitive? MATCHTYPE_MATCH: MATCHTYPE_MATCHCASE
+ strings[i], 0);
if (m == NULL) {
/* print error message */
debug_print("failed to allocate memory for matcherprop\n");
GtkWidget *skip_quotes_checkbox;
GtkWidget *skip_forwards_and_redirections;
GtkWidget *skip_signature;
+ GtkWidget *case_sensitive_checkbox;
};
struct AttachWarnerPrefsPage attwarnerprefs_page;
NULL, NULL, NULL},
{"skip_signature", "TRUE", &attwarnerprefs.skip_signature, P_BOOL,
NULL, NULL, NULL},
+ {"case_sensitive", "TRUE", &attwarnerprefs.case_sensitive, P_BOOL,
+ NULL, NULL, NULL},
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
GtkWidget *skip_quotes_checkbox;
GtkWidget *skip_fwd_redir_checkbox;
GtkWidget *skip_signature_checkbox;
+ GtkWidget *case_sensitive_checkbox;
vbox = gtk_vbox_new(FALSE, 6);
hbox = gtk_hbox_new(FALSE, 6);
label = gtk_label_new(_("Warn when matching the following regular expressions:\n(one per line)"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 6);
+
+ case_sensitive_checkbox = gtk_check_button_new_with_label(_("Case sensitive"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(case_sensitive_checkbox),
+ attwarnerprefs.case_sensitive);
+ gtk_box_pack_start(GTK_BOX(vbox), case_sensitive_checkbox, FALSE, FALSE, 0);
+ gtk_widget_show(case_sensitive_checkbox);
+
+ CLAWS_SET_TIP(case_sensitive_checkbox,
+ _("Case sensitive when matching for the regular expressions in the list"));
+ page->case_sensitive_checkbox = case_sensitive_checkbox;
+
page->regexp_text = gtk_text_view_new();
-
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(page->regexp_text));
gtk_text_buffer_set_text(buffer, attwarnerprefs.match_strings, -1);
CLAWS_SET_TIP(skip_signature_checkbox,
_("Exclude lines from the first signature-separator onwards from checking for the regular expressions above"));
page->skip_signature = skip_signature_checkbox;
-
+
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 6);
gtk_widget_show_all(hbox);
(GTK_TOGGLE_BUTTON(page->skip_forwards_and_redirections));
attwarnerprefs.skip_signature = gtk_toggle_button_get_active
(GTK_TOGGLE_BUTTON(page->skip_signature));
+ attwarnerprefs.case_sensitive = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(page->case_sensitive_checkbox));
attwarner_save_config();
g_free(attwarnerprefs.match_strings);