* contrib/hbxbp/gra.ch
* contrib/hbxbp/Makefile
* contrib/hbxbp/xbpgeneric.prg
+ contrib/hbxbp/xbpgra.prg
* contrib/hbxbp/xbppresspace.prg
+ Added Gra*() skeleton functions.
! Extended XbpPresSpace() class to cover next round of implementation.
; NOTE: I am not been able to find a way to execute Gra*()
functions on a widget's presentation ( device context )
space. Qt documentation clearly indicates that this is
only possible from withing method QEvent::Paint of
concerned widget. And it is correct. Windows itself also
does not allow to paint from outside of WM_PAINT message.
However my experiments have led me to the conclusion that
this is possible if every widget is subclasses and QEvent_Paint
is method is implemented. This is a very tedious and
very error prone job. If anybody come across some sparkling
idea how this can be achieved in a resonable way, please
speak out.
However on other devices, such as, printer and bitmaps these
functions will be working. In the first phase I will implement
it for printing only, later for widgets.
* src/vm/extrap.c
! Fixed to do UNICODE to "ANSI" conversion in module listing
code for WinCE platform. It'd be nice if a WinCE user
could test it.
* src/rtl/filesys.c
! Silenced warning on newer mingwarm compilers about
unused function.
* utils/hbmk2/hbmk2.prg
! Fixed autodetection of mingwarm, when Cygwin is also
in PATH (it is supposed to be there, as it is a
requirement for C compiler).
* utils/hbmk2/hbmk2.prg
+ hbmainstd/hbmainwin lib is now added for mingw family
to lib list also for static executables. It fixes the GPF
at startup with Equation Solution mingw64 build. I hope
it doesn't create any harm for other builds, it remains
to be tested.
% Disabled -fomit-frame-pointer for mingw64.
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* utils/hbrun/Makefile
* config/win/mingw.mk
% "HB_MAIN" logic eliminated from local make files and moved
to mingw.mk only.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/qth/QList.qth
* contrib/hbqt/qth/QObject.qth
* Re0generated: contrib/hbqt/qtgui/?.cpp
* Re-generated: contrib/hbqt/qtcore/?.cpp
+ Eliminated any occurance of hb_retptr(*) calls.
Now all objects which are created with "new" or are
returned as a method call are encapsulated in GC
pointer. This is a step closer to find-out the potential
GPFs.
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
% declare hb_stack TLS pointer in MT HVM as static when HVM is compiled
with HB_HVM_ALL=yes
* harbour/src/compiler/hbcomp.c
! added protection against multiple freeing the same expression on
some errors in compiled code. It's necessary after removing reference
counters which made such protection indirectly. It fixed bug reported
by Teo.
* harbour/include/hbsetup.h
! check GCC version for hot and cold function attribute macros
* utils/hbmk2/hbmk2.prg
+ Readded -pipe option for gcc (except djgpp) and icc/linux family
compilers in a more sophisticated way. Now -pipe option is only
used when hbmk2 controls the output filename, and in such case
the output filename will always be deleted by hbmk2 if the
C compiler returned error. This way -pipe can never leave
faulty or dummy object files on disk, confusing incremental builds
or just leaving trash behind. BTW, it'd be interesting to
know why such seemingly buggy behavior hasn't been fixed in gcc
in the last 6-7 years... (making -pipe option useless for Harbour
build process f.e.)
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
! Fixed behavior of book-marks. Now color representation
on bookmarked lines is persistent and consistent with
corresponding buttons in the statusbar.
* contrib/hbssl/evpmd.c
! Disabled md2 support for >= 1.0.0 OpenSSL versions.
Seems they dropped it.
* contrib/hbssl/ssl.c
* contrib/hbssl/x509.c
* contrib/hbssl/sslctx.c
! Disabled some code parts which didn't compile with
>= 1.0.0 OpenSSL versions. This is not the right fix,
but I just can't figure what went wrong (or what
has been changed) in OpenSSL which cases it. There
is something wrong around 'X509_NAME' symbol.
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
- Deleted '-pipe' option. Efficient, but buggy. It didn't take
too long to bump into the problem: On build error, the
.o file is generated with some dummy content, so a second
build attempt will silently make build errors ignored.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* src/rtl/filesys.c
! Fixed fs_win_get_drive() to return zero (instead of -1)
when drive letter wasn't returned by Windows API.
(it's not clear what is the proper error behavior here)
! Fixed fs_win_set_drive() to apply upper limit on input
parameter.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* contrib/rddsql/sddfb/sddfb.c
! Few cleanups in the FB RDDSQL interface (macro and type usage).
; It's not an attempt to fix recently reported bugs on the list.
* contrib/gtwvg/gtwvg.c
! Fixed the HB_GTI_PALETTE protocol uniform with other GT's.
* contrib/gtwvg/tests/demowvg.prg
! ThreadID() -> Hb_ThreadID()
BTW ThreadID() is a Xbase++ compatible function.
* src/rtl/filesys.c
+ Using direct Windows API instead of compiler specific
C RTL functions to get/set current disk.
; Please review.
- Deleted one Windows TODO: setmode() to be convered to
direct Windows API call. This translation is done in
C RTL, so Windows API cannot be used.
; There is no remaining non-standard (compiler specific)
C RTL function usage on the Windows platform AFAICT.
* contrib/hbmysql/tmysql.prg
* Formatting.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
* contrib/hbide/ideeditor.prg
* contrib/hbide/idethemes.prg
+ Reimplemented "Themes".
* Now it is possible to change current line and line area background
colors. Also synchronized the current colors for these areas
with rest of the theme.
* Now you can apply a particular theme globally to all tabs.
* Made easy the way GUI elements are presented, it is more intuitive.
* contrib/hbcurl/hbcurl.c
+ Added suggested workaround for potential security exploit
when used with libcurl < 7.20.0.
See details here:
http://curl.haxx.se/docs/adv_20100209.html
* external/sqlite3/sqlite3.c
* external/sqlite3/sqlite3.h
+ sqlite upgraded to 3.6.23 (from 3.6.22)
* INSTALL
+ Added one more real-life example for unnecessary
envvars (HB_DIR).
* src/vm/estack.c
* include/hbstack.h
% hb_stackDispLocal() internal debug function made static,
and guarded with HB_VM_DEBUG (pls change it to something
better if there is one), so it's not included in every
regular build and final executable.
* contrib/hbxpp/dmlb.ch
+ Added comment that header is also used by C code.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/gtwvg.h
! Partial revert of previous revert:
There was no reason to revert macro names, so
I kept these in sync with the rest of Harbour,
only colors are kept as non-MS-DOS compatible.
; TOFIX: Palette indexing.
* examples/hbdoc2/gentxt.prg
! Fixed to previous fix to rather delete unused
parameter in definition, than addig it to
declaration and mark it as unused.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/gtwvg.h
! Reverted back the change in colors.
Sorry Viktor, I unnecessarily requested you to
match it with GTWVT. Infact the whole concept of
GUI elements is based on white and gray combination
as per these colors.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Prepared to manage current line and line area colors.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideobject.prg
+ Implemented "Code Completion" feature.
How it works:
1. Load prototype tags in "Projects Functions Lookup".
2. Activate some editor tab.
3. Start typing a function proto.
4. After 3 characters a popup will appear beneth the cursor.
5. Select from the list, by mouse or use navigation keys.
6. Prototype will be there in the editor exactly with
same cases your prototype is defined.
Input is welcome.
* config/win/cygwin.mk
* config/win/mingw.mk
* config/wce/mingwarm.mk
% Added -pipe option to win/gcc compilers, this way it's faster
(but consume more memory) since it passes intermediate files
- I could only spot the .s file - without writing them to disk.
Probably we should enable this on other platforms as well,
and if it works out well, also in hbmk2.
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* use hb_compGetFuncID() to detect reserved function names
* harbour/include/hbapi.h
* harbour/src/common/Makefile
- harbour/src/common/reserved.c
- removed not longer used hb_compReservedName() function
* contrib/hbide/resources/funclist.ui
* contrib/hbide/resources/funclist.uic
! Shifted "Projects Selection" list downwards.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
! Reworked behavior of function's prototype display as tooltip.
Now it stays there until you press ")", i.e., a function call is
made complete. If you move the cursor anywhere in the editor,
the tooltip will disappear, and will reappear when cursor
will be past the "(" opening brace. The same holds true
if you play with another widget. Tooltip has a suspended
and active behavior.
! Changed the behavior of "line numbers" display in the editor tabs.
Now it is active for all the tabs on all the panels. The icon
at the left will visualize as active or passive accordingly.
! Corrected behavior of navigation in "Editor tabs" also as
par with behavior in "Projects Tree".
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/src/common/expropt1.c
* harbour/src/compiler/hbcomp.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyc
* harbour/src/macro/macro.yyh
+ added new type of expression: SETGET
% eliminated reference counter in expressions
(this code was never fully safe because expression optimizer was not
respecting multiple references)
% replaced all HB_COMP_EXPR_DELETE() macro usage with HB_COMP_EXPR_FREE()
and deleted HB_COMP_EXPR_DELETE() macro
- removed not longer used hb_compExprClone()
Above modifications reduce a little bit total memory consumed by
compiler and macrocompiler giving also some minor speed improvement.
* harbour/ChangeLog
* marked TODO for above modification as DONE.
* src/rtl/hbini.prg
* Deleted several unnecessary empty lines at EOF.
* INSTALL
* Minor.
* include/dbinfo.ch
* Formatting.
+ include/hb.ch
* include/Makefile
+ Added Harbour header which #includes commonly used in
applications.
It also enables us to easily extend standard set of macros
and constants.
* contrib/hbide/idesaveload.prg
* "hbide.set" -> "hbidewnd.ini". At least it uses standard
extension. Still wrong solution and a remaining TOFIX.