* source/rtl/filesys.c
! Disabled hb_fsPOpen() body for __CYGWIN__.
This way __CYGWIN__ compiles cleanly.
(although I'm not sure how important Cygwin support is)
* source/rtl/hbinet.c
! Bad workaround for the '__WSAFDIsSet unresolved' problem
in Pelles C 5.00.13 AMD64 mode, to make final executables
link at all. Some hbinet.c features (or the whole module)
won't properly work though.
This possible bug has been reported on the Pellec C forums:
http://forum.pellesc.de/index.php?topic=2590.0
* 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/common/hbver.c
* hb_verCompiler() buffer size cleanup.
* source/rtl/hbinet.c
* Minor formatting.
* utils/hbmake/hbmake.prg
* PRG -> .prg on some screen messages.
* config/w32/xcc.cf
* config/w32/pocc.cf
+ Added ws2_32.lib. Didn't solve the problem, but
as per MS docs of some functions we use, we should
use this instead of wsock2 (everywhere actually)
[and ws2 instead of winsock for WinCE]. Someone pls
correct me if I'm wrong, or if there is any reason
we're using both and/or the older one?
* config/w32/pocc.cf
- Removed C switch -Zx (Enable Pelles C extensions).
We don't need this.
* harbour/source/compiler/hbmain.c
! reset class and functions static declarations to avoid GPF
when more then one file is compiled with -w3 switch
NOTE: Whole this code will have to be removed and written
from scratch
- 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
* 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.
* harbour/contrib/hbw32/w32_ole.c
* removed hack with malloc()/free() directly used to avoid
memory leak reports - it's not necessary in Harbour.
* harbour/contrib/hbfbird/firebird.c
* harbour/contrib/examples/pp/hbppcore.c
! fixed buffer size calculation in hbstrnc*() functions
* harbour/contrib/hbziparch/hbzipnew.cpp
% use hb_strdup() instead of hb_xgrab()/hb_strncpy()
* harbour/contrib/hbnf/getenvrn.c
! use hb_xgrab() instead of hb_xalloc() - the returned value
was not checked and internal error is for sure better then
GPF on NULL pointer
* harbour/source/rdd/dbfntx/dbfntx1.c
! use memcpy() instead of hb_strncpy() to avoid problems when
there is no place for tailing 0
* 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).
* source/common/hbver.c
! Fix to commit '2008-07-11 18:20 UTC+0200' which
effectively disabled Vista/2008 detection for
everything but MSVC (>1400) compilers.
* 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
* source/vm/cmdarg.c
! hb_hInstance, hb_hPrevInstance, s_iCmdShow, s_WinMainParam
vars marked as 'static', hb_ prefix changed to s_.
NOTE: This may pose a problem if some 3rd party code
was relying on the names or the fact that these
vars were exported by incident (since they were
not declared in any Harbour headers.)
[INCOMPATIBLE]
* contrib/hbwhat32/whtmain.c
! Removed WinMain() function and some global vars colliding
with some Harbour core ones.
* HINSTANCE(), HPREVINSTANCE(), NCMDSHOW() functions now
use Harbour API calls to retrieve values.
* make_vc.mak
* make_vcce.mak
% Cleaned list of system libraries for VC. winspool.lib
removed, the rest documented.
* Syncing between VC and VCCE.
; NOTE: WinCE system lib list didn't get anything removed
(just added), but nevertheless pls test it.
* ChangeLog
* Some cleanups (regarding my entries).
* source/pp/hbpp.c
! Comment typo.
* source/rtl/gtclip.c
! Fixed for __CYGWIN__.
* contrib/hbw32/dllcall.c
! Disabled asm parts for __CYGWIN__ to make it compile.
* config/w32/gcc.cf
! Added missing system lib wsock32 for Cygwin.
* config/w32/gcc.cf
* config/w32/cemgw.cf
* config/w32/mingw32.cf
* config/w32/owatcom.cf
* config/w32/pocc.cf
* config/w32/watcom.cf
* config/w32/xcc.cf
* Attempt to sort out system libs needed for core from
those needed for contribs. No system libraries have
been removed or added so far. [ I wonder why we need to
include contrib sys lib dependencies here, when Harbour
GNU make system doesn't build any contrib dependent
executables. Also, some ws2_32.lib seems definitely
superfluous. ]
; TOFIX: (for __CYGWIN__)
../../filesys.c: In function `hb_fsPOpen':
../../filesys.c:577: warning: passing arg 1 of `pipe' from incompatible pointer type
* harbour/tests/rddtest/rddmktst.prg
* harbour/tests/rddtest/adscl52.prg
* harbour/tests/rddtest/adscl53.prg
* harbour/tests/rddtest/ntxcl52.prg
* harbour/tests/rddtest/ntxcl53.prg
* harbour/tests/rddtest/cdxcl52.prg
* harbour/tests/rddtest/rddtst.prg
* harbour/tests/rddtest/cdxcl53.prg
* added copyright note. It's my code.
* harbour/source/debug/dbgentry.c
! strip function name from module name used to initialize
global and file wide variables. It fixes presenting file
wide static variables in debugger.
* harbour/source/debug/debugger.prg
% minor optimization
* tests/multifnc/t0.prg
* tests/multifnc/t1.prg
* tests/multifnc/t2.prg
* source/rdd/usrrdd/example/exmemo.prg
* source/rdd/usrrdd/example/exhsx.prg
* source/rdd/usrrdd/example/exfcm.prg
* source/rdd/usrrdd/example/exrlx.prg
* contrib/xhb/hbsyslog.c
* contrib/rddado/tests/mysql3.prg
* contrib/rddado/tests/access1.prg
* contrib/rddado/tests/access2.prg
* contrib/rddado/tests/mysql1.prg
* contrib/hbpgsql/tests/tstpgrdd.prg
! SVN headers.
* contrib/hbwhat32/Makefile
* contrib/hbwhat32/common.mak
- contrib/hbwhat32/wintypes.ch
- Removed wintypes.ch, as it collides with a header with
the same name (and similar content) in xhb. It will
now use the xhb one, since it already relied on other
xhb headers anyway.
If anyone wants to sort this out properly, pls do.
* 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.
* source/pp/hbpp.c
* source/vm/cmdarg.c
* source/vm/memvars.c
* source/rtl/dates.c
* source/rtl/fstemp.c
* source/rtl/gtchrmap.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtstd/gtstd.c
* source/rdd/dbf1.c
* source/rdd/dbfntx/dbfntx1.c
* contrib/hbct/disk.c
* contrib/hbfbird/firebird.c
* contrib/hbw32/w32_ole.c
* contrib/xhb/hboutdbg.c
* contrib/examples/pp/hbppcore.c
* strncpy() -> hb_strncpy()
* strncat() -> hb_strncat()
! In most of these places the terminating zero
was not explicitly set by the caller before.
* contrib/hbnf/getenvrn.c
* contrib/hbw32/dllcall.c
* contrib/hbw32/w32_ole.c
* contrib/hbwhat32/_wincdlg.c
* contrib/hbwhat32/_windll.c
* contrib/hbwhat32/_winmain.c
* contrib/hbziparch/hbzipnew.cpp
! strcpy() -> hb_strncpy()
! strcat() -> hb_strncat()
; TOFIX1: There are still two strcpy()s left in SQL_SPRINTF().
Xavi, could you pls take a look at it?
; TOFIX2: There are still a few strcpy()s in hbwince.c and
dbgentry.c.
* source/pp/hbpp.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtstd/gtstd.c
* contrib/hbfbird/firebird.c
* contrib/hbwhat32/_wincdlg.c
* contrib/hbwhat32/_windll.c
! Fixed wrong buffer sizes (or no buffer limits) in some
string copy operations (potential buffer overruns).
* contrib/hbnf/getenvrn.c
! Fixed bad leak in FT_GETE() on Win32 systems.
* source/rtl/fstemp.c
! hb_fsTempName(): Fixed potential buffer overrun by one byte.
* Minor formatting.
* source/rtl/fstemp.c
* source/rtl/hbffind.c
* contrib/xhb/hboutdbg.c
* Using sizeof() instead of explicit size in string copy operations.
; TODO: There is a lot more to fix like this.
; Przemek, could you double check these changes pls?
I can send you the .diff if it helps.
* common.mak
* source/vm/debug.c
* source/vm/hvm.c
* source/vm/Makefile
+ source/vm/debugold.c
+ Added some HB_DBG_*() functions for compatibility
with certain 3rd party libs. They are marked with
HB_LEGACY_LEVEL, and will be removed (pbly at 1.1.0),
so everyone is encouraged to use __DBG*() version
for Harbour versions above 0x010000 (or not use
them at all, if this is possible). If these functions
are indeed needed for some functionality, it'd be
good to hear about it, maybe there is a solution
which doesn't require internals.
* utils/hbdoc/ft_funcs.prg
* utils/hbmake/ft_funcs.prg
* Using FS_* manifest constants.
* 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.
* 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'
* harbour/config/w32/dm.cf
* updated for central library directory used by Harbour - not tested
* harbour/config/w32/xcc.cf
! fixed include PATH in XCC builds - Viktor be carefull with
cleaning -I<path> parameter. Some compilers use different
rulles then the one you may expect using the most popular
ones and such operation will break compilation. F.e. XCC
seems to ignore source file location for releative paths
so in GNU make builds it's necessary to add "-I$(TOP)"
instead of "-I." and when included file starts with ".."
then it does not try to use it with paths set by -I option
so we need -I$(TOP)$(ROOT) and hard coded for this compiler
directories in include/hbregex.h and include/hbzip.h
* harbour/source/hbzlib/zutil.h
! do not use fdopen() with XCC - it does not support it
* harbour/contrib/examples/pp/pp.c
* harbour/contrib/examples/pp/hbppcore.c
* harbour/source/common/hbfsapi.c
* harbour/source/rtl/fnsplit.c
* harbour/source/rtl/fstemp.c
! always use _POSIX_PATH_MAX + 1 buffers
* harbour/source/compiler/gencobj.c
* extended line buffer size
* harbour/source/rtl/gtcrs/gtcrs.h
* removed unnecessary declaration for _POSIX_PATH_MAX
it's always defined in Harbour header files
* harbour/source/rtl/inkey.c
* harbour/source/rtl/hbinet.c
* harbour/source/rtl/gtwvt/gtwvt.c
* use hb_array[SG]et*() functions insteaf of
hb_item*( hb_arrayGetItemPtr, ... )
* 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.