* config/global.mk
* src/dynlib/Makefile
+ src/dynlib/2nd
+ src/dynlib/2nd/Makefile
* Changed so that _HB_BUILD_DYN_ST=yes now creates a separate,
secondary dll in ST mode, called harbourst/harbours.
- 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.
* contrib/make.hbs
* contrib/hbide/idemisc.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbrun/hbrun.prg
* config/postinst.hbs
* bin/hb3rdpat.hbs
* Using new filename handling functions from core.
% Deleted redundant local copies of these functions.
* utils/hbmk2/hbmk2.prg
+ REQUESTing new filename handling function till they are
used in hbmk2 too.
; TODO: Make the switch in hbmk2 too.
* contrib/hbplist
- contrib/hbrun/hbrunext.hbp
+ contrib/hbrun/hbrun.prg
+ contrib/hbrun/hbrun.hbp
+ contrib/hbrun/hbrun.1
* config/postinst.hbs
- utils/hbrun
* utils/Makefile
* Moved hbrun to contrib area.
; Now it can contain any contrib libs.
* utils/hbmk2/hbmk2.prg
! Do not add .hbx file to input file list if the file doesn't
exist. This is to resolve the chicken-egg problem when
initially creating the .hbx file for a new project.
! Never use .hbx filename for forming the output name
and deciding about startup module.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
+ Do not add duplicates to extern list.
(it may have only happened if renaming sources and
building without clean)
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/vxworks/gcc.mk
* config/minix/gcc.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/linux/gcc.mk
* config/cygwin/gcc.mk
* config/symbian/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
! Separate -Wimplicit-int and -Wimplicit-function-declaration
so that they are added to cflags only when not in cpp mode.
; Patch by Tamas.
* config/postinst.hbs
* MAKEDIR() -> HB_DIRCREATE().
Warning: Make a 'make clean' _before_ updating to this revision.
Or, do a fresh checkout and build that.
Or, do a clean rebuild twice.
(otherwise plain 'make clean' will end with an error)
- examples/pp
- Deleted obsolete PP code.
; NOTE: Now that HB_BUILD_CONTRIB_DYN=yes works pretty much
okay on both win and linux, I will delete this
tool meant as a temporary workaround for those
requiring dynamic versions of Harbour libs:
bin/hbmk2l2d.hbs
If you need it, make a copy of it locally, though
most pbly nobody ever used this.
* config/hb_c.cfg
* Changed to align assignments.
! Fixed to align case statments like it's done in Harbour.
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
* Reformatted with uncrustify.
Results are fantastic with this tool.
* config/hb_c.cfg
+ Some more settings.
* Changed to not wrap lines at column 100. It'd be great
feature, though sometimes it makes code less readable.
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
! Fixed formatting using uncrustify.
* contrib/gtwvg/wvggui.c
* Minor modification to make it not break when autoformatted.
* contrib/hbmisc/dates2.c
* contrib/hbtip/encurlc.c
* contrib/hbwin/win_prn2.c
% Optimized out HB_ISLOG() calls.
* harbour/include/hbcomp.h
* do not inherit in macrocompiler -z compile time switch when -kc is
also used
* harbour/src/common/expropt2.c
* disable logical expression optimization (reduction) in macrocompiler
when -kc compile time switch is used.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
* enable some important warnings in GCC builds using -W<name>... instead
of -Wall and -Wno-<name>... for warning level set to low.
It should help in backward compatibility with some older GCC versions.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warnings are not enabled with GCC based compilers.
Using only -W only is rather useless because this switch enables
warnings which can be usually ignored in 3-rd party code.
This modification should help in locating bugs introduced by us
to 3-rd party code, i.e. due to wrong header files used on some
platforms (we do not use autoconf assuming some default settings
what can be wrong in some cases). It should also not hide some
important/critical bugs in 3-rd party code.
This modification pacifies some common warnings which can be
ignored usually but it also enables some more important ones.
If it's necessary then we can tune it a little bit more and disable
some other warnings too.
It's possible that on some platforms using very old GCC versions
some of -W* switches are not supported - please make tests and
inform us about problems.
* harbour/utils/hbmk2/hbmk2.prg
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warning level is set to low with GCC based
compilers
* harbour/src/rtl/cdpapi.c
* removed dummy assignment
* harbour/src/lang/msgpl852.c
* harbour/src/lang/msgplmaz.c
* harbour/src/lang/msgpliso.c
* harbour/src/lang/msgplwin.c
! fixed one message translation
* harbour/config/dos/watcom.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* harbour/config/os2/watcom.mk
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN='no'
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when warning level is low
* src/rtl/gtwin/gtwin.c
+ Attempt to enable HB_GTI_PALETTER support for MSVC 2005/2008
combined with Longhorn SDK. (also reverted prev change)
Please retest in above environments, plus old MSVC and
BCC 5.9.
* config/hbc.cfg
+ More tweaks to make it Harbour-ready.
* src/rtl/gtwin/gtwin.c
! Disabled HB_GTI_PALETTE support for MSVC 2005/2008
versions combined with certain (older) SDK versions.
The symptom is missing NDDI_* detection support, yet
present CONSOLE_SCREEN_BUFFER_INFOEX structure.
(Most pbly SDK 6.x. SDK 7.0a is fine)
Thanks to Andi for the tests.
* config/hbc.cfg
+ Few tweaks to make it more Harbour compliant.
F.e. for hblzf.c it now generated perfect result.
* contrib/hblzf/hblzf.c
* contrib/hblzf/tests/test.prg
! Added missing EOL at EOF.
! Restored my formatting fixes from previous commits.
! Refixed wrong formatting. (for the ~5th time)
- Deleted synonym added in previous commit.
I suggest to write a few words of reasoning for
changes not having obviously apparent reason.
It's brand new lib, so we should decide about _one_
(the best) initial name and stick to it. Let's use
synonyms if we later find out that we did some
mistakes in the past, or other special occasion.
* config/global.mk
* config/rules.mk
* contrib/hbpost.hbm
* INSTALL
+ Renamed HB_BUILD_UNICODE to HB_BUILD_WINUNI.
Reasons many-fold, first it makes it clear this is a Windows
only setting, second it makes room for future UNICODE
setting which may mean a native UNICODE Harbour HVM,
third is to try to clear up the wide misunderstandings
surrounding this setting (several users thought this
will enable general UNICODE support in Harbour).
+ Extended/changed description of option HB_BUILD_WINUNI,
explaining its purpose better, giving more precise details
for WinCE builds and builds on Win9x/ME hosts.
; INCOMPATIBLE: If you use this setting, rename it on
your system. Note1: You don't have to set this
when doing WinCE builds (it's ignored).
Note2: Try UNICOWS, instead of overriding
this setting. It works.
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
* include/hbver.h
* config/global.mk
+ Changed version number to:
2.1.0beta3 (from 2.1.0beta2)
* contrib/gtwvg/gtwvg.hbc
! Typo.
* contrib/gtwvg/tests/wvgactivex.prg
* Eliminated WITH OBJECT. Now Harbour doesn't
use this statement except in test code.
* harbour/src/codepage/cpcs852.c
* harbour/src/codepage/cpcskam.c
* harbour/src/codepage/cpcsiso.c
* harbour/src/codepage/cpcswin.c
! switched from HB_CDP_ACSORT_INTERLEAVED to HB_CDP_ACSORT_NONE in
Czech code pages.
* harbour/config/win/bcc.mk
* disable explicitly some common BCC warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN=no
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some common BCC warnings which we can safely
ignore when warning level is set to low
* harbour/contrib/hbmisc/bbabble.c
* removed unnecessary incrementation to pacify compile warning
+ config/hbc.cfg
+ Added .c source formatter config file for uncrustify source code formatter,
tailored to mimic Harbour C formatting style.
http://uncrustify.sourceforge.net/
This tool looks very promising to save manual formatting time.
(in our case it's useful for new code, existing code is mostly
quite well formatted in most parts)
; WARNING: The config is currently at experimental stage (IOW it's
not perfect), so don't use it to format any existing
Harbour source, but you may try it with your local source
which you want to submit or see how would it look in
Harbour-style.
* contrib/hbtip/url.prg
! Fixed to store passed url in :cAddress VAR.
Like with most Harbour OOP code, this simple change may
introduce hard-to-detect imcompatibility,
so check your code.
- contrib/rddbm/rddbmcdx.hbp
+ contrib/rddbm/rddbm.hbp
- contrib/rddbm/rddbmcdx.hbc
+ contrib/rddbm/rddbm.hbc
! Renamed too.
* src/codepage/cpsk852.c
* src/codepage/cpskiso.c
* src/codepage/cpskwin.c
* Trying to add digraphs. (doesn't work here, but can't find out why)
; TODO: Update Kamenicky. (can't even do it with hb_translate(),
as it's messed up the first time I edit it.
; TODO: Apply final fixes to CS CPs.
* contrib/sddoci/sddoci.hbp
+ Added support for implib creation for win x64 targets.
* package/winuni/RELNOTES
* OCILIB version update.
* contrib/rddbm/bmdbfcdx.c
* contrib/hbhttpd/core.prg
* contrib/hbhttpd/widgets.prg
* Formatting.
* config/global.mk
! HB_INSTALL_PREFIX now defaults to /opt/harbour (instead of /usr/local)
on darwin systems. (not tested)
/opt/local is for MacPorts, plus /opt/harbour is the location
hardcoded into hbmk2 for .hbc autofind, so I opted for the latter.
* contrib/hbhttpd/core.prg
* Formatting.
* include/hbapi.h
* src/common/hbver.c
+ Added hb_iswin2k3().
* src/rtl/hbsocket.c
+ Comment.
; TOFIX: Use SO_EXCLUSIVEADDRUSE on Windows.
See: http://paste.lisp.org/display/59751
- examples/udpds
+ contrib/hbmisc/tests/udpdstst.prg
+ contrib/hbmisc/udpds.prg
* contrib/hbmisc/hbmisc.hbp
+ Moved UDPDS functions to hbmisc lib. Added hb_ prefix to names,
plus formatted with hbformat.
* contrib/hbhttpd/tests/webapp.prg
* Formatting.
; Patch from Tamas:
* config/bsd/gcc.mk
* config/bsd/clang.mk
* switch bsd to -fPIC, otherwise not even core builds (on 8.1/amd64)
* while there, bring bsd/gcc.mk in line with linux/gcc.mk (now they
are identical)
* ditto for bsd/clang.mk
* contrib/hbqt/hbqt_common.hbc
* for hbqt, switch static supc++ to dynamic stdc++, otherwise dyn hbqt
doesn't build. this is because on at least fbsd supc++ is apparently
not pic; but switching from static supc++ to dynamic stdc++ easily
fixes it.
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/hbmk2.prg
* config/detfun.mk
* config/detect.mk
* INSTALL
* Terminology cleanup: "external code" -> "3rd party code"
- bin/hbxpatch.hbs
+ bin/hb3rdpat.hbs
* config/postinst.hbs
* package/harbour.spec
* Renamed hbxpatch.hbs to hb3rdpat.hbs to reflect terminology
cleanup ("external code" -> "3rd party code")
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/oohg.hbc
* Using .hbc files.
* contrib/hbssl/ssl.c
+ SSL_GET_READ_AHEAD() function enabled. Made it a dummy
for bcc, where it for some reason creates unresolved
external when referencing the corresponding openssl API.
- external/zlib
- external/png
- external/jpeg
- external/hbpmcom
- external/pcre
- external/Makefile
+ src/3rd
+ src/3rd/zlib
* src/3rd/zlib/Makefile
+ src/3rd/png
* src/3rd/png/Makefile
+ src/3rd/hbpmcom
* src/3rd/hbpmcom/Makefile
+ src/3rd/jpeg
* src/3rd/jpeg/Makefile
+ src/3rd/pcre
* src/3rd/pcre/Makefile
+ src/3rd/Makefile
* Moved /external to /src/3rd
; This way all core components reside in core.
; NOTE: png, jpeg are not referenced by core components,
so they may be moved to contrib area in the future.
* config/detect.mk
* Makefile
* src/Makefile
* src/rtl/hbcom.c
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
* contrib/hbwin/hbwin.hbp
* Updated to reflect above change.
; NOTE: Now -j builds can be optimized to better overlap with
3rd component builds. Please do it in src/Makefile.
* contrib/hbplist
* Updated.
* contrib/hbexpat/expat/expat.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbexpat/hbexpat.hbc
* Minor cleanups.
* contrib/hbexpat/tests/tohash.prg
+ Added HB_HKEEPORDER( , .T. )
* external/Makefile
* config/global.mk
* INSTALL
- Deleted central option to control external lib building:
HB_EXTERNALLIBS
! Also deleted one reference to HB_EXTERNAL_ADDONS, which has
been removed earlier.
+ external/minizip/minizip.hbp
+ external/minizip/minizip.hbc
+ external/sqlite3/sqlite3.hbc
+ external/sqlite3/sqlite3.hbp
+ external/bzip2/bzip2.hbc
+ external/bzip2/bzip2.hbp
+ external/libhpdf/libhpdf.hbc
+ external/libhpdf/libhpdf.hbp
+ Added experimental hbmk2 make files for
foreign code which is used solely by contribs.
* src/rtl/hbjson.c
* src/rtl/hblpp.c
! Silenced msvc64 warnings.
* utils/hbrun/hbrun.prg
* Moved creation of header hash to separate function.
+ Added HBRUN_NOHEAD envver to disable embedded headers.
Any non-empty value will have this effect.
* utils/hbrun/Makefile
+ Enabled embedded headers.
* contrib/make.hbs
* config/postinst.hbs
* bin/hbxpatch.hbs
! Resolved TOFIX notes: now the headers can be used
just like in any .prg, and no need to locally #define
core constants.
Also hbqt_hbmk2_plugin.hbs should work now in stdalone
mode, with all the OOP code.
* utils/hbmk2/hbmk2.prg
* MS-DOS LFN vs. SFN next guess: deleted hack when loading
plugin.
* include/hbwmain.c
* src/vm/cmdarg.c
* config/bin.mk
* Cygwin main entry patch from Tamas.
* INSTALL
+ Added note that all settings are case sensitive.
Not that those would read it who would need to.
* src/pp/ppcore.c
! Fixed regression in 2010-11-01 16:42 UTC+0200.
Forgot to set value for __PLATFORM__* macros.
INCOMPATIBLE: So far the value returned by __PLATFORM__*
macros were the version part from the string
also returned by OS(), but only in non-cross
platform situations. Now they are defined
without any value, which means now the returned
value is consistent regardless of build-situation
and OS version. If you relied on this feature,
change your code to extract OS version from value
return by OS() function.
* src/vm/mainwin.c
% Do not include windows header.
* src/vm/cmdarg.c
- Undone some (innocent) part of patch in 2010-11-01 13:53 UTC+0200.
* INSTALL
* Moved around cygwin inside example section.
* src/vm/Makefile
* src/vm/mainwin.c
* src/vm/hvm.c
* src/vm/cmdarg.c
* src/vm/vmmt/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/cygwin/global.mk
+ Cygwin related patch from Tamas Tevesz.
- Fixing cygwin dynamic lib name
- Dynamic lib linking
- defining __PLATFORM__CYGWIN in cross-platform builds
* src/rtl/dateshb.c
+ tests/dttest.prg
+ HB_DATETIME() got new, optional nYear, nMonth, nDay, nHour, nMinute, nSecond, nFragment
parameters. If passed, it will return date or timestamp based on passed parameters
instead of current timestamp.
Based on initiative and code by Carlos Bacco. Thank you!
* contrib/hbsqlit3/hbsqlit3.c
- Reverted UTF8 patch in 2010-11-01 00:05 UTC+0200.
+ Replaced above solution with transparent one, using
Str API usage and extended it for all places where UTF8
strings are expected or returned by sqlite3 API.
Please test. This clears an old TOFIX.
+ Added TOFIX for raw pointer usage.
* contrib/hbqt/qtgui/g/QApplication.cpp
* contrib/hbqt/qtgui/qth/QApplication.qth
! Fixed to wrap one declaration in HB_EXTERN_BEGIN/END.
* include/hb_io.h
* include/hbthread.h
* include/hbsetup.h
* src/vm/thread.c
* src/vm/dynlibhb.c
* src/common/hbgete.c
* src/common/hbprintf.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* config/global.mk
- config/win/cygwin.mk
+ config/cygwin
+ config/cygwin/libs.mk
+ config/cygwin/gcc.mk
+ config/cygwin/global.mk
+ Applied cygwin patch from Tamas Tevesz.
The goal is to migrate win/cygwin to cygwin/gcc, IOW to make cygwin
a distinct platform (which is primarily unixy with option to access
winapi) as it should be.
Changes made by me compared to original patch:
- Fixed to HB_HOST_PLAT stay 'win'. Cygwin is not a host platform.
- Fixed to set HB_COMPILER to gcc and HB_PLATFORM to cygwin when cygwin
is detected on win platform.
- Consequently some changes in global.mk could be dropped.
- Deleted hbcom patches not related to cygwin.
- Removed hbmk2 patch until we solve the 'plat $ 'cygwin' problem.
* src/rtl/gete.c
% Optimization to GETENV()/HB_GETENV(). Patch by Tamas Tevesz.
+ Added more details to comment on why it's needed to strip '='
part from envvar name.
* contrib/hbqt/tests/demoqt.prg
* contrib/hbqt/tests/dialogqt.prg
* contrib/hbqt/tests/testqaim.prg
! Fixed external files' references to use executable's
directory as a base, instead of current dir.
* contrib/hbhpdf/harupdf.c
! HPDF_Page_CreateStampAnnot(): Fixed wrongly passed 3rd parameter.
* contrib/hbssl/evpmd.c
! EVP_SIGNFINAL(): Fixed wrong returned buffer size.
* config/postinst.hbs
* Implemented GetEnv() caching, based on patch sent by
Tamas Tevesz and further optimized.
* harbour/external/Makefile
+ harbour/external/hbpmcom
+ harbour/external/hbpmcom/Makefile
+ harbour/external/hbpmcom/wrap_ow.c
+ harbour/external/hbpmcom/com.c
+ harbour/external/hbpmcom/irq.h
+ harbour/external/hbpmcom/irq_ow.c
+ harbour/external/hbpmcom/irq_g.c
+ harbour/external/hbpmcom/com.h
+ harbour/external/hbpmcom/wrap_g.sx
+ harbour/external/hbpmcom/irqwrap.h
+ harbour/external/hbpmcom/doc
+ harbour/external/hbpmcom/doc/readme.txt
+ harbour/external/hbpmcom/doc/com.txt
+ added PMCOM library - RS-232 DOS communication library by Peter Marinov.
The original PMCOM 1.0 library has not been updated for very long
time and this code is quite strongly modified so I haven't tried to
generate any .diff files. I do not think it will be possible to make
autoamtic merege with newwer version (if any appears).
This is also the reason I decided to use HBPMCOM name instead of
PMCOM to avoid potential conflicts with some local versions of
this library.
TODO: add support for flow control - now flow control functions are
dummy and do not enable any handshaking.
* harbour/src/rtl/hbcom.c
* harbour/config/dos/watcom.mk
* harbour/config/dos/djgpp.mk
+ added support for serial port in DOS builds (hb_com*() PRG and C API)
using HBPMCOM library.