]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/ifacecheck/src/ifacecheck.cpp
Don't use a destroy event handler to disconnect the native control's delegate as...
[wxWidgets.git] / utils / ifacecheck / src / ifacecheck.cpp
index df069501b26309bcfdfb01a21580e3dcc2009139..13aca6a97e7cab5fb4c2653567214aaec3eb2ad2 100644 (file)
@@ -75,11 +75,11 @@ class IfaceCheckLog : public wxLog
 public:
     IfaceCheckLog() {}
 
 public:
     IfaceCheckLog() {}
 
-    void DoLog(wxLogLevel level, const wxString& msg, time_t stamp)
+    virtual void DoLogText(const wxString& msg)
     {
     {
-        wxPrintf(msg);
-        wxPrintf("\n");
-        Flush();
+        // send all messages to stdout (normal behaviour is to sent them to stderr)
+        wxPuts(msg);
+        fflush(stdout);
     }
 };
 
     }
 };
 
@@ -153,16 +153,12 @@ int IfaceCheckApp::OnRun()
             // in any case set basic std preprocessor #defines:
             m_doxyInterface.AddPreprocessorValue("NULL", "0");
 
             // in any case set basic std preprocessor #defines:
             m_doxyInterface.AddPreprocessorValue("NULL", "0");
 
-            //g_bLogEnabled = false;
-
             // parse the two XML files which contain the real and the doxygen interfaces
             // for wxWidgets API:
             if (!m_gccInterface.Parse(parser.GetParam(0)) ||
                 !m_doxyInterface.Parse(parser.GetParam(1)))
                 return 1;
 
             // parse the two XML files which contain the real and the doxygen interfaces
             // for wxWidgets API:
             if (!m_gccInterface.Parse(parser.GetParam(0)) ||
                 !m_doxyInterface.Parse(parser.GetParam(1)))
                 return 1;
 
-//            g_bLogEnabled = true;
-
             if (parser.Found(DUMP_SWITCH))
             {
                 wxLogMessage("Dumping real API to '%s'...", API_DUMP_FILE);
             if (parser.Found(DUMP_SWITCH))
             {
                 wxLogMessage("Dumping real API to '%s'...", API_DUMP_FILE);
@@ -218,7 +214,9 @@ bool IfaceCheckApp::Compare()
                  interfaces.GetCount());
 
     if (!m_strToMatch.IsEmpty())
                  interfaces.GetCount());
 
     if (!m_strToMatch.IsEmpty())
+    {
         wxLogMessage("Processing only header files matching '%s' expression.", m_strToMatch);
         wxLogMessage("Processing only header files matching '%s' expression.", m_strToMatch);
+    }
 
     for (unsigned int i=0; i<interfaces.GetCount(); i++)
     {
 
     for (unsigned int i=0; i<interfaces.GetCount(); i++)
     {
@@ -228,8 +226,10 @@ bool IfaceCheckApp::Compare()
             (interfaces[i].GetAvailability() & m_gccInterface.GetInterfacePort()) == 0) {
 
             if (g_verbose)
             (interfaces[i].GetAvailability() & m_gccInterface.GetInterfacePort()) == 0) {
 
             if (g_verbose)
+            {
                 wxLogMessage("skipping class '%s' since it's not available for the %s port.",
                            interfaces[i].GetName(), m_gccInterface.GetInterfacePortName());
                 wxLogMessage("skipping class '%s' since it's not available for the %s port.",
                            interfaces[i].GetName(), m_gccInterface.GetInterfacePortName());
+            }
 
             continue;       // skip this method
         }
 
             continue;       // skip this method
         }
@@ -303,8 +303,10 @@ int IfaceCheckApp::CompareClasses(const wxClass* iface, const wxClass* api)
             (m.GetAvailability() & m_gccInterface.GetInterfacePort()) == 0) {
 
             if (g_verbose)
             (m.GetAvailability() & m_gccInterface.GetInterfacePort()) == 0) {
 
             if (g_verbose)
+            {
                 wxLogMessage("skipping method '%s' since it's not available for the %s port.",
                            m.GetAsString(), m_gccInterface.GetInterfacePortName());
                 wxLogMessage("skipping method '%s' since it's not available for the %s port.",
                            m.GetAsString(), m_gccInterface.GetInterfacePortName());
+            }
 
             continue;       // skip this method
         }
 
             continue;       // skip this method
         }
@@ -359,7 +361,9 @@ int IfaceCheckApp::CompareClasses(const wxClass* iface, const wxClass* api)
 
                     // modify interface header
                     if (FixMethod(iface->GetHeader(), &m, &tmp))
 
                     // modify interface header
                     if (FixMethod(iface->GetHeader(), &m, &tmp))
+                    {
                         wxLogMessage("Adjusted attributes of '%s' method", m.GetAsString());
                         wxLogMessage("Adjusted attributes of '%s' method", m.GetAsString());
+                    }
 
                     proceed = false;
                     break;
 
                     proceed = false;
                     break;
@@ -393,7 +397,7 @@ int IfaceCheckApp::CompareClasses(const wxClass* iface, const wxClass* api)
                     for (unsigned int j=0; j<overloads.GetCount(); j++)
                         warning += "\n\treal header: " + overloads[j]->GetAsString(true, true, true, true);
 
                     for (unsigned int j=0; j<overloads.GetCount(); j++)
                         warning += "\n\treal header: " + overloads[j]->GetAsString(true, true, true, true);
 
-                    wxLogWarning(warning);
+                    wxLogWarning("%s", warning);
                     count++;
 
                     if (overloads.GetCount()>1)
                     count++;
 
                     if (overloads.GetCount()>1)
@@ -401,7 +405,9 @@ int IfaceCheckApp::CompareClasses(const wxClass* iface, const wxClass* api)
                         // TODO: decide which of these overloads is the most "similar" to m
                         //       and eventually modify it
                         if (m_modify)
                         // TODO: decide which of these overloads is the most "similar" to m
                         //       and eventually modify it
                         if (m_modify)
+                        {
                             wxLogWarning("\tmanual fix is required");
                             wxLogWarning("\tmanual fix is required");
+                        }
                     }
                     else
                     {
                     }
                     else
                     {
@@ -433,6 +439,7 @@ bool IfaceCheckApp::StringContainsMethodName(const wxString& str, const wxMethod
 
 bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, const wxMethod* api)
 {
 
 bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, const wxMethod* api)
 {
+    unsigned int i,j;
     wxASSERT(iface && api);
 
     wxTextFile file;
     wxASSERT(iface && api);
 
     wxTextFile file;
@@ -492,7 +499,7 @@ bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, con
     }
 
     // remove the old prototype
     }
 
     // remove the old prototype
-    for (int i=start; i<=end; i++)
+    for (int k=start; k<=end; k++)
         file.RemoveLine(start);     // remove (end-start)-nth times the start-th line
 
 #define INDENTATION_STR  wxString("    ")
         file.RemoveLine(start);     // remove (end-start)-nth times the start-th line
 
 #define INDENTATION_STR  wxString("    ")
@@ -520,7 +527,7 @@ bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, con
     const wxArgumentTypeArray& realargs = api->GetArgumentTypes();
     if (realargs.GetCount() == doxygenargs.GetCount())
     {
     const wxArgumentTypeArray& realargs = api->GetArgumentTypes();
     if (realargs.GetCount() == doxygenargs.GetCount())
     {
-        for (unsigned int j=0; j<doxygenargs.GetCount(); j++)
+        for (j=0; j<doxygenargs.GetCount(); j++)
             if (doxygenargs[j]==realargs[j])
             {
                 realargs[j].SetArgumentName(doxygenargs[j].GetArgumentName());
             if (doxygenargs[j]==realargs[j])
             {
                 realargs[j].SetArgumentName(doxygenargs[j].GetArgumentName());
@@ -542,7 +549,7 @@ bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, con
     wxASSERT(nStartColumn != wxNOT_FOUND);
 
     // wrap lines too long at comma boundaries
     wxASSERT(nStartColumn != wxNOT_FOUND);
 
     // wrap lines too long at comma boundaries
-    for (unsigned int i=0; i<toinsert.GetCount(); i++)
+    for (i=0; i<toinsert.GetCount(); i++)
     {
         size_t len = toinsert[i].Len();
         if (len > WRAP_COLUMN)
     {
         size_t len = toinsert[i].Len();
         if (len > WRAP_COLUMN)
@@ -562,7 +569,7 @@ bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, con
     }
 
     // insert the new lines
     }
 
     // insert the new lines
-    for (unsigned int i=0; i<toinsert.GetCount(); i++)
+    for (i=0; i<toinsert.GetCount(); i++)
         file.InsertLine(toinsert[i], start+i);
 
     // now save the modification
         file.InsertLine(toinsert[i], start+i);
 
     // now save the modification
@@ -577,14 +584,16 @@ bool IfaceCheckApp::FixMethod(const wxString& header, const wxMethod* iface, con
         return false;
 
     if (g_verbose)
         return false;
 
     if (g_verbose)
+    {
         wxLogMessage("\tthe final row offset for following methods is %d lines.", nOffset);
         wxLogMessage("\tthe final row offset for following methods is %d lines.", nOffset);
+    }
 
     // update the other method's locations for those methods which belong to the modified header
     // and are placed _below_ the modified method
     wxClassPtrArray cToUpdate = m_doxyInterface.FindClassesDefinedIn(header);
 
     // update the other method's locations for those methods which belong to the modified header
     // and are placed _below_ the modified method
     wxClassPtrArray cToUpdate = m_doxyInterface.FindClassesDefinedIn(header);
-    for (unsigned int i=0; i < cToUpdate.GetCount(); i++)
+    for (i=0; i < cToUpdate.GetCount(); i++)
     {
     {
-        for (unsigned int j=0; j < cToUpdate[i]->GetMethodCount(); j++)
+        for (j=0; j < cToUpdate[i]->GetMethodCount(); j++)
         {
             wxMethod& m = cToUpdate[i]->GetMethod(j);
             if (m.GetLocation() > iface->GetLocation())
         {
             wxMethod& m = cToUpdate[i]->GetMethod(j);
             if (m.GetLocation() > iface->GetLocation())