* make_vc.mak
* contrib/mtpl_vc.mak
+ -w34701 VC flag added to enabled warning 4701 (uninitialized vars) on -W3 level.
% -FD VC flag removed. This is only needed for IDEs.
% -Gs VC flag moved to the common section.
% VC flags synced in contrib with core.
+ TOFIX added for WinCE command line. It's full of stuff which is _probably_ not needed.
+ NOTE added about MSDN page explaining VC switches.
; NOTE: -W4 and -Wp64 are recommended for MSVC.
; TOFIX: There are still a few uninit vars warnings:
harboury.c(7226) : warning C4701: potentially uninitialized local variable 'hb_complval' used
macroy.c(3095) : warning C4701: potentially uninitialized local variable 'hb_macrolval' used
dbffpt1.c(2671) : warning C4701: potentially uninitialized local variable 'ulType' used
dbffpt1.c(2614) : warning C4701: potentially uninitialized local variable 'ulSize' used
dbffpt1.c(3073) : warning C4701: potentially uninitialized local variable 'ulOldSize' used
dbffpt1.c(3083) : warning C4701: potentially uninitialized local variable 'ulBlock' used
dbffpt1.c(3652) : warning C4701: potentially uninitialized local variable 'pBlock' used
* source/rdd/workarea.c
! Fixed DBI_POSITIONED value returned.
* include/hbsetup.h
* source/vm/pvalue.c
* source/rtl/fserror.c
* source/rtl/accept.c
* source/rtl/descend.c
* source/rtl/inkey.c
* source/rtl/dates.c
* source/rtl/fkmax.c
* source/rtl/natmsg.c
* source/rtl/hbinet.c
* source/rtl/dates.c
! Fixed some MSVS2008 -W4 warnings (we use -W3 as the default).
; NOTE: There is a lot more of these.
* source/rtl/dates.c
* Formatting.
* make_vc.bat
* Updated usage text.
* include/hbwince.h
! Fix for Pelles C 5.0 in WinCE/ARM mode.
* include/hbsetup.h
+ Detecting Pelles C 5.0 in ARM mode as HB_WINCE.
* ChangeLog
- Removed some advices not valid anymore from previous entry.
* contrib/mtpl_b32.bat
* contrib/mtpl_vc.bat
* Synced with /make_*.bat so that the name of the .mak
file is now hard-wired instead of being HB_CC_NAME dependent.
This way contribs may be built for WinCE in the future
(this still needs adding WinCE support to mtpl_vc.mak).
* contrib/mtpl_gcc.sh
+ Darwin autodetection was missing.
* contrib/hbfimage/fi_winfu.c
! Added CBM_INIT definition for Pellec C in WinCE mode.
* source/rtl/gtclip.c
+ Added GMEM_MOVEABLE definiction for Pelles C in WinCE mode.
+ config/w32/poccce.cf
+ Added Pellec C WinCE make file.
+ config/w32/msvcce.cf
+ Added WinCE GNU make file for MSVC. Untested, probably not working,
this is just a small step to make the GNU-make equal in feature
with the non-GNU make one.
* config/w32/bcc32.cf
* Minor sync of C options with non-GNU make file.
* config/w32/msvc.cf
* Attempt to sync C options with non-GNU make file.
* contrib/hbfbird/firebird.c
* Minor formatting.
; NOTE1: For better consistency I'd like to rename GNU make compiler names
'mingw32' to 'mingw' (they've dropped '32' long ago), and
'cemgw' to 'mingwce'.
; NOTE2: Pelles C WinCE build still generates following errors:
POLINK: error: Unresolved external symbol 'GetModuleFileNameA'.
POLINK: error: Unresolved external symbol 'RegOpenKeyExA'.
../../math.c(605): error #3120: [asm] Symbol 'inf' is undefined.
contrib\gtwvg\gtwvg.h(78): fatal error #1035: Can't find include file <olectl.h>.
../../ctmath2.c(324): error #3120: [asm] Symbol 'inf' is undefined.
../../win32.c(70): error #2048: Undeclared identifier 'CS_OWNDC'.
../../win32.c(75): error #2048: Undeclared identifier 'IDI_APPLICATION'.
../../win32.c(75): error #2140: Type error in argument 2 to 'LoadIconA'; found 'int', expected 'const char *'.
../../win32.c(181): error #2048: Undeclared identifier 'MFS_DISABLED'.
../../win32.c(194): warning #2027: Missing prototype for 'InsertMenuItem'.
../../win32.c(219): warning #2027: Missing prototype for 'SetMenu'.
../../odbc.c(94): fatal error #1035: Can't find include file <sql.h>.
contrib\hbsqlit3\sqlite3\sqlite3.c(9936): warning #2027: Missing prototype for 'localtime'. [ ... ]
../../w32_ole.c(403): error #2152: Unknown field 'pllVal' of 'union (no name)'.
../../w32_ole.c(403): error #2168: Operands of = have incompatible types 'int' and 'long long int *'.
../../w32_ole.c(408): error #2152: Unknown field 'llVal' of 'union (no name)'.
../../w32_ole.c(786): error #2152: Unknown field 'pllVal' of 'union (no name)'.
../../w32_ole.c(786): error #2144: Type error: pointer expected.
../../w32_ole.c(792): error #2152: Unknown field 'llVal' of 'union (no name)'.
../../hbsyslog.c(31): error #2140: Type error in argument 2 to 'RegisterEventSourceW'; found 'const char *', expected 'const wchar_t *'.
../../hbsyslog.c(97): error #2140: Type error in argument 8 to 'ReportEventW'; found 'const char * *', expected 'const wchar_t * *'.
../../firebird.c(448): error #2149: Undefined size for 'times' with type '(incomplete) struct tm'.
../../firebird.c(479): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(480): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(481): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(482): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(483): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(484): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(502): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(503): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(504): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../fi_winfu.c(97): warning #2027: Missing prototype for 'CreateDIBitmap'.
../../fi_winfu.c(98): error #2048: Undeclared identifier 'CBM_INIT'.
../../fi_winfu.c(99): error #2168: Operands of = have incompatible types 'HBITMAP' and 'int'.
../../fi_winfu.c(150): warning #2027: Missing prototype for 'GetDIBits'.
[ lots of them with hbmysql ]
* include/hbinit.h
* source/rtl/gtwin/gtwin.c
* source/rtl/gtwvt/gtwvt.c
* source/compiler/genc.c
+ Enabled init functions for MSVC 64-bit in C mode.
; NOTE: You get the idea, please comment. If there is
no simpler/easier/shorter way to achieve this,
I'll update the rest 150 files, too.
- source/rtl/gtalleg
+ contrib/gtalleg
* TODO
* doc/dirstruc.txt
* include/hbgtcore.h
* contrib/gtalleg/Makefile
* contrib/gtalleg/make_b32.bat
* contrib/gtalleg/make_vc.bat
* contrib/gtalleg/make_gcc.sh
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/make_gcc_all.sh
* contrib/Makefile
* config/hpux/gcc.cf
* config/hpux/global.cf
* config/darwin/gcc.cf
* config/darwin/global.cf
* config/dos/global.cf
* config/linux/gcc.cf
* config/linux/global.cf
* config/sunos/gcc.cf
* config/sunos/global.cf
* config/bsd/gcc.cf
* config/bsd/global.cf
* config/w32/global.cf
* harbour-ce-spec
* harbour-w32-spec
* harbour.spec
* GTALLEG moved to contrib to make it possible to build
using the non-GNU make system, also to align the build
process with other 3rd party package dependent parts
of Harbour.
HB_INC_ALLEGRO or HB_DIR_ALLEGRO may be used to point
to Allegro package directory. This is generally necessary
on non-*nix systems.
; NOTE: Review and test build processes and modified files,
and unmodified, but potentially related files:
bin/hb-func.sh
make_gnu.sh
make_rpm.sh
make_rpmce.sh
make_rpmw32.sh
* include/hbsetup.h
! Fixed OS_UNIX_COMPATIBLE
+ Small comments added.
; NOTE: I'd like to do the following global renames:
HB_WINCE -> HB_OS_WIN_CE
HB_OS_WIN_32 -> HB_OS_WIN
Opinions? Especially on the latter.
* include/hbdefs.h
* include/hbinit.h
* contrib/hbodbc/odbc.c
* _WIN64 -> HB_OS_WIN_64
* include/hbsetup.h
* source/common/hbver.c
- Removed HB_OS_MAC support. It was nothing more than a simple
detection and a static version string, so we didn't lose much.
* include/hbsetup.h
! Fixed problem where Darwin autodetection went wrong
between 1.0.0rc2 -> 1.0.0.
* HB_OS_DARWIN added to the HB_OS_UNIX detection list.
(no functional difference, just makes it more clear.)
% HB_OS_OS2_EMX removed. It was unused.
* source/compiler/gencobj.c
* include/hbsetup.h
% Removed OS_DOS_COMPATIBLE.
It's equivalent to !defined(HB_OS_UNIX_COMPATIBLE).
* harbour/source/vm/macro.c
* harbour/source/vm/hvm.c
! fixed _FIELD indirectly used as alias, f.e.:
? ("_FIELD")->NAME
or:
M->var := "_FIELD"
? ("&var")->NAME
* harbour/include/hbclass.ch
* harbour/include/common.ch
* use a little bit simpler form for HB_SYMBOL_UNUSED()
* harbour/contrib/hbw32/w32_ole.c
* harbour/contrib/hbole/ole2.c
! fixed numeric to pointer casting
* accept both pointer and numeric values as window handle
for easier code migration
* contrib/hbgt/Makefile
* contrib/hbgt/common.mak
- contrib/hbgt/strdiff.c
+ contrib/hbgt/strdiffg.c
- contrib/hbgt/charmix.c
+ contrib/hbgt/charmixg.c
- contrib/hbgt/asciisum.c
+ contrib/hbgt/asciisgt.c
- contrib/hbgt/ascpos.c
+ contrib/hbgt/ascposgt.c
* contrib/hbgf/hbgfos2/Makefile
- contrib/hbgf/hbgfos2/tmenuitm.prg
+ contrib/hbgf/hbgfos2/tmenuit.prg
! Some files renamed to collide with each other on
non-GNU make systems.
* contrib/examples/hscript/cgi.ch
* contrib/examples/hscript/dir.hs
* contrib/examples/hscript/multiply.hs
* contrib/examples/hscript/ugly.hs
* contrib/examples/hscript/hello.hs
* contrib/examples/guestbk/guestbk.ini
+ Added SVN headers.
+ source/rtl/gtalleg/common.mak
+ source/rtl/gtalleg/make_gcc.sh
+ source/rtl/gtalleg/make_b32.bat
+ source/rtl/gtalleg/make_vc.bat
+ Added non-GNU make file as an ugly hack to
build them on Windows systems.
- tests/altd.prg
+ tests/altdtest.prg
* Rename.
* include/hbver.h
* harbour-ce-spec
* harbour-w32-spec
* harbour.spec
* Version changed to '1.0.1dev'.
Trunk will need to be synced to tag/1.0.
* common.mak
+ Added version to harbour.dll: harbour-101-b32/vc.dll
; Work in progress. Pls comment.
* include/dbinfo.ch
* include/dbstruct.ch
* include/hbgtinfo.ch
* include/hblang.ch
* include/setcurs.ch
! Added "also used from C code" comments.
* utils/hbmake/ffile1.prg
! Minor cleanup.
* include/hbgfxdef.ch
* include/hbgtinfo.ch
* Marked old GTI_*, GFX_* macros with HB_LEGACY_LEVEL.
(Old macro HB_GT_NO_XHB no longer works)
* include/hbsetup.ch
+ Added HB_LEGACY_LEVEL macro. Currently turned on.
Will be turned off later, and completely removed
as a final step. Times are not defined for these
yet. Please prepare to modify your code to not
use old legacy stuff.
NOTE: C code using legacy Clipper (.api) headers are
unaffected.
* include/hbapirdd.h
* Marked HARBOUR_* macros with HB_LEGACY_LEVEL
* include/hbsetup.h
* Marked OS_UNIX_COMPATIBLE, OS_PATH_DELIMITER
macros with HB_LEGACY_LEVEL.
* include/hbapifs.h
* source/rtl/filesys.c
* Marked hb_fileNameConv() as HB_LEGACY_LEVEL.
; 3rd party and app developers should switch to
hb_fsNameConv().
* source/rtl/box.c
* source/rtl/console.c
* source/rtl/filesys.c
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* contrib/hbclipsm/gauge.c
* contrib/hbclipsm/status.c
* contrib/hbct/ctwin.c
* source/rtl/set.c
* utils/hbmake/hbmlang.c
* Updated core/contrib sources to use non-legacy names:
HB_CLRSTR_LEN, HB_EVALINFO, PHB_EVALINFO, HB_FHANDLE
; TODO: FHANDLE -> HB_FHANDLE is incomplete yet.
* include/hbdefs.h
* Minor formatting.
* include/hbmath.h
! #include <hbmath.ch> -> #include "hbmath.ch"
* contrib/hbmysql/mysql.c
+ function SQLFETCHR() updated to allow fetching binary (BLOB)
fields. [Thanks to Mitja Podgornik]
* include/hbapifs.h
* include/hbapigt.h
* include/hbapiitm.h
* include/hbdefs.h
* include/item.api
* include/filesys.api
* include/gt.api
* FHANDLE -> HB_FHANDLE
* EVALINFO -> HB_EVALINFO
* PEVALINFO -> PHB_EVALINFO
* EVALINFO_PTR -> marked as legacy
* CLR_STRLEN -> HB_CLRSTR_LEN
; Old names are still working if HB_LEGACY_LEVEL
is #defined, and by default now it is.
; It's highly recommended to change all 3rd party and
app C code to use the new #defines/types/functions.
; NOTE1: There are some more names which are still
in the legacy "namespace", and gradually
I'd like to clean some of these as well. The most
important would be the type names, as these
are currently colliding with multiple external
packages, like windows.h, and it also makes it
impossible to compile hbfimage on certain systems.
; NOTE2: I'd also like to move the *_PTR (like HB_ITEM_PTR)
names to legacy status as we don't really use
them except in a few VM files, and we have PHB_*
as a wide-spread (and shorter) replacement.
; NOTE3: We may also use HB_LEGACY_LEVEL to obolete other
legacy or unsafe functions, with better new
alternatives.
; NOTE4: Here's a more or less complete list of names
that _may_ cause such problems:
; Type related stuff
- TRUE, FALSE
- BOOL, BYTE, SCHAR, UINT, USHORT
- INT_MAX, INT_MIN
- INT16, INT16_MAX, INT16_MIN
- INT24_MAX, INT24_MIN
- INT32, INT32_MAX, INT32_MIN
- INT64, INT64_MAX, INT64_MIN
- LONG, LONG_MAX, LONG_MIN
- LONGLONG, LONGLONG_MAX, LONGLONG_MIN
- SHORT, SHRT_MAX, SHRT_MIN
- UCHAR, UCHAR_MAX
- UINT16, UINT16_MAX
- UINT24_MAX
- UINT32, UINT32_MAX
- UINT64, UINT64_MAX
- ULONG, ULONG_MAX
- ULONGLONG, ULONGLONG_MAX
- assert()
; Some hacks currently used:
- HB_DONT_DEFINE_BASIC_TYPES
- HB_DONT_DEFINE_BOOL
- HB_OS_WIN_32_USED ->
(include <windows.h> locally where needed)
; Compiler related stuff:
- VS_*, VU_*, VT_*, FUN_*
- *COMDECLARED, *COMCLASS, *COMSYMBOL
- VAR, PVAR
- _FUNC, PFUNCTION
- _INLINE, PINLINE
- _FUNCALL, PFUNCALL
- _EXTERN, PEXTERN
- AUTOOPEN, PAUTOOPEN
- FUNCTIONS
- INLINES
- FUNCALLS
- SYMBOLS
; Clipper compatibility #defines,
better be moved behind a compatibility layer:
- F_ERROR, FS_ERROR
- IS*()
- E_*, EF_*
- FL_*, FLX_*, FO_*, FXO_*
- _B_*
- FC_*, FS_*, FD_*
- INKEY_*, K_*
- ES_*, EG_*
- SC_*
- DBS_*
; + All RDD related stuff, including "dbinfo.ch" constants.
* include/hbapirdd.h
* include/hbsetup.h
+ Added the most commonly used old #defines for compatibility:
- HARBOUR_MAX_RDD_DRIVERNAME_LENGTH
- HARBOUR_MAX_RDD_ALIAS_LENGTH
- OS_UNIX_COMPATIBLE
- OS_PATH_DELIMITER
Please try not to use these anymore, as they will be removed
in version 1.1.
* harbour/bin/hb-func.sh
! updated SunOS and HPUX library list
! allow to set startup .prg function in DJGPP builds
* harbour/include/hbdefs.h
! defined HARBOUR_START_PROCEDURE procedure for DMC
it fixes problem with executing final applications
* harbour/config/w32/dm.cf
! disabled -o+time - with this switch wrong code is generated
what can be seen in HBRUN
* doc/whatsnew.txt
* Extended releases notes/issues section.
* config/w32/dm.cf
! Fixed to exclude "possible extraneous ';'" warnings
for every for()/while()/etc constructs with an empty body.
! Further fixes to link/lib rules.
; TOFIX1: odbc.c, gtwvg.c still don't compile.
; TOFIX2: Harbour executables won't run, by simply doing nothing.
* source/rtl/gtwvt/gtwvt.c
! Fixed to compile with __DMC__.
; NOTE: Przemek, could you please check these?
* include/hbsetup.h
! snprintf() for __DMC__.
* contrib/hbw32/dllcall.c
! Fixed casting for __DMC__.
* contrib/hbsqlit3/hbsqlit3.c
! Workaround for Pelles C 4.5 and Open Watcom, so that
sqlite3.c won't be included for these compilers.
Pelles C 4.5 crashes, Open Watcom 1.7 goes into an
infinite loop on this huge file. For thes compilers
the sqlite3 library should be supplied by the users.
* contrib/hbapollo/apollo.c
! Fixed to compile with Open Watcom.
* source/vm/mainwin.c
* source/vm/hvm.c
! Fix for __DMC__ startup problem:
'OPTLINK : Warning 134: No Start Address'
* include/hbsetup.h
* config/hpux/gcc.cf
* config/linux/gcc.cf
* config/os2/gcc.cf
* config/bsd/gcc.cf
! Never force the platform from the make files, rather
rely on the autodetection in hbsetup.h.
Compiling default parts of the software should only rely
on manually set macros if there is no reasonable chance to
make the detection automatic.
! HB_OS_LINUX, HB_OS_HPUX autodetection supposedly made more robust.
* include/hbsetup.ch
* include/hbapi.h
* source/rtl/hbffind.c
- Removed HB_FILE_VER stuff. It's lost it's importancy with SVN.
* include/Makefile
* include/hbcommon.ch
- Removed hbcommon.ch no longer needed. It only contained
HB_FILE_VER related stuff.
* contrib/rddado/Makefile
! Excluded from OS/2 builds.
* config/sunos/gcc.cf
! Fixed to include required system libs for hbinet.c.
- Removed HB_OS_SUNOS command-line macro. Now relying on
autodetection.
* include/hbsetup.h
* Extended autodetection for HB_OS_SUNOS.
* source/vm/itemapi.c
! Fixed to check for HB_OS_SUNOS macro after
including Harbour headers.
* harbour/include/hbextern.ch
* include scalar classes only when HB_REQUEST_SCALLAR define is set
* harbour/source/rtl/tobject.prg
! use <obj>:className instead of __objGetClsName( <obj> ) in error
message
* doc/whatsnew.txt
* bin/hb-mkslib.sh
! Changed the way harbour.dylib is created on Darwin systems
to support universal builds. Please review and test.
! Fixed generating links for .dylibs on Darwin.
! Removed one excessive 'cd "${OTMPDIR}"' command.
(I hope this is right)
! Removed previously added $(L_USR) from Darwin dynamic
lib creation command line, as the L_USR "-arch" flags
(and probably others) cannot work here.
; TOFIX: 'ld: library not found for -lharbour' is still
present.
* include/hbsetup.h
+ Added autodetection for HB_OS_DARWIN (based on __APPLE__).
* config/darwin/gcc.cf
! Not forcing HB_OS_DARWIN from the command-line,
we're relying on the autodetection.
* source/rtl/hbzlib.c
* include/hbextern.ch
* doc/whatsnew.txt
* Harbour level functions renamed:
HB_COMPRESS -> HB_ZCOMPRESS
HB_COMPRESSBOUND -> HB_ZCOMPRESSBOUND
HB_UNCOMPRESS -> HB_ZUNCOMPRESS
HB_UNCOMPRESSLEN -> HB_ZUNCOMPRESSLEN
This is to avoid collision with xhb functions
with similar name but different parameter list.
Please modify your programs to use the new interface.
INCOMPATIBLE.
* utils/hbextern/hbextern.prg
* Disabled scanning C HB_FUNC functions in .prg files.
* Minor formatting.
* include/hbapigt.h
! Minor cosmetic.
* source/vm/runner.c
* include/hbextern.ch
* doc/whatsnew.txt
* contrib/examples/hscript/hscript.prg
* utils/hbrun/hbrun.prg
* Harbour level functions renamed:
__HRBRUN -> HB_HRBRUN
__HRBLOAD -> HB_HRBLOAD
__HRBDO -> HB_HRBDO
__HRBUNLOAD -> HB_HRBUNLOAD
__HRBGETFU -> HB_HRBGETSYMBOL
__HRBDOFU -> HB_HRBDOSYMBOL
.hrb API functions moved to the documented namespace.
Old function names still function, but are deprecated.
Please modify your programs to use the new interface.
; NOTE: HB_DBG_*() function should I believe correctly
named as __DBG*(), as they are indeed internal
functions, not meant to guaranteed for final apps.
We should do this cleanup in the future.
* tests/Makefile
- tests/spawn.prg
- tests/spawn2.prg
! Removed two obsolete tests.
* harbour/make_deb.sh
* harbour/make_tgz.sh
* harbour/make_rpm.sh
* harbour/make_rpmce.sh
* harbour/make_rpmw32.sh
* harbour/bin/pack_src.sh
* force using BASH in all files which includes hb-func.sh
* harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* harbour/include/hbextern.ch
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/inkeyapi.c
* harbour/source/rtl/inkey.c
+ added HB_KEYINS() which works like HB_KEYPUT() but numeric
key values puts at the beginning of keyboard buffer.
It does not clear keyboard buffer contents.
* include/hbdefs.h
! Changed HB_SYMBOL_UNUSED() to better work for all
compilers, notably Pelles C.
! Fix to PFLL, although it didn't fix all GCC 4.3.1 warnings.
These remained:
../../genc.c:1582: warning: unknown conversion type character 'l' in format
../../genc.c:1582: warning: too many arguments for format
[ This changed got merged with existing commit. ]
; Thanks to Przemek for these patches.
* contrib/hbfbird/firebird.c
% Using PFLL instead of local logic.
* contrib/gtwvg/wvgutils.c
! Reverted some wrong fixes from previous commit.
* harbour/include/hbdefs.h
! fixed default printf length modifier for long long integer values
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
! fixed for new FM library name
* harbour/bin/hb-func.sh
* harbour/source/vm/hvm.c
* harbour/source/rtl/hbgtcore.c
* added const to s_defaultGT and s_pszLinkedMain declarations
* make s_pszLinkedMain visible and functional for platforms
which does not use HARBOUR_START_PROCEDURE
* harbour/source/vm/extrap.c
+ added exception trap for SIGSEGV, SIGILL, SIGFPE and SIGBUS
for *nixes which support sigaltstack()
* harbour/include/hbwmain.c
* harbour/source/vm/mainwin.c
* use of WinMain() from hbwmain.c
* harbour/source/pp/pplib.c
* ignore all #pragma directives setting compiler switches instead
of generating RT error when user uses PP in .prg code by __PP_*()
functions
* harbour/source/Makefile
+ harbour/source/hbextern
+ harbour/source/hbextern/hbextern.prg
+ harbour/source/hbextern/Makefile
* harbour/common.mak
* harbour/make_b32.mak
* harbour/make_gcc.mak
* harbour/make_vc.mak
* harbour/make_vcce.mak
* harbour/bin/hb-func.sh
+ added hbextern library
+ added hbextern to harbour shared library. Now all functions
are registered and visible for dynamically linked applications
not only .prg ones and .c functions explicitly bound with some
.prg code
* harbour/utils/hbrun/Makefile
* harbour/utils/hbrun/hbrun.prg
* use hbextern library instead of #include "hbextern.ch"
It has no noticeable effect on static builds but greatly
reduce the size of dynamic builds, f.e. current hbrun
linked dynamically in my Linux box has 12KB.
* include/hbdefs.h
! Fixed 4 remaining warnings in BCC 5.8.2 builds.
Many thanks to Przemek for the patch.
NOTE: Now BCC58 core is warning-free and there are
two warnings in its own header files, exploited
by contrib hbcurl/libcurl.
* source/pp/ppcore.c
* doc/whatsnew.txt
! __PLATFORM__* macros now all #defined in full uppercase.
F.e.:
__PLATFORM__Windows becomes __PLATFORM_WINDOWS
__PLATFORM__Linux becomes __PLATFORM__LINUX
INCOMPATIBLE.
* contrib/xhb/hbcompat.ch
+ Added compatibility #defines for __PLATFORM__* macros.
* include/hbdefs.h
! Minor formatting.
* harbour-ce-spec
* harbour-w32-spec
* make_xmingw.sh
* make_xmingwce.sh
* source/debug/debugger.prg
* contrib/hbtpathy/telepath.prg
* contrib/hbw32/w32_tole.prg
* contrib/hbw32/w32_tprn.prg
* utils/hbdot/hbdot.prg
* utils/hbmake/hbmake.prg
* Changed __PLATFORM__* #define according to latest changes.
; NOTE: I find this kind of compile-time platform dependency
quite wrong in an normal application, and we should
definitely avoid it in core Harbour.
In core Harbour there is one place where it would
better be eliminated, and in order to do this, we'd
need to have a filename equality comparison FS
function. Maybe we already have one, I don't know.
* include/hbdefs.h
! Patch added to workaround following phoney warnings
when using BCC 5.8 compiler (tested with 5.8.2):
Warning W8017 C:\devl\BCC58\Include\stdint.h 77: Redefinition of 'INT16_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 78: Redefinition of 'INT32_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 79: Redefinition of 'INT64_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 82: Redefinition of 'INT16_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 83: Redefinition of 'INT32_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 84: Redefinition of 'INT64_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 87: Redefinition of 'UINT16_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 88: Redefinition of 'UINT32_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 89: Redefinition of 'UINT64_MAX' is not identical
Many thanks to Przemek for this patch.
* include/hbextern.ch
+ EXTERNAL __OBJGETPROPERTIES
* doc/whatsnew.txt
+ Updated with new functions.
* source/hbpcre/_hbconf.h
! Silenced a #pragma warning for MSVC 12.x.
; NOTE: Some notable MSVC 12.x warnings in Harbour code:
source\rdd\hbsix\sxcompr.c(532) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(533) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(539) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(540) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
There are 3 more known warnings, the rest is common integer difference warning.
* harbour/contrib/hbmzip/zip.c
! fixed access to uninitialized member of z_stream by simple
initialization. Anyhow it's minor bug in MINIZIP code exploited
HB_ZipDeleteFile() which causes that TEXT flag is not set after
raw binary file updating. There is also no API call to make it
manually.
* harbour/contrib/hbmzip/hbmzip.c
* harbour/contrib/hbmzip/readme.txt
+ added HB_ZipDeleteFile( cZipFile, cFileMask ) --> nError
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/dirscan.prg
+ added HB_DirScan( cPath, cFileMask, cAttr )
* harbour/source/rtl/strmatch.c
+ added HB_FileMatch( cFile, cPattern )
* harbour/include/hbextern.ch
+ added HB_DirScan(), HB_FileMatch()
* harbour/contrib/xhb/dirrec.prg
* changed to use HB_DirScan()
* harbour/contrib/hbmzip/hbmzip.c
! fixed storing/setting file date, time and attributes in *nixes
* harbour/include/hbapifs.h
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
! replaced hack with direct bit conversion in *nixes attributes
by bit testing