* contrib/hbwin/win_prn2.c
* Cleaned hb_parcx() vs. hb_parc() usage in one function.
(hb_parcx() is only needed if there is no preceding HB_ISCHAR()
check. If there is hb_parc() will also always return a valid
pointer).
+ contrib/hbwin/tests/testprn2.prg
+ Added raw printing test.
* utils/hbmk2/hbmk2.prg
% -undef/-D Harbour options will be reduced in cross-compilation
scenarios. If a __PLATFORM__* value appears as both -undef and
-D it will be omitted. This results in smaller command line,
plus works around this warning:
'Warning W0001 Redefinition or duplicate definition of #define __PLATFORM__WINDOWS'
when using the embedded compiler (doesn't seem to happen with
external compiler).
+ Added autodetection for mingw64 and mingwarm compilers. It should
now be enough to use -arch=wce on the command line to initiate a
WinCE cross-build if the compiler is setup in the path or using
the embedded installation. So it's recommended to use -arch=wce
instead of -arch=mingwarm from now on. For mingw64 builds, no
extra switch is needed, if in the PATH, it will be autodetected.
! Added Harbour command to Harbour command line shown in case of
error.
* contrib/gtwvg/wvgcuig.c
! Fixed one GCC warning. I'm not sure if this is a correct one,
my only goal was to make the warning disappear and to define
a previously undefined case.
; TOFIX: This warning still remains, and indicates unsafe code:
wvgsink.c:516: warning: dereferencing pointer 'hSink.33' does break strict-aliasing rules
* contrib/gtwvg/tests/demoxbp.prg
* contrib/gtwvg/tests/demowvg.prg
! Fixed hard-wired paths, so that now some more samples
work regardless of Harbour installation dir.
; NOTE: Never use hard-wired absolute paths inside any Harbour
component. We now have hb_DirBase(), please make use of it.
; NOTE: For me most of the samples still don't work, AX toolbar icons
don't appear, and most of the AX samples fail with an unclosable
window.
* contrib/hbwin/axcore.c
* contrib/gtwvg/wvgsink.c
* Moved recently added extra AX functions to GTWVG.
* Kept optimized, hbwin version of HB_AX_ATLCREATEWINDOW().
* Others renamed and commented:
WIN_AXGETUNKNOWN() -> WVG_AXGETUNKNOWN()
WIN_AXSETVERB -> WVG_AXDOVERB()
! HB_AX_ATLSETVERB() now accepts HWND pointers, too.
! HB_AX_ATLAXGETCONTROL() now accepts HWND pointers, too.
; TOFIX: GTWVG uses HB_AX_* prefix to denote AX function, while
these should be named WVG_AX*().
; TODO: Probably the full content, or at least the universally
useful portion of wvgsink.c should eventually go to hbwin,
but all these functions need further cleanups,
and they also have to be renamed. I don't know what we
should stay compatible with so it's difficult to make
any moves. Some test code showing the usefulness of
these function would be probably help.
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
+ added hbformat
* harbour/include/hbdefs.h
* harbour/include/hbapi.h
* harbour/source/common/hbarch.c
* redefined macros used to store/retrieve integer and double values
to/from byte arrays in little and big endian order.
Now GCC uses inline functions which are hardly optimized by compiler
giving on x86 machines the same code as direct casting (with the
exception to march=i686 where putting double value forces strict
alignment to avoid hidden CPU exception) but they respect strict
aliasing rules. It also means that now GCC builds always respect
strict alignment even if HB_STRICT_ALIGNMENT macro is not set.
* include/hbsetup.h
* source/common/hbver.c
+ Moved CPU detection to core header. Introduced
HB_CPU_* macros. Now they can be used to branch code
by CPU type.
* contrib/rddads/adsmgmnt.c
+ Added my copyright.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
! Fixed remaining hb_parc() vs hb_parcx() usages.
% WAPI_TABCTRL_CREATE() further simplified.
Please review, it may be wrong.
* utils/hbmk2/hbmk2.prg
* Minor internal change.
* include/hbver.ch
* source/rtl/version.c
+ Added hb_Version( HB_VER_COMPILER_CPP ) which
returns if the C compiler was used in C++ mode.
Mainly added for HB_BUILDINFO() emulation, maybe it
can be useful to set defaults in hbmk2, we will see.
* contrib/xhb/Makefile
+ contrib/xhb/xhbver.prg
+ Added emulation of HB_BUILDINFO() xhb function.
+ contrib/xhb/xhbver.ch
+ Copied xhb's hbver.ch under this name.
(borrowed from xhb, work of Andi Jahja)
* contrib/hbct/print.c
+ added PRINTSEND() support for Windows platform.
(Borrowed from xhb, work of Pavel Tsarenko, with few minor changes)
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
! Fixed two new warnings after my recent commits.
* contrib/hbwin/hbwapi.h
* Tweaked previous commit. COLORREF and HRESULT now using
hb_retnint() again to fix 32-bit numbers appearing as signed ones
at .prg level.
* source/rdd/usrrdd/rdds/arrayrdd.prg
; Added some patches recently committed to xhb:
! few fixes provided by Quique
+ Added AR_LOCK() function, but commented.
; NOTE: Francesco, would you mind reviewing these changes?
* utils/hbmk2/hbmk2.prg
* Minor formatting, comment added.
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_commctrl.c
! wapi_par_COLORREF() fixed to use hb_parnl(). COLORREF is a 32bit value.
! Rest of wapi_par_*() macros fixed to accept pointers only.
If someone needs to pass numbers, use WIN_N2P() to convert them
to pointers first.
! Corrected casts in wapi_par_WORD() and wapi_par_DWORD().
! Fixed wapi_ret_HRESULT() to use hb_retnl(). It's a 32bit status value.
! Fixed wapi_ret_COLORREF() to use hb_retnl().
! Fixed WAPI_TABCTRL_CREATE() for 64-bit mode, font type was wrong.
! Fixed WAPI_TABCTRL_CREATE() to return pointer instead of number.
* contrib/hbwin/Makefile
! Reverted accidental edit in prev commit.
* INSTALL
* Minor cleanups to prev.
* contrib/hbwin/axcore.c
* Minor formatting.
% Variable scopes adjusted.
% WIN_AXCREATEWINDOW() optimized.
- Deleted ToOutDebug() stuff. Please use TRACE() subsystem for
these parts.
; NOTE: I'm note sure we should have a WIN_AXCREATEWINDOW() function
there. Rather, we should have a WAPI_CREATEWINDOWEX() function
which serves the same purpose, but in a generic manner, also
usable for AX purposes. Is there anything against this idea?
* utils/hbformat/hbformat.prg
* contrib/gtwvg/wvgclass.prg
* contrib/gtwvg/wvgscrlb.prg
* contrib/gtwvg/wvgdlg.prg
* contrib/gtwvg/wvgpaint.prg
* contrib/gtwvg/wvgdarea.prg
* contrib/gtwvg/wvgmle.prg
* contrib/gtwvg/wvglistb.prg
* contrib/gtwvg/wvgtoolb.prg
* contrib/gtwvg/wvgpushb.prg
* contrib/gtwvg/wvgsle.prg
* contrib/gtwvg/wvgtreev.prg
* contrib/gtwvg/tests/demoxbp.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/gtwvg/wvgwnd.prg
* contrib/gtwvg/wvgcrt.prg
* contrib/gtwvg/wvgdatar.prg
* contrib/gtwvg/wvgradio.prg
* contrib/gtwvg/wvgsysw.prg
* contrib/gtwvg/wvgmenub.prg
* contrib/gtwvg/wvgphdlr.prg
* contrib/gtwvg/wvgbitmp.prg
* contrib/gtwvg/wvgcheck.prg
* contrib/gtwvg/wvgstatb.prg
* contrib/gtwvg/wvgstatc.prg
* contrib/gtwvg/wvghtmlv.prg
* contrib/gtwvg/wincback.prg
* contrib/gtwvg/wvgtabpg.prg
* contrib/gtwvg/wvg3stat.prg
* contrib/gtwvg/wvgcombo.prg
* Some formatting. (' -> " and #include lines)
* contrib/hbwin/axcore.c
+ __XAXREGISTERHANDLER()
An extension of __AXREGISTERHANDLER() where connection points are
enumerated instead of finding - many OLE's have more than one interface -
a practical discovery. Mindaugas please check if it can be the default.
+ WIN_AXATLGETCONTROL() - Normalizing PRG calling convension.
+ WIN_AXCREATEWINDOW() - Can be dropped later.
+ WIN_AXGETUNKNOWN() - Useful in many situations.
+ WIN_AXSETVERB() - ---^---
+ WIN_AXRELEASEOBJECT() - Experimental
Note that these function are primarily aimed at making experiments
via gtwvg/winsink.c interface and after testings can be moved or removed.
/* Mindaugas, I receive a GPF when terminating the appln.
Also I cannot see that ISink is ever subject to garbase collection.
And "count" never returns to 0. I must be missing something, but...
*/
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
! Fixed HB_OLEAUTO() -> WIN_OLEAUTO()
* Formatting.
! Fixed a few ISNIL()s.
! Fixed a few hb_parc() to hb_parcx() (many potential GPFs).
% Removed unnecessary ISBYREF() and hb_ret() calls.
! Prefixed some static vars with 's_'.
! Fixed potential buffer overrun and memory corruption in
Invoke() function.
* contrib/rddads/adsfunc.c
+ Changed to always define all Harbour level functions.
For unsupported ADS versions, these function will be stubs
returning dummy values.
; TODO: Do the same in other contribs, like hbsqlit3. Anyone?
* contrib/rddads/ads1.c
! Fixed typos and missing casts preventing to compile with
pre-6.00 ACE versions.
* contrib/rddads/Makefile
+ contrib/rddads/adsextrn.ch
+ Added EXTERNAL header.
* contrib/xhb/Makefile
+ contrib/xhb/datesxhb.c
+ Added these xhb compatibility functions:
TSSECS(), TIMEOFDAY(), HMS2D(), TTOD().
Borrowed from xhb, work of Giancarlo Niccolai, Walter Negro,
with few changes.
* contrib/xhb/hbcompat.ch
+ Added translation for these functions:
DATETIME(), HOUR(), MINUTE(), TTOS(), STOT(), TTOC(), CTOT()
(NOTE: I don't know if the workings of corresponding Harbour
functions are fully compatible. If not we can add
xhb_*() flavours locally in xhb lib)
* contrib/xhb/fparse.c
* contrib/rddsql/sddmy/mysqldd.c
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
* contrib/rddads/adsx.c
* contrib/examples/terminal/trm_client.prg
* source/rdd/dbfnsx/dbfnsx1.c
% "" -> NULL where applicable (hb_retc*(), hb_retds(), hb_itemPutC*(),
hb_arraySetC*(), hb_errInternal(), hb_itemPutDS(), hb_arraySetDS())
* contrib/hbqt/hbqt_qtextdocument.cpp
* contrib/hbqt/hbqt_qgridlayout.cpp
* contrib/hbqt/hbqt_qpainter.cpp
* contrib/hbqt/hbqt_qeventloop.cpp
* contrib/hbqt/hbqt_qicon.cpp
* contrib/hbqt/hbqt_qtreeview.cpp
* contrib/hbqt/hbqt_qtextline.cpp
* contrib/hbqt/hbqt_qdesktopwidget.cpp
* contrib/hbqt/hbqt_qhttp.cpp
* contrib/hbqt/hbqt_qlineedit.cpp
* contrib/hbqt/hbqt_qcombobox.cpp
* contrib/hbqt/hbqt_qlistwidget.cpp
* contrib/hbqt/hbqt_qtextcursor.cpp
* contrib/hbqt/hbqt_qtextlayout.cpp
* contrib/hbqt/hbqt_qftp.cpp
* contrib/hbqt/hbqt_qclipboard.cpp
* contrib/hbqt/hbqt_qurl.cpp
* contrib/hbqt/hbqt_qwebpage.cpp
* contrib/hbqt/hbqt_qtextedit.cpp
* contrib/hbqt/hbqt_qpixmap.cpp
* contrib/hbqt/hbqt_qsplashscreen.cpp
* contrib/hbqt/hbqt_qtablewidget.cpp
* contrib/hbqt/hbqt_qtreewidget.cpp
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_qfont.cpp
* contrib/hbqt/hbqt_qmainwindow.cpp
* contrib/hbqt/hbqt_qdir.cpp
* contrib/hbqt/hbqt_qwidget.cpp
* contrib/hbqt/hbqt_qstyle.cpp
* contrib/hbqt/hbqt_qabstractbutton.cpp
* contrib/hbqt/hbqt_qobject.cpp
* contrib/hbqt/hbqt_qcolor.cpp
* contrib/hbqt/hbqt_qtextstream.cpp
* contrib/hbqt/hbqt_qwebview.cpp
* contrib/hbqt/hbqt_qboxlayout.cpp
* contrib/hbqt/hbqt_qstatusbar.cpp
* contrib/hbqt/hbqt_qtabwidget.cpp
* contrib/hbqt/hbqt_qscrollarea.cpp
* contrib/hbqt/hbqt_qtextcharformat.cpp
! Fixed to use HB_ISNUM() instead of HB_ISNIL().
% Don't call HB_ISNUM() where the default value is
zero anyway. hb_parn*() functions will return zero
anyway. (well, maybe this exploits the array-type
bug in our Extend API.)
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
* Avoiding ISNIL(). Corrected just a few occurences.
This practice is still wrong in most of the cases in
GTWVG code, so if the goal is GPF-free and consitently
behaving apps, these would better be fixed. With
string params ISNIL() is either superfluous or simply
don't protect agains GPFs, for rest of the cases it
either causes unexpected defaults (zero), or simply
superfluous for the rest of the cases. IOW: Avoid it,
use HB_ISNUM(), HB_ISCHAR() / parcx() instead.
* contrib/hbgd/gdwrp.c
* Formatting.
* contrib/gtwvg/wvgsink.c
! Fixed warning.
* Some formatting, minor cleanup.
* source/rtl/hbi18n2.prg
+ __I18N_POTARRAYSAVE() got logical flag to suppress Harbour version
number in saved file comment.
+ __I18N_POTARRAYSAVE() got logical flag to suppress source
reference information in save file. This way it's possible to
lessen the number of .po file updates and to avoid the growth
caused by texts moving around while files are being edited.
* utils/hbmk2/hbmk2.prg
+ Added option to save .po files in a version repository friendly
way, this means no Harbour version number and no source file
references in .po files. You can activate this using -minipo
option.
* harbour/contrib/hbwin/hbwinole.h
* changed HB_OLE_C_API define to be compatible to other similar
defines, i.e. defined() vs. !defined() instead of 1 vs. 0
* harbour/contrib/hbwin/axcore.c
! fixed missing IDispatchVtbl definition in C++ mode
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* a few C/C++ compatibility macros introduced. Cleaned code: two
version of method call code is not required any more
* harbour/include/hbxvm.h
* harbour/source/vm/hvm.c
* harbour/source/compiler/gencc.c
! added missing RT error for wrong values used in SWITCH statement
in code generated for -gc3 output
* utils/hbmk2/hbmk2.prg
+ Added -cpp/-nocpp options to help screen.
* Removed C++ mode from TODO. I honestly forgot what was
missing from this feature (besides lack of support for
pocc compiler, since I couldn't find such option there),
please report it if you find something.
* harbour/source/rtl/gtxwc/gtxwc.c
! fixed typo in HB_GTXVG_SQUARE shape initialization
* harbour/include/hbrddnsx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* code cleanup - use predefined #define instead of hardcoded constant
values
* harbour/source/rtl/valtoexp.prg
* added REQUEST __objSetClass
* harbour/source/compiler/gencc.c
! fixed -gc3 code generated for switch statement - thanks to Marek and
Xavi for information and self contain example
TODO: add missing RT error in -gc3 output when wrong (non integer
and non string value) is used in SWITCH statement
* utils/hbmk2/hbmk2.prg
* Changed multitarget support. Instead of special .hbt extension
(which was not removed), not -target=<target>[.hbm|.prg] option
can be used to force a distinct target from the command line.
This way it's more flexible, easy to use and clear without needing
a special extension alias.
Here's the updated usage:
There are two ways to do multitarget hbmk2 sessions:
1.) hbmk2 [<common_params1>] -target=target1[.hbm|.prg] [<common_params2>] -target=target2[.hbm|.prg] [<common_params3>]
Examples:
hbmk2 -target=prog1 -target=prog2 -target=prog3
hbmk2 -target=prog1.prg -target=prog2.prg -target=prog3.prg
hbmk2 -target=mylib1.hbm -target=mylib2.hbm -target=myapp.hbm
hbmk2 -trace -pause -target=mylib1.hbm -target=mylib2.hbm -target=myapp.hbm -beep
2.) hbmk2 [<common_params1>] -target <target1_params> -target <target2_params> [-notarget <common_params2>]
Examples:
hbmk2 -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg -notarget -beep
* Changed ' = ' operators to macro LEFTEQUAL().
+ Added Set( _SET_EXACT ) setting to make sure above operator
works regardless of caller/default state.
; NOTE: IMO it would be useful to add a pseudo function
equivalent to non-exact equality operator. This would
clear up hacks like above.
* doc/dirstruc.txt
! Typo.
* utils/hbmk2/hbmk2.prg
! Fixed to morph harbour binary extension according to target
platform. This should fix HB_INSTALL_PREFIX autodetection and
also -trace display of harbour command line.
Please test.
* harbour/bin/hb-func.sh
! Changed comp= line to not have a filter. Filters aren't
supported here, even the whole line isn't processed yet
by hbmk2.
* INSTALL
* Minor correction.
* utils/hbmk2/hbmk2.prg
! Fixed to only add -march/-mtune gcc parameters for mingw/gcc
targets. These values are ignored by mingwarm on Windows, but
generate errors on Linux.
* contrib/hbfimage/fi_winfu.c
+ FI_WINDRAW() now accepts pointer type as second parameter.
! FI_WINDRAW() fixed warning with gcc 4.4.0.
* utils/hbmk2/hbmk2.prg
! Fixed to use hb_osPathSeparator() instead of hardcoded
backslash in mingw* init section, as it may also be used
on *nix in cross compilation scenarios.
! Dropped .exe extensions from mingw* init section to also
work on *nix systems.
* Extended xmingw, mingw32ce detection for all *nix systems.
* contrib/hbodbc/odbc.c
! Cast.
* INSTALL
* config/global.cf
* Removed requirement of 3.81 or upper GNU Make, now it's a
recommendation only. If I understand correctly after
2009-05-22 16:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
older ones can also be used without parallel build feature.
Lowered minimum version to 3.70.