Index: src/ch/FilterTypesMenuWrapper.cpp =================================================================== diff -u -N -r9250a0229add10f4315e76848c755f337a16ae95 -r63369021254e8b67ffeef5a9ece1b5a70df881c4 --- src/ch/FilterTypesMenuWrapper.cpp (.../FilterTypesMenuWrapper.cpp) (revision 9250a0229add10f4315e76848c755f337a16ae95) +++ src/ch/FilterTypesMenuWrapper.cpp (.../FilterTypesMenuWrapper.cpp) (revision 63369021254e8b67ffeef5a9ece1b5a70df881c4) @@ -3,6 +3,7 @@ #include "ch.h" #include "resource.h" #include "../libstring/TStringArray.h" +#include void FilterTypesMenuWrapper::Init() { @@ -53,3 +54,29 @@ } } } + +bool FilterTypesMenuWrapper::ValidateFilter(const chcore::TStringPatternArray& arrPattern) +{ + CStringA strMsg; + try + { + arrPattern.MatchesAny(chcore::PathFromString(L"")); + } + catch(const std::regex_error& e) + { + strMsg = e.what(); + } + + if(!strMsg.IsEmpty()) + { + CString strFmt; + strFmt.Format(L"%S", (PCSTR)strMsg); + + ictranslate::CFormat fmt(GetResManager().LoadString(IDS_INVALID_FILTER)); + fmt.SetParam(_T("%err"), strFmt); + AfxMessageBox(fmt.ToString()); + return false; + } + + return true; +}