diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-05-30 09:13:44 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-05-30 11:37:14 +0200 |
commit | 47bbe217607374ccd3a76f1ef6d82e43efd31ba1 (patch) | |
tree | 351df5ad5ec93e156804d9b6bb14665923fc9087 /connectivity | |
parent | 5ae5fb482f37176f1746cca4ade5c87b34b135a7 (diff) |
untwist the logic in convertName2SQLName
Change-Id: Ib3cfa3a8a2bdc691e3f6db25672a37c8ede1ffd5
Reviewed-on: https://gerrit.libreoffice.org/38180
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/commontools/CommonTools.cxx | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/connectivity/source/commontools/CommonTools.cxx b/connectivity/source/commontools/CommonTools.cxx index 3a9f237ce824..82e497b2e65b 100644 --- a/connectivity/source/commontools/CommonTools.cxx +++ b/connectivity/source/commontools/CommonTools.cxx @@ -211,21 +211,19 @@ OUString convertName2SQLName(const OUString& rName,const OUString& _rSpecials) { if(isValidSQLName(rName,_rSpecials)) return rName; - OUString aNewName(rName); + const sal_Unicode* pStr = rName.getStr(); + // if not valid + if (*pStr >= 128 || rtl::isAsciiDigit(*pStr)) + return OUString(); + + OUStringBuffer aNewName(rName); sal_Int32 nLength = rName.getLength(); - bool bValid(*pStr < 128 && !rtl::isAsciiDigit(*pStr)); - for (sal_Int32 i=0; bValid && i < nLength; ++pStr,++i ) + for (sal_Int32 i=0; i < nLength; ++pStr,++i ) if(!isCharOk(*pStr,_rSpecials)) - { - aNewName = aNewName.replace(*pStr,'_'); - pStr = aNewName.getStr() + i; - } - - if ( !bValid ) - aNewName.clear(); + aNewName[i] = '_'; - return aNewName; + return aNewName.makeStringAndClear(); } OUString quoteName(const OUString& _rQuote, const OUString& _rName) |