summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleo2003-07-30 17:25:26 +0000
committerleo2003-07-30 17:25:26 +0000
commit7a0f908c5512e2e963d78361a87a0d35fd5f1a92 (patch)
tree02db7e25e973fbb774552196c0ee02ee7ed17efc
parent8019b524d8a17d313dec97f56845c3a40d4df291 (diff)
Store file names in the File class.
git-svn-id: http://svn.leocad.org/trunk@343 c7d43263-9d01-0410-8a33-9dba5d9f93d6
-rw-r--r--common/file.cpp5
-rw-r--r--common/file.h15
2 files changed, 18 insertions, 2 deletions
diff --git a/common/file.cpp b/common/file.cpp
index e57d58c..2df77f1 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -15,6 +15,7 @@
File::File ()
{
+ strcpy(FileName, "");
}
File::~File ()
@@ -399,6 +400,8 @@ int FileDisk::PutChar(int c)
bool FileDisk::Open(const char *filename, const char *mode)
{
+ strcpy(FileName, filename);
+
m_hFile = fopen(filename, mode);
m_bCloseOnDelete = true;
@@ -414,6 +417,7 @@ void FileMem::Close()
if (m_pBuffer && m_bAutoDelete)
free(m_pBuffer);
m_pBuffer = NULL;
+ strcpy(FileName, "");
}
void FileDisk::Close()
@@ -423,6 +427,7 @@ void FileDisk::Close()
m_hFile = NULL;
m_bCloseOnDelete = false;
+ strcpy(FileName, "");
}
unsigned long FileMem::Seek(long lOff, int nFrom)
diff --git a/common/file.h b/common/file.h
index 5e2678f..950a5e6 100644
--- a/common/file.h
+++ b/common/file.h
@@ -6,16 +6,18 @@
#define _FILE_H_
#include <stdio.h>
+#include <string.h>
+#include "defines.h"
class File
{
- public:
+public:
// Constructors
File();
virtual ~File();
// Implementation
- public:
+public:
virtual unsigned long GetPosition() const = 0;
virtual unsigned long Seek(long lOff, int nFrom) = 0;
virtual void SetLength(unsigned long nNewLen) = 0;
@@ -41,6 +43,15 @@ class File
virtual void Abort()=0;
virtual void Flush()=0;
virtual void Close()=0;
+
+ const char* GetFileName() const
+ { return FileName; }
+
+ void SetFileName(const char* Name)
+ { strncpy(FileName, Name, LC_MAXPATH); }
+
+protected:
+ char FileName[LC_MAXPATH];
};
class FileMem : public File