summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2019-05-19 21:08:52 +0200
committerXisco FaulĂ­ <xiscofauli@libreoffice.org>2019-06-12 12:39:47 +0200
commit27bd20cf5333a5df29286794b7384520fbc55012 (patch)
tree617959be031174b6fe55589dc0471516acc84dda /dbaccess
parent78a21c7d94f8ff391f9c470bf10f4ae3c1d90307 (diff)
tdf#125381: Manage URLs beginning with an "~" in cutPrefix (dbaccess/dsntypes)
On Windows or with other renderings than gtk3, the urls may begin with an ~ In this case, cutPrefix returns only empty string When trying to access Index management for odb files related to dBase indexes don't display because cutPrefix returns empty url in dbaccess/source/ui/dlg/detailpages.cxx line 200 198 ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : nullptr; 199 if (pTypeCollection && pUrlItem && pUrlItem->GetValue().getLength()) 200 m_sDsn = pTypeCollection->cutPrefix(pUrlItem->GetValue()); Change-Id: I47360e205ddea7b060a31da697bbe9857ad3f4c0 Reviewed-on: https://gerrit.libreoffice.org/72568 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit d34ed0008f12cfe47dd239672f1941f3c54d97fd) Reviewed-on: https://gerrit.libreoffice.org/73709 Tested-by: Jenkins Reviewed-by: Xisco FaulĂ­ <xiscofauli@libreoffice.org>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/misc/dsntypes.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/dbaccess/source/core/misc/dsntypes.cxx b/dbaccess/source/core/misc/dsntypes.cxx
index 05e64ba5a001..7332ccffa196 100644
--- a/dbaccess/source/core/misc/dsntypes.cxx
+++ b/dbaccess/source/core/misc/dsntypes.cxx
@@ -83,17 +83,20 @@ OUString ODsnTypeCollection::cutPrefix(const OUString& _sURL) const
OUString sRet;
OUString sOldPattern;
+ // on Windows or with gen rendering, the urls may begin with an ~
+ const OUString& sCleanURL = comphelper::string::stripStart(_sURL, '~');
+
for (auto const& dsnPrefix : m_aDsnPrefixes)
{
WildCard aWildCard(dsnPrefix);
- if ( sOldPattern.getLength() < dsnPrefix.getLength() && aWildCard.Matches(_sURL) )
+ if ( sOldPattern.getLength() < dsnPrefix.getLength() && aWildCard.Matches(sCleanURL) )
{
// This relies on the fact that all patterns are of the form
// foo*
// that is, the very concept of "prefix" applies.
OUString prefix(comphelper::string::stripEnd(dsnPrefix, '*'));
- OSL_ENSURE(prefix.getLength() <= _sURL.getLength(), "How can A match B when A shorter than B?");
- sRet = _sURL.copy(prefix.getLength());
+ OSL_ENSURE(prefix.getLength() <= sCleanURL.getLength(), "How can A match B when A shorter than B?");
+ sRet = sCleanURL.copy(prefix.getLength());
sOldPattern = dsnPrefix;
}
}