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",®ex); 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); }
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",®ex); 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); }