* contrib/make.hbs
* contrib/hbpost.hbm
+ use HB_LIB3RD hbmk2 macro instead of rolling custom logic
to detect and enable unicows lib.
* utils/hbmk2/hbmk2.prg
+ added HB_LIB3RD internal variable (usable as filter and as macro)
it's filled when '<hbroot>/lib/3rd/<plat>/<comp>' directory is present
+ added EXPERIMENTAL pseudo-function for filters to detect presence
of file or directory: {hb_ispath='<file or directory>'}. if the
value is not an absolute path, it will be meant relative to source
hbmk2 file.
* package/harb_win.mft
* package/harb_win.rc
* package/mpkg_win.nsi
* package/mpkg_src_nightly.sh
* package/winuni/mpkg_win_uni.nsi
* "Harbour Project" -> "Harbour"
* "hbrun" shortcut -> "Harbour (Interactive shell)"
* src/common/hbverdsp.c
* do not show '(WINANSI)' in the list of version flags.
* utils/hbmk2/hbmk2.prg
+ add -inc to xbuild and xmate converted projects, this being
the default mode of operation (AFAI guess) of these tools.
* contrib/hbct/disk.c
* contrib/hbnf/kspeed.c
* contrib/hbnf/peek.c
* contrib/hbnf/proper.c
* contrib/hbnf/ftidle.c
* contrib/hbnf/mouse.c
* contrib/hbnf/stod.c
* contrib/hbnf/getvid.c
* contrib/hbnf/getver.c
* contrib/hbnf/getenvrn.c
* contrib/hbnf/mkdir.c
* contrib/hbnf/rmdir.c
! formatting
* utils/hbmk2/hbmk2.prg
+ will now add lib/3rd dir to the link commands, so
unicows lib will be found in uninstalled Harbour SVN
source tree.
* contrib/make.hbs
* contrib/hbpost.hbm
+ automatically enable unicows support for contribs, if available.
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* config/global.mk
* config/rules.mk
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* package/winuni/mpkg_win_uni.bat
* package/mpkg_win_nightly.bat
- deleted special support for unicows libs for nightly
and official releases, along with HB_DIR_UNICOWS envvar.
Now these libs are included in all builds.
* config/win/global.mk
+ automatically enable unicows support for core, if available.
* config/win/xcc.mk
* config/win/icc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
+ added support for SYSLIBPATHS. (used by unicows support)
! fixed bcc dynlib link command missing libpaths.
; NOTE: watcom unicows support is missing, as it needs
special tricks due to missing separate libpath option
in this compiler/linker.
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* synced with config/win files
+ config/libbin.mk
+ added rule to install pre-built binary libs.
(for unicows libs)
* Makefile
+ lib/3rd
+ lib/3rd/win
+ lib/3rd/win/mingw
+ lib/3rd/win/mingw/Makefile
+ lib/3rd/win/mingw/libunicows.a
+ lib/3rd/win/mingw/libunicows_license.txt
+ lib/3rd/win/bcc
+ lib/3rd/win/bcc/unicows_license.txt
+ lib/3rd/win/bcc/unicows.lib
+ lib/3rd/win/bcc/Makefile
+ added locally hosted unicows runtime/implibs from:
http://libunicows.sourceforge.net/ by author Vaclav Slavik.
With these libs, it's possible to use UNICODE builds
with both MS unicows.dll and opencows .dll on legacy
Windows-system (Win9x).
These libs will be installed to Harbour core lib directory,
and also used from lib/3rd directory, if they are available.
I've uploaed mingw and bcc libs because these are used
nearly exclusively by users, but they are also available
for older msvc, watcom, dmc and lcc compilers. I don't
think it's worth the extra size to support Win9x using
these legacy compilers, anyhow they can be added easily
if needed (except watcom, which requires more work).
; These changes mean three things:
1. Harbour now has only one build mode on Windows: UNICODE
This will greatly simplify coding and testing and will
allow to focus much better on what's important. It also
allows to drop lots of dual code dealing with separate
UNICODE and non-UNICODE branches.
2. Harbour default builds will now run on Win9x (currently
when using mingw or bcc compilers), though UNICOWS.DLL
is now required. See INSTALL how to get this free .dll
from MS. This also means that Harbour can now theoretically
by built on Win9x systems (I didn't try).
3. Harbour users can create UNICODE builds compatible with
Win9x, by simply adding -lunicows to their .hbp projects.
No extra installation is required.
* utils/hbmk2/hbmk2.prg
! fixed foreign make file conversion to add comment
prefix for original filename included in .hbp file
+ .xbp conversion will add -hblib and -hbdyn if filename
contains .lib and .dll respectively. (not sure how
is this official rule or just convention or anything)
* harbour/package/harbour.spec
! added missing attribute for harbour.ld.conf file
! added optional hbhttpds library
* harbour/contrib/hbct/envparam.c
* harbour/contrib/hbct/dummy.c
* harbour/contrib/hbct/hbct.hbp
* harbour/contrib/hbct/hbct.hbx
+ added ENVPARM() - now it's implemented for all platforms but
it should be tested on different *nixes - some of them may not
support 'char * environ' public variable
* harbour/contrib/xhb/hbserv.c
* added missing dummy functions in DOS builds
* harbour/utils/hbmk2/hbmk2.prg
! do not set binding to hb_forceLinkMainWin() when -nohblib and -gui
switches are used together
* harbour/include/hbapicdp.h
* harbour/src/rtl/cdpapi.c
+ added new C functions hb_cdpnDupUpper(), hb_cdpnDupLower(),
hb_cdpnDup2Upper() and hb_cdpnDup2Lower().
They should be used instead of hb_strUpper() and hb_strLower()
functions because they can work well with CPs where upper and
lower characters uses different number of bytes, i.e. UTF8 has
such characters.
* harbour/src/rtl/strcase.c
* harbour/src/rtl/fstemp.c
* harbour/src/rtl/filesys.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/hbsix/sxsem.c
* replaced obsolete hb_strUpper() and hb_strLower() functions with
new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.
* harbour/src/rdd/hbsix/sxutil.c
* replaced obsolete hb_charUpper() function with hb_cdpnDupUpper()
* harbour/contrib/sddpg/sddpg.c
* harbour/contrib/sddsqlt3/sddsqlt3.c
* harbour/contrib/sddmy/sddmy.c
* harbour/contrib/sddfb/sddfb.c
* harbour/contrib/sddodbc/sddodbc.c
* harbour/contrib/sddoci/sddoci.c
! fixed memory leaks
* replaced obsolete hb_strUpper() and hb_strLower() functions with
new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.
; TODO: these conversions are redundant - I'll remove them in next
commit.
* utils/hbmk2/hbmk2.prg
! in '.hbc not found' messages show .hbc reference without
rebased path (=as it appears in .hbp file or on cmdline),
after macro expension.
+ package/harbour.rb
+ experimental (and untested) Homebrew formula
* debian/dirs
* debian/rules
+ added contrib dir (untested)
* utils/hbmk2/hbmk2.prg
* autodetect contrib/addons dirs at
/usr/local/share/harbour/ and /usr/share/harbour/
* config/global.mk
* changed contrib location on *nix systems to <root>/share/harbour/contrib
unless the <root> is /opt/harbour.
* contrib/hbrun/headers.prg
* utils/hbmk2/hbmk2.prg
* changed #include filename references to _CASE-SENSITIVE_. This
is to ensure and enforce that .hbs scripts and hbmk2 plugins are
created in portable form so f.e. once developed on a win
system, they won't crash on a *nix system.
INCOMPATIBLE: Change all your #include references to exactly match
casing of the filename. For Harbour headers, this
means plain lowercase, so f.e. '#include "FileIO.ch"'
is wrong, '#include "fileio.ch"' is right.
* config/global.mk
* minor
* contrib/make.hbs
+ added installation support of contrib specific public files
(.hbc, .hbs, local headers, .def files, readmes and tests)
* config/global.mk
* set install destination for contrib specific public files to
<root>/contrib for non-*nix and /opt/harbour/contrib for *nix
systems.
* utils/hbmk2/hbmk2.prg
* changed HB_INSTALL_CONTRIB to HB_INSTALL_ADDONS
F.e.:
export HB_INSTALL_ADDONS=/usr/local/share/harbour/contrib:/usr/local/share/harbour/addons
* utils/hbmk2/hbmk2.prg
+ support for HB_INSTALL_CONTRIB envvar to specify dir(s)
of contribs/addons for .hbc autofind purposes. Accepts
multiple dirs. F.e.:
export HB_INSTALL_CONTRIB=/usr/local/share/harbour/contrib:/usr/local/share/harbour/addons
Experimental.
* utils/hbmk2/hbmk2.prg
* tuned Harbour root autodetection code to avoid corner
case where another Harbour installation is present one
or two dir levels upper in the tree.
Regressions are possible. Please test.
* utils/hbmk2/hbmk2.prg
+ show .hbp file reference when .hbc is not found
* config/postinst.hbs
* corrected double dirseps in one case.
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtgui/qth/filelist.hbm
! disabled QDeclarative* wrappers until reported link
problems are fixed.
This allows HB_BUILD_CONTRIB_DYN=yes to work again.
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqt_all.hbp
! disabled hbqtsql until link problems (missing functions
and wrappers) are fixed.
This allows HB_BUILD_CONTRIB_DYN=yes to work again.
* contrib/hbmysql/utils/hbmk.hbm
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
* contrib/hbnetio/utils/hbnetioq/hbnetioq.hbp
* contrib/hbformat/utils/hbformat.hbp
+ removed relative path from .hbc references
* utils/hbmk2/hbmk2.prg
+ show warning when referenced .hbc file could not be found
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! use HB_WILDMATCH() with .T. option to make it behave as expected
* include/harbour.hbx
* include/hbcpage.hbx
* regenerated
* src/rtl/tget.prg
* src/rtl/getsyshb.prg
+ added support for hash GET variables
* utils/hbmk2/hbmk2.prg
+ added REQUESTs to blowfish, md5, sha1 and few sha2 functions
for 3rd party plugins
* contrib/hbhttpd/core.prg
* fmt
* utils/hbmk2/hbmk2.prg
+ warning will be shown and lib ignored if user explicitly
specifies Harbour core library.
! visual glitch in two trace msgs.
* contrib/hbblat/tests/hbmk.hbm
* contrib/hbhpdf/tests/hbmk.hbm
+ best practice: using .hbc files instead of -l options.
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ added support for path lists separated by ';' character in -L and
-i/-I options. It's not very elegant (and thus it's not documented)
so please don't use it in Harbour SVN hbmk2 files. I decided to
implement it because -depincpath* options already had it.
* do not document ';' delimited path list for -depincpath* options
* minor change in one help line
* contrib/hbformat/hbfmtcls.prg
! fixed casing of some function names.
* utils/hbmk2/hbmk2.prg
; all changes below apply to .xhp (xMate) to .hbp conversion:
! properly convert input filenames with spaces in them
! remove lib prefix from .a input filenames
% do not add empty -L options
* do not add include paths with %HB_INSTALL%\ in them
+ split non-portable, Borland-specific include path lists
concatenated with ';' into distinct -I options
% do not add empty include paths
* tests/testop.prg
* tests/testntx.prg
* tests/vmasort.prg
* tests/testlbl.prg
* tests/testidle.prg
* tests/videotst.prg
* tests/testmem.prg
* tests/testinit.prg
* tests/testhtml.prg
* tests/tstcolor.prg
* tests/vidtest.prg
* tests/tstuse.prg
* tests/vec1.prg
* tests/while.prg
* tests/tstdspac.prg
* tests/version.prg
* tests/testpre.prg
* tests/tstprag.prg
* formatted. mostly with hbformat.
* utils/hbmk2/hbmk2.prg
+ hbmk2 executable if renamed, copied or symlinked to the
name 'harbour', it will make it behave as classic harbour
executable, or IOW it will switch to hbmk2 -hbraw mode in such
scenario. This makes it possible to continue using 'harbour'
as a command even in distros which don't ship with classic
harbour executable.
* package/winuni/RELNOTES
! adjusted hbmk2 cmdline example for building wce apps
(it gets around the problem fixed in hbmk2 below)
[TOMERGE 3.0]
* utils/hbmk2/hbmk2.prg
! fixed to only look for ccprefix/ccpostfix-ed gcc executable
on wce, if ccprefix/ccpostfix is non-empty. This fixes misdetection
of cygwin when -plat=wce is used.
* contrib/hbnf/menutonf.prg
! FT_MenuTo() fixed to default 3rd parameter if non-logical type
is passed. this is original NFLIB bug. Spotted and fix siggested
by Klas Engwall.
* ChangeLog
+ added TOMERGE to previous entry
* harbour/utils/hbtest/rt_str.prg
! disabled workaround for 64 bit [U]LONG values in Win64 builds.
Unlike all other 64 bit platforms MS-Windows 64 uses 32 bit
[U]LONG integer values and this workaround should not be enabled.
This modification reduces number of errors reported by HBTEST in
Win64 builds.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! fixed wrongly placed @cStdErr parameter in hb_processRun()
calls. it didn't cause any error as the param is empty and
return value currently unused.
* utils/hbmk2/hbmk2.prg
- disabled addition of header and libs paths for optional
package managers on bsd platforms. in some situations this
may be unwanted.
(added in 2010-11-03 19:01 UTC+0100 Viktor Szakats)
* utils/hbmk2/hbmk2.prg
! fixed to put requests to stub code for core GTs when
-gt* options are used
(the fix it meant to be unintrusive and could use a future
cleanup/optimization by using the raw GT list to form
the library list instead of rolling both lists in parallel)
Please test.
* minor cleanup to IsGTRequested() so it can be reused in the future
* src/rtl/arc4.c
! fixed for watcom (getpid)
! cast for msvc
! fixed for dmc (ms struct missing for win seed)
! fixed for bcc (inline disabled for this dead compiler, getpid)
! fixed warning for all non-unix, non-win targets
; TOFIX: it's also broken for watcom/dos and watcom/linux
Tamas, can you take a look at it?
* utils/hbmk2/hbmk2.prg
+ use HB_RAND32()
* src/vm/set.c
* _SET_EOF default set to .T. on *nix to match other plaforms
(and Clipper I might guess)
CHECKME!
* formatting
! missing 'break;'. it didn't cause error, anyhow pls check me
maybe it was intentional (in 'case HB_SET_PRN_CON:' branch)
CHECKME!
* contrib/hbunix/hbunix.hbp
* contrib/hbunix/hbunix.hbx
+ POSIX_SLEEP( <n> ) -> <n>
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/core.c
+ added changes from latest libcurl version (untested with
latest version)
* utils/hbmk2/hbmk2.prg
! fixed symbol names in hbx generation for watcom/{linux|dos|os2}
* utils/hbmk2/hbmk2.prg
+ added experimental -ldflag+=, -dflag+= cmdline options
and ldflags+= .hbc option. Such flags will be added after
libs, which may be useful in some situations, f.e. pkg-config
% only enclose libnames and paths inside single-quotes if
they contain any non-ascii, non-digig, non-., non-/ chars
! fixed .hbx generation on darwin
* src/rtl/listbox.prg
! corrected minor typo in change:
2009-02-18 14:18 UTC+0100 Przemyslaw Czerpak
equality operator stayed '=' in one place. didn't cause
any user level problem
* utils/hbmk2/hbmk2.prg
+ avoiding '=' operator to be _SET_EXACT agnostic
% deleted setting _SET_EXACT
* utils/hbmk2/hbmk2.prg
+ added mingw-w64 autodetection on *nix
* doc/xhb-diff.txt
! typos
* config/global.mk
+ added mingw-w64 autodetection on *nix. build with 'make HB_COMPILER=mingw64'
! supposedly fixed wce/mingw (intel) comp autodetection
* had to change CC*/compiler autodetection on *nix cross builds
and since this file is black magic, fallouts are possible.
pls test it (disc: I'm no heavy linux user, you've been warned)
; NOTE: win/mingw64 build on linux results in broken exes (400+ hbtest failures
and even the percentage of failure is calculated as 0.0%),
most likely due to these (which may even be mingw64 bugs):
../../../hbarch.c: In function 'hb_put_ord_ieee754':
../../../hbarch.c:181: warning: 'iExp' may be used uninitialized in this function
../../../hbarch.c: In function 'hb_put_ieee754':
../../../hbarch.c:114: warning: 'iExp' may be used uninitialized in this function
../../../hbstr.c: In function 'hb_numRound':
../../../hbstr.c:500: warning: statement with no effect
../../../hbstr.c: In function 'hb_numInt':
../../../hbstr.c:525: warning: statement with no effect
../../../hbstr.c:519: warning: 'dInt' is used uninitialized in this function
../../../hbstr.c: In function 'hb_numRound':
../../../hbstr.c:512: warning: 'doComplete5i' may be used uninitialized in this function
../../../hbstr.c: In function 'hb_numDecConv':
../../../hbstr.c:514: warning: 'doComplete5i' may be used uninitialized in this function
../../../hbstr.c:396: note: 'doComplete5i' was declared here
In file included from ../../../hvmall.c:105:
../../../itemapi.c: In function 'hb_itemStrBuf':
../../../itemapi.c:2329: warning: 'dDig' may be used uninitialized in this function
* utils/hbmk2/hbmk2.prg
+ 'hbmk2 proj' will now build 'proj.hbp' if such file exists.
if not, it will build proj.prg like before.
Experimental, it's quite useful, but let's see how much
confusion does it create.