* utils/hbmk2/hbmk2.prg
! Fix to path normalizer. Last fix wasn't without side-effects
for relative dirs.
! Fixed potential RTE in yesterday's *.hbp handling.
* utils/hbmk2/hbmk2.prg
+ Added support for wildcarded project specs:
- This command will build each .hbp file found in current dir:
> hbmk2 *.hbp
- This command will build all .prg files in current dir,
each into a separate executable as separate projects:
> hbmk2 -target=*.prg
* contrib/gtwvg/gtwvg.h
+ Added extern for hb_wvt_GetStringAttrib(), hb_wvt_PutStringAttrib().
Required by terminal example.
* contrib/gtwvg/wvggui.h
* Comment format. Synced with gtwvg.h.
- examples/terminal/trm_server.prg
+ examples/terminal/trm_srv.prg
- examples/terminal/trm_client.prg
+ examples/terminal/trm_cli.prg
- examples/terminal/trm_appn.prg
+ examples/terminal/trm_app.prg
- examples/terminal/trm_appn.hbm
+ examples/terminal/trm_app.hbp
+ examples/terminal/trm_misc.c
+ examples/terminal/trm_cli.hbp
+ examples/terminal/trm_srv.hbp
* examples/terminal/terminal.prg
* examples/terminal/terminal.hbc
* examples/terminal/readme.txt
! Removed all inline stuff.
! Fixed problems with mixing C++/C objects due to
inline and missing function declarations.
% Windows only function replaced with RTL one.
* Renamed *.hbm files to .hbp, so now it's easy to build
the whole project with: hbmk2 trm_app.hbp trm_cli.hbp trm_srv.hbp
! Fixed hard coded local executable names + dirs.
! Synced client and server default ports.
; Now all of these tools build ok and they also work.
* contrib/hbwin/legacyc.c
! Deleted recently added compat calls.
(they are static in xhb and they collide with RTL names)
* examples/hbgf/hbgfgtk/hbgfgtk.hbm
! Minor fix.
* utils/hbmk2/hbmk2.prg
+ Added support for filter keywords 'shared' and 'static'.
* bin/postinst.bat
* utils/hbmk2/hbmk2.hbm
* utils/hbrun/hbrun.hbm
* Moved extra libs required in shared mode to .hbm files.
! Fixed hbl= -> hbi=
* utils/hbmk2/hbmk2.prg
! Fix to prev fix reported by Vailton. Could RTE when compiling .hrbs.
+ Added -hbraw switch which will make hbmk2 work like harbour compiler.
+ .hbp extension is also recognized when embedded.
* tests/hbpptest/compare.bat
! Fixed long fn.
* tests/bnch_win.bat
! Fix in comment.
* utils/hbmk2/hbmk2.prg
+ Added -echo= command line parameter. Similar to echo= in .hbc files.
! Fixed filename expansion behaviour on empty strings.
* Tweaked a little the filter parser to recognize keywords using
similar rules to Harbour compiler.
! Fixed filter parser not to RTE on malformed filters.
- examples/hbapollo/Makefile
+ examples/hbapollo/hbapollo.hbm
- examples/hboleold/Makefile
+ examples/hboleold/hboleold.hbm
- examples/hbsqlit2/Makefile
+ examples/hbsqlit2/hbsqlit2.hbm
- examples/hbgf/hbgfwin/Makefile
+ examples/hbgf/hbgfwin/hbgfwin.hbm
- examples/hbgf/hbgfos2/Makefile
+ examples/hbgf/hbgfos2/hbgfos2.hbm
- examples/hbgf/hbgfgtk/Makefile
+ examples/hbgf/hbgfgtk/hbgfgtk.hbm
- examples/hbwhat/Makefile
+ examples/hbwhat/hbwhat.hbm
* Replaced GNU Make files with hbmk2 make files. These should
now work outside the source tree. Please test them, they are
also good examples for .hbm files.
- examples/pe/Makefile
- examples/pp/Makefile
- examples/hbdoc/Makefile
- examples/guestbk/Makefile
- examples/misc/Makefile
- examples/dbu/Makefile
- examples/hscript/Makefile
- examples/rl/Makefile
- examples/Makefile
- examples/hbgf/Makefile
- Deleted unnecessary make files belonging to GNU Make system.
(these wouldn't work outside the source tree, f.e in a binary
distro which includes these examples in source form)
- examples/rdddbt
- Deleted this example as it doesn't build anymore.
* examples/hbsuper/hbsuper.hbm
! Added SVN header.
* source/rtl/Makefile
* source/rtl/errint.c
+ source/rtl/errintlo.c
* Split hb_errInternal() and hb_errInternalRaw() for
easier user override.
* utils/hbmk2/hbmk2.prg
! Fixed typo causing -i Harbour option missed in make
modes where Harbour compiler is the final step (like -gh).
+ Directory for target is now automatically created.
+ Directory for -instpath paths are now automatically created.
! Fixed path normalizer not fully normalizing in some cases
when path didn't begin with path separator (relative path).
! Fixed path builder to not be confused about non-native
path separators.
% Path builder will now normalize first to minimize steps.
+ Now all dirs *beginning* with ".hbmk" will be made hidden.
(previously only dirs named exactly ".hbmk" were made hidden)
(experimental)
* utils/hbmk2/hbmk2.prg
! Fixed -map option for mingw family. Strangely its help
says '-Wl,-Map FILE' is the format but this only works
if FILE exists on disk :/ otherwise it gives an error
that FILE isn't found. 'Wl,-Map,FILE' seems to work for
all cases. Pbly OS/2 and DJGPP should also be fixed.
! Applied above fix for DJGPP and OS/2 GCC. I didn't test
it but probably works the same way as in mingw and *nix
gcc.
+ contrib/examples/hbsuper
+ contrib/examples/hbsuper/hbsuper.hbm
+ contrib/examples/hbsuper/hbsuper.dif
+ contrib/examples/hbsuper/hbsuper.prg
+ contrib/examples/hbsuper/readme.txt
+ Added SuperLib portability patch and Harbour make script.
Original sources need to be downloaded from The Oasis,
just like for DBU and RL.
This is a slightly minimal patch than my previous version
to minimize any unnecessary space/command changes, and
I also reverted to original C code where it was possible.
* utils/hbmk2/hbmk2.prg
* Minor formatting.
* contrib/hbodbc/odbc.c
! Eliminated last UNICODE branching, this also fixes
embedded zero chars not being respected in UNICODE mode
in SQLDESCRIBECOL(). Not tested, ODBC users please do,
also someone pls review me.
* ChangeLog
* TODOs/TOFIXes marked as DONE.
* contrib/gtwvg/wvgwin.c
! Small fix to previous commit.
* contrib/gtwvg/wvgax.c
* contrib/gtwvg/wvgsink.c
! Widely cleaned code.
! Make use of remaining number to pointers.
! Renamed functions to WVG_* namespace.
! WvgActiveXControl() can be tested both with winsink|axcore event handellers.
NOTE: CPP mode generates a GPF when ole is unloaded due to refcount.
Mindaugas can you fix it.
* 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.