* src/vm/thread.c
* upped sleep timeout in *nix version of hb_threadReleaseCPU() to 20 ms
it halves CPU consumption. pls revert/comment if you notice
causing this any harm.
* harbour/src/vm/thread.c
* set sleep timeout in *nix version of hb_threadReleaseCPU() to 10 ms
* harbour/src/compiler/hbpcode.c
! fixed typo which could cause compile time crash when debugger code
is generated (-b) and file name with extenssion has only one or
two characters
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/hbstripl.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
! removed old code designed to optimize line numbers generated in PCODE.
It cannot work correctly and in some cases it was generating HB_P_LINE
pcodes in wrong places.
% enabled new code for HB_P_LINE PCODEs optimization also in debugger (-b)
compilation so it can be used to replaced the old one.
* harbour/src/rtl/arc4.c
! changed size parameter passed by reference to sysctl() to size_t
! fixed WINCE builds
% enable pid checking only in *nix systems.
If system does not support fork() or compatible operation
(i.e. vfork(), clone()) then PID checking is completely useless.
* harbour/src/rtl/gtwvt/gtwvt.c
* pacified WINCE warnings
* harbour/contrib/rddads/adsx.c
! fixed potentially uninitialized pTag variable
* src/rtl/teditor.prg
! fixed regression occurred in commit:
2007-01-10 17:50 UTC+0800 Pritpal Bedi
reproducible using:
'memoedit(chr(13)+chr(10)+"abcdef"+space(50),1,1,2,20,,,90,,1,10,0,0)
and in the edit window, press <down> once and <left> ten times after
that. As you see, the edit windows shows incorrect data on the screen
now.'
Thanks to vbdasc for the report and fix.
* include/harbour.hbx
* src/rtl/hbrandom.c
* HB_RANDOMMAX() -> HB_RANDOMINTMAX()
; TOFIX: now broken under mingw in all places where HB_RANDOMINT()
is potentially called with larger than HB_RANDOMINTMAX()
value. This will be impossible f.e. in RANDOM() CT function.
* src/rtl/hbrandom.c
* src/rtl/hbrand.c
+ hb_random_block() changed to use ARC4 backend.
* examples/httpsrv/modules/showcounter.prg
% hb_ntos()
* harbour/src/rtl/valtoexp.prg
! fixed typo in recent modifications causing RTE in HB_VALTOEXP()
* harbour/contrib/hbwin/win_prn2.c
! allocate dynamic memory for print buffer in WIN_PRINTFILERAW()
32KB variable on process execution stack is potential source of
random GPFs in programs using deeper recursive calls and killer
for MT mode when smaller thread stack is allocated.
! fixed potential data lost in WIN_PRINTFILERAW() when not all data
is transfered in single WritePrinter() call
! interrupt printing in WIN_PRINTFILERAW() if WritePrinter() returns
error
* harbour/include/harbour.hbx
* harbour/src/rtl/hbrandom.c
! restored my old fix - it was correct and the results over RAND_MAX
range expected
+ added new PRG function:
HB_RANDOMMAX() -> <nRAND_MAX>
* harbour/src/rtl/gtwvt/gtwvt.c
! update font metrics after HB_GTI_FONTSIZE also when window is not
active yet - without it all other calculations are broken
* harbour/src/codepage/uc1250.c
* harbour/src/codepage/uc1251.c
* add some missing codes which are not officially defined but
MS-Windows uses them - I've just check it reading unicode values
from some fonts.
It also look that some fonts have VGA glyphs attached only to control
values at range 0-31 without their real Unicode representation. It's
the reason why they are not shown in GTWVT UNICODE builds. Pritpal
reported such problem recently.
This can be quite easy resolved by replacing hb_cdpGetU16Disp()
with hb_cdpGetU16() in gtwvt.c but it may cause that we lost control
characters in some other fonts. I would like to ask MS-Windows users
to makes some tests with such modified GTWVT and check if control
code are well shown with different fonts. If not then we can add
HB_GTI_* switch to enable/disable control codes to unicode values
translation.
* 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.