summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2018-02-06 17:42:36 -0500
committerAshod Nakashian <ashnakash@gmail.com>2018-02-14 01:02:33 +0100
commit00492aff753510bcb4fab81c5258584f3cda2d17 (patch)
tree76c9e5746c255797a8a9427f30f97e3080157931 /package
parenta097077e1f3d433ab7cbc84c408c96f9adce1534 (diff)
ofopxml: always generate default application/xml
MS Office always sets the application/xml entry but LO doesn't preserve unknown entries. Since this is a standard and always-set entry LO should always stamp it as well. Change-Id: I28b47634f2aa1fec233c9184deb65fd43f2f3ae8 Reviewed-on: https://gerrit.libreoffice.org/48724 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'package')
-rw-r--r--package/source/zippackage/ZipPackage.cxx21
1 files changed, 14 insertions, 7 deletions
diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
index 2a918c8df630..aa5ae86b27d8 100644
--- a/package/source/zippackage/ZipPackage.cxx
+++ b/package/source/zippackage/ZipPackage.cxx
@@ -1088,9 +1088,14 @@ void ZipPackage::WriteContentTypes( ZipOutputStream& aZipOut, const vector< uno:
// Convert vector into a uno::Sequence
// TODO/LATER: use Default entries in future
- uno::Sequence< beans::StringPair > aDefaultsSequence;
- uno::Sequence< beans::StringPair > aOverridesSequence( aManList.size() );
- sal_Int32 nSeqLength = 0;
+ uno::Sequence< beans::StringPair > aDefaultsSequence(aManList.size());
+ // Add at least the application/xml default entry.
+ aDefaultsSequence[0].First = "xml";
+ aDefaultsSequence[0].Second= "application/xml";
+ sal_Int32 nDefSeqLength = 1;
+
+ uno::Sequence< beans::StringPair > aOverridesSequence(aManList.size());
+ sal_Int32 nOverSeqLength = 0;
for ( vector< uno::Sequence< beans::PropertyValue > >::const_iterator aIter = aManList.begin(),
aEnd = aManList.end();
aIter != aEnd;
@@ -1104,13 +1109,15 @@ void ZipPackage::WriteContentTypes( ZipOutputStream& aZipOut, const vector< uno:
if ( !aType.isEmpty() )
{
// only nonempty type makes sense here
- nSeqLength++;
( *aIter )[PKG_MNFST_FULLPATH].Value >>= aPath;
- aOverridesSequence[nSeqLength-1].First = "/" + aPath;
- aOverridesSequence[nSeqLength-1].Second = aType;
+ //FIXME: For now we have no way of deferentiating defaults from others.
+ aOverridesSequence[nOverSeqLength].First = "/" + aPath;
+ aOverridesSequence[nOverSeqLength].Second = aType;
+ ++nOverSeqLength;
}
}
- aOverridesSequence.realloc( nSeqLength );
+ aOverridesSequence.realloc(nOverSeqLength);
+ aDefaultsSequence.realloc(nDefSeqLength);
::comphelper::OFOPXMLHelper::WriteContentSequence(
xConTypeOutStream, aDefaultsSequence, aOverridesSequence, m_xContext );