* include/hbver.h
* package/harbour.spec
* package/harb_win.mft
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
* package/winuni/mpkg_win_uni.bat
* harbour/debian/changelog
* trunk version bump. 3.1.0dev -> 3.2.0dev
this is to make it easy to create conditional code
for new features and the few incompatibilities after
introducing unicode in Harbour. May be bumped further
when FOR EACH is decided.
* contrib/hbexpat/tests/tohash.prg
+ enabled UTF8EX for testing
* 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)"
* 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.
* 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.
+ 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.
* package/winuni/mpkg_win_uni.bat
- deleted windows-only contrib specific file installation
procedure. now done by contrib/make.hbs.
; it also means that contrib-specific public files are
now included in non-unified installation packages,
created using HB_BUILD_PKG=yes.
; TODO: modify *nix package creation scripts to include
/opt/harbour/contrib in the package.
* config/global.mk
* INSTALL
* changed HB_INSTALL_IMPLIB default to 'yes'. This means
that now the implibs for 3rd party .dlls will be included
in install packages, including the nightly/stable releases.
This is theoretically wrong solution and bad practice, but
to me real life shows that users don't have a clue about
implibs and how to generate them and it also requires users
to build Harbour themselves if they want to use any of the
many libs with implib dependencies, instead of being able
to use binary releases.
One big WARNING applies (quote from INSTALL):
"Also note that the generated implibs will require .dlls
compatible with the ones used at build time."
IOW you must be using the same (or binary compatible)
.dll as was used at built time. If you use something else,
you still will have to generate the implib yourself or
change your .dll version according to above.
[I hope Marek Paliwoda doesn't mind.]
* harbour/package/mpkg_rpm.sh
! fixed RPM _topdir detection.
Patch created by Raphael Gozzo - many thanks.
* harbour/INSTALL
* added info about libraries necessary to build hbgs and hbmagic
in Ubuntu.
* harbour/contrib/hbmagic/hbmagic.hbx
* added HB_MAGIC_SIMPLE (regenerated automatically)
* contrib/rddsql/sqlbase.c
! fixed transfering records between two "array" SQLBASE workareas, when there
is a text/long/clob/memo field
Patch by Ilina Stoilkovska.
* contrib/hbpgsql/postgres.c
! added #include pg_config.h, '#if PG_VERSION_NUM' clauses were not working
+ plain wrappers for bulk data insert functions PQputCopyData, PQputCopyEnd
+ new function PQCOPYFROMWA which copies current workarea with CSV-like
bulk data transfer functions to PostgreSQL database, without the need
of creating temporary files - similar to __dbTrans() and __dbSql()
<lResult> := PQCOPYFROMWA( <pConn>, <cTable>, [<bWhileBlock>],
[<bForBlock>], [<aFieldNames>], [<nCount>],
[<lTrimStrings>], [<nPreBuffer>] )
<nPreBuffer> - default is 1, which turns into 1 * 1400 bytes
(to keep it below typical network MTU of 1500 bytes),
needs testing how libPQ is doing buffering by itself,
and if this is needed?
Patch by Ilina Stoilkovska. Many thanks.
* contrib/hbpgsql/hbpgsql.hbx
+ contrib/hbpgsql/rddcopy.c
+ contrib/hbpgsql/hbpgsql.h
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/hbpgsql.hbp
+ moved PQ related declarations to separate header. low-level functions made public.
% moved new PQCOPYFROMWA() to separate source to untie the main wrappers from RDD components
* HB_ prefix to PQCOPYFROMWA() name
* minor mods to above
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
- deleted x64 flavor of some exes which don't give any benefit of the 64-bitness
* package/winuni/mpkg_win_uni.bat
! added workaround for what it seems like a BCC IMPLIB tool
bug (met in the past a few times already), where IMPLIB
will forget to add leading underscore for certain symbols,
leading to unexplained "unresolved external" errors when
trying hbmk2 with -shared option with BCC. The bug is present
in BCC 5.5 and BCC 5.8, no newer versions tested.
The workaround is to convert to .def file first using IMPDEF,
then correct the .def to avoid an IMPLIB pitfall, where it
cannot handle '-' char in library name unless enclosed between
double-quotes (but IMPDEF doesn't add those double quotes).
[ So now winuni pkg builder script requires GNU SED tool.]
Then the corrected .def file can be converted to .lib by
IMPLIB correctly.
[TOMERGE 3.0]
* 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
* package/winuni/RELNOTES
* adjusted installed sizes after fixing included C compiler
to be 1) 4.5.2 tdm 2) trimmed down a little bit compared
to nightly 3) fixing mingw dlls in Harbour bin dir
; TODO: adjust the C compiler included in nightly accordingly
* contrib/hbssl/ssl.c
+ SSL_SET_[RW]FD(): throwing RTE if second param is not numeric
* package/winuni/mpkg_win_uni.bat
* package/mpkg_win_nightly.bat
+ added unicows implibs for applicable platforms. these are totally free
files accessible from the internet for anyone, for some Win9x users it's
too much though, so I'm adding them to binary distro.
To be tested
* src/rtl/strtran.c
! minor in webpage URL
* src/rtl/gtwvt/gtwvt.c
! Patch from Heinz V. Bergen, fixing full screen and alt-enter
GT features when GTWVT windows was not open yet, also fixing
screen positioning/sizing regression.
* src/rtl/inkey.c
* include/harbour.hbx
+ added HB_KEYLAST() which allows to pass a mask
(I'm not sure if this is ultimate solution, but there is goes
for now. Pls remove it if there is better one)
* package/winuni/RELNOTES
* updated 3rd party version numbers
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ added qtsql related files. ought to fix regression causing
broken hbqt in nightly binary since this commit:
2011-03-25 18:24 UTC-0800 Pritpal Bedi
NOTE: since my SVN changes don't seem to affect nightly creation
on Francesco's server anymore, I'm not sure when this fix
will go "live".
* package/winuni/mpkg_win_uni.bat
* package/mpkg_win_nightly.bat
+ echoing self
; TOFIX: nightly binaries are hosed and they don't seem to use live
.bat files from SVN.
also, mingw is outdated.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/hbqtcore.hbx
- deleted HBQT_FINDCHILD(). it used raw pointer. was used by hbqtuitools.
% deleted unused extern.
* package/winuni/mpkg_win_uni.bat
* contrib/hbnetio/utils/hbnetioq/hbnetioq.hbp
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqt_all.hbp
- contrib/hbqt/tests/QtUiTools.txt
- contrib/hbqt/qtuitools
- contrib/hbqt/hbqtuitools.hbc
* contrib/hbide/hbide.hbp
- deleted dynamic UI loading. it had too many hopeless TOFIXes
and it required raw pointers. and a lot of bloat.
Should be reimplemented by loading and processing .ui files
manually.
* package/mpkg_win_nightly.bat
+ disabled bcc libs in nightly binary build.
bcc is not tested by most developers anymore, so its risky
to include it and let it break the build.
* contrib/hbrun/hbrun.rc
- Disable app icon for bcc builds. bcc is too old or buggy
to handle .ico files with certain properties.
* utils/hbmk2/hbmk2.prg
- Disabled -icon= option for bcc to avoid build breaks due
to more recent .ico files.
* contrib/hbmlzo/hbmlzo.hbx
* autoupdate
; NOTE: This was my last patch targeting a bcc specific problem.
It's a waste of time.
* package/winuni/RELNOTES
* Updated.
* package/winuni/mpkg_win_uni.bat
+ Using mingw64 .dlls and .exe for win64. (was msvc64)
Now mingw64 binaries look fine and they are about the
same size as mingw32 ones.
* package/winuni/mpkg_win_uni.nsi
* Formatting.
* src/rtl/hbrandom.c
! Typo in comment. [Tamas]
+ Enabled using DBL_EPSILON in hb_random_num() on Windows
platform, except bcc, which - according to the comment
from original author - has some problems with this value.
* package/harb_win.rc
* contrib/hbrun/hbrun.rc
* Modified manifest inclusion to be friendly with all Windows
compilers (ie. not break them with their own headers and
predefined macro definitions).
+ contrib/hbrun/hbrun.rc
+ Missed from prev commit.
! Enable mft/ver features only for msvc, bcc and mingw, the
rest will die various deaths.
* package/harb_win.rc
* Tweak a little to not cause most RC to die.
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
* contrib/hbrun/hbrun.hbp
* Enabled security options only on win platform.
* contrib/hbrun/hbrun.hbp
+ Added msvcarm option to avoid fatal compiler error in headers.c.
+ package/harb_win.rc
+ package/harb_win.mft
* contrib/hbrun/hbrun.hbp
+ Stirring the sh*t-bucket of nice Windows features!
Added extremely useful manifest file and versioninfo,
currently used with hbrun.
Let's see how different win/wce builds fall apart!
(note: if there will be too much problem, I'll just
delete it, as it most pbly isn't worth the extra
work required for maintaining these files)
* contrib/hbrun/hbrun.prg
* contrib/hbrun/hbrun.hbp
+ contrib/hbrun/plugins.prg
+ Added plugin support.
+ Added hbnetio management console to hbrun, as plugin.
Use: "netio.<command> <params>" format to access it.
Or enter netio command domain with ".netio" and use
regular netio commands. Exit netio command domain with
"." command.
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* contrib/hbplist
- Stdalone hbnetio management console is not built or
included in distro anymore. Use hbrun.
* contrib/hbrun/hbrun.prg
* contrib/hbrun/hbrun.hbp
+ contrib/hbrun/headers.prg
* Moved headers to separate file.
* contrib/hbrun/pullext.prg
* Minor.
* contrib/hbnetio/utils/hbnetio/netioeng.prg
* contrib/hbnetio/utils/hbnetio/netiocon.prg
* Renamed entry function for console plugin.
* package/harbour.spec
* Deleted reference to harbourmt.
; QUESTION: Is this line right?
Provides: %{name} harbour lib%{name}.so
[ %{name} is also 'harbour', so 'harbour' is there twice ]
- src/dynlib/mt
* src/dynlib/Makefile
* src/vm/maindllp/dllpcode.c
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
* config/global.mk
* config/bin.mk
* Changed to have only one harbour dll, and this one with MT support.
This means the old MT mode dll named harbourmt/harbourm is no more
and the old ST mode dll vanished also. This will result in much
cleaner layout of Harbour binary tree, smaller distribution size,
and unambigous dll tree when linking an app with dll multiple
components (f.e. contribs).
If someone wants to build an ST mode harbour dll, she can use the
internal build-time option: _HB_BUILD_DYN_ST=yes
; Please test.
; TODO: Do a final cleanup on internal variable names to not have "ST" in them.
* Makefile
* contrib/Makefile
+ Changed script runner tool to hbmk2 (from hbrun).
So now hbrun is not required for build process.
* utils/Makefile
* package/harbour.spec
* INSTALL
* Changed to reflect that now hbmk2 runs the build scripts.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
+ Added hbrun_ProgrName() function to return runner executable name.