]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/app.cpp
compilation fix for gcc 3.3
[wxWidgets.git] / src / gtk / app.cpp
index 31f446d8b69eb367e0d9e8f873b1ed21f5d72eff..14b556b2e5528546fd63e5c12f54e0e9aacbb424 100644 (file)
@@ -423,6 +423,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #else
     init_result = gtk_init_check( &argcGTK, &argvGTK );
 #endif
+    wxUpdateLocaleIsUtf8();
 
     if ( argcGTK != argc )
     {
@@ -456,6 +457,38 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     this->argc = argc;
     this->argv = argv;
 
+    if ( m_traits )
+    {
+        // if there are still GTK+ standard options unparsed in the command
+        // line, it means that they were not syntactically correct and GTK+
+        // already printed a warning on the command line and we should now
+        // exit:
+        wxArrayString opt, desc;
+        m_traits->GetStandardCmdLineOptions(opt, desc);
+
+        for ( int i = 0; i < argc; i++ )
+        {
+            // leave just the names of the options with values
+            const wxString str = wxString(argv[i]).BeforeFirst('=');
+
+            for ( size_t j = 0; j < opt.size(); j++ )
+            {
+                // remove the leading spaces from the option string as it does
+                // have them
+                if ( opt[j].Trim(false).BeforeFirst('=') == str )
+                {
+                    // a GTK+ option can be left on the command line only if
+                    // there was an error in (or before, in another standard
+                    // options) it, so abort, just as we do if incorrect
+                    // program option is given
+                    wxLogError(_("Invalid GTK+ command line option, use \"%s --help\""),
+                               argv[0]);
+                    return false;
+                }
+            }
+        }
+    }
+
     if ( !init_result )
     {
         wxLogError(_("Unable to initialize GTK+, is DISPLAY set properly?"));