Look for and remove any "-NSKey" "value" types of options from argv just like

the -psn_XXXX option is removed.  This allows Cocoa debug options like
-NSShowAllViews YES to be used as with any other Cocoa program.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-10-25 18:01:36 +00:00
parent 9b4af7b7de
commit 04453a9e1e

View File

@@ -124,6 +124,37 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
}
}
/*
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
-NSShowAllViews YES. Cocoa picks these up from the real argv so
our removal of them from the wx copy of it does not affect Cocoa's
ability to see them.
We basically just assume that any "-NS" option and its following
argument needs to be removed from argv. We hope that user code does
not expect to see -NS options and indeed it's probably a safe bet
since most user code accepting options is probably using the
double-dash GNU-style syntax.
*/
for(int i=1; i < argc; ++i)
{
static const wxChar *ARG_NS = wxT("-NS");
static const int ARG_NS_LEN = wxStrlen(ARG_NS);
if( wxStrncmp(argv[i], ARG_NS, ARG_NS_LEN) == 0 )
{
// Only eat this option if it has an argument
if( (i + 1) < argc )
{
argc -= 2;
memmove(argv + i, argv + i + 2, argc * sizeof(wxChar*));
// drop back one position so the next run through the loop
// reprocesses the argument at our current index.
--i;
}
}
}
return wxAppBase::Initialize(argc, argv);
}