diff options
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/doc/objstor.cxx | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index 5dfcd6829df5..901432384ac2 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -1089,6 +1089,15 @@ private: }; } +static OUString lcl_strip_template(const OUString &aString) +{ + static const OUString sPostfix("_template"); + OUString sRes(aString); + if (sRes.endsWith(sPostfix)) + sRes = sRes.copy(0, sRes.getLength() - sPostfix.getLength()); + return sRes; +} + bool SfxObjectShell::SaveTo_Impl ( SfxMedium &rMedium, // Medium, in which it will be stored @@ -1168,10 +1177,8 @@ bool SfxObjectShell::SaveTo_Impl // preserve only if the same filter has been used // for templates, strip the _template from the filter name for comparison - OUString aMediumFilter = pMedium->GetFilter()->GetFilterName(); - if (aMediumFilter.endsWith("_template")) - aMediumFilter = aMediumFilter.copy(0, aMediumFilter.getLength() - 9); - bTryToPreserveScriptSignature = pMedium->GetFilter() && pFilter && aMediumFilter == pFilter->GetFilterName(); + const OUString aMediumFilter = lcl_strip_template(pMedium->GetFilter()->GetFilterName()); + bTryToPreserveScriptSignature = pMedium->GetFilter() && pFilter && aMediumFilter == lcl_strip_template(pFilter->GetFilterName()); // signatures were specified in ODF 1.2 but were used since much longer. // LO will still correctly validate an old style signature on an ODF 1.2 |