diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e21c939547..fc36c24fee 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,27 @@ The license applies to all entries newer than 2009-04-28. */ +2010-09-09 17:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/src/rtl/filesys.c + * unified hb_fsSeek[Large]() return value when seek operation cannot + be executed for given file handle. Now it's 0 for all platforms. + + * harbour/include/hbapicls.h + * harbour/src/vm/classes.c + + added new public C function + PHB_SYMB hb_clsFuncSym( HB_USHORT uiClass ) + It returns class function symbol or NULL. + + * harbour/ChangeLog + * harbour/config/os2/gccomf.mk + * harbour/include/hbpcode.h + * harbour/include/hbdebug.ch + * harbour/include/hbmath.ch + * harbour/include/hbgfx.ch + * harbour/src/vm/classes.c + * harbour/utils/hbmk2/hbmk2.prg + * removed dummy trailing spaces at EOLs + 2010-09-08 18:41 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/utils/hbqtgen.prg ! Code cleanup. @@ -26,8 +47,8 @@ + contrib/hbqt/qtcore/qth/HBQString.qth ! It is exactly QString() class wrapper. + contrib/hbqt/qtcore/qth/QStringRef.qth - + Added: two more classes. - + + Added: two more classes. + * contrib/hbqt/qtcore/qth/QObject.qth - Commented out two methods. @@ -55,12 +76,12 @@ + Implemented: hbIDE specific macros available in Project's Environments batch. The usage is like : [ MinGW 4.4.1 ] - {content} SET project_name=${project_name} - {content} SET project_path=${project_path} + {content} SET project_name=${project_name} + {content} SET project_path=${project_path} All macros available in Tools & Utilities can be used here also. - + Project Tree: context-menu - Any project building action sets - the current project to the one which is invoked. Here we have + + Project Tree: context-menu - Any project building action sets + the current project to the one which is invoked. Here we have nothing to loose, rather gain. Thanks Maurizio for pointing. 2010-09-08 20:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) diff --git a/harbour/config/os2/gccomf.mk b/harbour/config/os2/gccomf.mk index 2547525c6e..e366650a2a 100644 --- a/harbour/config/os2/gccomf.mk +++ b/harbour/config/os2/gccomf.mk @@ -4,7 +4,7 @@ # GCC with OMF object format. # -# This is available with GCC 3.3.5 as an option, +# This is available with GCC 3.3.5 as an option, # and with GCC 4.x this an obligatory option. include $(TOP)$(ROOT)config/$(HB_PLATFORM)/gcc.mk diff --git a/harbour/include/hbapicls.h b/harbour/include/hbapicls.h index f12a338e30..8b9720955d 100644 --- a/harbour/include/hbapicls.h +++ b/harbour/include/hbapicls.h @@ -114,6 +114,7 @@ extern void hb_mthAddTime( HB_ULONG ulClockTicks ); /* profiler from extern HB_EXPORT const char * hb_clsName( HB_USHORT uiClass ); extern HB_EXPORT const char * hb_clsFuncName( HB_USHORT uiClass ); extern HB_EXPORT const char * hb_clsMethodName( HB_USHORT uiClass, HB_USHORT uiMethod ); +extern HB_EXPORT PHB_SYMB hb_clsFuncSym( HB_USHORT uiClass ); extern HB_EXPORT HB_BOOL hb_clsIsParent( HB_USHORT uiClass, const char * szParentName ); /* is a class handle inherited from szParentName Class ? */ extern HB_EXPORT HB_USHORT hb_clsFindClass( const char * szClass, const char * szFunc ); diff --git a/harbour/include/hbdebug.ch b/harbour/include/hbdebug.ch index 583c5ce967..9cb64af5cc 100644 --- a/harbour/include/hbdebug.ch +++ b/harbour/include/hbdebug.ch @@ -4,7 +4,7 @@ /* * Harbour Project source code: - * Header file for debugger + * Header file for debugger * * Copyright 1999 Ryszard Glab * www - http://harbour-project.org diff --git a/harbour/include/hbgfx.ch b/harbour/include/hbgfx.ch index 28188ebf5f..c68186788c 100644 --- a/harbour/include/hbgfx.ch +++ b/harbour/include/hbgfx.ch @@ -65,7 +65,7 @@ * screen, so this is under user choice. * (the user just needs to know that it is not the same to aquire the screen, draw 100 lines, then * release screen, than simply drawing 100 lines -as the GT will be acquiring/releasing the screen - * 100 times, which will slow down things a lot-) [Mauricio] + * 100 times, which will slow down things a lot-) [Mauricio] */ #xtranslate hb_gfxAcquireScreen() => hb_gfxPrimitive( HB_GFX_ACQUIRESCREEN ) diff --git a/harbour/include/hbmath.ch b/harbour/include/hbmath.ch index da14267156..bc8aec8bbd 100644 --- a/harbour/include/hbmath.ch +++ b/harbour/include/hbmath.ch @@ -70,9 +70,9 @@ #define HB_MATH_ERRMODE_CDEFAULT 1 /* handle error by using the C RTL correction values */ #define HB_MATH_ERRMODE_USER 2 /* throw Harbour error, user MUST correct math error within Harbour error handling */ -#define HB_MATH_ERRMODE_USERDEFAULT 3 /* dito, but if user does not correct math error, default +#define HB_MATH_ERRMODE_USERDEFAULT 3 /* dito, but if user does not correct math error, default error handling, i.e. by individual function applies */ -#define HB_MATH_ERRMODE_USERCDEFAULT 4 /* as ERRMODE_USER, but if user does not correct math error, C RTL +#define HB_MATH_ERRMODE_USERCDEFAULT 4 /* as ERRMODE_USER, but if user does not correct math error, C RTL correction values are used */ /* array element indices in aInfo parameter passed to math errorblock */ diff --git a/harbour/include/hbpcode.h b/harbour/include/hbpcode.h index 96154f6bb2..e2d2b4ec31 100644 --- a/harbour/include/hbpcode.h +++ b/harbour/include/hbpcode.h @@ -205,7 +205,7 @@ typedef enum HB_P_ENUMEND, /* 132 End of FOR EACH loop */ HB_P_SWITCH, /* 133 SWITCH using long values */ HB_P_PUSHDATE, /* 134 places a data constant value on the virtual machine stack */ -/* optimalization of inlined math operations */ +/* optimalization of inlined math operations */ HB_P_PLUSEQPOP, /* 135 adds a value to the variable reference */ HB_P_MINUSEQPOP, /* 136 subs a value from the variable reference */ HB_P_MULTEQPOP, /* 137 multiplies a variable reference by a value */ diff --git a/harbour/src/rtl/filesys.c b/harbour/src/rtl/filesys.c index 255c314f90..89f641b502 100644 --- a/harbour/src/rtl/filesys.c +++ b/harbour/src/rtl/filesys.c @@ -2433,7 +2433,11 @@ HB_ULONG hb_fsSeek( HB_FHANDLE hFileHandle, HB_LONG lOffset, HB_USHORT uiFlags ) } if( ulPos == ( ULONG ) INVALID_SET_FILE_POINTER ) + { ulPos = ( ULONG ) SetFilePointer( DosToWinHandle( hFileHandle ), 0, NULL, SEEK_CUR ); + if( ulPos == ( ULONG ) INVALID_SET_FILE_POINTER ) + ulPos = 0; + } #else /* This DOS hack creates 2GB file size limit, Druzus */ @@ -2494,6 +2498,8 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT ulOffsetLow = SetFilePointer( DosToWinHandle( hFileHandle ), 0, ( PLONG ) &ulOffsetHigh, SEEK_CUR ); nPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow; + if( nPos == ( ULONG ) INVALID_SET_FILE_POINTER ) + nPos = 0; } hb_vmLock(); } @@ -2516,6 +2522,8 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT if( nPos == ( HB_FOFFSET ) -1 ) { nPos = lseek64( hFileHandle, 0L, SEEK_CUR ); + if( nPos == ( HB_FOFFSET ) -1 ) + nPos = 0; } hb_vmLock(); } diff --git a/harbour/src/vm/classes.c b/harbour/src/vm/classes.c index 1fec7440fa..4ca2fbed2f 100644 --- a/harbour/src/vm/classes.c +++ b/harbour/src/vm/classes.c @@ -1384,6 +1384,14 @@ const char * hb_clsFuncName( HB_USHORT uiClass ) return NULL; } +PHB_SYMB hb_clsFuncSym( HB_USHORT uiClass ) +{ + if( uiClass && uiClass <= s_uiClasses ) + return s_pClasses[ uiClass ]->pClassFuncSym; + else + return NULL; +} + const char * hb_clsMethodName( HB_USHORT uiClass, HB_USHORT uiMethod ) { if( uiClass && uiClass <= s_uiClasses && @@ -3811,7 +3819,7 @@ HB_FUNC( __CLSINSTSUPER ) pObject->item.asArray.value->uiClass = 0; else if( hb_vmRequestQuery() == 0 ) { - hb_snprintf( szDesc, sizeof( szDesc ), + hb_snprintf( szDesc, sizeof( szDesc ), "Super class '%s' does not return an object", pClassFuncSym->szName ); hb_errRT_BASE( EG_ARG, 3002, "Super class does not return an object", HB_ERR_FUNCNAME, 0 ); diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index b726c0d48e..7b5e8525c3 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -2018,14 +2018,14 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) CASE cParamL == "-beep-" .OR. ; cParamL == "-nobeep" ; hbmk[ _HBMK_lBEEP ] := .F. CASE cParamL == "-rebuild" - + hbmk[ _HBMK_lINC ] := .T. IF nLevel == 1 hbmk[ _HBMK_lREBUILD ] := .T. ENDIF CASE cParamL == "-rebuildall" - + hbmk[ _HBMK_lINC ] := .T. hbmk[ _HBMK_lREBUILD ] := .T.