From 4c71e3d819600d109ee027286141f6e90b59af9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Czerpak?= Date: Mon, 3 Feb 2014 22:26:32 +0100 Subject: [PATCH] 2014-02-03 22:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/compiler/complex.c + added support for AS HASH, POINTER, SYMBOL, TIMESTAMP + added support for AS BLOCK as synonym of AS CODEBLOCK + added support for AS DATETIME as synonym of AS TIMESTAMP * src/vm/classes.c + added support for "DATETIME" type uses as synonym of "TIMESTAMP" --- ChangeLog.txt | 9 +++++++++ src/compiler/complex.c | 10 ++++++++++ src/vm/classes.c | 10 ++++++---- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 0e8326973f..bcaa9d0aa0 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,15 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2014-02-03 22:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/compiler/complex.c + + added support for AS HASH, POINTER, SYMBOL, TIMESTAMP + + added support for AS BLOCK as synonym of AS CODEBLOCK + + added support for AS DATETIME as synonym of AS TIMESTAMP + + * src/vm/classes.c + + added support for "DATETIME" type uses as synonym of "TIMESTAMP" + 2014-02-03 18:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * contrib/hbct/dattime2.c ! fixed potential GPF trap due to wrong protection condition diff --git a/src/compiler/complex.c b/src/compiler/complex.c index 169fbc9756..a6188dfb3f 100644 --- a/src/compiler/complex.c +++ b/src/compiler/complex.c @@ -164,9 +164,13 @@ static const HB_LEX_KEY s_keytable[] = #define _AS_CHARACTER 3 #define _AS_CLASS 4 #define _AS_DATE 5 +#define _AS_DATETIME 5 +#define _AS_HASH 9 #define _AS_LOGICAL 6 #define _AS_NUMERIC 7 #define _AS_OBJECT 8 +#define _AS_POINTER 9 +#define _AS_SYMBOL 9 #define _AS_VARIANT 9 static const int s_asTypes[] = @@ -201,14 +205,20 @@ static const HB_LEX_KEY s_typetable[] = { { "ANYTYPE", 4, 7, _AS_VARIANT }, { "ARRAY", 4, 5, _AS_ARRAY }, + { "BLOCK", 4, 5, _AS_BLOCK }, { "CHARACTER", 4, 9, _AS_CHARACTER }, { "CLASS", 4, 5, _AS_CLASS }, { "CODEBLOCK", 4, 9, _AS_BLOCK }, { "DATE", 4, 4, _AS_DATE }, + { "DATETIME", 5, 8, _AS_DATETIME }, + { "HASH", 4, 4, _AS_HASH }, { "LOGICAL", 4, 7, _AS_LOGICAL }, { "NUMERIC", 4, 7, _AS_NUMERIC }, { "OBJECT", 4, 6, _AS_OBJECT }, + { "POINTER", 4, 7, _AS_POINTER }, { "STRING", 4, 6, _AS_CHARACTER }, + { "SYMBOL", 4, 6, _AS_SYMBOL }, + { "TIMESTAMP", 4, 8, _AS_DATETIME }, { "USUAL", 4, 5, _AS_VARIANT } }; diff --git a/src/vm/classes.c b/src/vm/classes.c index 225e0575f9..c004ca5c6a 100644 --- a/src/vm/classes.c +++ b/src/vm/classes.c @@ -2801,11 +2801,10 @@ static HB_TYPE hb_clsGetItemType( PHB_ITEM pItem, HB_TYPE nDefault ) { case 'C': case 'c': - case '\0': if( hb_strnicmp( hb_itemGetCPtr( pItem ), "code", 4 ) == 0 ) return HB_IT_BLOCK; - else - return HB_IT_STRING; + case '\0': + return HB_IT_STRING; case 'S': case 's': @@ -2820,7 +2819,10 @@ static HB_TYPE hb_clsGetItemType( PHB_ITEM pItem, HB_TYPE nDefault ) case 'D': case 'd': - return HB_IT_DATE; + if( hb_strnicmp( hb_itemGetCPtr( pItem ), "datet", 5 ) == 0 ) + return HB_IT_TIMESTAMP; + else + return HB_IT_DATE; case 'T': case 't':