*** empty log message ***
This commit is contained in:
@@ -1,3 +1,34 @@
|
||||
Thu May 06 22:45:00 1999 Victor Szel <info@szelvesz.hu>
|
||||
|
||||
! source/rtl/dates.c:
|
||||
Fix to STOD(), added error checking to DTOS(), the later can be
|
||||
disabled to make it faster.
|
||||
* source/vm/hvm.c, include/extend.h:
|
||||
strempty() -> hb_strempty(), declaration moved to .h
|
||||
% source/rtl/strings.c:
|
||||
hb_strempty() speed optimalization, cleanup.
|
||||
* source/vm/dynsym.c:
|
||||
OurStrUpr() -> hb_strupr()
|
||||
_strgreater -> hb_strgreater()
|
||||
* source/rtl/console.c:
|
||||
_outstd() -> hb_outstd()
|
||||
* source/tools/stringsx.c:
|
||||
StrToken() -> hb_strtoken()
|
||||
* source/rtl/strings.c:
|
||||
LTrim() -> hb_LTrim()
|
||||
RTrimLen() -> hb_RTrimLen()
|
||||
Lower() -> hb_Lower()
|
||||
Upper() -> hb_Upper()
|
||||
At() -> hb_At()
|
||||
Val() -> hb_Val()
|
||||
* source/vm/hvm.c, source/rtl/array.c, source/rtl/strcmp.c,
|
||||
include/extend.h
|
||||
OurStrCmp() -> hb_itemStrCmp()
|
||||
* source/rtl/*.c, source/include/extend.h
|
||||
julian2greg() -> hb_julian2greg()
|
||||
greg2julian() -> hb_greg2julian()
|
||||
Declaration moved to extend.h
|
||||
|
||||
Thu May 06 13:58:48 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
|
||||
|
||||
* source/vm/hvm.c:
|
||||
|
||||
@@ -150,7 +150,10 @@ void ArrayRelease( PITEM pArray ); /* releases an array - don't call it - use It
|
||||
char * ArrayGetString( PITEM pArray, ULONG ulIndex ); /* retrieves the string contained on an array element */
|
||||
ULONG ArrayGetStringLen( PITEM pArray, ULONG ulIndex ); /* retrieves the string length contained on an array element */
|
||||
|
||||
int OurStrCmp( PITEM pFirst, PITEM pSecond ); /* our string compare */
|
||||
int hb_itemStrCmp( PITEM pFirst, PITEM pSecond ); /* our string compare */
|
||||
BOOL hb_strempty( char * szText, ULONG ulLen );
|
||||
long hb_greg2julian( long lDay, long lMonth, long lYear );
|
||||
void hb_julian2greg( long julian, long * plDay, long * plMonth, long * plYear );
|
||||
|
||||
HARBOURFUNC GetMethod( PITEM pObject, PSYMBOL pSymMsg ); /* returns the method pointer of a object class */
|
||||
char * _GetClassName( PITEM pObject ); /* retrieves an object class name */
|
||||
|
||||
@@ -316,7 +316,7 @@ int ArrayScan( PITEM pArray, PITEM pValue, ULONG ulStart, ULONG ulCount )
|
||||
break;
|
||||
|
||||
case IT_STRING :
|
||||
iRet = ( OurStrCmp( pValue, pItem ) == 0 );
|
||||
iRet = ( hb_itemStrCmp( pValue, pItem ) == 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ HARBOUR __ACCEPT( void ) /* Internal Clipper function used in ACCEPT command */
|
||||
_xfree( szResult );
|
||||
}
|
||||
|
||||
static void _outstd( WORD wParam )
|
||||
static void hb_outstd( WORD wParam )
|
||||
{
|
||||
char * szText;
|
||||
ULONG ulLenText;
|
||||
@@ -89,7 +89,7 @@ HARBOUR OUTSTD( void ) /* writes a list of values to the standard output device
|
||||
|
||||
for( w = 0; w < _pcount(); w++ )
|
||||
{
|
||||
_outstd( w + 1 );
|
||||
hb_outstd( w + 1 );
|
||||
if( w < _pcount() - 1) printf( " " );
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,7 @@ HARBOUR QQOUT( void )
|
||||
|
||||
for( w = 0; w < _pcount(); w++ )
|
||||
{
|
||||
_outstd( w + 1 );
|
||||
hb_outstd( w + 1 );
|
||||
if( w < _pcount() - 1) printf( " " );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
|
||||
long greg2julian( long lDay, long lMonth, long lYear )
|
||||
#ifndef _STRICT_CLIPPER_COMPATIBILITY
|
||||
#define _OPTIMIZE_DTOS
|
||||
#endif
|
||||
|
||||
long hb_greg2julian( long lDay, long lMonth, long lYear )
|
||||
{
|
||||
long lFactor = ( lMonth < 3 ) ? -1: 0;
|
||||
|
||||
@@ -17,7 +21,7 @@ long greg2julian( long lDay, long lMonth, long lYear )
|
||||
lDay - 32075;
|
||||
}
|
||||
|
||||
void julian2greg( long julian, long * plDay, long * plMonth, long * plYear )
|
||||
void hb_julian2greg( long julian, long * plDay, long * plMonth, long * plYear )
|
||||
{
|
||||
long U, V, W, X;
|
||||
|
||||
@@ -249,14 +253,43 @@ HARBOUR DTOC( void )
|
||||
_retc( hb_dtoc (szDate, szDateFormat) );
|
||||
}
|
||||
|
||||
/* QUESTION: Should we drop error checkings to make it faster ? */
|
||||
/* This function may be called many times in a real world */
|
||||
/* application, for example in index creation. */
|
||||
/* Clipper does these checks, anyway. */
|
||||
HARBOUR DTOS( void )
|
||||
{
|
||||
_retc( _pards( 1 ) );
|
||||
#ifndef _OPTIMIZE_DTOS
|
||||
if( _pcount() == 1 )
|
||||
{
|
||||
if( ISDATE( 1 ) )
|
||||
{
|
||||
#endif
|
||||
_retc( _pards( 1 ) );
|
||||
#ifndef _OPTIMIZE_DTOS
|
||||
}
|
||||
else
|
||||
{
|
||||
PITEM pError = _errNew();
|
||||
_errPutDescription(pError, "Argument error: DTOS");
|
||||
_errLaunch(pError);
|
||||
_errRelease(pError);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
PITEM pError = _errNew();
|
||||
_errPutDescription(pError, "Incorrect number of arguments: DTOS");
|
||||
_errLaunch(pError);
|
||||
_errRelease(pError);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
HARBOUR STOD( void )
|
||||
{
|
||||
_retds( _parc( 1 ) );
|
||||
_retds((ISCHAR(1) && _parclen(1) == 8) ? _parc(1) : " ");
|
||||
}
|
||||
|
||||
HARBOUR DAY( void )
|
||||
@@ -266,7 +299,7 @@ HARBOUR DAY( void )
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
hb_julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
_retni( lDay );
|
||||
}
|
||||
else
|
||||
@@ -284,7 +317,7 @@ HARBOUR MONTH( void )
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
hb_julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
_retni( lMonth );
|
||||
}
|
||||
else
|
||||
@@ -302,7 +335,7 @@ HARBOUR YEAR( void )
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
hb_julian2greg( pDate->value.lDate, &lDay, &lMonth, &lYear );
|
||||
_retni( lYear );
|
||||
}
|
||||
else
|
||||
|
||||
@@ -6,13 +6,12 @@
|
||||
#include <stdlib.h>
|
||||
#include <extend.h>
|
||||
|
||||
long greg2julian( long lDay, long lMonth, long lYear );
|
||||
void julian2greg( long julian, long * plDay, long * plMonth, long * plYear );
|
||||
|
||||
extern STACK stack;
|
||||
|
||||
ULONG ulMemoryBlocks = 0, ulMemoryMaxBlocks = 0, ulMemoryMaxConsumed = 0,
|
||||
ulMemoryConsumed = 0;
|
||||
ULONG ulMemoryBlocks = 0;
|
||||
ULONG ulMemoryMaxBlocks = 0;
|
||||
ULONG ulMemoryMaxConsumed = 0;
|
||||
ULONG ulMemoryConsumed = 0;
|
||||
|
||||
PITEM _param( WORD wParam, WORD wMask )
|
||||
{
|
||||
@@ -109,7 +108,7 @@ char * _pards( WORD wParam, ... )
|
||||
|
||||
else if( IS_DATE( pItem ) )
|
||||
{
|
||||
julian2greg( pItem->value.lDate, &lDay, &lMonth, &lYear );
|
||||
hb_julian2greg( pItem->value.lDate, &lDay, &lMonth, &lYear );
|
||||
|
||||
stack.szDate[ 0 ] = ( lYear / 1000 ) + '0';
|
||||
stack.szDate[ 1 ] = ( ( lYear % 1000 ) / 100 ) + '0';
|
||||
@@ -322,7 +321,7 @@ void _retds( char * szDate ) /* szDate must have yyyymmdd format */
|
||||
/* QUESTION: Is this ok ? we are going to use a long to store the date */
|
||||
/* QUESTION: What happens if we use sizeof( LONG ) instead ? */
|
||||
/* QUESTION: Would it break Clipper language code ? */
|
||||
stack.Return.value.lDate = greg2julian( lDay, lMonth, lYear );
|
||||
stack.Return.value.lDate = hb_greg2julian( lDay, lMonth, lYear );
|
||||
}
|
||||
|
||||
void _retnd( double dNumber )
|
||||
@@ -449,7 +448,7 @@ void _stords( char * szDate, WORD wParam, ... ) /* szDate must have yyyymmdd for
|
||||
pItemRef = stack.pItems + pItem->value.wItem;
|
||||
ItemRelease( pItemRef );
|
||||
pItemRef->wType = IT_DATE;
|
||||
pItemRef->value.lDate = greg2julian( lDay, lMonth, lYear );
|
||||
pItemRef->value.lDate = hb_greg2julian( lDay, lMonth, lYear );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,10 +9,6 @@
|
||||
extern STACK stack;
|
||||
extern PSYMBOL symEval;
|
||||
|
||||
/* TODO: Someone make a dates.h so this isn't necessary! */
|
||||
long greg2julian( long lDay, long lMonth, long lYear );
|
||||
extern void julian2greg( long julian, long * plDay, long * plMonth, long * plYear );
|
||||
|
||||
BOOL _evalNew( PEVALINFO pEvalInfo, PITEM pItem )
|
||||
{
|
||||
BOOL bResult = FALSE;
|
||||
@@ -228,7 +224,7 @@ char *_itemGetDS( PITEM pItem, char *szDate )
|
||||
if( pItem && IS_DATE(pItem) )
|
||||
{
|
||||
long lDay, lMonth, lYear;
|
||||
julian2greg(pItem->value.lDate, &lDay, &lMonth, &lYear);
|
||||
hb_julian2greg(pItem->value.lDate, &lDay, &lMonth, &lYear);
|
||||
|
||||
szDate[ 0 ] = ( lYear / 1000 ) + '0';
|
||||
szDate[ 1 ] = ( ( lYear % 1000 ) / 100 ) + '0';
|
||||
@@ -318,7 +314,7 @@ PITEM _itemPutDS( PITEM pItem, char *szDate )
|
||||
/* QUESTION: Is this ok ? we are going to use a long to store the date */
|
||||
/* QUESTION: What happens if we use sizeof( LONG ) instead ? */
|
||||
/* QUESTION: Would it break Clipper language code ? */
|
||||
pItem->value.lDate = greg2julian(lDay, lMonth, lYear);
|
||||
pItem->value.lDate = hb_greg2julian(lDay, lMonth, lYear);
|
||||
|
||||
return pItem;
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
#include <extend.h>
|
||||
|
||||
int OurStrCmp( PITEM pFirst, PITEM pSecond ) /* Check whether two strings
|
||||
are equal (0), smaller (-1),
|
||||
or greater (1) */
|
||||
int hb_itemStrCmp( PITEM pFirst, PITEM pSecond ) /* Check whether two strings
|
||||
are equal (0), smaller (-1),
|
||||
or greater (1) */
|
||||
{
|
||||
char *szFirst = pFirst->value.szText;
|
||||
char *szSecond = pSecond->value.szText;
|
||||
|
||||
@@ -9,18 +9,22 @@
|
||||
|
||||
#define HB_ISSPACE(c) ((c) == 9 || (c) == 10 || (c) == 13 || (c) == 32)
|
||||
|
||||
BOOL strempty( char * szText, long lLen )
|
||||
BOOL hb_strempty( char * szText, ULONG ulLen )
|
||||
{
|
||||
BOOL bStillEmpty = TRUE;
|
||||
char c;
|
||||
BOOL bRetVal = TRUE;
|
||||
|
||||
while( bStillEmpty && lLen-- ) /* Still blanks ? */
|
||||
while( ulLen-- )
|
||||
{
|
||||
c = *szText++;
|
||||
if( !HB_ISSPACE(c) )
|
||||
bStillEmpty = FALSE;
|
||||
char c = szText[ulLen];
|
||||
|
||||
if( !HB_ISSPACE( c ) )
|
||||
{
|
||||
bRetVal = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return bStillEmpty;
|
||||
|
||||
return bRetVal;
|
||||
}
|
||||
|
||||
/* determines if first char of string is letter */
|
||||
@@ -57,7 +61,7 @@ HARBOUR ISLOWER( void )
|
||||
|
||||
/* trims from the left, and returns a new pointer to szText */
|
||||
/* also returns the new length in lLen */
|
||||
char *LTrim( char *szText, long *lLen )
|
||||
char *hb_LTrim( char *szText, long *lLen )
|
||||
{
|
||||
while( *lLen && HB_ISSPACE(*szText) )
|
||||
{
|
||||
@@ -78,7 +82,7 @@ HARBOUR LTRIM( void )
|
||||
if( pText )
|
||||
{
|
||||
long lLen = pText->wLength;
|
||||
char *szText = LTrim(pText->value.szText, &lLen);
|
||||
char *szText = hb_LTrim(pText->value.szText, &lLen);
|
||||
|
||||
_retclen(szText, lLen);
|
||||
}
|
||||
@@ -101,7 +105,7 @@ HARBOUR LTRIM( void )
|
||||
}
|
||||
|
||||
/* returns szText and the new length in lLen */
|
||||
long RTrimLen( char *szText, long lLen )
|
||||
long hb_RTrimLen( char *szText, long lLen )
|
||||
{
|
||||
while( lLen && szText[lLen - 1] == ' ' )
|
||||
lLen--;
|
||||
@@ -116,7 +120,7 @@ HARBOUR RTRIM( void )
|
||||
{
|
||||
PITEM pText = _param(1, IT_STRING);
|
||||
if( pText )
|
||||
_retclen(pText->value.szText, RTrimLen(pText->value.szText, pText->wLength));
|
||||
_retclen(pText->value.szText, hb_RTrimLen(pText->value.szText, pText->wLength));
|
||||
else
|
||||
/* Clipper doesn't error */
|
||||
_retc("");
|
||||
@@ -144,9 +148,9 @@ HARBOUR ALLTRIM( void )
|
||||
if( _pcount() > 0 )
|
||||
{
|
||||
char *szText = _parc(1);
|
||||
long lLen = RTrimLen(szText, _parclen(1));
|
||||
long lLen = hb_RTrimLen(szText, _parclen(1));
|
||||
|
||||
szText = LTrim(szText, &lLen);
|
||||
szText = hb_LTrim(szText, &lLen);
|
||||
|
||||
_retclen(szText, lLen);
|
||||
}
|
||||
@@ -272,7 +276,7 @@ HARBOUR PADC( void )
|
||||
_retc("");
|
||||
}
|
||||
|
||||
ULONG At(char *szSub, long lSubLen, char *szText, long lLen)
|
||||
ULONG hb_At(char *szSub, long lSubLen, char *szText, long lLen)
|
||||
{
|
||||
if( lSubLen )
|
||||
{
|
||||
@@ -312,7 +316,7 @@ HARBOUR AT( void )
|
||||
{
|
||||
if( pText->wType == IT_STRING && pSub->wType == IT_STRING )
|
||||
{
|
||||
_retnl( At(pSub->value.szText, pSub->wLength, pText->value.szText, pText->wLength) );
|
||||
_retnl( hb_At(pSub->value.szText, pSub->wLength, pText->value.szText, pText->wLength) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -592,7 +596,7 @@ HARBOUR SUBSTR( void )
|
||||
}
|
||||
|
||||
/* converts szText to lower case. Does not create a new string! */
|
||||
char *Lower(char *szText, long lLen)
|
||||
char *hb_Lower(char *szText, long lLen)
|
||||
{
|
||||
long i;
|
||||
for( i = 0; i < lLen; i++ )
|
||||
@@ -611,7 +615,7 @@ HARBOUR LOWER( void )
|
||||
{
|
||||
long lLen = pText->wLength;
|
||||
|
||||
_retclen(Lower(pText->value.szText, lLen), lLen);
|
||||
_retclen(hb_Lower(pText->value.szText, lLen), lLen);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -632,7 +636,7 @@ HARBOUR LOWER( void )
|
||||
}
|
||||
|
||||
/* converts szText to upper case. Does not create a new string! */
|
||||
char *Upper(char *szText, long lLen)
|
||||
char *hb_Upper(char *szText, long lLen)
|
||||
{
|
||||
long i;
|
||||
for( i = 0; i < lLen; i++ )
|
||||
@@ -651,7 +655,7 @@ HARBOUR UPPER( void )
|
||||
{
|
||||
long lLen = pText->wLength;
|
||||
|
||||
_retclen(Upper(pText->value.szText, lLen), lLen);
|
||||
_retclen(hb_Upper(pText->value.szText, lLen), lLen);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -956,7 +960,7 @@ HARBOUR STRTRAN( void )
|
||||
}
|
||||
|
||||
/* returns an integer value of "numerical string" */
|
||||
double Val( char *szText )
|
||||
double hb_Val( char *szText )
|
||||
{
|
||||
return atof(szText);
|
||||
}
|
||||
@@ -969,7 +973,7 @@ HARBOUR VAL( void )
|
||||
PITEM pText = _param(1, IT_STRING);
|
||||
|
||||
if( pText )
|
||||
_retnd(Val(pText->value.szText));
|
||||
_retnd(hb_Val(pText->value.szText));
|
||||
else
|
||||
{
|
||||
PITEM pError = _errNew();
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
extern STACK stack;
|
||||
|
||||
void julian2greg(long, long*, long*, long*); /* TOFIX: Should go away */
|
||||
void StackPop( void ); /* TOFIX: Should go away */
|
||||
|
||||
/* Function flags */
|
||||
@@ -382,7 +381,7 @@ char *DatePicture( long lDate, int iPicFlags, long *lRetSize )
|
||||
else
|
||||
{
|
||||
iPicFlags |= PF_ZERO; /* Pad with zeros */
|
||||
julian2greg( lDate, &lDay, &lMonth, &lYear );
|
||||
hb_julian2greg( lDate, &lDay, &lMonth, &lYear );
|
||||
/* Calculate d/m/y */
|
||||
}
|
||||
iLenPic = strlen( szDateFormat );
|
||||
|
||||
@@ -17,7 +17,7 @@ HARBOUR STRDUMP( void )
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
char *StrToken(char *szText, long lText, long lIndex, char cDelimiter, long *lLen)
|
||||
char *hb_strtoken(char *szText, long lText, long lIndex, char cDelimiter, long *lLen)
|
||||
{
|
||||
long wStart, wEnd = 0, wCounter = 0;
|
||||
|
||||
@@ -70,7 +70,7 @@ HARBOUR STRTOKEN( void )
|
||||
if( !cDelimiter )
|
||||
cDelimiter = ' ';
|
||||
|
||||
szText = StrToken(_parc(1), _parclen(1), lIndex, cDelimiter, &lLen);
|
||||
szText = hb_strtoken(_parc(1), _parclen(1), lIndex, cDelimiter, &lLen);
|
||||
|
||||
_stornl(lLen, 4);
|
||||
_retclen(szText, lLen);
|
||||
|
||||
@@ -36,7 +36,7 @@ void LogSymbols( void )
|
||||
#define LEFT_GREATER 1
|
||||
#define SYM_EQUAL 0
|
||||
|
||||
static WORD _strgreater( char * sz1, char * sz2 )
|
||||
static WORD hb_strgreater( char * sz1, char * sz2 )
|
||||
{
|
||||
/* Values returned : SYM_EQUAL, LEFT_GREATER, RIGHT_GREATER */
|
||||
|
||||
@@ -112,7 +112,7 @@ PDYNSYM NewDynSym( PSYMBOL pSymbol ) /* creates a new dynamic symbol */
|
||||
return pDynSym;
|
||||
}
|
||||
|
||||
static void OurStrUpr( char * szText )
|
||||
static void hb_strupr( char * szText )
|
||||
{
|
||||
char *p;
|
||||
|
||||
@@ -126,7 +126,7 @@ PDYNSYM GetDynSym( char * szName ) /* finds and creates a symbol if not found *
|
||||
char * szUprName = ( char * ) _xgrab( strlen( szName ) + 1 );
|
||||
|
||||
strcpy( szUprName, szName ); /* make a copy as we may get a const string */
|
||||
OurStrUpr( szUprName ); /* turn it uppercase */
|
||||
hb_strupr( szUprName ); /* turn it uppercase */
|
||||
|
||||
/* if( strlen( szUprName ) > 10 )
|
||||
szUprName[ 10 ] = 0; keeps this here for 10 chars /c compatibility mode */
|
||||
@@ -176,7 +176,7 @@ PDYNSYM FindDynSym( char * szName )
|
||||
|
||||
while( wFirst < wLast )
|
||||
{
|
||||
switch( _strgreater( pDynItems[ wMiddle ].pDynSym->pSymbol->szName, szName ) )
|
||||
switch( hb_strgreater( pDynItems[ wMiddle ].pDynSym->pSymbol->szName, szName ) )
|
||||
{
|
||||
case SYM_EQUAL: /* they are equals */
|
||||
return pDynItems[ wMiddle ].pDynSym;
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
#include <pcode.h>
|
||||
#include <set.h>
|
||||
|
||||
BOOL strempty( char * szText, long lLen );
|
||||
|
||||
HARBOUR ERRORSYS( void );
|
||||
HARBOUR ERRORNEW( void );
|
||||
HARBOUR EVAL( void ); /* Evaluates a codeblock from Harbour */
|
||||
@@ -751,7 +749,7 @@ void Equal( void )
|
||||
|
||||
else if( IS_STRING( pItem1 ) && IS_STRING( pItem2 ) )
|
||||
{
|
||||
i = OurStrCmp( pItem1, pItem2 );
|
||||
i = hb_itemStrCmp( pItem1, pItem2 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i == 0 );
|
||||
@@ -859,7 +857,7 @@ void Greater( void )
|
||||
|
||||
if( IS_STRING( stack.pPos - 2 ) && IS_STRING( stack.pPos - 1 ) )
|
||||
{
|
||||
i = OurStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
i = hb_itemStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i > 0 );
|
||||
@@ -894,7 +892,7 @@ void GreaterEqual( void )
|
||||
|
||||
if( IS_STRING( stack.pPos - 2 ) && IS_STRING( stack.pPos - 1 ) )
|
||||
{
|
||||
i = OurStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
i = hb_itemStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i >= 0 );
|
||||
@@ -1004,7 +1002,7 @@ void Less( void )
|
||||
|
||||
if( IS_STRING( stack.pPos - 2 ) && IS_STRING( stack.pPos - 1 ) )
|
||||
{
|
||||
i = OurStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
i = hb_itemStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i < 0 );
|
||||
@@ -1039,7 +1037,7 @@ void LessEqual( void )
|
||||
|
||||
if( IS_STRING( stack.pPos - 2 ) && IS_STRING( stack.pPos - 1 ) )
|
||||
{
|
||||
i = OurStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
i = hb_itemStrCmp( stack.pPos - 2, stack.pPos - 1 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i <= 0 );
|
||||
@@ -1127,7 +1125,7 @@ void NotEqual( void )
|
||||
|
||||
else if( IS_STRING( pItem1 ) && IS_STRING( pItem2 ) )
|
||||
{
|
||||
i = OurStrCmp( pItem1, pItem2 );
|
||||
i = hb_itemStrCmp( pItem1, pItem2 );
|
||||
StackPop();
|
||||
StackPop();
|
||||
PushLogical( i != 0 );
|
||||
@@ -1853,7 +1851,7 @@ HARBOUR EMPTY()
|
||||
break;
|
||||
|
||||
case IT_STRING:
|
||||
_retl( strempty( _parc( 1 ), _parclen( 1 ) ) );
|
||||
_retl( hb_strempty( _parc( 1 ), _parclen( 1 ) ) );
|
||||
break;
|
||||
|
||||
case IT_NUMERIC:
|
||||
|
||||
Reference in New Issue
Block a user