diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 825d168470..565b14f6c4 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,35 @@ The license applies to all entries newer than 2009-04-28. */ +2011-09-20 13:56 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * src/rtl/teditor.prg + ! fixed following issue: in MEMOEDIT() insert mode the word wrap inserts + an additional, not typed space in the new line [when typing at EOL at the + moment of word wrap - vszakats]. The space is inserted at the place, where + the word wrap takes place. + Report and patch provided by Dr.Claudia Neumann. Many thanks. + (with my formatting: indenting, tab/EOL-space removal) + + * contrib/hbqt/qtcore/hbqt_pointer.cpp + ! fixed to avoid non-MT compatible strtok() C RTL call. + Many thanks to Carlos Bacco for the patch. + (with my minor formatting 'if (' -> 'if(', 'while (' -> 'while( ') + + NOTE: Please continue to avoid strtok() usage in any further Harbour patches, + it is avoided for good reason. + + * INSTALL + + added another (this is the 3rd!) mention to use unmodified ("vanilla") + 3rd party packages (especially to make implib generation to work). + * minor updates + + * contrib/hbrun/hbrun.hbp + + added another TOFIX to latest patch, about HB_HAS_ZLIB_LOCAL usage, + which has to be eliminated. + + * ChangeLog + + added UPDATE to previous ChangeLog entry + 2011-09-16 11:56 UTC-0500 Teo Fonrouge (teo/at/windtelsoft/dot/com) * ChangeLog * minor formatting @@ -24,6 +53,12 @@ * using macro HB_BUILD_DSO to state an linux env with ld DSO linking model thanks to Viktor. ; TOFIX: export this functionality to other .hbc files in need of this + UPDATE: Before doing the above, it should be fixed to not use HB_HAS_ZLIB_LOCAL, + as it is Harbour core build specific and is not present when using .hbc + files outside this environment. Then this fix should be _moved_ to + respective .hbc files. Current location is wrong, as it's not a hbrun + problem to solve, even though the problem happens to show up when building + hbrun. [vszakats] 2011-09-15 23:47 UTC-0500 Teo Fonrouge (teo/at/windtelsoft/dot/com) * contrib/hbrun/hbrun.hbp @@ -1353,7 +1388,7 @@ 2011-06-19 11:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbqt/qtcore/hbqt_pointer.cpp - + added TOFIX to strtok() calls + + added TOFIX to strtok() calls [DONE] 2011-06-19 11:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbqt/hbmk2_qt.hbs diff --git a/harbour/INSTALL b/harbour/INSTALL index 465ba86162..a8193d5864 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -325,6 +325,13 @@ HARBOUR on *nix which aren't available through official package managers (ADS Client f.e.). + Note that Harbour is tuned to use 3rd party packages in their default, + unmodified ("vanilla") install layout created by their official/mainstream + install kits. If you manually move, rename, delete or add files + under the 3rd party packages' root directory, the default Harbour + build process (especially Windows implib generation) might not work + as expected. + You can set these environment variables before starting the build. Make sure to adjust them to your own directories: @@ -1235,8 +1242,8 @@ HARBOUR 2. Make sure to do a 'make clean' before doing a build after refreshing the sources. 3. If that still fails, make sure to install fresh source tree in a new - local directory and start over. See HOW TO GET HARBOUR - section for instructions to get the source. + local directory and start over. See HOW TO GET HARBOUR section for + instructions to get the source. 4. If you are doing a cross-build, make sure to have rebuilt the native Harbour executables for your host platform. See 'HB_HOST_BIN' build messages to find their location. @@ -1244,10 +1251,12 @@ HARBOUR versions when building Harbour. The surest way to achieve this is to leave only C compiler directory in PATH: set PATH=C:\ + If you use Harbour official binary distro on Windows, even above is + unnecessary and not recommended. 6. Remove all old, unnecessary environment variables from your environment. Use only those documented in this file. - Some environment variable settings which are commonly believed by - users to be useful, but which in reality are either not needed or + Follows some environment variable settings which are commonly believed + by users to be useful, but which in reality are either not needed or not even used by Harbour build process and hbmk2. You can delete them: set HB_DIR= @@ -1266,7 +1275,7 @@ HARBOUR 8. Try to do no or only small modifications at once to command examples included in this document. If it doesn't work, fall back to documented examples as is. - 9. If everything fails and you are to report a problem to the developers, + 9. If everything fails and you are to report a problem to Harbour developers, make sure to include your OS version/language/CPU architecture, Harbour revision, C compiler name/release and version, environment variables and verbose log output containing _both stderr and stdout in diff --git a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp index aaeed54936..09d84306a5 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp @@ -353,7 +353,7 @@ PHB_ITEM hbqt_defineClassBegin( const char * szClsName, PHB_ITEM s_oClass, const { static PHB_DYNS s___HBCLASS = NULL; - char * pszParentClsBuffer = hb_strdup( szParentClsStr ); + char * szSingleClsNameBuf = ( char * ) hb_xgrab( strlen( szParentClsStr ) + 1 ); if( s___HBCLASS == NULL ) s___HBCLASS = hb_dynsymGetCase( "HBCLASS" ); @@ -364,26 +364,33 @@ PHB_ITEM hbqt_defineClassBegin( const char * szClsName, PHB_ITEM s_oClass, const hb_itemPutC( pClsName, szClsName ); + HB_SIZE nPos = 0; + HB_SIZE nStart = 0; + /* array with parent classes (at least ONE) */ hb_arrayNew( pSuper, 0 ); HB_TRACE( HB_TR_DEBUG, ("%s: dCB 3", szClsName ) ); + while( szParentClsStr[ nPos++ ] ) { - char * szSingleClsName = strtok( pszParentClsBuffer, " ," ); /* TOFIX: strtok() is not MT safe */ - PHB_ITEM pItem = hb_itemNew( NULL ); - - while( szSingleClsName != NULL ) + if( ! szParentClsStr[ nPos ] || ( szParentClsStr[ nPos ] == ',' && szParentClsStr[ nPos + 1 ] == ' ' ) ) { - hb_itemPutC( pItem, szSingleClsName ); - hb_arrayAdd( pSuper, hb_itemPutSymbol( pItem, hb_dynsymGetCase( szSingleClsName )->pSymbol ) ); - szSingleClsName = strtok( NULL, " ," ); /* TOFIX: strtok() is not MT safe */ - } + PHB_ITEM pItem = hb_itemNew( NULL ); - hb_itemRelease( pItem ); + memcpy( szSingleClsNameBuf, szParentClsStr + nStart, nPos - nStart ); + szSingleClsNameBuf[ nPos - nStart ] = '\0'; + + hb_itemPutC( pItem, szSingleClsNameBuf ); + hb_arrayAdd( pSuper, hb_itemPutSymbol( pItem, hb_dynsymGetCase( szSingleClsNameBuf )->pSymbol ) ); + + hb_itemRelease( pItem ); + + nStart = nPos + 2; + } } - hb_xfree( pszParentClsBuffer ); + hb_xfree( szSingleClsNameBuf ); hb_itemPutSymbol( pSym_ClsFunc, hb_dynsymGetCase( szClsName )->pSymbol ); diff --git a/harbour/contrib/hbrun/hbrun.hbp b/harbour/contrib/hbrun/hbrun.hbp index 080ebfea27..d5672c0e1b 100644 --- a/harbour/contrib/hbrun/hbrun.hbp +++ b/harbour/contrib/hbrun/hbrun.hbp @@ -27,6 +27,8 @@ pullext.prg # required by some recent Linux distros that are using the DSO linking model # TOFIX: move these lines to the respective .hbc files actually needing them +# TOFIX: HB_HAS_ZLIB_LOCAL usage is wrong as it will only work when .hbp is +# built as part of Harbour core build process. {HB_BUILD_DSO='yes'&linux}-lm {HB_BUILD_DSO='yes'&linux&!HB_HAS_ZLIB_LOCAL}-lz diff --git a/harbour/src/rtl/teditor.prg b/harbour/src/rtl/teditor.prg index e73805a014..21c2512670 100644 --- a/harbour/src/rtl/teditor.prg +++ b/harbour/src/rtl/teditor.prg @@ -366,7 +366,7 @@ METHOD SplitLine( nRow ) CLASS HBEditor nStartRow := nRow cLine := ::GetParagraph( nRow ) - DO WHILE !Empty(cLine) + DO WHILE ! Empty( cLine ) IF Len( cLine ) > ::nWordWrapCol nFirstSpace := ::nWordWrapCol @@ -403,6 +403,10 @@ METHOD SplitLine( nRow ) CLASS HBEditor FOR nI := 0 TO nPosInWord ::MoveCursor( K_LEFT ) NEXT + ELSE + IF Set( _SET_INSERT ) + ::MoveCursor( K_LEFT ) + ENDIF ENDIF ELSE ::SetPos( nORow, nOCol )