From 45669c5cc1144d9bc65e4cc50cddcb8806ab4386 Mon Sep 17 00:00:00 2001 From: Mindaugas Kavaliauskas Date: Tue, 10 Jun 2008 16:08:57 +0000 Subject: [PATCH] 2008-06-10 19:10 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/source/vm/hashfunc.c * extended functionality of HB_HSet(), HB_HDel() and HB_HDelAt() to return hash value --- harbour/ChangeLog | 5 +++++ harbour/source/vm/hashfunc.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 86f09c2d35..83edd54202 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,11 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-06-10 19:10 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) + * harbour/source/vm/hashfunc.c + * extended functionality of HB_HSet(), HB_HDel() and HB_HDelAt() + to return hash value + 2008-06-10 17:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * contrib/xhb/Makefile * contrib/xhb/common.mak diff --git a/harbour/source/vm/hashfunc.c b/harbour/source/vm/hashfunc.c index 9a9ccbbda9..6ec108a21c 100644 --- a/harbour/source/vm/hashfunc.c +++ b/harbour/source/vm/hashfunc.c @@ -133,7 +133,10 @@ HB_FUNC( HB_HSET ) PHB_ITEM pValue = hb_param( 3, HB_IT_ANY ); if( pHash && pKey && pValue ) + { hb_hashAdd( pHash, pKey, pValue ); + hb_itemReturn( pHash ); + } else hb_errRT_BASE( EG_ARG, 1123, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); } @@ -145,7 +148,9 @@ HB_FUNC( HB_HDEL ) if( pHash && pKey ) { - if( ! hb_hashDel( pHash, pKey ) ) + if( hb_hashDel( pHash, pKey ) ) + hb_itemReturn( pHash ); + else hb_errRT_BASE( EG_BOUND, 1133, NULL, hb_langDGetErrorDesc( EG_ARRASSIGN ), 2, pHash, pKey ); } else @@ -233,7 +238,9 @@ HB_FUNC( HB_HDELAT ) if( pHash && pPos ) { - if( ! hb_hashDelAt( pHash, hb_itemGetNL( pPos ) ) ) + if( hb_hashDelAt( pHash, hb_itemGetNL( pPos ) ) ) + hb_itemReturn( pHash ); + else hb_errRT_BASE( EG_BOUND, 1133, NULL, hb_langDGetErrorDesc( EG_ARRASSIGN ), 2, pHash, pPos ); } else