From b7ba65ed684a663be0085ae96dca3768ebdd3325 Mon Sep 17 00:00:00 2001
From: Andy Cedilnik <andy.cedilnik@kitware.com>
Date: Mon, 2 Jan 2006 07:52:54 -0500
Subject: [PATCH] ENH: Add a way to overwrite compression extension

---
 Source/cmGeneratedFileStream.cxx | 14 +++++++++++---
 Source/cmGeneratedFileStream.h   |  8 ++++++++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx
index d0f2cc0b4f..63a0384aaf 100644
--- a/Source/cmGeneratedFileStream.cxx
+++ b/Source/cmGeneratedFileStream.cxx
@@ -107,13 +107,20 @@ void cmGeneratedFileStream::SetCompression(bool compression)
   m_Compress = compression;
 }
 
+//----------------------------------------------------------------------------
+void cmGeneratedFileStream::SetCompressionExtraExtension(bool ext)
+{
+  m_CompressExtraExtension = ext;
+}
+
 //----------------------------------------------------------------------------
 cmGeneratedFileStreamBase::cmGeneratedFileStreamBase():
   m_Name(),
   m_TempName(),
   m_CopyIfDifferent(false),
   m_Okay(false),
-  m_Compress(false)
+  m_Compress(false),
+  m_CompressExtraExtension(true)
 {
 }
 
@@ -123,7 +130,8 @@ cmGeneratedFileStreamBase::cmGeneratedFileStreamBase(const char* name):
   m_TempName(),
   m_CopyIfDifferent(false),
   m_Okay(false),
-  m_Compress(false)
+  m_Compress(false),
+  m_CompressExtraExtension(true)
 {
   this->Open(name);
 }
@@ -155,7 +163,7 @@ void cmGeneratedFileStreamBase::Open(const char* name)
 void cmGeneratedFileStreamBase::Close()
 {
   std::string resname = m_Name;
-  if ( m_Compress )
+  if ( m_CompressExtraExtension )
     {
     resname += ".gz";
     }
diff --git a/Source/cmGeneratedFileStream.h b/Source/cmGeneratedFileStream.h
index cb81d1d145..6d0637c0b2 100644
--- a/Source/cmGeneratedFileStream.h
+++ b/Source/cmGeneratedFileStream.h
@@ -66,6 +66,9 @@ protected:
 
   // Whether the destionation file is compressed
   bool m_Compress;
+
+  // Whether the destionation file is compressed
+  bool m_CompressExtraExtension;
 };
 
 /** \class cmGeneratedFileStream
@@ -131,6 +134,11 @@ public:
    */
   void SetCompression(bool compression);
 
+  /**
+   * Set whether compression has extra extension
+   */
+  void SetCompressionExtraExtension(bool ext);
+
   /**
    * Set name of the file that will hold the actual output. This method allows
    * the output file to be changed during the use of cmGeneratedFileStream.
-- 
GitLab