]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/debugrpt.cpp
fixed TREE_ITEM_MENU generation from right mouse clicks: don't pass WM_RBUTTONDOWN...
[wxWidgets.git] / src / common / debugrpt.cpp
index 10597eb4eb1c974d65740d8f612e23e2865250c5..2f7a5e602b11341b0ea9a944d307b7ba9dae4435 100644 (file)
@@ -27,6 +27,7 @@
     #include "wx/app.h"
     #include "wx/log.h"
     #include "wx/intl.h"
+    #include "wx/utils.h"
 #endif // WX_PRECOMP
 
 #if wxUSE_DEBUGREPORT
     #include "wx/zipstrm.h"
 #endif // wxUSE_ZIPSTREAM
 
-#if wxUSE_STACKWALKER
+WX_CHECK_BUILD_OPTIONS("wxQA")
 
 // ----------------------------------------------------------------------------
 // XmlStackWalker: stack walker specialization which dumps stack in XML
 // ----------------------------------------------------------------------------
 
+#if wxUSE_STACKWALKER
+
 class XmlStackWalker : public wxStackWalker
 {
 public:
@@ -85,7 +88,7 @@ protected:
 static inline void
 HexProperty(wxXmlNode *node, const wxChar *name, unsigned long value)
 {
-    node->AddProperty(name, wxString::Format(_T("%08x"), value));
+    node->AddProperty(name, wxString::Format(_T("%08lx"), value));
 }
 
 static inline void
@@ -105,7 +108,7 @@ TextElement(wxXmlNode *node, const wxChar *name, const wxString& value)
 static inline void
 HexElement(wxXmlNode *node, const wxChar *name, unsigned long value)
 {
-    TextElement(node, name, wxString::Format(_T("%08x"), value));
+    TextElement(node, name, wxString::Format(_T("%08lx"), value));
 }
 
 #if wxUSE_STACKWALKER
@@ -178,7 +181,7 @@ void XmlStackWalker::OnStackFrame(const wxStackFrame& frame)
 wxDebugReport::wxDebugReport()
 {
     // get a temporary directory name
-    wxString appname(wxTheApp ? wxTheApp->GetAppName() : _T("wx"));
+    wxString appname = GetReportName();
 
     // we can't use CreateTempFileName() because it creates a file, not a
     // directory, so do our best to create a unique name ourselves
@@ -187,7 +190,7 @@ wxDebugReport::wxDebugReport()
     wxFileName fn;
     fn.AssignTempFileName(appname);
     m_dir.Printf(_T("%s%c%s_dbgrpt-%lu-%s"),
-                 fn.GetPath(), wxFILE_SEP_PATH, appname.c_str(),
+                 fn.GetPath().c_str(), wxFILE_SEP_PATH, appname.c_str(),
                  wxGetProcessId(),
                  wxDateTime::Now().Format(_T("%Y%m%dT%H%M%S")).c_str());
 
@@ -223,7 +226,12 @@ wxDebugReport::~wxDebugReport()
 
     if ( !m_dir.empty() )
     {
-        if ( wxRmDir(m_dir) != 0 )
+        // Temp fix: what should this be? eVC++ doesn't like wxRmDir
+#ifdef __WXWINCE__
+        if ( wxRmdir(m_dir.fn_str()) != 0 )
+#else
+        if ( wxRmDir(m_dir.fn_str()) != 0 )
+#endif
         {
             wxLogSysError(_("Failed to clean up debug report directory \"%s\""),
                           m_dir.c_str());
@@ -237,7 +245,10 @@ wxDebugReport::~wxDebugReport()
 
 wxString wxDebugReport::GetReportName() const
 {
-    return wxString(wxTheApp ? wxTheApp->GetAppName() : _T("wx"));
+    if(wxTheApp)
+        return wxTheApp->GetAppName();
+
+    return _T("wx");
 }
 
 void wxDebugReport::AddFile(const wxString& name, const wxString& description)
@@ -279,6 +290,10 @@ void wxDebugReport::AddAll(Context context)
 #if wxUSE_CRASHREPORT
     AddDump(context);
 #endif // wxUSE_CRASHREPORT
+
+#if !wxUSE_STACKWALKER && !wxUSE_CRASHREPORT
+    wxUnusedVar(context);
+#endif
 }
 
 // ----------------------------------------------------------------------------
@@ -387,8 +402,8 @@ bool wxDebugReport::AddContext(wxDebugReport::Context ctx)
     wxXmlNode *nodeRoot = new wxXmlNode(wxXML_ELEMENT_NODE, _T("report"));
     xmldoc.SetRoot(nodeRoot);
     nodeRoot->AddProperty(_T("version"), _T("1.0"));
-    nodeRoot->AddProperty(_T("kind"), ctx == Context_Curent ? _T("user")
-                                                            : _T("exception"));
+    nodeRoot->AddProperty(_T("kind"), ctx == Context_Current ? _T("user")
+                                                             : _T("exception"));
 
     // add system information
     wxXmlNode *nodeSystemInfo = new wxXmlNode(wxXML_ELEMENT_NODE, _T("system"));
@@ -423,7 +438,7 @@ bool wxDebugReport::AddContext(wxDebugReport::Context ctx)
     {
         sw.WalkFromException();
     }
-    else // Context_Curent
+    else // Context_Current
     {
         sw.Walk();
     }
@@ -560,7 +575,8 @@ bool wxDebugReportCompress::DoProcess()
         if ( !zos.PutNextEntry(ze) )
             return false;
 
-        wxFFileInputStream is(wxFileName(fn.GetPath(), name).GetFullPath());
+        wxFileName filename(fn.GetPath(), name);
+        wxFFileInputStream is(filename.GetFullPath());
         if ( !is.IsOk() || !zos.Write(is).IsOk() )
             return false;
     }