2017-09-08 16:00 UTC Viktor Szakats (vszakats users.noreply.github.com)

* *
    * partial sync with the 3.4 fork codebase. These are the things
      synces for the most part:
      - copyright headers
      - grammar/typos in comments and some readmes
      - comment/whitespace/decorations
      - variable scoping in C files
      - DO CASE/SWITCH and some other alternate syntax usage
      - minimal amount of human readable text in strings
      - minor code updates
      - HB_TRACE() void * casts for pointers and few other changes to
        avoid C compiler warnings
      - various other, minor code cleanups
      - only Harbour/C code/headers were touched in src, utils, contrib,
        include. No 3rd party code, no make files, and with just a few
        exceptions, no 'tests' code was touched.
      - certain components were not touched were 3.4 diverged too much
        already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
      - the goal was that no actual program logic should be altered by
        these changes. Except some possible minor exceptions, any such
        change is probably a bug in this patch.
      It's a massive patch, if you find anything broken after it, please
      open an Issue with the details. Build test was done on macOS.
      The goal is make it easier to see what actual code/logic was changed
      in 3.4 compared to 3.2 and to make patches easier to apply in both
      ways.
This commit is contained in:
Viktor Szakats
2017-09-08 16:25:13 +00:00
parent d55bdd18b7
commit 5a2a287752
916 changed files with 10432 additions and 13266 deletions

View File

@@ -1,5 +1,5 @@
/*
* Harbour i18n .pot/.hbl file manger
* Harbour i18n .pot/.hbl file manager
*
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
*
@@ -48,9 +48,9 @@
#include "hbver.ch"
#include "directry.ch"
#define _HB_I18N_MERGE 1
#define _HB_I18N_GENHBL 2
#define _HB_I18N_TRANS 3
#define _HB_I18N_MERGE 1
#define _HB_I18N_GENHBL 2
#define _HB_I18N_TRANS 3
#define LEFTEQUAL( l, r ) ( Left( l, Len( r ) ) == r )
@@ -141,13 +141,17 @@ PROCEDURE Main( ... )
Logo()
ENDIF
IF nMode == _HB_I18N_MERGE
SWITCH nMode
CASE _HB_I18N_MERGE
Merge( aFiles, cFileOut )
ELSEIF nMode == _HB_I18N_GENHBL
EXIT
CASE _HB_I18N_GENHBL
GenHBL( aFiles, cFileOut, lEmpty )
ELSEIF nMode == _HB_I18N_TRANS
EXIT
CASE _HB_I18N_TRANS
AutoTrans( cFileIn, aFiles, cFileOut )
ENDIF
EXIT
ENDSWITCH
RETURN
@@ -204,17 +208,15 @@ STATIC PROCEDURE ErrorMsg( cErrorMsg )
STATIC FUNCTION ExpandWildCards( aFiles )
/* do not expand wild cards in environments where SHELL already does it.
* In *nixes it's possible that file name will contains "*" or "?".
*/
/* Do not expand wild cards in environments where SHELL already does it.
In *nixes it's possible that file name will contains "*" or "?". */
#ifndef __PLATFORM__UNIX
LOCAL cFile, cRealFile
LOCAL aRealFiles
LOCAL lWild
LOCAL lWild := .F.
lWild := .F.
FOR EACH cFile IN aFiles
IF "*" $ cFile .OR. "?" $ cFile
lWild := .T.
@@ -245,13 +247,11 @@ STATIC FUNCTION LoadFiles( aFiles )
LOCAL cErrorMsg
LOCAL n
aTrans := __i18n_potArrayLoad( aFiles[ 1 ], @cErrorMsg )
IF aTrans == NIL
IF ( aTrans := __i18n_potArrayLoad( aFiles[ 1 ], @cErrorMsg ) ) == NIL
ErrorMsg( cErrorMsg )
ENDIF
FOR n := 2 TO Len( aFiles )
aTrans2 := __i18n_potArrayLoad( aFiles[ n ], @cErrorMsg )
IF aTrans2 == NIL
IF ( aTrans2 := __i18n_potArrayLoad( aFiles[ n ], @cErrorMsg ) ) == NIL
ErrorMsg( cErrorMsg )
ENDIF
__i18n_potArrayJoin( aTrans, aTrans2, @hIndex )

View File

@@ -14,9 +14,9 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
* their web site at https://www.gnu.org/).
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* (or visit their website at https://www.gnu.org/licenses/).
*
*/

View File

@@ -14,9 +14,9 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
* their web site at https://www.gnu.org/).
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* (or visit their website at https://www.gnu.org/licenses/).
*
*/

View File

@@ -1,3 +1,5 @@
# Copyright 2009 Viktor Szakats (vszakats.net/harbour)
-q0 -w3 -es2 -kmo -l -u
{HB_HAS_GPM}-prgflag=-DHB_HAS_GPM

View File

@@ -1,3 +1,5 @@
# Copyright 2012 Viktor Szakats (vszakats.net/harbour)
# dynamic lib creation settings
{hbdyn}-shared
{hbdyn}-implib=lib/${hb_plat}/${hb_comp}${hb_build}/

View File

@@ -1,3 +1,5 @@
# Copyright 2012 Viktor Szakats (vszakats.net/harbour)
# Include file to setup standard installation rules
# for 3rd party packages. To use it just add the line
# '$hb_pkg_install.hbm' to the beginning of your project

View File

@@ -52,7 +52,7 @@
/* NOTE: It's worth to make tests with and without the /z switch */
/* NOTE: Guard all Harbour extensions with __HARBOUR__ #ifdefs */
/* NOTE: Use ":className()" instead of ":className" to make your code work
with Xbase++. Xbase++ seem to take differenciate between the
with Xbase++. Xbase++ seem to take differentiate between the
object method and object variable form. In CA-Cl*pper and Harbour
both syntax is accepted. Same goes for ":Eval()" */
@@ -61,7 +61,7 @@
/* TODO: Incorporate tests from test/working/string*.prg */
/* TODO: String overflow on + and - tests */
/* TODO: Tests with MEMO type ? */
/* TODO: Tests with Log(0) type of invalid values */
/* TODO: Tests with Log( 0 ) type of invalid values */
#include "rt_main.ch"
@@ -123,12 +123,12 @@ PROCEDURE Main( cPar1, cPar2, cPar3 )
"-help" $ Lower( cPar1 ) .OR. ;
"--help" $ Lower( cPar1 )
OutStd( hb_eol() +;
"Syntax: hbtest [options]" + hb_eol() +;
hb_eol() +;
"Options: -h, -? Display this help." + hb_eol() +;
" -all Display all tests, not only the failures." + hb_eol() +;
" -noalt Ignore alternative results." + hb_eol() +;
OutStd( hb_eol() + ;
"Syntax: hbtest [options]" + hb_eol() + ;
hb_eol() + ;
"Options: -h, -? Display this help." + hb_eol() + ;
" -all Display all tests, not only the failures." + hb_eol() + ;
" -noalt Ignore alternative results." + hb_eol() + ;
" -skip:<list> Skip the listed test numbers." + hb_eol() )
RETURN
@@ -198,7 +198,7 @@ STATIC PROCEDURE Main_LAST()
STATIC PROCEDURE TEST_BEGIN( cParam )
LOCAL bErrorOld
LOCAL bOldError
s_nStartTime := Seconds()
@@ -209,7 +209,7 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
hb_langSelect( "en" )
#endif
Set( _SET_DATEFORMAT, "yyyy-mm-dd" )
SET EXACT OFF
Set( _SET_EXACT, .F. )
FErase( "NOT_HERE.$$$" )
@@ -244,7 +244,7 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
/* Feedback */
OutMsg( s_nFhnd, ;
"---------------------------------------------------------------------------" + hb_eol() +;
Replicate( "-", 75 ) + hb_eol() + ;
" Version: " + Version() + hb_eol() )
#ifdef __HARBOUR__
OutMsg( s_nFhnd, ;
@@ -255,7 +255,7 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
" Date, Time: " + DToC( Date() ) + " " + Time() + hb_eol() +;
"Shortcut opt.: " + iif( s_lShortcut, "On", "Off" ) + hb_eol() +;
" Switches: " + cParam + hb_eol() +;
"===========================================================================" + hb_eol() )
Replicate( "=", 75 ) + hb_eol() )
OutMsg( s_nFhnd, ;
PadR( "R", TEST_RESULT_COL1_WIDTH ) + " " +;
@@ -263,7 +263,7 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
PadR( "TestCall()", TEST_RESULT_COL3_WIDTH ) + " -> " +;
PadR( "Result", TEST_RESULT_COL4_WIDTH ) + " | " +;
"Expected" + hb_eol() +;
"---------------------------------------------------------------------------" + hb_eol() )
Replicate( "-", 75 ) + hb_eol() )
/* NOTE: mxNotHere intentionally not declared */
PUBLIC mcLongerNameThen10Chars := "Long String Name!"
@@ -294,20 +294,20 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
// rddSetDefault( "DBFCDX" )
#endif
bErrorOld := ErrorBlock( {| oError | Break( oError ) } )
bOldError := ErrorBlock( {| oError | Break( oError ) } )
BEGIN SEQUENCE
dbCreate( "_hbtmp_.dbf", { ;
{ "TYPE_C" , "C", 15, 0 } ,;
{ "TYPE_C_E" , "C", 15, 0 } ,;
{ "TYPE_D" , "D", 8, 0 } ,;
{ "TYPE_D_E" , "D", 8, 0 } ,;
{ "TYPE_M" , "M", 10, 0 } ,;
{ "TYPE_M_E" , "M", 10, 0 } ,;
{ "TYPE_N_I" , "N", 11, 0 } ,;
{ "TYPE_N_IE", "N", 11, 0 } ,;
{ "TYPE_N_D" , "N", 11, 3 } ,;
{ "TYPE_N_DE", "N", 11, 3 } ,;
{ "TYPE_L" , "L", 1, 0 } ,;
{ "TYPE_C" , "C", 15, 0 }, ;
{ "TYPE_C_E" , "C", 15, 0 }, ;
{ "TYPE_D" , "D", 8, 0 }, ;
{ "TYPE_D_E" , "D", 8, 0 }, ;
{ "TYPE_M" , "M", 10, 0 }, ;
{ "TYPE_M_E" , "M", 10, 0 }, ;
{ "TYPE_N_I" , "N", 11, 0 }, ;
{ "TYPE_N_IE", "N", 11, 0 }, ;
{ "TYPE_N_D" , "N", 11, 3 }, ;
{ "TYPE_N_DE", "N", 11, 3 }, ;
{ "TYPE_L" , "L", 1, 0 }, ;
{ "TYPE_L_E" , "L", 1, 0 } } )
USE ( "_hbtmp_.dbf" ) NEW ALIAS w_TEST EXCLUSIVE
@@ -329,10 +329,10 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
s_lDBFAvail := .T.
END SEQUENCE
ErrorBlock( bErrorOld )
ErrorBlock( bOldError )
IF ! s_lDBFAvail
OutMsg( s_nFhnd, "WARNING ! Test .dbf could not be created. Related tests will be skipped." + hb_eol() )
OutMsg( s_nFhnd, "WARNING: Test .dbf could not be created. Related tests will be skipped." + hb_eol() )
ENDIF
RETURN
@@ -384,28 +384,27 @@ PROCEDURE TEST_CALL( cBlock, bBlock, xResultExpected, xResultAlter )
IF lFailed .AND. ! s_lNoAltResult .AND. PCount() >= 4
lFailed := ResultCompare( lRTE, xResult, xResultAlter )
ENDIF
ENDIF
IF s_lShowAll .OR. lFailed .OR. lSkipped .OR. lPPError
IF lFailed
OutMsg( s_nFhnd, ;
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
RTrim( cBlock ) +;
hb_eol() +;
Space( 5 ) + " Result: " + XToStr( xResult ) +;
hb_eol() +;
Space( 5 ) + "Expected: " + XToStr( xResultExpected ) +;
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " + ;
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " + ;
RTrim( cBlock ) + ;
hb_eol() + ;
Space( 5 ) + " Result: " + XToStr( xResult ) + ;
hb_eol() + ;
Space( 5 ) + "Expected: " + XToStr( xResultExpected ) + ;
hb_eol() )
ELSE
OutMsg( s_nFhnd, ;
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " +;
PadR( XToStr( xResult ), TEST_RESULT_COL4_WIDTH ) + " | " +;
RTrim( XToStr( xResultExpected ) ) +;
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " + ;
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " + ;
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " + ;
PadR( XToStr( xResult ), TEST_RESULT_COL4_WIDTH ) + " | " + ;
RTrim( XToStr( xResultExpected ) ) + ;
hb_eol() )
ENDIF
ENDIF
@@ -433,22 +432,22 @@ STATIC PROCEDURE TEST_END()
s_nEndTime := Seconds()
OutMsg( s_nFhnd, ;
"===========================================================================" + hb_eol() +;
"Test calls passed: " + Str( s_nPass ) + " ( " + LTrim( Str( ( 1 - ( s_nFail / s_nPass ) ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
"Test calls failed: " + Str( s_nFail ) + " ( " + LTrim( Str( ( s_nFail / s_nPass ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
" ----------" + hb_eol() +;
" Total: " + Str( s_nPass + s_nFail ) +;
" ( Time elapsed: " + LTrim( Str( s_nEndTime - s_nStartTime ) ) + " seconds )" + hb_eol() +;
Replicate( "=", 75 ) + hb_eol() + ;
"Test calls passed: " + Str( s_nPass ) + " ( " + LTrim( Str( ( 1 - ( s_nFail / s_nPass ) ) * 100, 6, 2 ) ) + " % )" + hb_eol() + ;
"Test calls failed: " + Str( s_nFail ) + " ( " + LTrim( Str( ( s_nFail / s_nPass ) * 100, 6, 2 ) ) + " % )" + hb_eol() + ;
" ----------" + hb_eol() + ;
" Total: " + Str( s_nPass + s_nFail ) + ;
" ( Time elapsed: " + LTrim( Str( s_nEndTime - s_nStartTime ) ) + " seconds )" + hb_eol() + ;
hb_eol() )
IF s_nFail != 0
IF "CLIPPER (R)" $ Upper( Version() )
OutMsg( s_nFhnd, ;
"WARNING ! Failures detected using CA-Cl*pper." + hb_eol() +;
"WARNING: Failures detected using CA-Cl*pper." + hb_eol() + ;
"Please fix those expected results which are not bugs in CA-Cl*pper itself." + hb_eol() )
ELSE
OutMsg( s_nFhnd, ;
"WARNING ! Failures detected" + hb_eol() )
"WARNING: Failures detected" + hb_eol() )
ENDIF
ENDIF
@@ -462,23 +461,15 @@ STATIC PROCEDURE TEST_END()
FUNCTION ResultCompare( lRTE, xResult, xResultExpected )
LOCAL lFailed
IF lRTE
lFailed := !( XToStr( xResult ) == XToStr( xResultExpected ) )
ELSE
IF !( ValType( xResult ) == ValType( xResultExpected ) )
IF ValType( xResultExpected ) == "C" .AND. ValType( xResult ) $ "ABMO"
lFailed := !( XToStr( xResult ) == xResultExpected )
ELSE
lFailed := .T.
ENDIF
ELSE
lFailed := !( xResult == xResultExpected )
ENDIF
RETURN ! XToStr( xResult ) == XToStr( xResultExpected )
ELSEIF ValType( xResult ) == ValType( xResultExpected )
RETURN ! xResult == xResultExpected
ELSEIF ValType( xResultExpected ) == "C" .AND. ValType( xResult ) $ "ABMO"
RETURN ! XToStr( xResult ) == xResultExpected
ENDIF
RETURN lFailed
RETURN .T.
FUNCTION XToStr( xValue )
@@ -523,7 +514,7 @@ FUNCTION XToStrE( xValue )
RETURN xValue
CASE cType == "N" ; RETURN LTrim( Str( xValue ) )
CASE cType == "D" ; RETURN "0d" + iif( Empty( xValue ), "00000000", DToS( xValue ) )
CASE cType == "D" ; RETURN "0d" + iif( Empty( xValue ), "0", DToS( xValue ) )
CASE cType == "L" ; RETURN iif( xValue, ".T.", ".F." )
CASE cType == "O" ; RETURN xValue:className() + " Object"
CASE cType == "U" ; RETURN "NIL"
@@ -685,9 +676,9 @@ FUNCTION hb_SToD( cDate )
FUNCTION hb_SToD( s )
LOCAL cDf := Set( _SET_DATEFORMAT, "YYYY/MM/DD" ), dt
LOCAL cDf := Set( _SET_DATEFORMAT, "yyyy-mm-dd" ), dt
dt := CToD( Stuff( Stuff( s, 7, 0, "/" ), 5, 0, "/" ) )
dt := CToD( Stuff( Stuff( s, 7, 0, "-" ), 5, 0, "-" ) )
Set( _SET_DATEFORMAT, cDf )
RETURN dt
@@ -705,13 +696,14 @@ STATIC FUNCTION BADFNAME()
STATIC PROCEDURE OutMsg( hFile, cMsg )
IF hFile == 1
DO CASE
CASE hFile == 1
OutStd( cMsg )
ELSEIF hFile == 2
CASE hFile == 2
OutErr( cMsg )
ELSE
OTHERWISE
FWrite( hFile, cMsg )
ENDIF
ENDCASE
RETURN

View File

@@ -1093,13 +1093,14 @@ STATIC FUNCTION INSTANCE_DATA( oValue )
cData := "[" + hb_ntos( Len( oValue ) ) + "]:"
FOR i := 1 TO Len( oValue )
IF HB_ISSTRING( oValue[ i ] )
DO CASE
CASE HB_ISSTRING( oValue[ i ] )
cData += " " + oValue[ i ]
ELSEIF oValue[ i ] == NIL
CASE oValue[ i ] == NIL
cData += " NIL"
ELSE
OTHERWISE
cData += " ..."
ENDIF
ENDCASE
NEXT
RETURN cData
@@ -1113,25 +1114,27 @@ EXPORTED:
CLASS VAR var2
METHOD init
DESTRUCTOR dtor
END CLASS
ENDCLASS
METHOD INIT( type ) CLASS DTORCLASS
::type := type
RETURN self
METHOD PROCEDURE DTOR CLASS DTORCLASS
IF ::type == 1
DO CASE
CASE ::Type == 1
cDtorResult += "Reference to self in instance variable."
::var1 := self
ELSEIF ::Type == 2
CASE ::Type == 2
cDtorResult += "Reference to self in class variable."
::var2 := self
ELSEIF ::Type == 3
CASE ::Type == 3
cDtorResult += "Reference to self in private memvar."
objHolder := self
ELSE
OTHERWISE
cDtorResult += "No references to self."
ENDIF
ENDCASE
RETURN
@@ -1142,28 +1145,28 @@ EXPORTED:
VAR x1 INIT "(x1)"
VAR y1 INIT "(y1)"
VAR z1 INIT "(z1)"
END CLASS
ENDCLASS
CREATE CLASS IVARSCLASS2 FROM IVARSCLASS1
CREATE CLASS IVARSCLASS2 INHERIT IVARSCLASS1
EXPORTED:
VAR x2 INIT "(x2)"
VAR y2 INIT "(y2)"
VAR z2 INIT "(z2)"
END CLASS
ENDCLASS
CREATE CLASS IVARSCLASS3 FROM IVARSCLASS1, IVARSCLASS2
CREATE CLASS IVARSCLASS3 INHERIT IVARSCLASS1, IVARSCLASS2
EXPORTED:
VAR x3 INIT "(x3)"
VAR y3 INIT "(y3)"
VAR z3 INIT "(z3)"
END CLASS
ENDCLASS
CREATE CLASS IVARSCLASS4 FROM IVARSCLASS3, IVARSCLASS2
CREATE CLASS IVARSCLASS4 INHERIT IVARSCLASS3, IVARSCLASS2
EXPORTED:
VAR x4 INIT "(x4)"
VAR y4 INIT "(y4)"
VAR z4 INIT "(z4)"
END CLASS
ENDCLASS
@@ -1172,28 +1175,28 @@ EXPORTED:
CLASS VAR x1 INIT "(x1)"
CLASS VAR y1 INIT "(y1)"
CLASS VAR z1 INIT "(z1)"
END CLASS
ENDCLASS
CREATE CLASS CVARSCLASS2 FROM CVARSCLASS1
CREATE CLASS CVARSCLASS2 INHERIT CVARSCLASS1
EXPORTED:
CLASS VAR x2 INIT "(x2)"
CLASS VAR y2 INIT "(y2)"
CLASS VAR z2 INIT "(z2)"
END CLASS
ENDCLASS
CREATE CLASS CVARSCLASS3 FROM CVARSCLASS1, CVARSCLASS2
CREATE CLASS CVARSCLASS3 INHERIT CVARSCLASS1, CVARSCLASS2
EXPORTED:
CLASS VAR x3 INIT "(x3)"
CLASS VAR y3 INIT "(y3)"
CLASS VAR z3 INIT "(z3)"
END CLASS
ENDCLASS
CREATE CLASS CVARSCLASS4 FROM CVARSCLASS3, CVARSCLASS2
CREATE CLASS CVARSCLASS4 INHERIT CVARSCLASS3, CVARSCLASS2
EXPORTED:
CLASS VAR x4 INIT "(x4)"
CLASS VAR y4 INIT "(y4)"
CLASS VAR z4 INIT "(z4)"
END CLASS
ENDCLASS
@@ -1204,21 +1207,21 @@ EXPORTED:
CLASS VAR z1 INIT "(z1)" SHARED
ENDCLASS
CREATE CLASS SVARSCLASS2 FROM SVARSCLASS1
CREATE CLASS SVARSCLASS2 INHERIT SVARSCLASS1
EXPORTED:
CLASS VAR x2 INIT "(x2)" SHARED
CLASS VAR y2 INIT "(y2)" SHARED
CLASS VAR z2 INIT "(z2)" SHARED
ENDCLASS
CREATE CLASS SVARSCLASS3 FROM SVARSCLASS1, SVARSCLASS2
CREATE CLASS SVARSCLASS3 INHERIT SVARSCLASS1, SVARSCLASS2
EXPORTED:
CLASS VAR x3 INIT "(x3)" SHARED
CLASS VAR y3 INIT "(y3)" SHARED
CLASS VAR z3 INIT "(z3)" SHARED
ENDCLASS
CREATE CLASS SVARSCLASS4 FROM SVARSCLASS3, SVARSCLASS2
CREATE CLASS SVARSCLASS4 INHERIT SVARSCLASS3, SVARSCLASS2
EXPORTED:
CLASS VAR x4 INIT "(x4)" SHARED
CLASS VAR y4 INIT "(y4)" SHARED
@@ -1246,7 +1249,6 @@ EXPORTED:
ENDCLASS
METHOD m1 CLASS NVCLASS1
RETURN "NVCLASS1:M1 " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1260,7 +1262,6 @@ METHOD m1 CLASS NVCLASS1
::z()
METHOD x CLASS NVCLASS1
RETURN "NVCLASS1:X " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1271,7 +1272,6 @@ METHOD x CLASS NVCLASS1
hb_CStr( ::v )
METHOD y CLASS NVCLASS1
RETURN "NVCLASS1:Y " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1282,7 +1282,6 @@ METHOD y CLASS NVCLASS1
hb_CStr( ::v )
METHOD z CLASS NVCLASS1
RETURN "NVCLASS1:Z " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1313,7 +1312,6 @@ EXPORTED:
ENDCLASS
METHOD m2 CLASS NVCLASS2
RETURN "NVCLASS2:M2 " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1327,7 +1325,6 @@ METHOD m2 CLASS NVCLASS2
::z()
METHOD x CLASS NVCLASS2
RETURN "NVCLASS2:X " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1338,7 +1335,6 @@ METHOD x CLASS NVCLASS2
hb_CStr( ::v )
METHOD y CLASS NVCLASS2
RETURN "NVCLASS2:Y " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1349,7 +1345,6 @@ METHOD y CLASS NVCLASS2
hb_CStr( ::v )
METHOD z CLASS NVCLASS2
RETURN "NVCLASS2:Z " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1360,7 +1355,7 @@ METHOD z CLASS NVCLASS2
hb_CStr( ::v )
CREATE CLASS NVCLASS3 FROM NVCLASS1, NVCLASS2
CREATE CLASS NVCLASS3 INHERIT NVCLASS1, NVCLASS2
HIDDEN:
VAR a init "(a3)"
CLASS VAR b init "(b3)"
@@ -1381,7 +1376,6 @@ EXPORTED:
ENDCLASS
METHOD m3 CLASS NVCLASS3
RETURN "NVCLASS3:M3 " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1395,7 +1389,6 @@ METHOD m3 CLASS NVCLASS3
::z()
METHOD x CLASS NVCLASS3
RETURN "NVCLASS3:X " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1406,7 +1399,6 @@ METHOD x CLASS NVCLASS3
hb_CStr( ::v )
METHOD y CLASS NVCLASS3
RETURN "NVCLASS3:Y " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1417,7 +1409,6 @@ METHOD y CLASS NVCLASS3
hb_CStr( ::v )
METHOD z CLASS NVCLASS3
RETURN "NVCLASS3:Z " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;
@@ -1428,12 +1419,11 @@ METHOD z CLASS NVCLASS3
hb_CStr( ::v )
CREATE CLASS NVCLASS4 FROM NVCLASS3
CREATE CLASS NVCLASS4 INHERIT NVCLASS3
METHOD m4
ENDCLASS
METHOD m4
METHOD m4 CLASS NVCLASS4
RETURN "NVCLASS4:M4 " + ;
hb_CStr( ::a ) + " " + ;
hb_CStr( ::b ) + " " + ;

View File

@@ -57,15 +57,13 @@
PROCEDURE Main_FILE()
LOCAL cFileName := "$$FILEIO.TMP"
LOCAL nFlags
LOCAL cBuff4 := Space( 4 )
LOCAL cBuff100 := Space( 100 )
LOCAL fhnd
nFlags := FC_NORMAL
fhnd := FCreate( cFileName, nFlags )
fhnd := FCreate( cFileName )
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"
@@ -134,8 +132,7 @@ PROCEDURE Main_FILE()
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 )
fhnd := FOpen( cFileName, FO_READWRITE )
HBTEST FError() IS 0
HBTEST TESTFIER( FWrite( fhnd, ">1234567890<" ) ) IS "E: 0 R: 12"

View File

@@ -383,7 +383,7 @@ PROCEDURE Main_HVM()
/* =, == */
SET EXACT ON
Set( _SET_EXACT, .T. )
HBTEST "123" = "123 " IS .T.
HBTEST " 123" = "123" IS .F.
HBTEST "123" = "12345" IS .F.
@@ -394,7 +394,7 @@ PROCEDURE Main_HVM()
HBTEST "Z" == "A" IS .F.
HBTEST "A" == "A " IS .F.
HBTEST "AA" == "A" IS .F.
SET EXACT OFF
Set( _SET_EXACT, .F. )
HBTEST "123" = "123 " IS .F.
HBTEST " 123" = "123" IS .F.
HBTEST "123" = "12345" IS .F.
@@ -426,7 +426,7 @@ PROCEDURE Main_HVM()
/* != */
SET EXACT ON
Set( _SET_EXACT, .T. )
HBTEST "123" != "123 " IS .F.
HBTEST " 123" != "123" IS .T.
HBTEST "123" != "12345" IS .T.
@@ -437,7 +437,7 @@ PROCEDURE Main_HVM()
HBTEST "Z" != "A" IS .T.
HBTEST "A" != "A " IS .F.
HBTEST "AA" != "A" IS .T.
SET EXACT OFF
Set( _SET_EXACT, .F. )
HBTEST "123" != "123 " IS .T.
HBTEST " 123" != "123" IS .T.
HBTEST "123" != "12345" IS .T.

View File

@@ -235,13 +235,13 @@ PROCEDURE Main_HVMA()
#ifdef __HARBOUR__
#pragma -kh-
#endif
HBTEST "" $ "" IS .T. /* Bug in CA-Cl*ppers compiler optimizer. It should return .F. */
HBTEST "" $ "bcde" IS .T. /* Bug in CA-Cl*ppers compiler optimizer. It should return .F. */
HBTEST "" $ "" IS .T. /* Bug in CA-Cl*pper compiler optimizer. It should return .F. */
HBTEST "" $ "bcde" IS .T. /* Bug in CA-Cl*pper compiler optimizer. It should return .F. */
#ifdef __HARBOUR__
/* enable Harbour extensions and test correct results results */
#pragma -kh+
HBTEST "" $ "" IS .F. /* Bug in CA-Cl*ppers compiler optimizer. It should return .F. */
HBTEST "" $ "bcde" IS .F. /* Bug in CA-Cl*ppers compiler optimizer. It should return .F. */
HBTEST "" $ "" IS .F. /* Bug in CA-Cl*pper compiler optimizer. It should return .F. */
HBTEST "" $ "bcde" IS .F. /* Bug in CA-Cl*pper compiler optimizer. It should return .F. */
#endif
HBTEST "d" $ "bcde" IS .T.
HBTEST "D" $ "BCDE" IS .T.
@@ -305,14 +305,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:0d0 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:0d0 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"
@@ -386,7 +386,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:0d0;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__
@@ -633,7 +633,7 @@ PROCEDURE Main_HVMA()
RETURN
FUNCTION RTSTR( nValue )
STATIC FUNCTION RTSTR( nValue )
RETURN Str( Len( Str( nValue ) ), 3 ) + " " + Str( nValue )
/* Don't change the position of this #include. */

View File

@@ -83,7 +83,7 @@ PROCEDURE Main_MISC()
HBTEST Set( _SET_MARGIN , -1 ) IS "E 1 BASE 2020 Argument error (SET) OS:0 #:0 A:2:N:25;N:-1 "
#ifdef HB_COMPAT_C53
HBTEST Set( _SET_EVENTMASK ) IS 128
HBTEST Set( _SET_EVENTMASK ) IS 128 /* INKEY_KEYBOARD */
HBTEST Set( _SET_VIDEOMODE ) IS NIL, 0
HBTEST Set( _SET_MBLOCKSIZE ) IS 64
HBTEST Set( _SET_MFILEEXT ) IS ""
@@ -537,7 +537,7 @@ PROCEDURE Main_MISC()
HBTEST suNIL:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:U:NIL F:S"
HBTEST scString:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:C:HELLO F:S"
HBTEST snIntP:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:N:10 F:S"
HBTEST sdDateE:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:D:0d00000000 F:S"
HBTEST sdDateE:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:D:0d0 F:S"
HBTEST slFalse:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:L:.F. F:S"
HBTEST sbBlock:Eval() IS NIL
HBTEST saArray:Eval() IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:A:{.[1].} F:S"
@@ -545,7 +545,7 @@ PROCEDURE Main_MISC()
HBTEST suNIL:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:U:NIL F:S"
HBTEST scString:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:C:HELLO F:S"
HBTEST snIntP:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:N:10 F:S"
HBTEST sdDateE:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:D:0d00000000 F:S"
HBTEST sdDateE:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:D:0d0 F:S"
HBTEST slFalse:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:L:.F. F:S"
HBTEST sbBlock:Eval IS NIL
HBTEST saArray:Eval IS "E 13 BASE 1004 No exported method (EVAL) OS:0 #:0 A:1:A:{.[1].} F:S"
@@ -701,7 +701,7 @@ PROCEDURE Main_MISC()
#endif /* __XPP__ */
/* NOTE: BIN2*() functions are quite untable in CA-Cl*pper when the passed
/* NOTE: BIN2*() functions are quite unstable in CA-Cl*pper when the passed
parameter is smaller than the required length. */
/* Bin2I() */
@@ -806,7 +806,7 @@ PROCEDURE Main_MISC()
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", BADFNAME1() ) IS "E 20 BASE 2012 Create error <" + BADFNAME1() + "> OS:2 #:1 F:DR"
FErase( "$$COPYFR.TMP" )
FErase( "$$COPYTO.TMP" )
@@ -1208,14 +1208,14 @@ STATIC FUNCTION TESTFNAME( cFull )
RETURN ;
hb_FNameMerge( cPath, cName, cExt ) + ";" + ;
cPath + ";" +;
cName + ";" +;
cExt + ";" +;
cPath + ";" + ;
cName + ";" + ;
cExt + ";" + ;
""
#endif
STATIC FUNCTION BADFNAME()
STATIC FUNCTION BADFNAME1()
/* NOTE: The dot in the "*INVALID*." filename is intentional and serves
to hide different path handling, since Harbour is platform
independent. */

View File

@@ -63,7 +63,7 @@ PROCEDURE Main_MT()
RETURN
#ifdef __HARBOUR__
FUNCTION DO_MTTES1()
STATIC FUNCTION DO_MTTES1()
LOCAL aThreads, aResults, i, nDigit, nSum, nExpected
LOCAL mtxJobs, mtxResults
@@ -101,11 +101,11 @@ FUNCTION DO_MTTES1()
RETURN "ERROR, final sum: " + hb_ntos( nSum ) + ;
" expected: " + hb_ntos( nExpected )
PROCEDURE thFunc( mtxJobs, mtxResults )
STATIC PROCEDURE thFunc( mtxJobs, mtxResults )
LOCAL xJob, xResult
WHILE .T.
DO WHILE .T.
hb_mutexSubscribe( mtxJobs,, @xJob )
IF xJob == NIL
EXIT

View File

@@ -71,7 +71,7 @@ PROCEDURE Main_STR()
#ifndef RT_NO_C
#ifdef __PLATFORM__WINDOWS
IF .F. /* [U]LONG is 32 bit integer in Win64 */
IF .F. /* [U]LONG is 32-bit integer in Windows 64-bit */
#else
IF l64
#endif
@@ -442,7 +442,7 @@ PROCEDURE Main_STR()
/* TODO: StrTran() */
/* NOTE: It seems like CA-Cl*pper 5.x is not aware of the BREAK return value of
the error handler, so the error is thrown, but we can't catch it.
the error handler, so the error is thrown, but we cannot catch it.
This bug is fixed in CA-Cl*pper 5.3 [vszakats] */
#ifndef __CLIPPER__
#ifndef __XPP__
@@ -503,13 +503,13 @@ PROCEDURE Main_STR()
#ifdef __HARBOUR__
#pragma -kh-
#endif
HBTEST At( "", "" ) IS 1 /* Bug in CA-Cl*ppers compiler optimizer, it should return 0 */
HBTEST At( "", "ABCDEF" ) IS 1 /* Bug in CA-Cl*ppers compiler optimizer, it should return 0 */
HBTEST At( "", "" ) IS 1 /* Bug in CA-Cl*pper compiler optimizer, it should return 0 */
HBTEST At( "", "ABCDEF" ) IS 1 /* Bug in CA-Cl*pper compiler optimizer, it should return 0 */
#ifdef __HARBOUR__
/* enable Harbour extensions and test correct results results */
#pragma -kh+
HBTEST At( "", "" ) IS 0 /* Bug in CA-Cl*ppers compiler optimizer, it should return 0 */
HBTEST At( "", "ABCDEF" ) IS 0 /* Bug in CA-Cl*ppers compiler optimizer, it should return 0 */
HBTEST At( "", "" ) IS 0 /* Bug in CA-Cl*pper compiler optimizer, it should return 0 */
HBTEST At( "", "ABCDEF" ) IS 0 /* Bug in CA-Cl*pper compiler optimizer, it should return 0 */
#endif
HBTEST At( scStringE, scStringE ) IS 0
HBTEST At( scStringE, "ABCDEF" ) IS 0

View File

@@ -512,7 +512,7 @@ PROCEDURE Main_TRANS()
HBTEST Transform( .T., "@RZ ABCDEFGHIJKLMNOPQRSTUVWXYZ9#!$ *.," ) IS " "
HBTEST Transform( .F., "@RZ ABCDEFGHIJKLMNOPQRSTUVWXYZ9#!$ *.," ) IS " "
SET DATE FORMAT TO "MM/DD/YY"
Set( _SET_DATEFORMAT, "MM/DD/YY" )
HBTEST Transform( "abcd", "@9!*" ) IS "ABCD"
HBTEST Transform( "abcd", "@_9!*" ) IS "ABCD"
@@ -540,30 +540,30 @@ PROCEDURE Main_TRANS()
HBTEST Transform( 0, "@C 9.99" ) IS "0.00"
dt := hb_SToD( "19871231" )
SET DATE FORMAT TO "MM:DD:YYYY"
Set( _SET_DATEFORMAT, "MM:DD:YYYY" )
HBTEST Transform( dt, "@E" ) IS "31:12:1987"
SET DATE FORMAT TO "MM:DD:YY"
Set( _SET_DATEFORMAT, "MM:DD:YY" )
HBTEST Transform( dt, "@E" ) IS "31:12:87"
SET DATE FORMAT TO "MM<DD>YY"
Set( _SET_DATEFORMAT, "MM<DD>YY" )
HBTEST Transform( dt, "@E" ) IS "31<12>87"
#ifdef __HARBOUR__
/* this are wrongly converted by CA-Cl*pper */
SET DATE FORMAT TO "DD:MM:YYYY"
Set( _SET_DATEFORMAT, "DD:MM:YYYY" )
HBTEST Transform( dt, "@E" ) IS "31:12:1987"
SET DATE FORMAT TO "YYYY:MM:DD"
Set( _SET_DATEFORMAT, "YYYY:MM:DD" )
HBTEST Transform( dt, "@E" ) IS "31:12:1987"
SET DATE FORMAT TO "YYYY:DD:MM"
Set( _SET_DATEFORMAT, "YYYY:DD:MM" )
HBTEST Transform( dt, "@E" ) IS "31:12:1987"
SET DATE FORMAT TO "YY:MM:DD"
Set( _SET_DATEFORMAT, "YY:MM:DD" )
HBTEST Transform( dt, "@E" ) IS "31:12:87"
SET DATE FORMAT TO "DD:MM:YY"
Set( _SET_DATEFORMAT, "DD:MM:YY" )
HBTEST Transform( dt, "@E" ) IS "31:12:87"
SET DATE FORMAT TO "<YY:DD.MM>"
Set( _SET_DATEFORMAT, "<YY:DD.MM>" )
HBTEST Transform( dt, "@E" ) IS "<31:12.87>"
SET DATE FORMAT TO "|YY|MM|DD|"
Set( _SET_DATEFORMAT, "|YY|MM|DD|" )
HBTEST Transform( dt, "@E" ) IS "|31|12|87|"
#endif
SET DATE FORMAT TO "MM.DD.YYYY"
Set( _SET_DATEFORMAT, "MM.DD.YYYY" )
HBTEST Transform( dt, "@E" ) IS "31.12.1987"
HBTEST Transform( -5, "@(Z $###,##9.99" ) IS "( 5.00)"
@@ -697,7 +697,7 @@ PROCEDURE Main_TRANS()
HBTEST Transform( "abcdefghij", "@S0! <XXXXXXXX>" ) IS "<BCDEFGHI>"
HBTEST Transform( "abcdefghij", "@S5! <XXXXXXXX>" ) IS "<BCDE"
SET FIXED ON
Set( _SET_FIXED, .T. )
HBTEST Transform( 1234, ) IS " 1234"
HBTEST Transform( 1234, "" ) IS " 1234"
@@ -728,20 +728,20 @@ PROCEDURE Main_TRANS()
HBTEST Transform( Val( "12" ), ) IS " 12"
HBTEST Transform( Val( "123" ), ) IS " 123"
HBTEST Transform( Val( "1234" ), ) IS " 1234"
SET DECIMAL TO 3
Set( _SET_DECIMALS, 3 )
HBTEST Transform( 0.0, ) IS " 0.000"
HBTEST Transform( Val( "1" ), ) IS " 1"
HBTEST Transform( Val( "12" ), ) IS " 12"
HBTEST Transform( Val( "123" ), ) IS " 123"
HBTEST Transform( Val( "1234" ), ) IS " 1234"
SET DECIMAL TO 4
Set( _SET_DECIMALS, 4 )
HBTEST Transform( 0.0, ) IS " 0.0000"
HBTEST Transform( Val( "1" ), ) IS " 1"
HBTEST Transform( Val( "12" ), ) IS " 12"
HBTEST Transform( Val( "123" ), ) IS " 123"
HBTEST Transform( Val( "1234" ), ) IS " 1234"
SET FIXED OFF
Set( _SET_FIXED, .F. )
HBTEST Transform( -1234, ) IS " -1234"
HBTEST Transform( -1234, "@B" ) IS "-1234 "