2013-03-09 12:38 UTC+0100 Viktor Szakats (harbour syenar.net)

* utils/hbmk2/hbmk2.prg
    + show warning when -sign was requested but no tool could
      be found

  * contrib/hbmisc/stringp.prg
    % TOCHAR() optimized
    * TOCHAR() now outputs date in ISO format [INCOMPATIBLE]

  * contrib/hbmisc/hbedit.prg
  * contrib/hbmisc/tests/pe.prg
  * contrib/hbmisc/tests/readfile.prg
  * contrib/hbmisc/tests/rtfclass.prg
  * contrib/hbmisc/tests/twirler.prg
  * src/vm/debug.c
  * src/vm/hvm.c
  * tests/debug.prg
  * tests/inherit.prg
  * tests/stripem.prg
    * cleanups
    ! fixed pe.prg missing #require

  * contrib/hbct/tests/charadd.prg
  * contrib/hbct/tests/charand.prg
  * contrib/hbct/tests/charnot.prg
  * contrib/hbct/tests/charor.prg
  * contrib/hbct/tests/charrll.prg
  * contrib/hbct/tests/charrlr.prg
  * contrib/hbct/tests/charshl.prg
  * contrib/hbct/tests/charshr.prg
  * contrib/hbct/tests/charsub.prg
  * contrib/hbct/tests/tab.prg
    ! use hb_BChar()

  * contrib/hbtest/core.prg
  * utils/hbtest/hbtest.prg
    + escape Chr( 1 ) and Chr( 2 )

  * utils/hbtest/*.prg
    * formatting
    ! corrected two tests
    % cleaned results string from empty string fragments
This commit is contained in:
Viktor Szakats
2013-03-09 11:39:58 +00:00
parent 67032ce0b0
commit 0e97d08582
40 changed files with 2641 additions and 2644 deletions

View File

@@ -10,6 +10,55 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2013-03-09 12:38 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
+ show warning when -sign was requested but no tool could
be found
* contrib/hbmisc/stringp.prg
% TOCHAR() optimized
* TOCHAR() now outputs date in ISO format [INCOMPATIBLE]
* contrib/hbmisc/hbedit.prg
* contrib/hbmisc/tests/pe.prg
* contrib/hbmisc/tests/readfile.prg
* contrib/hbmisc/tests/rtfclass.prg
* contrib/hbmisc/tests/twirler.prg
* src/vm/debug.c
* src/vm/hvm.c
* tests/debug.prg
* tests/inherit.prg
* tests/stripem.prg
* cleanups
! fixed pe.prg missing #require
* contrib/hbct/tests/charadd.prg
* contrib/hbct/tests/charand.prg
* contrib/hbct/tests/charnot.prg
* contrib/hbct/tests/charor.prg
* contrib/hbct/tests/charrll.prg
* contrib/hbct/tests/charrlr.prg
* contrib/hbct/tests/charshl.prg
* contrib/hbct/tests/charshr.prg
* contrib/hbct/tests/charsub.prg
* contrib/hbct/tests/tab.prg
! use hb_BChar()
* contrib/hbtest/core.prg
* utils/hbtest/hbtest.prg
+ escape Chr( 1 ) and Chr( 2 )
* utils/hbtest/*.prg
* formatting
! corrected two tests
% cleaned results string from empty string fragments
2013-03-08 16:29 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbwin/win_prn2.c
* src/codepage/cpsv437c.c
* src/rtl/treport.prg
* cleanups
2013-03-08 13:32 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
+ added support for posign.exe code signing tool that

View File

@@ -54,6 +54,8 @@
#ifdef __HARBOUR__
#require "hbct"
#else
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -64,10 +66,10 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharAdd( "012345678", Chr( 1 ) ) == "123456789" ? -> "' + CharAdd( "012345678", Chr( 1 ) ) + '"'
? ' CharAdd( "012345678", Chr( 1 ) + Chr( 2 ) ) == "133557799" ? -> "' + CharAdd( "012345678", Chr( 1 ) + Chr( 2 ) ) + '"'
? ' CharAdd( "123456789", Chr( 255 ) ) == "012345678" ? -> "' + CharAdd( "123456789", Chr( 255 ) ) + '"'
? ' CharAdd( "123456789", Chr( 255 ) + Chr( 254 ) ) == "002244668" ? -> "' + CharAdd( "123456789", Chr( 255 ) + Chr( 254 ) ) + '"'
? ' CharAdd( "012345678", hb_BChar( 1 ) ) == "123456789" ? -> "' + CharAdd( "012345678", hb_BChar( 1 ) ) + '"'
? ' CharAdd( "012345678", hb_BChar( 1 ) + hb_BChar( 2 ) ) == "133557799" ? -> "' + CharAdd( "012345678", hb_BChar( 1 ) + hb_BChar( 2 ) ) + '"'
? ' CharAdd( "123456789", hb_BChar( 255 ) ) == "012345678" ? -> "' + CharAdd( "123456789", hb_BChar( 255 ) ) + '"'
? ' CharAdd( "123456789", hb_BChar( 255 ) + hb_BChar( 254 ) ) == "002244668" ? -> "' + CharAdd( "123456789", hb_BChar( 255 ) + hb_BChar( 254 ) ) + '"'
? "End test of CharAdd()"
?

View File

@@ -54,6 +54,8 @@
#ifdef __HARBOUR__
#require "hbct"
#else
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -65,8 +67,8 @@ PROCEDURE Main()
? "Simple tests:"
? ' CharAnd( "012345678", Chr( 254 ) ) == "002244668" ? --> "' + CharAnd( "012345678", Chr( 254 ) ) + '"'
? ' CharAnd( "012345678", Chr( 254 ) + Chr( 252 ) ) == "002044648" ? --> "' + CharAnd( "012345678", Chr( 254 ) + Chr( 252 ) ) + '"'
? ' CharAnd( "012345678", hb_BChar( 254 ) ) == "002244668" ? --> "' + CharAnd( "012345678", hb_BChar( 254 ) ) + '"'
? ' CharAnd( "012345678", hb_BChar( 254 ) + hb_BChar( 252 ) ) == "002044648" ? --> "' + CharAnd( "012345678", hb_BChar( 254 ) + hb_BChar( 252 ) ) + '"'
? "End test of CharAnd()"
?

View File

@@ -56,6 +56,7 @@
#require "hbct"
#else
#define hb_ntos( n ) LTrim( Str( n ) )
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -69,13 +70,13 @@ PROCEDURE Main()
? "Simple tests:"
? ' CharNot( Chr( 85 ) + Chr( 128 ) + Chr( 170 ) + Chr( 1 ) ) =='
? ' Chr( 170 ) + Chr( 127 ) + Chr( 85 ) + Chr( 254 ) ? -->'
? ' CharNot( hb_BChar( 85 ) + hb_BChar( 128 ) + hb_BChar( 170 ) + hb_BChar( 1 ) ) =='
? ' hb_BChar( 170 ) + hb_BChar( 127 ) + hb_BChar( 85 ) + hb_BChar( 254 ) ? -->'
? ' '
cStr := CharNot( Chr( 85 ) + Chr( 128 ) + Chr( 170 ) + Chr( 1 ) )
cStr := CharNot( hb_BChar( 85 ) + hb_BChar( 128 ) + hb_BChar( 170 ) + hb_BChar( 1 ) )
FOR ni := 1 TO Len( cStr )
?? "Chr( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
?? "hb_BChar( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
IF ni < Len( cStr )
?? " + "
ENDIF

View File

@@ -54,6 +54,8 @@
#ifdef __HARBOUR__
#require "hbct"
#else
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -65,8 +67,8 @@ PROCEDURE Main()
? "Simple tests:"
? ' CharOr( "012345678", Chr( 1 ) ) == "113355779" ? --> "' + CharOr( "012345678", Chr( 1 ) ) + '"'
? ' CharOr( "012345678", Chr( 1 ) + Chr( 3 ) ) == "133357779" ? --> "' + CharOr( "012345678", Chr( 1 ) + Chr( 3 ) ) + '"'
? ' CharOr( "012345678", hb_BChar( 1 ) ) == "113355779" ? --> "' + CharOr( "012345678", hb_BChar( 1 ) ) + '"'
? ' CharOr( "012345678", hb_BChar( 1 ) + hb_BChar( 3 ) ) == "133357779" ? --> "' + CharOr( "012345678", hb_BChar( 1 ) + hb_BChar( 3 ) ) + '"'
? "End test of CharOr()"
?

View File

@@ -56,6 +56,7 @@
#require "hbct"
#else
#define hb_ntos( n ) LTrim( Str( n ) )
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -68,13 +69,13 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharRll( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 ) =='
? ' Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ) + Chr( 1 ) + Chr( 2 ) + Chr( 4 ) ? -->'
? ' CharRll( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 ) =='
? ' hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ) + hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) ? -->'
? ' '
cStr := CharRll( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 )
cStr := CharRll( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 )
FOR ni := 1 TO Len( cStr )
?? "Chr( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
?? "hb_BChar( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
IF ni < Len( cStr )
?? " + "
ENDIF

View File

@@ -56,6 +56,7 @@
#require "hbct"
#else
#define hb_ntos( n ) LTrim( Str( n ) )
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -68,13 +69,13 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharRlr( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 ) =='
? ' Chr( 32 ) + Chr( 64 ) + Chr( 128 ) + Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) ? -->'
? ' CharRlr( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 ) =='
? ' hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ) + hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) ? -->'
? ' '
cStr := CharRlr( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 )
cStr := CharRlr( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 )
FOR ni := 1 TO Len( cStr )
?? "Chr( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
?? "hb_BChar( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
IF ni < Len( cStr )
?? " + "
ENDIF

View File

@@ -56,6 +56,7 @@
#require "hbct"
#else
#define hb_ntos( n ) LTrim( Str( n ) )
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -68,13 +69,13 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharShl( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 ) =='
? ' Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 ) ? -->'
? ' CharShl( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 ) =='
? ' hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ) + hb_BChar( 0 ) + hb_BChar( 0 ) + hb_BChar( 0 ) ? -->'
? ' '
cStr := CharShl( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 )
cStr := CharShl( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 )
FOR ni := 1 TO Len( cStr )
?? "Chr( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
?? "hb_BChar( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
IF ni < Len( cStr )
?? " + "
ENDIF

View File

@@ -56,6 +56,7 @@
#require "hbct"
#else
#define hb_ntos( n ) LTrim( Str( n ) )
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -68,13 +69,13 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharShr( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 ) =='
? ' Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) ? -->'
? ' CharShr( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 ) =='
? ' hb_BChar( 0 ) + hb_BChar( 0 ) + hb_BChar( 0 ) + hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) ? -->'
? ' '
cStr := CharShr( Chr( 1 ) + Chr( 2 ) + Chr( 4 ) + Chr( 8 ) + Chr( 16 ) + Chr( 32 ) + Chr( 64 ) + Chr( 128 ), 3 )
cStr := CharShr( hb_BChar( 1 ) + hb_BChar( 2 ) + hb_BChar( 4 ) + hb_BChar( 8 ) + hb_BChar( 16 ) + hb_BChar( 32 ) + hb_BChar( 64 ) + hb_BChar( 128 ), 3 )
FOR ni := 1 TO Len( cStr )
?? "Chr( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
?? "hb_BChar( " + hb_ntos( Asc( SubStr( cStr, ni, 1 ) ) ) + " )"
IF ni < Len( cStr )
?? " + "
ENDIF

View File

@@ -54,6 +54,8 @@
#ifdef __HARBOUR__
#require "hbct"
#else
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -64,10 +66,10 @@ PROCEDURE Main()
?
? "Simple tests:"
? ' CharAdd( "123456789", Chr( 1 ) ) == "012345678" ? -> "' + CharSub( "123456789", Chr( 1 ) ) + '"'
? ' CharAdd( "123456789", Chr( 1 ) + Chr( 2 ) ) == "002244668" ? -> "' + CharSub( "123456789", Chr( 1 ) + Chr( 2 ) ) + '"'
? ' CharAdd( "012345678", Chr( 255 ) ) == "123456789" ? -> "' + CharSub( "012345678", Chr( 255 ) ) + '"'
? ' CharAdd( "012345678", Chr( 255 ) + Chr( 254 ) ) == "133557799" ? -> "' + CharSub( "012345678", Chr( 255 ) + Chr( 254 ) ) + '"'
? ' CharAdd( "123456789", hb_BChar( 1 ) ) == "012345678" ? -> "' + CharSub( "123456789", hb_BChar( 1 ) ) + '"'
? ' CharAdd( "123456789", hb_BChar( 1 ) + hb_BChar( 2 ) ) == "002244668" ? -> "' + CharSub( "123456789", hb_BChar( 1 ) + hb_BChar( 2 ) ) + '"'
? ' CharAdd( "012345678", hb_BChar( 255 ) ) == "123456789" ? -> "' + CharSub( "012345678", hb_BChar( 255 ) ) + '"'
? ' CharAdd( "012345678", hb_BChar( 255 ) + hb_BChar( 254 ) ) == "133557799" ? -> "' + CharSub( "012345678", hb_BChar( 255 ) + hb_BChar( 254 ) ) + '"'
? "End test of CharSub()"
?

View File

@@ -54,6 +54,8 @@
#ifdef __HARBOUR__
#require "hbct"
#else
#define hb_BChar( <n> ) Chr( <n> )
#endif
PROCEDURE Main()
@@ -68,8 +70,8 @@ PROCEDURE Main()
? "Simple tests:"
? ' TabExpand( "-" + Chr( 9 ) + "!" ) == "- !" ? -> "' + TabExpand( "-" + Chr( 9 ) + "!" ) + '"'
? ' TabExpand( "----" + Chr( 9 ) + "!" ) == "---- !" ? -> "' + TabExpand( "----" + Chr( 9 ) + "!" ) + '"'
? ' TabExpand( "-" + Chr( 9) + "!",, "+" ) == "-+++++++!" ? -> "' + TabExpand( "-" + Chr( 9 ) + "!",, "+" ) + '"'
? ' TabExpand( "-" + Chr( 9) + "!", 4 ) == "- !" ? -> "' + TabExpand( "-" + Chr( 9 ) + "!", 4 ) + '"'
? ' TabExpand( "-" + Chr( 9 ) + "!",, "+" ) == "-+++++++!" ? -> "' + TabExpand( "-" + Chr( 9 ) + "!",, "+" ) + '"'
? ' TabExpand( "-" + Chr( 9 ) + "!", 4 ) == "- !" ? -> "' + TabExpand( "-" + Chr( 9 ) + "!", 4 ) + '"'
? ' TabExpand( "----" + Chr( 9 ) + "!", 8 ) == "---- !" ? -> "' + TabExpand( "----" + Chr( 9 ) + "!", 8 ) + '"'
? ' TabExpand( "----" + Chr( 9 ) + "!", 8, "+" ) == "----++++!" ? -> "' + TabExpand( "----" + Chr( 9 ) + "!", 8, "+" ) + '"'
?
@@ -131,10 +133,10 @@ PROCEDURE Main()
?
#if 0
? "Test with a MEMOEDITed string:"
? "Test with a MemoEdit()-ed string:"
? " Now, a MemoEdit() will start. Please type a text, use tab characters"
? " and make sure, you make use of soft and hard returns !"
? " ...press any key to start the memoedit now..."
? " ...press any key to start the MemoEdit() now..."
?
Inkey( 0 )
CLS
@@ -143,7 +145,7 @@ PROCEDURE Main()
CLS
? " Now printing the expanded text using a tab length of 4 and soft CRs"
cStr1 := TabExpand( cStr, 4, "+",,, .F. )
cStr1 := StrTran( cStr, Chr( 141 ), hb_eol() )
cStr1 := StrTran( cStr, hb_BChar( 141 ), hb_eol() )
FOR ni := 1 TO MLCount( cStr1, 59, 4, .T. )
? " " + Str( ni ) + ": " + MemoLine( cStr1, 59, ni, 4, .T. )

View File

@@ -7,9 +7,6 @@
#include "fileio.ch"
#include "box.ch"
#define IIFNIL( isnil, notnil ) iif( notnil == NIL, isnil, notnil )
#define EDIT_LOWER 0 // convert to lowercase
#define EDIT_UPPER 1 // convert to uppercase
#define EDIT_SAME 2 // no convertion
@@ -35,10 +32,10 @@
#define E_CARGO 12 // cargo slot
#define E_STRUCT_LEN 12
THREAD STATIC s_nESize := 4096 // default buffer size
THREAD STATIC t_nESize := 4096 // default buffer size
//
// 03-06-93 07:52pm
// 1993-03-06 19:52
//
// nTop, nLeft, nBottom, nRight - position on the screen
// nLength - the line length
@@ -59,10 +56,15 @@ FUNCTION EditorNew( nTop, nLeft, nBottom, nRight, nLength, ;
LOCAL pEdit, oEdit
__defaultNIL( @nSize, t_nESize )
hb_default( @nLength, 80 )
pEdit := ed_New( nLength, 4, IIFNIL( s_nESize, nSize ), nEscape )
pEdit := ed_New( nLength, 4, nSize, nEscape )
IF ! Empty( pEdit )
__defaultNIL( @cFrame, HB_B_DOUBLE_UNI )
__defaultNIL( @cColor, "W/N,W+/N,W+/R,GR+/N,G+/N" )
oEdit := Array( E_STRUCT_LEN )
oEdit[ E_EDIT ] := pEdit
oEdit[ E_TOP ] := nTop
@@ -70,9 +72,9 @@ FUNCTION EditorNew( nTop, nLeft, nBottom, nRight, nLength, ;
oEdit[ E_BOTTOM ] := nBottom
oEdit[ E_RIGHT ] := nRight
oEdit[ E_LINELEN ] := nLength
oEdit[ E_FRAME ] := IIFNIL( HB_B_DOUBLE_UNI, cFrame )
oEdit[ E_FRAME ] := cFrame
oEdit[ E_TITLE ] := cTitle
oEdit[ E_COLOR ] := IIFNIL( "W/N,W+/N,W+/R,GR+/N,G+/N", cColor )
oEdit[ E_COLOR ] := cColor
oEdit[ E_MODE ] := EDIT_VIEW
ed_Config( pEdit, nTop, nLeft, nBottom, nRight, 0, 0 )
@@ -80,20 +82,12 @@ FUNCTION EditorNew( nTop, nLeft, nBottom, nRight, nLength, ;
RETURN oEdit
//
// 03-06-93 09:16pm
//
PROCEDURE EditorKill( oEdit )
oEdit[ E_EDIT ] := NIL
RETURN
//
// 03-06-93 10:20pm
//
FUNCTION EditorCargo( oEdit, xCargo )
LOCAL _xCargo := oEdit[ E_CARGO ]
@@ -104,10 +98,6 @@ FUNCTION EditorCargo( oEdit, xCargo )
RETURN _xCargo
//
// 19-07-93 01:08am
//
FUNCTION EditorTitle( oEdit, cTitle )
LOCAL _cTitle := oEdit[ E_TITLE ]
@@ -118,8 +108,6 @@ FUNCTION EditorTitle( oEdit, cTitle )
RETURN _cTitle
//
// 04-06-93 02:18am
//
// Sets
// EDIT_EDIT - full edit mode
@@ -136,22 +124,16 @@ FUNCTION EditorMode( oEdit, lMode )
RETURN _lMode
//
// 28-05-92 09:31am
//
FUNCTION EditorSize( nSize )
LOCAL _nSize := s_nESize
LOCAL _nSize := t_nESize
IF nSize != NIL
s_nESize := nSize
t_nESize := nSize
ENDIF
RETURN _nSize
//
// 28-02-92 10:57pm
//
// Appends passed text to the text already stored in editor
//
@@ -162,8 +144,6 @@ PROCEDURE EditorAddText( oEdit, cText )
RETURN
//
// 05-03-92 10:21pm
//
// Sets new text in editor
//
@@ -174,22 +154,20 @@ PROCEDURE EditorSetText( oEdit, cText )
RETURN
//
// 05-03-92 10:23pm
//
// Inserts passed text into editor starting from passed line number
//
PROCEDURE EditorInsText( oEdit, cText, nLine )
LOCAL nNum := IIFNIL( ed_LCount( oEdit[ E_EDIT ] ), nLine )
IF nLine == NIL
nLine := ed_LCount( oEdit[ E_EDIT ] )
ENDIF
ed_InsText( oEdit[ E_EDIT ], cText, nNum )
ed_InsText( oEdit[ E_EDIT ], cText, nLine )
RETURN
//
// 02-03-92 07:53pm
//
// Retrieves the text from editor
// nCarret - specifies if soft carriage return (141/10) should be replaced by
@@ -202,8 +180,6 @@ FUNCTION EditorGetText( oEdit, nCarret )
RETURN ed_GetText( oEdit[ E_EDIT ], nCarret )
//
// 04-03-92 02:35pm
//
// Returns the line count stored in editor
//
@@ -212,8 +188,6 @@ FUNCTION EditorLCount( oEdit )
RETURN ed_LCount( oEdit[ E_EDIT ] )
//
// 06-03-92 07:09pm
//
// Returns the specified line of text from the editor
//
@@ -222,8 +196,6 @@ FUNCTION EditorGetLine( oEdit, nLine )
RETURN ed_GetLine( oEdit[ E_EDIT ], nLine )
//
// 06-03-92 07:10pm
//
// Returns the next line of text
//
@@ -239,8 +211,6 @@ FUNCTION EditorNextLine( oEdit )
RETURN ed_GetNext( oEdit[ E_EDIT ] )
//
// 03-06-93 10:11pm
//
// Edit the specified file
//
@@ -269,17 +239,17 @@ FUNCTION EditorFile( xInput, cOutput, nLineLen, ;
nHandle := xInput
ENDIF
IF nHandle > 0
nLen := Max( FileLength( nHandle ), s_nESize )
IF nHandle != F_ERROR
nLen := Max( FileLength( nHandle ), t_nESize )
ELSE
nLen := s_nESize
nLen := t_nESize
ENDIF
nSize := iif( nLen < 8192, nLen * 2, Int( nLen * 1.5 ) )
oEdit := EditorNew( 1, 0, 23, 79, nLineLen, "--- ", cOutput, , ;
nSize, nEscape )
IF nHandle > 0
IF nHandle != F_ERROR
ed_ReadText( oEdit[ E_EDIT ], nHandle, 0, nLen, ;
iif( lConv == NIL, .F., lConv ) )
IF lClose
@@ -296,8 +266,6 @@ FUNCTION EditorFile( xInput, cOutput, nLineLen, ;
RETURN lSaved
//
// 06-07-93 06:05pm
//
// Reads a text from a file into the editor
//
@@ -314,8 +282,6 @@ FUNCTION EditorRead( oEditor, nHandle, nOffset, nLen, lConv )
RETURN ed_ReadText( oEditor[ E_EDIT ], nHandle, nOffset, nLen, ;
iif( lConv == NIL, .T., lConv ) )
//
// 03-06-93 08:31pm
//
// Start the editor
//
@@ -366,7 +332,7 @@ FUNCTION EditorEdit( oEdit, lEdit, lFrame )
It also sets the current editor as the working one. This means that
all next ED_* functions will used the editor handle specified
by oEditor[ E_EDIT ] - it is tricky solution to speed access (we
don't need to pass the editor handle with every ED_*() call
don't need to pass the editor handle with every ed_*() call
(Well... this editor was created when AT-286 computers worked in
its full glory :)
*/
@@ -437,10 +403,6 @@ FUNCTION EditorEdit( oEdit, lEdit, lFrame )
// *
//
//
// 03-06-93 08:35pm
//
STATIC PROCEDURE EditorKeys( oEdit, nKey )
LOCAL i
@@ -481,10 +443,6 @@ STATIC PROCEDURE EditorKeys( oEdit, nKey )
RETURN
//
// 04-06-93 02:06am
//
STATIC FUNCTION EditorMove( pEdit, nKey )
LOCAL lMoved := .T.
@@ -500,17 +458,13 @@ STATIC FUNCTION EditorMove( pEdit, nKey )
CASE nKey == K_CTRL_HOME ; ed_Home( pEdit )
CASE nKey == K_END ; ed_End( pEdit )
CASE nKey == K_CTRL_END ; ed_End( pEdit )
CASE nKey == K_CTRL_RIGHT // ; ed_NWord( pEdit ) //there are some problems with it
CASE nKey == K_CTRL_RIGHT // ; ed_NWord( pEdit ) // there are some problems with it
CASE nKey == K_CTRL_LEFT ; ed_PWord( pEdit )
OTHERWISE ; lMoved := .F.
ENDCASE
RETURN lMoved
//
// 03-06-93 10:23pm
//
STATIC FUNCTION EditorSave( oEdit )
LOCAL nHandle, cFile
@@ -533,16 +487,12 @@ STATIC FUNCTION EditorSave( oEdit )
RETURN nHandle > 0
//
// 09/29/91 08:40pm
//
FUNCTION SaveBox( top, left, bott, right, kolor, patt )
FUNCTION SaveBox( top, left, bott, right, color, patt )
LOCAL cBox, cClr, nBottom, nRight
IF PCount() > 4
cClr := SetColor( kolor )
cClr := SetColor( color )
cBox := SaveScreen( top, left, bott, right )
hb_DispBox( top, left, bott, right, patt )
ELSE
@@ -554,10 +504,6 @@ FUNCTION SaveBox( top, left, bott, right, kolor, patt )
RETURN { top, left, nBottom, nRight, cBox, cClr }
//
// 09/29/91 08:42pm
//
PROCEDURE RestBox( oBox )
RestScreen( oBox[ 1 ], oBox[ 2 ], oBox[ 3 ], oBox[ 4 ], oBox[ 5 ] )

View File

@@ -52,63 +52,48 @@
#include "hboo.ch"
/* $Doc$
* $FuncName$ <cOut> ToChar( <xTxt>, [cSeparator], [lDebug] )
* $Description$ Convert to character
* $Arguments$ <xTxt> : Item to write
* [cSeparator] : Separator for arrays
* [lDebug] : .T. -> Write debug output
/*
* Convert to character
*
* ToChar( <xTxt>, [cSeparator], [lDebug] ) --> <cOut>
* <xTxt> : Item to write
* [cSeparator] : Separator for arrays
* [lDebug] : .T. -> Write debug output
*
* In DEBUG mode :
*
* It will show the xItem according to the following format :
*
* <num> Numerical
* dd/mm/yyyy Date
* yyyy-mm-dd Date
* "<chr>" Character
* {<el1>, <el2>, ...} Array
* NIL NIL
* .T. / .F. Boolean
* <ClassName>(<ClassH>):{<DataSymbol1>:<val1>, ... }
* Object
*
*
* $End$ */
*/
FUNCTION ToChar( xTxt, cSeparator, lDebug )
LOCAL cValTxt
LOCAL cOut
LOCAL n
LOCAL nLen
LOCAL aData
hb_default( @cSeparator, " " )
hb_default( @lDebug, .F. )
hb_default( @lDebug, .F. )
cValTxt := ValType( xTxt )
SWITCH ValType( xTxt )
CASE "C"
CASE "M" ; RETURN iif( lDebug, '"' + xTxt + '"', xTxt )
CASE "N" ; RETURN hb_ntos( xTxt )
CASE "U" ; RETURN iif( lDebug, "NIL", "" )
CASE "D" ; RETURN hb_DToC( xTxt, "yyyy-mm-dd" )
CASE "L" ; RETURN iif( lDebug, iif( xTxt, ".T.", ".F." ), iif( xTxt, "True", "False" ) )
CASE "B" ; RETURN iif( lDebug, "Block", Eval( xTxt ) )
DO CASE
CASE cValTxt == "C" .OR. cValTxt == "M" // Character
cOut := iif( lDebug, '"' + xTxt + '"', xTxt )
CASE cValTxt == "N" // Numeric
cOut := hb_ntos( xTxt )
CASE cValTxt == "U" // Nothing to write
cOut := iif( lDebug, "NIL", "" )
CASE cValTxt == "D" // Date
cOut := Transform( xTxt, "" )
CASE cValTxt == "L" // Logical
IF lDebug
cOut := iif( xTxt, ".T.", ".F." )
ELSE
cOut := iif( xTxt, "True", "False" )
ENDIF
CASE cValTxt == "A" // Array
CASE "A"
IF lDebug
cOut := "{"
ELSE
@@ -124,15 +109,9 @@ FUNCTION ToChar( xTxt, cSeparator, lDebug )
IF lDebug
cOut += "}"
ENDIF
EXIT
CASE cValTxt == "B" // Codeblock
IF lDebug
cOut := "Block"
ELSE
cOut := Eval( xTxt )
ENDIF
CASE cValTxt == "O" // Object
CASE "O"
IF lDebug
cOut := xTxt:ClassName() + "(#" + ToChar( xTxt:ClassH() ) + "):{"
aData := __objGetValueList( xTxt )
@@ -148,17 +127,14 @@ FUNCTION ToChar( xTxt, cSeparator, lDebug )
ELSE
cOut := ToChar( xTxt:Run(), cSeparator, lDebug )
ENDIF
EXIT
ENDCASE
ENDSWITCH
RETURN cOut
//
// <xItem> Debug( <xItem> )
//
// Non-volatile debugging function showing contents of xItem and returing
// passed argument.
//
FUNCTION Debug( xItem )

View File

@@ -2,19 +2,21 @@
* $Id$
*/
#require "hbmisc"
PROCEDURE Main( cFile )
LOCAL cText
LOCAL lEdit := .T.
IF cFile == NIL
cFile := "sample.txt"
cFile := __FILE__
lEdit := .F.
ENDIF
cText := MemoRead( cFile )
cText := MyMemoEdit( cText, 0, 0, MaxRow(), MaxCol(), lEdit )
MemoWrit( "output.txt", cText )
MemoWrit( hb_FNameExtSet( __FILE__, ".out" ), cText )
RETURN

View File

@@ -17,7 +17,7 @@ PROCEDURE Main( cFile )
oFile:Open()
IF oFile:Error()
? oFile:ErrorMsg( "FileRead: " )
? oFile:ErrorMsg( "FileRead:" )
ELSE
DO WHILE oFile:MoreToRead()
? oFile:ReadLine()

View File

@@ -3,11 +3,10 @@
*/
/*
* harbour rtfclass demo
* Harbour rtfclass demo
* notes : - raw enough but it works
- using hb_f*() - some compilers are not friendly with this :(
- rtf is assumed to have association
* initial release : 23 June 1999 Andi Jahja
* initial release : 1999-06-23 Andi Jahja
* works with printable ascii only
* placed in the public domain
*/
@@ -18,25 +17,27 @@
PROCEDURE Main()
LOCAL ortf := TRtf():new( "test.rtf" )
LOCAL htest := FCreate( "rtf_test.txt" )
LOCAL ctest := ""
LOCAL cTemp := hb_FNameExtSet( __FILE__, ".txt" )
LOCAL oRtf
LOCAL cTest
// create a plain text file
ctest += "This is +bHarbour (C) RTF Class-b" + hb_eol()
ctest += "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG" + hb_eol()
ctest += "+bTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-b" + hb_eol()
ctest += "+iTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-i" + hb_eol()
ctest += "+buTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-bu" + hb_eol()
ctest += "+buiTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-bui" + hb_eol()
ctest += "THE +bQUICK-b +buBROWN-bu +buiFOX-bui +iJUMPS-i +uOVER-u +ilTHE-il +uLAZY-u +buDOG-bu" + hb_eol()
cTest := ""
cTest += "This is +bHarbour (C) RTF Class-b" + hb_eol()
cTest += "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG" + hb_eol()
cTest += "+bTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-b" + hb_eol()
cTest += "+iTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-i" + hb_eol()
cTest += "+buTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-bu" + hb_eol()
cTest += "+buiTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG-bui" + hb_eol()
cTest += "THE +bQUICK-b +buBROWN-bu +buiFOX-bui +iJUMPS-i +uOVER-u +ilTHE-il +uLAZY-u +buDOG-bu" + hb_eol()
FWrite( htest, ctest )
FClose( htest )
hb_MemoWrit( cTemp, cTest )
// convert text file to rtf
ortf:write( "rtf_test.txt" )
ortf:close()
oRtf := TRtf():new( hb_FNameExtSet( __FILE__, ".rtf" ) )
oRtf:write( cTemp )
oRtf:close()
RETURN
@@ -44,25 +45,25 @@ CREATE CLASS TRtf
VAR nHandle
METHOD new( cfilename )
METHOD write( csource )
METHOD new( cFilename )
METHOD write( cSource )
METHOD CLOSE()
END CLASS
METHOD new( cfilename ) CLASS TRtf
METHOD new( cFilename ) CLASS TRtf
::nhandle := FCreate( cfilename )
FWrite( ::nhandle, ;
::nHandle := FCreate( cFilename )
FWrite( ::nHandle, ;
"{\rtf1\ansi\deff0{\fonttbl {\f0\fnil\fcharset0 Courier New;}{\f1\fnil\fcharset0 Arial;}}" + ;
"\uc1\pard\lang1033\ulnone\f0\fs20" + hb_eol() )
RETURN self
METHOD write( csource ) CLASS TRtf
METHOD write( cSource ) CLASS TRtf
LOCAL cchar, cline, xatt, i
LOCAL nchar, y
LOCAL cChar, cLine, xAtt, i
LOCAL nChar, y
// These are character attributes, self-defined
// + means a turn-on
@@ -83,46 +84,46 @@ METHOD write( csource ) CLASS TRtf
{ "-il" , "\ulnone\i0 " }, ; /* turn italic_underline off */
{ "-u" , "\ulnone " } } /* turn underline off */
hb_FUse( csource ) // open source file
hb_FUse( cSource ) // open source file
WHILE ! hb_FAtEof() // read the file line by line
cline := hb_FReadLn() + "\par"
y := Len( cline )
FOR nchar := 1 TO y
cchar := SubStr( cline, nchar, 1 )
cLine := hb_FReadLn() + "\par"
y := Len( cLine )
FOR nChar := 1 TO y
cChar := SubStr( cLine, nChar, 1 )
// todo : i need function dec2hex()
// to convert ascii to 2-characters hex
// ie : dec2hex( "H" ) -> 48
IF cchar == "+" .OR. cchar == "-"
xatt := cchar + ;
SubStr( cline, nchar + 1, 1 ) + ;
SubStr( cline, nchar + 2, 1 ) + ;
SubStr( cline, nchar + 3, 1 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xatt } ) ) > 0
IF cChar == "+" .OR. cChar == "-"
xAtt := cChar + ;
SubStr( cLine, nChar + 1, 1 ) + ;
SubStr( cLine, nChar + 2, 1 ) + ;
SubStr( cLine, nChar + 3, 1 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xAtt } ) ) > 0
FWrite( ::nhandle, attrib[ i ][ 2 ] )
nchar := nchar + Len( xatt ) - 1
nChar += Len( xAtt ) - 1
ELSE
// 3 attributes
xatt := Left( xatt, 3 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xatt } ) ) > 0
FWrite( ::nhandle, attrib[ i ][ 2 ] )
nchar := nchar + Len( xatt ) - 1
xatt := Left( xAtt, 3 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xAtt } ) ) > 0
FWrite( ::nHandle, attrib[ i ][ 2 ] )
nChar += Len( xAtt ) - 1
ELSE
// 2 attributes
xatt := Left( xatt, 2 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xatt } ) ) > 0
FWrite( ::nhandle, attrib[ i ][ 2 ] )
nchar := nchar + Len( xatt ) - 1
xAtt := Left( xAtt, 2 )
IF ( i := AScan( attrib, {| e | e[ 1 ] == xAtt } ) ) > 0
FWrite( ::nHandle, attrib[ i ][ 2 ] )
nChar += Len( xAtt ) - 1
ELSE
FWrite( ::nhandle, cchar )
FWrite( ::nHandle, cChar )
ENDIF
ENDIF
ENDIF
ELSE
FWrite( ::nhandle, cchar )
FWrite( ::nHandle, cChar )
ENDIF
NEXT
FWrite( ::nhandle, hb_eol() )
FWrite( ::nHandle, hb_eol() )
hb_FSkip() // read next line
ENDDO
hb_FUse()
@@ -131,7 +132,7 @@ METHOD write( csource ) CLASS TRtf
METHOD CLOSE() CLASS TRtf
FWrite( ::nhandle, "\f1\fs16\par" + hb_eol() + "}" )
FClose( ::nhandle )
FWrite( ::nHandle, "\f1\fs16\par" + hb_eol() + "}" )
FClose( ::nHandle )
RETURN self

View File

@@ -3,6 +3,7 @@
*/
// Test program for new hbmisc twirler class
/* Harbour Project source code
http://harbour-project.org/
Donated to the public domain on 2001-03-15 by David G. Holm <dholm@jsd-llc.com>

View File

@@ -212,6 +212,8 @@ STATIC FUNCTION XToStr( xValue, lInString )
STATIC sc_hReplace := { ;
Chr( 0 ) => '" + Chr( 0 ) + "', ;
Chr( 1 ) => '" + Chr( 1 ) + "', ;
Chr( 2 ) => '" + Chr( 2 ) + "', ;
Chr( 7 ) => '" + Chr( 7 ) + "', ;
Chr( 8 ) => '" + Chr( 8 ) + "', ;
Chr( 9 ) => '" + Chr( 9 ) + "', ;

View File

@@ -464,7 +464,7 @@ HB_FUNC( WIN_PRINTFILERAW )
hb_retni( iResult );
}
/* Positions for win_PrinterList() array */
/* Positions for win_printerList() array */
#define HB_WINPRN_NAME 1
#define HB_WINPRN_PORT 2

View File

@@ -58,13 +58,13 @@
in NTXSWE.OBJ is that the Danish "AE" and "ae" compound characters
(ASCII values 146 and 145 respectively) turn up between ASCII 135 and
136, a rather pointless relocation IMHO. I found no way to replicate
that behaviour in the character strings below, so if you allow chr(146)
and chr(145) to be saved in indexed fields there WILL be index corruption
that behaviour in the character strings below, so if you allow Chr( 146 )
and Chr( 145 ) to be saved in indexed fields there WILL be index corruption
if data is shared between Clipper and Harbour. Upper()/Lower() converson
of those characters as well as all accented characters must be done
programatically just like in Clipper.
For sharing data with Clipper, assuming that the chr(146) and chr(145)
For sharing data with Clipper, assuming that the Chr( 146 ) and Chr( 145 )
problem is properly taken care of in your code, this codepage version
must be used. For correct collation according to the book "Svenska
skrivregler" (Swedish Writing Rules) by Svenska Språknämnden (the Swedish

View File

@@ -1146,7 +1146,7 @@ METHOD LoadReportFile( cFrmFile AS STRING ) CLASS HBReportForm
*
* 1. The expression is empty if:
* a. Passed pointer is equal to 65535
* b. Character following character pointed to by pointer is Chr(0)
* b. Character following character pointed to by pointer is Chr( 0 )
*
*/
@@ -1284,7 +1284,7 @@ STATIC FUNCTION ParseHeader( cHeaderString, nFields )
* Notes:
* 1. The Header or Contents expressions are empty if:
* a. Passed pointer is equal to 65535
* b. Character following character pointed to by pointer is Chr(0)
* b. Character following character pointed to by pointer is Chr( 0 )
*
*/

View File

@@ -105,11 +105,10 @@
* HB_DBG_VMQUIT
*/
/* $Doc$
* $FuncName$ AddToArray( <pItem>, <pReturn>, <uiPos> )
* $Description$ Add <pItem> to array <pReturn> at pos <uiPos>
* $End$ */
/*
* Add <pItem> to array <pReturn> at pos <uiPos>
* AddToArray( <pItem>, <pReturn>, <uiPos> )
*/
static void AddToArray( PHB_ITEM pItem, PHB_ITEM pReturn, HB_SIZE nPos )
{
HB_TRACE( HB_TR_DEBUG, ( "AddToArray(%p, %p, %" HB_PFS "u)", pItem, pReturn, nPos ) );
@@ -131,10 +130,10 @@ static void AddToArray( PHB_ITEM pItem, PHB_ITEM pReturn, HB_SIZE nPos )
hb_itemArrayPut( pReturn, nPos, pItem );
}
/* $Doc$
* $FuncName$ <nVars> __dbgVMStkGCount()
* $Description$ Returns the length of the global stack
* $End$ */
/*
* Returns the length of the global stack
* __dbgVMStkGCount() --> <nVars>
*/
HB_FUNC( __DBGVMSTKGCOUNT )
{
if( hb_vmInternalsEnabled() )
@@ -143,10 +142,10 @@ HB_FUNC( __DBGVMSTKGCOUNT )
hb_retns( 0 );
}
/* $Doc$
* $FuncName$ <aStack> __dbgVMStkGList()
* $Description$ Returns the global stack
* $End$ */
/*
* Returns the global stack
* __dbgVMStkGList() --> <aStack>
*/
HB_FUNC( __DBGVMSTKGLIST )
{
if( hb_vmInternalsEnabled() )
@@ -166,10 +165,10 @@ HB_FUNC( __DBGVMSTKGLIST )
hb_reta( 0 );
}
/* $Doc$
* $FuncName$ <nVars> hb_stackLen( <nProcLevel> )
* $Description$ Returns params plus locals amount of the nProcLevel function
* $End$ */
/*
* Returns params plus locals amount of the nProcLevel function
* hb_stackLen( <nProcLevel> ) --> <nVars>
*/
static HB_ISIZ hb_stackLen( int iLevel )
{
HB_ISIZ nBaseOffset, nPrevOffset, nLen;
@@ -191,10 +190,10 @@ static HB_ISIZ hb_stackLen( int iLevel )
return nLen;
}
/* $Doc$
* $FuncName$ <nVars> __dbgVMStkLCount( <nProcLevel> )
* $Description$ Returns params plus locals amount of the nProcLevel function
* $End$ */
/*
* Returns params plus locals amount of the nProcLevel function
* __dbgVMStkLCount( <nProcLevel> ) --> <nVars>
*/
HB_FUNC( __DBGVMSTKLCOUNT )
{
if( hb_vmInternalsEnabled() )
@@ -203,17 +202,17 @@ HB_FUNC( __DBGVMSTKLCOUNT )
hb_retns( 0 );
}
/* $Doc$
* $FuncName$ <aStack> __dbgVMStkLList()
* $Description$ Returns the stack of the calling function
* "[<symbol>]" Means symbol.
/*
* Returns the stack of the calling function
* "[<symbol>]" Means symbol.
*
* [1] Symbol of current function
* [2] Self | NIL
* [3 .. x] Parameters
* [x+1 .. y] Locals
* [y+1 ..] Pushed data
* $End$ */
* [1] Symbol of current function
* [2] Self | NIL
* [3 .. x] Parameters
* [x+1 .. y] Locals
* [y+1 ..] Pushed data
* __dbgVMStkLList() --> <aStack>
*/
HB_FUNC( __DBGVMSTKLLIST )
{
if( hb_vmInternalsEnabled() )

View File

@@ -11867,10 +11867,9 @@ HB_FUNC( __DBGINVOKEDEBUG )
hb_retl( HB_FALSE );
}
/* $Doc$
* $FuncName$ <aStat> __dbgvmVarSList()
* $Description$ Return the statics array. Please AClone() before assignments
* $End$ */
/* Return the statics array. Please AClone() before assignments
* __dbgVMVarSList() --> <aStat>
*/
HB_FUNC( __DBGVMVARSLIST )
{
if( hb_vmInternalsEnabled() )
@@ -11882,10 +11881,9 @@ HB_FUNC( __DBGVMVARSLIST )
}
}
/* $Doc$
* $FuncName$ <nStatics> __dbgvmVarSLen()
* $Description$ Return the statics array length.
* $End$ */
/* Return the statics array length.
* __dbgVMVarSLen() --> <nStatics>
*/
HB_FUNC( __DBGVMVARSLEN )
{
HB_STACK_TLS_PRELOAD
@@ -11896,20 +11894,19 @@ HB_FUNC( __DBGVMVARSLEN )
hb_retnint( 0 );
}
/* $Doc$
* $FuncName$ <xStat> __dbgvmVarSGet(<nStatic>)
* $Description$ Return a specified statics
* $End$ */
/* Return a specified statics
* __dbgVMVarSGet( <nStatic> ) --> <xStat>
*/
HB_FUNC( __DBGVMVARSGET )
{
if( hb_vmInternalsEnabled() )
hb_itemReturn( hb_dbg_vmVarSGet( hb_param( 1, HB_IT_ARRAY ), hb_parni( 2 ) ) );
}
/* $Doc$
* $FuncName$ __dbgvmVarSSet(<nStatic>,<uValue>)
* $Description$ Sets the value of a specified statics
* $End$ */
/*
* Sets the value of a specified statics
* __dbgVMVarSSet( <nStatic>, <uValue> ) --> NIL
*/
HB_FUNC( __DBGVMVARSSET )
{
if( hb_vmInternalsEnabled() )
@@ -11956,10 +11953,10 @@ PHB_ITEM hb_dbg_vmVarGGet( int nGlobal, int nOffset )
#endif
}
/* $Doc$
* $FuncName$ <aStat> __dbgvmVarGList()
* $Description$ Return a clone of the globals array.
* $End$ */
/*
* Return a clone of the globals array.
* __dbgVMVarGList() --> <aStat>
*/
HB_FUNC( __DBGVMVARGLIST )
{
if( hb_vmInternalsEnabled() )
@@ -12058,10 +12055,10 @@ void hb_vmUpdateAllocator( PHB_ALLOCUPDT_FUNC pFunc, int iCount )
/* ------------------------------------------------------------------------ */
/* $Doc$
* $FuncName$ __SETPROFILER( <lOnOff> ) --> <lOldValue>
* $Description$ Turns on | off the profiler activity
* $End$ */
/*
* Turns on | off the profiler activity
* __SetProfiler( <lOnOff> ) --> <lOldValue>
*/
HB_FUNC( __SETPROFILER )
{
HB_STACK_TLS_PRELOAD
@@ -12104,10 +12101,10 @@ HB_FUNC( __OPGETPRF ) /* profiler: It returns an array with an opcode called and
}
}
/* $Doc$
* $FuncName$ __TRACEPRGCALLS( <lOnOff> ) --> <lOldValue>
* $Description$ Turns on | off tracing of PRG-level function and method calls
* $End$ */
/*
* Turns on | off tracing of PRG-level function and method calls
* __TracePrgCalls( <lOnOff> ) --> <lOldValue>
*/
HB_FUNC( __TRACEPRGCALLS )
{
HB_STACK_TLS_PRELOAD

View File

@@ -3,10 +3,7 @@
*/
/*
* $Doc$
* $Description$ Debug function tests.
* Based on classes.prg
* $End$
* Debug function tests
*
* Written by Eddie Runia <eddie@runia.com>
* www - http://harbour-project.org
@@ -109,10 +106,7 @@ FUNCTION FuncSecond( nParam, cParam, uParam )
RETURN NIL
/* $Doc$
* $FuncName$ <oForm> TForm()
* $Description$ Returns TForm object
* $End$ */
/* TForm() -> <oTForm> */
FUNCTION TForm()
@@ -139,11 +133,6 @@ FUNCTION TForm()
RETURN s_oClass:Instance() // builds an object of this class
/* $Doc$
* $FuncName$ <oForm> TForm:New()
* $Description$ Constructor
* $End$ */
STATIC FUNCTION New()
LOCAL Self := QSelf()
@@ -155,12 +144,6 @@ STATIC FUNCTION New()
RETURN Self
/* $Doc$
* $FuncName$ TForm:Show()
* $Description$ Show a form
* $End$ */
STATIC FUNCTION Show()
LOCAL Self := QSelf()

View File

@@ -21,8 +21,8 @@ PROCEDURE Main()
LOCAL oTo
LOCAL cOut
oFrom := TOnTop() :New( "hello.prg", "R" )
oTo := TTextFile():New( "hello.out", "W" )
oFrom := TOnTop() :New( __FILE__, "R" )
oTo := TTextFile():New( hb_FNameExtSet( __FILE__, ".out" ), "W" )
? "What's in oFrom"
? hb_ValToExp( { oFrom, __objGetMethodList( oFrom ) } )
@@ -32,7 +32,7 @@ PROCEDURE Main()
? hb_ValToExp( { oFrom:TEmpty, __objGetMethodList( oFrom:TEmpty ) } )
?
? "Let's call Run() from TEmpty : "
? "Let's call Run() from TEmpty:"
oFrom:TEmpty:Run()
?

View File

@@ -29,14 +29,10 @@ PROCEDURE Main( cFrom, cTo )
LOCAL cOut
hb_default( @cFrom, __FILE__ )
hb_default( @cTo, "strip.out" )
hb_default( @cTo, hb_FNameExtSet( __FILE__, ".out" ) )
oFrom := TTextFile()
// ? hb_ValToExp( __objGetMethodList( oFrom ) )
oFrom:New( cFrom, "R" )
oTo := TTextFile()
// ? hb_ValToExp( __objGetMethodList( oTo ) )
oTo:New( cTo, "W" )
oFrom := TTextFile():New( cFrom, "R" )
oTo := TTextFile():New( cTo, "W" )
DO WHILE ! oFrom:Eof()
cOut := oFrom:Run()

View File

@@ -7394,9 +7394,11 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
IF AScan( hbmk[ _HBMK_aOPTS ], {| tmp | HBMK_IS_IN( Lower( tmp ), "-v|/v" ) } ) == 0
AAdd( hbmk[ _HBMK_aOPTS ], "-q" )
ENDIF
ELSEIF ( cBin_Sign := FindInPath( "posign.exe" ) ) != NIL /* in Pelles C 7.0 or newer */
ELSEIF ( cBin_Sign := FindInPath( "posign.exe" ) ) != NIL /* in Pelles C 7.00.0 or newer */
cBin_Sign := "posign.exe"
cOpt_Sign := "{FS} -pfx:{ID} -pwd:{PW} -timeurl:{UT} {OB}"
ELSE
_hbmk_OutErr( hbmk, I_( "Warning: Code signing skipped, because no supported code signing tool could be found." ) )
ENDIF
ENDIF

View File

@@ -528,6 +528,8 @@ FUNCTION XToStrX( xValue )
CASE cType == "C"
xValue := StrTran( xValue, Chr( 0 ), '" + Chr( 0 ) + "' )
xValue := StrTran( xValue, Chr( 1 ), '" + Chr( 1 ) + "' )
xValue := StrTran( xValue, Chr( 2 ), '" + Chr( 2 ) + "' )
xValue := StrTran( xValue, Chr( 9 ), '" + Chr( 9 ) + "' )
xValue := StrTran( xValue, Chr( 10 ), '" + Chr( 10 ) + "' )
xValue := StrTran( xValue, Chr( 13 ), '" + Chr( 13 ) + "' )

View File

@@ -62,11 +62,11 @@ PROCEDURE Main_ARRAY()
#ifndef __XPP__
HBTEST ACopy() IS NIL
#endif
HBTEST ACopy({}, "C") IS NIL
HBTEST ACopy("C", {}) IS NIL
HBTEST ACopy({}, {}) IS "{.[0].}"
HBTEST ACopy({}, ErrorNew()) IS "ERROR Object"
HBTEST ACopy(ErrorNew(), {}) IS "{.[0].}"
HBTEST ACopy( {}, "C" ) IS NIL
HBTEST ACopy( "C", {} ) IS NIL
HBTEST ACopy( {}, {} ) IS "{.[0].}"
HBTEST ACopy( {}, ErrorNew() ) IS "ERROR Object"
HBTEST ACopy( ErrorNew(), {} ) IS "{.[0].}"
#ifndef __XPP__
HBTEST AClone() IS NIL
#endif
@@ -88,13 +88,13 @@ PROCEDURE Main_ARRAY()
HBTEST AScan( {} ) IS 0
#endif
HBTEST AScan( {}, "" ) IS 0
HBTEST AScan( ErrorNew(), "NOT_FOUND") IS 0
HBTEST AScan( ErrorNew(), "NOT_FOUND" ) IS 0
#ifndef __XPP__
HBTEST ASort() IS NIL
#endif
HBTEST ASort(10) IS NIL
HBTEST ASort({}) IS "{.[0].}"
HBTEST ASort(ErrorNew()) IS NIL
HBTEST ASort( 10 ) IS NIL
HBTEST ASort( {} ) IS "{.[0].}"
HBTEST ASort( ErrorNew() ) IS NIL
#ifdef HB_CLP_STRICT
#ifndef __XPP__
HBTEST AFill() IS "E 1 BASE 2017 Argument error (AEVAL) OS:0 #:0 A:4:U:NIL;B:{||...};U:NIL;U:NIL "
@@ -220,72 +220,72 @@ PROCEDURE Main_ARRAY()
/* AFill() */
HBTEST TAStr(AFill(TANew(),"X") ) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X",NIL,-2)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X",NIL, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X",NIL, 3)) IS "XXX......."
HBTEST TAStr(AFill(TANew(),"X",NIL,20)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 0) ) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 0,-2)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 0, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 0, 3)) IS "XXX......."
HBTEST TAStr(AFill(TANew(),"X", 0,20)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 1) ) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 1,-2)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 1, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 1, 3)) IS "XXX......."
HBTEST TAStr(AFill(TANew(),"X", 1,20)) IS "XXXXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 3) ) IS "..XXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", 3,-2)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 3, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 3, 3)) IS "..XXX....."
HBTEST TAStr(AFill(TANew(),"X", 3,20)) IS "..XXXXXXXX"
HBTEST TAStr(AFill(TANew(),"X", -1) ) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", -1,-2)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", -1, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", -1, 3)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", -1,20)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 21) ) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 21,-2)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 21, 0)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 21, 3)) IS ".........."
HBTEST TAStr(AFill(TANew(),"X", 21,20)) IS ".........."
HBTEST TAStr( AFill( TANew(), "X" ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", NIL, -2 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", NIL, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", NIL, 3 ) ) IS "XXX......."
HBTEST TAStr( AFill( TANew(), "X", NIL, 20 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 0 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 0, -2 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 0, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 0, 3 ) ) IS "XXX......."
HBTEST TAStr( AFill( TANew(), "X", 0, 20 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 1 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 1, -2 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 1, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 1, 3 ) ) IS "XXX......."
HBTEST TAStr( AFill( TANew(), "X", 1, 20 ) ) IS "XXXXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 3 ) ) IS "..XXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", 3, -2 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 3, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 3, 3 ) ) IS "..XXX....."
HBTEST TAStr( AFill( TANew(), "X", 3, 20 ) ) IS "..XXXXXXXX"
HBTEST TAStr( AFill( TANew(), "X", -1 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", -1, -2 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", -1, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", -1, 3 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", -1, 20 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 21 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 21, -2 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 21, 0 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 21, 3 ) ) IS ".........."
HBTEST TAStr( AFill( TANew(), "X", 21, 20 ) ) IS ".........."
/* ACopy() */
HBTEST TAStr(ACopy(TARng(),TANew(), 1 )) IS "ABCDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 0 )) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 3 )) IS "ABC......."
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 20 )) IS "ABCDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 3 )) IS "CDEFGHIJ.."
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 0 )) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 3 )) IS "CDE......."
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 20 )) IS "CDEFGHIJ.."
HBTEST TAStr(ACopy(TARng(),TANew(), 21 )) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 0 )) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 3 )) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 20 )) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 1,NIL, 1)) IS "ABCDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 0, 1)) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 3, 0)) IS "ABC......."
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 3, 2)) IS ".ABC......"
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 3, 8)) IS ".......ABC"
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 3, 20)) IS ".........A" /* Strange in CA-Cl*pper, it should return: ".........." */
HBTEST TAStr(ACopy(TARng(),TANew(), 1, 20, 1)) IS "ABCDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 3,NIL, 3)) IS "..CDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 0, 3)) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 3, 0)) IS "CDE......."
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 3, 2)) IS ".CDE......"
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 3, 8)) IS ".......CDE"
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 3, 20)) IS ".........C" /* Strange in CA-Cl*pper, it should return: ".........." */
HBTEST TAStr(ACopy(TARng(),TANew(), 3, 20, 3)) IS "..CDEFGHIJ"
HBTEST TAStr(ACopy(TARng(),TANew(), 21,NIL, 21)) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 0, 21)) IS ".........."
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 3, 0)) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 3, 2)) IS ".........." /* Bug in CA-Cl*pper, it will return: ".J........", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 3, 8)) IS ".........." /* Bug in CA-Cl*pper, it will return: ".......J..", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 3, 20)) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
HBTEST TAStr(ACopy(TARng(),TANew(), 21, 20, 21)) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 1 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 0 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 3 ) ) IS "ABC......."
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 20 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 3 ) ) IS "CDEFGHIJ.."
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 0 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 3 ) ) IS "CDE......."
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 20 ) ) IS "CDEFGHIJ.."
HBTEST TAStr( ACopy( TARng(), TANew(), 21 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 0 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 3 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 20 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 1, NIL, 1 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 0, 1 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 3, 0 ) ) IS "ABC......."
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 3, 2 ) ) IS ".ABC......"
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 3, 8 ) ) IS ".......ABC"
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 3, 20 ) ) IS ".........A" /* Strange in CA-Cl*pper, it should return: ".........." */
HBTEST TAStr( ACopy( TARng(), TANew(), 1, 20, 1 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 3, NIL, 3 ) ) IS "..CDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 0, 3 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 3, 0 ) ) IS "CDE......."
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 3, 2 ) ) IS ".CDE......"
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 3, 8 ) ) IS ".......CDE"
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 3, 20 ) ) IS ".........C" /* Strange in CA-Cl*pper, it should return: ".........." */
HBTEST TAStr( ACopy( TARng(), TANew(), 3, 20, 3 ) ) IS "..CDEFGHIJ"
HBTEST TAStr( ACopy( TARng(), TANew(), 21, NIL, 21 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 0, 21 ) ) IS ".........."
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 3, 0 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: "J.........", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 3, 2 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: ".J........", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 3, 8 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: ".......J..", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 3, 20 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
HBTEST TAStr( ACopy( TARng(), TANew(), 21, 20, 21 ) ) IS ".........." /* Bug in CA-Cl*pper, it will return: ".........J", fixed in 5.3a */
/* ASort() */
@@ -293,64 +293,64 @@ PROCEDURE Main_ARRAY()
sorting algorithms. Anyhow the results pattern should match.
[vszakats] */
#ifdef __HARBOUR__
HBTEST TAStr(ASort(TARRv(),,,{||NIL})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||hb_SToD()})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"0"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"1"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"2"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"a"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"A"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||""})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||"z"})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||.T.})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||.F.})) IS "FEIDGCHBJA"
HBTEST TAStr(ASort(TARRv(),,,{||2})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||1})) IS "DCBAEFIHGJ"
HBTEST TAStr(ASort(TARRv(),,,{||0})) IS "FEIDGCHBJA"
HBTEST TAStr( ASort( TARRv(),,, {|| NIL } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| hb_SToD() } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "0" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "1" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "2" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "a" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "A" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "z" } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| .T. } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| .F. } ) ) IS "FEIDGCHBJA"
HBTEST TAStr( ASort( TARRv(),,, {|| 2 } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| 1 } ) ) IS "DCBAEFIHGJ"
HBTEST TAStr( ASort( TARRv(),,, {|| 0 } ) ) IS "FEIDGCHBJA"
#else
HBTEST TAStr(ASort(TARRv(),,,{||NIL})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||hb_SToD()})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"0"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"1"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"2"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"a"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"A"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||""})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||"z"})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||.T.})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||.F.})) IS "DCEABJIHFG"
HBTEST TAStr(ASort(TARRv(),,,{||2})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||1})) IS "IHGFEDCBAJ"
HBTEST TAStr(ASort(TARRv(),,,{||0})) IS "DCEABJIHFG"
HBTEST TAStr( ASort( TARRv(),,, {|| NIL } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| hb_SToD() } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "0" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "1" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "2" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "a" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "A" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| "z" } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| .T. } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| .F. } ) ) IS "DCEABJIHFG"
HBTEST TAStr( ASort( TARRv(),,, {|| 2 } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| 1 } ) ) IS "IHGFEDCBAJ"
HBTEST TAStr( ASort( TARRv(),,, {|| 0 } ) ) IS "DCEABJIHFG"
#endif
HBTEST TAStr(ASort(TARRv())) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(),NIL,NIL)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(),NIL, -2)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(),NIL, 0)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(),NIL, 3)) IS "HIJGFEDCBA"
HBTEST TAStr(ASort(TARRv(),NIL, 20)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(), -5 )) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), -5, -2)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), -5, 0)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), -5, 3)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), -5, 20)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 0 )) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(), 0, -2)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(), 0, 0)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(), 0, 3)) IS "HIJGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 0, 20)) IS "ABCDEFGHIJ"
HBTEST TAStr(ASort(TARRv(), 5 )) IS "JIHGABCDEF"
HBTEST TAStr( ASort( TARRv() ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), NIL, NIL ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), NIL, -2 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), NIL, 0 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), NIL, 3 ) ) IS "HIJGFEDCBA"
HBTEST TAStr( ASort( TARRv(), NIL, 20 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), -5 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), -5, -2 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), -5, 0 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), -5, 3 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), -5, 20 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 0 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), 0, -2 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), 0, 0 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), 0, 3 ) ) IS "HIJGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 0, 20 ) ) IS "ABCDEFGHIJ"
HBTEST TAStr( ASort( TARRv(), 5 ) ) IS "JIHGABCDEF"
#ifdef __HARBOUR__
HBTEST TAStr(ASort(TARRv(), 5, -2)) IS "JIHGABCDEF" /* CA-Cl*pper will crash or GPF on that line. */
HBTEST TAStr( ASort( TARRv(), 5, -2 ) ) IS "JIHGABCDEF" /* CA-Cl*pper will crash or GPF on that line. */
#endif
HBTEST TAStr(ASort(TARRv(), 5, 0)) IS "JIHGABCDEF"
HBTEST TAStr(ASort(TARRv(), 5, 3)) IS "JIHGDEFCBA"
HBTEST TAStr(ASort(TARRv(), 5, 20)) IS "JIHGABCDEF"
HBTEST TAStr(ASort(TARRv(), 20 )) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 20, -2)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 20, 0)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 20, 3)) IS "JIHGFEDCBA"
HBTEST TAStr(ASort(TARRv(), 20, 20)) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 5, 0 ) ) IS "JIHGABCDEF"
HBTEST TAStr( ASort( TARRv(), 5, 3 ) ) IS "JIHGDEFCBA"
HBTEST TAStr( ASort( TARRv(), 5, 20 ) ) IS "JIHGABCDEF"
HBTEST TAStr( ASort( TARRv(), 20 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 20, -2 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 20, 0 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 20, 3 ) ) IS "JIHGFEDCBA"
HBTEST TAStr( ASort( TARRv(), 20, 20 ) ) IS "JIHGFEDCBA"
/* AScan() */
@@ -361,8 +361,8 @@ PROCEDURE Main_ARRAY()
#endif
HBTEST AScan( "A", "A" ) IS 0
HBTEST AScan( "A", {|| .F. } ) IS 0
HBTEST AScan( {1,2,3}, {|| NIL } ) IS 0
HBTEST AScan( saAllTypes, scString ) IS 1
HBTEST AScan( { 1, 2, 3 }, {|| NIL } ) IS 0
HBTEST AScan( saAllTypes, scString ) IS 1
#ifdef __HARBOUR__
HBTEST AScan( @saAllTypes, scString ) IS 1 /* Bug in CA-Cl*pper, it will return 0 */
HBTEST AScan( saAllTypes, @scString ) IS 1 /* Bug in CA-Cl*pper, it will return 0 */
@@ -427,6 +427,7 @@ STATIC FUNCTION TASOSM2()
RETURN cString + Str( Len( aArray ) ) + XToStrX( aArray )
STATIC FUNCTION TANew( cChar, nLen )
LOCAL aArray
LOCAL tmp
@@ -449,6 +450,7 @@ STATIC FUNCTION TANew( cChar, nLen )
RETURN aArray
STATIC FUNCTION TARng( nLen )
LOCAL aArray
LOCAL tmp
@@ -465,6 +467,7 @@ STATIC FUNCTION TARng( nLen )
RETURN aArray
STATIC FUNCTION TARRv( nLen )
LOCAL aArray
LOCAL tmp
@@ -481,6 +484,7 @@ STATIC FUNCTION TARRv( nLen )
RETURN aArray
STATIC FUNCTION TAStr( aArray )
LOCAL cString := ""
LOCAL tmp
LOCAL nLen := Len( aArray )

View File

@@ -61,7 +61,9 @@
MEMVAR objHolder, cDtorResult
PROCEDURE Main_CLASS()
LOCAL oValue, aRef
PRIVATE objHolder, cDtorResult
#ifdef __HARBOUR__
@@ -70,7 +72,7 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(0)
oValue := DTORCLASS():NEW( 0 )
HBTEST oValue:type IS 0
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
@@ -78,7 +80,7 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(1)
oValue := DTORCLASS():NEW( 1 )
HBTEST oValue:type IS 1
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
@@ -86,7 +88,7 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(2)
oValue := DTORCLASS():NEW( 2 )
HBTEST oValue:type IS 2
HBTEST oValue := NIL IS "E 45 BASE 1301 Object destructor failure (Reference to freed block) OS:0 #:0 "
HBTEST objHolder IS NIL
@@ -94,11 +96,11 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(3)
oValue := DTORCLASS():NEW( 3 )
HBTEST oValue:type IS 3
HBTEST oValue := NIL IS "E 45 BASE 1301 Object destructor failure (Reference to freed block) OS:0 #:0 "
HBTEST ValType(objHolder) IS "A"
HBTEST Len(objHolder) IS 0
HBTEST ValType( objHolder ) IS "A"
HBTEST Len( objHolder ) IS 0
HBTEST cDtorResult IS "Reference to self in private memvar."
@@ -106,10 +108,10 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(0)
oValue := DTORCLASS():NEW( 0 )
HBTEST oValue:type IS 0
/* create cross reference */
aRef := { oValue, NIL }; aRef[2] := aRef; aRef := NIL
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
HBTEST cDtorResult IS ""
@@ -119,10 +121,10 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(1)
oValue := DTORCLASS():NEW( 1 )
HBTEST oValue:type IS 1
/* create cross reference */
aRef := { oValue, NIL }; aRef[2] := aRef; aRef := NIL
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
HBTEST cDtorResult IS ""
@@ -132,10 +134,10 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(2)
oValue := DTORCLASS():NEW( 2 )
HBTEST oValue:type IS 2
/* create cross reference */
aRef := { oValue, NIL }; aRef[2] := aRef; aRef := NIL
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
HBTEST cDtorResult IS ""
@@ -145,16 +147,16 @@ PROCEDURE Main_CLASS()
HBTEST cDtorResult := "" IS ""
HBTEST objHolder := NIL IS NIL
oValue := DTORCLASS():NEW(3)
oValue := DTORCLASS():NEW( 3 )
HBTEST oValue:type IS 3
/* create cross reference */
aRef := { oValue, NIL }; aRef[2] := aRef; aRef := NIL
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
HBTEST oValue := NIL IS NIL
HBTEST objHolder IS NIL
HBTEST cDtorResult IS ""
HBTEST hb_gcAll() IS "E 45 BASE 1301 Object destructor failure (Reference to freed block) OS:0 #:0 "
HBTEST ValType(objHolder) IS "A"
HBTEST Len(objHolder) IS 0
HBTEST ValType( objHolder ) IS "A"
HBTEST Len( objHolder ) IS 0
HBTEST cDtorResult IS "Reference to self in private memvar."
@@ -1092,6 +1094,7 @@ PROCEDURE Main_CLASS()
#ifdef __HARBOUR__
STATIC FUNCTION INSTANCE_DATA( oValue )
LOCAL cData, i
cData := "[" + hb_ntos( Len( oValue ) ) + "]:"

View File

@@ -56,140 +56,141 @@
#include "rt_vars.ch"
PROCEDURE Main_DATE()
LOCAL cDate := "1999-11-25"
/* Year() */
HBTEST Year(NIL) IS "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Year(100) IS "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:N:100 F:S"
HBTEST Year( NIL ) IS "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Year( 100 ) IS "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST Year(@sdDate) IS 1984 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST Year( @sdDate ) IS 1984 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1112 Argument error (YEAR) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST Year(sdDate) IS 1984
HBTEST Year(sdDateE) IS 0
HBTEST Str(Year(hb_SToD("19990905"))) IS " 1999"
HBTEST Year( sdDate) IS 1984
HBTEST Year( sdDateE) IS 0
HBTEST Str( Year( hb_SToD( "19990905" ) ) ) IS " 1999"
/* Month() */
HBTEST Month(NIL) IS "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Month(100) IS "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:N:100 F:S"
HBTEST Month( NIL ) IS "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Month( 100 ) IS "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST Month(@sdDate) IS 3 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST Month( @sdDate ) IS 3 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1113 Argument error (MONTH) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST Month(sdDate) IS 3
HBTEST Month(sdDateE) IS 0
HBTEST Str(Month(hb_SToD("19990905"))) IS " 9"
HBTEST Month( sdDate ) IS 3
HBTEST Month( sdDateE ) IS 0
HBTEST Str( Month( hb_SToD( "19990905" ) ) ) IS " 9"
/* Day() */
HBTEST Day(NIL) IS "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Day(100) IS "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:N:100 F:S"
HBTEST Day( NIL ) IS "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Day( 100 ) IS "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST Day(@sdDate) IS 25 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST Day( @sdDate ) IS 25 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1114 Argument error (DAY) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST Day(sdDate) IS 25
HBTEST Day(sdDateE) IS 0
HBTEST Str(Day(hb_SToD("19990905"))) IS " 5"
HBTEST Day( sdDate ) IS 25
HBTEST Day( sdDateE ) IS 0
HBTEST Str( Day( hb_SToD( "19990905" ) ) ) IS " 5"
/* Time() */
HBTEST Len(Time()) IS 8
HBTEST Len( Time() ) IS 8
/* DoW() */
HBTEST DoW(NIL) IS "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DoW(100) IS "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:N:100 F:S"
HBTEST DoW( NIL ) IS "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DoW( 100 ) IS "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST DoW(@sdDate) IS 1 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST DoW( @sdDate ) IS 1 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1115 Argument error (DOW) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST DoW(sdDate) IS 1
HBTEST DoW(sdDateE) IS 0
HBTEST DoW(hb_SToD("20000222")) IS 3
HBTEST DoW(hb_SToD("20000223")) IS 4
HBTEST DoW(hb_SToD("20000224")) IS 5
HBTEST DoW(hb_SToD("20000225")) IS 6
HBTEST DoW(hb_SToD("20000226")) IS 7
HBTEST DoW(hb_SToD("20000227")) IS 1
HBTEST DoW(hb_SToD("20000228")) IS 2
HBTEST DoW(hb_SToD("20000229")) IS 3
HBTEST DoW(hb_SToD("20000230")) IS 0
HBTEST DoW(hb_SToD("20000231")) IS 0
HBTEST DoW(hb_SToD("20000301")) IS 4
HBTEST DoW( sdDate ) IS 1
HBTEST DoW( sdDateE ) IS 0
HBTEST DoW( hb_SToD( "20000222" ) ) IS 3
HBTEST DoW( hb_SToD( "20000223" ) ) IS 4
HBTEST DoW( hb_SToD( "20000224" ) ) IS 5
HBTEST DoW( hb_SToD( "20000225" ) ) IS 6
HBTEST DoW( hb_SToD( "20000226" ) ) IS 7
HBTEST DoW( hb_SToD( "20000227" ) ) IS 1
HBTEST DoW( hb_SToD( "20000228" ) ) IS 2
HBTEST DoW( hb_SToD( "20000229" ) ) IS 3
HBTEST DoW( hb_SToD( "20000230" ) ) IS 0
HBTEST DoW( hb_SToD( "20000231" ) ) IS 0
HBTEST DoW( hb_SToD( "20000301" ) ) IS 4
/* CMonth() */
HBTEST CMonth(NIL) IS "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CMonth(100) IS "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:N:100 F:S"
HBTEST CMonth( NIL ) IS "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CMonth( 100 ) IS "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST CMonth(@sdDate) IS "March" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST CMonth( @sdDate ) IS "March" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1116 Argument error (CMONTH) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST CMonth(sdDate) IS "March"
HBTEST CMonth(sdDateE) IS ""
HBTEST CMonth(hb_SToD("19990101")) IS "January"
HBTEST CMonth(hb_SToD("19990201")) IS "February"
HBTEST CMonth(hb_SToD("19990301")) IS "March"
HBTEST CMonth(hb_SToD("19990401")) IS "April"
HBTEST CMonth(hb_SToD("19990501")) IS "May"
HBTEST CMonth(hb_SToD("19990601")) IS "June"
HBTEST CMonth(hb_SToD("19990701")) IS "July"
HBTEST CMonth(hb_SToD("19990801")) IS "August"
HBTEST CMonth(hb_SToD("19990901")) IS "September"
HBTEST CMonth(hb_SToD("19991001")) IS "October"
HBTEST CMonth(hb_SToD("19991101")) IS "November"
HBTEST CMonth(hb_SToD("19991201")) IS "December"
HBTEST CMonth( sdDate ) IS "March"
HBTEST CMonth( sdDateE ) IS ""
HBTEST CMonth( hb_SToD( "19990101" ) ) IS "January"
HBTEST CMonth( hb_SToD( "19990201" ) ) IS "February"
HBTEST CMonth( hb_SToD( "19990301" ) ) IS "March"
HBTEST CMonth( hb_SToD( "19990401" ) ) IS "April"
HBTEST CMonth( hb_SToD( "19990501" ) ) IS "May"
HBTEST CMonth( hb_SToD( "19990601" ) ) IS "June"
HBTEST CMonth( hb_SToD( "19990701" ) ) IS "July"
HBTEST CMonth( hb_SToD( "19990801" ) ) IS "August"
HBTEST CMonth( hb_SToD( "19990901" ) ) IS "September"
HBTEST CMonth( hb_SToD( "19991001" ) ) IS "October"
HBTEST CMonth( hb_SToD( "19991101" ) ) IS "November"
HBTEST CMonth( hb_SToD( "19991201" ) ) IS "December"
/* CDoW() */
HBTEST CDoW(NIL) IS "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CDoW(100) IS "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:N:100 F:S"
HBTEST CDoW( NIL ) IS "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CDoW( 100 ) IS "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST CDoW(@sdDate) IS "Sunday" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST CDoW( @sdDate ) IS "Sunday" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1117 Argument error (CDOW) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST CDoW(sdDate) IS "Sunday"
HBTEST CDoW(sdDateE) IS ""
HBTEST CDoW(hb_SToD("20000222")) IS "Tuesday"
HBTEST CDoW(hb_SToD("20000223")) IS "Wednesday"
HBTEST CDoW(hb_SToD("20000224")) IS "Thursday"
HBTEST CDoW(hb_SToD("20000225")) IS "Friday"
HBTEST CDoW(hb_SToD("20000226")) IS "Saturday"
HBTEST CDoW(hb_SToD("20000227")) IS "Sunday"
HBTEST CDoW(hb_SToD("20000228")) IS "Monday"
HBTEST CDoW(hb_SToD("20000229")) IS "Tuesday"
HBTEST CDoW(hb_SToD("20000230")) IS ""
HBTEST CDoW(hb_SToD("20000231")) IS ""
HBTEST CDoW(hb_SToD("20000301")) IS "Wednesday"
HBTEST CDoW( sdDate ) IS "Sunday"
HBTEST CDoW( sdDateE ) IS ""
HBTEST CDoW( hb_SToD( "20000222" ) ) IS "Tuesday"
HBTEST CDoW( hb_SToD( "20000223" ) ) IS "Wednesday"
HBTEST CDoW( hb_SToD( "20000224" ) ) IS "Thursday"
HBTEST CDoW( hb_SToD( "20000225" ) ) IS "Friday"
HBTEST CDoW( hb_SToD( "20000226" ) ) IS "Saturday"
HBTEST CDoW( hb_SToD( "20000227" ) ) IS "Sunday"
HBTEST CDoW( hb_SToD( "20000228" ) ) IS "Monday"
HBTEST CDoW( hb_SToD( "20000229" ) ) IS "Tuesday"
HBTEST CDoW( hb_SToD( "20000230" ) ) IS ""
HBTEST CDoW( hb_SToD( "20000231" ) ) IS ""
HBTEST CDoW( hb_SToD( "20000301" ) ) IS "Wednesday"
/* DToC() */
HBTEST DToC(NIL) IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DToC(100) IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:N:100 F:S"
HBTEST DToC("") IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:C: F:S"
HBTEST DToC( NIL ) IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DToC( 100 ) IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:N:100 F:S"
HBTEST DToC( "" ) IS "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:C: F:S"
#ifdef __HARBOUR__
HBTEST DToC(@sdDate) IS "1984-03-25" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST DToC( @sdDate ) IS "1984-03-25" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1118 Argument error (DTOC) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST DToC(sdDate) IS "1984-03-25"
HBTEST DToC(sdDateE) IS " - - "
HBTEST DToC( sdDate ) IS "1984-03-25"
HBTEST DToC( sdDateE ) IS " - - "
/* CToD() */
HBTEST CToD(NIL) IS "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CToD(100) IS "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:N:100 F:S"
HBTEST CToD("") IS hb_SToD(" ")
HBTEST CToD( NIL ) IS "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:U:NIL F:S"
HBTEST CToD( 100 ) IS "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:N:100 F:S"
HBTEST CToD( "" ) IS hb_SToD(" ")
#ifdef __HARBOUR__
HBTEST CToD(@cDate) IS hb_SToD("19991125") /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:U:1999-11-25 F:S" */
HBTEST CToD( @cDate ) IS hb_SToD("19991125") /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1119 Argument error (CTOD) OS:0 #:0 A:1:U:1999-11-25 F:S" */
#endif
HBTEST CToD(cDate) IS hb_SToD("19991125")
HBTEST CToD("1999-11-25/10") IS hb_SToD("19991125")
HBTEST CToD( cDate ) IS hb_SToD("19991125")
HBTEST CToD( "1999-11-25/10" ) IS hb_SToD("19991125")
/* DToS() */
HBTEST DToS(NIL) IS "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DToS(100) IS "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:N:100 F:S"
HBTEST DToS( NIL ) IS "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:U:NIL F:S"
HBTEST DToS( 100 ) IS "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:N:100 F:S"
#ifdef __HARBOUR__
HBTEST DToS(@sdDate) IS "19840325" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:U:19840325 F:S" */
HBTEST DToS( @sdDate ) IS "19840325" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1120 Argument error (DTOS) OS:0 #:0 A:1:U:19840325 F:S" */
#endif
HBTEST DToS(sdDate) IS "19840325"
HBTEST DToS(sdDateE) IS " "
HBTEST DToS( sdDate ) IS "19840325"
HBTEST DToS( sdDateE ) IS " "
RETURN

View File

@@ -61,6 +61,7 @@
rearrange them. */
PROCEDURE Main_FILE()
LOCAL cFileName := "$$FILEIO.TMP"
LOCAL nFlags
@@ -72,146 +73,146 @@ PROCEDURE Main_FILE()
nFlags := FC_NORMAL
fhnd := FCreate( cFileName, nFlags )
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"
HBTEST TESTFIER( FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) ) IS "E: 0 R: 13"
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"
HBTEST TESTFIER( FWrite( fhnd, "(123" + Chr( 0 ) + "4567890)" ) ) IS "E: 0 R: 13"
#ifndef __XPP__
HBTEST TESTFIER( FSeek( fhnd ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FSeek( fhnd ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FSeek( fhnd, 5 ) ) IS "E: 0 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -10, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -100, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FWrite( fhnd, "!" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 1 ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FWrite( fhnd, "A" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 2, FS_SET ) ) IS "E: 0 R: 2"
HBTEST TESTFIER( FWrite( fhnd, "B" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "C" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "D" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS "E: 0 R: 28"
HBTEST TESTFIER( FWrite( fhnd, "E" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_END ) ) IS "E: 0 R: 28"
HBTEST TESTFIER( FWrite( fhnd, "F" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FSeek( fhnd, 5 ) ) IS "E: 0 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -10, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -100, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FWrite( fhnd, "!" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 1 ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FWrite( fhnd, "A" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 2, FS_SET ) ) IS "E: 0 R: 2"
HBTEST TESTFIER( FWrite( fhnd, "B" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "C" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "D" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS "E: 0 R: 28"
HBTEST TESTFIER( FWrite( fhnd, "E" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_END ) ) IS "E: 0 R: 28"
HBTEST TESTFIER( FWrite( fhnd, "F" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS "E: 0 R: 0"
#ifndef __XPP__
HBTEST TESTFIER( FRead( fhnd, mnLongP ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, mnLongP ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) IS "E: 0 R: 0"
#ifndef __XPP__
HBTEST TESTFIER( FRead( fhnd, cBuff4 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, cBuff4 ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, cBuff4, 2 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, cBuff4, 2 ) ) IS "E: 0 R: 0"
#ifdef __CLIPPER__
// HBTEST TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) IS "E: 0 R: 0"
// HBTEST TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 1000 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 3 ) ) IS 'E: 0 R: 3'
HBTEST TESTFIER( FRead( fhnd, @cBuff100, 100 ) ) IS 'E: 0 R: 26'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 4 ) ) IS 'E: 0 R: ">AB3"'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 100 ) ) IS 'E: 0 R: ">AB34!D7890<(123"'
HBTEST TESTFIER( FSeek( fhnd, 1, FS_RELATIVE ) ) IS 'E: 0 R: 30'
HBTEST TESTFIER( FReadStr( fhnd, 2 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 25'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 29'
HBTEST TESTFIER( FWrite( fhnd, "_-_-_-_-_-_-_" ) ) IS 'E: 0 R: 13'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 38'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: "-"'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: "_-_"'
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS 'E: 0 R: 45'
HBTEST TESTFIER( FWrite( fhnd, "V" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FSeek( fhnd, -3, FS_END ) ) IS 'E: 0 R: 43'
HBTEST TESTFIER( FWrite( fhnd, "W" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 1000 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 3 ) ) IS 'E: 0 R: 3'
HBTEST TESTFIER( FRead( fhnd, @cBuff100, 100 ) ) IS 'E: 0 R: 26'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 4 ) ) IS 'E: 0 R: ">AB3"'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 100 ) ) IS 'E: 0 R: ">AB34!D7890<(123"'
HBTEST TESTFIER( FSeek( fhnd, 1, FS_RELATIVE ) ) IS 'E: 0 R: 30'
HBTEST TESTFIER( FReadStr( fhnd, 2 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 25'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 29'
HBTEST TESTFIER( FWrite( fhnd, "_-_-_-_-_-_-_" ) ) IS 'E: 0 R: 13'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 38'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: "-"'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: "_-_"'
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS 'E: 0 R: 45'
HBTEST TESTFIER( FWrite( fhnd, "V" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FSeek( fhnd, -3, FS_END ) ) IS 'E: 0 R: 43'
HBTEST TESTFIER( FWrite( fhnd, "W" ) ) IS 'E: 0 R: 1'
#ifndef __XPP__
HBTEST TESTFIER( FClose() ) IS 'E: 0 R: .F.'
HBTEST TESTFIER( FClose() ) IS 'E: 0 R: .F.'
#endif
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 0 R: .T.'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 6 R: .F.'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FErase( 1 ) ) IS 'E: 3 R: -1'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FRename( "NOT_HERE.$$$", 'A' ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FOpen( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 0 R: .T.'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 6 R: .F.'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FErase( 1 ) ) IS 'E: 3 R: -1'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FRename( "NOT_HERE.$$$", 'A' ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FOpen( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
nFlags := FO_READWRITE
fhnd := FOpen( cFileName, nFlags )
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"
HBTEST TESTFIER( FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) ) IS "E: 0 R: 13"
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"
HBTEST TESTFIER( FWrite( fhnd, "(123" + Chr( 0 ) + "4567890)" ) ) IS "E: 0 R: 13"
#ifndef __XPP__
HBTEST TESTFIER( FSeek( fhnd ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FSeek( fhnd ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FSeek( fhnd, 5 ) ) IS "E: 0 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -10, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -100, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FWrite( fhnd, "!" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 1 ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FWrite( fhnd, "A" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 2, FS_SET ) ) IS "E: 0 R: 2"
HBTEST TESTFIER( FWrite( fhnd, "B" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "C" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "D" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS "E: 0 R: 49"
HBTEST TESTFIER( FWrite( fhnd, "E" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_END ) ) IS "E: 0 R: 49"
HBTEST TESTFIER( FWrite( fhnd, "F" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FSeek( fhnd, 5 ) ) IS "E: 0 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -10, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FSeek( fhnd, -100, FS_SET ) ) IS "E: 25 R: 5"
HBTEST TESTFIER( FWrite( fhnd, "!" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 1 ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FWrite( fhnd, "A" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 2, FS_SET ) ) IS "E: 0 R: 2"
HBTEST TESTFIER( FWrite( fhnd, "B" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "C" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_RELATIVE ) ) IS "E: 0 R: 6"
HBTEST TESTFIER( FWrite( fhnd, "D" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS "E: 0 R: 49"
HBTEST TESTFIER( FWrite( fhnd, "E" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, -1, FS_END ) ) IS "E: 0 R: 49"
HBTEST TESTFIER( FWrite( fhnd, "F" ) ) IS "E: 0 R: 1"
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS "E: 0 R: 0"
#ifndef __XPP__
HBTEST TESTFIER( FRead( fhnd, mnLongP ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, mnLongP ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) IS "E: 0 R: 0"
#ifndef __XPP__
HBTEST TESTFIER( FRead( fhnd, cBuff4 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, cBuff4 ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, cBuff4, 2 ) ) IS "E: 0 R: 0"
HBTEST TESTFIER( FRead( fhnd, cBuff4, 2 ) ) IS "E: 0 R: 0"
#ifdef __CLIPPER__
// HBTEST TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) IS "E: 0 R: 0"
// HBTEST TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) IS "E: 0 R: 0"
#endif
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 1000 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 3 ) ) IS 'E: 0 R: 3'
HBTEST TESTFIER( FRead( fhnd, @cBuff100, 100 ) ) IS 'E: 0 R: 47'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 4 ) ) IS 'E: 0 R: ">AB3"'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 100 ) ) IS 'E: 0 R: ">AB34!D7890<(123"'
HBTEST TESTFIER( FSeek( fhnd, 1, FS_RELATIVE ) ) IS 'E: 0 R: 51'
HBTEST TESTFIER( FReadStr( fhnd, 2 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 46'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 50'
HBTEST TESTFIER( FWrite( fhnd, "_-_-_-_-_-_-_" ) ) IS 'E: 0 R: 13'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 59'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: "-"'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: "_-_"'
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS 'E: 0 R: 66'
HBTEST TESTFIER( FWrite( fhnd, "V" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FSeek( fhnd, -3, FS_END ) ) IS 'E: 0 R: 64'
HBTEST TESTFIER( FWrite( fhnd, "W" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FWrite( fhnd, "" ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 65'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 1000 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FRead( fhnd, @cBuff4, 3 ) ) IS 'E: 0 R: 3'
HBTEST TESTFIER( FRead( fhnd, @cBuff100, 100 ) ) IS 'E: 0 R: 47'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 4 ) ) IS 'E: 0 R: ">AB3"'
HBTEST TESTFIER( FSeek( fhnd, 0 ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FReadStr( fhnd, 100 ) ) IS 'E: 0 R: ">AB34!D7890<(123"'
HBTEST TESTFIER( FSeek( fhnd, 1, FS_RELATIVE ) ) IS 'E: 0 R: 51'
HBTEST TESTFIER( FReadStr( fhnd, 2 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 46'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: ""'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 50'
HBTEST TESTFIER( FWrite( fhnd, "_-_-_-_-_-_-_" ) ) IS 'E: 0 R: 13'
HBTEST TESTFIER( FSeek( fhnd, -4, FS_END ) ) IS 'E: 0 R: 59'
HBTEST TESTFIER( FReadStr( fhnd, 1 ) ) IS 'E: 0 R: "-"'
HBTEST TESTFIER( FReadStr( fhnd, 20 ) ) IS 'E: 0 R: "_-_"'
HBTEST TESTFIER( FSeek( fhnd, 3, FS_END ) ) IS 'E: 0 R: 66'
HBTEST TESTFIER( FWrite( fhnd, "V" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FSeek( fhnd, -3, FS_END ) ) IS 'E: 0 R: 64'
HBTEST TESTFIER( FWrite( fhnd, "W" ) ) IS 'E: 0 R: 1'
HBTEST TESTFIER( FWrite( fhnd, "" ) ) IS 'E: 0 R: 0'
HBTEST TESTFIER( FSeek( fhnd, 0, FS_END ) ) IS 'E: 0 R: 65'
#ifndef __XPP__
HBTEST TESTFIER( FClose() ) IS 'E: 0 R: .F.'
HBTEST TESTFIER( FClose() ) IS 'E: 0 R: .F.'
#endif
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 0 R: .T.'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 6 R: .F.'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FErase( 1 ) ) IS 'E: 3 R: -1'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FRename( "NOT_HERE.$$$", 'A' ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 0 R: .T.'
HBTEST TESTFIER( FClose( fhnd ) ) IS 'E: 6 R: .F.'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FErase( 1 ) ) IS 'E: 3 R: -1'
HBTEST TESTFIER( FErase( "NOT_HERE.$$$" ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( FRename( "NOT_HERE.$$$", 'A' ) ) IS 'E: 2 R: -1'
HBTEST TESTFIER( File( cFileName ) ) IS "E: 2 R: .T."
HBTEST TESTFIER( File( "NOT_HERE.$$$" ) ) IS "E: 2 R: .F."
HBTEST TESTFIER( File( cFileName ) ) IS "E: 2 R: .T."
HBTEST TESTFIER( File( "NOT_HERE.$$$" ) ) IS "E: 2 R: .F."
FErase( "$$FILEIO.TMP" )

View File

@@ -257,135 +257,135 @@ PROCEDURE Main_HVM()
/* <= */
HBTEST 2 <= 1 IS .F.
HBTEST 1 <= 2 IS .T.
HBTEST 2.0 <= 2 IS .T.
HBTEST 2 <= 2.0 IS .T.
HBTEST 2.5 <= 3.7 IS .T.
HBTEST 3.7 <= 2.5 IS .F.
HBTEST 10 <= 10.50 IS .T.
HBTEST .F. <= .F. IS .T.
HBTEST .T. <= .F. IS .F.
HBTEST .F. <= .T. IS .T.
HBTEST hb_SToD("") <= hb_SToD("") IS .T.
HBTEST hb_SToD("") <= hb_SToD("19800101") IS .T.
HBTEST hb_SToD("19800101") <= hb_SToD("") IS .F.
HBTEST "" <= "AAA" IS .T.
HBTEST "AAA" <= "" IS .T.
HBTEST "AAA" <= "AA" IS .T.
HBTEST "AAA" <= Chr(255) IS .T.
HBTEST Chr(150) <= Chr(255) IS .T.
HBTEST "A" <= "a" IS .T.
HBTEST "A" <= "Z" IS .T.
HBTEST "Z" <= " " IS .F.
HBTEST Chr(0) <= " " IS .T.
HBTEST "Hallo" <= "Hello" IS .T.
HBTEST "Hello" <= "Hello" IS .T.
HBTEST "Hell" <= "Hello" IS .T.
HBTEST "Hellow" <= "Hello" IS .T.
HBTEST "J" <= "Hello" IS .F.
HBTEST "" <= "Hello" IS .T.
HBTEST "J" <= "" IS .T.
HBTEST "" <= "" IS .T.
HBTEST 2 <= 1 IS .F.
HBTEST 1 <= 2 IS .T.
HBTEST 2.0 <= 2 IS .T.
HBTEST 2 <= 2.0 IS .T.
HBTEST 2.5 <= 3.7 IS .T.
HBTEST 3.7 <= 2.5 IS .F.
HBTEST 10 <= 10.50 IS .T.
HBTEST .F. <= .F. IS .T.
HBTEST .T. <= .F. IS .F.
HBTEST .F. <= .T. IS .T.
HBTEST hb_SToD( "" ) <= hb_SToD( "" ) IS .T.
HBTEST hb_SToD( "" ) <= hb_SToD( "19800101" ) IS .T.
HBTEST hb_SToD( "19800101" ) <= hb_SToD( "" ) IS .F.
HBTEST "" <= "AAA" IS .T.
HBTEST "AAA" <= "" IS .T.
HBTEST "AAA" <= "AA" IS .T.
HBTEST "AAA" <= Chr( 255 ) IS .T.
HBTEST Chr( 150 ) <= Chr( 255 ) IS .T.
HBTEST "A" <= "a" IS .T.
HBTEST "A" <= "Z" IS .T.
HBTEST "Z" <= " " IS .F.
HBTEST Chr( 0 ) <= " " IS .T.
HBTEST "Hallo" <= "Hello" IS .T.
HBTEST "Hello" <= "Hello" IS .T.
HBTEST "Hell" <= "Hello" IS .T.
HBTEST "Hellow" <= "Hello" IS .T.
HBTEST "J" <= "Hello" IS .F.
HBTEST "" <= "Hello" IS .T.
HBTEST "J" <= "" IS .T.
HBTEST "" <= "" IS .T.
/* < */
HBTEST 2 < 1 IS .F.
HBTEST 1 < 2 IS .T.
HBTEST 2.0 < 2 IS .F.
HBTEST 2 < 2.0 IS .F.
HBTEST 2.5 < 3.7 IS .T.
HBTEST 3.7 < 2.5 IS .F.
HBTEST 10.50 < 10 IS .F.
HBTEST .F. < .F. IS .F.
HBTEST .T. < .F. IS .F.
HBTEST .F. < .T. IS .T.
HBTEST hb_SToD("") < hb_SToD("") IS .F.
HBTEST hb_SToD("") < hb_SToD("19800101") IS .T.
HBTEST hb_SToD("19800101") < hb_SToD("") IS .F.
HBTEST "" < "AAA" IS .T.
HBTEST "AAA" < "" IS .F.
HBTEST "AAA" < "AA" IS .F.
HBTEST "AAA" < Chr(255) IS .T.
HBTEST Chr(150) < Chr(255) IS .T.
HBTEST "A" < "a" IS .T.
HBTEST "A" < "Z" IS .T.
HBTEST "Z" < "A" IS .F.
HBTEST Chr(0) < " " IS .T.
HBTEST "Hallo" < "Hello" IS .T.
HBTEST "Hello" < "Hello" IS .F.
HBTEST "Hell" < "Hello" IS .T.
HBTEST "Hellow" < "Hello" IS .F.
HBTEST "J" < "Hello" IS .F.
HBTEST "" < "Hello" IS .T.
HBTEST "J" < "" IS .F.
HBTEST "" < "" IS .F.
HBTEST 2 < 1 IS .F.
HBTEST 1 < 2 IS .T.
HBTEST 2.0 < 2 IS .F.
HBTEST 2 < 2.0 IS .F.
HBTEST 2.5 < 3.7 IS .T.
HBTEST 3.7 < 2.5 IS .F.
HBTEST 10.50 < 10 IS .F.
HBTEST .F. < .F. IS .F.
HBTEST .T. < .F. IS .F.
HBTEST .F. < .T. IS .T.
HBTEST hb_SToD( "" ) < hb_SToD( "" ) IS .F.
HBTEST hb_SToD( "" ) < hb_SToD( "19800101" ) IS .T.
HBTEST hb_SToD( "19800101" ) < hb_SToD( "" ) IS .F.
HBTEST "" < "AAA" IS .T.
HBTEST "AAA" < "" IS .F.
HBTEST "AAA" < "AA" IS .F.
HBTEST "AAA" < Chr( 255 ) IS .T.
HBTEST Chr( 150 ) < Chr( 255 ) IS .T.
HBTEST "A" < "a" IS .T.
HBTEST "A" < "Z" IS .T.
HBTEST "Z" < "A" IS .F.
HBTEST Chr( 0 ) < " " IS .T.
HBTEST "Hallo" < "Hello" IS .T.
HBTEST "Hello" < "Hello" IS .F.
HBTEST "Hell" < "Hello" IS .T.
HBTEST "Hellow" < "Hello" IS .F.
HBTEST "J" < "Hello" IS .F.
HBTEST "" < "Hello" IS .T.
HBTEST "J" < "" IS .F.
HBTEST "" < "" IS .F.
/* >= */
HBTEST 2 >= 1 IS .T.
HBTEST 1 >= 2 IS .F.
HBTEST 2.0 >= 2 IS .T.
HBTEST 2 >= 2.0 IS .T.
HBTEST 2.5 >= 3.7 IS .F.
HBTEST 3.7 >= 2.5 IS .T.
HBTEST 10.50 >= 10 IS .T.
HBTEST .F. >= .F. IS .T.
HBTEST .T. >= .F. IS .T.
HBTEST .F. >= .T. IS .F.
HBTEST hb_SToD("") >= hb_SToD("") IS .T.
HBTEST hb_SToD("") >= hb_SToD("19800101") IS .F.
HBTEST hb_SToD("19800101") >= hb_SToD("") IS .T.
HBTEST "" >= "AAA" IS .F.
HBTEST "AAA" >= "" IS .T.
HBTEST "AAA" >= "AA" IS .T.
HBTEST "AAA" >= Chr(255) IS .F.
HBTEST Chr(150) >= Chr(255) IS .F.
HBTEST "A" >= "a" IS .F.
HBTEST "A" >= "Z" IS .F.
HBTEST "Z" >= "A" IS .T.
HBTEST Chr(0) >= " " IS .F.
HBTEST "Hallo" >= "Hello" IS .F.
HBTEST "Hello" >= "Hello" IS .T.
HBTEST "Hell" >= "Hello" IS .F.
HBTEST "Hellow" >= "Hello" IS .T.
HBTEST "J" >= "Hello" IS .T.
HBTEST "" >= "Hello" IS .F.
HBTEST "J" >= "" IS .T.
HBTEST "" >= "" IS .T.
HBTEST 2 >= 1 IS .T.
HBTEST 1 >= 2 IS .F.
HBTEST 2.0 >= 2 IS .T.
HBTEST 2 >= 2.0 IS .T.
HBTEST 2.5 >= 3.7 IS .F.
HBTEST 3.7 >= 2.5 IS .T.
HBTEST 10.50 >= 10 IS .T.
HBTEST .F. >= .F. IS .T.
HBTEST .T. >= .F. IS .T.
HBTEST .F. >= .T. IS .F.
HBTEST hb_SToD( "" ) >= hb_SToD( "" ) IS .T.
HBTEST hb_SToD( "" ) >= hb_SToD( "19800101" ) IS .F.
HBTEST hb_SToD( "19800101" ) >= hb_SToD( "" ) IS .T.
HBTEST "" >= "AAA" IS .F.
HBTEST "AAA" >= "" IS .T.
HBTEST "AAA" >= "AA" IS .T.
HBTEST "AAA" >= Chr( 255 ) IS .F.
HBTEST Chr( 150 ) >= Chr( 255 ) IS .F.
HBTEST "A" >= "a" IS .F.
HBTEST "A" >= "Z" IS .F.
HBTEST "Z" >= "A" IS .T.
HBTEST Chr( 0 ) >= " " IS .F.
HBTEST "Hallo" >= "Hello" IS .F.
HBTEST "Hello" >= "Hello" IS .T.
HBTEST "Hell" >= "Hello" IS .F.
HBTEST "Hellow" >= "Hello" IS .T.
HBTEST "J" >= "Hello" IS .T.
HBTEST "" >= "Hello" IS .F.
HBTEST "J" >= "" IS .T.
HBTEST "" >= "" IS .T.
/* > */
HBTEST 2 > 1 IS .T.
HBTEST 1 > 2 IS .F.
HBTEST 2.0 > 2 IS .F.
HBTEST 2 > 2.0 IS .F.
HBTEST 2.5 > 3.7 IS .F.
HBTEST 3.7 > 2.5 IS .T.
HBTEST 10.50 > 10 IS .T.
HBTEST .F. > .F. IS .F.
HBTEST .T. > .F. IS .T.
HBTEST .F. > .T. IS .F.
HBTEST hb_SToD("") > hb_SToD("") IS .F.
HBTEST hb_SToD("") > hb_SToD("19800101") IS .F.
HBTEST hb_SToD("19800101") > hb_SToD("") IS .T.
HBTEST "" > "AAA" IS .F.
HBTEST "AAA" > "" IS .F.
HBTEST "AAA" > "AA" IS .F.
HBTEST "AAA" > Chr(255) IS .F.
HBTEST Chr(150) > Chr(255) IS .F.
HBTEST "A" > "a" IS .F.
HBTEST "A" > "Z" IS .F.
HBTEST "Z" > "A" IS .T.
HBTEST Chr(0) > " " IS .F.
HBTEST "Hallo" > "Hello" IS .F.
HBTEST "Hello" > "Hello" IS .F.
HBTEST "Hell" > "Hello" IS .F.
HBTEST "Hellow" > "Hello" IS .F.
HBTEST "J" > "Hello" IS .T.
HBTEST "" > "Hello" IS .F.
HBTEST "J" > "" IS .F.
HBTEST "" > "" IS .F.
HBTEST 2 > 1 IS .T.
HBTEST 1 > 2 IS .F.
HBTEST 2.0 > 2 IS .F.
HBTEST 2 > 2.0 IS .F.
HBTEST 2.5 > 3.7 IS .F.
HBTEST 3.7 > 2.5 IS .T.
HBTEST 10.50 > 10 IS .T.
HBTEST .F. > .F. IS .F.
HBTEST .T. > .F. IS .T.
HBTEST .F. > .T. IS .F.
HBTEST hb_SToD( "" ) > hb_SToD( "" ) IS .F.
HBTEST hb_SToD( "" ) > hb_SToD( "19800101" ) IS .F.
HBTEST hb_SToD( "19800101" ) > hb_SToD( "" ) IS .T.
HBTEST "" > "AAA" IS .F.
HBTEST "AAA" > "" IS .F.
HBTEST "AAA" > "AA" IS .F.
HBTEST "AAA" > Chr( 255 ) IS .F.
HBTEST Chr( 150 ) > Chr( 255 ) IS .F.
HBTEST "A" > "a" IS .F.
HBTEST "A" > "Z" IS .F.
HBTEST "Z" > "A" IS .T.
HBTEST Chr( 0 ) > " " IS .F.
HBTEST "Hallo" > "Hello" IS .F.
HBTEST "Hello" > "Hello" IS .F.
HBTEST "Hell" > "Hello" IS .F.
HBTEST "Hellow" > "Hello" IS .F.
HBTEST "J" > "Hello" IS .T.
HBTEST "" > "Hello" IS .F.
HBTEST "J" > "" IS .F.
HBTEST "" > "" IS .F.
/* =, == */

View File

@@ -56,6 +56,7 @@
#include "rt_vars.ch"
PROCEDURE Main_HVMA()
LOCAL nA, nB, nC
// NOTE: These are compiler tests.
@@ -189,7 +190,7 @@ PROCEDURE Main_HVMA()
HBTEST --nA IS 1
HBTEST nA IS 1
/* These will generate warnings and errors with Harbour */
/* These will generate warnings and errors with Harbour */
#ifndef __HARBOUR__
HBTEST { 1, 2 }[ ( 2, 1 ) ]++ IS 1
HBTEST ++{ 1, 2 }[ ( 2, 1 ) ] IS 2
@@ -208,17 +209,17 @@ PROCEDURE Main_HVMA()
/* */
HBTEST -Month(sdDate) IS -3
HBTEST Str(-(Month(sdDate))) IS " -3"
HBTEST Str(-(Val("10"))) IS " -10"
HBTEST Str(-(Val("100000"))) IS " -100000"
HBTEST Str(-(Val("20.876"))) IS " -20.876"
HBTEST -(0) IS 0
HBTEST -(10) IS -10
HBTEST -(10.505) IS -10.505
HBTEST -(100000) IS -100000
HBTEST -(-10) IS 10
HBTEST -("1") IS "E 1 BASE 1080 Argument error (-) OS:0 #:0 A:1:C:1 F:S"
HBTEST -Month( sdDate ) IS -3
HBTEST Str( -( Month( sdDate ) ) ) IS " -3"
HBTEST Str( -( Val( "10" ) ) ) IS " -10"
HBTEST Str( -( Val( "100000" ) ) ) IS " -100000"
HBTEST Str( -( Val( "20.876" ) ) ) IS " -20.876"
HBTEST -( 0 ) IS 0
HBTEST -( 10 ) IS -10
HBTEST -( 10.505 ) IS -10.505
HBTEST -( 100000 ) IS -100000
HBTEST -( -10 ) IS 10
HBTEST -( "1" ) IS "E 1 BASE 1080 Argument error (-) OS:0 #:0 A:1:C:1 F:S"
HBTEST "AA" $ 1 IS "E 1 BASE 1109 Argument error ($) OS:0 #:0 A:2:C:AA;N:1 F:S"
HBTEST scString $ 1 IS "E 1 BASE 1109 Argument error ($) OS:0 #:0 A:2:C:HELLO;N:1 F:S"
@@ -230,9 +231,9 @@ PROCEDURE Main_HVMA()
HBTEST ! "X" $ "XE" IS .F.
HBTEST ! ( "X" $ "XE" ) IS .F.
HBTEST "X" $ "XE" IS .T.
HBTEST "X" $ Chr(0) + "X" IS .T.
HBTEST ( "X" ) $ Chr(0) + "X" IS .T.
HBTEST scString $ Chr(0) + scString IS .T.
HBTEST "X" $ Chr( 0 ) + "X" IS .T.
HBTEST ( "X" ) $ Chr( 0 ) + "X" IS .T.
HBTEST scString $ Chr( 0 ) + scString IS .T.
HBTEST scStringE $ scStringE IS .F.
HBTEST scStringE $ "bcde" IS .F.
@@ -270,14 +271,14 @@ PROCEDURE Main_HVMA()
HBTEST .T. .AND. 1 IS 1
HBTEST .T. .AND. 1.567 IS 1.567
HBTEST .T. .AND. scString IS "HELLO"
HBTEST .T. .AND. hb_SToD("") IS hb_SToD(" ")
HBTEST .T. .AND. hb_SToD( "" ) IS hb_SToD( " " )
HBTEST .T. .AND. NIL IS NIL
HBTEST .T. .AND. {} IS "{.[0].}"
HBTEST .T. .AND. {|| NIL } IS "{||...}"
HBTEST .F. .AND. 1 IS .F.
HBTEST .F. .AND. 1.567 IS .F.
HBTEST .F. .AND. scString IS .F.
HBTEST .F. .AND. hb_SToD("") IS .F.
HBTEST .F. .AND. hb_SToD( "" ) IS .F.
HBTEST .F. .AND. NIL IS .F.
HBTEST .F. .AND. {} IS .F.
HBTEST .F. .AND. {|| NIL } IS .F.
@@ -310,14 +311,14 @@ PROCEDURE Main_HVMA()
HBTEST .T. .AND. 1 IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;N:1 F:S"
HBTEST .T. .AND. 1.567 IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;N:1.567 F:S"
HBTEST .T. .AND. scString IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;C:HELLO F:S"
HBTEST .T. .AND. hb_SToD("") IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;D:0d00000000 F:S"
HBTEST .T. .AND. hb_SToD( "" ) IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;D:0d00000000 F:S"
HBTEST .T. .AND. NIL IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;U:NIL F:S"
HBTEST .T. .AND. {} IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;A:{.[0].} F:S"
HBTEST .T. .AND. {|| NIL } IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.T.;B:{||...} F:S"
HBTEST .F. .AND. 1 IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;N:1 F:S"
HBTEST .F. .AND. 1.567 IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;N:1.567 F:S"
HBTEST .F. .AND. scString IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;C:HELLO F:S"
HBTEST .F. .AND. hb_SToD("") IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;D:0d00000000 F:S"
HBTEST .F. .AND. hb_SToD( "" ) IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;D:0d00000000 F:S"
HBTEST .F. .AND. NIL IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;U:NIL F:S"
HBTEST .F. .AND. {} IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;A:{.[0].} F:S"
HBTEST .F. .AND. {|| NIL } IS "E 1 BASE 1078 Argument error (.AND.) OS:0 #:0 A:2:L:.F.;B:{||...} F:S"
@@ -360,9 +361,9 @@ PROCEDURE Main_HVMA()
HBTEST mxNotHere IS "E 14 BASE 1003 Variable does not exist (MXNOTHERE) OS:0 #:1 F:R" /* Bug in CA-Cl*pper, it does not initialize 'TRIES' in error object giving strange results */
#ifdef __HARBOUR__
HBTEST __mvGet("MXUNDECL") IS "E 14 BASE 1003 Variable does not exist (MXUNDECL) OS:0 #:1 F:R"
HBTEST __mvGet( "MXUNDECL" ) IS "E 14 BASE 1003 Variable does not exist (MXUNDECL) OS:0 #:1 F:R"
#endif
mxNotHere ="MXUNDECL"
mxNotHere := "MXUNDECL"
HBTEST &mxNotHere. IS "E 14 BASE 1003 Variable does not exist (MXUNDECL) OS:0 #:1 F:R"
#ifndef __HARBOUR__
@@ -391,7 +392,7 @@ PROCEDURE Main_HVMA()
HBTEST (NIL)->NOFIELD IS "E 1 BASE 1065 Argument error (&) OS:0 #:0 A:2:U:NIL;C:NOFIELD F:S"
HBTEST (2)->NOFIELD IS "E 14 BASE 1003 Variable does not exist (NOFIELD) OS:0 #:1 F:R"
HBTEST (2.5)->NOFIELD IS "E 14 BASE 1003 Variable does not exist (NOFIELD) OS:0 #:1 F:R"
HBTEST (hb_SToD(""))->NOFIELD IS "E 1 BASE 1065 Argument error (&) OS:0 #:0 A:2:D:0d00000000;C:NOFIELD F:S"
HBTEST (hb_SToD( "" ))->NOFIELD IS "E 1 BASE 1065 Argument error (&) OS:0 #:0 A:2:D:0d00000000;C:NOFIELD F:S"
HBTEST (ErrorNew())->NOFIELD IS "E 1 BASE 1065 Argument error (&) OS:0 #:0 A:2:O:ERROR Object;C:NOFIELD F:S"
#ifndef __XPP__
@@ -399,126 +400,126 @@ PROCEDURE Main_HVMA()
/* disable Harbour extended optimizations to test correct RTE message */
#pragma -ko-
#endif
HBTEST ("NOTHERE")->(Eof()) IS .T.
HBTEST ("NOTHERE")->( Eof() ) IS .T.
#ifdef __HARBOUR__
#pragma -ko+
#endif
HBTEST (mcString)->(Eof()) IS .T.
HBTEST ({})->(Eof()) IS .T.
HBTEST ({|| NIL })->(Eof()) IS .T.
HBTEST (.T.)->(Eof()) IS .T.
HBTEST (.F.)->(Eof()) IS .T.
HBTEST (NIL)->(Eof()) IS .T.
HBTEST (2)->(Eof()) IS .T.
HBTEST (2.5)->(Eof()) IS .T.
HBTEST (hb_SToD(""))->(Eof()) IS .T.
HBTEST (ErrorNew())->(Eof()) IS .T.
HBTEST (mcString)->( Eof() ) IS .T.
HBTEST ({})->( Eof() ) IS .T.
HBTEST ({|| NIL })->( Eof() ) IS .T.
HBTEST (.T.)->( Eof() ) IS .T.
HBTEST (.F.)->( Eof() ) IS .T.
HBTEST (NIL)->( Eof() ) IS .T.
HBTEST (2)->( Eof() ) IS .T.
HBTEST (2.5)->( Eof() ) IS .T.
HBTEST (hb_SToD( "" ))->( Eof() ) IS .T.
HBTEST (ErrorNew())->( Eof() ) IS .T.
#endif
HBTEST NOTHERE->NOFIELD IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->("NOFIELD") IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(mcString) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->({}) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->({|| NIL }) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(.T.) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(.F.) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(NIL) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(1) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(1.5) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(hb_SToD("")) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->(ErrorNew()) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( "NOFIELD" ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( mcString ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( {} ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( {|| NIL } ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( .T. ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( .F. ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( NIL ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( 1 ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( 1.5 ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( hb_SToD( "" ) ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST NOTHERE->( ErrorNew() ) IS "E 15 BASE 1002 Alias does not exist (NOTHERE) OS:0 #:1 F:R"
HBTEST 200->NOFIELD IS "E 14 BASE 1003 Variable does not exist (NOFIELD) OS:0 #:1 F:R"
HBTEST 200->("NOFIELD") IS "NOFIELD"
HBTEST 200->(mcString) IS "HELLO"
HBTEST 200->({}) IS "{.[0].}"
HBTEST 200->({|| NIL }) IS "{||...}"
HBTEST 200->(.T.) IS .T.
HBTEST 200->(.F.) IS .F.
HBTEST 200->(NIL) IS NIL
HBTEST 200->(1) IS 1
HBTEST 200->(1.5) IS 1.5
HBTEST 200->(hb_SToD("")) IS hb_SToD(" ")
HBTEST 200->(ErrorNew()) IS "ERROR Object"
HBTEST 200->( "NOFIELD" ) IS "NOFIELD"
HBTEST 200->( mcString ) IS "HELLO"
HBTEST 200->( {} ) IS "{.[0].}"
HBTEST 200->( {|| NIL } ) IS "{||...}"
HBTEST 200->( .T. ) IS .T.
HBTEST 200->( .F. ) IS .F.
HBTEST 200->( NIL ) IS NIL
HBTEST 200->( 1 ) IS 1
HBTEST 200->( 1.5 ) IS 1.5
HBTEST 200->( hb_SToD( "" ) ) IS hb_SToD( " " )
HBTEST 200->( ErrorNew() ) IS "ERROR Object"
HBTEST soObject:hello IS "E 13 BASE 1004 No exported method (HELLO) OS:0 #:0 A:1:O:ERROR Object F:S"
HBTEST soObject:hello := 1 IS "E 16 BASE 1005 No exported variable (HELLO) OS:0 #:0 A:2:O:ERROR Object;N:1 F:S"
/* Len() */
HBTEST Len( NIL ) IS "E 1 BASE 1111 Argument error (LEN) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Len( 123 ) IS "E 1 BASE 1111 Argument error (LEN) OS:0 #:0 A:1:N:123 F:S"
HBTEST Len( "" ) IS 0
HBTEST Len( "123" ) IS 3
HBTEST Len( "123"+Chr(0)+"456 " ) IS 8
HBTEST Len( NIL ) IS "E 1 BASE 1111 Argument error (LEN) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Len( 123 ) IS "E 1 BASE 1111 Argument error (LEN) OS:0 #:0 A:1:N:123 F:S"
HBTEST Len( "" ) IS 0
HBTEST Len( "123" ) IS 3
HBTEST Len( "123" + Chr( 0 ) + "456 " ) IS 8
IF TEST_DBFAvail()
HBTEST Len( w_TEST->TYPE_C ) IS 15
HBTEST Len( w_TEST->TYPE_C_E ) IS 15
HBTEST Len( w_TEST->TYPE_M ) IS 11
HBTEST Len( w_TEST->TYPE_M_E ) IS 0
HBTEST Len( w_TEST->TYPE_C ) IS 15
HBTEST Len( w_TEST->TYPE_C_E ) IS 15
HBTEST Len( w_TEST->TYPE_M ) IS 11
HBTEST Len( w_TEST->TYPE_M_E ) IS 0
ENDIF
HBTEST Len( saArray ) IS 1
HBTEST Len( saArray ) IS 1
#ifdef __HARBOUR__
HBTEST Len( ErrorNew() ) IS 12
HBTEST Len( Space( 1000000 ) ) IS 1000000
HBTEST Len( ErrorNew() ) IS 12
HBTEST Len( Space( 1000000 ) ) IS 1000000
#else
HBTEST Len( ErrorNew() ) IS 7
HBTEST Len( Space( 40000 ) ) IS 40000
HBTEST Len( ErrorNew() ) IS 7
HBTEST Len( Space( 40000 ) ) IS 40000
#endif
/* Empty() */
#ifdef __HARBOUR__
HBTEST Empty( @scString ) IS .F. /* Bug in CA-Cl*pper, it will return .T. */
HBTEST Empty( @scStringE ) IS .T.
HBTEST Empty( @snIntP ) IS .F. /* Bug in CA-Cl*pper, it will return .T. */
HBTEST Empty( @snIntZ ) IS .T.
HBTEST Empty( @scString ) IS .F. /* Bug in CA-Cl*pper, it will return .T. */
HBTEST Empty( @scStringE ) IS .T.
HBTEST Empty( @snIntP ) IS .F. /* Bug in CA-Cl*pper, it will return .T. */
HBTEST Empty( @snIntZ ) IS .T.
#endif
HBTEST Empty( "Hallo" ) IS .F.
HBTEST Empty( "" ) IS .T.
HBTEST Empty( " " ) IS .T.
HBTEST Empty( " "+Chr(0) ) IS .F.
HBTEST Empty( " "+Chr(13)+Chr(9) ) IS .T.
HBTEST Empty( " A" ) IS .F.
HBTEST Empty( " x " ) IS .F.
HBTEST Empty( " x"+Chr(0) ) IS .F.
HBTEST Empty( " "+Chr(13)+"x"+Chr(9) ) IS .F.
HBTEST Empty( "Hallo" ) IS .F.
HBTEST Empty( "" ) IS .T.
HBTEST Empty( " " ) IS .T.
HBTEST Empty( " " + Chr( 0 ) ) IS .F.
HBTEST Empty( " " + Chr( 13 ) + Chr( 9 ) ) IS .T.
HBTEST Empty( " A" ) IS .F.
HBTEST Empty( " x " ) IS .F.
HBTEST Empty( " x" + Chr( 0 ) ) IS .F.
HBTEST Empty( " " + Chr( 13 ) + "x" + Chr( 9 ) ) IS .F.
IF TEST_DBFAvail()
HBTEST Empty( w_TEST->TYPE_C ) IS .F.
HBTEST Empty( w_TEST->TYPE_C_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_D ) IS .F.
HBTEST Empty( w_TEST->TYPE_D_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_M ) IS .F.
HBTEST Empty( w_TEST->TYPE_M_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_N_I ) IS .F.
HBTEST Empty( w_TEST->TYPE_N_IE ) IS .T.
HBTEST Empty( w_TEST->TYPE_N_D ) IS .F.
HBTEST Empty( w_TEST->TYPE_N_DE ) IS .T.
HBTEST Empty( w_TEST->TYPE_L ) IS .F.
HBTEST Empty( w_TEST->TYPE_L_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_C ) IS .F.
HBTEST Empty( w_TEST->TYPE_C_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_D ) IS .F.
HBTEST Empty( w_TEST->TYPE_D_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_M ) IS .F.
HBTEST Empty( w_TEST->TYPE_M_E ) IS .T.
HBTEST Empty( w_TEST->TYPE_N_I ) IS .F.
HBTEST Empty( w_TEST->TYPE_N_IE ) IS .T.
HBTEST Empty( w_TEST->TYPE_N_D ) IS .F.
HBTEST Empty( w_TEST->TYPE_N_DE ) IS .T.
HBTEST Empty( w_TEST->TYPE_L ) IS .F.
HBTEST Empty( w_TEST->TYPE_L_E ) IS .T.
ENDIF
HBTEST Empty( 0 ) IS .T.
HBTEST Empty( -0 ) IS .T.
HBTEST Empty( 0.0 ) IS .T.
HBTEST Empty( 70000-70000 ) IS .T.
HBTEST Empty( 1.5 * 1.5 - 2.25 ) IS .T.
HBTEST Empty( 10 ) IS .F.
HBTEST Empty( 10.0 ) IS .F.
HBTEST Empty( 70000+70000 ) IS .F.
HBTEST Empty( 1.5 * 1.5 * 2.25 ) IS .F.
HBTEST Empty( hb_SToD( "18241010" ) ) IS .F.
HBTEST Empty( hb_SToD( "18250231" ) ) IS .T.
HBTEST Empty( hb_SToD( "99999999" ) ) IS .T.
HBTEST Empty( hb_SToD( " " ) ) IS .T.
HBTEST Empty( hb_SToD( "" ) ) IS .T.
HBTEST Empty( .T. ) IS .F.
HBTEST Empty( .F. ) IS .T.
HBTEST Empty( NIL ) IS .T.
HBTEST Empty( { 1 } ) IS .F.
HBTEST Empty( {} ) IS .T.
HBTEST Empty( { 0 } ) IS .F.
HBTEST Empty( {| x | x + x } ) IS .F.
HBTEST Empty( ErrorNew() ) IS .F.
HBTEST Empty( 0 ) IS .T.
HBTEST Empty( -0 ) IS .T.
HBTEST Empty( 0.0 ) IS .T.
HBTEST Empty( 70000-70000 ) IS .T.
HBTEST Empty( 1.5 * 1.5 - 2.25 ) IS .T.
HBTEST Empty( 10 ) IS .F.
HBTEST Empty( 10.0 ) IS .F.
HBTEST Empty( 70000+70000 ) IS .F.
HBTEST Empty( 1.5 * 1.5 * 2.25 ) IS .F.
HBTEST Empty( hb_SToD( "18241010" ) ) IS .F.
HBTEST Empty( hb_SToD( "18250231" ) ) IS .T.
HBTEST Empty( hb_SToD( "99999999" ) ) IS .T.
HBTEST Empty( hb_SToD( " " ) ) IS .T.
HBTEST Empty( hb_SToD( "" ) ) IS .T.
HBTEST Empty( .T. ) IS .F.
HBTEST Empty( .F. ) IS .T.
HBTEST Empty( NIL ) IS .T.
HBTEST Empty( { 1 } ) IS .F.
HBTEST Empty( {} ) IS .T.
HBTEST Empty( { 0 } ) IS .F.
HBTEST Empty( {| x | x + x } ) IS .F.
HBTEST Empty( ErrorNew() ) IS .F.
/* Some number width handling tests */
@@ -582,59 +583,59 @@ PROCEDURE Main_HVMA()
HBTEST RTSTR( -500000000000000000000000 ) IS " 20 ********************"
HBTEST RTSTR( -5000000000000000000000000 ) IS " 20 ********************"
HBTEST ( nA := 50000000 , RTSTR( -nA )) IS " 10 -50000000"
HBTEST ( nA := 50000000.0 , RTSTR( -nA )) IS " 12 -50000000.0"
HBTEST ( nA := 99999999 , RTSTR( -nA )) IS " 10 -99999999"
HBTEST ( nA := 99999999.9 , RTSTR( -nA )) IS " 12 -99999999.9"
HBTEST ( nA := 100000000 , RTSTR( -nA )) IS " 10 -100000000"
HBTEST ( nA := 100000000.0 , RTSTR( -nA )) IS " 12 -100000000.0"
HBTEST ( nA := 500000000 , RTSTR( -nA )) IS " 10 -500000000"
HBTEST ( nA := 999999999 , RTSTR( -nA )) IS " 10 -999999999"
HBTEST ( nA := 999999999.99 , RTSTR( -nA )) IS " 23 -999999999.99"
HBTEST ( nA := 1000000000 , RTSTR( -nA )) IS " 20 -1000000000"
HBTEST ( nA := 1000000000.0 , RTSTR( -nA )) IS " 22 -1000000000.0"
HBTEST ( nA := 1000000000.00 , RTSTR( -nA )) IS " 23 -1000000000.00"
HBTEST ( nA := 1000000000.99 , RTSTR( -nA )) IS " 23 -1000000000.99"
HBTEST ( nA := 4000000000 , RTSTR( -nA )) IS " 20 -4000000000"
HBTEST ( nA := 5000000000 , RTSTR( -nA )) IS " 20 -5000000000"
HBTEST ( nA := 50000000000 , RTSTR( -nA )) IS " 20 -50000000000"
HBTEST ( nA := 500000000000 , RTSTR( -nA )) IS " 20 -500000000000"
HBTEST ( nA := 5000000000000 , RTSTR( -nA )) IS " 20 -5000000000000"
HBTEST ( nA := 50000000000000 , RTSTR( -nA )) IS " 20 -50000000000000"
HBTEST ( nA := 500000000000000 , RTSTR( -nA )) IS " 20 -500000000000000"
HBTEST ( nA := 5000000000000000 , RTSTR( -nA )) IS " 20 -5000000000000000"
HBTEST ( nA := 50000000000000000 , RTSTR( -nA )) IS " 20 -50000000000000000"
HBTEST ( nA := 500000000000000000 , RTSTR( -nA )) IS " 20 -500000000000000000"
HBTEST ( nA := 5000000000000000000 , RTSTR( -nA )) IS " 20 -5000000000000000000"
HBTEST ( nA := 50000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 500000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 50000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 500000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000000.0 , RTSTR( -nA )) IS " 22 **********************"
HBTEST ( nA := -50000000 , RTSTR( -nA )) IS " 10 50000000"
HBTEST ( nA := -50000000.0 , RTSTR( -nA )) IS " 12 50000000.0"
HBTEST ( nA := -500000000 , RTSTR( -nA )) IS " 10 500000000"
HBTEST ( nA := -999999999 , RTSTR( -nA )) IS " 10 999999999"
HBTEST ( nA := -1000000000 , RTSTR( -nA )) IS " 10 1000000000"
HBTEST ( nA := -4000000000 , RTSTR( -nA )) IS " 10 4000000000"
HBTEST ( nA := -5000000000 , RTSTR( -nA )) IS " 10 5000000000"
HBTEST ( nA := -50000000000 , RTSTR( -nA )) IS " 20 50000000000"
HBTEST ( nA := -500000000000 , RTSTR( -nA )) IS " 20 500000000000"
HBTEST ( nA := -5000000000000 , RTSTR( -nA )) IS " 20 5000000000000"
HBTEST ( nA := -50000000000000 , RTSTR( -nA )) IS " 20 50000000000000"
HBTEST ( nA := -500000000000000 , RTSTR( -nA )) IS " 20 500000000000000"
HBTEST ( nA := -5000000000000000 , RTSTR( -nA )) IS " 20 5000000000000000"
HBTEST ( nA := -50000000000000000 , RTSTR( -nA )) IS " 20 50000000000000000"
HBTEST ( nA := -500000000000000000 , RTSTR( -nA )) IS " 20 500000000000000000"
HBTEST ( nA := -5000000000000000000 , RTSTR( -nA )) IS " 20 5000000000000000000"
HBTEST ( nA := -50000000000000000000 , RTSTR( -nA )) IS " 20 50000000000000000000"
HBTEST ( nA := -500000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := -5000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := -50000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := -500000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := -5000000000000000000000000 , RTSTR( -nA )) IS " 20 ********************"
HBTEST ( nA := 50000000 , RTSTR( -nA ) ) IS " 10 -50000000"
HBTEST ( nA := 50000000.0 , RTSTR( -nA ) ) IS " 12 -50000000.0"
HBTEST ( nA := 99999999 , RTSTR( -nA ) ) IS " 10 -99999999"
HBTEST ( nA := 99999999.9 , RTSTR( -nA ) ) IS " 12 -99999999.9"
HBTEST ( nA := 100000000 , RTSTR( -nA ) ) IS " 10 -100000000"
HBTEST ( nA := 100000000.0 , RTSTR( -nA ) ) IS " 12 -100000000.0"
HBTEST ( nA := 500000000 , RTSTR( -nA ) ) IS " 10 -500000000"
HBTEST ( nA := 999999999 , RTSTR( -nA ) ) IS " 10 -999999999"
HBTEST ( nA := 999999999.99 , RTSTR( -nA ) ) IS " 23 -999999999.99"
HBTEST ( nA := 1000000000 , RTSTR( -nA ) ) IS " 20 -1000000000"
HBTEST ( nA := 1000000000.0 , RTSTR( -nA ) ) IS " 22 -1000000000.0"
HBTEST ( nA := 1000000000.00 , RTSTR( -nA ) ) IS " 23 -1000000000.00"
HBTEST ( nA := 1000000000.99 , RTSTR( -nA ) ) IS " 23 -1000000000.99"
HBTEST ( nA := 4000000000 , RTSTR( -nA ) ) IS " 20 -4000000000"
HBTEST ( nA := 5000000000 , RTSTR( -nA ) ) IS " 20 -5000000000"
HBTEST ( nA := 50000000000 , RTSTR( -nA ) ) IS " 20 -50000000000"
HBTEST ( nA := 500000000000 , RTSTR( -nA ) ) IS " 20 -500000000000"
HBTEST ( nA := 5000000000000 , RTSTR( -nA ) ) IS " 20 -5000000000000"
HBTEST ( nA := 50000000000000 , RTSTR( -nA ) ) IS " 20 -50000000000000"
HBTEST ( nA := 500000000000000 , RTSTR( -nA ) ) IS " 20 -500000000000000"
HBTEST ( nA := 5000000000000000 , RTSTR( -nA ) ) IS " 20 -5000000000000000"
HBTEST ( nA := 50000000000000000 , RTSTR( -nA ) ) IS " 20 -50000000000000000"
HBTEST ( nA := 500000000000000000 , RTSTR( -nA ) ) IS " 20 -500000000000000000"
HBTEST ( nA := 5000000000000000000 , RTSTR( -nA ) ) IS " 20 -5000000000000000000"
HBTEST ( nA := 50000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 500000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 50000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 500000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := 5000000000000000000000000.0 , RTSTR( -nA ) ) IS " 22 **********************"
HBTEST ( nA := -50000000 , RTSTR( -nA ) ) IS " 10 50000000"
HBTEST ( nA := -50000000.0 , RTSTR( -nA ) ) IS " 12 50000000.0"
HBTEST ( nA := -500000000 , RTSTR( -nA ) ) IS " 10 500000000"
HBTEST ( nA := -999999999 , RTSTR( -nA ) ) IS " 10 999999999"
HBTEST ( nA := -1000000000 , RTSTR( -nA ) ) IS " 10 1000000000"
HBTEST ( nA := -4000000000 , RTSTR( -nA ) ) IS " 10 4000000000"
HBTEST ( nA := -5000000000 , RTSTR( -nA ) ) IS " 10 5000000000"
HBTEST ( nA := -50000000000 , RTSTR( -nA ) ) IS " 20 50000000000"
HBTEST ( nA := -500000000000 , RTSTR( -nA ) ) IS " 20 500000000000"
HBTEST ( nA := -5000000000000 , RTSTR( -nA ) ) IS " 20 5000000000000"
HBTEST ( nA := -50000000000000 , RTSTR( -nA ) ) IS " 20 50000000000000"
HBTEST ( nA := -500000000000000 , RTSTR( -nA ) ) IS " 20 500000000000000"
HBTEST ( nA := -5000000000000000 , RTSTR( -nA ) ) IS " 20 5000000000000000"
HBTEST ( nA := -50000000000000000 , RTSTR( -nA ) ) IS " 20 50000000000000000"
HBTEST ( nA := -500000000000000000 , RTSTR( -nA ) ) IS " 20 500000000000000000"
HBTEST ( nA := -5000000000000000000 , RTSTR( -nA ) ) IS " 20 5000000000000000000"
HBTEST ( nA := -50000000000000000000 , RTSTR( -nA ) ) IS " 20 50000000000000000000"
HBTEST ( nA := -500000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := -5000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := -50000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := -500000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
HBTEST ( nA := -5000000000000000000000000 , RTSTR( -nA ) ) IS " 20 ********************"
RETURN

View File

@@ -58,305 +58,306 @@
PROCEDURE Main_MATH()
LOCAL l, s, o
MEMVAR s0, s1, v2
PRIVATE s0 := "V2", s1 := "V", v2
/* Log() */
HBTEST Log("A") IS "E 1 BASE 1095 Argument error (LOG) OS:0 #:0 A:1:C:A F:S"
HBTEST Str(Log(-1)) IS "***********************"
// HBTEST Str(Log(0)) IS "***********************"
HBTEST Str(Log(1)) IS " 0.00"
HBTEST Str(Log(12)) IS " 2.48"
HBTEST Str(Log(snIntP)) IS " 2.30"
HBTEST Log( "A" ) IS "E 1 BASE 1095 Argument error (LOG) OS:0 #:0 A:1:C:A F:S"
HBTEST Str( Log( -1 ) ) IS "***********************"
// HBTEST Str( Log( 0 ) ) IS "***********************"
HBTEST Str( Log( 1 ) ) IS " 0.00"
HBTEST Str( Log( 12 ) ) IS " 2.48"
HBTEST Str( Log( snIntP ) ) IS " 2.30"
#ifdef __HARBOUR__
HBTEST Str(Log(@snIntP)) IS " 2.30" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1095 Argument error (LOG) OS:0 #:0 A:1:U:10 F:S" */
HBTEST Str( Log( @snIntP ) ) IS " 2.30" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1095 Argument error (LOG) OS:0 #:0 A:1:U:10 F:S" */
#endif
/* Sqrt() */
HBTEST Sqrt("A") IS "E 1 BASE 1097 Argument error (SQRT) OS:0 #:0 A:1:C:A F:S"
HBTEST Sqrt(-1) IS 0
HBTEST Sqrt(0) IS 0
HBTEST Sqrt(4) IS 2
HBTEST Str(Sqrt(snIntP)) IS " 3.16"
HBTEST Sqrt( "A" ) IS "E 1 BASE 1097 Argument error (SQRT) OS:0 #:0 A:1:C:A F:S"
HBTEST Sqrt( -1 ) IS 0
HBTEST Sqrt( 0 ) IS 0
HBTEST Sqrt( 4 ) IS 2
HBTEST Str( Sqrt( snIntP ) ) IS " 3.16"
#ifdef __HARBOUR__
HBTEST Str(Sqrt(@snIntP)) IS " 3.16" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1097 Argument error (SQRT) OS:0 #:0 A:1:U:10 F:S" */
HBTEST Str( Sqrt( @snIntP ) ) IS " 3.16" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1097 Argument error (SQRT) OS:0 #:0 A:1:U:10 F:S" */
#endif
HBTEST Str(Sqrt(4),21,18) IS " 2.000000000000000000"
HBTEST Str(Sqrt(3),21,18) IS " 1.732050807568877000"
HBTEST Str( Sqrt( 4 ), 21, 18 ) IS " 2.000000000000000000"
HBTEST Str( Sqrt( 3 ), 21, 18 ) IS " 1.732050807568877000"
/* Abs() */
HBTEST Abs("A") IS "E 1 BASE 1089 Argument error (ABS) OS:0 #:0 A:1:C:A F:S"
HBTEST Abs(0) IS 0
HBTEST Abs(10) IS 10
HBTEST Abs(-10) IS 10
HBTEST Str(Abs(snIntN)) IS " 10"
HBTEST Abs( "A" ) IS "E 1 BASE 1089 Argument error (ABS) OS:0 #:0 A:1:C:A F:S"
HBTEST Abs( 0 ) IS 0
HBTEST Abs( 10 ) IS 10
HBTEST Abs( -10 ) IS 10
HBTEST Str( Abs( snIntN ) ) IS " 10"
#ifdef __HARBOUR__
HBTEST Str(Abs(@snIntN)) IS " 10" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1089 Argument error (ABS) OS:0 #:0 A:1:U:-10 F:S" */
HBTEST Str( Abs( @snIntN ) ) IS " 10" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1089 Argument error (ABS) OS:0 #:0 A:1:U:-10 F:S" */
#endif
HBTEST Abs(Month(sdDate)) IS 3
HBTEST Abs(-Month(sdDate)) IS 3
HBTEST Str(Abs(Year(sdDateE))) IS " 0"
HBTEST Str(Abs(-Year(sdDateE))) IS " 0"
HBTEST Str(Abs(Year(sdDate))) IS " 1984"
HBTEST Str(Abs(-Year(sdDate))) IS " 1984"
HBTEST Str(Abs(Month(sdDate))) IS " 3"
HBTEST Str(Abs(-Month(sdDate))) IS " 3"
HBTEST Str(Abs(0)) IS " 0"
HBTEST Str(Abs(0.0)) IS " 0.0"
HBTEST Str(Abs(-0)) IS " 0"
HBTEST Str(Abs(150)) IS " 150"
HBTEST Str(Abs(-150)) IS " 150"
HBTEST Str(Abs(150.245)) IS " 150.245"
HBTEST Str(Abs(-150.245)) IS " 150.245"
HBTEST Str(Abs(Val("0"))) IS "0"
HBTEST Str(Abs(Val("-0"))) IS " 0"
HBTEST Str(Abs(Val("150"))) IS "150"
HBTEST Str(Abs(Val("-150"))) IS " 150"
HBTEST Str(Abs(Val("150.245"))) IS " 150.245"
HBTEST Str(Abs(Val("-150.245"))) IS " 150.245"
HBTEST Abs(0.1) IS 0.1
HBTEST Abs(10.5) IS 10.5
HBTEST Abs(-10.7) IS 10.7
HBTEST Abs(10.578) IS 10.578
HBTEST Abs(-10.578) IS 10.578
HBTEST Abs(100000) IS 100000
HBTEST Abs(-100000) IS 100000
HBTEST Abs( Month( sdDate ) ) IS 3
HBTEST Abs( -Month( sdDate ) ) IS 3
HBTEST Str( Abs( Year( sdDateE ) ) ) IS " 0"
HBTEST Str( Abs( -Year( sdDateE ) ) ) IS " 0"
HBTEST Str( Abs( Year( sdDate ) ) ) IS " 1984"
HBTEST Str( Abs( -Year( sdDate ) ) ) IS " 1984"
HBTEST Str( Abs( Month( sdDate ) ) ) IS " 3"
HBTEST Str( Abs( -Month( sdDate ) ) ) IS " 3"
HBTEST Str( Abs( 0 ) ) IS " 0"
HBTEST Str( Abs( 0.0 ) ) IS " 0.0"
HBTEST Str( Abs( -0 ) ) IS " 0"
HBTEST Str( Abs( 150 ) ) IS " 150"
HBTEST Str( Abs( -150 ) ) IS " 150"
HBTEST Str( Abs( 150.245 ) ) IS " 150.245"
HBTEST Str( Abs( -150.245 ) ) IS " 150.245"
HBTEST Str( Abs( Val( "0" ) ) ) IS "0"
HBTEST Str( Abs( Val( "-0" ) ) ) IS " 0"
HBTEST Str( Abs( Val( "150" ) ) ) IS "150"
HBTEST Str( Abs( Val( "-150" ) ) ) IS " 150"
HBTEST Str( Abs( Val( "150.245" ) ) ) IS " 150.245"
HBTEST Str( Abs( Val( "-150.245" ) ) ) IS " 150.245"
HBTEST Abs( 0.1 ) IS 0.1
HBTEST Abs( 10.5 ) IS 10.5
HBTEST Abs( -10.7 ) IS 10.7
HBTEST Abs( 10.578 ) IS 10.578
HBTEST Abs( -10.578 ) IS 10.578
HBTEST Abs( 100000 ) IS 100000
HBTEST Abs( -100000 ) IS 100000
/* Exp() */
HBTEST Exp("A") IS "E 1 BASE 1096 Argument error (EXP) OS:0 #:0 A:1:C:A F:S"
HBTEST Exp(0) IS 1.00
HBTEST Str(Exp(15)) IS " 3269017.37"
HBTEST Str(Exp(snIntZ)) IS " 1.00"
HBTEST Exp( "A" ) IS "E 1 BASE 1096 Argument error (EXP) OS:0 #:0 A:1:C:A F:S"
HBTEST Exp( 0 ) IS 1.00
HBTEST Str( Exp( 15 ) ) IS " 3269017.37"
HBTEST Str( Exp( snIntZ ) ) IS " 1.00"
#ifdef __HARBOUR__
HBTEST Str(Exp(@snIntZ)) IS " 1.00" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1096 Argument error (EXP) OS:0 #:0 A:1:U:0 F:S" */
HBTEST Str( Exp( @snIntZ ) ) IS " 1.00" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1096 Argument error (EXP) OS:0 #:0 A:1:U:0 F:S" */
#endif
HBTEST Round(Exp(1),2) IS 2.72
HBTEST Str(Exp(1),20,10) IS " 2.7182818285"
HBTEST Round(Exp(10),2) IS 22026.47
HBTEST Str(Exp(10),20,10) IS " 22026.4657948067"
HBTEST Round( Exp( 1 ), 2 ) IS 2.72
HBTEST Str( Exp( 1 ), 20, 10 ) IS " 2.7182818285"
HBTEST Round( Exp( 10 ), 2 ) IS 22026.47
HBTEST Str( Exp( 10 ), 20, 10 ) IS " 22026.4657948067"
/* Round() */
HBTEST Round(snDoubleP, snIntZ) IS 11
HBTEST Round( snDoubleP, snIntZ ) IS 11
#ifdef __HARBOUR__
HBTEST Round(@snDoubleP, @snIntZ) IS 11 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:U:10.567;U:0 F:S" */
HBTEST Round( @snDoubleP, @snIntZ ) IS 11 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:U:10.567;U:0 F:S" */
#endif
HBTEST Round(NIL, 0) IS "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:U:NIL;N:0 F:S"
HBTEST Round(0, NIL) IS "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:N:0;U:NIL F:S"
HBTEST Round(0, 0) IS 0
HBTEST Round(0, 2) IS 0.00
HBTEST Round(0, -2) IS 0
HBTEST Round(0.5, 0) IS 1
HBTEST Round(0.5, 1) IS 0.5
HBTEST Round(0.5, 2) IS 0.50
HBTEST Round(0.5, -1) IS 0
HBTEST Round(0.5, -2) IS 0
HBTEST Round(0.50, 0) IS 1
HBTEST Round(0.50, 1) IS 0.5
HBTEST Round(0.50, 2) IS 0.50
HBTEST Round(0.50, -1) IS 0
HBTEST Round(0.50, -2) IS 0
HBTEST Round(0.55, 0) IS 1
HBTEST Round(0.55, 1) IS 0.6
HBTEST Round(0.55, 2) IS 0.55
HBTEST Round(0.55, -1) IS 0
HBTEST Round(0.55, -2) IS 0
HBTEST Round(0.557, 0) IS 1
HBTEST Round(0.557, 1) IS 0.6
HBTEST Round(0.557, 2) IS 0.56
HBTEST Round(0.557, -1) IS 0
HBTEST Round(0.557, -2) IS 0
HBTEST Round(50, 0) IS 50
HBTEST Round(50, 1) IS 50.0
HBTEST Round(50, 2) IS 50.00
HBTEST Round(50, -1) IS 50
HBTEST Round(50, -2) IS 100
HBTEST Round(10.50, 0) IS 11
HBTEST Round(10.50, -1) IS 10
HBTEST Round(500000, 0) IS 500000
HBTEST Round(500000, 1) IS 500000.0
HBTEST Round(500000, 2) IS 500000.00
HBTEST Round(500000, -1) IS 500000
HBTEST Round(500000, -2) IS 500000
HBTEST Round(500000, -2) IS 500000
HBTEST Round(5000000000, 0) IS 5000000000
HBTEST Round(5000000000, 1) IS 5000000000.0
HBTEST Round(5000000000, 2) IS 5000000000.00
HBTEST Round(5000000000, -1) IS 5000000000
HBTEST Round(5000000000, -2) IS 5000000000
HBTEST Round(5000000000, -2) IS 5000000000
HBTEST Round(5000000000.129, 0) IS 5000000000
HBTEST Round(5000000000.129, 1) IS 5000000000.1
HBTEST Round(5000000000.129, 2) IS 5000000000.13
HBTEST Round(5000000000.129, -1) IS 5000000000
HBTEST Round(5000000000.129, -2) IS 5000000000
HBTEST Round(5000000000.129, -2) IS 5000000000
HBTEST Round(-0.5, 0) IS -1
HBTEST Round(-0.5, 1) IS -0.5
HBTEST Round(-0.5, 2) IS -0.50
HBTEST Round(-0.5, -1) IS 0
HBTEST Round(-0.5, -2) IS 0
HBTEST Round(-0.50, 0) IS -1
HBTEST Round(-0.50, 1) IS -0.5
HBTEST Round(-0.50, 2) IS -0.50
HBTEST Round(-0.50, -1) IS 0
HBTEST Round(-0.50, -2) IS 0
HBTEST Round(-0.55, 0) IS -1
HBTEST Round(-0.55, 1) IS -0.6
HBTEST Round(-0.55, 2) IS -0.55
HBTEST Round(-0.55, -1) IS 0
HBTEST Round(-0.55, -2) IS 0
HBTEST Round(-0.557, 0) IS -1
HBTEST Round(-0.557, 1) IS -0.6
HBTEST Round(-0.557, 2) IS -0.56
HBTEST Round(-0.557, -1) IS 0
HBTEST Round(-0.557, -2) IS 0
HBTEST Round(-50, 0) IS -50
HBTEST Round(-50, 1) IS -50.0
HBTEST Round(-50, 2) IS -50.00
HBTEST Round(-50, -1) IS -50
HBTEST Round(-50, -2) IS -100
HBTEST Round(-10.50, 0) IS -11
HBTEST Round(-10.50, -1) IS -10
HBTEST Round(-500000, 0) IS -500000
HBTEST Round(-500000, 1) IS -500000.0
HBTEST Round(-500000, 2) IS -500000.00
HBTEST Round(-500000, -1) IS -500000
HBTEST Round(-500000, -2) IS -500000
HBTEST Round(-500000, -2) IS -500000
HBTEST Round(-5000000000, 0) IS -5000000000
HBTEST Round(-5000000000, 1) IS -5000000000.0
HBTEST Round(-5000000000, 2) IS -5000000000.00
HBTEST Round(-5000000000, -1) IS -5000000000
HBTEST Round(-5000000000, -2) IS -5000000000
HBTEST Round(-5000000000, -2) IS -5000000000
HBTEST Round(-5000000000.129, 0) IS -5000000000
HBTEST Round(-5000000000.129, 1) IS -5000000000.1
HBTEST Round(-5000000000.129, 2) IS -5000000000.13
HBTEST Round(-5000000000.129, -1) IS -5000000000
HBTEST Round(-5000000000.129, -2) IS -5000000000
HBTEST Round(-5000000000.129, -2) IS -5000000000
HBTEST Round( NIL, 0 ) IS "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:U:NIL;N:0 F:S"
HBTEST Round( 0, NIL ) IS "E 1 BASE 1094 Argument error (ROUND) OS:0 #:0 A:2:N:0;U:NIL F:S"
HBTEST Round( 0, 0 ) IS 0
HBTEST Round( 0, 2 ) IS 0.00
HBTEST Round( 0, -2 ) IS 0
HBTEST Round( 0.5, 0 ) IS 1
HBTEST Round( 0.5, 1 ) IS 0.5
HBTEST Round( 0.5, 2 ) IS 0.50
HBTEST Round( 0.5, -1 ) IS 0
HBTEST Round( 0.5, -2 ) IS 0
HBTEST Round( 0.50, 0 ) IS 1
HBTEST Round( 0.50, 1 ) IS 0.5
HBTEST Round( 0.50, 2 ) IS 0.50
HBTEST Round( 0.50, -1 ) IS 0
HBTEST Round( 0.50, -2 ) IS 0
HBTEST Round( 0.55, 0 ) IS 1
HBTEST Round( 0.55, 1 ) IS 0.6
HBTEST Round( 0.55, 2 ) IS 0.55
HBTEST Round( 0.55, -1 ) IS 0
HBTEST Round( 0.55, -2 ) IS 0
HBTEST Round( 0.557, 0 ) IS 1
HBTEST Round( 0.557, 1 ) IS 0.6
HBTEST Round( 0.557, 2 ) IS 0.56
HBTEST Round( 0.557, -1 ) IS 0
HBTEST Round( 0.557, -2 ) IS 0
HBTEST Round( 50, 0 ) IS 50
HBTEST Round( 50, 1 ) IS 50.0
HBTEST Round( 50, 2 ) IS 50.00
HBTEST Round( 50, -1 ) IS 50
HBTEST Round( 50, -2 ) IS 100
HBTEST Round( 10.50, 0 ) IS 11
HBTEST Round( 10.50, -1 ) IS 10
HBTEST Round( 500000, 0 ) IS 500000
HBTEST Round( 500000, 1 ) IS 500000.0
HBTEST Round( 500000, 2 ) IS 500000.00
HBTEST Round( 500000, -1 ) IS 500000
HBTEST Round( 500000, -2 ) IS 500000
HBTEST Round( 500000, -2 ) IS 500000
HBTEST Round( 5000000000, 0 ) IS 5000000000
HBTEST Round( 5000000000, 1 ) IS 5000000000.0
HBTEST Round( 5000000000, 2 ) IS 5000000000.00
HBTEST Round( 5000000000, -1 ) IS 5000000000
HBTEST Round( 5000000000, -2 ) IS 5000000000
HBTEST Round( 5000000000, -2 ) IS 5000000000
HBTEST Round( 5000000000.129, 0 ) IS 5000000000
HBTEST Round( 5000000000.129, 1 ) IS 5000000000.1
HBTEST Round( 5000000000.129, 2 ) IS 5000000000.13
HBTEST Round( 5000000000.129, -1 ) IS 5000000000
HBTEST Round( 5000000000.129, -2 ) IS 5000000000
HBTEST Round( 5000000000.129, -2 ) IS 5000000000
HBTEST Round( -0.5, 0 ) IS -1
HBTEST Round( -0.5, 1 ) IS -0.5
HBTEST Round( -0.5, 2 ) IS -0.50
HBTEST Round( -0.5, -1 ) IS 0
HBTEST Round( -0.5, -2 ) IS 0
HBTEST Round( -0.50, 0 ) IS -1
HBTEST Round( -0.50, 1 ) IS -0.5
HBTEST Round( -0.50, 2 ) IS -0.50
HBTEST Round( -0.50, -1 ) IS 0
HBTEST Round( -0.50, -2 ) IS 0
HBTEST Round( -0.55, 0 ) IS -1
HBTEST Round( -0.55, 1 ) IS -0.6
HBTEST Round( -0.55, 2 ) IS -0.55
HBTEST Round( -0.55, -1 ) IS 0
HBTEST Round( -0.55, -2 ) IS 0
HBTEST Round( -0.557, 0 ) IS -1
HBTEST Round( -0.557, 1 ) IS -0.6
HBTEST Round( -0.557, 2 ) IS -0.56
HBTEST Round( -0.557, -1 ) IS 0
HBTEST Round( -0.557, -2 ) IS 0
HBTEST Round( -50, 0 ) IS -50
HBTEST Round( -50, 1 ) IS -50.0
HBTEST Round( -50, 2 ) IS -50.00
HBTEST Round( -50, -1 ) IS -50
HBTEST Round( -50, -2 ) IS -100
HBTEST Round( -10.50, 0 ) IS -11
HBTEST Round( -10.50, -1 ) IS -10
HBTEST Round( -500000, 0 ) IS -500000
HBTEST Round( -500000, 1 ) IS -500000.0
HBTEST Round( -500000, 2 ) IS -500000.00
HBTEST Round( -500000, -1 ) IS -500000
HBTEST Round( -500000, -2 ) IS -500000
HBTEST Round( -500000, -2 ) IS -500000
HBTEST Round( -5000000000, 0 ) IS -5000000000
HBTEST Round( -5000000000, 1 ) IS -5000000000.0
HBTEST Round( -5000000000, 2 ) IS -5000000000.00
HBTEST Round( -5000000000, -1 ) IS -5000000000
HBTEST Round( -5000000000, -2 ) IS -5000000000
HBTEST Round( -5000000000, -2 ) IS -5000000000
HBTEST Round( -5000000000.129, 0 ) IS -5000000000
HBTEST Round( -5000000000.129, 1 ) IS -5000000000.1
HBTEST Round( -5000000000.129, 2 ) IS -5000000000.13
HBTEST Round( -5000000000.129, -1 ) IS -5000000000
HBTEST Round( -5000000000.129, -2 ) IS -5000000000
HBTEST Round( -5000000000.129, -2 ) IS -5000000000
/* Int() */
HBTEST Int( NIL ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Int( "A" ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:C:A F:S"
HBTEST Int( {} ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:A:{.[0].} F:S"
HBTEST Int( 0 ) IS 0
HBTEST Int( 0.0 ) IS 0
HBTEST Int( 10 ) IS 10
HBTEST Int( snIntP ) IS 10
HBTEST Int( NIL ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Int( "A" ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:C:A F:S"
HBTEST Int( {} ) IS "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:A:{.[0].} F:S"
HBTEST Int( 0 ) IS 0
HBTEST Int( 0.0 ) IS 0
HBTEST Int( 10 ) IS 10
HBTEST Int( snIntP ) IS 10
#ifdef __HARBOUR__
HBTEST Int( @snIntP ) IS 10 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:U:10 F:S" */
HBTEST Int( @snIntP ) IS 10 /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1090 Argument error (INT) OS:0 #:0 A:1:U:10 F:S" */
#endif
HBTEST Int( -10 ) IS -10
HBTEST Int( 100000 ) IS 100000
HBTEST Int( -100000 ) IS -100000
HBTEST Int( 10.5 ) IS 10
HBTEST Int( -10.5 ) IS -10
HBTEST Str(Int(Val("100.290"))) IS "100"
HBTEST Str(Int(Val(" 100.290"))) IS " 100"
HBTEST Str(Int(Val(" 100"))) IS " 100"
HBTEST Int(5000000000.90) IS 5000000000
HBTEST Int(-5000000000.90) IS -5000000000
HBTEST Int(5000000000) IS 5000000000
HBTEST Int(-5000000000) IS -5000000000
HBTEST Int(5000000000) / 100000 IS 50000
HBTEST Int(-5000000000) / 100000 IS -50000
HBTEST Int( -10 ) IS -10
HBTEST Int( 100000 ) IS 100000
HBTEST Int( -100000 ) IS -100000
HBTEST Int( 10.5 ) IS 10
HBTEST Int( -10.5 ) IS -10
HBTEST Str( Int( Val( "100.290" ) ) ) IS "100"
HBTEST Str( Int( Val( " 100.290" ) ) ) IS " 100"
HBTEST Str( Int( Val( " 100" ) ) ) IS " 100"
HBTEST Int( 5000000000.90 ) IS 5000000000
HBTEST Int( -5000000000.90 ) IS -5000000000
HBTEST Int( 5000000000 ) IS 5000000000
HBTEST Int( -5000000000 ) IS -5000000000
HBTEST Int( 5000000000 ) / 100000 IS 50000
HBTEST Int( -5000000000 ) / 100000 IS -50000
/* Min()/Max() */
HBTEST Max(NIL, NIL) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:U:NIL;U:NIL F:S"
HBTEST Max(10, NIL) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:N:10;U:NIL F:S"
HBTEST Max(hb_SToD("19800101"), 10) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:D:0d19800101;N:10 F:S"
HBTEST Max(hb_SToD("19800101"), hb_SToD("19800101")) IS hb_SToD("19800101")
HBTEST Max(hb_SToD("19800102"), hb_SToD("19800101")) IS hb_SToD("19800102")
HBTEST Max(hb_SToD("19800101"), hb_SToD("19800102")) IS hb_SToD("19800102")
HBTEST Max(snIntP, snLongP) IS 100000
HBTEST Max( NIL, NIL ) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:U:NIL;U:NIL F:S"
HBTEST Max( 10, NIL ) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:N:10;U:NIL F:S"
HBTEST Max( hb_SToD( "19800101" ), 10 ) IS "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:D:0d19800101;N:10 F:S"
HBTEST Max( hb_SToD( "19800101" ), hb_SToD( "19800101" ) ) IS hb_SToD( "19800101" )
HBTEST Max( hb_SToD( "19800102" ), hb_SToD( "19800101" ) ) IS hb_SToD( "19800102" )
HBTEST Max( hb_SToD( "19800101" ), hb_SToD( "19800102" ) ) IS hb_SToD( "19800102" )
HBTEST Max( snIntP, snLongP ) IS 100000
#ifdef __HARBOUR__
HBTEST Max(@snIntP, @snLongP) IS 100000 /* Bug in CA-Cl*pper, it will return: "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:U:10;U:100000 F:S" */
HBTEST Max( @snIntP, @snLongP ) IS 100000 /* Bug in CA-Cl*pper, it will return: "E 1 BASE 1093 Argument error (MAX) OS:0 #:0 A:2:U:10;U:100000 F:S" */
#endif
HBTEST Min(NIL, NIL) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:U:NIL;U:NIL F:S"
HBTEST Min(10, NIL) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:N:10;U:NIL F:S"
HBTEST Min(hb_SToD("19800101"), 10) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:D:0d19800101;N:10 F:S"
HBTEST Min(hb_SToD("19800101"), hb_SToD("19800101")) IS hb_SToD("19800101")
HBTEST Min(hb_SToD("19800102"), hb_SToD("19800101")) IS hb_SToD("19800101")
HBTEST Min(hb_SToD("19800101"), hb_SToD("19800102")) IS hb_SToD("19800101")
HBTEST Min(snIntP, snLongP) IS 10
HBTEST Min( NIL, NIL ) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:U:NIL;U:NIL F:S"
HBTEST Min( 10, NIL ) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:N:10;U:NIL F:S"
HBTEST Min( hb_SToD( "19800101" ), 10 ) IS "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:D:0d19800101;N:10 F:S"
HBTEST Min( hb_SToD( "19800101" ), hb_SToD( "19800101" ) ) IS hb_SToD( "19800101" )
HBTEST Min( hb_SToD( "19800102" ), hb_SToD( "19800101" ) ) IS hb_SToD( "19800101" )
HBTEST Min( hb_SToD( "19800101" ), hb_SToD( "19800102" ) ) IS hb_SToD( "19800101" )
HBTEST Min( snIntP, snLongP ) IS 10
#ifdef __HARBOUR__
HBTEST Min(@snIntP, @snLongP) IS 10 /* Bug in CA-Cl*pper, it will return: "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:U:10;U:100000 F:S" */
HBTEST Min( @snIntP, @snLongP ) IS 10 /* Bug in CA-Cl*pper, it will return: "E 1 BASE 1092 Argument error (MIN) OS:0 #:0 A:2:U:10;U:100000 F:S" */
#endif
/* Decimals handling */
HBTEST Str(Max(10, 12) ) IS " 12"
HBTEST Str(Max(10.50, 10) ) IS " 10.50"
HBTEST Str(Max(10, 9.50) ) IS " 10"
HBTEST Str(Max(100000, 10) ) IS " 100000"
HBTEST Str(Max(20.50, 20.670) ) IS " 20.670"
HBTEST Str(Max(20.5125, 20.670) ) IS " 20.670"
HBTEST Str(Min(10, 12) ) IS " 10"
HBTEST Str(Min(10.50, 10) ) IS " 10"
HBTEST Str(Min(10, 9.50) ) IS " 9.50"
HBTEST Str(Min(100000, 10) ) IS " 10"
HBTEST Str(Min(20.50, 20.670) ) IS " 20.50"
HBTEST Str(Min(20.5125, 20.670) ) IS " 20.5125"
HBTEST Str(Val("0x10") ) IS " 0"
HBTEST Str(Val("0X10") ) IS " 0"
HBTEST Str(Val("15E2") ) IS " 15"
HBTEST Str(Val("15E21") ) IS " 15"
HBTEST Str(Val("15.1A10") ) IS "15.1000"
HBTEST Str(Val("15.1A1") ) IS "15.100"
HBTEST Str(Val("A") ) IS "0"
HBTEST Str(Val("AAA0") ) IS " 0"
HBTEST Str(Val("AAA2") ) IS " 0"
HBTEST Str(Val("") ) IS " 0"
HBTEST Str(Val("0") ) IS "0"
HBTEST Str(Val(" 0") ) IS " 0"
HBTEST Str(Val("-0") ) IS " 0"
HBTEST Str(Val("00") ) IS " 0"
HBTEST Str(Val("1") ) IS "1"
HBTEST Str(Val("15") ) IS "15"
HBTEST Str(Val("200") ) IS "200"
HBTEST Str(Val(" 200") ) IS " 200"
HBTEST Str(Val("200 ") ) IS " 200"
HBTEST Str(Val(" 200 ") ) IS " 200"
HBTEST Str(Val("-200") ) IS "-200"
HBTEST Str(Val(" -200") ) IS " -200"
HBTEST Str(Val("-200 ") ) IS " -200"
HBTEST Str(Val(" -200 ") ) IS " -200"
HBTEST Str(Val("15.0") ) IS "15.0"
HBTEST Str(Val("15.00") ) IS "15.00"
HBTEST Str(Val("15.000") ) IS "15.000"
HBTEST Str(Val("15.001 ") ) IS "15.0010"
HBTEST Str(Val("100000000") ) IS "100000000"
HBTEST Str(Val("5000000000") ) IS "5000000000"
HBTEST Str(10 ) IS " 10"
HBTEST Str(15.0 ) IS " 15.0"
HBTEST Str(10.1 ) IS " 10.1"
HBTEST Str(15.00 ) IS " 15.00"
// HBTEST Str(Log(0) ) IS "***********************"
HBTEST Str(100.2 * 200.12 ) IS " 20052.024"
HBTEST Str(100.20 * 200.12 ) IS " 20052.0240"
HBTEST Str(1000.2 * 200.12 ) IS " 200160.024"
HBTEST Str(100/1000 ) IS " 0.10"
HBTEST Str(100/100000 ) IS " 0.00"
HBTEST Str(10 * 10 ) IS " 100"
HBTEST Str(100 / 10 ) IS " 10"
HBTEST Str(100 / 13 ) IS " 7.69"
HBTEST Str(100.0 / 10 ) IS " 10.00"
HBTEST Str(100.0 / 10.00 ) IS " 10.00"
HBTEST Str(100.0 / 10.000 ) IS " 10.00"
HBTEST Str(100 / 10.00 ) IS " 10.00"
HBTEST Str(100 / 10.000 ) IS " 10.00"
HBTEST Str(100.00 / 10.0 ) IS " 10.00"
HBTEST Str(sdDate - sdDateE ) IS " 2445785"
HBTEST Str(sdDate - sdDate ) IS " 0"
HBTEST Str(1234567890 * 1234567890 ) IS " 1524157875019052000" /* real val is 1524157875019052100 */
HBTEST Str( Max( 10, 12 ) ) IS " 12"
HBTEST Str( Max( 10.50, 10 ) ) IS " 10.50"
HBTEST Str( Max( 10, 9.50 ) ) IS " 10"
HBTEST Str( Max( 100000, 10 ) ) IS " 100000"
HBTEST Str( Max( 20.50, 20.670 ) ) IS " 20.670"
HBTEST Str( Max( 20.5125, 20.670 ) ) IS " 20.670"
HBTEST Str( Min( 10, 12 ) ) IS " 10"
HBTEST Str( Min( 10.50, 10 ) ) IS " 10"
HBTEST Str( Min( 10, 9.50 ) ) IS " 9.50"
HBTEST Str( Min( 100000, 10 ) ) IS " 10"
HBTEST Str( Min( 20.50, 20.670 ) ) IS " 20.50"
HBTEST Str( Min( 20.5125, 20.670 ) ) IS " 20.5125"
HBTEST Str( Val( "0x10" ) ) IS " 0"
HBTEST Str( Val( "0X10" ) ) IS " 0"
HBTEST Str( Val( "15E2" ) ) IS " 15"
HBTEST Str( Val( "15E21" ) ) IS " 15"
HBTEST Str( Val( "15.1A10" ) ) IS "15.1000"
HBTEST Str( Val( "15.1A1" ) ) IS "15.100"
HBTEST Str( Val( "A" ) ) IS "0"
HBTEST Str( Val( "AAA0" ) ) IS " 0"
HBTEST Str( Val( "AAA2" ) ) IS " 0"
HBTEST Str( Val( "" ) ) IS " 0"
HBTEST Str( Val( "0" ) ) IS "0"
HBTEST Str( Val( " 0" ) ) IS " 0"
HBTEST Str( Val( "-0" ) ) IS " 0"
HBTEST Str( Val( "00" ) ) IS " 0"
HBTEST Str( Val( "1" ) ) IS "1"
HBTEST Str( Val( "15" ) ) IS "15"
HBTEST Str( Val( "200" ) ) IS "200"
HBTEST Str( Val( " 200" ) ) IS " 200"
HBTEST Str( Val( "200 " ) ) IS " 200"
HBTEST Str( Val( " 200 " ) ) IS " 200"
HBTEST Str( Val( "-200" ) ) IS "-200"
HBTEST Str( Val( " -200" ) ) IS " -200"
HBTEST Str( Val( "-200 " ) ) IS " -200"
HBTEST Str( Val( " -200 " ) ) IS " -200"
HBTEST Str( Val( "15.0" ) ) IS "15.0"
HBTEST Str( Val( "15.00" ) ) IS "15.00"
HBTEST Str( Val( "15.000" ) ) IS "15.000"
HBTEST Str( Val( "15.001 " ) ) IS "15.0010"
HBTEST Str( Val( "100000000" ) ) IS "100000000"
HBTEST Str( Val( "5000000000" ) ) IS "5000000000"
HBTEST Str( 10 ) IS " 10"
HBTEST Str( 15.0 ) IS " 15.0"
HBTEST Str( 10.1 ) IS " 10.1"
HBTEST Str( 15.00 ) IS " 15.00"
// HBTEST Str( Log( 0 ) ) IS "***********************"
HBTEST Str( 100.2 * 200.12 ) IS " 20052.024"
HBTEST Str( 100.20 * 200.12 ) IS " 20052.0240"
HBTEST Str( 1000.2 * 200.12 ) IS " 200160.024"
HBTEST Str( 100 / 1000 ) IS " 0.10"
HBTEST Str( 100 / 100000 ) IS " 0.00"
HBTEST Str( 10 * 10 ) IS " 100"
HBTEST Str( 100 / 10 ) IS " 10"
HBTEST Str( 100 / 13 ) IS " 7.69"
HBTEST Str( 100.0 / 10 ) IS " 10.00"
HBTEST Str( 100.0 / 10.00 ) IS " 10.00"
HBTEST Str( 100.0 / 10.000 ) IS " 10.00"
HBTEST Str( 100 / 10.00 ) IS " 10.00"
HBTEST Str( 100 / 10.000 ) IS " 10.00"
HBTEST Str( 100.00 / 10.0 ) IS " 10.00"
HBTEST Str( sdDate - sdDateE ) IS " 2445785"
HBTEST Str( sdDate - sdDate ) IS " 0"
HBTEST Str( 1234567890 * 1234567890 ) IS " 1524157875019052000" /* real val is 1524157875019052100 */
/* Mod() */
@@ -408,7 +409,7 @@ PROCEDURE Main_MATH()
HBTEST Str( Mod( -3, -3 ) ) IS " 0.00"
/* <OP>assign and (pre/post)(inc/dec)rementation */
o:=ErrorNew()
o := ErrorNew()
o:oscode := 1
HBTEST o:oscode IS 1
o:oscode++
@@ -417,9 +418,9 @@ PROCEDURE Main_MATH()
++o:oscode
HBTEST o:oscode IS 4
HBTEST ++o:oscode IS 5
o:oscode+=10
o:oscode += 10
HBTEST o:oscode IS 15
HBTEST o:oscode+=200 IS 215
HBTEST o:oscode += 200 IS 215
l := 1
HBTEST l IS 1
@@ -429,9 +430,9 @@ PROCEDURE Main_MATH()
++l
HBTEST l IS 4
HBTEST ++l IS 5
l+=10
l += 10
HBTEST l IS 15
HBTEST l+=200 IS 215
HBTEST l += 200 IS 215
mnIntN := 1
HBTEST mnIntN IS 1
@@ -441,9 +442,9 @@ PROCEDURE Main_MATH()
++mnIntN
HBTEST mnIntN IS 4
HBTEST ++mnIntN IS 5
mnIntN+=10
mnIntN += 10
HBTEST mnIntN IS 15
HBTEST mnIntN+=200 IS 215
HBTEST mnIntN += 200 IS 215
snIntN := 1
HBTEST snIntN IS 1
@@ -453,9 +454,9 @@ PROCEDURE Main_MATH()
++snIntN
HBTEST snIntN IS 4
HBTEST ++snIntN IS 5
snIntN+=10
snIntN += 10
HBTEST snIntN IS 15
HBTEST snIntN+=200 IS 215
HBTEST snIntN += 200 IS 215
#ifdef __HARBOUR__
@@ -469,9 +470,9 @@ PROCEDURE Main_MATH()
++o:&s
HBTEST o:&(s) IS 4
HBTEST ++o:&(s) IS 5
o:&s+=10
o:&s += 10
HBTEST o:&(s) IS 15
HBTEST o:&(s)+=200 IS 215
HBTEST o:&(s) += 200 IS 215
WITH OBJECT ErrorNew()
:&(s) := 1
@@ -482,9 +483,9 @@ PROCEDURE Main_MATH()
++:&(s)
HBTEST :&(s) IS 4
HBTEST ++:&(s) IS 5
:&(s)+=10
:&(s) += 10
HBTEST :&(s) IS 15
HBTEST :&(s)+=200 IS 215
HBTEST :&(s) += 200 IS 215
ENDWITH
WITH OBJECT ErrorNew()
@@ -496,9 +497,9 @@ PROCEDURE Main_MATH()
++:oscode
HBTEST :oscode IS 4
HBTEST ++:oscode IS 5
:oscode+=10
:oscode += 10
HBTEST :oscode IS 15
HBTEST :oscode+=200 IS 215
HBTEST :oscode += 200 IS 215
ENDWITH
&s0 := 1
@@ -509,9 +510,9 @@ PROCEDURE Main_MATH()
++&s0
HBTEST &s0 IS 4
HBTEST ++&(s0) IS 5
&s0+=10
&s0 += 10
HBTEST &s0 IS 15
HBTEST &(s0)+=200 IS 215
HBTEST &(s0) += 200 IS 215
&s1.2 := 1
HBTEST &s1.2 IS 1
@@ -521,9 +522,9 @@ PROCEDURE Main_MATH()
++&s1.2
HBTEST &s1.2 IS 4
HBTEST ++&s1.2 IS 5
&s1.2+=10
&s1.2 += 10
HBTEST &s1.2 IS 15
HBTEST &s1.2+=200 IS 215
HBTEST &s1.2 += 200 IS 215
#endif

View File

@@ -63,6 +63,7 @@
#endif
PROCEDURE Main_MISC()
LOCAL oError
#ifdef __HARBOUR__
LOCAL cEOL
@@ -356,53 +357,53 @@ PROCEDURE Main_MISC()
#endif
/* "Samples" function tests (AMPM(), Days(), ElapTime(), ... ) */
HBTEST AMPM( "" ) IS "12 am"
HBTEST AMPM( "HELLO" ) IS "12LLO am"
HBTEST AMPM( " 0:23:45" ) IS "12:23:45 am"
HBTEST AMPM( "00:23:45" ) IS "12:23:45 am"
HBTEST AMPM( " 5:23:45" ) IS " 5:23:45 am"
HBTEST AMPM( "05:23:45" ) IS "05:23:45 am"
HBTEST AMPM( "12:23:45" ) IS "12:23:45 pm"
HBTEST AMPM( "20:23:45" ) IS " 8:23:45 pm"
HBTEST AMPM( "24:23:45" ) IS "12:23:45 am"
HBTEST AMPM( "25:23:45" ) IS "13:23:45 pm"
HBTEST AMPM( "2" ) IS "2 am"
HBTEST AMPM( "02:23" ) IS "02:23 am"
HBTEST AMPM( "02:23:45.10" ) IS "02:23:45.10 am"
HBTEST AMPM( "" ) IS "12 am"
HBTEST AMPM( "HELLO" ) IS "12LLO am"
HBTEST AMPM( " 0:23:45" ) IS "12:23:45 am"
HBTEST AMPM( "00:23:45" ) IS "12:23:45 am"
HBTEST AMPM( " 5:23:45" ) IS " 5:23:45 am"
HBTEST AMPM( "05:23:45" ) IS "05:23:45 am"
HBTEST AMPM( "12:23:45" ) IS "12:23:45 pm"
HBTEST AMPM( "20:23:45" ) IS " 8:23:45 pm"
HBTEST AMPM( "24:23:45" ) IS "12:23:45 am"
HBTEST AMPM( "25:23:45" ) IS "13:23:45 pm"
HBTEST AMPM( "2" ) IS "2 am"
HBTEST AMPM( "02:23" ) IS "02:23 am"
HBTEST AMPM( "02:23:45.10" ) IS "02:23:45.10 am"
HBTEST Days( 100000 ) IS 1
HBTEST Days( 100000 ) IS 1
HBTEST ElapTime("23:12:34","12:34:57") IS "13:22:23"
HBTEST ElapTime("12:34:57","23:12:34") IS "10:37:37"
HBTEST ElapTime( "23:12:34", "12:34:57" ) IS "13:22:23"
HBTEST ElapTime( "12:34:57", "23:12:34" ) IS "10:37:37"
HBTEST LenNum( 10 ) IS 2
HBTEST LenNum( 10.9 ) IS 4
HBTEST LenNum( 10.90 ) IS 5
HBTEST LenNum( 10 ) IS 2
HBTEST LenNum( 10.9 ) IS 4
HBTEST LenNum( 10.90 ) IS 5
HBTEST Secs("23:12:34") IS 83554
HBTEST Secs("12:34:57") IS 45297
HBTEST Secs( "23:12:34" ) IS 83554
HBTEST Secs( "12:34:57" ) IS 45297
HBTEST TString(1000) IS "00:16:40"
HBTEST TString( 1000 ) IS "00:16:40"
#ifndef __XPP__
HBTEST SoundEx() IS "0000"
HBTEST SoundEx( 10 ) IS "0000"
HBTEST SoundEx( @scString ) IS "H400"
HBTEST SoundEx( "" ) IS "0000"
HBTEST SoundEx( "Hm" ) IS "H500"
HBTEST SoundEx( "Smith" ) IS "S530"
HBTEST SoundEx( "Harbour" ) IS "H616"
HBTEST SoundEx( "HARBOUR" ) IS "H616"
HBTEST SoundEx( "Harpour" ) IS "H616"
HBTEST SoundEx( "Hello" ) IS "H400"
HBTEST SoundEx( "Aardwaark" ) IS "A636"
HBTEST SoundEx( "Ardwark" ) IS "A636"
HBTEST SoundEx( "Bold" ) IS "B430"
HBTEST SoundEx( "Cold" ) IS "C430"
HBTEST SoundEx( "Colt" ) IS "C430"
HBTEST SoundEx( "C"+Chr(0)+"olt" ) IS "C430"
HBTEST SoundEx( "µ A<C2A0>" ) IS "A000"
HBTEST SoundEx( "12345" ) IS "0000"
HBTEST SoundEx() IS "0000"
HBTEST SoundEx( 10 ) IS "0000"
HBTEST SoundEx( @scString ) IS "H400"
HBTEST SoundEx( "" ) IS "0000"
HBTEST SoundEx( "Hm" ) IS "H500"
HBTEST SoundEx( "Smith" ) IS "S530"
HBTEST SoundEx( "Harbour" ) IS "H616"
HBTEST SoundEx( "HARBOUR" ) IS "H616"
HBTEST SoundEx( "Harpour" ) IS "H616"
HBTEST SoundEx( "Hello" ) IS "H400"
HBTEST SoundEx( "Aardwaark" ) IS "A636"
HBTEST SoundEx( "Ardwark" ) IS "A636"
HBTEST SoundEx( "Bold" ) IS "B430"
HBTEST SoundEx( "Cold" ) IS "C430"
HBTEST SoundEx( "Colt" ) IS "C430"
HBTEST SoundEx( "C" + Chr( 0 ) + "olt" ) IS "C430"
HBTEST SoundEx( "µ A<C2A0>" ) IS "A000"
HBTEST SoundEx( "12345" ) IS "0000"
#endif
/* NATION functions (do not exist in 5.2e US) */
@@ -412,34 +413,34 @@ PROCEDURE Main_MISC()
/* NOTE: Use the identical internal versions if Harbour
was compiled without C5.x undocumented features.
[vszakats] */
#xtranslate NationMsg([<x,...>]) => __natMsg(<x>)
#xtranslate IsAffirm([<x,...>]) => __natIsAffirm(<x>)
#xtranslate IsNegative([<x,...>]) => __natIsNegative(<x>)
#xtranslate NationMsg( [<x,...>] ) => __natMsg( <x> )
#xtranslate IsAffirm( [<x,...>] ) => __natIsAffirm( <x> )
#xtranslate IsNegative( [<x,...>] ) => __natIsNegative( <x> )
#endif
#endif
#ifndef __XPP__
HBTEST NationMsg() IS "Invalid argument"
#endif
HBTEST NationMsg("A") IS ""
HBTEST NationMsg(-1) IS "" /* CA-Cl*pper bug: 5.3 may return trash. */
HBTEST NationMsg(0) IS ""
HBTEST NationMsg(1) IS "Database Files # Records Last Update Size"
HBTEST NationMsg(2) IS "Do you want more samples?"
HBTEST NationMsg(3) IS "Page No."
HBTEST NationMsg(4) IS "** Subtotal **"
HBTEST NationMsg(5) IS "* Subsubtotal *"
HBTEST NationMsg(6) IS "*** Total ***"
HBTEST NationMsg(7) IS "Ins"
HBTEST NationMsg(8) IS " "
HBTEST NationMsg(9) IS "Invalid date"
HBTEST NationMsg(10) IS "Range: "
HBTEST NationMsg(11) IS " - "
HBTEST NationMsg(12) IS "Y/N"
HBTEST NationMsg(13) IS "INVALID EXPRESSION"
HBTEST NationMsg(14) IS "" /* Bug in CA-Cl*pper 5.3a/b, it will return "ATSORT v1.3i x19 06/Mar/95" */
HBTEST NationMsg( "A" ) IS ""
HBTEST NationMsg( -1 ) IS "" /* CA-Cl*pper bug: 5.3 may return trash. */
HBTEST NationMsg( 0 ) IS ""
HBTEST NationMsg( 1 ) IS "Database Files # Records Last Update Size"
HBTEST NationMsg( 2 ) IS "Do you want more samples?"
HBTEST NationMsg( 3 ) IS "Page No."
HBTEST NationMsg( 4 ) IS "** Subtotal **"
HBTEST NationMsg( 5 ) IS "* Subsubtotal *"
HBTEST NationMsg( 6 ) IS "*** Total ***"
HBTEST NationMsg( 7 ) IS "Ins"
HBTEST NationMsg( 8 ) IS " "
HBTEST NationMsg( 9 ) IS "Invalid date"
HBTEST NationMsg( 10 ) IS "Range: "
HBTEST NationMsg( 11 ) IS " - "
HBTEST NationMsg( 12 ) IS "Y/N"
HBTEST NationMsg( 13 ) IS "INVALID EXPRESSION"
HBTEST NationMsg( 14 ) IS "" /* Bug in CA-Cl*pper 5.3a/b, it will return "ATSORT v1.3i x19 06/Mar/95" */
#ifndef __CLIPPER__ /* Causes GPF in CA-Cl*pper (5.2e International, 5.3b) */
HBTEST NationMsg(200) IS "" /* Bug in CA-Cl*pper, it will return "74?" or other trash */
HBTEST NationMsg( 200 ) IS "" /* Bug in CA-Cl*pper, it will return "74?" or other trash */
#endif
#ifndef __XPP__
@@ -447,40 +448,40 @@ PROCEDURE Main_MISC()
/* These will cause a GPF in CA-Cl*pper (5.2e International, 5.3b) */
#ifndef __CLIPPER__
HBTEST IsAffirm() IS .F.
HBTEST IsAffirm(.F.) IS .F.
HBTEST IsAffirm(.T.) IS .F.
HBTEST IsAffirm(0) IS .F.
HBTEST IsAffirm(1) IS .F.
HBTEST IsAffirm( .F. ) IS .F.
HBTEST IsAffirm( .T. ) IS .F.
HBTEST IsAffirm( 0 ) IS .F.
HBTEST IsAffirm( 1 ) IS .F.
#endif
HBTEST IsAffirm("") IS .F.
HBTEST IsAffirm("I") IS .F.
HBTEST IsAffirm("y") IS .T.
HBTEST IsAffirm("Y") IS .T.
HBTEST IsAffirm("yes") IS .T.
HBTEST IsAffirm("YES") IS .T.
HBTEST IsAffirm("n") IS .F.
HBTEST IsAffirm("N") IS .F.
HBTEST IsAffirm("no") IS .F.
HBTEST IsAffirm("NO") IS .F.
HBTEST IsAffirm( "" ) IS .F.
HBTEST IsAffirm( "I" ) IS .F.
HBTEST IsAffirm( "y" ) IS .T.
HBTEST IsAffirm( "Y" ) IS .T.
HBTEST IsAffirm( "yes" ) IS .T.
HBTEST IsAffirm( "YES" ) IS .T.
HBTEST IsAffirm( "n" ) IS .F.
HBTEST IsAffirm( "N" ) IS .F.
HBTEST IsAffirm( "no" ) IS .F.
HBTEST IsAffirm( "NO" ) IS .F.
/* These will cause a GPF in CA-Cl*pper (5.2e International, 5.3b) */
#ifndef __CLIPPER__
HBTEST IsNegative() IS .F.
HBTEST IsNegative(.F.) IS .F.
HBTEST IsNegative(.T.) IS .F.
HBTEST IsNegative(0) IS .F.
HBTEST IsNegative(1) IS .F.
HBTEST IsNegative( .F. ) IS .F.
HBTEST IsNegative( .T. ) IS .F.
HBTEST IsNegative( 0 ) IS .F.
HBTEST IsNegative( 1 ) IS .F.
#endif
HBTEST IsNegative("") IS .F.
HBTEST IsNegative("I") IS .F.
HBTEST IsNegative("y") IS .F.
HBTEST IsNegative("Y") IS .F.
HBTEST IsNegative("yes") IS .F.
HBTEST IsNegative("YES") IS .F.
HBTEST IsNegative("n") IS .T.
HBTEST IsNegative("N") IS .T.
HBTEST IsNegative("no") IS .T.
HBTEST IsNegative("NO") IS .T.
HBTEST IsNegative( "" ) IS .F.
HBTEST IsNegative( "I" ) IS .F.
HBTEST IsNegative( "y" ) IS .F.
HBTEST IsNegative( "Y" ) IS .F.
HBTEST IsNegative( "yes" ) IS .F.
HBTEST IsNegative( "YES" ) IS .F.
HBTEST IsNegative( "n" ) IS .T.
HBTEST IsNegative( "N" ) IS .T.
HBTEST IsNegative( "no" ) IS .T.
HBTEST IsNegative( "NO" ) IS .T.
#endif /* __XPP__ */
@@ -532,8 +533,8 @@ PROCEDURE Main_MISC()
HBTEST Eval( NIL ) IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Eval( 1 ) IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:N:1 F:S"
HBTEST Eval( @sbBlock ) IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:B:{||...} F:S" /* CA-Cl*pper returns "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:U:{||...} F:S" */
HBTEST Eval( {| p1 | p1 },"A","B") IS "A"
HBTEST Eval( {| p1, p2 | p1 + p2 },"A","B") IS "AB"
HBTEST Eval( {| p1 | p1 }, "A", "B" ) IS "A"
HBTEST Eval( {| p1, p2 | p1 + p2 }, "A", "B" ) IS "AB"
#ifdef __HARBOUR__
HBTEST Eval( {| p1, p2, p3 | HB_SYMBOL_UNUSED( p2 ), HB_SYMBOL_UNUSED( p3 ), p1 }, "A", "B" ) IS "A"
#else
@@ -559,9 +560,9 @@ PROCEDURE Main_MISC()
/* hb_SToD() */
/* For these tests in CA-Cl*pper 5.2e the following native hb_SToD() has
been used ( not the emulated one written in Clipper ):
been used (not the emulated one written in Clipper):
CLIPPER hb_SToD( void
CLIPPER hb_SToD( void )
{
// The length check is a fix to avoid buggy behaviour of _retds()
_retds( ( ISCHAR( 1 ) && _parclen( 1 ) == 8 ) ? _parc( 1 ) : " " );
@@ -570,118 +571,118 @@ PROCEDURE Main_MISC()
#ifndef RT_NO_C
#ifndef __XPP__
HBTEST hb_SToD() IS hb_SToD(" ")
HBTEST hb_SToD() IS hb_SToD( " " )
#endif
HBTEST hb_SToD(1) IS hb_SToD(" ")
HBTEST hb_SToD(NIL) IS hb_SToD(" ")
HBTEST hb_SToD("") IS hb_SToD(" ")
HBTEST hb_SToD(" ") IS hb_SToD(" ")
HBTEST hb_SToD(" ") IS hb_SToD(" ")
HBTEST hb_SToD(" ") IS hb_SToD(" ")
HBTEST hb_SToD(" 1234567") IS hb_SToD(" ")
HBTEST hb_SToD("1999 ") IS hb_SToD(" ")
HBTEST hb_SToD("99999999") IS hb_SToD(" ")
HBTEST hb_SToD("99990101") IS hb_SToD("99990101")
HBTEST hb_SToD("19991301") IS hb_SToD(" ")
HBTEST hb_SToD("19991241") IS hb_SToD(" ")
HBTEST hb_SToD("01000101") IS hb_SToD("01000101")
HBTEST hb_SToD("29991231") IS hb_SToD("29991231")
HBTEST hb_SToD("19990905") IS hb_SToD("19990905")
HBTEST hb_SToD(" 9990905") IS hb_SToD(" ")
HBTEST hb_SToD(" 990905") IS hb_SToD(" ")
HBTEST hb_SToD(" 90905") IS hb_SToD(" ")
HBTEST hb_SToD(" 0905") IS hb_SToD(" ")
HBTEST hb_SToD(" 905") IS hb_SToD(" ")
HBTEST hb_SToD(" 05") IS hb_SToD(" ")
HBTEST hb_SToD("1 990905") IS hb_SToD(" ")
HBTEST hb_SToD("19 90905") IS hb_SToD("17490905")
HBTEST hb_SToD("199 0905") IS hb_SToD("19740905")
HBTEST hb_SToD("1999 905") IS hb_SToD(" ")
HBTEST hb_SToD("19990 05") IS hb_SToD(" ")
HBTEST hb_SToD("199909 5") IS hb_SToD(" ")
HBTEST hb_SToD("1999090 ") IS hb_SToD(" ")
HBTEST hb_SToD("1999 9 5") IS hb_SToD(" ")
HBTEST hb_SToD("1999090" + Chr(0)) IS hb_SToD(" ")
HBTEST hb_SToD( 1 ) IS hb_SToD( " " )
HBTEST hb_SToD( NIL ) IS hb_SToD( " " )
HBTEST hb_SToD( "" ) IS hb_SToD( " " )
HBTEST hb_SToD( " " ) IS hb_SToD( " " )
HBTEST hb_SToD( " " ) IS hb_SToD( " " )
HBTEST hb_SToD( " " ) IS hb_SToD( " " )
HBTEST hb_SToD( " 1234567" ) IS hb_SToD( " " )
HBTEST hb_SToD( "1999 " ) IS hb_SToD( " " )
HBTEST hb_SToD( "99999999" ) IS hb_SToD( " " )
HBTEST hb_SToD( "99990101" ) IS hb_SToD( "99990101" )
HBTEST hb_SToD( "19991301" ) IS hb_SToD( " " )
HBTEST hb_SToD( "19991241" ) IS hb_SToD( " " )
HBTEST hb_SToD( "01000101" ) IS hb_SToD( "01000101" )
HBTEST hb_SToD( "29991231" ) IS hb_SToD( "29991231" )
HBTEST hb_SToD( "19990905" ) IS hb_SToD( "19990905" )
HBTEST hb_SToD( " 9990905" ) IS hb_SToD( " " )
HBTEST hb_SToD( " 990905" ) IS hb_SToD( " " )
HBTEST hb_SToD( " 90905" ) IS hb_SToD( " " )
HBTEST hb_SToD( " 0905" ) IS hb_SToD( " " )
HBTEST hb_SToD( " 905" ) IS hb_SToD( " " )
HBTEST hb_SToD( " 05" ) IS hb_SToD( " " )
HBTEST hb_SToD( "1 990905" ) IS hb_SToD( " " )
HBTEST hb_SToD( "19 90905" ) IS hb_SToD( "17490905" )
HBTEST hb_SToD( "199 0905" ) IS hb_SToD( "19740905" )
HBTEST hb_SToD( "1999 905" ) IS hb_SToD( " " )
HBTEST hb_SToD( "19990 05" ) IS hb_SToD( " " )
HBTEST hb_SToD( "199909 5" ) IS hb_SToD( " " )
HBTEST hb_SToD( "1999090 " ) IS hb_SToD( " " )
HBTEST hb_SToD( "1999 9 5" ) IS hb_SToD( " " )
HBTEST hb_SToD( "1999090" + Chr( 0 ) ) IS hb_SToD( " " )
#endif
/* Descend() */
#ifndef __CLIPPER__ /* Bug in CA-Cl*pper, it returns undefined trash */
#ifndef __XPP__ /* Compiler time error */
HBTEST Descend() IS NIL
HBTEST Descend() IS NIL
#endif
#endif
HBTEST Descend( NIL ) IS NIL
HBTEST Descend( { "A", "B" } ) IS NIL
HBTEST Descend( NIL ) IS NIL
HBTEST Descend( { "A", "B" } ) IS NIL
#ifdef __HARBOUR__
HBTEST Descend( @scString ) IS "¸»´´±" /* Bug in CA-Cl*pper, it will return NIL */
HBTEST Descend( @scString ) IS "¸»´´±" /* Bug in CA-Cl*pper, it will return NIL */
#endif
HBTEST Descend( scString ) IS "¸»´´±"
HBTEST Descend( scString ) IS "¸»´´±"
HBTEST Descend( Descend( scString ) ) IS "HELLO"
HBTEST Descend( .F. ) IS .T.
HBTEST Descend( .T. ) IS .F.
HBTEST Descend( 0 ) IS 0.00
HBTEST Descend( 1 ) IS -1.00
HBTEST Descend( -1 ) IS 1.00
HBTEST Descend( Descend( 256 ) ) IS 256.00
HBTEST Descend( 2.0 ) IS -2.00
HBTEST Descend( 2.5 ) IS -2.50
HBTEST Descend( -100.35 ) IS 100.35
HBTEST Str(Descend( -740.354 )) IS " 740.35"
HBTEST Str(Descend( -740.359 )) IS " 740.36"
HBTEST Str(Descend( -740.354 ), 15, 5) IS " 740.35400"
HBTEST Str(Descend( -740.359 ), 15, 5) IS " 740.35900"
HBTEST Descend( 100000 ) IS -100000.00
HBTEST Descend( -100000 ) IS 100000.00
HBTEST Descend( "" ) IS ""
HBTEST Descend( Chr(0) ) IS ""+Chr(0)+""
HBTEST Descend( Chr(0) + "Hello" ) IS ""+Chr(0)+"¸›””‘"
HBTEST Descend( "Hello"+Chr(0)+"wo" ) IS "¸›””‘"+Chr(0)+"‰‘"
HBTEST Descend( hb_SToD( "" ) ) IS 5231808
HBTEST Descend( hb_SToD( "01000101" ) ) IS 3474223
HBTEST Descend( hb_SToD( "19801220" ) ) IS 2787214
HBTEST Descend( scString ) IS "¸»´´±"
HBTEST Descend( scString ) IS "¸»´´±"
HBTEST Descend( Descend( scString ) ) IS "HELLO"
HBTEST Descend( .F. ) IS .T.
HBTEST Descend( .T. ) IS .F.
HBTEST Descend( 0 ) IS 0.00
HBTEST Descend( 1 ) IS -1.00
HBTEST Descend( -1 ) IS 1.00
HBTEST Descend( Descend( 256 ) ) IS 256.00
HBTEST Descend( 2.0 ) IS -2.00
HBTEST Descend( 2.5 ) IS -2.50
HBTEST Descend( -100.35 ) IS 100.35
HBTEST Str( Descend( -740.354 ) ) IS " 740.35"
HBTEST Str( Descend( -740.359 ) ) IS " 740.36"
HBTEST Str( Descend( -740.354 ), 15, 5 ) IS " 740.35400"
HBTEST Str( Descend( -740.359 ), 15, 5 ) IS " 740.35900"
HBTEST Descend( 100000 ) IS -100000.00
HBTEST Descend( -100000 ) IS 100000.00
HBTEST Descend( "" ) IS ""
HBTEST Descend( Chr( 0 ) ) IS Chr( 0 )
HBTEST Descend( Chr( 0 ) + "Hello" ) IS Chr( 0 ) + "¸›””‘"
HBTEST Descend( "Hello" + Chr( 0 ) + "wo" ) IS "¸›””‘" + Chr( 0 ) + "‰‘"
HBTEST Descend( hb_SToD( "" ) ) IS 5231808
HBTEST Descend( hb_SToD( "01000101" ) ) IS 3474223
HBTEST Descend( hb_SToD( "19801220" ) ) IS 2787214
#ifdef __HARBOUR__
/* hb_ColorIndex() */
HBTEST hb_ColorIndex() IS ""
HBTEST hb_ColorIndex("", -1) IS ""
HBTEST hb_ColorIndex("", 0) IS ""
HBTEST hb_ColorIndex("W/R", -1) IS ""
HBTEST hb_ColorIndex("W/R", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R", 1) IS ""
HBTEST hb_ColorIndex("W/R", 2) IS ""
HBTEST hb_ColorIndex("W/R,GR/0", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R,GR/0", 1) IS "GR/0"
HBTEST hb_ColorIndex("W/R,GR/0", 2) IS ""
HBTEST hb_ColorIndex("W/R,GR/0", 3) IS ""
HBTEST hb_ColorIndex("W/R, GR/0", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R, GR/0", 1) IS "GR/0"
HBTEST hb_ColorIndex("W/R, GR/0", 2) IS ""
HBTEST hb_ColorIndex("W/R, GR/0", 3) IS ""
HBTEST hb_ColorIndex("W/R,GR/0 ", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R,GR/0 ", 1) IS "GR/0"
HBTEST hb_ColorIndex("W/R,GR/0 ", 2) IS ""
HBTEST hb_ColorIndex("W/R, GR/0 ", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R, GR/0 ", 1) IS "GR/0"
HBTEST hb_ColorIndex("W/R, GR/0 ", 2) IS ""
HBTEST hb_ColorIndex("W/R, GR/0 ,", 0) IS "W/R"
HBTEST hb_ColorIndex("W/R, GR/0 ,", 1) IS "GR/0"
HBTEST hb_ColorIndex("W/R, GR/0 ,", 2) IS ""
HBTEST hb_ColorIndex(" W/R, GR/0 ,", 0) IS "W/R"
HBTEST hb_ColorIndex(" W/R, GR/0 ,", 1) IS "GR/0"
HBTEST hb_ColorIndex(" W/R, GR/0 ,", 2) IS ""
HBTEST hb_ColorIndex(" W/R , GR/0 ,", 0) IS "W/R"
HBTEST hb_ColorIndex(" W/R , GR/0 ,", 1) IS "GR/0"
HBTEST hb_ColorIndex(" W/R , GR/0 ,", 2) IS ""
HBTEST hb_ColorIndex(" W/R , ,", 1) IS ""
HBTEST hb_ColorIndex(" W/R ,,", 1) IS ""
HBTEST hb_ColorIndex(",,", 0) IS ""
HBTEST hb_ColorIndex(",,", 1) IS ""
HBTEST hb_ColorIndex(",,", 2) IS ""
HBTEST hb_ColorIndex(", ,", 2) IS ""
HBTEST hb_ColorIndex() IS ""
HBTEST hb_ColorIndex( "", -1 ) IS ""
HBTEST hb_ColorIndex( "", 0 ) IS ""
HBTEST hb_ColorIndex( "W/R", -1 ) IS ""
HBTEST hb_ColorIndex( "W/R", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R", 1 ) IS ""
HBTEST hb_ColorIndex( "W/R", 2 ) IS ""
HBTEST hb_ColorIndex( "W/R,GR/0", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R,GR/0", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( "W/R,GR/0", 2 ) IS ""
HBTEST hb_ColorIndex( "W/R,GR/0", 3 ) IS ""
HBTEST hb_ColorIndex( "W/R, GR/0", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R, GR/0", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( "W/R, GR/0", 2 ) IS ""
HBTEST hb_ColorIndex( "W/R, GR/0", 3 ) IS ""
HBTEST hb_ColorIndex( "W/R,GR/0 ", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R,GR/0 ", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( "W/R,GR/0 ", 2 ) IS ""
HBTEST hb_ColorIndex( "W/R, GR/0 ", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R, GR/0 ", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( "W/R, GR/0 ", 2 ) IS ""
HBTEST hb_ColorIndex( "W/R, GR/0 ,", 0 ) IS "W/R"
HBTEST hb_ColorIndex( "W/R, GR/0 ,", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( "W/R, GR/0 ,", 2 ) IS ""
HBTEST hb_ColorIndex( " W/R, GR/0 ,", 0 ) IS "W/R"
HBTEST hb_ColorIndex( " W/R, GR/0 ,", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( " W/R, GR/0 ,", 2 ) IS ""
HBTEST hb_ColorIndex( " W/R , GR/0 ,", 0 ) IS "W/R"
HBTEST hb_ColorIndex( " W/R , GR/0 ,", 1 ) IS "GR/0"
HBTEST hb_ColorIndex( " W/R , GR/0 ,", 2 ) IS ""
HBTEST hb_ColorIndex( " W/R , ,", 1 ) IS ""
HBTEST hb_ColorIndex( " W/R ,,", 1 ) IS ""
HBTEST hb_ColorIndex( ",,", 0 ) IS ""
HBTEST hb_ColorIndex( ",,", 1 ) IS ""
HBTEST hb_ColorIndex( ",,", 2 ) IS ""
HBTEST hb_ColorIndex( ", ,", 2 ) IS ""
#endif
@@ -712,108 +713,108 @@ PROCEDURE Main_MISC()
#ifndef __CLIPPER__
#ifndef __XPP__
HBTEST Bin2I() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2I() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
#endif
HBTEST Bin2I(100) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2I("") IS 0 /* Bug in CA-Cl*pper, it will return trash */
HBTEST Bin2I( 100 ) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2I( "" ) IS 0 /* Bug in CA-Cl*pper, it will return trash */
#endif
HBTEST Bin2I("AB") IS 16961
HBTEST Bin2I("BA") IS 16706
HBTEST Bin2I(Chr(255)) IS 255
HBTEST Bin2I(Chr(255)+Chr(255)) IS -1
HBTEST Bin2I(Chr(0)) IS 0
HBTEST Bin2I(Chr(0)+Chr(0)) IS 0
HBTEST Bin2I("A") IS 65
HBTEST Bin2I("ABC") IS 16961
HBTEST Bin2I( "AB" ) IS 16961
HBTEST Bin2I( "BA" ) IS 16706
HBTEST Bin2I( Chr( 255 ) ) IS 255
HBTEST Bin2I( Chr( 255 ) + Chr( 255 ) ) IS -1
HBTEST Bin2I( Chr( 0 ) ) IS 0
HBTEST Bin2I( Chr( 0 ) + Chr( 0 ) ) IS 0
HBTEST Bin2I( "A" ) IS 65
HBTEST Bin2I( "ABC" ) IS 16961
/* Bin2W() */
#ifndef __CLIPPER__
#ifndef __XPP__
HBTEST Bin2W() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2W() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
#endif
HBTEST Bin2W(100) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2W("") IS 0 /* Bug in CA-Cl*pper, it will return trash */
HBTEST Bin2W( 100 ) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2W( "" ) IS 0 /* Bug in CA-Cl*pper, it will return trash */
#endif
HBTEST Bin2W("AB") IS 16961
HBTEST Bin2W("BA") IS 16706
HBTEST Bin2W(Chr(255)) IS 255
HBTEST Bin2W(Chr(255)+Chr(255)) IS 65535
HBTEST Bin2W(Chr(0)) IS 0
HBTEST Bin2W(Chr(0)+Chr(0)) IS 0
HBTEST Bin2W("A") IS 65
HBTEST Bin2W("ABC") IS 16961
HBTEST Bin2W( "AB" ) IS 16961
HBTEST Bin2W( "BA" ) IS 16706
HBTEST Bin2W( Chr( 255 ) ) IS 255
HBTEST Bin2W( Chr( 255 ) + Chr( 255 ) ) IS 65535
HBTEST Bin2W( Chr( 0 ) ) IS 0
HBTEST Bin2W( Chr( 0 ) + Chr( 0 ) ) IS 0
HBTEST Bin2W( "A" ) IS 65
HBTEST Bin2W( "ABC" ) IS 16961
/* Bin2L() */
#ifndef __CLIPPER__
#ifndef __XPP__
HBTEST Bin2L() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2L() IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
#endif
HBTEST Bin2L(100) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2L("") IS 0 /* Bug in CA-Cl*pper, it will return trash */
HBTEST Bin2L( 100 ) IS 0 /* Bug in CA-Cl*pper, this causes a GPF */
HBTEST Bin2L( "" ) IS 0 /* Bug in CA-Cl*pper, it will return trash */
#endif
HBTEST Bin2L("ABCD") IS 1145258561
HBTEST Bin2L("DCBA") IS 1094861636
HBTEST Bin2L( "ABCD" ) IS 1145258561
HBTEST Bin2L( "DCBA" ) IS 1094861636
#ifndef __CLIPPER__
HBTEST Bin2L(Chr(255)) IS 255 /* Bug in CA-Cl*pper, it will return trash */
HBTEST Bin2L( Chr( 255 ) ) IS 255 /* Bug in CA-Cl*pper, it will return trash */
#endif
HBTEST Bin2L(Chr(255)+Chr(255)+Chr(255)) IS 16777215
HBTEST Bin2L(Chr(255)+Chr(255)+Chr(255)+Chr(255)) IS -1
HBTEST Bin2L(Chr(0)+Chr(0)+Chr(0)) IS 0
HBTEST Bin2L(Chr(0)+Chr(0)+Chr(0)+Chr(0)) IS 0
HBTEST Bin2L("ABC") IS 4407873
HBTEST Bin2L("ABCDE") IS 1145258561
HBTEST Bin2L( Chr( 255 ) + Chr( 255 ) + Chr( 255 ) ) IS 16777215
HBTEST Bin2L( Chr( 255 ) + Chr( 255 ) + Chr( 255 ) + Chr( 255 ) ) IS -1
HBTEST Bin2L( Chr( 0 ) + Chr( 0 ) + Chr( 0 ) ) IS 0
HBTEST Bin2L( Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 ) ) IS 0
HBTEST Bin2L( "ABC" ) IS 4407873
HBTEST Bin2L( "ABCDE" ) IS 1145258561
/* I2Bin() */
#ifndef __XPP__
HBTEST I2Bin() IS ""+Chr(0)+""+Chr(0)+""
HBTEST I2Bin() IS Chr( 0 ) + Chr( 0 )
#endif
HBTEST I2Bin("" ) IS ""+Chr(0)+""+Chr(0)+""
HBTEST I2Bin(0 ) IS ""+Chr(0)+""+Chr(0)+""
HBTEST I2Bin(16961 ) IS "AB"
HBTEST I2Bin(16706 ) IS "BA"
HBTEST I2Bin(255 ) IS "ÿ"+Chr(0)+""
HBTEST I2Bin(-1 ) IS "ÿÿ"
HBTEST I2Bin(0 ) IS ""+Chr(0)+""+Chr(0)+""
HBTEST I2Bin(0 ) IS ""+Chr(0)+""+Chr(0)+""
HBTEST I2Bin(65 ) IS "A"+Chr(0)+""
HBTEST I2Bin(16961 ) IS "AB"
HBTEST I2Bin( "" ) IS Chr( 0 ) + Chr( 0 )
HBTEST I2Bin( 0 ) IS Chr( 0 ) + Chr( 0 )
HBTEST I2Bin( 16961 ) IS "AB"
HBTEST I2Bin( 16706 ) IS "BA"
HBTEST I2Bin( 255 ) IS "ÿ" + Chr( 0 )
HBTEST I2Bin( -1 ) IS "ÿÿ"
HBTEST I2Bin( 0 ) IS Chr( 0 ) + Chr( 0 )
HBTEST I2Bin( 1 ) IS Chr( 1 ) + Chr( 0 )
HBTEST I2Bin( 65 ) IS "A" + Chr( 0 )
HBTEST I2Bin( 16961 ) IS "AB"
/* L2Bin() */
#ifndef __XPP__
HBTEST L2Bin() IS ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+""
HBTEST L2Bin() IS Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
#endif
HBTEST L2Bin("") IS ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+""
HBTEST L2Bin(0 ) IS ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+""
HBTEST L2Bin(1145258561 ) IS "ABCD"
HBTEST L2Bin(1094861636 ) IS "DCBA"
HBTEST L2Bin(255 ) IS "ÿ"+Chr(0)+""+Chr(0)+""+Chr(0)+""
HBTEST L2Bin(16777215 ) IS "ÿÿÿ"+Chr(0)+""
HBTEST L2Bin(-1 ) IS Chr(255)+Chr(255)+Chr(255)+Chr(255)
HBTEST L2Bin(0 ) IS ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+""
HBTEST L2Bin(0 ) IS Chr(0)+Chr(0)+Chr(0)+Chr(0)
HBTEST L2Bin(4407873 ) IS "ABC"+Chr(0)+""
HBTEST L2Bin(1145258561 ) IS "ABCD"
HBTEST L2Bin( "" ) IS Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
HBTEST L2Bin( 0 ) IS Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
HBTEST L2Bin( 1145258561 ) IS "ABCD"
HBTEST L2Bin( 1094861636 ) IS "DCBA"
HBTEST L2Bin( 255 ) IS "ÿ" + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
HBTEST L2Bin( 16777215 ) IS "ÿÿÿ" + Chr( 0 )
HBTEST L2Bin( -1 ) IS Chr( 255 ) + Chr( 255 ) + Chr( 255 ) + Chr( 255 )
HBTEST L2Bin( 0 ) IS Chr( 0 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
HBTEST L2Bin( 1 ) IS Chr( 1 ) + Chr( 0 ) + Chr( 0 ) + Chr( 0 )
HBTEST L2Bin( 4407873 ) IS "ABC" + Chr( 0 )
HBTEST L2Bin( 1145258561 ) IS "ABCD"
#ifndef __XPP__
/* __CopyFile() */
FClose(FCreate("$$COPYFR.TMP"))
FClose( FCreate( "$$COPYFR.TMP" ) )
/* NOTE: Cannot yet test the return value of the function on a DEFAULT-ed
failure. */
HBTEST __CopyFile("$$COPYFR.TMP") IS "E 1 BASE 2010 Argument error (__COPYFILE) OS:0 #:0 A:1:C:$$COPYFR.TMP "
HBTEST __CopyFile("$$COPYFR.TMP", "$$COPYTO.TMP") IS NIL
HBTEST __CopyFile("NOT_HERE.$$$", "$$COPYTO.TMP") IS "E 21 BASE 2012 Open error <NOT_HERE.$$$> OS:2 #:1 F:DR"
HBTEST __CopyFile("$$COPYFR.TMP", BADFNAME()) IS "E 20 BASE 2012 Create error <" + BADFNAME() + "> OS:2 #:1 F:DR"
HBTEST __CopyFile( "$$COPYFR.TMP" ) IS "E 1 BASE 2010 Argument error (__COPYFILE) OS:0 #:0 A:1:C:$$COPYFR.TMP "
HBTEST __CopyFile( "$$COPYFR.TMP", "$$COPYTO.TMP" ) IS NIL
HBTEST __CopyFile( "NOT_HERE.$$$", "$$COPYTO.TMP" ) IS "E 21 BASE 2012 Open error <NOT_HERE.$$$> OS:2 #:1 F:DR"
HBTEST __CopyFile( "$$COPYFR.TMP", BADFNAME() ) IS "E 20 BASE 2012 Create error <" + BADFNAME() + "> OS:2 #:1 F:DR"
FErase("$$COPYFR.TMP")
FErase("$$COPYTO.TMP")
FErase( "$$COPYFR.TMP" )
FErase( "$$COPYTO.TMP" )
#endif /* __XPP__ */
@@ -841,60 +842,61 @@ PROCEDURE Main_MISC()
#define SO Chr( 141 )
#define NU Chr( 0 )
#define HT Chr( 9 )
#define LF Chr( 10 )
#define CR Chr( 13 )
/* HardCR() */
#ifndef __XPP__
HBTEST HardCR() IS ""
HBTEST HardCR() IS ""
#endif
HBTEST HardCR(NIL) IS ""
HBTEST HardCR(100) IS ""
HBTEST HardCR( NIL ) IS ""
HBTEST HardCR( 100 ) IS ""
#ifdef __HARBOUR__
HBTEST HardCR(@scString) IS "HELLO" /* Bug in CA-Cl*pper, it will return "" */
HBTEST HardCR( @scString ) IS "HELLO" /* Bug in CA-Cl*pper, it will return "" */
#endif
HBTEST HardCR("H"+SO+LF+"P"+SO+LF+"W"+SO+"M") IS "H"+Chr(13)+""+Chr(10)+"P"+Chr(13)+""+Chr(10)+"W"+Chr(141)+"M"
HBTEST HardCR("H"+NU+"B"+SO+LF+NU+"P"+SO+LF+"W"+SO+"M"+NU) IS "H"+Chr(0)+"B"+Chr(13)+""+Chr(10)+""+Chr(0)+"P"+Chr(13)+""+Chr(10)+"W"+Chr(141)+"M"+Chr(0)+""
HBTEST HardCR( "H"+SO+LF+"P"+SO+LF+"W"+SO+"M" ) IS "H" + Chr( 13 ) + Chr( 10 ) + "P" + Chr( 13 ) + Chr( 10 ) + "W" + Chr( 141 ) + "M"
HBTEST HardCR( "H"+NU+"B"+SO+LF+NU+"P"+SO+LF+"W"+SO+"M"+NU ) IS "H" + Chr( 0 ) + "B" + Chr( 13 ) + Chr( 10 ) + Chr( 0 ) + "P" + Chr( 13 ) + Chr( 10 ) + "W" + Chr( 141 ) + "M" + Chr( 0 )
/* MemoTran() */
#ifndef __XPP__
HBTEST MemoTran() IS ""
HBTEST MemoTran() IS ""
#endif
HBTEST MemoTran(NIL) IS ""
HBTEST MemoTran(100) IS ""
HBTEST MemoTran(100,"1","2") IS ""
HBTEST MemoTran( NIL ) IS ""
HBTEST MemoTran( 100 ) IS ""
HBTEST MemoTran( 100, "1", "2" ) IS ""
#ifdef __HARBOUR__
HBTEST MemoTran(@scString) IS "HELLO" /* Bug in CA-Cl*pper, it will return "" */
HBTEST MemoTran( @scString ) IS "HELLO" /* Bug in CA-Cl*pper, it will return "" */
#endif
HBTEST MemoTran("H"+SO+LF+"P"+CR+LF+"M") IS "H P;M"
HBTEST MemoTran("H"+NU+"O"+SO+LF+"P"+CR+LF+"M"+NU+"I") IS "H"+Chr(0)+"O P;M"+Chr(0)+"I"
HBTEST MemoTran("M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR) IS "M"+Chr(13)+"s;w"+Chr(141)+"w h"+Chr(13)+""
HBTEST MemoTran("M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR,"111","222") IS "M"+Chr(13)+"s1w"+Chr(141)+"w2h"+Chr(13)+""
HBTEST MemoTran("M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR,"","") IS "M"+Chr(13)+"s"+Chr(0)+"w"+Chr(141)+"w"+Chr(0)+"h"+Chr(13)+""
HBTEST MemoTran( "H"+SO+LF+"P"+CR+LF+"M" ) IS "H P;M"
HBTEST MemoTran( "H"+NU+"O"+SO+LF+"P"+CR+LF+"M"+NU+"I" ) IS "H" + Chr( 0 ) + "O P;M" + Chr( 0 ) + "I"
HBTEST MemoTran( "M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR ) IS "M" + Chr( 13 ) + "s;w" + Chr( 141 ) + "w h" + Chr( 13 )
HBTEST MemoTran( "M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR, "111", "222" ) IS "M" + Chr( 13 ) + "s1w" + Chr( 141 ) + "w2h" + Chr( 13 )
HBTEST MemoTran( "M"+CR+"s"+CR+LF+"w"+SO+"w"+SO+LF+"h"+CR, "", "" ) IS "M" + Chr( 13 ) + "s" + Chr( 0 ) + "w" + Chr( 141 ) + "w" + Chr( 0 ) + "h" + Chr( 13 )
/* MEMOWRITE()/MemoRead() */
#ifndef __XPP__
HBTEST MemoWrit() IS .F.
HBTEST MemoWrit("$$MEMOFI.TMP") IS .F.
HBTEST MemoWrit() IS .F.
HBTEST MemoWrit( "$$MEMOFI.TMP" ) IS .F.
#endif
HBTEST MemoWrit("$$MEMOFI.TMP","") IS .T.
HBTEST MemoRead("$$MEMOFI.TMP") IS ""
HBTEST MemoWrit("$$MEMOFI.TMP",scStringZ) IS .T.
HBTEST MemoRead("$$MEMOFI.TMP") IS "A"+Chr(0)+"B"
HBTEST MemoWrit("$$MEMOFI.TMP",Chr(26)) IS .T.
HBTEST MemoRead("$$MEMOFI.TMP") IS ""+Chr(26)+""
HBTEST MemoWrit("$$MEMOFI.TMP",scStringW) IS .T.
HBTEST MemoRead("$$MEMOFI.TMP") IS ""+Chr(13)+""+Chr(10)+Chr(141)+Chr(10)+""+Chr(9)+""
HBTEST MemoWrit(BADFNAME2() ,scStringZ) IS .F.
HBTEST MemoWrit( "$$MEMOFI.TMP", "" ) IS .T.
HBTEST MemoRead( "$$MEMOFI.TMP" ) IS ""
HBTEST MemoWrit( "$$MEMOFI.TMP", scStringZ ) IS .T.
HBTEST MemoRead( "$$MEMOFI.TMP" ) IS "A" + Chr( 0 ) + "B"
HBTEST MemoWrit( "$$MEMOFI.TMP", Chr( 26 ) ) IS .T.
HBTEST MemoRead( "$$MEMOFI.TMP" ) IS Chr( 26 )
HBTEST MemoWrit( "$$MEMOFI.TMP", scStringW ) IS .T.
HBTEST MemoRead( "$$MEMOFI.TMP" ) IS Chr( 13 ) + Chr( 10 ) + Chr( 141 ) + Chr( 10 ) + Chr( 9 )
HBTEST MemoWrit( BADFNAME2() , scStringZ ) IS .F.
#ifndef __XPP__
HBTEST MemoRead() IS ""
HBTEST MemoRead() IS ""
#endif
HBTEST MemoRead( BADFNAME2() ) IS ""
HBTEST MemoRead( BADFNAME2() ) IS ""
FErase("$$MEMOFI.TMP")
FErase( "$$MEMOFI.TMP" )
#ifdef __HARBOUR__
@@ -1016,24 +1018,24 @@ PROCEDURE Main_MISC()
/* MLCToPos() */
#ifdef __HARBOUR__
cEOL := Set( _SET_EOL, Chr(13) + Chr( 10 ) )
cEOL := Set( _SET_EOL, Chr( 13 ) + Chr( 10 ) )
#endif
HBTEST MLCToPos( 'A message from me', 10, 2, 0 ) IS 11
HBTEST MLCToPos( 'A message from me', 5, 2, 0, 4, .F. ) IS 6
HBTEST MLCToPos( 'A'+Chr(9)+'message'+Chr(9)+'from'+Chr(9)+'me', 10, 2, 0, 8 ) IS 3
HBTEST MLCToPos( 'A' + HT + 'message' + HT + 'from' + HT + 'me', 10, 2, 0, 8 ) IS 3
HBTEST MLCToPos( 'abcd efg hijk lm nopqr stu vwxyz', 5, 3, 0 ) IS 10
HBTEST MLCToPos( 'abcd efg hijk lm nopqr stu vwxyz', 8, 2, 0 ) IS 10
HBTEST MLCToPos( 'abcd efg hijk lm nopqr stu vwxyz', 8, 2, 0,, .F. ) IS 9
HBTEST MLCToPos( 'A message from our me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A message from our me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A message'+Chr(9)+'from me', 10, 2, 0 ) IS 11
HBTEST MLCToPos( 'A message' + Chr( 9 ) + 'from me', 10, 2, 0 ) IS 11
HBTEST MLCToPos( 'A message from me', 9, 2, 0,, .F. ) IS 10
HBTEST MLCToPos( 'A message from me', 9, 2, 0,, .F. ) IS 10
HBTEST MLCToPos( 'A message'+Chr(141)+'from me', 10, 2, 0 ) IS 3
HBTEST MLCToPos( 'A message'+Chr(141)+'from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( 'A message'+Chr(141)+'from me', 10, 2, 0,, .F. ) IS 11
HBTEST MLCToPos( 'A message'+Chr(141)+'from me', 9, 2, 0,, .F. ) IS 10
HBTEST MLCToPos( 'A message' + Chr( 141 ) + 'from me', 10, 2, 0 ) IS 3
HBTEST MLCToPos( 'A message' + Chr( 141 ) + 'from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( 'A message' + Chr( 141 ) + 'from me', 10, 2, 0,, .F. ) IS 11
HBTEST MLCToPos( 'A message' + Chr( 141 ) + 'from me', 9, 2, 0,, .F. ) IS 10
HBTEST MLCToPos( ' message from me', 10, 1, 0 ) IS 1
HBTEST MLCToPos( ' message from me', 10, 1, 8 ) IS 9
HBTEST MLCToPos( ' message from me', 10, 1, 9 ) IS 10
@@ -1046,21 +1048,21 @@ PROCEDURE Main_MISC()
HBTEST MLCToPos( ' message from me', 10, 1, 10,, .F. ) IS 11
HBTEST MLCToPos( ' message from me', 10, 1, 11,, .F. ) IS 12
HBTEST MLCToPos( ' message from me', 10, 1, 360,, .F. ) IS 17
HBTEST MLCToPos( ' message'+Chr(9)+'from me', 10, 1, 11,, .T. ) IS 9
HBTEST MLCToPos( ' message'+Chr(9)+'from me', 10, 1, 11,, .F. ) IS 9
HBTEST MLCToPos( ' message'+Chr(9)+'from me', 10, 2, 11 ) IS 17
HBTEST MLCToPos( ' message'+Chr(9)+'from me', 10, 1, 15,, .T. ) IS 13
HBTEST MLCToPos( ' message'+Chr(9)+'from me', 10, 1, 15,, .F. ) IS 13
HBTEST MLCToPos( Chr(13)+Chr(10)+' message'+Chr(9)+'from me', 10, 1, 15,, .F. ) IS 1
HBTEST MLCToPos( Chr(13)+Chr(10)+' message'+Chr(9)+'from me', 10, 1, 15,, .T. ) IS 1
HBTEST MLCToPos( 'A '+Chr(13)+Chr(10)+'message from me', 9, 2, 0 ) IS 5
HBTEST MLCToPos( 'A '+Chr(141)+Chr(10)+'message from me', 9, 2, 0 ) IS 13
HBTEST MLCToPos( 'A'+Chr(141)+Chr(10)+'message from me', 9, 2, 0 ) IS 12
HBTEST MLCToPos( 'A'+Chr(141)+'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A'+Chr(13)+'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A'+Chr(10)+'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A '+Chr(13)+'message from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( 'A '+Chr(10)+'message from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( ' message' + Chr( 9 ) + 'from me', 10, 1, 11,, .T. ) IS 9
HBTEST MLCToPos( ' message' + Chr( 9 ) + 'from me', 10, 1, 11,, .F. ) IS 9
HBTEST MLCToPos( ' message' + Chr( 9 ) + 'from me', 10, 2, 11 ) IS 17
HBTEST MLCToPos( ' message' + Chr( 9 ) + 'from me', 10, 1, 15,, .T. ) IS 13
HBTEST MLCToPos( ' message' + Chr( 9 ) + 'from me', 10, 1, 15,, .F. ) IS 13
HBTEST MLCToPos( CR + LF + ' message' + HT + 'from me', 10, 1, 15,, .F. ) IS 1
HBTEST MLCToPos( CR + LF + ' message' + HT + 'from me', 10, 1, 15,, .T. ) IS 1
HBTEST MLCToPos( 'A ' + Chr( 13 ) + Chr( 10 ) + 'message from me', 9, 2, 0 ) IS 5
HBTEST MLCToPos( 'A ' + Chr( 141 ) + Chr( 10 ) + 'message from me', 9, 2, 0 ) IS 13
HBTEST MLCToPos( 'A' + Chr( 141 ) + Chr( 10 ) + 'message from me', 9, 2, 0 ) IS 12
HBTEST MLCToPos( 'A' + Chr( 141 ) + 'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A' + Chr( 13 ) + 'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A' + Chr( 10 ) + 'message from me', 9, 2, 0 ) IS 11
HBTEST MLCToPos( 'A ' + Chr( 13 ) + 'message from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( 'A ' + Chr( 10 ) + 'message from me', 9, 2, 0 ) IS 3
HBTEST MLCToPos( 'A message from me', 10, 7, 0 ) IS 18
HBTEST MLCToPos( , , , ) IS 1
HBTEST MLCToPos( , .T., , ) IS 1
@@ -1074,6 +1076,7 @@ PROCEDURE Main_MISC()
#ifdef __HARBOUR__
PROCEDURE Main_OPOVERL()
LOCAL oString := HB_TString()
oString:cValue := "Hello"
@@ -1149,6 +1152,7 @@ STATIC FUNCTION HB_TString()
#endif
STATIC FUNCTION TFORNEXT( xFrom, xTo, xStep )
LOCAL tmp
IF xStep == NIL
@@ -1162,6 +1166,7 @@ STATIC FUNCTION TFORNEXT( xFrom, xTo, xStep )
RETURN tmp
STATIC FUNCTION TFORNEXTX( xFrom, xTo, xStep )
LOCAL tmp
LOCAL cResult := ""
LOCAL bFrom := {|| cResult += "F", xFrom }
@@ -1179,6 +1184,7 @@ STATIC FUNCTION TFORNEXTX( xFrom, xTo, xStep )
RETURN cResult
STATIC FUNCTION TFORNEXTXF( xFrom, xTo, xStep )
LOCAL tmp := -9999
LOCAL cResult := ""
LOCAL bFrom := {|| cResult += "F" + LTrim( Str( tmp ) ), xFrom }
@@ -1200,15 +1206,17 @@ STATIC FUNCTION TFORNEXTXF( xFrom, xTo, xStep )
/* NOTE: cDrive is not tested because it's platform dependent. */
STATIC FUNCTION TESTFNAME( cFull )
LOCAL cPath, cName, cExt, cDrive
hb_FNameSplit( RTrim( cFull ), @cPath, @cName, @cExt, @cDrive )
RETURN hb_FNameMerge( cPath, cName, cExt ) + ";" + ;
cPath + ";" +;
cName + ";" +;
cExt + ";" +;
""
RETURN ;
hb_FNameMerge( cPath, cName, cExt ) + ";" + ;
cPath + ";" +;
cName + ";" +;
cExt + ";" +;
""
#endif

View File

@@ -70,6 +70,7 @@ PROCEDURE Main_MT()
#ifdef __HARBOUR__
FUNCTION DO_MTTES1()
LOCAL aThreads, aResults, i, nDigit, nSum, nExpected
LOCAL mtxJobs, mtxResults
@@ -99,7 +100,7 @@ FUNCTION DO_MTTES1()
NEXT
nSum := Round( nSum, 2 )
nExpected := Round( ( 10 + 10 + N_JOBS - 1 ) / 2 / 3 * N_JOBS, 2 )
if Round( nSum - nExpected, 2 ) == 0
IF Round( nSum - nExpected, 2 ) == 0
RETURN "OK"
ENDIF
@@ -107,6 +108,7 @@ FUNCTION DO_MTTES1()
" expected: " + hb_ntos( nExpected )
PROCEDURE thFunc( mtxJobs, mtxResults )
LOCAL xJob, xResult
WHILE .T.

File diff suppressed because it is too large Load Diff

View File

@@ -59,201 +59,202 @@ PROCEDURE Main_STRA()
/* Str() */
HBTEST Str(NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Str("A", 10, 2) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST Str(100, 10, "A") IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST Str(100, 10, NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST Str(100, NIL, NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
HBTEST Str( NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST Str( "A", 10, 2 ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST Str( 100, 10, "A" ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST Str( 100, 10, NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST Str( 100, NIL, NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
IF TEST_DBFAvail()
HBTEST Str( w_TEST->TYPE_N_I ) IS " 100"
HBTEST Str( w_TEST->TYPE_N_IE ) IS " 0"
HBTEST Str( w_TEST->TYPE_N_D ) IS " 101.127"
HBTEST Str( w_TEST->TYPE_N_DE ) IS " 0.000"
HBTEST Str( w_TEST->TYPE_N_I ) IS " 100"
HBTEST Str( w_TEST->TYPE_N_IE ) IS " 0"
HBTEST Str( w_TEST->TYPE_N_D ) IS " 101.127"
HBTEST Str( w_TEST->TYPE_N_DE ) IS " 0.000"
ENDIF
HBTEST Str(5000000000.0) IS "5000000000.0"
HBTEST Str(50000000) IS " 50000000"
HBTEST Str(500000000) IS " 500000000"
HBTEST Str(5000000000) IS " 5000000000"
HBTEST Str(50000000000) IS " 50000000000"
HBTEST Str(-5000000000.0) IS " -5000000000.0"
HBTEST Str(-5000000000) IS " -5000000000"
HBTEST Str(2.0000000000000001) IS " 2.0000000000000000"
HBTEST Str(2.0000000000000009) IS " 2.0000000000000010"
HBTEST Str(2.000000000000001) IS " 2.000000000000001"
HBTEST Str(2.000000000000009) IS " 2.000000000000009"
HBTEST Str(2.00000000000001) IS " 2.00000000000001"
HBTEST Str(2.00000000000009) IS " 2.00000000000009"
HBTEST Str(2.000000000001) IS " 2.000000000001"
HBTEST Str(2.00000000001) IS " 2.00000000001"
HBTEST Str(10) IS " 10"
HBTEST Str(10.0) IS " 10.0"
HBTEST Str(10.00) IS " 10.00"
HBTEST Str(10.50) IS " 10.50"
HBTEST Str(100000) IS " 100000"
HBTEST Str(-10) IS " -10"
HBTEST Str(-10.0) IS " -10.0"
HBTEST Str(-10.00) IS " -10.00"
HBTEST Str(-10.50) IS " -10.50"
HBTEST Str(-100000) IS " -100000"
HBTEST Str(10, 5) IS " 10"
HBTEST Str(10.0, 5) IS " 10"
HBTEST Str(10.00, 5) IS " 10"
HBTEST Str(10.50, 5) IS " 11"
HBTEST Str(100000, 5) IS "*****"
HBTEST Str(100000, 8) IS " 100000"
HBTEST Str(-10, 5) IS " -10"
HBTEST Str(-10.0, 5) IS " -10"
HBTEST Str(-10.00, 5) IS " -10"
HBTEST Str(-10.50, 5) IS " -11"
HBTEST Str(-100000, 5) IS "*****"
HBTEST Str(-100000, 6) IS "******"
HBTEST Str(-100000, 8) IS " -100000"
HBTEST Str( 5000000000.0 ) IS "5000000000.0"
HBTEST Str( 50000000 ) IS " 50000000"
HBTEST Str( 500000000 ) IS " 500000000"
HBTEST Str( 5000000000 ) IS " 5000000000"
HBTEST Str( 50000000000 ) IS " 50000000000"
HBTEST Str( -5000000000.0 ) IS " -5000000000.0"
HBTEST Str( -5000000000 ) IS " -5000000000"
HBTEST Str( 2.0000000000000001 ) IS " 2.0000000000000000"
HBTEST Str( 2.0000000000000009 ) IS " 2.0000000000000010"
HBTEST Str( 2.000000000000001 ) IS " 2.000000000000001"
HBTEST Str( 2.000000000000009 ) IS " 2.000000000000009"
HBTEST Str( 2.00000000000001 ) IS " 2.00000000000001"
HBTEST Str( 2.00000000000009 ) IS " 2.00000000000009"
HBTEST Str( 2.000000000001 ) IS " 2.000000000001"
HBTEST Str( 2.00000000001 ) IS " 2.00000000001"
HBTEST Str( 10 ) IS " 10"
HBTEST Str( 10.0 ) IS " 10.0"
HBTEST Str( 10.00 ) IS " 10.00"
HBTEST Str( 10.50 ) IS " 10.50"
HBTEST Str( 100000 ) IS " 100000"
HBTEST Str( -10 ) IS " -10"
HBTEST Str( -10.0 ) IS " -10.0"
HBTEST Str( -10.00 ) IS " -10.00"
HBTEST Str( -10.50 ) IS " -10.50"
HBTEST Str( -100000 ) IS " -100000"
HBTEST Str( 10, 5 ) IS " 10"
HBTEST Str( 10.0, 5 ) IS " 10"
HBTEST Str( 10.00, 5 ) IS " 10"
HBTEST Str( 10.50, 5 ) IS " 11"
HBTEST Str( 100000, 5 ) IS "*****"
HBTEST Str( 100000, 8 ) IS " 100000"
HBTEST Str( -10, 5 ) IS " -10"
HBTEST Str( -10.0, 5 ) IS " -10"
HBTEST Str( -10.00, 5 ) IS " -10"
HBTEST Str( -10.50, 5 ) IS " -11"
HBTEST Str( -100000, 5 ) IS "*****"
HBTEST Str( -100000, 6 ) IS "******"
HBTEST Str( -100000, 8 ) IS " -100000"
#ifndef __XPP__ /* Internal structures corrupted */
HBTEST Str(10, -5) IS " 10"
HBTEST Str(10.0, -5) IS " 10"
HBTEST Str(10.00, -5) IS " 10"
HBTEST Str(10.50, -5) IS " 11"
HBTEST Str(100000, -5) IS " 100000"
HBTEST Str(100000, -8) IS " 100000"
HBTEST Str(-10, -5) IS " -10"
HBTEST Str(-10.0, -5) IS " -10"
HBTEST Str(-10.00, -5) IS " -10"
HBTEST Str(-10.50, -5) IS " -11"
HBTEST Str(-100000, -5) IS " -100000"
HBTEST Str(-100000, -6) IS " -100000"
HBTEST Str(-100000, -8) IS " -100000"
HBTEST Str( 10, -5 ) IS " 10"
HBTEST Str( 10.0, -5 ) IS " 10"
HBTEST Str( 10.00, -5 ) IS " 10"
HBTEST Str( 10.50, -5 ) IS " 11"
HBTEST Str( 100000, -5 ) IS " 100000"
HBTEST Str( 100000, -8 ) IS " 100000"
HBTEST Str( -10, -5 ) IS " -10"
HBTEST Str( -10.0, -5 ) IS " -10"
HBTEST Str( -10.00, -5 ) IS " -10"
HBTEST Str( -10.50, -5 ) IS " -11"
HBTEST Str( -100000, -5 ) IS " -100000"
HBTEST Str( -100000, -6 ) IS " -100000"
HBTEST Str( -100000, -8 ) IS " -100000"
#endif
HBTEST Str(10, 5, 0) IS " 10"
HBTEST Str(10.0, 5, 0) IS " 10"
HBTEST Str(10.00, 5, 0) IS " 10"
HBTEST Str(10.50, 5, 0) IS " 11"
HBTEST Str(100000, 5, 0) IS "*****"
HBTEST Str(-10, 5, 0) IS " -10"
HBTEST Str(-10.0, 5, 0) IS " -10"
HBTEST Str(-10.00, 5, 0) IS " -10"
HBTEST Str(-10.50, 5, 0) IS " -11"
HBTEST Str(-100000, 5, 0) IS "*****"
HBTEST Str(-100000, 6, 0) IS "******"
HBTEST Str(-100000, 8, 0) IS " -100000"
HBTEST Str(10, 5, 1) IS " 10.0"
HBTEST Str(10.0, 5, 1) IS " 10.0"
HBTEST Str(10.00, 5, 1) IS " 10.0"
HBTEST Str(10.50, 5, 1) IS " 10.5"
HBTEST Str(100000, 5, 1) IS "*****"
HBTEST Str(-10, 5, 1) IS "-10.0"
HBTEST Str(-10.0, 5, 1) IS "-10.0"
HBTEST Str(-10.00, 5, 1) IS "-10.0"
HBTEST Str(-10.50, 5, 1) IS "-10.5"
HBTEST Str(-100000, 5, 1) IS "*****"
HBTEST Str(-100000, 6, 1) IS "******"
HBTEST Str(-100000, 8, 1) IS "********"
HBTEST Str( 10, 5, 0 ) IS " 10"
HBTEST Str( 10.0, 5, 0 ) IS " 10"
HBTEST Str( 10.00, 5, 0 ) IS " 10"
HBTEST Str( 10.50, 5, 0 ) IS " 11"
HBTEST Str( 100000, 5, 0 ) IS "*****"
HBTEST Str( -10, 5, 0 ) IS " -10"
HBTEST Str( -10.0, 5, 0 ) IS " -10"
HBTEST Str( -10.00, 5, 0 ) IS " -10"
HBTEST Str( -10.50, 5, 0 ) IS " -11"
HBTEST Str( -100000, 5, 0 ) IS "*****"
HBTEST Str( -100000, 6, 0 ) IS "******"
HBTEST Str( -100000, 8, 0 ) IS " -100000"
HBTEST Str( 10, 5, 1 ) IS " 10.0"
HBTEST Str( 10.0, 5, 1 ) IS " 10.0"
HBTEST Str( 10.00, 5, 1 ) IS " 10.0"
HBTEST Str( 10.50, 5, 1 ) IS " 10.5"
HBTEST Str( 100000, 5, 1 ) IS "*****"
HBTEST Str( -10, 5, 1 ) IS "-10.0"
HBTEST Str( -10.0, 5, 1 ) IS "-10.0"
HBTEST Str( -10.00, 5, 1 ) IS "-10.0"
HBTEST Str( -10.50, 5, 1 ) IS "-10.5"
HBTEST Str( -100000, 5, 1 ) IS "*****"
HBTEST Str( -100000, 6, 1 ) IS "******"
HBTEST Str( -100000, 8, 1 ) IS "********"
#ifndef __XPP__ /* Internal structures corrupted */
HBTEST Str(10, 5, -1) IS " 10"
HBTEST Str(10.0, 5, -1) IS " 10"
HBTEST Str(10.00, 5, -1) IS " 10"
HBTEST Str(10.50, 5, -1) IS " 11"
HBTEST Str(100000, 5, -1) IS "*****"
HBTEST Str(-10, 5, -1) IS " -10"
HBTEST Str(-10.0, 5, -1) IS " -10"
HBTEST Str(-10.00, 5, -1) IS " -10"
HBTEST Str(-10.50, 5, -1) IS " -11"
HBTEST Str(-100000, 5, -1) IS "*****"
HBTEST Str(-100000, 6, -1) IS "******"
HBTEST Str(-100000, 8, -1) IS " -100000"
HBTEST Str( 10, 5, -1 ) IS " 10"
HBTEST Str( 10.0, 5, -1 ) IS " 10"
HBTEST Str( 10.00, 5, -1 ) IS " 10"
HBTEST Str( 10.50, 5, -1 ) IS " 11"
HBTEST Str( 100000, 5, -1 ) IS "*****"
HBTEST Str( -10, 5, -1 ) IS " -10"
HBTEST Str( -10.0, 5, -1 ) IS " -10"
HBTEST Str( -10.00, 5, -1 ) IS " -10"
HBTEST Str( -10.50, 5, -1 ) IS " -11"
HBTEST Str( -100000, 5, -1 ) IS "*****"
HBTEST Str( -100000, 6, -1 ) IS "******"
HBTEST Str( -100000, 8, -1 ) IS " -100000"
#endif
/* StrZero() */
#ifdef HB_CLP_STRICT
HBTEST StrZero(NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST StrZero("A", 10, 2) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST StrZero(100, 10, "A") IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST StrZero(100, 10, NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST StrZero(100, NIL, NIL) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
HBTEST StrZero( NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:1:U:NIL F:S"
HBTEST StrZero( "A", 10, 2 ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST StrZero( 100, 10, "A" ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST StrZero( 100, 10, NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST StrZero( 100, NIL, NIL ) IS "E 1 BASE 1099 Argument error (STR) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
#else
HBTEST StrZero(NIL) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:1:U:NIL F:S"
HBTEST StrZero("A", 10, 2) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST StrZero(100, 10, "A") IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST StrZero(100, 10, NIL) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST StrZero(100, NIL, NIL) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
HBTEST StrZero( NIL ) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:1:U:NIL F:S"
HBTEST StrZero( "A", 10, 2 ) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:C:A;N:10;N:2 F:S"
HBTEST StrZero( 100, 10, "A" ) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;N:10;C:A F:S"
HBTEST StrZero( 100, 10, NIL ) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;N:10;U:NIL F:S"
HBTEST StrZero( 100, NIL, NIL ) IS "E 1 BASE 6003 Argument error (STRZERO) OS:0 #:0 A:3:N:100;U:NIL;U:NIL F:S"
#endif
HBTEST StrZero(10) IS "0000000010"
HBTEST StrZero(10.0) IS "0000000010.0"
HBTEST StrZero(10.00) IS "0000000010.00"
HBTEST StrZero(10.50) IS "0000000010.50"
HBTEST StrZero(100000) IS "0000100000"
HBTEST StrZero(-10) IS "-000000010"
HBTEST StrZero(-10.0) IS "-000000010.0"
HBTEST StrZero(-10.00) IS "-000000010.00"
HBTEST StrZero(-10.50) IS "-000000010.50"
HBTEST StrZero(-100000) IS "-000100000"
HBTEST StrZero(10, 5) IS "00010"
HBTEST StrZero(10.0, 5) IS "00010"
HBTEST StrZero(10.00, 5) IS "00010"
HBTEST StrZero(10.50, 5) IS "00011"
HBTEST StrZero(100000, 5) IS "*****"
HBTEST StrZero(100000, 8) IS "00100000"
HBTEST StrZero(-10, 5) IS "-0010"
HBTEST StrZero(-10.0, 5) IS "-0010"
HBTEST StrZero(-10.00, 5) IS "-0010"
HBTEST StrZero(-10.50, 5) IS "-0011"
HBTEST StrZero(-100000, 5) IS "*****"
HBTEST StrZero(-100000, 6) IS "******"
HBTEST StrZero(-100000, 8) IS "-0100000"
HBTEST StrZero( 10 ) IS "0000000010"
HBTEST StrZero( 10.0 ) IS "0000000010.0"
HBTEST StrZero( 10.00 ) IS "0000000010.00"
HBTEST StrZero( 10.50 ) IS "0000000010.50"
HBTEST StrZero( 100000 ) IS "0000100000"
HBTEST StrZero( -10 ) IS "-000000010"
HBTEST StrZero( -10.0 ) IS "-000000010.0"
HBTEST StrZero( -10.00 ) IS "-000000010.00"
HBTEST StrZero( -10.50 ) IS "-000000010.50"
HBTEST StrZero( -100000 ) IS "-000100000"
HBTEST StrZero( 10, 5 ) IS "00010"
HBTEST StrZero( 10.0, 5 ) IS "00010"
HBTEST StrZero( 10.00, 5 ) IS "00010"
HBTEST StrZero( 10.50, 5 ) IS "00011"
HBTEST StrZero( 100000, 5 ) IS "*****"
HBTEST StrZero( 100000, 8 ) IS "00100000"
HBTEST StrZero( -10, 5 ) IS "-0010"
HBTEST StrZero( -10.0, 5 ) IS "-0010"
HBTEST StrZero( -10.00, 5 ) IS "-0010"
HBTEST StrZero( -10.50, 5 ) IS "-0011"
HBTEST StrZero( -100000, 5 ) IS "*****"
HBTEST StrZero( -100000, 6 ) IS "******"
HBTEST StrZero( -100000, 8 ) IS "-0100000"
#ifndef __XPP__ /* Internal structures corrupted */
HBTEST StrZero(10, -5) IS "0000000010"
HBTEST StrZero(10.0, -5) IS "0000000010"
HBTEST StrZero(10.00, -5) IS "0000000010"
HBTEST StrZero(10.50, -5) IS "0000000011"
HBTEST StrZero(100000, -5) IS "0000100000"
HBTEST StrZero(100000, -8) IS "0000100000"
HBTEST StrZero(-10, -5) IS "-000000010"
HBTEST StrZero(-10.0, -5) IS "-000000010"
HBTEST StrZero(-10.00, -5) IS "-000000010"
HBTEST StrZero(-10.50, -5) IS "-000000011"
HBTEST StrZero(-100000, -5) IS "-000100000"
HBTEST StrZero(-100000, -6) IS "-000100000"
HBTEST StrZero(-100000, -8) IS "-000100000"
HBTEST StrZero( 10, -5 ) IS "0000000010"
HBTEST StrZero( 10.0, -5 ) IS "0000000010"
HBTEST StrZero( 10.00, -5 ) IS "0000000010"
HBTEST StrZero( 10.50, -5 ) IS "0000000011"
HBTEST StrZero( 100000, -5 ) IS "0000100000"
HBTEST StrZero( 100000, -8 ) IS "0000100000"
HBTEST StrZero( -10, -5 ) IS "-000000010"
HBTEST StrZero( -10.0, -5 ) IS "-000000010"
HBTEST StrZero( -10.00, -5 ) IS "-000000010"
HBTEST StrZero( -10.50, -5 ) IS "-000000011"
HBTEST StrZero( -100000, -5 ) IS "-000100000"
HBTEST StrZero( -100000, -6 ) IS "-000100000"
HBTEST StrZero( -100000, -8 ) IS "-000100000"
#endif
HBTEST StrZero(10, 5, 0) IS "00010"
HBTEST StrZero(10.0, 5, 0) IS "00010"
HBTEST StrZero(10.50, 5, 0) IS "00011"
HBTEST StrZero(100000, 5, 0) IS "*****"
HBTEST StrZero(-10, 5, 0) IS "-0010"
HBTEST StrZero(-10.0, 5, 0) IS "-0010"
HBTEST StrZero(-10.00, 5, 0) IS "-0010"
HBTEST StrZero(-10.50, 5, 0) IS "-0011"
HBTEST StrZero(-100000, 5, 0) IS "*****"
HBTEST StrZero(-100000, 6, 0) IS "******"
HBTEST StrZero(-100000, 8, 0) IS "-0100000"
HBTEST StrZero(10, 5, 1) IS "010.0"
HBTEST StrZero(10.0, 5, 1) IS "010.0"
HBTEST StrZero(10.50, 5, 1) IS "010.5"
HBTEST StrZero(100000, 5, 1) IS "*****"
HBTEST StrZero(-10, 5, 1) IS "-10.0"
HBTEST StrZero(-10.0, 5, 1) IS "-10.0"
HBTEST StrZero(-10.00, 5, 1) IS "-10.0"
HBTEST StrZero(-10.50, 5, 1) IS "-10.5"
HBTEST StrZero(-100000, 5, 1) IS "*****"
HBTEST StrZero(-100000, 6, 1) IS "******"
HBTEST StrZero(-100000, 8, 1) IS "********"
HBTEST StrZero( 10, 5, 0 ) IS "00010"
HBTEST StrZero( 10.0, 5, 0 ) IS "00010"
HBTEST StrZero( 10.50, 5, 0 ) IS "00011"
HBTEST StrZero( 100000, 5, 0 ) IS "*****"
HBTEST StrZero( -10, 5, 0 ) IS "-0010"
HBTEST StrZero( -10.0, 5, 0 ) IS "-0010"
HBTEST StrZero( -10.00, 5, 0 ) IS "-0010"
HBTEST StrZero( -10.50, 5, 0 ) IS "-0011"
HBTEST StrZero( -100000, 5, 0 ) IS "*****"
HBTEST StrZero( -100000, 6, 0 ) IS "******"
HBTEST StrZero( -100000, 8, 0 ) IS "-0100000"
HBTEST StrZero( 10, 5, 1 ) IS "010.0"
HBTEST StrZero( 10.0, 5, 1 ) IS "010.0"
HBTEST StrZero( 10.50, 5, 1 ) IS "010.5"
HBTEST StrZero( 100000, 5, 1 ) IS "*****"
HBTEST StrZero( -10, 5, 1 ) IS "-10.0"
HBTEST StrZero( -10.0, 5, 1 ) IS "-10.0"
HBTEST StrZero( -10.00, 5, 1 ) IS "-10.0"
HBTEST StrZero( -10.50, 5, 1 ) IS "-10.5"
HBTEST StrZero( -100000, 5, 1 ) IS "*****"
HBTEST StrZero( -100000, 6, 1 ) IS "******"
HBTEST StrZero( -100000, 8, 1 ) IS "********"
#ifndef __XPP__ /* Internal structures corrupted */
HBTEST StrZero(10, 5, -1) IS "00010"
HBTEST StrZero(10.0, 5, -1) IS "00010"
HBTEST StrZero(10.50, 5, -1) IS "00011"
HBTEST StrZero(100000, 5, -1) IS "*****"
HBTEST StrZero(-10, 5, -1) IS "-0010"
HBTEST StrZero(-10.0, 5, -1) IS "-0010"
HBTEST StrZero(-10.00, 5, -1) IS "-0010"
HBTEST StrZero(-10.50, 5, -1) IS "-0011"
HBTEST StrZero(-100000, 5, -1) IS "*****"
HBTEST StrZero(-100000, 6, -1) IS "******"
HBTEST StrZero(-100000, 8, -1) IS "-0100000"
HBTEST StrZero( 10, 5, -1 ) IS "00010"
HBTEST StrZero( 10.0, 5, -1 ) IS "00010"
HBTEST StrZero( 10.50, 5, -1 ) IS "00011"
HBTEST StrZero( 100000, 5, -1 ) IS "*****"
HBTEST StrZero( -10, 5, -1 ) IS "-0010"
HBTEST StrZero( -10.0, 5, -1 ) IS "-0010"
HBTEST StrZero( -10.00, 5, -1 ) IS "-0010"
HBTEST StrZero( -10.50, 5, -1 ) IS "-0011"
HBTEST StrZero( -100000, 5, -1 ) IS "*****"
HBTEST StrZero( -100000, 6, -1 ) IS "******"
HBTEST StrZero( -100000, 8, -1 ) IS "-0100000"
#endif
RETURN
PROCEDURE Comp_Str()
LOCAL old_exact := Set( _SET_EXACT, .F. )
HBTEST "ABC" == "" IS .F.
@@ -366,6 +367,7 @@ PROCEDURE Comp_Str()
RETURN
PROCEDURE Exact_Str()
LOCAL old_exact := Set( _SET_EXACT, .T. )
HBTEST "ABC" == "" IS .F.

File diff suppressed because it is too large Load Diff