* bin/hb-func.sh
* mpkg_tgz.sh
! Fixed OSX/Darwin builds:
- to not require harbour.dylib for binary tools supplied
in .tgz package. This way, hbrun/hbmake/hbdoc/hbtest
will work out of the box without the need for any
special installation or extra manual procedure, or
any change whatsoever in the user/system environment.
The change also doesn't prevent user installing Harbour
to system dirs and/or to utilize harbour.dylib in every way.
- so that hbmk script creates '-static' executables by default.
This will make all programs created by hbmk to work out of the
box without any special trick described above, or explicit
need to use '-static' switch.
You can override this with '-shared' switch.
; [ The price to pay is slightly larger binary package
and executable sizes. ]
* make_gnu.sh
* Minor sync in help text with recent change.
* common.mak
! Old typo.
* harbour/bin/hb-func.sh
* updated OS release version checking for new OpenSuse distros
* removed r from uname parameters used in get_hbplatform() function
+ added support for HB_MK_STATIC=yes|no envvar which allows to control
default -static/-shared hbmk switch. It should be set before hb*
scripts are created
* harbour/harbour.spec
* updated OS release version checking for new OpenSuse distros
* harbour/mpkg_tgz.sh
* changed installer envelope code to not use 'sed' and reenabled it
in default builds. Now it should work with different *nixes.
Please test.
* make_gcc.sh
* common.mak
! Fixed previous and even older workaround for cyclic
reference in common.mak when used with GNU-make.
; Please review/test.
* harbour/contrib/gtwvg/Makefile
* harbour/contrib/gtwvg/common.mak
+ wvgdlg.prg
* harbour/contrib/gtwvg/gtwvg.c
! Fixed one more issue with screen repaint behavior when
window was changing size due to font settings.
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvggui.c
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/hbgtwvg.ch
* harbour/contrib/gtwvg/wvggui.h
* harbour/contrib/gtwvg/wvgax.prg
* harbour/contrib/gtwvg/wvgcrt.prg
* harbour/contrib/gtwvg/wvgphdlr.prg
* harbour/contrib/gtwvg/wvgwnd.prg
! A reshuffling exercise, Wvt*Classes inching towards
Xbase++ compatibility, more synchronizations.
+ harbour/contrib/gtwvg/wvgdlg.prg
+ Added WvgDialog() class on lines with XbpDialog().
* harbour/contrib/gtwvg/tests/demowvg.prg
! Active-X controls hosted with WvgDialog(), pure Windows GT.
Previously these were being hosted in WvtCrt() console.
* ChangeLog
* Two recent TODOs in entries marked as [DONE] by this change:
2008-11-18 01:36 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
(It was "broken" due to enhancements, see the TODOs. Thanks anyway.)
* source/rtl/gtwvt/gtwvt.c
! Fix to previous fix to maximize the window when the initial
size would be too big to fit on screen (stupid omission).
Now the previously cited sizing problem is alright.
* source/vm/fm.c
+ Replaced HB_NO_FM_STAT and HB_FM_STAT envvars
with HB_FM_STAT=yes|no (maybe 0|1 or on|off woud be
better or could be accepted as alternatives or
replacement). This is to avoid ambiguity when both
envvars were set or the app default is not known.
+ Added HB_FM_STATISTICS_DYN_OFF to turn off mem tracking
by default when stat module is linked in.
* source/common/hbverdsp.c
* Minor cosmetic.
* harbour/contrib/gtwvg/gtwvg.c
! Resizing: some recent changes reverted back.
; TODO: reversal in GTWVT also. It breaks some pre-initialization issues.
* harbour/contrib/gtwvg/wvgax.prg
! Better detection if COM object fails to be created.
+ harbour/contrib/gtwvg/wvggui.c
+ harbour/contrib/gtwvg/wvggui.h
+ Initial commit of pure GUI GT based on GTWVG named WGU.
; Subject to heavy changes onwards.
WGU will become the basis of WvgDialog() plus inherited
sub-classes.
* harbour/contrib/gtwvg/makefile
* harbour/contrib/gtwvg/common.mak
+ Added new files.
* harbour/contrib/gtwvg/tests/demowvg.prg
+ Now <Dialog One> is working properly.
It now opens in new thread if it is odd and as usual if even.
+ <Modeless Dialogs><Experiment #1>
! Just to have experiments on WGU GT.
* contrib/gtwvg/wvgsink.c
* Minor cleanup to hb_strncat() (it's best to use
'sizeof( target ) - 1' for size, if target is a char
array. The buffer was off by one on the good direction.)
* ChangeLog
! ChangeLog was again saved as Unicode. Please guys TURN
THIS OFF for good.
* harbour/contrib/gtwvg/gtwvg.c
! Slight fix in WM_PAINT message.
* harbour/contrib/gtwvg/tests/demowvg.prg
+ Added menu option to open a GET session in GTWVT console.
; I was studying to call multiple GTs ( GTWVG and GTWVT ) same time.
It can be and it also opens up a lot more possibilities.
; Thanks Przemek for superb basic engine.
+ Added RMChart Active-X manipulation. It is free OCX and
can be downloaded from http://www.rmchart.com/
; Select from the <Active-X Controls> option.
Press F11 repeatedly to see 6 different charts.
Press F12 to change some attributes.
* harbour/include/hbatomic.h
+ added support for built in GCC atomic functions: __sync_*()
They are present in GCC >= 4.1 if given CPU supports them. For
x86 CPU family the ones we use need at least i486 CPU. Please make
tests with other CPUs like PPC. If given platform/CPU does not support
them then GCC generate call to function __sync_*_<N>() where <N>
is size of given type used in atomic operation instead of storing
inlined assembler code.
* harbour/contrib/gtwvg/gtwvg.c
! Further tuned up the resizing behavior.
! Fixed a nasty bug present since begining. The bug was causing
window to loose gui contents and even text buffer in certain
circumstances. Now you can be assured that all GTs open
with/without gui contents will never be out of synchronization.
Play with contrib/gtwvg/tests/demowvg.prg, open many browsers,
Active-X controls, get windows and so on, every window will
behave as a gentleman.
* harbour/contrib/gtwvg/wvgcrt.prg
! Fixed ::resize method.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Fine tuned to respect above fixes.
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/gtwvg.h
- pWVT->bResizing
- pWVT->bAlreadySizing
; Optimized resizing behavior. Now Window must not flicker until
resizing is finished. Please test. If this effects the desired
behavior, let me port it to GTWVT also.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Adjusted few parameters. Just play with <Traditional><Browser><F3, F4>.
; TOFIX: INKEY() vs FireEvent() - Not sure what it behave like.
* harbour/contrib/gtwvg/wvgcrt.prg
! Fixes to some events behaviors. Copy and Paste syndrome :-(
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/gtwvg.h
+ BOOL bDeferPaint; member.
* harbour/contrib/gtwvg/hbgtwvg.ch
+ #define HB_GTI_DEFERPAINT
Implemented hb_gtInfo( HB_GTI_DEFERPAINT, FALSE | TRUE )
For consoles hosting ActiveX controls need not be painted text buffer.
:TOFIX To extend this protocol for resizing buffer too
* harbour/contrib/gtwvg/wvgsink.c
! More unicode compliant.
! Fixed some errors in -DUNICODE builds, not all.
! strcat() => hb_strncat() : Viktor please check.
* harbour/contrib/gtwvg/tests/demowvg.prg
+ Added more Active-X controls.
* make_b32.mak
* make_vc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
* Minor fix.
* contrib/hbcurl/make_b32.bat
* contrib/hbcurl/make_vc.bat
* contrib/hbcurl/Makefile
- Removed recently added HB_HBCURL_USR_C.
* contrib/gtwvg/tests/demowvg.prg
* Replaced '#if __MW__' with 'IF hb_vmmt()'.
(not tested)
* contrib/gtwvg/tests/hbmk_b32.bat
* contrib/gtwvg/tests/hbmk_vc.bat
! Added hbwin.lib to HB_USER_LIBS list.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgclass.prg
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgphdlr.prg
* contrib/gtwvg/wvgpaint.prg
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgwnd.prg
* contrib/gtwvg/wvgcrt.prg
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgsink.c
! SVN IDs missing, mistyped. SVN tags now reset.
; TOFIX: GTWVG is now broken with MSVC 8 and/or C++ and/or 64-bit modes,
also unsafe string function is used:
- strcat() should be hb_strncat().
- Usual but wrong HRESULT to ULONG conversions break in 64-bit.
- Some newest Windows features should be probably guarded.
.\gtwvg.c(1913) : warning C4013: 'TrackMouseEvent' undefined; assuming extern returning int
.\gtwvg.c(3205) : error C2065: 'WS_EX_LAYERED' : undeclared identifier
.\wvgsink.c(128) : warning C4244: 'return' : conversion from 'HB_THREAD_NO' to 'int', possible loss of data
.\wvgsink.c(339) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(352) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(368) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(392) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(455) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(457) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(460) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(463) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(466) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(469) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(472) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(475) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(633) : warning C4305: 'type cast' : truncation from 'HB_LONG' to 'device_interface *'
.\wvgsink.c(652) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
* harbour/contrib/gtwvg/wvgax.prg
* harbour/contrib/gtwvg/wvgphdlr.prg
! Hash() => hb_hash()
* harbour/contrib/gtwvg/tests/demowvg.prg
- #ifdef HB_ACTIVEX
Sorry I left few defines untouched.
hbmk_b32 -mt -gui demowvg -d__MW__
But it needs hbwin.lib and you have to include it in link script.
* harbour/contrib/gtwvg/gtwvg.c
+ New HB_GTI_ + HB_GTE_ messages.
* harbour/contrib/gtwvg/wvgutils.c
- Excluded WIN_* Windows API functions.
+ harbour/contrib/gtwvg/wvgwin.c
+ Included WIN_* Windows API functions.
+ harbour/contrib/gtwvg/wvgsink.c
! ActiveX container functions contributed by Andy Wos, a big thanks to him.
+ harbour/contrib/gtwvg/wvgphdlr.prg
+ harbour/contrib/gtwvg/wvgwnd.prg
+ harbour/contrib/gtwvg/wvgcrt.prg
+ harbour/contrib/gtwvg/wvgax.prg
! Xbase++ compatible class skeleton and implementation.
! Partially but sufficient functional WvgCrt() class.
* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/hbgtwvg.ch
* harbour/contrib/gtwvg/wvtwin.ch
+ Added few new members.
* harbour/contrib/gtwvg/common.mak
* harbour/contrib/gtwvg/makefile
! Updated to include added files.
* harbour/contrib/gtwvg/tests/demowvg.prg
! updated to include WvgCrt() class implementation.
! Updated to host ActiveX controls in WvtCrt() terminal.
; It is a humble effort to introduce a common and portable class framework
to build futuristic CUI/GUI applications development and maintainability
easier. I had been a fairly good user of Xbase++ in early years
and was an admirer of their intuitive object modal especially
uniform way of parameters passing almost for all their objects.
So when Multi-threading and Multi-windows(GT) capability is introduced
Przemek, I thought it is the right moment to start in this direction too.
The firts efforts are encouraging and I see a great hope in the future.
But for sure I cannot accomplish this task at my own. Someone has to join
this effort. I know all have their own preferences but also realize that
it can ease all of us in a big way. In the past many developers put their
hands on the GUI front but without a clear framework. I based this effort
on Xbase++ because it is the only compiler which offers such functionality
on console level if we do not talk about GUI. Also it has extensive
documentation which is a force in itself.
I ever wished if Przemek would been a Windows user too!
* harbour/source/vm/fm.c
+ added support for enabling/disabling memory statistic when
application starts. To enable memory statistic it's enough
to set HB_FM_STAT environment variable to non empty value.
To disable memory statistic it's enough to set HB_NO_FM_STAT
envvar. The default setting may depend on build time option.
Now is enabled when memory statistic is compiled when harbour
is created. It may not work if C compiler does not allow to
check environment variables from startup code. F.e. functions
to access environment can be also part of dynamic library
registered after harbour.dll or harbour core code startup
functions.
Viktor I would like to ask you only about one thing.
Please do not remove current support for HB_FM_STATISTICS_OFF
from GNU make builds so Harbour user can still create binaries
without any memory statistic code using -[no]fmstat switch in
hb* scripts. The above feature is only for users who need support
for enabling/disabling memory statistic to test application
if foreign environment, f.e. at client computers. Of course if
it will work with given C compiler and/or type of application
(linked dynamically or statically). Please check.
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
+ Added 'set HB_BUILD_OPTIM=no' option to disable
all C compiler optimization for all compilers in
non-GNU make system. This replaces old envvars
BCC_NOOPTIM and GCC_NOOPTIM and add MSVC support
for this option.
* common.mak
* Formatting.
* make_vc.mak
+ TOFIX added for the case when HB_CC_NAME is overridden
by user and MT/DLL targets are being created.
* common.mak
* source/common/hbver.c
% Minor opts.
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed bug in joined leaf pages size calculation which activated
error massage enabled by HB_CDX_DBGCODE_EXT macro.
Thanks to Saulius for reporting the problem.
* source/common/hbverdsp.c
* Streamlined the /build information screen. It's now
more compact and now show if tracing is enabled. Max
symbol length got removed, ANSI C startup also, because
it needs a custom C flag anyway.
* include/hbvmpub.h
* include/hbsetup.h
* HB_SYMBOL_NAME_LEN moved away from custom setup.
This isn't an option users should normally tinker.
* tests/run_prg.bat
* Minor.
* harbour/include/hbcompdf.h
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
! fixed compile time warnings for __enum* messages used in
simpled code block variables inside FOR EACH statement,
* source/rtl/console.c
! Fixed __EJECT() writing an EJECT only if output device
was "PRINTER". This fixes problem reported by Ciro, and
also a very old TOFIX which was removed very long ago
by mistake. (see thread "Bug: __EJECT() (David)" on 2000-07-27)
[TOMERGE 1.0]
* source/rtl/treport.prg
! Fixed some linefeed differences.
[TOMERGE 1.0]
* source/vm/set.c
* Minor formatting.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* common.mak
+ Added generation of hbmainstd and hbmainwin libs.
* bin/hbmk.bat
+ Changed to use above libs. This also means that '-shared'
can now be used in Harbour binary distributions, too.
* bin/hbmk.bat
+ Added '-shared' support for MSVC.
! Fixed to cleanup mainstd.obj and mainwin.obj.
* ChangeLog
* Some TODO/TOFIX marked as [DONE]. One [DONE] marked
as [DONE - REOPENED].
* contrib/hbcurl/common.mak
* contrib/hbcurl/Makefile
* contrib/hbcurl/hbcurl.c
+ contrib/hbcurl/hbcurlm.c
+ Some disabled (not mainstream) functions moved to
a separate file.
* contrib/hbwin/win_prn2.c
* Minor fix in comment.