* harbour/contrib/hbwin/axcore.c
! fixed double binding of ax event handler with two different
OLE pointer items - it was causing accessing freed or reused
by other things memory potentially with all possible bad side
effect.
Mindaugas, please verify me but I think that you forgot to remove
the old binding when you were adding the code I proposed and you
didn't leave it intentionally. Am I right?
- contrib/hbct/ctextern.prg
* contrib/hbct/hbct.hbp
- contrib/hbxbp/hbxbpext.prg
* contrib/hbxbp/hbxbp.hbp
- contrib/hbwin/hbwinext.prg
* contrib/hbwin/hbwin.hbp
* contrib/hbqt/qtgui/hbqtgui.hbm
- contrib/hbqt/qtgui/hbqt_extern.prg
* contrib/hbqt/qtwebkit/hbqtwebkit.hbm
- contrib/hbqt/qtwebkit/hbqt_extern.prg
- contrib/hbqt/qtcore/hbqt_extern.prg
* contrib/hbqt/qtcore/hbqtcore.hbm
- contrib/hbqt/qtnetwork/hbqt_extern.prg
* contrib/hbqt/qtnetwork/hbqtnetwork.hbm
- contrib/hbqt/qtuitools/hbqt_extern.prg
* contrib/hbqt/qtuitools/hbqtuitools.hbm
- contrib/hbqt/qscintilla/hbqt_extern.prg
* contrib/hbqt/qscintilla/hbqscintilla.hbm
- contrib/hbqt/qtdesigner/hbqt_extern.prg
* contrib/hbqt/qtdesigner/hbqtdesigner.hbm
- contrib/rddads/adsextrn.prg
* contrib/rddads/rddads.hbp
- contrib/hbgd/gdextern.prg
* contrib/hbgd/hbgd.hbp
% Deleted separate puller modules and added .hbx to the project directly.
; TODO: Some wrapper projects have the name already used for .c files,
so .hbx cannot be directly included ATM.
; TODO: Move -D__HBEXTREQ__ to local .hbp files so they kick in in stdalone mode too.
Or maybe hbmk2 should always define it, if there is an .hbx file included
in a project, after all it can generate these .hbx files, too.
* contrib/hbmxml/hbmxmlx.prg
* contrib/hblzf/hblzfx.prg
* contrib/hbxdiff/hbxdiffx.prg
* contrib/hbexpat/hbexpatx.prg
% Deleted some lines no more necessary.
* contrib/xhb/xhb.hbp
* contrib/hbxpp/hbxpp.hbp
+ Added .hbx puller to projects.
* contrib/hbwin/hbwin.hbp
+ contrib/hbwin/hbwinext.prg
+ contrib/hbwin/hbwin.hbx
+ Added extern puller logic for hbwin.
To pull it, use: REQUEST __HBEXTERN__HBWIN__ in the main
app module.
* contrib/hbwin/hbwin.hbp
+ contrib/hbwin/oleuuid.c
! Fixed linking Harbour OLE functions when using watcom
compiler. It also caused build errors with HB_BUILD_CONTRIB_DYN=yes.
Many thanks to Andi for suggesting the solution.
* contrib/xhb/hbsyslog.c
* Guard cleanup. Patch from Tamas.
* contrib/hbwin/hbolesrv.c
! Fixed doubly defined symbols in HB_BUILD_CONTRIB_DYN=yes.
'hbmaindllp.lib(dllpcode.obj) : error LNK2005: _DllMain@12 already defined in hbolesrv.obj'
OLE server code will be left out of the .dll version of hbwin lib,
please refine it if needed.
* 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/contrib/hbnetio/netiomt.prg
+ added 8-th parameter <sSrvFunc> to NETIO_MTSERVER().
It allows to set own server function which can be used for
statistic or connection INIT/EXIT code. By default it's
@netio_server() is used.
User functions may look like:
function custom_netio_server( pConnectionSocket )
register_connection( pConnectionSocket )
begin sequence
netio_server( pConnectionSocket )
finally
unregister_connection( pConnectionSocket )
end sequence
return nil
* harbour/contrib/hbnetio/netiosrv.c
+ added new server function
NETIO_SRVSOCKET( <pConnectionSocket> ) -> <pHbSocket>
<pHbSocket> can be used with Harbour socket functions (hb_socket*())
Please remember that <pHbSocket> handle can be used only for statistics
and must not be used for any send/receive operations.
* harbour/contrib/hbnetio/readme.txt
* updated
* harbour/contrib/hbwin/tests/olesrv1.prg
* modified to return HVM error object as OLE object to the client
on RTE
* contrib/hbwin/mapi.c
! Disabled UNICODE support for WIN_MAPISENDMAIL(). Apparently this
is called "Simple MAPI" interface by Microsoft, it's deprecated
and _doesn't_ support U16 UNICODE. UTF-8 is supposed to be supported
to some extent, but in a weird way, so I'm leaving the implementation
to interested users. I recommend everyone to use hbcurl + hbtip for
sending e-mails.
- harbour/contrib/hbwin/oleinit.c
* removed old OLE initialization and cleanup code which was working
only for main thread
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/hbwin.hbp
* harbour/contrib/hbwin/hbolesrv.c
* harbour/contrib/hbwin/legacyco.c
+ added new OLE init/exit code which is thread oriented
WARNING: now OLE is initialized when thread executes first time
one of Harbour OLE functions not at application startup.
C code which uses OLE without calling any Harbour PRG
level OLE function should initialize OLE for each thread
calling hb_oleInit() - it's very fast function so it can
be called without noticeable overhead. Please remember
that such initialization should be done for each thread.
Please test it - I do not have access to MS-Windows computer now
so I cannot make any test myself.
* src/rtl/hbsocket.c
! hb_socketSetReuseAddr() changed on win platforms to use
SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR. See http://paste.lisp.org/display/59751.
Rough patch, maybe the logic isn't applied to the right place,
maybe extra win version checks are required, please test it
and patch it further if needed.
* src/rtl/hbinet.c
* s_inetBind() changed back to call hb_socketSetReuseAddr() also
on win platforms.
* contrib/hbwin/tests/testole.prg
+ Added shortcut creation example.
* contrib/hbide/idemisc.prg
! Fixed HBIDE_PATHNORMALIZED() to _never_ lowercase passed
filename. As discussed very long time ago, such behavior
is not portable. For comparison purposes HB_FILEMATCH()
should be used, for other purposes _no_ change should be
done by hbide in filename casing. Ever.
This is brute force fix only applied to low-level code.
It will cause regressions on the higher level, which have
to be fixed.
; TODO: Delete this second parameter from all calls, now
the value is ignored.
; TOFIX: Review all
HBIDE_PATHNORMALIZED() and
HBIDE_PATHNORMALIZED( p, .T. )
calls if they are used in comparison context and change
caller code to use HB_FILEMATCH().
; TOFIX: All current code which uses LOWER()/UPPER() to
"normalize" filename before comparison with '=='
operator should also be changed to HB_FILEMATCH().
(except for cases where extension is used in the
sense of file type).
; TOFIX: Rest of cases where LOWER()/UPPER() is applied to
filenames.
! Fixed HBIDE_PATHFILE() to never uppercase drive letter.
It's not strictly required since all so far known systems
supporting drive letter are case insensitive, but it's
nevertheless not the job of hbide to reformat pathnames.
* contrib/hbide/ideactions.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
! Fixed some code to use HB_FILEMATCH() instead of unconditional
uppercasing/lowercasing. Please review and finish this modification,
there might be more hidden places and might have overlooked anything
in this patch.
* harbour/include/hbpp.h
! removed repeated declaration of hb_pp_eof()
* harbour/include/hbapicdp.h
* harbour/include/hbapilng.h
* harbour/include/hbgtcore.h
* added extern declaration to HB_*_REQUEST() macros to pacify
undeclared global functions warnings
* harbour/include/hbstack.h
! added missing hb_stackDec() declaration
* harbour/include/hbdefs.h
! added missing const in some endian macros
* removed some unnecessary casting which may hide bugs
in the code
* harbour/include/hbapi.h
! removed repeated declaration of hb_strVal()
* harbour/include/hbznet.h
! removed repeated declaration of hb_znetError()
* harbour/include/hbcompdf.h
* minor comment
* harbour/src/vm/hvm.c
! added missing static to hb_vmTSVarClean() declaration
* added extern hb_vmForceLink() declaration to pacify
undeclared global functions warnings
* harbour/src/vm/thread.c
* make hb_threadInit() and hb_threadExit() internal HVM
functions available only in MT mode
* harbour/src/rtl/dates.c
! added missing static to hb_dateUnformatRaw() declaration
* harbour/src/macro/macrolex.c
* added extern hb_macro_yylex() declaration to pacify
undeclared global functions warnings
* harbour/src/rdd/workarea.c
* added extern _hb_rddWorkAreaForceLink() declaration to pacify
undeclared global functions warnings
* harbour/src/compiler/complex.c
* added extern hb_comp_yylex() declaration to pacify
undeclared global functions warnings
* harbour/contrib/hbnetio/netiocli.c
! added missing static to s_fileFlush() declaration
* harbour/contrib/hbct/tempfile.prg
! respect in TmepFile() function default file attributes set by
SetFCreate()
* harbour/contrib/hbct/ctstrfil.h
! added missing declarations for ct_getfcreate() and ct_setfcreate()
* harbour/contrib/hbwin/legacy.prg
* removed dummy RETURN statement
* harbour/contrib/xhb/fparse.c
! added missing static to hb_ParseLine() declaration
* harbour/contrib/xhb/freadlin.c
! added missing static to hb_fsReadLine() declaration
* harbour/contrib/xhb/txtline.c
! added missing static to hb_readLine() and hb_tabexpand() declarations
! fixed uninitialized variable warning exploited by above modification
(static function was automatically inlined increasing optimizations)
* harbour/contrib/xhb/hbserv.c
! removed repeated declaration of hb_isService() and hb_serviceExit()
* harbour/contrib/xhb/cstructc.c
* disabled public C functions hb_retclenAdoptRaw() and hb_retclenStatic()
* harbour/contrib/xhb/xhbat.c
* declare C function hb_AtSkipStrings() as static
Warning: this functions is part of public xHarbour C API.
; TODO: The following functions are declared as public but without
any prototypes in header files so they should be made static
or we should add them to some header files:
hbver.c:143: hb_verHostCPU()
hbjson.c:640: hb_jsonEncode()
hbjson.c:665: hb_jsonDecode()
sha2.c:228: sha256_transf()
sha2.c:445: sha512_transf()
I would like to ask authors to look at them and chose
best solution.
* contrib/hbwin/tests/testcom1.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/win_tcom.prg
* contrib/hbwin/win_com.c
! Fixed samples to not query error value (since it RTEs if
the port is not open)
+ WIN_COMISVALID( <nPort> ) -> <l> added to check if port number is a valid one.
+ WIN_COMERRORCLEAR( <nPort> ) added to clear last error.
! WIN_COMERROR() changed to not clear the error on read.
+ WIN_COM():ERROR() method added to retrieve last error in numeric form.
* Samples changed to use :ERRORTEXT() to show errors.
; INCOMPATIBLE changes.
; DISCLAIMER: I'm not a user of this, so to raise your chances for
a fix, pls submit patches. I also couldn't spend huge
time to rethink the whole concept of these interfaces.
IOW: Contribute.
* harbour/src/rdd/sdf1.c
! fixed bug in SDF import procedure - many thanks
to Enrico Maria Giordano for reporting the problem
and to Vicente Guerra for locating the reason
BTW fix committed to xHarbour may work but it's not correct,
I suggest to update it.
* harbour/src/rtl/hbdyn.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/contrib/hbct/bitnum.c
* harbour/contrib/hbwin/olecore.c
* pacified some of MSVC6 warnings reported by Andi
* harbour/utils/Makefile
* added internal/developers build switch
- 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.
* harbour/contrib/rddsql/sqlbase.c
+ added timestamp type support in PutValue RDD method
* harbour/contrib/hbwin/axcore.c
* commented out debug line to be in sync with commented out
function that it uses
* contrib/hbwin/win_os.prg
* Reverted 2010-10-22 19:08 UTC+0200
Turns out it was alright without the fix, as hb_osIsWinVista()
returns .T. also for upper versions (win7) by design, so it was not
necessary to change it to win_osIsVistaOrUpper() hbwin specific call.
Please double check it though, maybe I'm just too tired.
* contrib/hbwin/win_os.prg
+ WIN_OSNETREGOK() extended to disable some SMB2 internal caches,
which if left on default might cause db corruption on Vista
and above systems.
* include/hbnsctp.ch
+ Added comment that the file is used by C code.
* harbour/contrib/hbwin/axcore.c
! fixed CPP compilation by using compiler macros in method calls
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
+ implemented additional OLE destructors. Added Undavise() call
to :__hSink destructor. This fixes unresponsive OLE server app
behaviour after corresponding Harbour object is freed
; Code proposed by Przemek, some fixes applied
* harbour/src/rtl/gtstd/gtstd.c
* updated to compile with WinCE
* harbour/package/harbour.spec
* modified to work with new HBMK2 translations
* harbour/contrib/hbmzip/hbmzip.c
! fixed function order
* harbour/contrib/hbwin/axcore.c
* include <olectl.h>
! fixed buffer sizes in debug function
* removed trailing spaces and tabs
* harbour/contrib/hbwin/hbolesrv.c
* include <tchar.h> - for some compilers which do not make it
with OLE header files
* harbour/contrib/hbwin/axcore.c
+ added support for obtaining default callback event interface.
__AxRegisterHandler( pDisp, bHandler [, cIID ] ) parameter can be:
- event interface ID, i.e. "{...}";
- event interface name, ex., DWebBrowserEvents;
- otherwise default event interface is tried to obtain.
; NOTE: some regresions are possible. IDispatch is not the default
value for cIID. To force the previous behaviour, you should use
__AxRegisterHandler(,, "{00020420-0000-0000-C000-000000000046}"),
but I guess this should never be required.
; Don't ask me how I've wrote this code :)
* harbour/contrib/hbwin/tests/pdfcreat.prg
* changed to sync with new __AxRegisterHandler() behaviour
* harbour/contrib/hbwin/tests/testole.prg
+ added new Internet Explorer test to show OLE callback events
* harbour/contrib/hbwin/tests/pdfcreat.prg
! fixed warning for whose who uses alternatve sample branch #if 0
* harbour/src/rtl/gtstd/gtstd.c
! fixed console input pooling for Windows (you don't need to keep
a key pressed to run application)
* harbour/src/rtl/gtwvt/gtwvt.c
! fixed possible double font freeing in non UNICODE builds
* harbour/contrib/hbwin/win_misc.c
+ added prg function WIN_UNICODE() which returns logical value
indicating if UNICODE macro was used or not
* harbour/contrib/hbwin/olecore.c
! fixed to return assigned value instead of 1-st parameter when more
then one parameter is used in code like:
object:_name( param, value )
* harbour/contrib/hbwin/hbolesrv.c
! fixed updating of OLE object reference counter used by
DllCanUnloadNow()
* harbour/contrib/hbwin/olecore.c
+ added possibility to use more than one parameter in property put
call. This allows to make a workaround for non-existant Harbour
language syntax:
object.name(param) = value
Workaround syntax:
object._name(param, value)
+ added comment documenting OLE automation behaviour for various
VBScript sentences
+ harbour/contrib/hbwin/tests/pdfcreat.prg
+ added sample code for producing .pdf documents using OLE and PDFCreator
* contrib/hbwin/hbwin.hbp
+ contrib/hbwin/win_rpc.c
+ contrib/hbwin/tests/testrpc.prg
+ Added WIN_UUIDCREATESTRING() function to generate UUIDs
via Windows API. Requires W2K or upper as per MSDN.
If not supported, it returns empty string.
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/hbolesrv.c
+ added new 'HB_USHORT uiClass' parameter to hb_oleDispInvoke()
C function and updated corresponding code.
* harbour/contrib/hbwin/olecore.c
! use hb_oleVariantToItemEx() instead of hb_oleVariantToItem()
in hb_oleSafeArrayToItem() to keep original object class when
arrays are created.
* keep original OLE object class when new OLE object is created
in parameters passed by reference or returned by executed
OLE method
* keep original OLE object class when new OLE object is created
by overloaded [] operator
+ added 3-rd parameter to __OleEnumNext() function which allow
to set OLE object class.
* harbour/contrib/hbwin/oleauto.prg
* keep original OLE object class in enumerators (__OleEnumNext())
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/olecore.c
+ implemented WIN_OLEAUTO class overloading
* harbour/contrib/hbwin/legacy.prg
- removed "[]" overloading. It's in the core object now.
* src/rtl/hbjson.c
! fixed long long printf format
* harbour/contrib/hbwin/olecore.c
! do not convert parameters passed by reference for DISPID_PROPERTYPUT
It should fix potential memory leak because in such case we do not
use PutParams() which release them.
! return assigned value instead of index in __OPINDEX() method.
* harbour/contrib/hbwin/olecore.c
! added missing call to Release() method in __OleGetActiveObject()
function. It should fix problem reported by Daniel Garcia-Gil.
* include/hbextern.ch
* src/rdd/usrrdd/usrrdd.c
! Fixed typo in function name: WRITEBHEADER() -> WRITEDBHEADER()
Eagle-eye spotted by Marcos Gambeta.
* contrib/make.hbs
! Fixed to include dependent .hbc files instead of referencing
own .hbc file in HB_BUILD_CONTRIB_DYN mode. It was not good
solution as it was referencing itself that way.
+ Will now request dynamic version of dependencies when building
HB_BUILD_CONTRIB_DYN dynlibs. This is required otherwise f.e.
hbxbp lib will contain a static copy of hbqt libs, which is not
very good.
! Fixed to not attempt to build dynamic version of referenced
projects in HB_BUILD_CONTRIB_DYN mode.
* contrib/hbct/hbct.hbc
* contrib/hbqt/hbqt.hbc
* contrib/rddsql/rddsql.hbc
* contrib/hbtip/hbtipssl.hbc
* contrib/hbtip/hbtip.hbc
* contrib/hbwin/hbwin.hbc
* contrib/hbssl/hbssl.hbc
+ Experimental move to support linking dynamic version of the
dependencies when building dynamic lib in HB_BUILD_CONTRIB_DYN
mode. This is starting to get insanely ugly (thanks Microsoft)
so I'll with it some more and probably leave it.
; I hope I didn't miss any contribs which can also be a dependency
(probably I did)
* contrib/pkglist
* contrib/hbtip/hbtip.hbp
* hbtipssl made a separate project instead of being a sub-project
of hbtip. hbtipssl has different dependencies, so this move
was needed for libdyn support.
* INSTALL
* tdragon mingw marked as non-recommended. They due to
incompatible with previous release tool naming, our make
systems cannot currently support it. (it needs CCPOSTFIX
for windres tool when using the dwarf-2 installation)