Resolves: #i19221#  Print Tab(5); "Hello" does not work

Implement the Tab() function in AOO Basic.

Patch by: me

(cherry picked from commit fa1315d25186643ea537972609c117e0c9bb1fbc)

Change-Id: Ifa9843661ce3862347c6351a078ddb207169182a
diff --git a/basic/source/inc/rtlproto.hxx b/basic/source/inc/rtlproto.hxx
index 7324e11..aceff73 100644
--- a/basic/source/inc/rtlproto.hxx
+++ b/basic/source/inc/rtlproto.hxx
@@ -199,6 +199,7 @@ extern RTLFUNC(StrComp);
extern RTLFUNC(String);
extern RTLFUNC(StrReverse);
extern RTLFUNC(SYD);
extern RTLFUNC(Tab);
extern RTLFUNC(Tan);
extern RTLFUNC(UCase);
extern RTLFUNC(Val);
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index aad8410..fb07329 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1725,6 +1725,21 @@ RTLFUNC(String)
    }
}

RTLFUNC(Tab)
{
    (void)pBasic;
    (void)bWrite;

    if ( rPar.Count() < 2 )
        StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
    else
    {
        OUStringBuffer aStr;
        comphelper::string::padToLength(aStr, rPar.Get(1)->GetLong(), '\t');
        rPar.Get(0)->PutString(aStr.makeStringAndClear());
    }
}

RTLFUNC(Tan)
{
    (void)pBasic;
diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx
index b6d7d5d..db0275c 100644
--- a/basic/source/runtime/stdobj.cxx
+++ b/basic/source/runtime/stdobj.cxx
@@ -603,7 +603,7 @@ static Methods aMethods[] = {
{ "Switch",         SbxVARIANT,   2 | _FUNCTION, RTLNAME(Switch),0          },
  { "Expression",   SbxVARIANT, 0,nullptr,0 },
  { "Value",        SbxVARIANT, 0,nullptr,0 },

{ "Tab",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Tab),0             },
{ "Tan",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Tan),0             },
  { "number",       SbxDOUBLE, 0,nullptr,0 },
{ "Time",           SbxVARIANT,       _LFUNCTION,RTLNAME(Time),0            },