* contrib/hbplist
* contrib/hbhttpd/core.prg
* contrib/hbhttpd/hbhttpd.hbp
* contrib/hbhttpd/hbhttpd.hbc
+ contrib/hbhttpd/hbhttpds.hbp
+ contrib/hbhttpd/hbhttpds.hbc
* contrib/hbhttpd/widgets.prg
* contrib/hbhttpd/hbhttpd.hbx
- contrib/hbhttpd/tests/webapp.prg
+ contrib/hbhttpd/tests/eshop.prg
* contrib/hbhttpd/tests/files/main.js
+ contrib/hbhttpd/tests/tpl
+ merged latest uhttpd changes (0.4) posted by Mindaugas on his
website into hbhttpd. It implements these changes (quote):
* strict scope for UHttpd class methods and variables
* support for more HTTP status codes
* added error handler for child processes
! fixed bug in HttpDateUnformat()
* new server parameters setting approach implemented
* more friendly UProcInfo() output format
+ client IP filtering
* src/vm/hashes.c
* src/vm/hashfunc.c
+ implemented posibility to use hashes a sorted arays with binary search.
Implemented HB_BOOL hb_hashScanSoft( pHash, pKey, &nPos ). Function
if similar to, but returns nPos even if pKey is not found in pHash.
Extended HB_HHASKEY( aHash, xKey [, @nPos ] ) --> lFound
Function optionaly returns position of the item with a largest key
smaller or equal to xKey. If xKey is less than all keys in hash,
zero position is returned. I.e.,
aHash := {10=>, 20=>}
? HB_HHASKEY( aHash, 5, @nPos ), nPos // .F. 0
? HB_HHASKEY( aHash, 10, @nPos ), nPos // .T. 1
? HB_HHASKEY( aHash, 15, @nPos ), nPos // .F. 1
? HB_HHASKEY( aHash, 20, @nPos ), nPos // .T. 2
? HB_HHASKEY( aHash, 25, @nPos ), nPos // .F. 2
* contrib/hbide/idebrowse.prg
* contrib/hbide/idechangelog.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idedocwriter.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideformat.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemain.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
* Fixed: (Hopefully) hbIDE crash at exit.
This might happen at certain situations when a slot
is executed while object has already been destroyed
by its parent.
The problem report was furnished by Antonio Linares, thanks.
* contrib/hbqt/hbqt_common.hbc
! untested patch to switch static supc++ to dynamic stdc++
on darwin systems (following bsd systems in 2010-11-26 13:44 UTC+0100)
as suggested by Antonio Linares to make hbide build on
OS X Lion. [ to be tested that earlier OS X version are
still okay. ]
* contrib/hbide/idefindreplace.prg
! Changed: <Replace> option in <Find in Files> now opens
the modified source on <Main> panel only instead the
current active panel if the source is not open already.
This facilitates the easy management of saving/closing
those sources in bulk.
* contrib/hbide/idefindreplace.prg
! Changed: <Replace> option in <Find in Files> now keeps open
the modified source in modified state which has to be
saved/closed by the user manually. To accomplish this task
efficiently there already exist an option in
<Main Menu><Files><Save All>
or by other tool-bar controlled icons.
[ Suggested by Maurizio and Qatan ]
* contrib/hbide/ideharbourhelp.prg
+ Changed: the way .hbd page was being displayed.
Now it contains the complete syntax of the function/method etc.
Thanks to Massimo for the tip.
* contrib/hbide/idemain.prg
* Fixed: SplashScreen() issue reported by Itamar.
* utils/hbmk2/hbmk2.prg
+ warning will be shown and lib ignored if user explicitly
specifies Harbour core library.
! visual glitch in two trace msgs.
* contrib/hbblat/tests/hbmk.hbm
* contrib/hbhpdf/tests/hbmk.hbm
+ best practice: using .hbc files instead of -l options.
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idesources.prg
+ Implemented: <Replace> option in <Find in Files> protocol.
Please test and forward your suggessions as to what can be
improved hereunder.
* contrib/hbide/idedocks.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idesaveload.prg
! Optimized: to display the user interface as fast as possible.
The only feature compromized is the Window Theme set via
<Setup><General><Style>.
Now it appears to be lightening fast, let me know your experiences.
* contrib/gtwvg/wvgwin.c
+ Added: WVG_SetMenuItem( hMenu, nPos, nFlags, cPrompt|oSubMenu, lPrompt ).
* contrib/gtwvg/wvgmenub.prg
+ Implemented: ::setItem( nItemIndex, aItem )
* contrib/gtwvg/tests/demowvg.prg
+ Demonstrated: how to change the text of an existing menu prompt.
* contrib/hbqt/qtgui/qth/filelist.hbm
+ Added: new following classes.
+ contrib/hbqt/qtgui/qth/QDeclarativeComponent.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeContext.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeEngine.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeError.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeExpression.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeImageProvider.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeItem.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeListReference.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeParserStatus.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeProperty.qth
+ contrib/hbqt/qtgui/qth/QDeclarativePropertyMap.qth
+ contrib/hbqt/qtgui/qth/QDeclarativePropertyValueSource.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeScriptString.qth
+ contrib/hbqt/qtgui/qth/QDeclarativeView.qth
+ Implemented: QDeclarative*() classes.
These classes implement the "Qt Quick" protocol introduced
in Qt 4.7 onwards and being a whole new world to Harbour
developers.
TODO: an example how to use them in the context of Harbour.
* contrib/hbqt/tests/browqt.prg
* contrib/hbqt/tests/wvtqt.prg
* Refined: to execute a Qt dialog from within GTWVT application.
This implementation assumes that GTWVT is the main application
window and Qt dialogs are opened in separate thread.
Will look into how the reverse can be achieved.
* contrib/gtwvg/wvgdatar.prg
! Synchronized: WvgListBox():getData() method.
* contrib/gtwvg/wvglistb.prg
* contrib/gtwvg/wvgtreev.prg
* contrib/gtwvg/wvgwnd.prg
+ Implemented: oXbp:pointerFocus instance variable for
WvtListBox() and WvtTreeView() objects.
If a control is laid onto a WvgCrt(), then this variable
can be set to FALSE to keep focus on console window.
INCOMPATIBLE: this behavior is not available in Xbase++.
* contrib/hbqt/qtcore/hbqtcore.hbx
* contrib/hbqt/qtcore/qth/filelist.hbm
* contrib/hbqt/qtcore/qth/QFileSystemWatcher.qth
* contrib/hbqt/qtcore/qth/QObject.qth
+ Added: QFileSystemWatcher() class.
Elements pulled by Bacco, thank you, with a small change.
* harbour/contrib/xhb/hbcompat.ch
* added few more translation rules
* harbour/contrib/xhb/hbxml.ch
* synced with xHarbour
* harbour/contrib/rddads/rddads.h
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsfunc.c
* moved ADS call back to TSD
+ added optional support for storing connection handler in TSD.
By default it's disabled and can be enabled by compile time
macro: HB_ADS_TSD_CONNECTION
(i.e. set/export HB_USER_CFLAGS=-DHB_ADS_TSD_CONNECTION)
I added it for tests. I'm still waiting for code example
which can exploit problems in ACE library when single connection
handle is used by different threads.
- src/rtl/hbdynhb.c
- deleted support to accept raw function pointers. INCOMPATIBLE.
(note the C-level and XBase++ compatibility .prg-level interfaces
continue to offer that option)
; HB_DYNCALL() should be called as follows:
HB_DYNCALL( { <cFunction>, <cLibrary> | <pLibrary> [, <nFuncFlags> [, <nArgFlags1>, ..., <nArgFlagsn> ]] }, ... ) -> <xResult>
where
<nFuncFlags> can be:
hb_bitOr( HB_DYN_CTYPE_*, HB_DYN_ENC_*, HB_DYN_CALLCONV_* )
<nArgFlags*> can be:
hb_bitOr( HB_DYN_CTYPE_*, HB_DYN_ENC_* )
* contrib/hbcairo/core.c
! fixed typo
* contrib/hbssl/ssl.c
! fixed typo in SSL_GET_MODE()
* contrib/hbssl/hbssl.h
* contrib/hbssl/x509.c
* contrib/hbssl/ssl.c
+ implemented release option for X509 collectable pointer
; openSSL increments reference counter for X509 returned
by SSL_get_peer_certificate(), but does not increment it
for SSL_get_certificate(). Unnecessary freeing of X509
pointer caused random GPF later
* src/rtl/hbsockhb.c
* changed .prg level hb_socketSetBlockingIO() return value
type from lSuccess to nSuccess, to have the same return
value meaning precision as C level function
* src/rtl/hbsockhb.c
* include/harbour.hbx
+ hb_socketGetFD( hSocket ) --> nFD
* tests/testdyn.prg
! fixed typo discovered by Alex Strickland. Thank you.
* contrib/hbrun/hbrun.hbp
- deleted unfinished solution for "DSO" builds (having two
TOFIXes for many months). Please supply required extra libs
('m' and 'z' in case of hbrun) manually to the build via
HB_USER_LDFLAGS, HB_USER_LIBS, until a complete solution is
discovered.
* harbour/include/hbhrb.ch
* harbour/src/vm/runner.c
* disabled access to INIT and EXIT functions in
HB_HRBGETFUNSYM() and HB_HRBGETFUNLIST()
+ added 2-nd parameter <nType> to HB_HRBGETFUNLIST()
HB_HRBGETFUNLIST( <pHRB> [, <nType>] ) -> <aFuncList>
<nType> is defined in hbhrb.ch:
HB_HRB_FUNC_PUBLIC - locally defined public functions
HB_HRB_FUNC_STATIC - locally defined static functions
HB_HRB_FUNC_LOCAL - locally defined functions
HB_HRB_FUNC_EXTERN - external functions used in HRB module
* contrib/hbtip/sendmail.prg
* contrib/hbtip/smtpcli.prg
! After a conversation with Antonio Maniero (also subscriber of the
dev-list), we detected some trouble with hb_sendmail() under some
conditions:
EXIM servers refuse the HELO/EHLO greeting that doesn't conform to
RFC2821, so when one try to autenticate with username containing an @
or any other character that is not allowed in FQDNs, the server
refuses to proceed. Many SMTP servers, (EG: Google ones) are more
tolerant, so I believe that this helped the problem gets unnoticed.
The patch introduces a new parameter, preserving backward
compatibility and at the same time fixing the @ problem, even in
unmodified code that doesn't provide the extra parameter (as we
removed the cUser from the HELO string, that is causing trouble with
EXIM. Anyway, these strings would be accepted only by tolerant
servers, so the correct one should cause no problem at all).
; Patch and description by Carlos Bacco. Thank you.
* harbour/src/rdd/dbf1.c
! fixed default initialization value in UNICODE fields after
APPEND BLANK. Many thanks to Phil Krylov for information about
the problem and patch. The fix I committed is slightly different
just to follow idea of this code.
* harbour/contrib/hbblat/blatcls.prg
* Update copyright years
* Updated to 2.7.6 blat version
+ Added lNoMD5 class var for -nomd5 option
+ Added cContentType class var for -contentType <string> option
* Fixed error in ArrayToString() when file name contains " char
* harbour/include/hbrdddbf.h
* moved DBF record lock range for DB_DBFLOCK_HB64 to avoid potential
problems with integer overflows in system or network transport layer.
Warning: INCOMPATIBLE!
all applications using DB_DBFLOCK_HB64 locking mode should
be updated - it is not safe to concurrently access the
same files using programs compiled with older Harbour
versions and current one.
* contrib/hbide/ideconsole.prg
* Minor.
* contrib/hbide/finddialog.ui
* Changed: the appearance and a bit of functionality of
"Find & Replace" dialog. It was occupying larger desktop
territory than needed, which, at times is too precious.
* contrib/hbide/idefindreplace.prg
* Reworked: the way "Find What" edit control of "Find & Replace"
dialog was behaving. Now it is almost at par with XMate.
* Fixed: the window coordinates were not being maintained either
with repositioning or close via "X" button.
* harbour/src/rtl/filebuf.c
! fixed next three integer overflows exploited by HB64 locking mode.
BTW probably I'll move the lock range to not operate on last positive
offset because such overflow problems can be also exploited in low
level OS or network transport layer code - it happened in the past.
I'll do that when we confirm that current Harbour implementation
is correct.
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! always set trailing 0 in the buffer containing font name set
by HB_GTI_FONTNAME - protection against too long strings.
* harbour/contrib/gtwvg/wvgwing.c
! fixed memory leak in last commit - thanks to Mindaugas.
% use HB_ITEMCOPYSTR() in WVG_FONTCREATE() to eliminate memory
allocation.
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgwing.c
* eliminated HB_TCHAR_*() macros
; TOFIX: replace hb_parvc() and nCopyAnsiToWideChar() function
with valid HB_STR* macros.
Function nCopyAnsiToWideChar() should be removed.
* harbour/contrib/xhb/xhw32prn.prg
! added missing ;