diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 1d05402faf..33aaa26fcd 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,13 @@ +2000-09-20 23:36 UTC+0200 JFL (mafact) + * harbour/include/hbsetup.ch + + added a #define HB_CLS_ENFORCERO to enable full ReadOnly test on DATA + * harbour/source/pp/ppcore.c + minor reformating whith some comment and CygWin + * harbour/source/vm/classes.c + + added a #define HB_CLS_ENFORCERO to enable full ReadOnly test on DATA + (Now disabled by default to extend compatibility with TopClass and VO) + (will be completed later) + 2000-09-20 15:30 UTC-0400 David G. Holm * include/hbver.h @@ -284,8 +294,8 @@ * source/rdd/dbfcdx/dbfcdx1.c ! Changed SET_AUTOSHARE, now accept three values: 0: AUTOSHARE disabled. - 1: AUTOSHARE enabled. - 2: force exclusive mode. + 1: AUTOSHARE enabled. + 2: force exclusive mode. 2000-09-02 09:37 GMT+1 Bruno Cantero * contrib/rdd_ads/rddads.h @@ -497,16 +507,16 @@ * include/hbclass.ch + Added TClass declaration: - DECLARE TClass ; - New( cName AS STRING, OPTIONAL SuperParams ) AS CLASS TClass ; - Create() AS OBJECT; - Instance() AS OBJECT ; - AddClsMthds( cName AS STRING, @Method(), nScope AS NUMERIC, n2 AS NUMERIC, n3 AS NUMERIC ); - AddMultiClsData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING ); - AddMultiData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING ); - AddMethod( cName AS STRING, @Method(), nScope AS NUMERIC ); - AddInLine( cName AS STRING, bBlock AS CODEBLOCK, nScope AS NUMERIC ); - AddVirtual( cName AS STRING ) + DECLARE TClass ; + New( cName AS STRING, OPTIONAL SuperParams ) AS CLASS TClass ; + Create() AS OBJECT; + Instance() AS OBJECT ; + AddClsMthds( cName AS STRING, @Method(), nScope AS NUMERIC, n2 AS NUMERIC, n3 AS NUMERIC ); + AddMultiClsData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING ); + AddMultiData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING ); + AddMethod( cName AS STRING, @Method(), nScope AS NUMERIC ); + AddInLine( cName AS STRING, bBlock AS CODEBLOCK, nScope AS NUMERIC ); + AddVirtual( cName AS STRING ) + Added declaration to s_oClass AS CLASS TClass * tests/testdecl.prg @@ -594,17 +604,17 @@ * source/macro/macroslx.c + Added: - #define MAX_STREAM 2048 /* Max length of in-line LITERAL */ - #define MAX_STREAM_STARTER 2 - #define MAX_STREAM_TERMINATOR 2 - #define MAX_STREAM_EXCLUSIONS 2 + #define MAX_STREAM 2048 /* Max length of in-line LITERAL */ + #define MAX_STREAM_STARTER 2 + #define MAX_STREAM_TERMINATOR 2 + #define MAX_STREAM_EXCLUSIONS 2 * source/compiler/hbslex.c + Added: - #define MAX_STREAM 2048 /* Max length of in-line LITERAL */ - #define MAX_STREAM_STARTER 7 /* "QOUT([" */ - #define MAX_STREAM_TERMINATOR 4 /* "])\n" */ - #define MAX_STREAM_EXCLUSIONS 2 + #define MAX_STREAM 2048 /* Max length of in-line LITERAL */ + #define MAX_STREAM_STARTER 7 /* "QOUT([" */ + #define MAX_STREAM_TERMINATOR 4 /* "])\n" */ + #define MAX_STREAM_EXCLUSIONS 2 * source/macro/macro.slx * Replaced AND_IGNORE_DELIMITERS() with TEST_LEFT() diff --git a/harbour/include/hbsetup.ch b/harbour/include/hbsetup.ch index a4c7613def..0b638e0c1f 100644 --- a/harbour/include/hbsetup.ch +++ b/harbour/include/hbsetup.ch @@ -38,7 +38,7 @@ #ifndef HB_SETUP_CH_ #define HB_SETUP_CH_ -/* NOTE: You can select here, which features you want to include of the +/* NOTE: You can select here, which features you want to include of the different Clipper implementations. */ #define HB_EXTENSION /* Enable Harbour extensions */ @@ -53,8 +53,8 @@ /* #define HB_COMPAT_FOXPRO */ /* Enable FoxPro extensions */ /* #define HB_COMPAT_DBASE */ /* Enable dBase extensions */ -/* NOTE: HB_SHORTNAMES must be defined manually if the symbol name length is - set to 10 explicitly and not through the HB_C52_STRICT option +/* NOTE: HB_SHORTNAMES must be defined manually if the symbol name length is + set to 10 explicitly and not through the HB_C52_STRICT option [vszakats] */ /* Turn on short names support for the class engine */ @@ -63,6 +63,7 @@ #endif #define HB_CLS_MASKHIDDEN /* Disallow heritence of hidden variables */ +//#define HB_CLS_ENFORCERO /* Activate the RO checking on OO DATA */ #endif /* HB_SETUP_CH_ */ diff --git a/harbour/source/pp/ppcore.c b/harbour/source/pp/ppcore.c index 173f3e1a70..a932643ca0 100644 --- a/harbour/source/pp/ppcore.c +++ b/harbour/source/pp/ppcore.c @@ -701,7 +701,7 @@ static void ParseCommand( char * sLine, BOOL com_or_xcom, BOOL com_or_tra ) /* JFL 2000-09-19 */ /* This was the original line as Alexander wrote it */ /* while( *sLine != '\0' && *sLine != ' ' && *sLine != '\t' && *sLine != '<' && *sLine != '=' && ( *sLine != '(' || ipos == 0 ) ) */ - /* Now the line #xtranslate = name(.. => will be allowed + /* Now the line #xtranslate = name(.. => will be allowed */ /* I changed it to the following to allow < and = to be the first char within a translate or xtranslate */ while( *sLine != '\0' && *sLine != ' ' && *sLine != '\t' && ( *sLine != '<' || ipos == 0 ) && ( *sLine != '=' || ipos == 0 ) && ( *sLine != '(' || ipos == 0 ) ) @@ -972,7 +972,7 @@ int hb_pp_ParseExpression( char * sLine, char * sOutLine ) } /* Look for definitions from #command */ - if( kolpass < 3 ) + if( kolpass < 3 ) /* JFL ! */ { ptri = sLine + isdvig; HB_SKIPTABSPACES( ptri ); @@ -1022,6 +1022,7 @@ int hb_pp_ParseExpression( char * sLine, char * sOutLine ) isdvig += ipos; } while( ipos != 0 ); + kolpass++; if( kolpass > 20 && rezDef ) { diff --git a/harbour/source/vm/classes.c b/harbour/source/vm/classes.c index 62950e6b71..1068710e75 100644 --- a/harbour/source/vm/classes.c +++ b/harbour/source/vm/classes.c @@ -137,6 +137,9 @@ * __CLS_PAR00() (Allow the creation of class wich not autoinherit of the default TObject) * Suppression of the default :Class message ==> transfered to tObject * + * 1.35 ? + * 1.36 Adding HB_CLS_ENFORCERO FLAG to disable Write access to RO VAR + * This is work in progress (JFL) Should be related to some compatibility flag * * See doc/license.txt for licensing terms. * @@ -446,6 +449,7 @@ void hb_clsScope( PHB_ITEM pObject, PMETHOD pMethod ) } #endif +#ifdef HB_CLS_ENFORCERO /* Not enabled by default */ if( ( uiScope & HB_OO_CLSTP_READONLY ) == HB_OO_CLSTP_READONLY ) { if( @@ -463,6 +467,8 @@ void hb_clsScope( PHB_ITEM pObject, PMETHOD pMethod ) hb_errRT_BASE( EG_NOMETHOD, 1004, "Scope violation (readonly)", szName ); } } +#endif + } }