* bin/postinst.bat
* Force English language hbmk2 in Harbour build.
* contrib/hbtip/client.prg
+ Added proxy support.
Borrowd from xhb, work of Luiz Rafael Culik.
Formatted, minor fixes applied, TRY/CATCH error handling
method swapped from simple bool retval method (which
is otherwise used in hbtip). Not tested yet.
* harbour/contrib/rddsql/sddmy/mysqldd.c
+ added support for MySQL TIMESTAMP, DATETIME and TIME types. These
types are mapped to @,8 and T,4 field types, and native harbour
timestamp type.
* harbour/include/hbextern.ch
+ added a dozen of Harbour functions
; NOTE: about 120 functions are still not included into this .ch:
SX_*(), USRRDD_*(), __DBG*(), __CLS*(), HB_COMPILE*(), etc.
* harbour/contrib/hbqt/hbqt.ch
+ New constants.
* harbour/contrib/hbqt/Makefile_gen
! Arrangement.
* harbour/contrib/hbxbp/Makefile
+ xbpstatic.prg
* harbour/contrib/hbxbp/gra.ch
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbpgeneric.prg
* harbour/contrib/hbxbp/xbppushbutton.prg
+ harbour/contrib/hbxbp/xbpstatic.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Implemented XbpStatic() class.
XBPSTATIC_TYPE_GROUPBOX
XBPSTATIC_TYPE_RAISEDBOX
XBPSTATIC_TYPE_RECESSEDBOX
XBPSTATIC_TYPE_RAISEDLINE
XBPSTATIC_TYPE_RECESSEDLINE
XBPSTATIC_TYPE_TEXT
Few components are scheduled for tomorrow.
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated the above mentioned XbpStatic() parts.
Now the background and foreground colors are true to its values.
NOTE: Can someone please post message on QT developers forum
about a bug where QColor():name return #BBGGRR instead of #RRGGBB
which is documented. I used a workaround for this bug.
* harbour/include/hbapirdd.h
* harbour/source/rdd/workarea.c
* harbour/source/rdd/wafunc.c
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/hsx/hsx.c
* harbour/source/rdd/usrrdd/usrrdd.c
* modified RDD method declaration (DBENTRYP_*) to eliminate casting.
3-rd party RDD code have to be updated.
* modified some RDD structures to force more strict alignment.
Warning!!! AREA structured modified - all 3-rd party RDDs which
redefines AREA members instead of using AREA structure
directly have to be updated.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddnsx.h
* harbour/include/hbrdddel.h
* harbour/include/hbrddsdf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/hbdbsort.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/contrib/rddads/rddads.h
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddads/adsfunc.c
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbbmcdx/hbbmcdx.h
* updated for new method declaration
* modified RDD AREA structures definition to use supper AREA structures
directly as 1-st member instead of redefining individual AREA members.
It resolves the synchronization problem so now modification in super
AREA structures does not force modifications in source code of
descendant RDDs. It also eliminates possible typos in manual structure
synchronization.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
! Changed special language ID macro from ${lng} to %{hb_lng} to
avoid collision with normal macros.
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbp3state.prg
* harbour/contrib/hbxbp/xbpcheckbox.prg
* harbour/contrib/hbxbp/xbpcombobox.prg
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpmenubar.prg
* harbour/contrib/hbxbp/xbpmle.prg
* harbour/contrib/hbxbp/xbpradiobutton.prg
* harbour/contrib/hbxbp/xbpscrollbar.prg
* harbour/contrib/hbxbp/xbpsle.prg
* harbour/contrib/hbxbp/xbpspinbutton.prg
* harbour/contrib/hbxbp/xbpstatusbar.prg
* harbour/contrib/hbxbp/xbptabpage.prg
* harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Added :setPointer() method to change the cursor shape for a widget.
! Advanced implementation of Presentation Parameters. Now the
base structure is almost like Xbase++ one. About to
generate a Style Sheet based on PresParametrs array.
! Code tweaked more organized.
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated the use of Cursor Shapes.
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpmle.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Implemented fonts management.
:setFontCompoundName( "10.Tohama italics" )
Started XBP_PP_* implementation.
NOTE: This implementation is based on QT's powerful mechanism
of CSS inspired Cascading Style Sheets. It effectively
means that look-and-feel of the requested parameters are
guaranted to be rendered irrespective of the platform.
This also means that a "true" inheritance is achieved
in the widgets. For example, if you set the color and
font of a top-level dialog, all children of it will also
inherit it. Xbase++ also documents this behavior but
also notify that some of the widgets do not respond to
this request, i.e., XbpPushButton(), XbpTabPage(), etc.
But in Harbour-QT-Xbase++ it is possible, and, by
all means desirable.
Anyway, I am more interested what the group think. It will
be heartening if some real-time Xbase++ users participate
on the subject. I do not want to cook my own food.
* harbour/contrib/hbxbp/tests/demoxbp.prg
! Demonstrated to use fonts and inheritance. Please play.
* harbour/contrib/hbqt/hbqt.h
* harbour/contrib/hbqt/hbqt_qftp.cpp
* harbour/contrib/hbqt/hbqt_qhttp.cpp
* harbour/contrib/hbqt/qth/QFtp.qth
* harbour/contrib/hbqt/qth/QHttp.qth
* harbour/contrib/hbqt/TQFtp.prg
* harbour/contrib/hbqt/TQHttp.prg
! Fixed ( char * ) argument usage in QFtp and QHttp classes.
Infact <qint64 read( char * data, qint64 length )> are written
as is in the header. I could not find a solution to
auto generate it because of <length> argument which could
never be known to first parameter.
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/appevent.ch
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpgeneric.prg
* harbour/contrib/hbxbp/xbpsle.prg
* harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
! Rewrote the event management system exactly like
Xbase++. Now it is possible to sub-class methods and callback slots.
+ harbour/contrib/hbxbp/xbpappevent.prg
+ Added PRG level events conversion mechanism.
I wanted it to be C code for speed purposes, anyhow,
as agreed we do not want any C code in hbxbp.
* harbour/contrib/hbxbp/tests/demoxbp.prg
! Few experiments. You may viaualize some artifacts.
/* NOTE: I am struggling to receive events from another
thread of Harbour code in the event filter.
It seems default event dispatched can be
invoked only from main thread. Anybody to rescue ?
*/
* harbour/contrib/hbqt/generator/qt45.qtp
* harbour/contrib/hbqt/Makefile_gen
* harbour/contrib/hbqt/hbqt.ch
* harbour/contrib/hbqt/hbqt.h
+ harbour/contrib/hbqt/hbqt_qdragenterevent.cpp
+ harbour/contrib/hbqt/hbqt_qdragleaveevent.cpp
+ harbour/contrib/hbqt/hbqt_qdragmoveevent.cpp
+ harbour/contrib/hbqt/hbqt_qdropevent.cpp
+ harbour/contrib/hbqt/hbqt_qmoveevent.cpp
+ harbour/contrib/hbqt/hbqt_qresizeevent.cpp
+ harbour/contrib/hbqt/hbqt_qwheelevent.cpp
+ harbour/contrib/hbqt/TQDragEnterEvent.prg
+ harbour/contrib/hbqt/TQDragLeaveEvent.prg
+ harbour/contrib/hbqt/TQDragMoveEvent.prg
+ harbour/contrib/hbqt/TQDropEvent.prg
+ harbour/contrib/hbqt/TQMoveEvent.prg
+ harbour/contrib/hbqt/TQResizeEvent.prg
+ harbour/contrib/hbqt/TQWheelEvent.prg
+ harbour/contrib/hbqt/qth/QDragEnterEvent.qth
+ harbour/contrib/hbqt/qth/QDragLeaveEvent.qth
+ harbour/contrib/hbqt/qth/QDragMoveEvent.qth
+ harbour/contrib/hbqt/qth/QDropEvent.qth
+ harbour/contrib/hbqt/qth/QMoveEvent.qth
+ harbour/contrib/hbqt/qth/QResizeEvent.qth
+ harbour/contrib/hbqt/qth/QWheelEvent.qth
+ Added few more classes.
* harbour/contrib/hbqt/hbqt_slots.cpp
* harbour/contrib/hbqt/hbqt_qftp.cpp
* harbour/contrib/hbqt/hbqt_qhttp.cpp
! Result of #define hbqt_par_char( n ) ( ( char* ) hb_parcx( n ) )
NOTE: QT sources are generated dynamically so please do not make
changes to them directly. I do not know if above casting
will work or not but it is just to pacify the warnings.
Alternatively we can comment out the relevant functions in
/qth/QHttp.qth and /qth/QFtp.qth. I kept it like this
as if someone could test if it works.
* include/hbapifs.h
* source/rtl/filebuf.c
* source/rtl/filesys.c
* Changed file I/O buffer parameters from
'( [const] BYTE * )' to '( [const] void * )'
* utils/hbmk2/hbmk2.prg
+ Added ${hb_curdir} macro support.
+ Added ${hb_first} macro support (will return first source name
specced on cmdline)
+ Added support for 'sources=' line in .hbc files. This
will accept .prg, .c/.cpp, .po/.pot, object and resources.
For resources, also wildcards are supported. Files with
no extension will be considered .prg.
This also replaces former 'pos=' line.
This can be useful to put some central sources into all
project without using a lib (or when a lib isn't an option
for some reason).
- man
- Dir deleted.
* bin/postinst.bat
* mpkg_gnu.bat
+ Moved copying of root doc (ChangeLog, INSTALL) files
to postinst.bat.
* make_gnu.bat
! Minor fix to not accept extra cmdline parameters when
in full build mode.
* make_gnu.bat
+ Now make_gnu.bat will find embedded GNU Make even if it's
started from another directory. F.e. to rebuild only
one contrib or core lib, it's enough to go to that dir
and type:
..\..\make_gnu.bat
! More fixes to make build work on paths containing spaces.
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
* mpkg_win.nsi
* mpkg_gnu.bat
* Formatted header comment.
+ Added reference to INSTALL.
* source/common/hbhash.c
! Fixed error in prev commit.
(strange that MSVC didn't complain)
* mpkg_win.nsi
+ Added comment that this file shouldn't be used directly.
* source/rtl/hbmd5.c
+ HB_MD5(), HB_MD5FILE(): New logical parameter added, which
controls whether to return binary data or hexadecimal string.
The default is .T. which will return hexa string, to stay
compatible. Later we should switch the default to .F..
* mpkg_gnu.bat
* Updated requirement section.
* contrib/hbxbp/tests/demoxbp.prg
! Fixed the same warning again.
* Changed to actually close the window when using close icon
or Alt+F4.
; Thanks Priptal for the close fix, GPF is now gone.
* mpkg_gnu.bat
! Using shorter temp dir names to make DOS command.com happy,
so that it copies all libs with a little more chance.
It's recommended to use a short base dir for DOS builds.
* contrib/hbct/ascpos.c
* contrib/hbct/ctwfunc.c
* contrib/hbct/ctcrypt.c
* contrib/xhb/filestat.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbnf/fttext.c
* contrib/hbpgsql/postgres.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* source/rtl/mouse53.c
* 'const' cleanup.
; NOTE: I rather didn't commit BYTE to char in CTWIN.
; TOFIX: Some of these will result in warnings when passing values
to external API calls. I'd like to ask developers to review
what the intent was. Sometimes external API declarations
are missing 'const', so it's safe to pass them these buffers,
but it should be checked in documentation.
---
../../fi_wrp.c: In function 'HB_FUN_FI_LOADFROMMEM':
../../fi_wrp.c:372: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../fi_wrp.c: In function 'HB_FUN_FI_GETFILETYPEFROMMEM':
../../fi_wrp.c:887: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2718: warning: passing argument 4 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2718: warning: passing argument 9 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2809: warning: passing argument 7 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 9 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
---
* contrib/hbgd/gdwrp.c
! Fixed const warnings.
* TOFIX: Remaining:
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2659: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2676: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2794: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2800: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
* harbour/source/rtl/dates.c
! fixed CTOD() to be CA-Cl*pper compatible in decoding dates like:
SET DATE FORMAT TO "YYYY-MM-DD"
? CTOD("000002009.000000012.0000000000000027.1")
? CTOD(" 0002009. 000012. 000028 1")
? CTOD("xx0002009.xxx000012.xxxxxxxxxx000028 1")
? CTOD("000 02009.00 000012.000 000028 1"), "*"
? CTOD("2007 11 29")
? CTOD(" 2007 11 29 ")
? CTOD("2007-1 1-29")
? CTOD("2007- 1 1 - 2 9 ")
! fixed HB_CTOT() to use the same formatting rules as CTOD() in
CA-Cl*pper - now delimiters between values are strictly required.
* INSTALL
+ mpkg_gnu.bat
- mpkg_dos.bat
- mpkg_win.bat
% Windows and DOS package make batches merged into one.
! Deleting of BCC junk files where broken after latest changes.
* make_gnu.bat
! Fixed to ignore HB_BUILD_DLL for dos platforms.
* contrib/hbqt/hbqt_qhttp.cpp
* contrib/hbqt/hbqt_qftp.cpp
! Commented with TOFIX comment two compilation errors
reported on the list, to allow full Harbour build.
; TOFIX: Fix hb_parc() returned buffer passed directly
to QT to return data. This would previously
cause HVM corruption, not with 'const' it's
caught by compiler.
* INSTALL
* make_gnu.bat
+ Added support for Cygwin builds (passes call to make_gnu.sh).
+ Added Cygwin build starter example.
+ Cygwin mentioned as a requirement for mingwarm builds,
also added to PATH.
! Fixed cygwin autodetection.
! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
* Merged mingw+msys and cygwin bash based build methods,
and titled as "alternate" method.
Now all supported compilers work by starting up make_gnu.bat.
* utils/hbmk2/hbmk2.prg
! Change compiler autodetection to work for cygwin.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
! Fixed build process to work in paths containing spaces.
I didn't test the batch in pure DOS, so I may have broken it.
* config/win/install.cf
* config/wce/install.cf
! Fixed 'install' to work when there is a space in install path.
* make_gnu.bat
* INSTALL
+ Added support for HB_BUILD_LOG envvar. If set to 'yes',
it will automatically set log output filename to:
'log-<arch>-<comp>.txt'
if set to 'no' it will no make any extra redirection,
if set to any other value, it will be used for output
(both std and err). The batch will set HB_BUILD_LOGFILE
to the filename used for output for processing.
This feature requires Windows NT or upper host.
I didn't enable this feature yet by default to not break
existing user setups, but maybe I'll do it before the
final release.
* Modified text shown (+ beep thrown) when build failed.
* Messages now all start with 'Harbour'.
* Do not do the second build pass if the first one failed.
* contrib/hbwin/legacy.prg
! Fixed CreateObject() not working due to typo.
Thanks to Itamar Lins for the report.
* mpkg_dos.bat
* mpkg_win.bat
* mpkg_win.nsi
+ Enabled HB_BUILD_LOG=yes.
* Silenced copy, zip, makensis commands.
+ Added message about failed build process.
* Changed to use 'copy' instead of 'xcopy'
* Changed internals so now they don't require HB_COMPILER
and HB_ARCHITECTURE to be set. This means that now
we can rely on autodetection even for mpkg_*.bat files.
Creating an installer is very easy now for most cases.
Just type:
mpkg_gnu.bat
* source/vm/set.c
+ Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
is set to .T.. This is the default which means by default we aren't
CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.
* source/rdd/dbf1.c
! Minor typo in comment.
* doc/en-EN/hb_apiit.txt
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/extend.c
* source/rtl/gtwvt/gtwvt.c
* source/rdd/dbf1.c
* contrib/gtqtc/gtqtc.cpp
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/hbwin/olecore.c
* examples/hboleold/win_ole.c
* Finishing long planned function renames to clear up
a very (10 years) old naming inconsistency.
To adapt you code to this, please do changes below:
1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
Unmodified code will generate compile time errors, so it's easy
to spot where the modifications need to be done. For most users,
only case 1) will need to be dealt with.
; INCOMPATIBLE. Please update your code.
* source/rtl/hbi18n1.c
* source/rdd/dbfnsx/dbfnsx1.c
* hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
* contrib/gtwvg/wvggui.c
* contrib/gtqtc/gtqtc.cpp
! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
parameter.