From 65855b43dbadb9e80cd3dd410a8ae99614072f9c Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Wed, 19 Aug 2009 02:43:23 +0000 Subject: [PATCH] 2009-08-19 04:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbgtinfo.ch * formatting * harbour/include/Makefile - harbour/include/hbgetcmt.ch - removed redundant header file * harbour/contrib/hbwin/olecore.c * added workaround for wrong OLE variant structure definition in some C compilers header files --- harbour/ChangeLog | 12 +++ harbour/contrib/hbwin/olecore.c | 24 ++++- harbour/include/Makefile | 1 - harbour/include/hbgetcmt.ch | 171 -------------------------------- harbour/include/hbgtinfo.ch | 4 +- 5 files changed, 35 insertions(+), 177 deletions(-) delete mode 100644 harbour/include/hbgetcmt.ch diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 377df26731..96e8a46717 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,18 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-19 04:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbgtinfo.ch + * formatting + + * harbour/include/Makefile + - harbour/include/hbgetcmt.ch + - removed redundant header file + + * harbour/contrib/hbwin/olecore.c + * added workaround for wrong OLE variant structure definition + in some C compilers header files + 2009-08-18 18:51 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbxbp/xbpwindow.prg ! Some tweaks. diff --git a/harbour/contrib/hbwin/olecore.c b/harbour/contrib/hbwin/olecore.c index c6fd778986..214c87ed52 100644 --- a/harbour/contrib/hbwin/olecore.c +++ b/harbour/contrib/hbwin/olecore.c @@ -54,11 +54,18 @@ #include "hbwinole.h" /* enable workaround for wrong OLE variant structure definition */ +#if ( defined( __POCC__ ) && defined( HB_OS_WIN_CE ) ) || \ + defined( __DMC__ ) +# define HB_OLE_NO_LL +#endif + #if defined( __MINGW32__ ) || \ + defined( __DMC__ ) || \ ( defined( __WATCOMC__ ) && ( __WATCOMC__ < 1280 ) ) # define HB_OLE_NO_LLREF #endif + /* base date value in OLE (1899-12-30) as julian day */ #define HB_OLE_DATE_BASE 0x0024D9AB @@ -236,16 +243,21 @@ static void hb_oleItemToVariantRef( VARIANT* pVariant, PHB_ITEM pItem, } #else pVariant->n1.n2.vt = VT_I8; +# if defined( HB_OLE_NO_LL ) + /* workaround for wrong OLE variant structure definition */ + * ( ( LONGLONG * ) &pVariant->n1.n2.n3.lVal ) = hb_itemGetNInt( pItem ); +# else pVariant->n1.n2.n3.llVal = hb_itemGetNInt( pItem ); +# endif if( pVarRef ) { pVarRef->n1.n2.vt = VT_I8 | VT_BYREF; +# if defined( HB_OLE_NO_LLREF ) || defined( HB_OLE_NO_LL ) /* workaround for wrong OLE variant structure definition */ -#if defined( HB_OLE_NO_LLREF ) pVarRef->n1.n2.n3.pdblVal = &pVariant->n1.n2.n3.dblVal; -#else +# else pVarRef->n1.n2.n3.pllVal = &pVariant->n1.n2.n3.llVal; -#endif +# endif } #endif break; @@ -486,6 +498,9 @@ void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant ) case VT_I8: #if HB_LONG_MAX == INT32_MAX || defined( HB_LONG_LONG_OFF ) hb_itemPutNInt( pItem, ( HB_LONG ) pVariant->n1.n2.n3.lVal ); +#elif defined( HB_OLE_NO_LL ) + /* workaround for wrong OLE variant structure definition */ + hb_itemPutNInt( pItem, * ( ( LONGLONG * ) &pVariant->n1.n2.n3.lVal ) ); #else hb_itemPutNInt( pItem, pVariant->n1.n2.n3.llVal ); #endif @@ -530,6 +545,9 @@ void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant ) /* TODO: sign is lost. Convertion to double will lose significant digits. */ #if HB_LONG_MAX == INT32_MAX || defined( HB_LONG_LONG_OFF ) hb_itemPutNInt( pItem, ( HB_LONG ) pVariant->n1.n2.n3.ulVal ); +#elif defined( HB_OLE_NO_LL ) + /* workaround for wrong OLE variant structure definition */ + hb_itemPutNInt( pItem, * ( ( LONGLONG * ) &pVariant->n1.n2.n3.ulVal ) ); #else hb_itemPutNInt( pItem, ( HB_LONG ) pVariant->n1.n2.n3.ullVal ); #endif diff --git a/harbour/include/Makefile b/harbour/include/Makefile index 31198a3af3..d0e61d424b 100644 --- a/harbour/include/Makefile +++ b/harbour/include/Makefile @@ -82,7 +82,6 @@ PRG_HEADERS := \ hbextcdp.ch \ hbextlng.ch \ hbextern.ch \ - hbgetcmt.ch \ hbgfx.ch \ hbgfxdef.ch \ hbgtinfo.ch \ diff --git a/harbour/include/hbgetcmt.ch b/harbour/include/hbgetcmt.ch deleted file mode 100644 index e7a2b449f4..0000000000 --- a/harbour/include/hbgetcmt.ch +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * Header file for Clipper 5.3 Compatible Get Commands - * - * Copyright 2001 Luiz Rafael Culik - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#ifndef HB_GETCMT_CH_ -#define HB_GETCMT_CH_ - -#ifdef HB_COMPAT_C53 - -#command @ , GET ; - CHECKBOX ; - [VALID ] ; - [WHEN ] ; - [CAPTION ] ; - [MESSAGE ] ; - [COLOR ] ; - [FOCUS ] ; - [STATE ] ; - [STYLE