2007-10-01 19:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/source/rtl/errorapi.c
    + added protection against possible GPF when some assign methods
      were called without parameters

  * harbour/source/rdd/workarea.c
    * initialize uiFalgs also when DBS_FLAGS is not set

  * harbour/contrib/bmdbfcdx/bmdbfcdx1.c
    * fixed hb_cdxSkipFilter() declaration - it should be 'static' function

  * harbour/source/pp/ppcore.c
  * harbour/source/compiler/ppcomp.c
    + added support for changing all -k? switches by #pragma, f.e.;
         #pragma -ks+
         #pragma -kM-
         #pragma -kx1
         #pragma -kJ0

  * harbour/source/compiler/hbusage.c
    * changed -ks description

  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
    * do not generate error message for negative indexes and
      [] operators are used for simple types when -ks option
      is used

  * harbour/include/hbvmpub.h
  * harbour/include/hbapi.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/memvars.c
    + added HB_IT_DEFAULT flags - it allows to check if item was changed

  * harbour/source/vm/memvars.c
  * harbour/include/hbvm.h
    ! fixed HB_IT_MEMOFLAG updating to be Clipper compatible. Here we are
      not Clipper compatible in one place: in clodeblock local parameters
      with memo values are marked as MEMO but if you leave function where
      codeblock were created then Clipper during detaching removes MEMO
      flag. In Harbour memo flag is kept.

  * harbour/include/hbvm.h
  * harbour/source/vm/classes.c
  * harbour/source/vm/hvm.c
    % improved speed of extended references used for SETGET methods
      and overloaded [] operators

  * harbour/include/hbapi.h
  * harbour/include/hbsetup.ch
  * harbour/source/compiler/hbcomp.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/cmdarg.c
    * removed HB_COMPAT_XHB flags - only one HB_COMPAT_XHB still exist
      in HVM in hashes.c - it will be removed soon.

  * harbour/source/common/hbverdsp.c
    * removed information about xHarbour compatibility mode - it's not
      longer used. We are emulating xHarbour behavior using external
      XHB library and standard compiler/HVM features

  * harbour/contrib/xhb/xhb.ch
  * harbour/contrib/xhb/xhbfunc.c
  * harbour/source/vm/arrayshb.c
    * moved XHB_AINS(), XHB_ADEL() from XHB lib to HVM as HB_AINS(), HB_ADEL()

  * harbour/contrib/xhb/xhb.ch
    + added #pragma -ks+
    + added transaltion for hb_enumindex( <enumvar> )

  + harbour/contrib/xhb/xhbenum.c
    + added emulation for HB_EUMMINDEX()

  * harbour/contrib/xhb/xhbfunc.c
    * do not add INET*() function wrappers for DOS builds or when
      HB_NO_DEFAULT_INET macro is set

  * harbour/contrib/xhb/xhbmsgs.c
    * added comment

  * harbour/contrib/Makefile
    + added TIP and XHB

  * harbour/make_rpm.sh
  * harbour/harbour.spec
    * removed HB_COMPAT_XHB, --with tip, --with xhb
      they are not longer necessary
This commit is contained in:
Przemyslaw Czerpak
2007-10-01 17:43:52 +00:00
parent 556261c165
commit b5d010fbeb
31 changed files with 636 additions and 733 deletions

View File

@@ -54,7 +54,7 @@
#include "hbcomp.h"
#include "hbmacro.ch"
#if !defined( HB_HASH_USES_ARRAY_INDEXES ) /* && defined( HB_COMPAT_XHB ) */
#if !defined( HB_HASH_USES_ARRAY_INDEXES )
# define HB_HASH_USES_ARRAY_INDEXES
#endif
@@ -342,8 +342,7 @@ static HB_EXPR_FUNC( hb_compExprUseString )
case HB_EA_REDUCE:
break;
case HB_EA_ARRAY_AT:
if( ! HB_SUPPORT_ARRSTR )
HB_COMP_ERROR_TYPE( pSelf );
HB_COMP_ERROR_TYPE( pSelf );
break;
case HB_EA_ARRAY_INDEX:
#ifdef HB_HASH_USES_ARRAY_INDEXES
@@ -1210,11 +1209,6 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt )
else
lIndex = ( LONG ) pIdx->value.asNum.val.d;
#if !defined( HB_COMPAT_XHB )
if( lIndex <= 0 )
hb_compErrorBound( HB_COMP_PARAM, pIdx ); /* index <= 0 - bound error */
else
#endif
if( pExpr->ExprType == HB_ET_ARRAY ) /* is it a literal array */
{
ULONG ulSize = hb_compExprParamListCheck( HB_COMP_PARAM, pExpr );
@@ -1223,7 +1217,10 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt )
/* restore original expression type */
pExpr->ExprType = HB_ET_ARRAY;
else if( !HB_IS_VALID_INDEX( lIndex, ulSize ) )
hb_compErrorBound( HB_COMP_PARAM, pIdx );
{
if( !HB_SUPPORT_ARRSTR )
hb_compErrorBound( HB_COMP_PARAM, pIdx );
}
else
{
pExpr = pExpr->value.asList.pExprList; /* the first element in the array */
@@ -1246,15 +1243,16 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt )
HB_COMP_EXPR_DELETE( pSelf );
pSelf = pNew;
}
else
else if( !HB_SUPPORT_ARRSTR )
hb_compErrorBound( HB_COMP_PARAM, pIdx );
}
}
#if 0
else if( pExpr->ExprType == HB_ET_STRING && HB_SUPPORT_ARRSTR ) /* is it a literal string */
{
if( HB_IS_VALID_INDEX( lIndex, pExpr->ulLength ) )
{
#if defined( HB_COMPAT_XHB )
#if defined( HB_COMPAT_X HB )
char * pszValue = ( char * ) hb_xgrab( 2 );
pszValue[ 0 ] = pExpr->value.asString.string[ lIndex - 1 ];
pszValue[ 1 ] = '\0';
@@ -1271,7 +1269,8 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt )
else
hb_compErrorBound( HB_COMP_PARAM, pIdx );
}
else
#endif
else if( !HB_SUPPORT_ARRSTR )
{
HB_EXPR_USE( pExpr, HB_EA_ARRAY_AT );
}