20000305-13:47 GMT+1 Victor Szakats <info@szelvesz.hu>
This commit is contained in:
@@ -1,3 +1,32 @@
|
||||
20000305-13:47 GMT+1 Victor Szakats <info@szelvesz.hu>
|
||||
* source/rtl/empty.c
|
||||
source/rtl/valtype.c
|
||||
! Item->type access change to API call.
|
||||
% Optimized. Some variables and branches removed.
|
||||
* source/rtl/strings.c
|
||||
! All direct item accesses changed to Item API calls.
|
||||
% Some calls eliminated by using local variables.
|
||||
* source/rtl/arrays.c
|
||||
source/rtl/break.c
|
||||
source/rtl/classes.c
|
||||
source/rtl/codebloc.c
|
||||
source/rtl/extend.c
|
||||
source/rtl/fm.c
|
||||
source/rtl/harbinit.prg
|
||||
source/rtl/initexit.c
|
||||
source/rtl/itemapi.c
|
||||
source/rtl/memvars.c
|
||||
source/rtl/pcount.c
|
||||
source/rtl/proc.c
|
||||
source/rtl/pvalue.c
|
||||
+ All these files moved to source/vm/*
|
||||
Now only the functions in VM are using low-level Harbour structures.
|
||||
* makefile.bc
|
||||
makefile.vc (not tested)
|
||||
source/rtl/Makefile
|
||||
source/vm/Makefile
|
||||
* Make files changed according to the RTL->VM moves.
|
||||
|
||||
20000304-08:20 GMT-3 Luiz Rafael Culik <culik@sl.conex.net>
|
||||
*utils/hbdoc/genrtf.prg
|
||||
*source/tools/rtf.prg
|
||||
|
||||
@@ -458,7 +458,7 @@ $(OBJ_DIR)\alert.obj : $(OBJ_DIR)\alert.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\arrays.obj : $(RTL_DIR)\arrays.c
|
||||
$(OBJ_DIR)\arrays.obj : $(VM_DIR)\arrays.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -473,7 +473,7 @@ $(OBJ_DIR)\binnum.obj : $(RTL_DIR)\binnum.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\break.obj : $(RTL_DIR)\break.c
|
||||
$(OBJ_DIR)\break.obj : $(VM_DIR)\break.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -491,7 +491,7 @@ $(OBJ_DIR)\browse.obj : $(OBJ_DIR)\browse.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\classes.obj : $(RTL_DIR)\classes.c
|
||||
$(OBJ_DIR)\classes.obj : $(VM_DIR)\classes.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -499,7 +499,7 @@ $(OBJ_DIR)\cmdarg.obj : $(VM_DIR)\cmdarg.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\codebloc.obj : $(RTL_DIR)\codebloc.c
|
||||
$(OBJ_DIR)\codebloc.obj : $(VM_DIR)\codebloc.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -594,7 +594,7 @@ $(OBJ_DIR)\errorsys.obj : $(OBJ_DIR)\errorsys.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\extend.obj : $(RTL_DIR)\extend.c
|
||||
$(OBJ_DIR)\extend.obj : $(VM_DIR)\extend.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -609,11 +609,11 @@ $(OBJ_DIR)\filesys.obj : $(RTL_DIR)\filesys.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\fm.obj : $(RTL_DIR)\fm.c
|
||||
$(OBJ_DIR)\fm.obj : $(VM_DIR)\fm.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\harbinit.c : $(RTL_DIR)\harbinit.prg
|
||||
$(OBJ_DIR)\harbinit.c : $(VM_DIR)\harbinit.prg
|
||||
$(HARBOUR_EXE) $** -i$(INCLUDE_DIR) -n $(HARBOUR_OPT) -o$@
|
||||
|
||||
$(OBJ_DIR)\harbinit.obj : $(OBJ_DIR)\harbinit.c
|
||||
@@ -628,7 +628,7 @@ $(OBJ_DIR)\hvm.obj : $(VM_DIR)\hvm.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\initexit.obj : $(RTL_DIR)\initexit.c
|
||||
$(OBJ_DIR)\initexit.obj : $(VM_DIR)\initexit.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -651,7 +651,7 @@ $(OBJ_DIR)\isprint.obj : $(RTL_DIR)\isprint.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\itemapi.obj : $(RTL_DIR)\itemapi.c
|
||||
$(OBJ_DIR)\itemapi.obj : $(VM_DIR)\itemapi.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -694,7 +694,7 @@ $(OBJ_DIR)\memvarbl.obj : $(OBJ_DIR)\memvarbl.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\memvars.obj : $(RTL_DIR)\memvars.c
|
||||
$(OBJ_DIR)\memvars.obj : $(VM_DIR)\memvars.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
@@ -748,15 +748,15 @@ $(OBJ_DIR)\oldclear.obj : $(RTL_DIR)\oldclear.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pcount.obj : $(RTL_DIR)\pcount.c
|
||||
$(OBJ_DIR)\pcount.obj : $(VM_DIR)\pcount.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\proc.obj : $(RTL_DIR)\proc.c
|
||||
$(OBJ_DIR)\proc.obj : $(VM_DIR)\proc.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pvalue.obj : $(RTL_DIR)\pvalue.c
|
||||
$(OBJ_DIR)\pvalue.obj : $(VM_DIR)\pvalue.c
|
||||
$(BCC_EXE) $(BCC_OPT) -c -I$(INCLUDE_DIR) -o$@ $**
|
||||
tlib $(HARBOUR_LIB) -+$@,,
|
||||
|
||||
|
||||
@@ -544,7 +544,7 @@ $(OBJ_DIR)\alert.c : $(RTL_DIR)\alert.prg
|
||||
$(OBJ_DIR)\alert.obj : $(OBJ_DIR)\alert.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\arrays.obj : $(RTL_DIR)\arrays.c
|
||||
$(OBJ_DIR)\arrays.obj : $(VM_DIR)\arrays.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\asort.c : $(RTL_DIR)\asort.prg
|
||||
@@ -556,7 +556,7 @@ $(OBJ_DIR)\asort.obj : $(OBJ_DIR)\asort.c
|
||||
$(OBJ_DIR)\binnum.obj : $(RTL_DIR)\binnum.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\break.obj : $(RTL_DIR)\break.c
|
||||
$(OBJ_DIR)\break.obj : $(VM_DIR)\break.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\browdb.c : $(RTL_DIR)\browdb.prg
|
||||
@@ -571,10 +571,10 @@ $(OBJ_DIR)\browse.c : $(RTL_DIR)\browse.prg
|
||||
$(OBJ_DIR)\browse.obj : $(OBJ_DIR)\browse.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\classes.obj : $(RTL_DIR)\classes.c
|
||||
$(OBJ_DIR)\classes.obj : $(VM_DIR)\classes.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\codebloc.obj : $(RTL_DIR)\codebloc.c
|
||||
$(OBJ_DIR)\codebloc.obj : $(VM_DIR)\codebloc.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\console.obj : $(RTL_DIR)\console.c
|
||||
@@ -634,7 +634,7 @@ $(OBJ_DIR)\errorsys.c : $(RTL_DIR)\errorsys.prg
|
||||
$(OBJ_DIR)\errorsys.obj : $(OBJ_DIR)\errorsys.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\extend.obj : $(RTL_DIR)\extend.c
|
||||
$(OBJ_DIR)\extend.obj : $(VM_DIR)\extend.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\fieldbl.c : $(RTL_DIR)\fieldbl.prg
|
||||
@@ -646,7 +646,7 @@ $(OBJ_DIR)\fieldbl.obj : $(OBJ_DIR)\fieldbl.c
|
||||
$(OBJ_DIR)\filesys.obj : $(RTL_DIR)\filesys.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\fm.obj : $(RTL_DIR)\fm.c
|
||||
$(OBJ_DIR)\fm.obj : $(VM_DIR)\fm.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\gtapi.obj : $(RTL_DIR)\gtapi.c
|
||||
@@ -655,7 +655,7 @@ $(OBJ_DIR)\gtapi.obj : $(RTL_DIR)\gtapi.c
|
||||
$(OBJ_DIR)\gtxxx.obj : $(RTL_DIR)\gtxxx.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\harbinit.c : $(RTL_DIR)\harbinit.prg
|
||||
$(OBJ_DIR)\harbinit.c : $(VM_DIR)\harbinit.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$@
|
||||
|
||||
$(OBJ_DIR)\harbinit.obj : $(OBJ_DIR)\harbinit.c
|
||||
@@ -673,7 +673,7 @@ $(OBJ_DIR)\hbfsapi.obj : $(COMMON_DIR)\hbfsapi.c
|
||||
$(OBJ_DIR)\hbstr.obj : $(COMMON_DIR)\hbstr.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\initexit.obj : $(RTL_DIR)\initexit.c
|
||||
$(OBJ_DIR)\initexit.obj : $(VM_DIR)\initexit.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\inkey.obj : $(RTL_DIR)\inkey.c
|
||||
@@ -688,7 +688,7 @@ $(OBJ_DIR)\input.obj : $(OBJ_DIR)\input.c
|
||||
$(OBJ_DIR)\isprint.obj : $(RTL_DIR)\isprint.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\itemapi.obj : $(RTL_DIR)\itemapi.c
|
||||
$(OBJ_DIR)\itemapi.obj : $(VM_DIR)\itemapi.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\langapi.obj : $(RTL_DIR)\langapi.c
|
||||
@@ -712,7 +712,7 @@ $(OBJ_DIR)\memvarbl.c : $(RTL_DIR)\memvarbl.prg
|
||||
$(OBJ_DIR)\memvarbl.obj : $(OBJ_DIR)\memvarbl.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\memvars.obj : $(RTL_DIR)\memvars.c
|
||||
$(OBJ_DIR)\memvars.obj : $(VM_DIR)\memvars.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\menuto.c : $(RTL_DIR)\menuto.prg
|
||||
@@ -760,13 +760,13 @@ $(OBJ_DIR)\oldbox.obj : $(RTL_DIR)\oldbox.c
|
||||
$(OBJ_DIR)\oldclear.obj : $(RTL_DIR)\oldclear.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\pcount.obj : $(RTL_DIR)\pcount.c
|
||||
$(OBJ_DIR)\pcount.obj : $(VM_DIR)\pcount.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\proc.obj : $(RTL_DIR)\proc.c
|
||||
$(OBJ_DIR)\proc.obj : $(VM_DIR)\proc.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\pvalue.obj : $(RTL_DIR)\pvalue.c
|
||||
$(OBJ_DIR)\pvalue.obj : $(VM_DIR)\pvalue.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\readkey.c : $(RTL_DIR)\readkey.prg
|
||||
|
||||
@@ -5,11 +5,7 @@
|
||||
ROOT = ../../
|
||||
|
||||
C_SOURCES=\
|
||||
arrays.c \
|
||||
binnum.c \
|
||||
break.c \
|
||||
classes.c \
|
||||
codebloc.c \
|
||||
console.c \
|
||||
copyfile.c \
|
||||
dates.c \
|
||||
@@ -19,21 +15,16 @@ C_SOURCES=\
|
||||
empty.c \
|
||||
environ.c \
|
||||
errorapi.c \
|
||||
extend.c \
|
||||
filesys.c \
|
||||
fm.c \
|
||||
gtapi.c \
|
||||
hardcr.c \
|
||||
initexit.c \
|
||||
inkey.c \
|
||||
isprint.c \
|
||||
itemapi.c \
|
||||
langapi.c \
|
||||
len.c \
|
||||
math.c \
|
||||
memofile.c \
|
||||
memoline.c \
|
||||
memvars.c \
|
||||
mlcount.c \
|
||||
mlpos.c \
|
||||
mouseapi.c \
|
||||
@@ -43,9 +34,6 @@ C_SOURCES=\
|
||||
oemansi.c \
|
||||
oldbox.c \
|
||||
oldclear.c \
|
||||
pcount.c \
|
||||
proc.c \
|
||||
pvalue.c \
|
||||
samples.c \
|
||||
set.c \
|
||||
setcolor.c \
|
||||
@@ -76,7 +64,6 @@ PRG_SOURCES=\
|
||||
dummy.prg \
|
||||
errorsys.prg \
|
||||
fieldbl.prg \
|
||||
harbinit.prg \
|
||||
input.prg \
|
||||
memvarbl.prg \
|
||||
menuto.prg \
|
||||
|
||||
@@ -40,53 +40,44 @@ HARBOUR HB_EMPTY( void )
|
||||
{
|
||||
PHB_ITEM pItem = hb_param( 1, IT_ANY );
|
||||
|
||||
/* NOTE: Double safety to ensure that a parameter was really passed,
|
||||
compiler checks this, but a direct hb_vmDo() call
|
||||
may not do so. [vszakats] */
|
||||
|
||||
if( pItem )
|
||||
switch( hb_itemType( pItem ) & ~IT_BYREF )
|
||||
{
|
||||
switch( pItem->type & ~IT_BYREF )
|
||||
{
|
||||
case IT_ARRAY:
|
||||
hb_retl( hb_arrayLen( pItem ) == 0 );
|
||||
break;
|
||||
case IT_ARRAY:
|
||||
hb_retl( hb_arrayLen( pItem ) == 0 );
|
||||
break;
|
||||
|
||||
case IT_STRING:
|
||||
case IT_MEMO:
|
||||
hb_retl( hb_strEmpty( hb_itemGetCPtr( pItem ), hb_itemGetCLen( pItem ) ) );
|
||||
break;
|
||||
case IT_STRING:
|
||||
case IT_MEMO:
|
||||
hb_retl( hb_strEmpty( hb_itemGetCPtr( pItem ), hb_itemGetCLen( pItem ) ) );
|
||||
break;
|
||||
|
||||
case IT_INTEGER:
|
||||
hb_retl( hb_itemGetNI( pItem ) == 0 );
|
||||
break;
|
||||
case IT_INTEGER:
|
||||
hb_retl( hb_itemGetNI( pItem ) == 0 );
|
||||
break;
|
||||
|
||||
case IT_LONG:
|
||||
hb_retl( hb_itemGetNL( pItem ) == 0 );
|
||||
break;
|
||||
case IT_LONG:
|
||||
hb_retl( hb_itemGetNL( pItem ) == 0 );
|
||||
break;
|
||||
|
||||
case IT_DOUBLE:
|
||||
hb_retl( hb_itemGetND( pItem ) == 0.0 );
|
||||
break;
|
||||
case IT_DOUBLE:
|
||||
hb_retl( hb_itemGetND( pItem ) == 0.0 );
|
||||
break;
|
||||
|
||||
case IT_DATE:
|
||||
hb_retl( hb_itemGetDL( pItem ) == 0 );
|
||||
break;
|
||||
case IT_DATE:
|
||||
hb_retl( hb_itemGetDL( pItem ) == 0 );
|
||||
break;
|
||||
|
||||
case IT_LOGICAL:
|
||||
hb_retl( ! hb_itemGetL( pItem ) );
|
||||
break;
|
||||
case IT_LOGICAL:
|
||||
hb_retl( ! hb_itemGetL( pItem ) );
|
||||
break;
|
||||
|
||||
case IT_BLOCK:
|
||||
hb_retl( FALSE );
|
||||
break;
|
||||
case IT_BLOCK:
|
||||
hb_retl( FALSE );
|
||||
break;
|
||||
|
||||
default:
|
||||
hb_retl( TRUE );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
hb_retl( TRUE );
|
||||
break;
|
||||
}
|
||||
else
|
||||
hb_retl( TRUE );
|
||||
}
|
||||
|
||||
|
||||
@@ -254,8 +254,8 @@ HARBOUR HB_LTRIM( void )
|
||||
|
||||
if( pText )
|
||||
{
|
||||
ULONG ulLen = pText->item.asString.length;
|
||||
char * szText = hb_strLTrim( pText->item.asString.value, &ulLen );
|
||||
ULONG ulLen = hb_itemGetCLen( pText );
|
||||
char * szText = hb_strLTrim( hb_itemGetCPtr( pText ), &ulLen );
|
||||
|
||||
hb_retclen( szText, ulLen );
|
||||
}
|
||||
@@ -300,8 +300,10 @@ HARBOUR HB_RTRIM( void )
|
||||
|
||||
if( pText )
|
||||
{
|
||||
char * pszText = hb_itemGetCPtr( pText );
|
||||
BOOL bAnySpace = ( ISLOG( 2 ) ? hb_parl( 2 ) : FALSE );
|
||||
hb_retclen( pText->item.asString.value, hb_strRTrimLen( pText->item.asString.value, pText->item.asString.length, bAnySpace ) );
|
||||
|
||||
hb_retclen( pszText, hb_strRTrimLen( pszText, hb_itemGetCLen( pText ), bAnySpace ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -394,7 +396,10 @@ static char * hb_itemPadConv( PHB_ITEM pItem, char * buffer, ULONG * pulSize )
|
||||
}
|
||||
else if( IS_DOUBLE( pItem ) )
|
||||
{
|
||||
sprintf( buffer, "%.*f", pItem->item.asDouble.decimal, hb_itemGetND( pItem ) );
|
||||
int iDecimal;
|
||||
|
||||
hb_itemGetNLen( pItem, NULL, &iDecimal );
|
||||
sprintf( buffer, "%.*f", iDecimal, hb_itemGetND( pItem ) );
|
||||
szText = buffer;
|
||||
*pulSize = strlen( szText );
|
||||
}
|
||||
@@ -550,8 +555,8 @@ HARBOUR HB_AT( void )
|
||||
|
||||
if( pText && pSub )
|
||||
{
|
||||
hb_retnl( hb_strAt( pSub->item.asString.value, pSub->item.asString.length,
|
||||
pText->item.asString.value, pText->item.asString.length ) );
|
||||
hb_retnl( hb_strAt( hb_itemGetCPtr( pSub ), hb_itemGetCLen( pSub ),
|
||||
hb_itemGetCPtr( pText ), hb_itemGetCLen( pText ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -637,8 +642,8 @@ HARBOUR HB_ASC( void )
|
||||
|
||||
if( pText )
|
||||
{
|
||||
if( pText->item.asString.length > 0 )
|
||||
hb_retni( ( BYTE ) * ( pText->item.asString.value ) );
|
||||
if( hb_itemGetCLen( pText ) > 0 )
|
||||
hb_retni( ( BYTE ) * ( hb_itemGetCPtr( pText ) ) );
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
@@ -664,13 +669,13 @@ HARBOUR HB_LEFT( void )
|
||||
{
|
||||
LONG lLen = hb_parnl( 2 );
|
||||
|
||||
if( lLen > ( LONG ) pText->item.asString.length )
|
||||
lLen = ( LONG ) pText->item.asString.length;
|
||||
if( lLen > ( LONG ) hb_itemGetCLen( pText ) )
|
||||
lLen = ( LONG ) hb_itemGetCLen( pText );
|
||||
|
||||
else if( lLen < 0 )
|
||||
lLen = 0;
|
||||
|
||||
hb_retclen( pText->item.asString.value, lLen );
|
||||
hb_retclen( hb_itemGetCPtr( pText ), lLen );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -694,13 +699,13 @@ HARBOUR HB_RIGHT( void )
|
||||
{
|
||||
LONG lLen = hb_parnl( 2 );
|
||||
|
||||
if( lLen > ( LONG ) pText->item.asString.length )
|
||||
lLen = ( LONG ) pText->item.asString.length;
|
||||
if( lLen > ( LONG ) hb_itemGetCLen( pText ) )
|
||||
lLen = ( LONG ) hb_itemGetCLen( pText );
|
||||
|
||||
else if( lLen < 0 )
|
||||
lLen = 0;
|
||||
|
||||
hb_retclen( pText->item.asString.value + pText->item.asString.length - lLen, lLen );
|
||||
hb_retclen( hb_itemGetCPtr( pText ) + hb_itemGetCLen( pText ) - lLen, lLen );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -721,7 +726,7 @@ HARBOUR HB_SUBSTR( void )
|
||||
|
||||
if( lPos < 0 )
|
||||
{
|
||||
lPos += ( LONG ) pText->item.asString.length;
|
||||
lPos += ( LONG ) hb_itemGetCLen( pText );
|
||||
if( lPos < 0 )
|
||||
lPos = 0;
|
||||
}
|
||||
@@ -730,7 +735,7 @@ HARBOUR HB_SUBSTR( void )
|
||||
lPos--;
|
||||
}
|
||||
|
||||
if( lPos < ( LONG ) pText->item.asString.length )
|
||||
if( lPos < ( LONG ) hb_itemGetCLen( pText ) )
|
||||
{
|
||||
LONG lLen;
|
||||
|
||||
@@ -740,8 +745,8 @@ HARBOUR HB_SUBSTR( void )
|
||||
{
|
||||
lLen = hb_parnl( 3 );
|
||||
|
||||
if( lLen > ( LONG ) pText->item.asString.length - lPos )
|
||||
lLen = ( LONG ) pText->item.asString.length - lPos;
|
||||
if( lLen > ( LONG ) hb_itemGetCLen( pText ) - lPos )
|
||||
lLen = ( LONG ) hb_itemGetCLen( pText ) - lPos;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -758,10 +763,10 @@ HARBOUR HB_SUBSTR( void )
|
||||
}
|
||||
}
|
||||
else
|
||||
lLen = ( LONG ) pText->item.asString.length - lPos;
|
||||
lLen = ( LONG ) hb_itemGetCLen( pText ) - lPos;
|
||||
|
||||
if( lLen > 0 )
|
||||
hb_retclen( pText->item.asString.value + lPos, lLen );
|
||||
hb_retclen( hb_itemGetCPtr( pText ) + lPos, lLen );
|
||||
else
|
||||
hb_retc( "" );
|
||||
}
|
||||
@@ -1021,11 +1026,13 @@ HARBOUR HB_STRTRAN( void )
|
||||
|
||||
if( pSeek )
|
||||
{
|
||||
char * szText = pText->item.asString.value;
|
||||
char * szText = hb_itemGetCPtr( pText );
|
||||
ULONG ulText = hb_itemGetCLen( pText );
|
||||
ULONG ulSeek = hb_itemGetCLen( pSeek );
|
||||
|
||||
if( pSeek->item.asString.length && pSeek->item.asString.length <= pText->item.asString.length )
|
||||
if( ulSeek && ulSeek <= ulText )
|
||||
{
|
||||
char * szSeek = pSeek->item.asString.value;
|
||||
char * szSeek = hb_itemGetCPtr( pSeek );
|
||||
char * szReplace;
|
||||
ULONG ulStart;
|
||||
|
||||
@@ -1045,8 +1052,8 @@ HARBOUR HB_STRTRAN( void )
|
||||
|
||||
if( pReplace )
|
||||
{
|
||||
szReplace = pReplace->item.asString.value;
|
||||
ulReplace = pReplace->item.asString.length;
|
||||
szReplace = hb_itemGetCPtr( pReplace );
|
||||
ulReplace = hb_itemGetCLen( pReplace );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1070,18 +1077,18 @@ HARBOUR HB_STRTRAN( void )
|
||||
ULONG ulFound = 0;
|
||||
LONG lReplaced = 0;
|
||||
ULONG i = 0;
|
||||
ULONG ulLength = pText->item.asString.length;
|
||||
ULONG ulLength = ulText;
|
||||
|
||||
while( i < pText->item.asString.length )
|
||||
while( i < ulText )
|
||||
{
|
||||
if( ( bAll || lReplaced < ( LONG ) ulCount ) && ! memcmp( szText + i, szSeek, pSeek->item.asString.length ) )
|
||||
if( ( bAll || lReplaced < ( LONG ) ulCount ) && ! memcmp( szText + i, szSeek, ulSeek ) )
|
||||
{
|
||||
ulFound++;
|
||||
if( ulFound >= ulStart )
|
||||
{
|
||||
lReplaced++;
|
||||
ulLength = ulLength - pSeek->item.asString.length + ulReplace;
|
||||
i += pSeek->item.asString.length;
|
||||
ulLength = ulLength - ulSeek + ulReplace;
|
||||
i += ulSeek;
|
||||
}
|
||||
else
|
||||
i++;
|
||||
@@ -1097,9 +1104,9 @@ HARBOUR HB_STRTRAN( void )
|
||||
|
||||
ulFound = 0;
|
||||
i = 0;
|
||||
while( i < pText->item.asString.length )
|
||||
while( i < ulText )
|
||||
{
|
||||
if( lReplaced && ! memcmp( szText + i, szSeek, pSeek->item.asString.length ) )
|
||||
if( lReplaced && ! memcmp( szText + i, szSeek, ulSeek ) )
|
||||
{
|
||||
ulFound++;
|
||||
if( ulFound >= ulStart )
|
||||
@@ -1107,7 +1114,7 @@ HARBOUR HB_STRTRAN( void )
|
||||
lReplaced--;
|
||||
memcpy( szPtr, szReplace, ulReplace );
|
||||
szPtr += ulReplace;
|
||||
i += pSeek->item.asString.length;
|
||||
i += ulSeek;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1127,16 +1134,16 @@ HARBOUR HB_STRTRAN( void )
|
||||
hb_xfree( szResult );
|
||||
}
|
||||
else
|
||||
hb_retclen( szText, pText->item.asString.length );
|
||||
}
|
||||
hb_retclen( szText, ulText );
|
||||
}
|
||||
else
|
||||
hb_retclen( szText, pText->item.asString.length );
|
||||
hb_retclen( szText, ulText );
|
||||
}
|
||||
else
|
||||
hb_retclen( szText, pText->item.asString.length );
|
||||
hb_retclen( szText, ulText );
|
||||
}
|
||||
else
|
||||
hb_retclen( szText, pText->item.asString.length );
|
||||
hb_retclen( szText, ulText );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1178,20 +1185,20 @@ HARBOUR HB_VAL( void )
|
||||
{
|
||||
int iWidth;
|
||||
int iDec;
|
||||
char * ptr = strchr( pText->item.asString.value, '.' );
|
||||
char * ptr = strchr( hb_itemGetCPtr( pText ), '.' );
|
||||
|
||||
if( ptr )
|
||||
{
|
||||
iWidth = ptr - pText->item.asString.value;
|
||||
iWidth = ptr - hb_itemGetCPtr( pText );
|
||||
iDec = strlen( ptr + 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
iWidth = strlen( pText->item.asString.value );
|
||||
iWidth = strlen( hb_itemGetCPtr( pText ) );
|
||||
iDec = 0;
|
||||
}
|
||||
|
||||
hb_retndlen( hb_strVal( pText->item.asString.value ), iWidth, iDec );
|
||||
hb_retndlen( hb_strVal( hb_itemGetCPtr( pText ) ), iWidth, iDec );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -34,61 +34,41 @@
|
||||
*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
|
||||
char * hb_valtypeGet( HB_ITEM_PTR pItem )
|
||||
{
|
||||
char * szType;
|
||||
|
||||
switch( pItem->type & ~IT_BYREF )
|
||||
switch( hb_itemType( pItem ) & ~IT_BYREF )
|
||||
{
|
||||
case IT_ARRAY:
|
||||
szType = ( hb_arrayIsObject( pItem ) ? "O" : "A" );
|
||||
break;
|
||||
return ( hb_arrayIsObject( pItem ) ? "O" : "A" );
|
||||
|
||||
case IT_BLOCK:
|
||||
szType = "B";
|
||||
break;
|
||||
return "B";
|
||||
|
||||
case IT_DATE:
|
||||
szType = "D";
|
||||
break;
|
||||
return "D";
|
||||
|
||||
case IT_LOGICAL:
|
||||
szType = "L";
|
||||
break;
|
||||
return "L";
|
||||
|
||||
case IT_INTEGER:
|
||||
case IT_LONG:
|
||||
case IT_DOUBLE:
|
||||
szType = "N";
|
||||
break;
|
||||
return "N";
|
||||
|
||||
case IT_STRING:
|
||||
szType = "C";
|
||||
break;
|
||||
return "C";
|
||||
|
||||
case IT_MEMO:
|
||||
szType = "M";
|
||||
break;
|
||||
|
||||
default:
|
||||
szType = "U";
|
||||
break;
|
||||
return "M";
|
||||
}
|
||||
return szType;
|
||||
|
||||
return "U";
|
||||
}
|
||||
|
||||
HARBOUR HB_VALTYPE( void )
|
||||
{
|
||||
PHB_ITEM pItem = hb_param( 1, IT_ANY );
|
||||
|
||||
/* NOTE: Double safety to ensure that a parameter was really passed,
|
||||
compiler checks this, but a direct hb_vmDo() call
|
||||
may not do so. [vszakats] */
|
||||
|
||||
if( pItem )
|
||||
hb_retc( hb_valtypeGet( pItem ) );
|
||||
else
|
||||
hb_retc( "U" );
|
||||
hb_retc( hb_valtypeGet( hb_param( 1, IT_ANY ) ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,27 @@
|
||||
ROOT = ../../
|
||||
|
||||
C_SOURCES=\
|
||||
cmdarg.c \
|
||||
debug.c \
|
||||
dynsym.c \
|
||||
hvm.c \
|
||||
initsymb.c \
|
||||
main.c \
|
||||
arrays.c \
|
||||
break.c \
|
||||
classes.c \
|
||||
cmdarg.c \
|
||||
debug.c \
|
||||
dynsym.c \
|
||||
codebloc.c \
|
||||
extend.c \
|
||||
fm.c \
|
||||
hvm.c \
|
||||
initexit.c \
|
||||
initsymb.c \
|
||||
itemapi.c \
|
||||
main.c \
|
||||
memvars.c \
|
||||
pcount.c \
|
||||
proc.c \
|
||||
pvalue.c \
|
||||
|
||||
PRG_SOURCES=\
|
||||
harbinit.prg \
|
||||
|
||||
LIBNAME=vm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user