[Libreoffice-commits] core.git: fpicker/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Mar 20 06:49:55 UTC 2019
fpicker/source/office/iodlg.cxx | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
New commits:
commit 5788bb027b1e63e5c133e0e47d63e02021f3aee0
Author: Matteo Casalin <matteo.casalin at yahoo.com>
AuthorDate: Mon Mar 4 17:51:08 2019 +0100
Commit: Matteo Casalin <matteo.casalin at yahoo.com>
CommitDate: Wed Mar 20 07:49:28 2019 +0100
Clarify flow, reduce scope
Change-Id: I99dbde5d2b25a8cbffc027e136d29cf911d5337b
Reviewed-on: https://gerrit.libreoffice.org/69243
Tested-by: Jenkins
Reviewed-by: Matteo Casalin <matteo.casalin at yahoo.com>
diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx
index b3e5ace8c95d..7f561b56059f 100644
--- a/fpicker/source/office/iodlg.cxx
+++ b/fpicker/source/office/iodlg.cxx
@@ -168,17 +168,18 @@ namespace
void SetFsysExtension_Impl( OUString& rFile, const OUString& rExtension )
{
- const sal_Unicode* p0 = rFile.getStr();
- const sal_Unicode* p1 = p0 + rFile.getLength() - 1;
- while ( p1 >= p0 && *p1 != '.' )
- p1--;
- if ( p1 >= p0 )
- // remove old extension
- rFile = rFile.copy( 0, p1 - p0 + 1 - ( rExtension.getLength() > 0 ? 0 : 1 ) );
- else if ( !rExtension.isEmpty() )
- // no old extension
- rFile += ".";
- rFile += rExtension;
+ const sal_Int32 nDotPos{ rFile.lastIndexOf('.') };
+ if (nDotPos>=0)
+ {
+ if (!rExtension.isEmpty())
+ rFile = rFile.copy(0, nDotPos) + rExtension; // replace old extension with new (not empty) one
+ else if (nDotPos)
+ rFile = rFile.copy(0, nDotPos-1); // truncate extension (new one is empty)
+ else
+ rFile.clear(); // Filename was just an extension
+ }
+ else if (!rExtension.isEmpty())
+ rFile += "." + rExtension; // no extension was present, append new one if not empty
}
void lcl_autoUpdateFileExtension( SvtFileDialog* _pDialog, const OUString& _rLastFilterExt )
@@ -1309,14 +1310,13 @@ SvtFileDialogFilter_Impl* SvtFileDialog::FindFilter_Impl
{
SvtFileDialogFilter_Impl* pFilter = rList[ nFilter ].get();
const OUString& rType = pFilter->GetType();
- OUString aSingleType = rType;
if ( _bMultiExt )
{
sal_Int32 nIdx = 0;
while ( !pFoundFilter && nIdx != -1 )
{
- aSingleType = rType.getToken( 0, FILEDIALOG_DEF_EXTSEP, nIdx );
+ const OUString aSingleType = rType.getToken( 0, FILEDIALOG_DEF_EXTSEP, nIdx );
#ifdef UNX
if ( aSingleType == _rFilter )
#else
More information about the Libreoffice-commits
mailing list