void GlobalReplaceDialog::OnOk ( wxCommandEvent& e ) { std::string findUtf8, replaceUtf8; find = findCtrl->GetValue(); replace = replaceCtrl->GetValue(); findUtf8 = ( const char * ) find.mb_str ( wxConvUTF8 ); replaceUtf8 = ( const char * ) replace.mb_str ( wxConvUTF8 ); regex = regexBox->GetValue(); allDocuments = allDocumentsBox->GetValue(); matchCase = matchCaseBox->GetValue(); if ( regex ) { try { std::auto_ptr<WrapRegex> wr ( new WrapRegex ( findUtf8, matchCase, replaceUtf8 ) ); } catch ( std::exception& e ) { std::string pcreError ( e.what() ); wxString widePcreError = wxString ( pcreError.c_str(), wxConvUTF8, pcreError.size() ); wxMessageBox ( _ ( "Cannot compile regular expression '" ) + findCtrl->GetValue() + _T ( "': " ) + widePcreError, _ ( "Global Find and Replace" ) ); return; } } e.Skip(); }