return _T("wx");
}
-void wxDebugReport::AddFile(const wxString& name, const wxString& description)
+void
+wxDebugReport::AddFile(const wxString& filename, const wxString& description)
{
+ wxString name;
+ wxFileName fn(filename);
+ if ( fn.IsAbsolute() )
+ {
+ // we need to copy the file to the debug report directory: give it the
+ // same name there
+ name = fn.GetFullName();
+ wxCopyFile(fn.GetFullPath(),
+ wxFileName(GetDirectory(), name).GetFullPath());
+ }
+ else // file relative to the report directory
+ {
+ name = filename;
+
+ wxASSERT_MSG( wxFileName(GetDirectory(), name).FileExists(),
+ _T("file should exist in debug report directory") );
+ }
+
m_files.Add(name);
m_descriptions.Add(description);
}
+bool
+wxDebugReport::AddText(const wxString& filename,
+ const wxString& text,
+ const wxString& description)
+{
+ wxASSERT_MSG( !wxFileName(filename).IsAbsolute(),
+ _T("filename should be relative to debug report directory") );
+
+ wxFileName fn(GetDirectory(), filename);
+ wxFFile file(fn.GetFullPath(), _T("w"));
+ if ( !file.IsOpened() || !file.Write(text) )
+ return false;
+
+ AddFile(filename, description);
+
+ return true;
+}
+
void wxDebugReport::RemoveFile(const wxString& name)
{
const int n = m_files.Index(name);
#if wxUSE_ZIPSTREAM
-wxDEFINE_SCOPED_PTR_TYPE(wxZipOutputStream)
+// leave the default name wxZipOutputStreamPtr free for users
+wxDECLARE_SCOPED_PTR(wxZipOutputStream, wxDbgZipOutputStreamPtr)
+wxDEFINE_SCOPED_PTR(wxZipOutputStream, wxDbgZipOutputStreamPtr)
// ----------------------------------------------------------------------------
// wxDebugReportCompress
// create the streams
wxFileName fn(GetDirectory(), GetReportName(), _T("zip"));
wxFFileOutputStream os(fn.GetFullPath(), _T("wb"));
- wxZipOutputStreamPtr zos(new wxZipOutputStream(os, 9));
+
+ // create this one on the heap as a workaround since otherwise the mingw
+ // 3.2.3 linker cannot find ~wxZipOutputStream() when building a dll
+ // version of the library.
+ wxDbgZipOutputStreamPtr zos(new wxZipOutputStream(os, 9));
// add all files to the ZIP one
wxString name, desc;