diff options
Diffstat (limited to 'source/core/StarCompression.cpp')
-rw-r--r-- | source/core/StarCompression.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/core/StarCompression.cpp b/source/core/StarCompression.cpp index 58b43ef..d99745c 100644 --- a/source/core/StarCompression.cpp +++ b/source/core/StarCompression.cpp @@ -233,4 +233,16 @@ void CompressedFile::close() { setMode(IOMode::Closed); } +IODevicePtr CompressedFile::clone() { + auto cloned = make_shared<CompressedFile>(m_filename); + cloned->setCompression(m_compression); + if (isOpen()) { + // Open with same mode + cloned->open(mode()); + // Seek to same position + cloned->seek(pos()); + } + return cloned; +} + } |