Browse Source

BUG: Rearranged cable config file open to do open in construction of m_OutputFile. Fixes problem on SGI with opening the file.

Brad King 25 years ago
parent
commit
2d26d0be68
2 changed files with 15 additions and 10 deletions
  1. 8 8
      Source/cmCableData.cxx
  2. 7 2
      Source/cmCableData.h

+ 8 - 8
Source/cmCableData.cxx

@@ -28,9 +28,11 @@ cmCableData::cmCableData(const cmCableCommand* owner,
   m_Indentation(0),
   m_Package(NULL),
   m_PackageNamespaceDepth(0),
-  m_PackageClassIndex(-1)
+  m_PackageClassIndex(-1),
+  m_OutputFileName(configurationFile),
+  m_OutputFile(m_OutputFileName.c_str())
 {
-  this->OpenOutputFile(configurationFile);
+  this->InitializeOutputFile();
 }
 
 
@@ -48,20 +50,18 @@ cmCableData::~cmCableData()
 
 
 /**
- * Open the configuration output file with the given name.  This
- * writes the configuration header.
+ * Write the configuration header to the output file.
  */
-void cmCableData::OpenOutputFile(const std::string& name)
+void cmCableData::InitializeOutputFile()
 {
-  m_OutputFile.open(name.c_str());
-  
   if(m_OutputFile)
     {
     this->WriteConfigurationHeader();
     }
   else
     {
-    cmSystemTools::Error("Unable to open CABLE config file: ", name.c_str());
+    cmSystemTools::Error("Unable to open CABLE config file: ",
+                         m_OutputFileName.c_str());
     }
 }
 

+ 7 - 2
Source/cmCableData.h

@@ -41,7 +41,7 @@ public:
   std::ostream& GetOutputStream()
     { return m_OutputFile; }
 
-  void OpenOutputFile(const std::string&);
+  void InitializeOutputFile();
   void CloseOutputFile();
   
   void WriteConfigurationHeader();
@@ -85,11 +85,16 @@ private:
    */
   Indentation m_Indentation;
   
+  /**
+   * The name of the output file opened as m_OutputFile.
+   */
+  std::string m_OutputFileName;
+  
   /**
    * The output file to which the configuration is written.
    */
   std::ofstream m_OutputFile;
-  
+
   /**
    * The stack of namespaces.
    */