* src/vm/set.c
* _SET_EOF default set to .T. on *nix to match other plaforms
(and Clipper I might guess)
CHECKME!
* formatting
! missing 'break;'. it didn't cause error, anyhow pls check me
maybe it was intentional (in 'case HB_SET_PRN_CON:' branch)
CHECKME!
* contrib/hbunix/hbunix.hbp
* contrib/hbunix/hbunix.hbx
+ POSIX_SLEEP( <n> ) -> <n>
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/core.c
+ added changes from latest libcurl version (untested with
latest version)
* utils/hbmk2/hbmk2.prg
! fixed symbol names in hbx generation for watcom/{linux|dos|os2}
* contrib/hbmisc/udpds.prg
! added not very beautiful workaround (how to kill a thread from
caller proc?) to RTE in worker thread loop because of closed
socket after calling hb_UDPDS_Stop()
* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_svc.c
+ added 4th param to WIN_SERVICEINSTALL() to spec start type
+ added related constants
* contrib/hbwin/wapi_misc.c
! cast for win64
* contrib/hbnf/nwsem.prg
* contrib/hbnf/mouse2.prg
* contrib/hbnf/tests/nftest.prg
* examples/gfspell/spell.prg
! fixed = operator to :=/==
; now Harbour SVN is clean. Except quite a few problems in HBIDE and
two more known code lines. Pritpal can you fix HBIDE to not use
ambiguous '=' operator?
* src/rdd/usrrdd/rdds/logrdd.prg
* ltrim(str()) -> ntos()
* harbour/include/hbapi.h
* harbour/src/vm/hashes.c
+ add new public C function: HB_BOOL hb_hashClear( PHB_ITEM pHash )
* do not generate RTE when unexisting key is passed to HB_HDEL()
now code which makes sth like:
if xKey $ hValue
hb_hDel( hValue, xKey )
endif
can be reduced to:
hb_hDel( hValue, xKey )
* harbour/src/vm/hashfunc.c
+ added new PRG function: HB_HCLEAR( <hValue> ) -> <hValue>
* utils/hbmk2/hbmk2.prg
+ added experimental -ldflag+=, -dflag+= cmdline options
and ldflags+= .hbc option. Such flags will be added after
libs, which may be useful in some situations, f.e. pkg-config
% only enclose libnames and paths inside single-quotes if
they contain any non-ascii, non-digig, non-., non-/ chars
! fixed .hbx generation on darwin
* include/hbtrace.ch
* added way to disable HB_TR_ALWAYS
for more: 2011-04-16 23:04 UTC+0200 Viktor Szakats
* contrib/hbxbp/hbxbp.hbp
* contrib/hbqt/hbqt_common.hbm
+ disabled HB_TR_ALWAYS permanent messages from SVN builds
; TODO: move this logic to hbpre.hbm
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/ideactions.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpmenubar.prg
! Fixed: many artifacts related with XbpMenu() and MDI
handelling. I did not know Xbase++ diverted from uniform
arguments behavior for every object for XbpMenu() where
:visible instance variable is FALSE by default.
Thanks Shum for code and looking inside the docs.
* harbour/src/vm/hashes.c
! fixed HB_HMERGE() to work correctly when destination and source hash arrays
are the same
! fixed HB_HASH_INTERSECT in HB_HMERGE()
% two minor optimizations
* include/Makefile
+ include/hbstrict.ch
* contrib/hbpost.hbm
+ added experimental -u+ header to catch some common code style
problems. currently IF() is caught, but it interferec with std.ch
hbsix.ch and possibly more, so it's not enabled
* config/global.mk
* src/dynlib/2nd/Makefile
* src/dynlib/Makefile
* secondary harbour dynlib is now enabled by __HB_BUILD_DYN_2ND=yes
* renamed secondary harbour dynlib to harbour2*
+ it's now possible (again) to build harbour .dll in ST mode by
using __HB_BUILD_DYN_ST=yes. if used together with __HB_BUILD_DYN_2ND=yes,
the secondary dynlib will be MT. (pls note the secondary dynlib
is never directly used by hbmk2, so it's there for mere build convenience
only)
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpprintdialog.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpprinter.prg
* contrib/hbxbp/xbpdataref.prg
! IF() -> IIF() (with the help of hbstrict.ch)
* contrib/hbformat/hbfmtcls.prg
! fixed mistakenly changed '==' to LEFTEQUAL() in prev commit
* harbour/src/rtl/memofile.c
% eliminated two call to hb_fsSeek() and one hb_fsRead() from
non *nix version of MEMOREAD() function
! do not write final EOF character if write failed in MEMOWRIT()
function
; TOFIX: In *nixes support for EOF character in MEMOREAD() and
MEMOWRITE() is disabled by default - IMHO it's wrong
because it's not possible to use these functions to exchange
safely data with CA-Cl*pper applications or even DOS/Windows
versions of Harbour applications.
* harbour/src/rtl/hbcom.c
* replaced infinite waiting for reading/writing from/to serial port
in *nix builds with loops checking periodically (once per second)
for HVM events (i.e. thread interrupting).
* harbour/src/codepage/uc88591b.c
* converted hex digit to uppercase
* harbour/contrib/hbwin/win_dlg.c
+ added support for setting default file name in
WIN_GETOPENFILENAME() and WIN_GETSAVEFILENAME() functions:
WIN_GETOPENFILENAME( [[@]<nFlags>], [<cTitle>], [<cInitDir>],
[<cDefExt>], [<acFilter>], [[@]<nFilterIndex>],
[<nBufferSize>], [<cDefName>] )
-> <cFilePath> |
<cPath> + e"\0" + <cFile1> [ + e"\0" + <cFileN> ] |
""
WIN_GETSAVEFILENAME( [[@]<nFlags>], [<cTitle>], [<cInitDir>],
[<cDefExt>], [<acFilter>], [[@]<nFilterIndex>],
[<nBufferSize>], [<cDefName>] )
-> <cFilePath> |
<cPath> + e"\0" + <cFile1> [ + e"\0" + <cFileN> ] |
""
* src/rtl/listbox.prg
! corrected minor typo in change:
2009-02-18 14:18 UTC+0100 Przemyslaw Czerpak
equality operator stayed '=' in one place. didn't cause
any user level problem
* utils/hbmk2/hbmk2.prg
+ avoiding '=' operator to be _SET_EXACT agnostic
% deleted setting _SET_EXACT
* contrib/hbwin/wapi_misc.c
! trying to make hbwapi_LoadLibrarySystem() really safe
by using LoadLibraryEx() with special flag. On win7/64 tested
with 32-bit or 64-bit exe, it still tries to load f.e. winspool.drv
from the apps own dir, at least as per procmon. GetSystemDirectory()
will return system32 as the .dll dir, though it is SysWOW64, but
this seems to be fixed internall by kernel.
(safety is apparently fully going against MS's will, but anyway,
maybe I'm not getting it)
* contrib/hbwin/wce_simc.c
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/hbwin.hbx
* contrib/hbwin/wce_sim.prg
! fixed to always define wce (and compiler) specific .prg level functions
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_misc.c
* hbwapi_FileNameAtSystemDir() made static
+ hbwapi_LoadLibrarySystem() public function added
this is safe version of LoadLibrary() when loading Windows
system dlls. it will avoid dll hijacking vulnerability.
! deleted HB_EXPORT from hbwapi_t*() functions, they are
public to this lib due to UNICODE setting dependance
; TODO: make hbwapi_LoadLibrarySystem() effective also for WinCE,
for now it will not add any system path under this platform.
* contrib/hbwin/axcore.c
* contrib/hbwin/mapi.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/wapi_shellapi.c
! LoadLibrary() -> hbwapi_LoadLibrarySystem()
thus fixing dll hijack vulnerability
+ contrib/hbwin/wapi_misc.c
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwapi.h
* contrib/hbwin/win_prn3.c
* hb_tstrlen() -> hbwapi_tstrlen() and made public
* hb_tstrncat() -> hbwapi_tstrncat() and made public
+ hbwapi_tstrdup()
+ hbwapi_FileNameAtSystemDir() public function
please review it, I'm notoriously bad with 1 byte over/underruns
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgwin.c
! fixed to use GetModuleHandle() instead of LoadModule() on
user32.dll and kernel32.dll. safer and faster.
* contrib/hbide/ideedit.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idedict.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idetools.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemain.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
! fixed '!=' operator usage on strings
It has been told and written a hundred times, I hope this
is the final one:
Please never use '!=' operator on string operands, even
if both operands are always the same length. Use '!( == )'
instead.
* src/rtl/net.c
! fixed potential NULL dereference with pass->pw_name
I'm not sure it's real possibility anyhow it cannot hurt
reason for this change is that I was getting GPF under
Linux in this call which wasn't BTW fixed by this change.
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpparthandler.prg
* contrib/hbxbp/xbpdataref.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideeditor.prg
! Fixed '!=' operator used with string
! '<>' operator changed to '!='
Please never use '<>' or '#' unequality operator in Harbour SVN
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpparthandler.prg
! Corrected: many artifacts related to XbpMenu() and
:setOwner()/:setParent() functionality. Thanks Shum for insight.
* contrib/hbxbp/xbpmenubar.prg
! Fixed: where XbpMenu() activation was not supplying the documented
parameters when activated, thanks Shum for watching it closely.
* contrib/hbqt/qtgui/qth/QPrinterInfo.qth
! Fixed: constructor.
* contrib/hbxbp/xbpgeneric.prg
! Minor.
* contrib/hbxbp/xbpwindow.prg
! Fixed: rather commented out the code where :handleEvent()
was destroying the object. I will look into another way
how this can be achieved where :close callback is not
defined to destroy the object and only xbeP_Close is
sent via PostAppEvent(). Like:
oXbpDialog:close := {|mp1,mp2,obj| PostAppEvent( xbeP_Close, , , obj ) }
instead of
oXbpDialog:close := {|mp1,mp2,obj| PostAppEvent( xbeP_Close, , , obj ), obj:destroy() }
* INSTALL
* little discouragment to use HB_QTPATH
users tend to make everything as complicated as possible by using
all imaginable custom settings. bad idea in most cases.
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ added qtsql related files. ought to fix regression causing
broken hbqt in nightly binary since this commit:
2011-03-25 18:24 UTC-0800 Pritpal Bedi
NOTE: since my SVN changes don't seem to affect nightly creation
on Francesco's server anymore, I'm not sure when this fix
will go "live".