#include "wx/app.h"
#include "wx/filefn.h"
#include "wx/log.h"
- #include "wx/thread.h"
#include "wx/intl.h"
#include "wx/module.h"
#endif
#include "wx/init.h"
+#include "wx/thread.h"
#include "wx/ptr_scpd.h"
#include "wx/except.h"
int wargc = 0;
for ( int i = 0; i < argc; i++ )
{
+#ifdef __DARWIN__
+ wxWCharBuffer buf(wxConvFileName->cMB2WX(argv[i]));
+#else
wxWCharBuffer buf(wxConvLocal.cMB2WX(argv[i]));
+#endif
if ( !buf )
{
wxLogWarning(_("Command line argument %d couldn't be converted to Unicode and will be ignored."),
static bool DoCommonPreInit()
{
#if wxUSE_LOG
+ // Reset logging in case we were cleaned up and are being reinitialized.
+ wxLog::DoCreateOnDemand();
+
// install temporary log sink: we can't use wxLogGui before wxApp is
// constructed and if we use wxLogStderr, all messages during
// initialization simply disappear under Windows
return false;
}
+ // remember, possibly modified (e.g. due to removal of toolkit-specific
+ // parameters), command line arguments in member variables
+ app->argc = argc;
+ app->argv = argv;
+
+
wxCallAppCleanup callAppCleanup(app.get());
// for compatibility call the old initialization function too
{
wxTheApp->CleanUp();
- delete wxTheApp;
+ // reset the global pointer to it to NULL before destroying it as in
+ // some circumstances this can result in executing the code using
+ // wxTheApp and using half-destroyed object is no good
+ wxAppConsole * const app = wxApp::GetInstance();
wxApp::SetInstance(NULL);
+ delete app;
}