summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2017-10-05 06:19:56 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2017-10-05 16:02:52 +0200
commit1944e3ddc0b2247de3138d2a441cd6999e21fd9a (patch)
treeb59f213e245e151ee792ca424fd06b5a11c88857 /basic
parent81d404803f477eb71b74eb9c7a67bba6b1af95d1 (diff)
Rename and move SAL_U/W to o3tl::toU/W
Previosly (since commit 9ac98e6e3488e434bf4864ecfb13a121784f640b) it was expected to gradually remove SAL_U/W usage in Windows code by replacing with reinterpret_cast or changing to some bettertypes. But as it's useful to make use of fact that LibreOffice and Windows use compatible representation of strings, this commit puts these functions to a better-suited o3tl, and recommends that the functions be consistently used throughout Windows-specific code to reflect the compatibility and keep the casts safe. Change-Id: I2f7c65606d0e2d0c01a00f08812bb4ab7659c5f6 Reviewed-on: https://gerrit.libreoffice.org/43150 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/cppunit/test_vba.cxx3
-rw-r--r--basic/source/runtime/dllmgr-x64.cxx3
-rw-r--r--basic/source/runtime/dllmgr-x86.cxx3
-rw-r--r--basic/source/runtime/methods.cxx5
-rw-r--r--basic/source/sbx/sbxdec.cxx69
5 files changed, 40 insertions, 43 deletions
diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx
index 39efcb7d5805..0289f641f771 100644
--- a/basic/qa/cppunit/test_vba.cxx
+++ b/basic/qa/cppunit/test_vba.cxx
@@ -9,6 +9,7 @@
#include "basictest.hxx"
#include <comphelper/processfactory.hxx>
#include <unotools/syslocaleoptions.hxx>
+#include <o3tl/char16_t2wchar_t.hxx>
#ifdef _WIN32
#include <string.h>
@@ -233,7 +234,7 @@ void VBATest::testMiscOLEStuff()
sPath = sPath.replaceAll( "/", "\\" );
aArgs[ 0 ] <<= sPath;
- aArgs[ 1 ] <<= OUString(SAL_U(pODBCDriverName));
+ aArgs[ 1 ] <<= OUString(o3tl::toU(pODBCDriverName));
for ( sal_uInt32 i=0; i<SAL_N_ELEMENTS( macroSource ); ++i )
{
diff --git a/basic/source/runtime/dllmgr-x64.cxx b/basic/source/runtime/dllmgr-x64.cxx
index fdd54b129da8..96aa4fcbdd78 100644
--- a/basic/source/runtime/dllmgr-x64.cxx
+++ b/basic/source/runtime/dllmgr-x64.cxx
@@ -37,6 +37,7 @@
#include <rtl/string.hxx>
#include <rtl/ustring.hxx>
#include <salhelper/simplereferenceobject.hxx>
+#include <o3tl/char16_t2wchar_t.hxx>
#undef max
@@ -734,7 +735,7 @@ Dll * SbiDllMgr::Impl::getDll(OUString const & name) {
Dlls::iterator i(dlls.find(name));
if (i == dlls.end()) {
i = dlls.emplace(name, new Dll).first;
- HMODULE h = LoadLibraryW(SAL_W(name.getStr()));
+ HMODULE h = LoadLibraryW(o3tl::toW(name.getStr()));
if (h == nullptr) {
dlls.erase(i);
return nullptr;
diff --git a/basic/source/runtime/dllmgr-x86.cxx b/basic/source/runtime/dllmgr-x86.cxx
index ff3e80549e71..576e3da1b736 100644
--- a/basic/source/runtime/dllmgr-x86.cxx
+++ b/basic/source/runtime/dllmgr-x86.cxx
@@ -37,6 +37,7 @@
#include <rtl/string.hxx>
#include <rtl/ustring.hxx>
#include <salhelper/simplereferenceobject.hxx>
+#include <o3tl/char16_t2wchar_t.hxx>
#undef max
@@ -688,7 +689,7 @@ Dll * SbiDllMgr::Impl::getDll(OUString const & name) {
Dlls::iterator i(dlls.find(name));
if (i == dlls.end()) {
i = dlls.emplace(name, new Dll).first;
- HMODULE h = LoadLibraryW(SAL_W(name.getStr()));
+ HMODULE h = LoadLibraryW(o3tl::toW(name.getStr()));
if (h == 0) {
dlls.erase(i);
return 0;
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 748675bfd272..377cb27f13a9 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -61,6 +61,7 @@
#include <memory>
#include <random>
#include <o3tl/make_unique.hxx>
+#include <o3tl/char16_t2wchar_t.hxx>
using namespace comphelper;
using namespace osl;
@@ -387,7 +388,7 @@ void SbRtl_CurDir(StarBASIC * pBasic, SbxArray & rPar, bool bWrite)
wchar_t pBuffer[ _MAX_PATH ];
if ( _wgetdcwd( nCurDir, pBuffer, _MAX_PATH ) != nullptr )
{
- rPar.Get(0)->PutString( SAL_U(pBuffer) );
+ rPar.Get(0)->PutString( o3tl::toU(pBuffer) );
}
else
{
@@ -2957,7 +2958,7 @@ void SbRtl_GetAttr(StarBASIC * pBasic, SbxArray & rPar, bool bWrite)
OUString aPathURL = getFullPath( rPar.Get(1)->GetOUString() );
OUString aPath;
FileBase::getSystemPathFromFileURL( aPathURL, aPath );
- DWORD nRealFlags = GetFileAttributesW (SAL_W(aPath.getStr()));
+ DWORD nRealFlags = GetFileAttributesW (o3tl::toW(aPath.getStr()));
if (nRealFlags != 0xffffffff)
{
if (nRealFlags == FILE_ATTRIBUTE_NORMAL)
diff --git a/basic/source/sbx/sbxdec.cxx b/basic/source/sbx/sbxdec.cxx
index f546434df434..8356d36cab77 100644
--- a/basic/source/sbx/sbxdec.cxx
+++ b/basic/source/sbx/sbxdec.cxx
@@ -18,6 +18,7 @@
*/
#include <vcl/errcode.hxx>
+#include <o3tl/char16_t2wchar_t.hxx>
#include <basic/sbx.hxx>
#include <basic/sberrors.hxx>
@@ -213,25 +214,21 @@ bool SbxDecimal::setString( OUString* pOUString )
pBuffer[nLen] = 0;
const sal_Unicode* pSrc = pOUString->getStr();
- int i;
- for( i = 0 ; i < nLen ; ++i )
- pBuffer[i] = pSrc[i];
-
- sal_Unicode c;
- i = 0;
- while( (c = pBuffer[i]) != 0 )
+ for( int i = 0 ; i < nLen ; ++i )
{
- if( c == cDecimalSep )
- pBuffer[i] = '.';
- else if( c == cThousandSep )
- pBuffer[i] = ',';
- i++;
+ sal_Unicode c = pSrc[i];
+ if (c == cDecimalSep)
+ c = '.';
+ else if (c == cThousandSep)
+ c = ',';
+
+ pBuffer[i] = c;
}
- hResult = VarDecFromStr( SAL_W(pBuffer.get()), nLANGID, 0, &maDec );
+ hResult = VarDecFromStr( o3tl::toW(pBuffer.get()), nLANGID, 0, &maDec );
}
else
{
- hResult = VarDecFromStr( SAL_W(pOUString->getStr()), nLANGID, 0, &maDec );
+ hResult = VarDecFromStr( o3tl::toW(pOUString->getStr()), nLANGID, 0, &maDec );
}
bRet = ( hResult == S_OK );
return bRet;
@@ -349,35 +346,31 @@ void SbxDecimal::getString( OUString& rString )
#ifdef _WIN32
static LCID nLANGID = MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US );
- OLECHAR sz[100];
- BSTR aBStr = SysAllocString( sz );
- if( aBStr != nullptr )
+ BSTR pBStr = nullptr;
+ // VarBstrFromDec allocates new BSTR that needs to be released with SysFreeString
+ HRESULT hResult = VarBstrFromDec( &maDec, nLANGID, 0, &pBStr );
+ if( hResult == S_OK )
{
- HRESULT hResult = VarBstrFromDec( &maDec, nLANGID, 0, &aBStr );
- if( hResult == S_OK )
- {
- // Convert delimiter
- sal_Unicode cDecimalSep;
- sal_Unicode cThousandSep;
- ImpGetIntntlSep( cDecimalSep, cThousandSep );
+ // Convert delimiter
+ sal_Unicode cDecimalSep;
+ sal_Unicode cThousandSep;
+ ImpGetIntntlSep( cDecimalSep, cThousandSep );
- if( cDecimalSep != '.' || cThousandSep != ',' )
+ if( cDecimalSep != '.' || cThousandSep != ',' )
+ {
+ sal_Unicode c;
+ int i = 0;
+ while( (c = pBStr[i]) != 0 )
{
- sal_Unicode c;
- int i = 0;
- while( (c = aBStr[i]) != 0 )
- {
- if( c == '.' )
- aBStr[i] = cDecimalSep;
- else if( c == ',' )
- aBStr[i] = cThousandSep;
- i++;
- }
+ if( c == '.' )
+ pBStr[i] = cDecimalSep;
+ else if( c == ',' )
+ pBStr[i] = cThousandSep;
+ i++;
}
- rString = SAL_U(aBStr);
}
-
- SysFreeString( aBStr );
+ rString = o3tl::toU( pBStr );
+ SysFreeString( pBStr );
}
#else
(void)rString;