X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7735b2ea691f41d7a7f007befbe969386873b86e..08670ea85abf4b4946a9ce64971b591d7b1ee30b:/src/common/debugrpt.cpp diff --git a/src/common/debugrpt.cpp b/src/common/debugrpt.cpp index 2acb3a0051..a903051fcf 100644 --- a/src/common/debugrpt.cpp +++ b/src/common/debugrpt.cpp @@ -6,7 +6,7 @@ // Created: 2005-01-17 // RCS-ID: $Id$ // Copyright: (c) 2005 Vadim Zeitlin -// License: wxWindows licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -268,8 +268,10 @@ wxDebugReport::AddFile(const wxString& filename, const wxString& description) // 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()); + + if (!wxCopyFile(fn.GetFullPath(), + wxFileName(GetDirectory(), name).GetFullPath())) + return; } else // file relative to the report directory { @@ -598,14 +600,38 @@ bool wxDebugReport::DoProcess() // wxDebugReportCompress // ---------------------------------------------------------------------------- +void wxDebugReportCompress::SetCompressedFileDirectory(const wxString& dir) +{ + wxASSERT_MSG( m_zipfile.empty(), "Too late: call this before Process()" ); + + m_zipDir = dir; +} + +void wxDebugReportCompress::SetCompressedFileBaseName(const wxString& name) +{ + wxASSERT_MSG( m_zipfile.empty(), "Too late: call this before Process()" ); + + m_zipName = name; +} + bool wxDebugReportCompress::DoProcess() { const size_t count = GetFilesCount(); if ( !count ) return false; + // create the compressed report file outside of the directory with the + // report files as it will be deleted by wxDebugReport dtor but we want to + // keep this one: for this we simply treat the directory name as the name + // of the file so that its last component becomes our base name + wxFileName fn(GetDirectory()); + if ( !m_zipDir.empty() ) + fn.SetPath(m_zipDir); + if ( !m_zipName.empty() ) + fn.SetName(m_zipName); + fn.SetExt("zip"); + // create the streams - wxFileName fn(GetDirectory(), GetReportName(), wxT("zip")); wxFFileOutputStream os(fn.GetFullPath(), wxT("wb")); wxZipOutputStream zos(os, 9); @@ -621,7 +647,7 @@ bool wxDebugReportCompress::DoProcess() if ( !zos.PutNextEntry(ze) ) return false; - wxFileName filename(fn.GetPath(), name); + const wxFileName filename(GetDirectory(), name); wxFFileInputStream is(filename.GetFullPath()); if ( !is.IsOk() || !zos.Write(is).IsOk() ) return false;