* 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.
* utils/hbmk2/hbmk2.prg
* marked the file as UTF8
* added accent to my own name. let's see on which platforms
and configs it appears alright (second "a" should appear
with an acute accent: "a'")
[ms-dos and OS/2 is not expected to work]
* utils/hbmk2/hbmk2.prg
- do not include Harbour bin dir in linker libpath on non-*nix
systems. In could cause some compilers (f.e. mingw) to link
to .dlls stored there (f.e. 3rd party dynamic dlls enabled
with HB_INSTALL_3RDDYN), not letting user supplied libpaths
to kick in. If you for some reason want to include Harbour
bin dir in libpath, use: -L${HB_LIB} option, or to include
dynamic lib dir (emulating old behavior on non-*nix), use
-L${HB_DYN}
! fixed -env option processing after 2012-06-14 12:01 UTC+0200
* utils/hbmk2/hbmk2.prg
* made --hbinfo to return information only for the top project
(not nested ones)
This should fix regression of not generating .hbx files for
the hbqt special case since 2012-06-06 16:02 UTC+0200
+ added --hbinfo=nested to return information also on nested
projects
+ --hbinfo will now append an 0x0A byte after each JSON
block, so multiple JSON blocks can be parsed by the caller
* contrib/hbqt/hbqt_commons.hbm
* changed to be friendly with '--hbinfo=nested' hbmk2 option
(not used in Harbour make process)
* contrib/hbrun/hbrun.hbp
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/Makefile
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
; trying to crawl out from this pool of dynamic mud.
* enabled all embedded headers for both hbmk2 and hbrun
so we're back to square one with this, except that
now hbmk2 also holds the full set of core headers not
just a minimal selection. The reason is to keep hbmk2
as the distributable runner tool. It also syncs all
C compilers and platforms.
* hbmk2 built in -static mode again. It will fix the
'make clean' problem, it will make it distributable.
* hbrun changed to be built in -shared mode to allow
to load dynamic modules.
; so this is the state right now (if I didn't make any mistake):
hbmk2:
all embedded core headers
no contrib modules
static build
no dynamic modules
fully movable/distributable as a runner
cannot be self-registered as .hb runner on Windows
hbrun:
all embedded core headers
some contrib modules
shared build when HB_BUILD_CONTRIB_DYN enabled
dynamic modules possible
less movable/distributable, needs harbour dll, dynamic modules need Harbour dir layout
can be self-registered as .hb runner on Windows
; "Ext:" banner on interactive shell will have blue color
if dynamic modules are enabled and grey if not.
* utils/hbmk2/hbmk2.prg
* minor change to show the actual name of the tool
in the error message requesting a -shared build.
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsx.c
* src/common/hbfsapi.c
! deleted explicit newlines at EOL in HB_TRACE() calls
* INSTALL
+ added new '0. GUARANTEES AND LIABILITY' section
! updated instructions to create debug build
* utils/hbmk2/hbmk2.prg
* minor cleanups
* utils/hbmk2/Makefile
+ enabled dynamic version of hbmk2 only for mingw builds.
Rest of the targets may or may not work due to CRTL
usage (fprintf()) from HB_COMPILE*() calls which causes
GPF in currently generated shared builds, most probably
due to double copy of statically linked CRTL code.
mingw uses MSVCRT.DLL, so it's not prone to this.
Solution is either to avoid file handling CRTL calls
in compiler code, or to tweak -shared build setting to
death to make it work for all non-mingw compilers.
Both of these is very difficult.
This means that dynamic module loading from scripts
will only work in hbmk2 built with mingw.
; TOFIX: 'make clean' on contribs doesn't work with mingw,
because harbour dll is deleted before hbmk2 is
called, so it cannot be started for cleanup.
* contrib/hbtip/encqp.prg
* contrib/hbtip/hbtip.hbx
+ added two new functions:
TIP_QPENCODE(), TIP_QPDECODE()
formerly only accessible via OOP code
* utils/hbmk2/hbmk2.prg
% merged FindInPath() and __hbshell_FindInPath() into one
* contrib/hbrun/hbrun.hbp
* restored to embed headers in hbrun
* utils/hbmk2/hbmk2.prg
! minor cleanups in runner UI
! fixed to open .dbf using cmd 'hbmk2 test.dbf' (emulating
old hbrun behavior)
+ shows error messages when dynamic library failed to load
* contrib/hbblat/hbblat.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbssl/hbssl.hbp
! fix to prev
* contrib/hbpost.hbm
* contrib/hbqt/hbqt_common.hbm
* deleted extra pathsep
* contrib/hbfbird/hbfbird.hbp
* contrib/hbgd/hbgd.hbp
* contrib/sddfb/sddfb.hbp
! fixed to use .dll imp lib source in -hbdyn mode.
it's a fix for experimental HB_INSTALL_3RDDYN option.
* contrib/make.hb
* minor cleanups in errorlevel descriptions
* utils/hbmk2/hbmk2.prg
! fixed finding scripts in path and without extensions
in runner mode
! fixed to not execute '.' when runner mode is started
with 'hbmk2 .' command
* utils/hbmk2/hbmk2.prg
+ will now gather a list of existing 3rd party dll dependencies
using the file-group named 'depimplibsrc'. This list can
be used to install these files to user-specific locations
* contrib/hbpost.hbm
+ added global solution to install 3rd party dll dependencies,
with minor fixes
* contrib/hbblat/hbblat.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbssl/hbssl.hbp
- deleted local solution to install 3rd party dll dependencies
* contrib/hbcurl/hbcurl.hbp
* contrib/hbssl/hbssl.hbp
+ added experimental support to install 3rd party .dll
dependencies for these libs into the Harbour bin dir.
Enabled with new build option, not yet documented,
see it in the patch.
* src/rtl/cdpdet.prg
+ request linkage of all codepages. I chose this to ensure
the detection code can use all CPs automatically and it
won't be unusable if users forget to request CPs
themselves. This has an overhead if someone uses CP
autodetection, but it makes it foolproof.
* utils/hbmk2/hbmk2.prg
* minor formatting
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/Makefile
% disabled embedded headers again, now dir layout detection should
work well even under GNU Make, so it's not necessary