]> git.saurik.com Git - wxWidgets.git/commitdiff
Move code removing "-psn_xxx" command line arguments to common code.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 24 Aug 2013 14:33:22 +0000 (14:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 24 Aug 2013 14:33:22 +0000 (14:33 +0000)
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

src/common/appcmn.cpp
src/osx/carbon/app.cpp

index 5321885ed4aac077ecbc9fd20829b01d671ae554..821f695bac7fe5180351dc5058e8cbe95fda3023 100644 (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;
 
index 5285c21bd81c970276956f25e933d1ced8ceb185..30fb4b076f5666cb1fe3ed4debc6b6e3b981a013 100644 (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