tdf#147132 Flatten Basic function implementations.
Change-Id: I5e5d01c43b39f68f38290ce04b26730af362b43e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180282 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
@@ -785,9 +785,8 @@ void SbRtl_InStr(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
const sal_uInt32 nArgCount = rPar.Count() - 1;
|
||||
if ( nArgCount < 2 )
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
else
|
||||
{
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
|
||||
sal_Int32 nStartPos = 1;
|
||||
sal_Int32 nFirstStringPos = 1;
|
||||
|
||||
@@ -857,7 +856,6 @@ void SbRtl_InStr(StarBASIC *, SbxArray & rPar, bool)
|
||||
}
|
||||
}
|
||||
rPar.Get(0)->PutLong(nPos);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1041,10 +1039,8 @@ void SbRtl_Mid(StarBASIC *, SbxArray & rPar, bool bWrite)
|
||||
int nArgCount = rPar.Count() - 1;
|
||||
if ( nArgCount < 2 )
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
// #23178: replicate the functionality of Mid$ as a command
|
||||
// by adding a replacement-string as a fourth parameter.
|
||||
// In contrast to the original the third parameter (nLength)
|
||||
@@ -1057,10 +1053,9 @@ void SbRtl_Mid(StarBASIC *, SbxArray & rPar, bool bWrite)
|
||||
sal_Int32 nStartPos = rPar.Get(2)->GetLong();
|
||||
if ( nStartPos < 1 )
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
nStartPos--;
|
||||
sal_Int32 nLen = -1;
|
||||
bool bWriteNoLenParam = false;
|
||||
@@ -1135,8 +1130,6 @@ void SbRtl_Mid(StarBASIC *, SbxArray & rPar, bool bWrite)
|
||||
}
|
||||
rPar.Get(0)->PutString(aResultStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_Oct(StarBASIC *, SbxArray & rPar, bool)
|
||||
@@ -1313,45 +1306,37 @@ void SbRtl_Space(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
const sal_Int32 nCount = rPar.Get(1)->GetLong();
|
||||
OUStringBuffer aBuf(nCount);
|
||||
string::padToLength(aBuf, nCount, ' ');
|
||||
rPar.Get(0)->PutString(aBuf.makeStringAndClear());
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_Sqr(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
double aDouble = rPar.Get(1)->GetDouble();
|
||||
if ( aDouble >= 0 )
|
||||
if ( aDouble < 0 )
|
||||
{
|
||||
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
}
|
||||
rPar.Get(0)->PutDouble(sqrt(aDouble));
|
||||
}
|
||||
else
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
OUString aStr;
|
||||
OUString aStrNew(u""_ustr);
|
||||
SbxVariableRef pArg = rPar.Get(1);
|
||||
@@ -1402,7 +1387,6 @@ void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
|
||||
aStrNew = aStr;
|
||||
}
|
||||
rPar.Get(0)->PutString(aStrNew);
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_StrComp(StarBASIC *, SbxArray & rPar, bool)
|
||||
@@ -1474,10 +1458,9 @@ void SbRtl_String(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
sal_Unicode aFiller;
|
||||
sal_Int32 lCount = rPar.Get(1)->GetLong();
|
||||
if( lCount < 0 || lCount > 0xffff )
|
||||
@@ -1496,48 +1479,43 @@ void SbRtl_String(StarBASIC *, SbxArray & rPar, bool)
|
||||
OUStringBuffer aBuf(lCount);
|
||||
string::padToLength(aBuf, lCount, aFiller);
|
||||
rPar.Get(0)->PutString(aBuf.makeStringAndClear());
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_Tab(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
else
|
||||
{
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
|
||||
const sal_Int32 nCount = std::max(rPar.Get(1)->GetLong(), sal_Int32(0));
|
||||
OUStringBuffer aStr(nCount);
|
||||
comphelper::string::padToLength(aStr, nCount, '\t');
|
||||
rPar.Get(0)->PutString(aStr.makeStringAndClear());
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_Tan(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
SbxVariableRef pArg = rPar.Get(1);
|
||||
rPar.Get(0)->PutDouble(tan(pArg->GetDouble()));
|
||||
}
|
||||
}
|
||||
|
||||
void SbRtl_UCase(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
const CharClass& rCharClass = GetCharClass();
|
||||
OUString aStr(rPar.Get(1)->GetOUString());
|
||||
aStr = rCharClass.uppercase( aStr );
|
||||
rPar.Get(0)->PutString(aStr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1545,10 +1523,8 @@ void SbRtl_Val(StarBASIC *, SbxArray & rPar, bool)
|
||||
{
|
||||
if (rPar.Count() < 2)
|
||||
{
|
||||
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
|
||||
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
double nResult = 0.0;
|
||||
char* pEndPtr;
|
||||
|
||||
@@ -1593,7 +1569,6 @@ void SbRtl_Val(StarBASIC *, SbxArray & rPar, bool)
|
||||
}
|
||||
|
||||
rPar.Get(0)->PutDouble(nResult);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user