* @brief Add a single pattern (if nonempty & valid) to a pattern list. * * @param [in] filterList List where pattern is added. * @param [in] str Temporary variable (ie, it may be altered) * @param [in] lineNumber Line number in filter file, used for error reporting. */
| 40 | * @param [in] lineNumber Line number in filter file, used for error reporting. |
| 41 | */ |
| 42 | void FileFilter::AddFilterPattern(vector<FileFilterElementPtr>* filterList, const String& str, bool fileFilter, int lineNumber) |
| 43 | { |
| 44 | int re_opts = Poco::RegularExpression::RE_CASELESS; |
| 45 | std::string regexString = ucr::toUTF8(str); |
| 46 | re_opts |= Poco::RegularExpression::RE_UTF8; |
| 47 | try |
| 48 | { |
| 49 | filterList->push_back(FileFilterElementPtr(new FileFilterElement(regexString, re_opts, fileFilter))); |
| 50 | } |
| 51 | catch (const Poco::RegularExpressionException& e) |
| 52 | { |
| 53 | errors.emplace_back(FILTER_ERROR_INVALID_REGULAR_EXPRESSION, lineNumber, -1, str, e.message(), name); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | /** |
| 58 | * @brief Add a single expression (if nonempty & valid) to a expression list. |
no test coverage detected