* src/debug/debugger.prg
* src/rtl/valtoexp.prg
+ __dbgValToStr() support for type "T"
% RTrim( Str() ) -> Str() and hb_ntos()
% hb_VALTOEXP() minor optimization
! synced string representation of codeblocks and arrays
* formatting
; TODO: to show the address instead of "pointer"?
* src/rtl/arc4.c
! fixed for watcom (getpid)
! cast for msvc
! fixed for dmc (ms struct missing for win seed)
! fixed for bcc (inline disabled for this dead compiler, getpid)
! fixed warning for all non-unix, non-win targets
; TOFIX: it's also broken for watcom/dos and watcom/linux
Tamas, can you take a look at it?
* utils/hbmk2/hbmk2.prg
+ use HB_RAND32()
* src/rtl/Makefile
* src/rtl/hbrandom.c
+ src/rtl/hbrand.c
+ src/rtl/arc4.c
+ src/rtl/arc4.h
+ added C level arc4 API. adapted to Harbour by Tamas Tevesz,
original authors listed in sources
* moved HB_RAND32() function to separate source
* changed HB_RAND32() to use arc4 backend, which means it will
now return properly string random numbers
; arc4 code may need tweaks on some platforms (android f.e.),
pls test
* src/rtl/gtwvt/gtwvt.c
! fixed regression referred to in 2011-05-18 01:06 UTC+0200 Viktor Szakats
I'm still not exactly sure what's happening (besides I'm tired as hell),
but now it seems that it's not VK_RETURN override at fault, but composited mode
on Vista/7 which I enabled recently. Actually copy worked only
the selection was not visible.
Now I turn off composited on mark and select and renable when finished.
I imagine this is not proper solution though I don't have Bill Gates's number
to make a support call ATM.
+ reenabled VK_RETURN
* ChangeLog
* edited prev entry
* src/rtl/gtwvt/gtwvt.c
! fixed regression in:
2011-02-26 20:07 UTC+0100 Viktor Szakats / patch by Aleksander Czajczynski
VK_RETURN event override caused 'Mark and Copy' menu functionality
to break, it's no longer possible to select an area. Aleksander,
I'd appreciate if you could check and fix this.
For now I commented the VK_RETURN override (it may break some
fullscreen features)
* src/rtl/hbrandom.c
! fixed wrong random numbers being generated after:
2011-03-11 09:42 UTC+0100 Przemyslaw Czerpak
this is simple revert, Przemek pls recheck/refix original issue.
Values 0x????FFFF and 0x????0000 were returned from these calls:
hb_randomInt( 0xFFFFFFFF )
hb_randomInt( 0xFFFFFFFE )
hb_randomInt( 0x7FFFFFFF )
under mingw32 and mingw64 (both win and linux builds)
* include/harbour.hbx
* src/rtl/hbrandom.c
+ HB_RAND32() -> <32-bit random number>
; TOFIX: random numbers are broken under mingw 4.5.2, only high 16bits are random.
in all HB_RAND*() functions
* src/compiler/gencc.c
! hb_p_pushlong: conditional -gc3 generated code modified to
evaluate the condition at C compile time rather than .c
code generation time. This particular fix would pbly only
affect 16-bit cross builds, which we don't have any ATM.
; TOFIX: same in hb_p_pushlonglong
* harbour/src/rtl/gtxwc/gtxwc.c
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/contrib/xhb/hboutdbg.c
* harbour/contrib/xhb/xhbfunc.c
! use 'hb_cmdargARGVN( 0 )' instead of 'hb_cmdargARGV()[ 0 ]' to avoid
GPF when no arguments are initialized
* harbour/contrib/hbwin/hbolesrv.hbc
* use {allmingw} instead of {mingw} macro for MinGW64 builds
* harbour/src/codepage/Makefile
* harbour/src/codepage/uc646_yu.c
+ harbour/src/codepage/uc646yuc.c
* harbour/include/hbapicdp.h
+ added JUS I.B1.003 - Cyrillic script variant of ISO-646-YU
for Serbian and Macedonian language
* harbour/src/codepage/Makefile
+ harbour/src/codepage/cpsr646.c
+ harbour/src/codepage/cpsr646c.c
* harbour/include/hbcpage.hbx
+ added SR646 and SR646C Harbour codeapges.
Both code pages uses the same 8-bit representation but different
unicode values - SR646 uses Latin script and SR646C Cyrillic script.
It means that it's useless to make any translations between SR646
and SR646C because both versions uses the same ASCII values but they
can help in translation to other encodings or CPs, i.e. to convert
some Serbian text in one of the above CPs to Latin letters in UTF8
encoding then it's enough to make:
hb_strToUTF8( <cText>, "SR646" ) -> <cUtf8LatinText>
and for conversion to UTF8+Cyrillic:
hb_strToUTF8( <cText>, "SR646C" ) -> <cUtf8CyrillicText>
* include/harbour.hbx
* src/vm/runner.c
+ HB_HRBGETFUNLIST() -> <aArray>: New function posted to the
list by Francesco Saverio Giudice
(NOTE: I changed the name a little bit)
* tests/gfx.prg
! fixed console output. Patch by Tamas Tevesz
* changed rest of ? commands to outstd()
* 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/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>
* 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
* 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
* harbour/include/hbinit.h
* formatting
* harbour/src/common/hbstr.c
* pacified warnings generated by C compilers having
modf() function wrongly defined in header files
* harbour/src/rtl/hbtoken.c
! fixed bug reported by Patrick on xHarbour devel list
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* modified to use different startup function names as workaround
for problems with non unique function names reported by compilers
using HB_INITSEG_STARTUP - it's not a fix but workaround only.
* src/rtl/Makefile
* src/rtl/tpopup.prg
+ Replaced last remaining HB_EXTENSION build-time conditional
branch in Harbour codebase with runtime solution. (similar to
GET vs. HB_GET)
; IMPORTANT: If you had so far built Harbour with HB_USER_PRGFLAGS=-DHB_EXTENSION
to use TPOPUP class extensions: :shadowed, :setCoors(), :isShortCut(), :isQuick(),
switch your app to use HB_POPUPMENU() (from POPUPMENU()). This in practice
will mean to use this code:
PopUp( nTop, nLeft, nBottom, nRight )
to this:
hb_PopUpMenu():New( nTop, nLeft, nBottom, nRight )
Then delete your custom HB_USER_PRGFLAGS (or use nightly binary)
[pls make tests, I don't have test code for POPUP(). ]
* src/rtl/gtwvt/gtwvt.c
! put back CS_HREDRAW | CS_VREDRAW
apparently needed for HB_GTI_RESIZEMODE_FONT. Thanks Pritpal.
* use XP double buffering on Vista and upper systems only (was: all).
This is not based on hard scientific data at this time, some users
reported "slowness" on certain XP systems. It doesn't seem to be
tied to any particular video chipset (or driver), exact reason
still uncertain (other software? GPO setting? SP level?).
I cannot find evidence for general WS_EX_COMPOSITED related problem
on the internet.
So we're back to *fugly* screen updates on XP and lower systems, this
means that visible lag will be seen when drawing text with changing
colors in them (f.e. menubar with hotkey).
If you know better, speak up.
* contrib/hbqt/hbmk2_qt.hbs
! fixed typo in one HB_WITH_QT envvar reference (Thanks Francesco)
+ accept HB_QTPATH with or without ending dirsep
! use host exe extension when looking for qt tools
+ use win/os2 specific autodetection logic based on host OS, rather
than target OS, thus helping QT in cross-builds, like droid.
And now let the avalanche of crap follow.
- doc/howtobld.txt
- outdated, deleted
* doc/howtosvn.txt
* minor update
* src/rtl/gtwvt/gtwvt.c
! Fixed HB_GTI_ICONFILE not working with "certain" .ico files.
* contrib/hbqt/hbqt_common.hbc
+ added libpath for beos [Tamasz Tevesz]
* INSTALL
+ Added TROUBLESHOOTING/9.: how to submit logs to dev list.
Please read it.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
! Fixed possible MT race condition in DISKSPACE()/HB_DISKSPACE()
where no value could be returned.
* src/rtl/gtwvt/gtwvt.c
* Changed to use WS_EX_COMPOSITED instead of WS_EX_LAYERED.
This works on XP and above (previous one also worked on W2K),
and I mean this as another round of live testing, as WS_EX_LAYERED
turned out to be causing strange flickers (maybe hardware
induced, I don't know) on some non-virtualized/non-remote
OS installations. Maybe this will work better. If not, even
this will be deleted. Then maybe software/DC double-buffering
will be the ultimate soltion.
% Dropped fiddling with SetLayeredWindowAttributes() call.
* Formatting.
* contrib/make.hbs
+ Added 'verbose' keyword. Equivalent to HB_BUILD_VERBOSE=yes.
+ Added 'rebuild' keyword. (Equivalent to 'clean all')
* contrib/3rd/sqlite3/sqlite3.hbp
! Added workaround for gcc/mingw bug in 4.5.0 and 4.5.1
revisions where it shows compile error when iso89 c dialect
is selected. Now in 4.5.x gnu89 is used instead to avoid it.
* contrib/hbplist
- Disabled gtwvg due to build breakage.
* include/harbour.hbx
* include/hbapi.h
* src/common/hbver.c
* src/rtl/version.c
+ hb_verHostCPU() to return CPU architecture the host OS
is running under. (long time TODO)
It may or may not give precise answer depending on
target OS. For win, it works as exptected.
+ HB_OSCPU() -> <cCPU> same for .prg level apps.
* contrib/hbmxml/3rd/minixml/mxml_str.c
! Ultimate isdigit() fix. [Tamas Tevesz]
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbmxml/3rd/minixml/mxml_str.c
! Fixed isdigit() warning which was result of missing
mxml header. [Tamas Tevesz]
+ contrib/hbcurl/hbcurlt1.ch
+ contrib/hbcurl/core_t1.c
+ Implemented new way of using HB_CURLOPT_HTTPPOST, now
all meaningful values are supported in any order and
combination. See:
http://curl.haxx.se/libcurl/c/curl_formadd.html
The patch is heavily based on patch/implementation submitted
by Benjamin Jacobs, many thanks for it. Final patch
includes some rework, simplification, compile and
other fixes, plus formatting with uncrustify. Please
make sure to test/review this version as I didn't do
any functional tests, just build ones.
Sample code:
curl_easy_setopt( curl, HB_CURLOPT_HTTPPOST, { ;
{ HB_CURLFORM_COPYNAME, "nparam1", ;
HB_CURLFORM_COPYCONTENTS, "value1" }, ;
{ HB_CURLFORM_COPYNAME, "nparam2", ;
HB_CURLFORM_COPYCONTENTS, "value" }, ;
{ HB_CURLFORM_COPYNAME, "fileparam", ;
HB_CURLFORM_FILE, filename } } )
WARNING: This implementation is INCOMPATIBLE with the
previous one.
TOFIX: Current implementation does allow to create GPFs because
it allows .prg code manually pass buffer sizes. This must
be fixed and buffer length should always be automatically
taken from Harbour item. This will require more sophisticated
code to build the low-level array (f.e. size calculation).
Benjamin, can you look at it?
NOTE: I'm uploading this unfinished code as new temp files,
because SVN doesn't support light branching, so this poor man's
solution is left to manage it.
* src/common/hbtrace.c
* contrib/xhb/hbsyslog.c
- Deleted Android specific logging. syslog works good.
+ config/android
+ config/android/libs.mk
+ config/android/gcc.mk
+ config/android/gccarm.mk
+ config/android/global.mk
+ config/android/mingw.mk
+ Added android specific core build files. They are
all redirected to linux.
* config/linux/libs.mk
+ Do not add rt and pthreads libs for android targets.