RuleFilter::RuleFilter(BMessage *settings) : BMailFilter(settings) {
	// attribute is adapted to our "capitalize-each-word-in-the-header" policy
	BString attr;
	settings->FindString("attribute",&attr);
	attr.CapitalizeEachWord();
	attribute = strdup(attr.String());

	const char *regex = NULL;	
	settings->FindString("regex",&regex);
	matcher.SetPattern(regex,true);
	
	settings->FindString("argument",&arg);
	settings->FindInt32("do_what",(long *)&do_what);
	if (do_what == Z_SET_REPLY)
		settings->FindInt32("argument",&chain_id);
}
Example #2
0
RuleFilter::RuleFilter(BMessage *settings) : BMailFilter(settings) {
	// attribute is adapted to our "capitalize-each-word-in-the-header" policy
	BString attr;
	settings->FindString("attribute",&attr);
	attr.CapitalizeEachWord();
	attribute = strdup(attr.String());

	BString regex;
	settings->FindString("regex",&regex);
	
	int32 index = regex.FindFirst("REGEX:");
	if (index == B_ERROR || index > 0)
		EscapeRegexTokens(regex);
	else
		regex.RemoveFirst("REGEX:");
		
	matcher.SetPattern(regex.String(),false);
	
	settings->FindString("argument",&arg);
	settings->FindInt32("do_what",(long *)&do_what);
	if (do_what == Z_SET_REPLY)
		settings->FindInt32("argument",&chain_id);
}