]> git.saurik.com Git - wxWidgets.git/commitdiff
Create compressed debug report file outside of temporary directory.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 11 Aug 2009 18:16:39 +0000 (18:16 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 11 Aug 2009 18:16:39 +0000 (18:16 +0000)
Otherwise the compressed file is deleted when the temporary directory is (it
doesn't happen if temporarily files are left because an error occurred while
the report generation but perversely enough no useful information was left if
no errors happened).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/debugrpt.cpp

index 2acb3a0051cfb6d23134294281afb5d57b84f305..7a6cb7b6040d0be989a49a38974b2c24888a169e 100644 (file)
@@ -604,8 +604,14 @@ bool wxDebugReportCompress::DoProcess()
     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());
+    fn.SetExt("zip");
+
     // create the streams
-    wxFileName fn(GetDirectory(), GetReportName(), wxT("zip"));
     wxFFileOutputStream os(fn.GetFullPath(), wxT("wb"));
     wxZipOutputStream zos(os, 9);
 
@@ -621,7 +627,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;