* include/hbapigt.h
* src/rtl/gtapi.c
+ added HB_BOOL hb_gtCompatBuffer() to return the status
of HB_GTI_COMPATBUFFER setting.
BTW, shouldn't the default setting be changed to be
Clipper compatible?
* contrib/hbnf/dispc.c
+ added support for the now default HB_GTI_COMPATBUFFER == .F. mode.
% exit char string is now internally converted to a keycode list.
* use HB_UCHAR (was char) for buffer cells.
* TOFIX changed for support for input file encoding and
translating this to unicode when putting to screen.
* contrib/hbnf/dfile.prg
+ FT_DFSETUP() 9th parameter got a Harbour extension by
enabling an old low-level feature to be able to pass
list of exist chars as array of numerics. This is unicode
compatible.
* contrib/hbnf/tests/dfile.prg
+ Pass array of numerics to FT_DFSETUP() function, which
make K_F3 exit key work.
+ Display keyboard as number and as char in unicode compatible way.
* utils/hbmk2/hbmk2.prg
* explicitly turn off HB_GTI_COMPATBUFFER for scripts
to not depend on Harbour default
* contrib/gtwvg/class.prg
* changed GET to Get():New()
% minor optimization to GET handling
; Check me I'm unsure how to test this part
* contrib/hbnf/pegs.prg
* changed GETs to Get():New()
! replaced GetList memvar with a LOCAL
; TOFIX?: It seems to offer wrong move suggestions in some cases
+ contrib/hbnf/tests/pegs.prg
+ added test app for FT_PEGS()
* contrib/hbnf/tests/menu1.prg
! fixed to use RETURN (not QUIT) at the end of Main()
* tests/setkeys.prg
! unicode keyboard handling fixes
* use ?/?? instead of [Q]QOUT()
* utils/hbmk2/hbmk2.prg
% minor GetList related optimization in shell prompt
* contrib/gtwvg/tests/demowvg.prg
+ SET CENTURY ON
* utils/hbmk2/hbmk2.prg
! fixed to recognize built-in .hbm files even if a dir
was present in the name (f.e. when referencing a
built-in .hbm from another referenced .hbm)
* contrib/hbnf/menu1.prg
* contrib/hbnf/popadder.prg
! FT_Adder() fixed to use proper drawing chars for single boxes
% changed to use codeblock as achoice() use func
% optimized out one THREAD STATIC var in FT_Adder()
* utils/hbmk2/hbmk2.prg
! fixed handling of -ku:<cp> option. Now hbmk2 will pass
-ku to Harbour compiler, which seems to help, but I
still can't see any effect of the <cp> passed, so still
unsure if this is the way to go.
See original commit here: 2012-04-23 20:31 UTC+0200
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
+ added dummy return values for certain HB_GTI_* parameters,
so they won't RTE an app when used with the other GT.
(the problem is wider and ideally all HB_GTI_* values
should at least return the same _type_ with all GTs)
So f.e. now wvtext.prg works with GTWIN, but it should
with any GTs. The point of GTs is that they're
_replacable_, just like RDDs.
* tests/wvtext.prg
+ select WVT dynamically when run under hbrun.
! protect Windows specific parts with
defined( __PLATFORM__WINDOWS )
* utils/hbmk2/hbmk2.prg
- deleted hbshell_gtInteractive() public shell API.
INCOMPATIBLE.
+ replaced above with hbshell_gtSelect( [<cGT>] ) -> NIL
by default <cGT> will be the default interactive
(positionable) GT for the given platform.
+ include GTWVT in code, so scripts can now use WVT
if they explicitly request it with this code:
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ added experimental feature to embed whole build-file
logic into the hbmk2 executable and reference these
from user make files. Currently .hbm files are supported
(.hbm file is simply a collection of hbmk2 options
which do not form a separate subproject). To refer
to such built-in .hbm files, one should use $<filename.hbm>
It's a straightforward way to ship ready-made
collections of options for specific purposes, without
installing external .hbm files. Filenames are case-sensitive.
NOTE: When referring to built-in .hbm files, it will
behave as it was part of the parent make file, which
means ${HB_DIR}, ${HB_DIRNAME}, ${HB_NAME}, ${HB_SELF}
will return the parent file, not the name of the
built-in file itself.
As usual you can override any options by overriding
them after including the .hbm file.
+ added option to remove files added via -instfile=
option by using -instfile=[<group>:]. All files to
the specified group will be removed. Note that
removing internally added files by hbmk2 itself
(f.e. the main built target and implibs) have
undefined results, so avoid it.
! fixed to use THREAD STATIC instead of STATIC in some
places (could not cause problems in current usage)
* use hb_HCaseMatch() instead of hb_HSetCaseMatch()
+ utils/hbmk2/pkg_inst.hbm
* utils/hbmk2/hbmk2.prg
+ added built-in .hbm file named '$hb_pkg_install.hbm'
Its purpose is to provide complete 'install' logic
for external projects. It will install .hb, .hbx,
.ch, .txt, tests/* files, along with installing
necessary libs, dynlibs and implibs. It honors
HB_INSTALL_3RDDYN and HB_INSTALL_IMPLIB settings.
* extras/hbusb/hbusb.hbp
+ use $hb_pkg_install.hbm instead of rolling the complete
install logic locally.
* utils/hbmk2/Makefile
+ added Harbour compiler option so that files from subdirs
can be included (not yet used)
* utils/hbmk2/hbmk2.prg
+ added ${HB_ADDONS} macro which will return the path
of the default addons dir, where 3rd party project might
deploy their distributable files (headers, libs, etc)
Note, the return value doesn't have an ending backslash,
so you need to add it if you need it.
* extras/hbusb/hbusb.hbp
+ added sample usage of full installation of this package,
utilizing ${HB_ADDONS} macro. This method can be used by
any 3rd party project.
* minor cleanup to force the implib name to a value
to avoid problems with double extension ("libusb-1.0")
* extras/hbusb/tests/hbmk.hbm
* since hbusb is installed now, the relative reference
to hbusb.hbc could be changed to simply 'hbusb.hbc' and
autofind will find it.
* contrib/gtwvg/class.prg
* contrib/gtwvg/syswnd.prg
* contrib/hbgd/gdchart.prg
+ using HB_IS*() for strict type checking instead of 'IF x == NIL'
check recently converted from DEFAULT TO commands.
This is INCOMPATIBLE for cases where wrong type was passed
for these parameters.
* contrib/xhb/cstruct.prg
* contrib/xhb/tcgi.prg
* src/debug/dbghelp.prg
* src/debug/dbgtmenu.prg
* src/debug/dbgtmitm.prg
* src/debug/debugger.prg
* contrib/hbhttpd/core.prg
* contrib/hbpgsql/tests/cache.prg
* contrib/hbpgsql/tpostgre.prg
* contrib/hbnf/metaph.prg
* extras/gtwvw/tests/ebtest7.prg
* extras/guestbk/testcgi.prg
* extras/gfspell/spell.prg
% deleted 3rd parameter from expressions 'StrTran( x, y, "" )'
Empty string is the default.
* contrib/xhb/cstruct.prg
! fixed formatting and indentation using hbformat and manually
* utils/hbmk2/hbmk2.prg
% minor opt by replacing 'iif( ! Empty(' with 'iif( Empty('
* contrib/hbnf/aavg.prg
* contrib/hbnf/adessort.prg
* contrib/hbnf/amedian.prg
* contrib/hbnf/anomatch.prg
* contrib/hbnf/any2any.prg
* contrib/hbnf/asum.prg
* contrib/hbnf/clrsel.prg
* contrib/hbnf/d2e.prg
* contrib/hbnf/ftround.prg
* contrib/hbnf/invclr.prg
* contrib/hbnf/nwsem.prg
* contrib/hbnf/popadder.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/tests/clrsel.prg
* contrib/hbnf/tests/d2e.prg
* do not use common.ch. __defaultNIL() is used instead, for
full compatibility here. Should ideally be changed to
hb_default(), but it will break RTE compatibility for
invalid values. Should we do it? (this would also fix
calling internal functions from a contrib)
* contrib/hbnf/tests/d2e.prg
! fixed defaulting to wrong value (regression)
* extras/gtwvw/tests/drawimg.prg
* extras/gtwvw/tests/ebtest7.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
* extras/gtwvw/tests/wvwmouse.prg
* extras/gtwvw/tests/wvwtest9.prg
* do not use common.ch. Use hb_default() instead.
; Only gtwvg, hbgd, xhb and httpsrv remain to use common.ch
for DEFAULT TO command. Notice it's bad practice since it
only checks for NIL for defaulting, so RTE can easily be
forced by passing a value of wrong type. DEFAULT TO can
be directly replaced with __defaultNIL(), or ideally with
hb_default(). Notice that hb_default() is a pure function,
and since the default value needs to be evaluated even if
correctly typed parameter is passed, it may have
a performance penalty if that default value is coming as
a result of complex expression or function call. I value
type safety more than performance, so in most cases this
is IMO a useful compromise, though of course someone might
as well use 'IF ! HB_IS*( xVar ); xVar := xValue; ENDIF'
which is type safe while having no extra RT performance
penalty, though a bit verbose.
* tests/hbpptest/hbpptest.prg
* utils/hbtest/rt_misc.prg
* do not include unused common.ch
* contrib/xhb/cgi.ch
* formatting
* config/postinst.hb
* utils/hbmk2/hbmk2.prg
+ Use the second parameter in HB_CWD() calls.
* contrib/hbformat/hbfmtcls.prg
! fixed embedded comment in last commit.
- tests/test_all.prg
* deleted MS-DOS batch specific tool. Now hbrun can
be used to run tests very easily
* contrib/hbmisc/tests/rtfclass.prg
* platform dependent stuff deleted/fixed
* contrib/xhb/xhbfs.c
* corrected .prg macro to C one (doesn't change
compiled code)
* tests/test.prg
* minor
* utils/hbmk2/hbmk2.prg
* changed "||" operator to ".OR." in #ifdef
* utils/hbmk2/hbmk2.prg
+ added tricky feature which attempts to autodetect whether
a script is meant to be run on an interactive CUI as
opposed to the default command line (CLI, aka GTCGI) mode.
It makes it possible to keep cmdline oriented scripts
running using GTCGI, while full-screen apps are run
using GTWIN and friends without code changes. F.e.
/tests apps can be run this way easily.
; scripts can force to use CLI by using:
'REQUEST HB_GT_CGI_DEFAULT'
; scripts can switch to CUI mode explicitly by running
this code:
#ifdef __HBSCRIPT__HBSHELL
hbshell_gtInteractive()
#endif
Experimental, might change to something more elegant.
* tests/db_brows.prg
! fixed CUI for unicode and readded CUI drawing elements
* tests/sbartest.prg
* comment deleted
+ contrib/hbnf/hbmk.hbm
+ added .hbm for to make it easy to build embedded test
code protected by FT_TEST macro
(note most/some test code will fail in -w3 mode)
* contrib/hbnf/nwuid.prg
* contrib/hbnf/tempfile.prg
* minor in comment
* contrib/hbnf/pchr.prg
* use string literals instead of Chr() call
* minor formatting
* contrib/hbnf/dispmsg.prg
! fixed test code to compile in -w3 mode
! fixed key handling for unicode (including one
regression from recent days)
* formatted // comments
* contrib/hbnf/aredit.prg
* use Asc() instead of using hardwired char codes
* contrib/hbnf/clrsel.prg
! fixed test code to compile in -w3 mode
! replaced Chr() calls for CP437 chars to unicode strings
* formatted // comments
* contrib/hbnf/woy.prg
* use Tone() instead of Chr( 7 )
* utils/hbmk2/hbmk2.prg
+ hbshell_gtInteractive() to set hb_SetTermCP()
! for pure unicode mode, set HB_GTI_BOXCP to UTF8EX
(note this will cause problems with current default
box drawing chars used in RTL)
* utils/hbmk2/examples/plug_bis.hb
% minor cleanup
- contrib/hbnetio/utils/hbnetioq
- deleted (find it here or from repo history: http://sourceforge.net/projects/hbqt/)
* utils/hbmk2/examples/contribf.hbc
* updated
* utils/hbmk2/hbmk2.prg
! add -static option for win-wce/mingw* platforms
when -fullstatic hbmk2 option is used. (in sync
with rest of platform). Reported by Przemek.
Please checkme!
* utils/hbmk2/hbmk2.prg
+ hbstart.hb is now searched also at standard location on *nix
system (the same places where hbmk.hbc is searched.)
+ hbstart.hb is now executed as normal script code
(was line by line), so this .hb file can be just like
any other .hb file.
* utils/hbmk2/hbmk2.prg
+ added support for 'hbstart.hb' script that gets
executed _line by line_ on each startup. File is
looked for in current dir than in the dir of
hbrun/hbmk2 executable.
! fixed -run option on Windows for GUI executables (f.e. gtwvt)
Thanks to Klas for details and Qatan for initial report
[ It's possible similar patch is needed for OS/2. Please
test and report. ]
* contrib/hbqt/qtgui/qth/QWidget.qth
! disabled HBQT methods working differently on each platform.
meaning they can only be used in platform dependent way (ie.
they are non-portable methods) while HBQT is to be a portable
component.
- If .qth files start to support conditionals, it can
be readded as built-time option:
HB_BUILD_PRGFLAGS=-DHBQT_NON_PORTABLE
- or kept as local patch for those who need this.
- or moving HBQT/HBXBP/HBIDE to separate repository with
(http://sourceforge.net/projects/hbqt/)
Pritpal as project lead. It will be great benefit
for both project, leaving them both focusing on
their apparently different goals and development style.
- contrib/hbqt/tests/activex.hbp
- contrib/hbqt/tests/activex.prg
- contrib/hbqt/tests/activex.ui
- Deleted Windows-specific code added to the portable
HBQT component. Please readd it in separate HBQT project.
+ contrib/hbide/xbpaddons/dbstruct.ui
+ contrib/hbide/xbpaddons/fetchdate.ui
+ contrib/hbide/xbpaddons/tables.ui
- contrib/hbide/xbpaddons/xbpdbstruct.ui
- contrib/hbide/xbpaddons/xbpfetchdate.ui
- contrib/hbide/xbpaddons/xbptables.ui
! redone the naming scheme introduced few month ago
and added to this new component yesterday, which
was since undone by Pritpal.
* contrib/hbide/xbpaddons/xbpaddons.hbp
* contrib/hbide/hbide.hbp
! deleted wrongly added -L option by Pritpal
.hbc should take care of it.
* utils/hbmk2/hbmk2.prg
! hbshell_gtInteractive() will now create new GT only when necessary
+ internal changes to support multiple initial commands
* utils/hbmk2/hbmk2.prg
* hbmk_OutStdRaw() and hb_OutErrRaw() hbmk2 plugin
API functions parameter list modified so that now they
expect hbmk context as first parameter.
INCOMPATIBLE.
! made sure that hbmk_OutStdRaw() and hbmk_OutErrRaw()
won't emit output in --hbinfo mode.
* contrib/hbqt/hbmk2_qt.hb
* utils/hbmk2/examples/plug_bis.hb
* updated as per above incompatible change
* contrib/make.hb
* minor
* utils/hbmk2/hbmk2.prg
! keep -trace mode turned off in --hbinfo mode, otherwise
some plugins (f.e. HBQT plugin) might litter the output
with their own messages, making the JSON output corrupt.
Thus problem might have caused that dependencies were
wrongly detected when HBQT was involved in the
dependency tree. Thanks to Lautaro for the report.
! further steps made that stray output is minimized in
--hbinfo mode. (though some raw plugin API call may
still generate output, it's yet to be done, and it will
API compatibility breakage in few calls)
* harbour/utils/hbmk2/hbmk2.prg
* harbour/config/win/bcc.mk
+ added support for BCC6.5 - please verify me.
; unicows library does not support BCC 6.5. BCC users who want
to compile Harbour should delete harbour/lib/3rd/win/bcc directory.
TODO: add build time option to disable unicows in windows harbour
builds
* harbour/config/dos/watcom.mk
* harbour/utils/hbmk2/hbmk2.prg
! cleaned and synced optimization flags which interacts with calling
convention
* harbour/src/3rd/zlib/zconf.h
! added missing export attribute in OS2 dll builds
* harbour/src/3rd/zlib/zlib.dif
* rediffed
* harbour/src/compiler/hbmain.c
* minor modification to pacify warning generated by some compilers
* harbour/src/rtl/gete.c
! added missing #include "hbapicdp.h" in DOS and OS2 builds
* harbour/src/rtl/gtdos/gtdos.c
! fixed typo
* harbour/contrib/3rd/sqlite3/sqlite3.hbp
! set SQLITE_OS_OTHER in Watcom OS2 builds - it does not support
PTHREAD and some OS extensions used in default SQLite builds
* harbour/src/rtl/fstemp.c
! added yet another protection against buffer overflow
% eliminated redundant code
* harbour/include/hbvmpub.h
* harbour/include/hberrors.h
* harbour/src/compiler/hbgenerr.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/genc.c
+ added new warning message:
STATIC Function '????' defined but never used
It's enabled by -w2 and higher.
The idea was inspired by recent modification in xHarbour but
implementation is completely different. BTW I cannot even make
this warning working in xHarbour.
* harbour/src/rtl/cdpdet.prg
! disabled static functions which are unused in different builds
* harbour/src/debug/debugger.prg
! removed unused function StripUntil()
* harbour/utils/hbmk2/hbmk2.prg
! compile hbmk_COMP_Setup() and FindInSamePath() static functions
only for platforms were they are used
! commented out unused static functions: ArrayJoinNoClone(),
AAddNewAtTop(), DepTreeToList()
! commented out unused static functions:
rtlnk_libtrans(), rtlnk_filetrans()
Looks that this functionality is not longer supported.
TOFIX: re-enable it or remove this code and document that automatic
translation for libraries and files defined in Clipper .lank
files is not longer supported~.
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/contrib/hbtip/cgi.prg
* harbour/contrib/hbide/hbqreportsmanager.prg
* harbour/contrib/hbide/actions.prg
* harbour/contrib/hbide/console.prg
* harbour/contrib/hbide/themes.prg
* harbour/contrib/hbide/editor.prg
* harbour/contrib/hbxbp/browse.prg
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbsms/sms.prg
* harbour/contrib/xhb/hterrsys.prg
! commented out unused static functions - please review the code
; Warning: I tested only Linux builds. Please check other builds and
disable unused static functions in the rest of code.
* contrib/hbhttpd/hbhttpd.hbc
+ added comment about HB_HTTPD_OPENSSL (similar purpose
as HB_TIP_OPENSSL)
* utils/hbmk2/hbmk2.prg
+ added env= .hbc command to be able to control envars
also from .hbc files.
- contrib/hbhttpd/hbhttpds.hbc
- contrib/hbtip/hbtipssl.hbc
- deleted alternate .hbc files that enabled OpenSSL
flavor of these libs. Autofind didn't work with these.
Use HB_[HTTPD|TIP]_OPENSSL=yes envvar setting to enable
these. You can use -env: hbmk2 option or env= .hbc
command to enable it, so f.e. hbtipssl.hbc can be
emulated by this .hbc file:
-- hbtipssl.hbc
env=HB_TIP_OPENSSL=yes
hbtip.hbc
--
+ utils/hbmk2/examples/plug_bis.hb
+ hbmk2 plugin for bison support. Syntax checked but not tested.
* utils/hbmk2/examples/plug_tpl.hb
+ made it display an error message when run in standalone mode
* contrib/hbqt/hbmk2_qt.hb
* formatting
* utils/hbmk2/hbmk2.prg
- deleted compatibility plugin API functions starting with
HBMK2_. It was not enabled anyway and I chose not to deal
with as probably there is very few people using these.
So, change all plugin API calls to start with HBMK_*()
instead of HBMK2_*(). INCOMPATIBLE.
* utils/hbmk2/hbmk2.prg
+ select Harbour language modul in conjunction with
hbmk2's own language modul. This makes for a little more
localization and also tests and demonstrates the
language modul subsystem.
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
* minor changes to do not require std.ch
+ enabled -u option for hbmk2 source code.