From 46447d1ae88cef0285548e5e8a53e3b356baf384 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Thu, 8 Dec 2011 17:08:10 +0000 Subject: [PATCH] copied from old cocoa code from David, fixes #13732 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/carbon/app.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/osx/carbon/app.cpp b/src/osx/carbon/app.cpp index a3ea022933..edf1ffac4b 100644 --- a/src/osx/carbon/app.cpp +++ b/src/osx/carbon/app.cpp @@ -811,6 +811,36 @@ 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"); + if( wxStrncmp(argv[i], ARG_NS, wxStrlen(ARG_NS)) == 0 ) + { + // Only eat this option if it has an argument + if( (i + 1) < argc ) + { + argc -= 2; + memmove(argv + i, argv + i + 2, argc * sizeof(char *)); + // drop back one position so the next run through the loop + // reprocesses the argument at our current index. + --i; + } + } + } + if ( !wxAppBase::Initialize(argc, argv) ) return false; -- 2.47.2