diff options
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/misc/msodocumentlockfile.cxx | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/svl/source/misc/msodocumentlockfile.cxx b/svl/source/misc/msodocumentlockfile.cxx index 432fb6e07ecd..aa9f651fae16 100644 --- a/svl/source/misc/msodocumentlockfile.cxx +++ b/svl/source/misc/msodocumentlockfile.cxx @@ -59,28 +59,21 @@ MSODocumentLockFile::~MSODocumentLockFile() {} OUString MSODocumentLockFile::GenerateURL(const OUString& aOrigURL, const OUString& aPrefix) { - INetURLObject aDocURL = LockFileCommon::ResolveLinks(INetURLObject(aOrigURL)); - OUString aURL = aDocURL.GetPartBeforeLastName(); - aURL += aPrefix; + INetURLObject aURL = LockFileCommon::ResolveLinks(INetURLObject(aOrigURL)); // For text documents MSO Word cuts some of the first characters of the file name - OUString sFileName = aDocURL.GetName(); + OUString sFileName = aURL.GetName(); if (isWordFormat(aOrigURL)) { - sal_Int32 nFileNameLength - = aDocURL.GetName().getLength() - aDocURL.GetFileExtension().getLength() - 1; + const sal_Int32 nFileNameLength + = sFileName.getLength() - aURL.GetFileExtension().getLength() - 1; if (nFileNameLength >= 8) - aURL += sFileName.copy(2); + sFileName = sFileName.copy(2); else if (nFileNameLength == 7) - aURL += sFileName.copy(1); - else - aURL += sFileName; - } - else - { - aURL += sFileName; + sFileName = sFileName.copy(1); } - return INetURLObject(aURL).GetMainURL(INetURLObject::DecodeMechanism::NONE); + aURL.SetName(aPrefix + sFileName); + return aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE); } void MSODocumentLockFile::WriteEntryToStream( |