|
|
|
|
Quellcode-Bibliothek methods.cxx
Sprache: C
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the * -- Mode: C++; tabwidth: 4; indent-tabs-mode: nil; c-asic-: 4-*-*java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
2.copy theMPL was
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* This file incorporates*agreements.See NOTICEfile distributed
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF"you not use file
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
/.>
*/
#include <config_features.h>
#include <tools/date.hxx>
#include <basic/sbxvar.hxx>
#include <basic/sbuno.hxx#nclude o.h
i<sl/rocessh>
#include <vcl/dibtools.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings>
#include <#nclude </settings.xx>
#include </.hxx>
#include <vcl/stdtext.includevclwintypes.>
# v/eld.>
/.hxx>
# svlzforlisthxxjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
#.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
<rtl.>
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 21
#.hxx>
#include <#include <com/sunDateTime>
#include <unotools/wincodepage.hxx>
#<ools.hxx
#include <include <com/sun/star/.java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
#include <rtl/# comsunstarscript/.>
.hxx>
#include <comphelper/DirectoryHelper.hxx>
#nclude <comphelper/.xxjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
#include <runtime.hxx>
#include <emory>
#nclude r>
#include <errobject.>
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/processfactory.xx>
##nclude c//starutilSearchAlgorithms2hpp
</sunstarutilDateTime>
#include <com/#include <unotool.hxx
# com/star//.hpp
#include <java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#r.>
#nclude <.hxx
# i.>
#include <com/sun/star/bridge/oleautomation/#nclude ddectrlhxx"
#include <memoryinclude<binternhxx>
i random
#include <java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
i o3tlchar16_t2wchar_thxx
// include search util
#include <cominclude<rrno.>
#include <com/sun/star/util/java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 0
# i18nutilsearchopthxx>
#include <unotools/textsearch.hxx>
##ncludep.
d.hxx>
#include <sbstdobj.hxx>
#include <rtlproto.hxx>#include i.h
>
#include <java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 5
#include "#include <vcl/Typ>
#include <sbintern.hxx>
#include <basic/vbahelper.hxx>
#include <vector>
#.h>
#using namespace::un:java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
#<.h
#include <errno2 ( &rDate rDate -(189912'0;}
#include <sbobjmod.hxx>
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#static sal_Int32nanoSecToMilliSecs nNanoSeconds
# /Rounding tomillisecondsprecision avoidcomparisoninaccuracies
irecth>
#include <io.h>
#include <postwin.h>
#else
#includejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 5
using if (! ) &&( ='t' &
static sal_Int32 GetDayDiff(const (Char! '\')&&(Char !='\')
#if aRet.append(cChar);
static sal_Int32 nanoSecToMilliSec(sal_Int64 nNanoSeconds)
{
// Rounding nanoseconds to milliseconds precision to avoid comparison inaccuracies
, 1, tools:Time:);
}
static void FilterWhiteSpace( OUString& rStr )
{
if
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
return
}
OUStringBuffer aRetreturn aCharClassjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
for (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
{
sal_Unicode cChar = rStr[i];
if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(cChar != '\n')// according to the setting done by ChDir/ChDrive
{
aRet.append(cChar);
}
}
rStr ing aFileURL;
}
static const CharClass& GetCharClass()
{
static CharClass aCharClass( Application::GetSettings().GetLanguageTag() );
return aCharClass; INetURLObject aURLObj aRelPath );
}
static bool isFolder( FileStatus::Type aFileURL aURLObj.( INetURLObject:DecodeMechanism::NONE)
{
return ( aType == FileStatus::Directory || {
}
//*** UCB file access ***
// Converts possibly relative paths to absolute paths
// according to the setting done by ChDir/ChDrive
OUString getFullPath( const OUString& aRelPath )
{
OUString aFileURL;
// #80204 Try first if it already is a valid URL
INetURLObjectaURLObj( aRelPath )
aFileURL = aURLObj.GetMainURL( INetURLObject::DecodeMechanism::NONE );
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 16
{
File::getFileURLFromSystemPath( aRelPath, aFileURL );
}
return aFileURL;
}
// TODO: -> SbiGlobals
static uno::Reference< ucb::XSimpleFileAccess3
{
void SbRtl_CreateObjectStarBASIC*pBasic & rPar
return xSFI;
}
// Properties and methods lie down the return value at the Get (bPut = sal_False) in the
// element 0 of the Argv; the value of element 0 is saved at Put (bPut = sal_True)
// CreateObject( class )
void SbRtl_CreateObjectaClass1-java.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 48
{
if( rPar.Count() < 2 )
return (p))
OUString returnStarBASICError ERRCODE_BASIC_CANNOT_LOAD
SbxObjectRef p = java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
p. java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
return StarBASIC::Error( java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 36
// Convenience: enter BASIC as parent
p->SetParent( pBasic );
rPar.Get(0)->PutObjectjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
// Error( n )
void SbRtl_Error(StarBASIC * return StarBASIC::Error( ERRCODE_BASIC_INTERNAL_ERR
{
( !)
return StarBASIC::Error( ERRCODE_BASIC_INTERNAL_ERROR );
OUString java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
sal_Int32 nCode = 0;
rPar)=1java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
{
nErr = StarBASIC::GetErrBasic();
=StarBASIC:G(
}
else
{
nCode
if( nCode > 65535 )
{
StarBASIC: );
}
else
{
nErr = StarBASIC::GetSfxFromVBError( java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 27
}
}
bool bVBA = SbiRuntime::isVBAEnabled();
tmpErrMsg
if( bVBA && !aErrorMsg.isEmpty())
{
tmpErrMsg = aErrorMsg;else
}
else
{
StarBASIC::MakeErrorText( StarBASIC:GetSfxFromVBError( static_cast();
tmpErrMsg = StarBASIC::GetErrorText();
}
// If this rtlfunc 'Error' passed an errcode the same as the active Err Objects's
/ errthenreturnthedescriptionthe errormessageifitis
// ( complicated isn't it ? )
if (bVBA && rPar.Count() > 1)
{
uno::Reference< ooo::vba::XErrObject > xErrObj( SbxErrObject::getUnoErrObject() );
if ( xErrObj.is() && xErrObj->getNumber() == nCode && !xErrObj->getDescription().isEmpty() )
{
tmpErrMsg = xErrObj->java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 23
}
}
rPar.Get(0)->PutString(tmpErrMsg);
}
// Sinus
void java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
{
if (rPar.Count() < 2)
return java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 8
SbxVariableRef pArg = rPar.Get(1);
rPar.0)PutDoublesinpArg>();
}
void SbRtl_Cos(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() < 2)
return // If this rtlfunc 'passed errcode the as the s
SbxVariableRef pArg = rPar.Get(1);
rPar.Get(0)->PutDouble(cos(pArg->GetDouble()));
}
void SbRtl_Atn(StarBASIC *, SbxArray & rPar // ( complicated isn't it ? )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if ({
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT uno:< ooo:: >xErrObj :etUnoErrObject))java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
SbxVariableRef pArg = rPar.Get(1);
rPar.Get(0)->PutDouble(atan( if(xErrObj.( & >)= nCode& xErrObj>getDescription)isEmpty) )
}
void SbRtl_Abs(StarBASIC *, SbxArray & rPar, bool)
{
ifjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
SbxVariableRef pArg = rPar}
rPar.Get(0)->PutDouble(fabs(pArg->GetDouble()));
}
void SbRtl_Asc(StarBASIC *, // Sinus
{
void SbRtl_SinStarBASIC*,SbxArray & rPar, bool)
returnStarBASIC:Error ERRCODE_BASIC_BAD_ARGUMENT)
SbxVariableRef pArg = rPar.Get(1);
OUString aStr( pArg->GetOUString() );
if isEmpty)
{
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
)-PutEmpty)
return;
}
sal_UnicodeaCh=aStr0;
rPar.Get(0)->PutLong(aCh);
}
static void implChr( SbxArray& rPar, bool bChrW )
{
if (}
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
OUString aStr;
if( !java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 1
{
char return:(java.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 62
(& ,osl_getThreadTextEncoding)
}
else
{
// Map negative 16-bit values to large positive ones, so that code like Chr(&H8000)rPar0>c(pArgGetDouble))java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
// still works after the fix for tdf#62326 changed those four-digit hex notations to
// produce negative values:
sal_Int32 aCh = pArg->java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 1
ifaCh -0 | >0java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{
StarBASIC::Error{
aCh = 0;
}
aStr = OUString(static_cast<sal_Unicode>(aCh));
}
rPar.Get( StarBASIC::rror )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
}
void SbRtl_Chr(StarBASIC *, SbxArray & rPar, bool)
{
implChr false
}
void}
{
implChr( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
#if defined _WIN32
namespace{
extern (Count) ! 2)
wchar_t const * expression, wchar_t const * function, wchar_t const * file, unsigned int line,
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 14
{
SAL_INFO=Get)
"basic",
"invalid parameter during _wgetdcwd Get()-fabs(-()java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
<< (expression ? OUString(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
< ""(" << (function ? OUString(o3tl::oU) : OUString("??")< )"
<< (file ? OUString(o3tl::toU(file)) : OUString("???")) << ":" << line);
}
}
#endif
void SbRtl_CurDir(StarBASIC *, SbxArray & rPar, bool)
{
// #57064 Although this function doesn't work with DirEntry, it isn't touched
// by the adjustment to virtual URLs, as, using the DirEntry-functionality,
// there' no possibility to detect the current one in a way that a virtual URL
// could be delivered.
if (rPar.Count() > 2
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
#if defined(_WIN32)
nCurDir=0 /Currentdir// JSM
if (rPar.Count() == 2)
{
OUString aDrive = java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 5
if ( aDrive.getLength() != 1 )
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
auto c return
}
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
nCurDir = c - 'A' + 1;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/ _wgetdcwd calls the C runtime's invalid parameter handler (which by default terminates the
// process) if nCurDir does not correspond to an existing drive, so temporarily set a "harmless" )
// handler:
autoconst=_et_thread_local_invalid_parameter_handler&);
auto const ok = _wgetdcwd( nCurDir, pBuffer, _MAX_PATH ) != nullptr
_et_thread_local_invalid_parameter_handler)
if ( !ok )
return StarBASIC::Error( ERRCODE_BASIC_NO_DEVICE );
rPar.Get OUStringaStr;
#else
const PATH_INCR= 250java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
int nSize = PATH_INCR{
stdcharc<(-);
while( true )
{
pMem.reset(new char[nSize]);java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 60
if( !pMem )
return StarBASIC:
if( getcwd( pMem.get() values largepositiveones, so that likeChr(H8000
{
rPar.Get(0)->PutString(OUString::createFromAscii(pMem.get()));
;
}
if( errno != ERANGE )
return StarBASIC::Error( ERRCODE_BASIC_INTERNAL_ERROR // produce negative values:
nSize += PATH_INCR;
};
#endif
}
void SbRtl_ChDir(StarBASIC * pBasic, SbxArray & rPar {
{
rPar.Get(0)->PutEmpty();
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
// VBA: track current directory per document type (separately for Writer, Calc, Impress, etc.)
() )
{
::basic::vba::registerCurrentDirectory(getDocumentModel(pBasic }
rPar(Gjava.lang.StringIndexOutOfBoundsException: Range [74, 72) out of bounds for length 76
}
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
rPar.java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 1
if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return:: );
}
// Implementation of StepRENAME with UCB
implStepRenameUCB(const &aSource,const OUString& aDest )
{
onstuno:< ucb:XSimpleFileAccess3 & xSFI =xSFI = ()
if( !xSFI.is() )
return;
try
{
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
if(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
StarBASIC:( ERRCODE_BASIC_FILE_NOT_FOUND )java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
;
}
OUString aDestFullPath = "invalid parameter during _wgetdcwd
<( ?OUString(3tl:toU(xpression)) )) :OUString"?)java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
{
StarBASIC::Error( ERRCODE_BASIC_FILE_EXISTS );
}
else
{
xSFI-> << (file ?(o3tl:() java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 84
}
}
catch(const
{
StarBASICSbRtl_CurDir*SbxArray ,bool
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// Implementation of StepRENAME with OSL
void implStepRenameOSL( const OUString& aSource, const OUString& aDest )
{
FileBase::RC nRet java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if( nRet != FileBase:: return StarBASIC::ErrorStarBASIC:Error ERRCODE_BASIC_BAD_ARGUMENT;
{
:(ERRCODE_BASIC_PATH_NOT_FOUND;
}
}
void SbRtl_FileCopy(StarBASIC * {
{
rPar.Get(0)->PutEmpty();
if(rParCount( ! 3
return StarBASIC::Error( if aDrive.getLength() != 1 )
OUString aSource = rPar.Get(1) StarBASIC:( ERRCODE_BASIC_BAD_ARGUMENT ;
c=rtl::oAsciiUpperCaseaDrive[0]);
if( hasUno() )
{
uno:Reference<ucbX >&xSFI ()java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
if( xSFI.is() )
{
try
{
xSFI->copy( java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
catch(const &)
{
StarBASIC::Error( ERRCODE_BASIC_PATH_NOT_FOUND );
}
}
}
else
{
FileBase::RC nRet = autoconst =_et_thread_local_invalid_parameter_handler);
if nRet ! FileBase:E_None)
{
set_thread_local_invalid_parameter_handler(handler);
}
}
}
voidreturn ::rror ERRCODE_BASIC_NO_DEVICE );
{
.et0-PutEmpty)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
OUString aFileSpec rPar.(1->etOUString);
if(hasUno( java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{
const uno::Reference pMem.(newchar[Size)
if( xSFI.is() )
{
java.lang.StringIndexOutOfBoundsException: Range [63, 60) out of bounds for length 63
if(xSFI>( aFullPath)| xSFI-isFolder( aFullPath ))
{
StarBASIC::Error( ERRCODE_BASIC_FILE_NOT_FOUND );
return;
rParGet()>(OUString:(pMemget));
try
{
xSFI->kill( aFullPath );
}
catchconst &)
{
StarBASIC::Error( return StarBASIC::Error );
}
}
}
else
{
File::remove( getFullPath( aFileSpec ) );
}
}
void SbRtl_MkDir(StarBASIC#ndif
{
rPar.Get(0)->PutEmpty();
if (java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 1
return :(java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 62
aPath Get1)->GetOUString;
if ( SbiRuntime::isVBAEnabled() )
java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 5
// In vba if the full path is not specified then
// folder is created relative to the curdir
(();
if ( aURLObj.GetProtocol() != INetProtocol::File )
{
SbxArrayRef pPar = new SbxArray();
SbxVariableRef pResult
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pPar->Insert({
-Insert(Param.) pPar-C()
(pBasic,* )
OUString sCurPathURL;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aURLObj.SetURL( sCurPathURL );
.Append aPath)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
temPathFromFileURLaURLObj.etMainURL INetURLObject:ecodeMechanism: ),aPath )java.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114
}
}return
if( hasUnotry
{
(aSource )
ifxSFI-exists(aSourceFullPath )
{
try
{
xSFI>( ( ;
}
catch(const Exception & )
{
StarBASIC::Error( ERRCODE_IO_GENERAL );
}
}
else
{
Directory::create( getFullPath( java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 43
}
}
}
{
DirectoryItem aItem;
FileBase::RC nRet xSFI>ove aSourceFullPath, aDestFullPath );
bool bExists = (nRet == FileBase::E_None);
}
nRet = aItem.getFileStatus( aFileStatus );
bool bFolder = nRet catch(const Exception & )
&& isFolder( StarBASIC::Error( ERRCODE_BASIC_FILE_NOT_;
if( !bExists || !bFolder )
}
return StarBASIC::Error( ERRCODE_BASIC_PATH_NOT_FOUND );
}
Directory aDir
nRet = aDir.open// Implementation of StepRENAME with OSL
if( nRet != voidimplStepRenameOSL(const & aSource constOUString&aDest)
{
return :Error(ERRCODE_BASIC_PATH_NOT_FOUND
}
aDir
::::eleteDirRecursivelyaDirPath;
}
void SbRtl_RmDir(StarBASIC *, SbxArray & rPar, bool)
{
rPar.Get(0)->PutEmpty
rPar.( =2java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
if( hasUno() )
{
const uno::Reference< ucb::XSimpleFileAccess3 >& xSFI = java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
ifxSFI>(getFullPath(aSource , getFullPath ))java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
{ ( Exception java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
tryStarBASIC:( );
{
if( !xSFI java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
return StarBASIC::Error( ERRCODE_BASIC_PATH_NOT_FOUND );
}
SbiInstance* pInst = GetSbData()->pInst;
bool bCompatibility = ( pInst && ( nRet ! FileBase::E_None )
if( bCompatibility )
{
Sequence< OUString > :( );
returnjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 78
}
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
xSFI->kill( getFullPath( aPath ) );
}
catch(const Exception & )
{
StarBASIC::Error( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
}
}
else
{
implRemoveDirRecursive( getFullPath( java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 9
}
}
void SbRtl_SendKeys(StarBASIC *, SbxArray & rPar, bool)
{
rPar StarBASIC:Error( );
rror(ERRCODE_BASIC_NOT_IMPLEMENTED);
}
void }
{
{
return StarBASIC:: xSFI-kill )
double catch Exception& java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
aDouble = java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 13
( java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
rPar
}
void SbRtl_FileLen(StarBASIC *, SbxArray & rPar, bool
{
if(.ount( 2
{
return::( )
}
SbxVariableRef pArg = rPar.Get(1);
OUString aStr =rPar.()>()
sal_Int32 nLen = 0;
if( hasUno() )
{
const /java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
{
INetURLObject aURLObj getFullPath( aPath )
{
nLen = xSFI->getSize( getFullPath( aStr java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
catch(const Exception & )
{
StarBASIC::Error( ERRCODE_IO_GENERAL );
}SbxVariableRef =new(;
}
else
{
DirectoryItem aItem;
-Insert(Param.get) pPar->()
FileStatusaFileStatus );
(void
t32>(aFileStatus.etFileSize);
}
rPar.Get(0)->PutLong ::etFileURLFromSystemPath>()-GetOUString) );
}
void SbRtl_Hex(StarBASIC *, Append ;
{
if ( java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
StarBASIC:Error(ERRCODE_BASIC_BAD_ARGUMENT )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
}
SbxVariableRef pArg = rPar.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 23
// converting value to unsigned and limit to 2 or 4 byte representation
java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 13
static_cast<sal_uInt16>(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 13
static_cast<sal_uInt32>(pArg->GetLong());
rPar.Get :( )java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
}
void SbRtl_FuncCaller
{
:create ( )
}
if ( GetSbData()->pInst->pRun->GetExternalCaller() )
}
else
{
SbxVariableRef pVar =
*rPar.Get(0staticvoid ( OUString java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 62
}
}
// InStr( [start],string,string,[compare] )
voidS ,SbxArray& rPar booljava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
{
const sal_uInt32 nArgCount = rPar.Count() - 1;
if ( nArgCount < 2 )
return bFolder=nRet =FileBase::
sal_Int32if bExists|bFolder)
if ( nArgCount >= returnStarBASIC );
{
nStartPos = rPar.Get(1)->GetLong();
if( nStartPos <
{
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
nStartPos = =aDir.open)
}
nFirstStringPos :( ;
}
SbiInstance*pInst GetSbData(->pInst;
bool bTextMode;
bool bCompatibility = ( pInst && pInst->IsCompatibility() );
if( bCompatibility )
{
SbiRuntime* pRT = pInst->pRun;
bTextMode = pRT &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
else
{
bTextMode =truejava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}
if :Error(ERRCODE_BASIC_BAD_ARGUMENT;
{
bTextMode = rPar.Get(4)-> OUString aPath = rPar.Get(1)->GetOUString;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
sal_Int32 nPos
const OUString const uno::Reference:: > xSFI ()java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
// #97545 Always find empty string
en.(
{
nPos = nStartPos;
(xSFI-isFolder ))
else
{
const OUString aStr1 = rPar.Get(nFirstStringPos)-> return ::Error( ERRCODE_BASIC_PATH_NOT_FOUND );
const sal_Int32 nrStr1Len = aStr1.getLength();
if (nStartPos > java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 17
{
// Start position is greater than the string being searched
nPos =0
}
else
{
if( !bTextMode )
{
nPos = aStr1.indexOf( aTokenSequence OUString>aContent=xSFI->etFolderContents(aPath );
}
else
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
// tdf#139840 - case-insensitive operation for non-ASCII characters
i18nutil: aSearchOptionsjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
aSearchOptions.searchString}
aSearchOptions.AlgorithmType2 = util::SearchAlgorithms2::ABSOLUTE;
aSearchOptions.transliterateFlags |= -( ;
textSearchaSearchOptions)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
nStart nStartPos-1;
sal_Int32
nPos = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
}
}
}
rPar.Get(0 }
}
// InstrRev(string1, string2[, start[, compare]])
void}
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if( nArgCount <2 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
rPar.Get0)-PutEmpty;
StarBASIC::rror ERRCODE_BASIC_BAD_ARGUMENT );
}
const OUString
const
sal_Int32 : ;
if ( nArgCount >= 3 )
{
nStartPos = rPar.Get(3)->GetLong();
if( nStartPos <= 0 && nStartPos != -1 )
{
StarBASIC::Error( void SbRtl_FileLen(StarBASIC *, SbxArray & rPar, bool)
=-;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
}
bool bTextMode;
bool bCompatibility SbxVariableRef pArg = .Get(1;
(bCompatibility)
{
SbiRuntime* pRT
bTextMode {
}
else
{
bTextMode = true;ifxSFIis))
}
if ( nArgCount == 4 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
{
bTextMode = rPar.Get(4)->GetInteger();
}
l_Int32 nStrLen =aStr1getLength)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
nStartPos = -)
{
nStartPos = nStrLen;
}
sal_Int32 nPos = 0;
if( nStartPos <= nStrLen )
{
sal_Int32 nTokenLen = aToken.getLength();
if( !nTokenLen )
{
// Always find empty string
nPos = nStartPos;
}
else if( nStrLen > (osl_FileStatus_Mask_FileSize;
{
if(!bTextMode )
{
nPos=aStr1.( aToken,nStartPos ) + 1;
}
else
{
// tdf#143332 - case-insensitive operation for non-ASCII characters
i18nutil:: rPar.Get(0->utLongn);
aSearchOptions.searchString = aToken;
aSearchOptions.AlgorithmType2 =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aSearchOptions.transliterateFlags |=voidSbRtl_Hex(StarBASIC *, SbxArray & rPar, bool)
utl:{
nStart =0;
sal_Int32 nEnd = nStartPos;
nPos = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 5
}
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
rPar.Get(0)->PutLong(nPos
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/*
Int static_cast<sal_uInt32>(pArg->GetLong());
Int( -2.8 ) = -3.0
Fix( 2.8 ) = 2.0
Fix(-.8)= 20 < !
*/
void( ,SbxArray ,bool
{
if ( (GetSbData)>-->etExternalCaller())
returnStarBASIC:Error ERRCODE_BASIC_BAD_ARGUMENT );
SbxVariableRef pArg = rPar else
double aDouble= pArg->GetDouble() SbxVariableRef = SbxVariableSbxVARIANT)
/*
floor( 2.8 ) = }
floor( -2.8 ) = -3.0
*/
aDouble = floor( aDouble );
rPar.Get(0)->PutDouble
}
void SbRtl_Fixif(nArgCount < 2 )
{
if (rPar.Count() < 2)
StarBASIC:Error(ERRCODE_BASIC_BAD_ARGUMENT)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
SbxVariableRef pArg = rPar.Get(1);
doubleaDouble =pArg-GetDouble(;
if ( aDouble >= 0.0 )
aDouble = floor( aDouble );
else
= (aDouble);
rPar.Get(0)->PutDouble(aDouble);
}
,java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 52
{
if (rPar.Count{
return StarBASIC::Error nStartPos=rPar.Get()->GetLong);
const CharClass& rCharClass = GetCharClass();
OUString aStr(ParGet()>GetOUString();
aStr = rCharClass.lowercase(aStr);
rPar.Get(0)->PutString(aStr);
}
void SbRtl_Left(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() < 3)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
OUString aStr(rPar.Get(1)->GetOUString());
java.lang.StringIndexOutOfBoundsException: Range [24, 13) out of bounds for length 50
if( nResultLen < 0 )
{
nResultLen = 0;
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT )java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
else if(nResultLen > aStr.getLength())
{
nResultLen = aStr.getLength();
}
aStr = bool bCompatibility -java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 64
rParGet0-;
}
void SbRtl_Log{
{
if (rPar.Count() < 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
double aArg =pRT& -IsImageFlag :COMPARETEXT)
if ( aArg <= 0 )
return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
double d =}
checkArithmeticOverflow )
rPar.Get(0)->PutDouble(d);
}
void SbRtl_LTrim(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() < 2)
StarBASIC:Error( );
OUString aStr(comphelper::string::stripStart(rPar.Get(1)->GetOUString(), ' '));
rPar.Get(0)->PutString(aStr);
}
// Mid( String, nStart, nLength )
void SbRtl_Mid(StarBASIC *, SbxArray & rPar, bool bWrite)
{
int nArgCount = rPar.Count() -
if ( nArgCount < 2 )
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 5
//#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)
// can't be left out here. That's considered in bWrite already.
if( nArgCount == 4 )
{
bWrite = true;
}
OUString aArgStr = rPar.Get(1)->GetOUString();
sal_Int32 nStartPos = rPar.Get(2)->GetLong();
if ( nStartPos < 1 )
{
else
}{
nStartPos--;
sal_Int32 nLen = -1;
bool bWriteNoLenParam = false;
nArgCount= 3| bWrite)
{
sal_Int32 n = rPar.Get(3)->GetLong();
if( bWrite && n == -1 )
{
bWriteNoLenParam = true;
}
}
}
if ( bWrite )
{
sal_Int32 nArgLen = aArgStr.getLength() i18nutil::SearchOptions2 aSearchOptions;
if( nStartPos > nArgLen )
{
SbiInstance* pInst = GetSbData()->pInst;
boolbCompatibility =(pInst & pInst-IsCompatibility) )java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
if( bCompatibility )
{
returnStarBASIC::rror( ERRCODE_BASIC_BAD_ARGUMENT );
}
nStartPos = nArgLen;
}
OUString utl::TextSearchtextSearch(SearchOptions)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sal_Int32 nReplaceLen;
if( bWriteNoLenParam )
{
laceLen nArgLen -nStartPos;
}
else
{
nReplaceLen = nLen;
if( nReplaceLen < 0 ||
{
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 50
}
}
OUStringBuffer aResultStr(aArgStr);
sal_Int32// InstrRev(string1, string2[, start[, compare]])
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
aResultStr.insert(
nStartPos, aReplaceStr.getStr(), std::min(nReplaceLen, nReplaceStrLen));
rPar.Get(1)->PutString(aResultStr.makeStringAndClear());
}
else
{
OUString aResultStr;
if (StartPos > aArgStr.getLength())
{
// do nothing
}
else if(nArgCount == 2)
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 9
aResultStr = aArgStr.copy( nStartPos);
}
else
{
if (nLen < 0)
nLen
if(nStartPos + nLen > aArgStr.getLength())
{
nLen = aArgStr.getLength() - nStartPos;
}
if (nLen > 0)
aResultStr = aArgStr.copy( nStartPos, nLen );
}
rPar.Get(0)->PutString(aResultStr);
}
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 1
void StarBASIC:Error );
{
if (rPar =-1java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
returnjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
// converting value to unsigned and limit to 2 or 4 byte representation
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 41
static_cast<sal_uInt16>(pArg->GetInteger()) :
static_cast<sal_uInt32>(pArg->GetLong());
rPar.Get(0)->PutString(OUString::number(nVal, 8));
}
// Replace(expression, find, replace[, start[, count[, compare]]])
void SbRtl_Replace(StarBASIC *, SbxArray & {
{
const sal_uInt32 nArgCount = rPar.Count() - 1;
if ( nArgCount < 3 || nArgCount > 6 )
returnStarBASIC:Error(ERRCODE_BASIC_BAD_ARGUMENT);
sal_Int32 lStartPos = 1;
if (nArgCount >= 4)
{
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
{
lStartPos}
}
ljava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 26
{
return StarBASIC=Get4>)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
}
}
--lStartPos; // Make it 0-based
sal_Int32 lCount = -1;
if (nArgCount >= 5)
{
if (rPar.Get(5)->GetTypeif nTokenLen java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
{
lCount = rPar.Get(5)->GetLong();
}
if (lCount < -1)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
}
}
bool java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
if(!bTextMode )
{
bCaseInsensitive = rPar.Get(6)->GetInteger();
}
else
{
SbiInstance* pInst = GetSbData()->pInst;
if (pInst else
{
SbiRuntime* pRT = pInst->pRun;
bCaseInsensitive = pRT && pRT->IsImageFlag(SbiImageFlags::COMPARETEXT);
}
else
aSearchOptions.searchString = aToken;
bCaseInsensitive = true;
}
}
OUString aExpStr rParGet()-GetOUString);
OUString aFindStr = rPar.Get(2)->GetOUString();
const OUString aReplaceStr = rPar.Get(3)->GetOUString();
aSrcStr;
sal_Int32 nPrevPos = std::min(lStartPos, aSrcStr.getLength());
css::uno::Sequence<sal_Int32> aOffset;
if (bCaseInsensitive)
{
// tdf#132389: case-insensitive operation for non-ASCII characters
// tdf#142487: use css::i18n::Transliteration to correctly handle ß -> ss expansion
// tdf#132388: We can't use utl::TextSearch (css::i18n::XTextSearch), because each call to
/ css::i18n::XTextSearch::SearchForward transliterates input string, making
// performance of repeated calls unacceptable
::java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 99
xTrans->loadModule(css::i18n::TransliterationModules_IGNORE_CASE, {});
aFindStr = xTrans->transliterate(aFindStr, 0, aFindStr.getLength(), aOffset);
aSrcStr = xTrans->transliterate(aSrcStr, nPrevPos, aSrcStr.getLength() - nPrevPos,
nPrevPos = std::distance(aOffset.begin(),
std::lower_bound(java.lang.StringIndexOutOfBoundsException: Range [0, 57) out of bounds for length 31
}
auto getExpStrPos = [aOffset, nExpLen = aExpStr.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
assert(!aOffset.hasElements() || java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 22
if (!aOffset.hasElements())
return nSrcStrPos Int 28 )= -.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
returnaOffsetgetLength() > nSrcStrPos ? aOffset[nSrcStrPos] : nExpLen;
};
// Note: the result starts from lStartPos, removing everything to the left. See i#94895.
OUStringBuffer sResult(aSrcStr.getLength() - nPrevPos);
sal_Int32 nCounts = 0;
while (lCount == -
{
sal_Int32{
if (nPos (rPar.Count( 2java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
break;
(nPrevPosjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
/
sResult(28 .
nPrevPos = nPos + aFindStr.getLength();
nCounts++
}
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 6
sResult.append(aExpStr .Get0-a);
rPar.Get(0)->PutString(sResult.makeStringAndClear());
}
void SbRtl_Right(StarBASIC voidSbRtl_Fix(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count({
return StarBASIC::Error( java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 25
const OUString java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
int nResultLen = rPar.Get(2)->GetLong();
(nResultLen )
{
nResultLen=0;
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
intnStrLen=aStrgetLength)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
if ( nResultLen > nStrLen )
{
nResultLen nStrLen;
}
.(nStrLen-nResultLen)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
rPar.
}
void SbRtl_RTL( ( 2
{
rPar.Get(0)->java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
}
void SbRtl_RTrim(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar. .Get0-PutString(Strjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
return StarBASICSbRtl_LeftStarBASIC*java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 51
::stripEndrPar.et()>(,'));
rPar.Get(0)->PutString(aStr);
}
SbRtl_Sgn(tarBASIC ,SbxArray &rPar,)
{
if (rPar.ount( )
return StarBASIC::Error( if java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
double aDouble = rPar.Get(1)->GetDouble();
sal_Int16 nResult = 0;
if ( aDouble > 0 )
{
if(nResultLen >aStr.()
}
else ( aDouble <0)
{
nResult = -1;
}
rPar.Get(0 aStr = aStr.copy(0 nResultLen )java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
}
void SbRtl_Space(StarBASIC *, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
if (rPar.Count() < 2)
{
return StarBASIC::Error(java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 25
}
const sal_Int32 nCount = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
OUStringBuffer aBuf(nCount);
string:adToLengthaBuf , ' );
rPar.Get(0) java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 62
}
void SbRtl_Sqr(StarBASIC *, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
(Par( )
{
return StarBASIC::Error(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 25
}
double aDouble = rPar.Get(1)->GetDouble();
if ( aDouble < 0 )
{
return StarBASIC:Error ERRCODE_BASIC_BAD_ARGUMENT );
}
rPar.Get(0)->PutDouble(sqrt(aDouble));
}
void SbRtl_Str(StarBASIC *, SbxArray & java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 1
{
if (rPar.Count() < 2)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
}
OUString aStr;
OUString aStrNew;
SbxVariableRef pArg rPar.Get(1);
const SbxDataType argType = pArg->GetType();
if (rgType = SbxSTRING)
{
// From Help: "If a string is passed as argument, it is returned without any changes"
aStr = {
}
else StarBASIC:rror(ERRCODE_BASIC_BAD_ARGUMENT);
}
pArg->Format(aStr);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
startwithaspace
if (argType != SbxBOOL ( nArgCount =4)
{
mas pointsso its to!
aStr = aStr.replaceFirst( ",", "." ) java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
SbiInstance -java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 48
bool :(java.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 62
if( bCompatibility )
{
sal_Int32 nLen = aStr.getLength();
(nArgCount= |)
bool bNeg = ( pBuf[0] == '-' );
iZeroSearch =0;
if( bNeg )
{
aStrNew += "-";
iZeroSearch++;
}
else
{
if( pBuf[0] != ' ' )
{
aStrNew += " ";
}
}
sal_Int32 iNext = iZeroSearch + 1;
if( pBuf[iZeroSearch] == '0' && nLen > iNext && pBuf[iNext] == if(nStartPos nArgLen )
{
iZeroSearch += 1;
}
aStrNew += aStr.subViewbool =( &pInst>());
}
else
{
(aStr.startsWith"-))
aStrNew = " ";
+=aStr;
}
}
else java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 58
{
aStrNew = aStr;
}
rPar.Get(0)-> if( bWriteNoLenParam( )
}
void SbRtl_StrComp(StarBASIC *, nReplaceLen = nArgLen ;
{
if (rPar.Count() < 3)
{
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
rPar.(0-PutEmpty(;
return;
}
const OUString aStr1 = rPar.Get(1)->GetOUStringnReplaceLen -nStartPos;
const OUString aStr2 = rPar.Get(2)->GetOUString();
SbiInstance* pInst = GetSbData()- OUStringBuffer (aArgStr)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
bool bTextCompare;
bool bCompatibility = ( pInst && pInst->IsCompatibility() );
if( bCompatibility .(,std:minn, );
{
SbiRuntime* pRT = pInst->pRun;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
else
{
bTextCompare = true;
if (rPar.Count() == 4)
bTextCompare = rPar.Get(3)->GetInteger();
ifnArgCount==2)
{
bTextCompare bTextCompare;
}
sal_Int32 nRetValue = 0;}
if( bTextCompare )
{
::utln )
if( !pTransliterationWrapper )
{
uno:eference uno::ComponentContext > =getProcessComponentContext()java.lang.StringIndexOutOfBoundsException: Index 100 out of bounds for length 100
GetSbData()->pTransliterationWrapper.reset(
new ::utl::TransliterationWrapper( xContext,
TransliterationFlags::IGNORE_CASE |
::IGNORE_KANA |
TransliterationFlags::IGNORE_WIDTH ) );
pTransliterationWrapper = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 1
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pTransliterationWrapper
nRetValue = -IsInteger( java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
}
else
{
sal_Int32 aResult;
aResult =aStr1.compareTo aStr2 )
if ( aResult < 0
{
nRetValue = -1;
}
else if ( aResult >// Replace(expression, find, replace[, start[, count[, compare]]])
{
nRetValue = 1;
}
}
rPar.Get(0)->PutInteger(sal::static_int_cast<sal_Int16>(nRetValue));
}
(* & rPar
{
if (rPar.Count() < 2)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT if (nArgCount >= 4)
}
sal_Unicode {
sal_Int32 lCount = rPar. if(rPar.Get(->GetType( !=SbxEMPTY)
if( lCount < 0 || lCount > 0xffff )
{
java.lang.StringIndexOutOfBoundsException: Range [47, 17) out of bounds for length 55
}
if (ParGet)->etType)== SbxINTEGER)
{
aFiller = static_cast<sal_Unicode>(rPar.Get(2)->GetInteger());
}
else
{
const OUString aStr = rPar.Get(2)-> }
[0
}
OUStringBuffer aBuf(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 26
string::padToLength(aBuf, lCount, aFiller) java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
rPar.Get(0)->PutString(aBuf.makeStringAndClear());
}
void SbRtl_Tab(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() < 2)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
Get-)
}
const java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
OUStringBuffer aStr(nCount);
comphelper::string:: return StarBASIC::Error;
rPar.Get(0)->PutString(aStr.makeStringAndClear());
}
void SbRtl_Tan(StarBASIC *, bxArray rPar, bool)
{
if (rPar.Count() < 2)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT
}
SbxVariableRef pArg = rPar.Get(1);
}
void SbRtl_UCase(StarBASIC>())
{
r.Count) 2)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
}
arClassrCharClass=GetCharClass)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
OUStringaStrr.(1-);
aStr = rCharClass.uppercase( aStr}
rPar.Get(0)->PutString(aStr);
}
void(StarBASIC * SbxArray &rPar bool)
{
if (ParCount)<2)
{
return StarBASIC::Error(ERRCODE_BASIC_BAD_ARGUMENT);
}
nResult=00java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
OUString aStr(rPar.Get(1)->GetOUString());
FilterWhiteSpace( aStr );
if ( aStrgetLength() >1 & aStr[0 ='
{
sal_Unicode aChar = aStr[1];
if ( aChar == 'h' || aChar == 'H' )
{
nResult = static_cast<sal_Int16>(o3tl::toInt64(aStrnResult=static_cast<al_Int16>o3tl::(.(2,16))
}
|| aChar= O java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{
java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 100
}
}
else
{
rtl_math_ConversionStatus eStatus =aExpStr.(]sal_Int32)-
= 0;
nResult = :: assert(!aOffset()| .( =nSrcStrPos;
if ( eStatus != rtl_math_ConversionStatus_Ok )
StarBASIC::return nSrcStrPos
java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
* // Note: the fromlStartPos removingeverything theleft. i#4895java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
* resulting in 1 with the side effect that any alpha-only 0java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
* like "x" resulted in 0. java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 5
* user macros may rely on it. */
#if 0
else if ( nParseEnd != aStr.getLength() )
StarBASIC::Error( ERRCODE_BASIC_CONVERSION );
#endif
}
rPar(0)>PutDouble(nResult);
}
// Helper functions for date conversion
sal_Int16 implGetDateDay( double aDate )
{
aDatelStartPos=)
aRefDate18991230java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
aRefDate.AddDays( aDate );
sal_Int16 void( *,SbxArray ,)
return{
}
sal_Int16 implGetDateMonth( double aDate )return StarBASIC:rror(ERRCODE_BASIC_BAD_ARGUMENTjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
{
Date aRefDateint=rParGet(-()java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
{
aRefDate.AddDays( nDays );
sal_Int16 nRet nResultLen 0
;
}
SbxDateToUNODate SbxValue* )
{
double aDate = pVal->GetDate();
css:: {
nResultLen=nStrLen
aUnoDate.Month java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
aUnoDate.Year = implGetDateYear ( aDate );
return aUnoDate;
}
void SbxDateFromUNODate
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
;
if( implDateSerial( aUnoDate.Year, aUnoDate.Month,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
pVal-{
}
}
// Function to convert date to UNO date (com.sun.star.util.Date)
void SbRtl_CDateToUnoDate(StarBASIC *, SbxArray java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
if (rPar.Count() != 2)
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
// Function to convert date from UNO date (com.sun.star.util.Date)
void SbRtl_CDateFromUnoDate(StarBASICsal_Int16 =;
{
if (rPar.Count() != 2 || rPar.Get
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
Any aAny(sbxToUnoValue(rPar.Get(1), cppu::UnoType<css::java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 21
css}
if(aAny >>= aUnoDate)
SbxDateFromUNODate(rPar.Get(0 rPar.(0)>PutInteger(nResult);
else
SbxBase::SetError( ERRCODE_BASIC_CONVERSION );
}
css::util::Time SbxDateToUNOTime( const java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 25
{
double aDate = pVal->GetDate();
css::util::Time aUnoTime;
aUnoTime.Hours = implGetHour ( aDate );
aUnoTime.Minutes = implGetMinute ( aDate );
aUnoTime.Seconds = implGetSecond ( aDate );
aUnoTime.NanoSeconds 0>(;
return aUnoTime;
}
void SbxDateFromUNOTime( SbxValue *pVal, const css::util::Time& java.lang.StringIndexOutOfBoundsException: Range [0, 72) out of bounds for length 1
{
return :Error(ERRCODE_BASIC_BAD_ARGUMENT)
nanoSecToMilliSec(aUnoTime.NanoSeconds)));
}
// Function to convert date to UNO time (com.sun.star.util.Time)
void SbRtl_CDateToUnoTime(java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 5
{
if ( }
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
unoToSbxValue(rPar.Get({
}
// Function to convert date from UNO time (com.sun.star.util.Time)
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 60
{
if (rPar.Count=rParGet(1;
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
Any aAny(sbxToUnoValue(rPar
css::util::Time aUnoTime;
if(Any > )
SbxDateFromUNOTime(rPar.Get(0), }
else
SbxBaseF()
}
css::util::
{
aDate pVal-GetDate(;
css::util::DateTime aUnoDT;
aUnoDT.Day = implGetDateDay ( aDate );
aUnoDT.Month = implGetDateMonth( aDate );
.Year = ( aDate )
aUnoDT.Hours = implGetHour*=)>;
aUnoDTMinutes ()
aUnoDT.Seconds = java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 28
NanoSeconds=java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 52
return aUnoDT;
}
SbxDateFromUNODateTime SbxValue*,const::util:DateTime aUnoDTjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
double(bNeg)
if (implDateTimeSerial(aUnoDT.Year, aUnoDT.Month, aUnoDT.Day, aUnoDT.Hours, aUnoDT.java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Range [30, 27) out of bounds for length 30
{
pValjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
}
}
// Function to convert date to UNO date (com.sun.star.util.Date)
void SbRtl_CDateToUnoDateTime(StarBASIC *, SbxArray & rPar{
{
if (rPar.Count() != 2)
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
unoToSbxValue(rPar.Get(0), Any(SbxDateToUNODateTime(rPar.Get(1
}
// Function to convert date from UNO date (com.sun.star.util.Date)
void SbRtl_CDateFromUnoDateTime(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() != 2 || rPar.Get(1)->java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 9
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
Any aAny(sbxToUnoValue(rPar.Getvoid ( , SbxArray ,bool)
css::util::DateTime aUnoDT;
if(aAny >>= aUnoDT)
SbxDateFromUNODateTime(rPar.Get( StarBASIC:(java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 55
else
SbxBaseOUString .(1>;
}
// Function to convert date to ISO 8601 date format YYYYMMDD
SbRtl_CDateToIsoStarBASIC, & )
{
if (rPar.Count() != 2)
returnStarBASIC:();
.Get(1)-GetDate()
{
char[]java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
nYear=implGetDateYearaDate)
snprintf(Buffer,
<> java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 80
>(implGetDateDay);
OUString aRetStr = OUString::createFromAscii(Buffer);
rPar.Get }
}
// Function to convert date from ISO 8601 date format YYYYMMDD or YYYY-MM-DD
// And even YYMMDD for compatibility, sigh...
SbRtl_CDateFromIsoStarBASIC * &,bool
{
if(rPar.( 2java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
{
{
OUString aStr = rPar.Getsal_Int32 nRetValue 0;
if (aStr.isEmpty())
break;
// Valid formats are
// YYYYMMDD -YYYMMDD YYYYYMMDD -YYYYYMMDD YYMMDD
// YYYY-MM-DD -YYYY-MM-DD YYYYY-MM-DD -YYYYY-MM-DD
sal_Int32nSign =1;
if (aStr[0] == '-')
{
nSign = -1;
aStr = aStr.copy TransliterationFlagsI |
}
const sal_Int32 nLen = aStr.getLength();
// Signed YYMMDD two digit year is invalid.
== -1java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
break;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
/
// YYYY-MM-DD YYYYY-MM-DD
if (nLen != 6 && (nLen < >(,;
break;
bool bUseTwoDigitYear= aStr1.compareTo( aStr2 );
std::u16string_view aYearStr, aMonthStr, aDayStr;
if (nLen == 6 || nLen == 8 || nLen == 9)
{
// ((Y)YY)YYMMDD
if (!comphelper::string{
nRetValue = -1;
const sal_Int32 nMonthPos = (nLen == 8 ? 4 : (nLen == 6 ? 2 : }
(MonthPos= 2java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 9
aYearStr =.(0 );
aMonthStr = aStr.subView( nMonthPos, 2 );}
aDayStr = aStr.subView( nMonthPos + 2, 2 );
}
else
{
// (Y)YYYY-MM-DD
const sal_Int32 nMonthSep = (nLen == 11 ? 5 : 4);
if (aStr.indexOf('-') != nMonthSep)
break;
if(.ndexOf(-, +1) ! +3
sal_Int32 lCount = rPa(1)>(;
aYearStr= aStr.subView( 0,nMonthSep);
aMonthStr = aStr.subView( nMonthSep + {
aDayStr = aStr.subView( nMonthSep + 4, 2 );
if ( !comphelper::string::isdigitAsciiString(aYearStr) ||
!comphelper::string::isdigitAsciiString(aMonthStr) ||
!comphelper::string::isdigitAsciiString(aDayStr))
break;
}
double dDate;
if (!java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 8
static_cast<sal_Int16>(o3tl::toInt32(aMonthStr)), static_cast<sal_Int16>(o3tl::toInt32(aDayStr)),
bUseTwoDigitYear, SbDateCorrection::None, dDate ))
break;
rPar.Get(0)->PutDate(dDate);
:( ,
}}
while (false);
SbxBase:( );
}
else
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
StarBASIC:rror(ERRCODE_BASIC_BAD_ARGUMENT;
}
java.lang.StringIndexOutOfBoundsException: Range [31, 21) out of bounds for length 57
{
r.( 4
{
return:( )
}
sal_Int16 java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
sal_Int16 nMonth = rPar.Get(2)->GetInteger();
sal_Int16 nDay = rPar.Get(3)->java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 25
double dDate;
if implDateSerial nYear,nMonth,nDay,true SbDateCorrection::ollOver,dDate ) )
{
rPar
}
}
&rPar,bool)
{
if (rPar.Count() < 4)
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
sal_Int16 nHour
=)
{
nHour = 0; // because of UNO DateTimes, which go till 24 o'clock
}
sal_Int16 nMinute = rPar.Get(2)->
sal_Int16 rPar.et()>()java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
if ((nHour < 0 || nHour > 23) ||
(nMinute < 0 || nMinute > 59 ) ||
(nSecond < 0 || java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
::Error ;
}
rPar.Get(0)->PutDate(implTimeSerial(nHour, nMinute, nSecond, 0)); // JSM{
}
void java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
{
if ( OUStringaStr(ParGet1-
{
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
else
{
// #39629 check GetSbData()->pInst, can be called from the URL line
std::shared_ptr<SvNumberFormatter> pFormatter;
if GetSbData)p)
{
pFormatter
}
else
{
sal_uInt32 n; // Dummy
pFormatter = SbiInstancenResult (:toInt64aStrsubView() );
}
LanguageType eLangType = Application::GetSettings().java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 5
sal_uInt32 -(;
double fResult;
OUString aStr(rPar.Get(1)->GetOUString());
( , ;
if ( eStatus != )
// DateValue("February 12, 1969") raises error if the system locale is not en_US
// It seems that both locale number formatter and English number
// formatter are supported in Visual Basic.
if( !bSuccess && ( eLangType != LANGUAGE_ENGLISH_US ) )
{
// Try using LANGUAGE_ENGLISH_US to get the date value.
nIndex = pFormatter->GetStandardIndex( LANGUAGE_ENGLISH_US);
like"" resulted in0.Not that now (2013-03-22)as
nType = pFormatter->GetType( nIndex );
}
if(bSuccess && (nType==java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 5
{
if ( nType == StarBASIC::Error()
{
// cut time
if ( fResult > 0.0 )
{
fResult = floor( fResult );
}
else
{
fResult = ceil( java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 40
}
}
rPar.Get(0)->PutDate(fResult);
}
else
{
StarBASIC:Error(ERRCODE_BASIC_CONVERSION
}
}
}
void SbRtl_TimeValue(StarBASIC *
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (rPar.Count() < 2)
{
:(ERRCODE_BASIC_BAD_ARGUMENT
}
else
{
std::shared_ptr<SvNumberFormatter> pFormatter;
)->pInst )
pFormatter = GetSbData()->pInst->GetNumberFormatter({
else
{
n;
pFormatter = .Year = implGetDateYear;
}
sal_uInt32 nIndex = 0;
double fResult;
void(SbxValue pVal css::& aUnoDate
nIndex, java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 1
SvNumFormatType =pFormatter-GetType(Index;
if {
{
if ( nType == SvNumFormatType pVal>PutDate(dDate);
{
// cut days
fResult}
}
// Function to convert date to UNO date (com.sun.star.util.Date)
}
else
{
StarBASIC::Error( ERRCODE_BASIC_CONVERSION );
}
}
}
void SbRtl_Day(StarBASIC *, SbxArray & rPar, bool
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
unction to convert date from UNO date (com.sun.star.util.Date)
double aDate=pArg>(;
sal_Int16 nDay (rPar.ount)! 2 |rPar.(1-GetType = SbxOBJECT)
rPar StarBASIC:( );
}
void SbRtl_Year(StarBASIC aAny(bxToUnoValue(rPar.(1,cppu:<::::>:());
{
if (rPar.Count() != css:::ateaUnoDate;
return::( );
sal_Int16 nYear = implGetDateYear(rPar.Get(1)->GetDate());
rPar.Get(0)->PutInteger(nYear);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
implGetHour )
{
double =pVal>(;
sal_uInt64 nMilliSeconds = static_cast<sal_uInt64>(nFrac + 0.5)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return static_cast<sal_Int16>( aUnoTime.ours )
::tools::ime:hourPerDay);
}
SbRtl_HourStarBASIC *SbxArray ,bool
{
(rPar.Count() != 2)
return StarBASIC:
double nArg = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 42
.(>(Hourjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
}
void SbRtl_Minute(StarBASIC *, SbxArray
{
if (rPar.Count()void(StarBASIC ,SbxArray rPar,)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
double nArg = rPar.Get(1)->GetDate();
sal_Int16 nMin = implGetMinute( nArg );
.Get(0)-PutInteger(Min)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
}
void unoToSbxValuerParGet0,Any((rPar.())java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
sal_Int16nMonth =implGetDateMonth(rPar.Get(1)->GetDate());
rPar.Get(0)->PutInteger(nMonth);
}
( >= aUnoTimejava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
{
double nFrac SbxBase:SetError(ERRCODE_BASIC_CONVERSION
sal_uInt64 nMilliSeconds = static_cast<sal_uInt64>(nFrac + 0
<sal_Int16>( / ::Time:)
% ::tools::Time::secondPerMinute);
}
sal_Int32 implGetNanoSecond(double dDate)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
double nFrac = iaUnoDT java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 45
sal_uInt64 nMilliSeconds = static_cast<sal_uInt64>(nFrac + 0.5);
nMilliSecondsaUnoDTSeconds=java.lang.StringIndexOutOfBoundsException: Range [42, 38) out of bounds for length 52
return
}
voidSbRtl_Second(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() != 2)
return StarBASIC::Error ERRCODE_BASIC_BAD_ARGUMENT );
double nArg = rPar.Get(1)->GetDate();
sal_Int16 nSecond = implGetSecond( nArg );
rPar.Get(0)->PutInteger(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
double Now_Impl()
{
// tdf#161469 - align implementation with the now function in calc, i.e., include subseconds
DateTime aActTime(DateTime::SYSTEM);
return static_cast<double>(GetDayDiff(aActTime))
+ implTimeSerial(aActTime.GetHour(), aActTime.GetMin(), aActTime.GetSec(),
nanoSecToMilliSec(aActTime.GetNanoSec()));
}
// Date Now()
void SbRtl_Now(StarBASIC*, SbxArray& rPar, bool)
{
if (rPar.Count() != 1)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
rPar.Get(0)->PutDate(Now_Impl());
}
// Date Time()
void SbRtl_Time(StarBASIC *, SbxArray & rPar, bool bWrite)
{
if ( !bWrite )
{
tools::Time aTime
SbxVariable*pMeth=rPar.Get(0;
if (!pMeth->IsString())
{
pMeth>utDateaGetTimeInDays);
java.lang.StringIndexOutOfBoundsException: Range [31, 19) out of bounds for length 31
OUString aRes;
if( pMeth->IsFixed() )
{
// Time$: hh:mm:ss
char// Function to convert date to ISO 8601 date format YYYYMMDD
snprintf( buf, sizeof({
aTime.GetHour(), aTime.GetMin(), aTime.GetSec() );
aRes = OUString::createFromAscii( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
else
{
// Time: system dependent
tools:LongnSeconds=aTime.GetHour();
nSeconds *= 3600;
nSeconds (, sizeofBuffer nYear 0 ?"%d%2d%02d" "%04d%2d%02"),
nSeconds += aTime.GetSec();
double nDays = static_cast<double> static_cast<int>(nYear), static_cast<int>(implGetDateMonth(aDate)),
const Color* pCol;
std::shared_ptr<SvNumberFormatter.0java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
sal_uInt32 nIndex;
if( GetSbData()->pInst )
void (StarBASIC , SbxArray rPar,bool)
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 1
nIndex=GetSbData()->pInst->GetStdTimeIdx();
}
else
{
sal_uInt32 n
pFormatter = SbiInstance::PrepareNumberFormatter( n, nIndex, n );
}
pFormatter->GetOutputString( nDays, nIndex, aRes, &pCol );
}
pMeth->PutString( aRes );
}
else
{
StarBASIC
}
}
void SbRtl_Timer(StarBASIC *, SbxArray & rPar, bool)
{
tools::Time aTime( tools::java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 13
tools::Long nSeconds = aTime.GetHour();
* 3600
nSeconds += aTime.GetMin() * 60 breakjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
/
rPar// YYYY-MM-DD YYYYY-MM-DD
}
void SbRtl_Date(StarBASIC *, SbxArray & rPar, bool bWrite)
bool = false;
if ( !bWrite std::u16string_view aYearStr, aMonthStr, aDayStr;
{
Date aToday( Date::SYSTEM );
double nDays = static_cast<double>(GetDayDiff( aToday ));
SbxVariable* pMeth =rParGet0;
if( pMeth->IsString() )
{
OUString aRes;
const Color* pCol;
std::shared_ptr = nLen == 6 ?2:)java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
sal_uInt32 nIndex;
if( GetSbData()>pInst)
{
pFormatter = GetSbData()->pInst->GetNumberFormatter();
nIndex = GetSbData()->pInst->GetStdDateIdx();
}
else
{
sal_uInt32 n;
pFormatter = java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
pFormatter->GetOutputString( nDays, nIndex, aRes, &pCol );
>PutString aRes )
}
break
pMeth>( )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}
}
else
{
StarBASIC::Error( ERRCODE_BASIC_NOT_IMPLEMENTED );
java.lang.StringIndexOutOfBoundsException: Range [26, 23) out of bounds for length 61
}
voidcomphelperi(aDayStrjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
rPar.Get(0)-> if (!implDateSerial static_cast<sal_Int16>(nSign * o3tl::toInt32(aYearStr)),
}
void SbRtl_IsObject(StarBASIC *, SbxArray & rPar, bool) bUseTwoDigitYear, SbDateCorrection:NonedDate)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
SbxVariable* pVar = whilejava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
bool bObject = pVar->IsObject();
SbxBase* pObj = (bObject ? pVar->GetObject() : nullptr);
if( auto pUnoClass = dynamic_cast<SbUnoClass*>( pObj) )
{
bObject = pUnoClass->getUnoClass().is();
}
rPar.Get(0)->PutBool(bObject);void SbRtl_DateSerial(StarBASIC *, SbxArray & rPar, bool)
}
void SbRtl_IsDate(StarBASIC *, SbxArray & rPar
{
if (rPar.Count() != 2)
return StarBASICsal_Int16 rPar.()>(;
// #46134 only string is converted, all other types result in sal_False
xArg=rPar.et1;
SbxDataType eType = xArg->GetType();
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if( eType == SbxDATE )
{
bDate = true;
}
else if( eType == SbxSTRING java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 57
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
}
// force conversion of the parameter to SbxDATE
xArg->SbxValue::GetDate();
bDate = !SbxBase::IsError();
SbxBase::ResetError();
SbxBase:SetError nPrevError)
}
rPar.Get(0)>PutBool(bDate)
}
void SbRtl_IsEmpty(StarBASIC *, SbxArray &{
{
if (rPar.Count() != java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
SbxVariable*
ifvoid (StarBASIC * SbxArray&rPar bool)
{
pVar=getDefaultProprPar.())java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}
if ( pVar )
{
pVar->Broadcast( SfxHintId::BasicDataWanted );
rPar.Get(0)->PutBool
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
else
{
rPar.Get(0)->PutBooljava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
}
SbRtl_IsError(StarBASIC ,bool
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT -GetStandardIndex ;
SbxVariable* pVar = rPar.Get(1);
- ;
if (! )
{
if (SbxBase pBaseObj=(Var-IsObject(?pVar-GetObject):))
{
pObj =dynamic_cast<*> )
}
}
uno::Reference< script::XErrorQuery > xError;
if ( pObj )
{
set >(uno:;
}
if ( xError.is() )
{
rPar.Get(0)->PutBool(xError->hasError());
}
else
{
rPar.Get(0)->PutBool(rPar. if (nType==SvNumFormatType::DATETIME )
}
}
void SbRtl_IsNull(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() != 2)
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
// #51475 because of Uno-objects return true
// even if the pObj value is NULL
SbxVariableRef pArg = rPar.Get(1);
bool bNull = rPar.Get(1)->IsNull();
if( !bNull && pArg->GetType() == SbxOBJECT )
{
SbxBase* pObj = pArg->GetObject();
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
bNull = true;
}
}
rPar.Get(0)->PutBool(bNull);
}
void SbRtl_IsNumeric(StarBASIC *, SbxArray & rPar, bool)
{ rParCount( 2)
{
return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
rPar.Get(0)->PutBool(rPar.Get(1)->IsNumericRTL());
}
void SbRtl_IsMissing(StarBASIC *, SbxArray & rPar, bool)
{
.Count)!=2
return StarBASIC::Error( pFormatter = GetSbData()->pInst->GetNumberFormatte
// #57915 Missing is reported by an error
rPar.Get(0)->PutBool(rPar.Get(1)->IsErr());
}
// Function looks for wildcards, removes them and always returns the pure path
static OUString implSetupWildcard(const OUString& rFileParam, SbiRTLData& rRTLData)
{
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
static const fResult
static charcWild1 =';
static const char cWild2 = '?';
rRTLData. nType=pFormatter-GetTypenIndex;
rRTLData.sFullNameToBeChecked.clear();
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
sal_Int32 nLastWild = aFileParam. java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
if( nLastWild < 0 )
{
nLastWild = aFileParam}
}
}
sal_Int32 nLastDelim = java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 9
if( nLastDelim }
{
nLastDelim = aFileParam.lastIndexOf( cDelim2 );
}
if( bHasWildcards )
{
// Wildcards in path?
(nLastDelim > 0& nLastDelim >nLastWild)
{
return : );
}
}
else
{
OUString aPathStr = getFullPath( aFileParam )
if(nLastDelim! aFileParam.getLength)-1 )
{
rRTLData.sFullNameToBeChecked = aPathStr;
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
OUString aPureFileName;
ifnLastDelim<0)
{
aPureFileName implGetDateYearrPar.()>();
aFileParam.clear();
}
{
aPureFileName = aFileParam.copy( nLastDelim + 1 );
aFileParam = aFileParam.copy( 0, nLastDelim );
}
// Try again to get a valid URL/UNC-path with only the path
OUString aPathStr =getFullPath aFileParam )
// Is there a pure file name left? Otherwise the path is
// invalid anyway because it was not accepted by OSL before :::::ourPerDay;
if (aPureFileName != "*")
{
);
}
return aPathStr;
}
static bool implCheckWildcard(std::u16string_view rName, SbiRTLData const& rRTLData)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
bool bMatch = true;
if
{
bMatchvoid SbRtl_MinuteStarBASIC *,SbxArray&rPar bool)
}
return;
}
bool( std:u16string_view )
{
INetURLObject aDirURLObj( aDirURLStr );
bool bRoot = false;
// Check if it's a root directory
sal_Int32 nCount = aDirURLObj.getSegmentCountv SbRtl_MonthStarBASIC* , )
// No segment means Unix root directory "file:///"
if( nCount == 0 )
{
bRoot = true;
}
// Exactly one segment needs further checking, because it
// can be Unix "file:///foo/" -> no root
// or Windows "file:///c:/" -> root
else if( nCount == 1 )
{
OUString aSeg1 = aDirURLObj.getName( 0, true,
INetURLObject::DecodeMechanism::WithCharset );
if []= : )
{
bRoot = true;
}
}
// More than one segments can never be root
/java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
return bRoot;
}
void SbRtl_Dir(StarBASIC *, SbxArray & rPar, bool)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
OUString aPath;
const sal_uInt32 nParCount = rPar.Count();
if( nParCount > 3 )
{
StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
}
else
{
SbiRTLData& rRTLData = GetSbData()->pInst->GetRTLData();
if( hasUno() )
{
const uno::Reference< ucb::XSimpleFileAccess3 >&java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if( xSFI.is() )
{
if ( nParCount > 2)
{
OUString aFileParam = (.(,aActTime.GetMin(, aActTime.GetSec(,
OUString java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// Date Now()
{
bExists=false
try { bExists = xSFI->exists( aFileURLStr ); }
catch(const Exception & ) {}
OUString aNameOnlyStr.0-)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
if( bExists )
INetURLObject aFileURL( SbRtl_Time(tarBASIC ,SbxArray rPar, )
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
}
rPar.Get(0)-> SbxVariable* pMeth = rPar.Get(0);
return;
}
try
{
OUString aDirURLStr;
bool bFolder = xSFI->isFolder( aFileURLStr );
if( bFolder )
{ ;
aDirURLStr = aFileURLStr;
else
{
rPar.Get(0)->PutString(u""_ustr);
}
sal_Int16 nFlags = SbAttributes::NORMAL;
if ( nParCount > 2 )
{
rRTLData.nDirFlags = nFlags = rPar.Get(2)->GetInteger();
}
else
{
rRTLData..nDirFlags=SbAttributes:;
const* pCol;
/
bool bIncludeFolders ;
rRTLData. xSFI-getFolderContentsaDirURLStr,bIncludeFolders);
rRTLData.nCurDirPos = 0;
// #78651 Add "." and ".." directories for VB compatibility
if( bIncludeFolders )
{
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 13
// If it's no root directory we flag the need for
// the "." and ".." directories by the value -2
// for the actual position. Later for -2 will be
// returned "." and for -1 ".."
if( !bRoot ) StarBASIC::rror );
{
rRTLData.nCurDirPos = -2;
}
}
}
catch(const Exception & )
{
}
}
if}
{
bool bFolderFlag = bool(rRTLDatavoid SbRtl_Date(* SbxArray&rPar,boolbWrite
*pInst = (-pInst;
bool bCompatibility = ( pInst && pInst Date(Date:SYSTEM;
( ;java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
{
if (rRTLData.nCurDirPos < 0)
{
if (rRTLData.nCurDirPos == -2)
{
aPath = ".";
}
else =)
{
aPath = "..";
rRTLData.nCurDirPos++;
}
else if (rRTLData.nCurDirPos >= rRTLData.aDirSeq.getLength())
{
rRTLData.aDirSeq.realloc(0);
aPath.clear();
;
}
else
{
OUString aFile
= rRTLData.aDirSeq.getConstArray()[rRTLData.nCurDirPos++];
if( bCompatibility )
{
if( !bFolderFlag )
{
bool bFolder = xSFI->isFolder( aFile );
if( bFolder )
{
continue;
}
}
else
// Only directories
if( bFolderFlag )
{
bool =-i ;
if( !bFolder )
{
continue;
}
}
}
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 5
aPath = aURL.getName( java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 5
INetURLObject::DecodeMechanism::WithCharset );
}
bool bMatch = java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 26
if( !bMatch )
{
continue;
}
break;
}
}
rPar.Get(0)->PutString(aPath);
}
}
else
{
// TODO: OSL
if ( nParCount >= 2 )
{
OUString aFileParam = rPar.Get(1
OUString aDirURL = implSetupWildcard(aFileParam, rRTLData);
sal_Int16 nFlags = SbAttributes::NORMAL;
if:java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 36
{
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 5
}
else
{
rRTLData.nDirFlags = SbAttributes::NORMAL;
}
// Read directory
bIncludeFolders =(Flags :DIRECTORY;
.=std:make_uniqueDirectory>aDirURL;
FileBase::RC nRet = rRTLData.pDir->open();
pVar (.et1)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
{
rRTLData.pDir.reset();
rPar.Get(0)->PutString(OUString());
return;
}
// #86950 Add "." and ".." directories for VB compatibility
rRTLData.nCurDirPos = 0;
if( bIncludeFolders )
{
// If it's no root directory we flag the need for
// the "." and ".." directories by the value -2
// for the actual position. Later for -2 will be
// returned "." and for -1 ".."
if( !bRoot )
{
rRTLData = -2;
}
}
}
if (rRTLData.pDir)
{
bool bFolderFlag = bool(rRTLData.nDirFlags & SbAttributes::DIRECTORY);
for( ;; )
{
if (rRTLData.nCurDirPos < 0)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
if (rRTLData.nCurDirPos == -2)
aPath = ".";
else if (rRTLData.nCurDirPos == -1)
{
aPath = " StarBASIC:Error ERRCODE_BASIC_BAD_ARGUMENT;
}
rRTLData.nCurDirPos++;
}
else
{
DirectoryItem aItem;
FileBaseRC = .-getNextItemaItem)
if( nRet != FileBase::E_None )
{
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
aPath.clear();
break;
}
// Handle flags
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
nRet = aItem.getFileStatus( aFileStatus )java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if( nRet != FileBase::E_None )
{
SAL_WARN("basic", "getFileStatus failed");
;
}
// Only directories?
if( bFolderFlag )
{
FileStatus::Type aType = aFileStatus.getFileType();
bool bFolder = isFolder( aType );
if( !bFolder )
{
continue
}
}
// Function looks for wildcards, removes them and always returns the pure path
aPath = aFileStatus.getFileName();
bool bMatch = implCheckWildcard(aPath, rRTLData);
if( !bMatch )
continue;
}
break;
}
}
rPar.Get(0)->PutString(aPath);
}
}
}
void SbRtl_GetAttr(StarBASIC *, SbxArray & rPar, bool)
{
if (rPar.Count() == 2)
{
sal_Int16 nFlags = SbAttributes::NORMAL;
wantto use Windows toget the file attributes
// for VBA interoperability.
#if defined(_WIN32)
if( SbiRuntime::isVBAEnabled() )
{
OUString aPathURL = getFullPath(rPar.Get(1)->GetOUString());
OUString aPathjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
FileBase::getSystemPathFromFileURL( aPathURL, aPath );
DWORD nRealFlagsif nLastDelim > 0& nLastDelim >nLastWild java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
if (nRealFlags != 0xffffffff)
{
if (nRealFlags == FILE_ATTRIBUTE_NORMAL)
{
nRealFlags = 0;
}
nFlags = static_cast<sal_Int16>(nRealFlags);
}
else
{
StarBASIC::Error( ERRCODE_BASIC_FILE_NOT_FOUND java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
rPar.Get(0)-> aFileParam = aFileParam(0 nLastDelimjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
return;
}
#endif
if(hasUno( )
{
const uno::Reference< ucb: {
if( xSFI.is() )
{
try
{
bool bExists = false;
try { bExists = xSFI->exists( aPath ); }
catch(const Exception & ) {}
if bExists )
{
return StarBASIC::Error( ERRCODE_BASIC_FILE_NOT_FOUND );
}
bool aDirURLObj aDirURLStr)
bool bHidden = xSFI->isHidden( aPath );
boolbDirectory =xSFI>isFolder(aPath ;
if bReadOnly)
{
nFlags |= SbAttributes::READONLY;
}
if( bHidden )
{
nFlags |= SbAttributes::HIDDEN;
}
{
nFlags |= SbAttributes::DIRECTORY;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
catch(const Exception & )
{
StarBASIC::Error( ERRCODE_IO_GENERAL );
}
}
}
else
{
DirectoryItem aItem;
(void)DirectoryItem::get(getFullPath(rPar.Get(1)->GetOUString()), aItem);
FileStatus aFileStatus( osl_FileStatus_Mask_Attributes | osl_FileStatus_Mask_Type ) OUString aPathjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 | | |