]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/debugrpt.cpp
Add a comment about covariant returns
[wxWidgets.git] / src / common / debugrpt.cpp
index 194b33788b02206f07f3a1d5bfde9ef7fe957cff..7b88cb3fd966c559129af45dbe4608c65ae1d3d2 100644 (file)
@@ -252,23 +252,45 @@ wxString wxDebugReport::GetReportName() const
     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& name,
+wxDebugReport::AddText(const wxString& filename,
                        const wxString& text,
                        const wxString& description)
 {
-    wxFileName fn(GetDirectory(), name);
+    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(name, description);
+    AddFile(filename, description);
 
     return true;
 }