From 6f0114437c0fa9b0da5c08cfede8257715d3a000 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 14 Nov 2008 19:06:59 +0000 Subject: [PATCH] assert in AddCatalog() if Init() hadn't been called and also check that we have a valid language spec in wxMsgCatalogFile::Load() to ensure we don't form invalid paths there; call Init() before AddCatalog() in the sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/internat/internat.cpp | 13 +++++-------- src/common/intl.cpp | 5 +++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/samples/internat/internat.cpp b/samples/internat/internat.cpp index 96f289c2c6..77d62a296d 100644 --- a/samples/internat/internat.cpp +++ b/samples/internat/internat.cpp @@ -218,16 +218,13 @@ bool MyApp::OnInit() m_lang = lng == -1 ? wxLANGUAGE_DEFAULT : langIds[lng]; } - if ( m_lang != wxLANGUAGE_DEFAULT ) + // don't use wxLOCALE_LOAD_DEFAULT flag so that Init() doesn't return + // false just because it failed to load wxstd catalog + if ( !m_locale.Init(m_lang, wxLOCALE_CONV_ENCODING) ) { - // don't use wxLOCALE_LOAD_DEFAULT flag so that Init() doesn't return - // false just because it failed to load wxstd catalog - if ( !m_locale.Init(m_lang, wxLOCALE_CONV_ENCODING) ) - { - wxLogWarning(_("This language is not supported by the system.")); + wxLogWarning(_("This language is not supported by the system.")); - // continue nevertheless - } + // continue nevertheless } // normally this wouldn't be necessary as the catalog files would be found diff --git a/src/common/intl.cpp b/src/common/intl.cpp index a1f81ebec7..39cd1a0c3f 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -1177,6 +1177,9 @@ static wxString GetFullSearchPath(const wxString& lang) bool wxMsgCatalogFile::Load(const wxString& szDirPrefix, const wxString& szName, wxPluralFormsCalculatorPtr& rPluralFormsCalculator) { + wxCHECK_MSG( szDirPrefix.length() >= LEN_LANG, false, + "invalid language specification" ); + wxString searchPath; #if wxUSE_FONTMAP @@ -2570,6 +2573,8 @@ bool wxLocale::AddCatalog(const wxString& szDomain, const wxString& msgIdCharset) { + wxCHECK_MSG( IsOk(), false, "must initialize catalog first" ); + wxMsgCatalog *pMsgCat = new wxMsgCatalog; if ( pMsgCat->Load(m_strShort, szDomain, msgIdCharset, m_bConvertEncoding) ) -- 2.47.2