Move code removing "-psn_xxx" command line arguments to common code.

We need to do this when using any port under OS X, not just wxOSX, e.g. the
-psn_xxx arguments passed by the Finder when launching the application, must
also be ignored when using wxGTK.

Closes #15432.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2013-08-24 14:33:22 +00:00
parent 6ce0ccf593
commit 9e9574fe45
2 changed files with 21 additions and 15 deletions

View File

@ -83,6 +83,27 @@ wxAppBase::wxAppBase()
bool wxAppBase::Initialize(int& argcOrig, wxChar **argvOrig)
{
#ifdef __WXOSX__
// Mac OS X passes a process serial number command line argument when
// the application is launched from the Finder. This argument must be
// removed from the command line arguments before being handled by the
// application (otherwise applications would need to handle it)
//
// Notice that this has to be done for all ports that can be used under OS
// X (e.g. wxGTK) and not just wxOSX itself, hence this code is here and
// not in a port-specific file.
if ( argcOrig > 1 )
{
static const wxChar *ARG_PSN = wxT("-psn_");
if ( wxStrncmp(argvOrig[1], ARG_PSN, wxStrlen(ARG_PSN)) == 0 )
{
// remove this argument
--argcOrig;
memmove(argvOrig + 1, argvOrig + 2, argcOrig * sizeof(wxChar*));
}
}
#endif // __WXOSX__
if ( !wxAppConsole::Initialize(argcOrig, argvOrig) )
return false;

View File

@ -821,21 +821,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
InstallDebugAssertOutputHandler( NewDebugAssertOutputHandlerUPP( wxMacAssertOutputHandler ) );
#endif
// Mac OS X passes a process serial number command line argument when
// the application is launched from the Finder. This argument must be
// removed from the command line arguments before being handled by the
// application (otherwise applications would need to handle it)
if ( argc > 1 )
{
static const wxChar *ARG_PSN = wxT("-psn_");
if ( wxStrncmp(argv[1], ARG_PSN, wxStrlen(ARG_PSN)) == 0 )
{
// remove this argument
--argc;
memmove(argv + 1, argv + 2, argc * sizeof(wxChar*));
}
}
/*
Cocoa supports -Key value options which set the user defaults key "Key"
to the value "value" Some of them are very handy for debugging like