summaryrefslogtreecommitdiff
path: root/package/source/zippackage/ZipPackageFolder.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'package/source/zippackage/ZipPackageFolder.cxx')
-rw-r--r--package/source/zippackage/ZipPackageFolder.cxx16
1 files changed, 13 insertions, 3 deletions
diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx
index bc64d901a285..a69e9c58bd92 100644
--- a/package/source/zippackage/ZipPackageFolder.cxx
+++ b/package/source/zippackage/ZipPackageFolder.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ZipPackageFolder.cxx,v $
*
- * $Revision: 1.63 $
+ * $Revision: 1.64 $
*
- * last change: $Author: hr $ $Date: 2004-02-02 19:21:32 $
+ * last change: $Author: hr $ $Date: 2004-02-03 18:24:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -120,8 +120,11 @@ using vos::ORef;
Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > ();
-ZipPackageFolder::ZipPackageFolder ()
+ZipPackageFolder::ZipPackageFolder ( const Reference< XMultiServiceFactory >& xFactory )
+: m_xFactory( xFactory )
{
+ OSL_ENSURE( m_xFactory.is(), "No factory is provided to the package folder!" );
+
SetFolder ( sal_True );
aEntry.nVersion = -1;
aEntry.nFlag = 0;
@@ -540,6 +543,13 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
pStream->SetPackageMember ( sal_True );
}
+ // Remove hacky bit from entry flags
+ if ( pTempEntry->nFlag & ( 1 << 4 ) )
+ {
+ pTempEntry->nFlag &= ~( 1 << 4 );
+ pTempEntry->nMethod = STORED;
+ }
+
// Then copy it back afterwards...
ZipPackageFolder::copyZipEntry ( pStream->aEntry, *pTempEntry );
// all the dangerous stuff has passed, so we can release pTempEntry