* include/dbinfo.ch
* include/hbrdddbf.h
* src/rdd/dbf1.c
+ added default codepage setting RDDI_CODEPAGE for DBF RDD (and all
inherited RDDs). This helps to do an easy migration of application
to unicode, using existing dbf files:
HB_CDPSELECT("UTF8EX")
RDDINFO(RDDI_CODEPAGE, <codepage_used_in_dbf>)
* contrib/gtqtc/gtqtc1.cpp
* added support for keyevents with multicharacter strings.
QT documentation says that such feature is enabled by
Qt::WA_KeyCompression attribute and I left comment about
it in the QTConsole() constructor but practice showed that
on some platforms it was enabled even without setting this
attribute and users using keyboard barcode readers reported
"eaten" characters.
* explicitly enabled Qt::WA_KeyCompression and removed comment
about missing functionality in QTC keyPressEvent() code.
* src/rtl/gttrm/gttrm.c
* send ST (ESC \) after Linux console palette set sequence (ESC ] P).
ESC ] is Operating System Command (OSC) which by default should
be terminated by ESC \ (ST). Some terminals which sets LINUX
TERM envvar but do not correctly understand Linux console palette
set sequence may hang waiting for ST. Now ST is sent to avoid such
situation. Linux console simply ignore ST terminator so nothing
wrong should happen.
- contrib/hbfship/flddeci.c
* contrib/hbfship/hbfship.hbp
- removed FieldDeci() function. Function with the same name and
functionality exists in HBCT.
* config/postinst.hb
! typo in my previous commit
* ChangeLog.txt
! UTF8 BOM, indenting and trailing line spaces in one of recent commits
2013-10-11 21:36 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/gtwvg/crt.prg
+ Added: Method RefreshEx() which refreshes the CRT window directly via
WINAPI call instead of through hb_gtInfo( ... ) mechanism. This is
useful in MT applications where one thread want to refresh the
scren contents of CRT window in another thread.
* contrib/gtwvg/gtwvgd.c
+ Added: hb_gtInfo( HB_GTI_BORDERSIZES ) -> { nLeft, nTop, nRight,
nBottom }
Useful in cases when you need to position precisely another window on
top
of existing GT window.
% Aligned: hb_gtInfo( HB_GTI_SCREENHEIGHT and HB_GTI_SCREENWIDTH ) with
GTWVG code with a small difference.
* contrib/gtwvg/hbgtwvg.ch
+ Added: #define HB_GTI_BORDERSIZES
* contrib/gtwvg/wvgcore.c
+ Added: HB_FUNC( WVT_DESTROYPICTURE ) <- <hIPicture>
Destroys the IPicture created with WVT_LOADPICTURE*() functions.
+ Added: HB_FUNC( WVT_LOADPICTUREEX ) <- <cFilePicture> -> <hIPicture>
* config/globsh.mk
* use $(CP) as workaround for missing soft links in NT shell.
I know about mklink but it needs quite new Windows version
and soft links need special privileges. Anyhow better solution
is highly welcome.
* config/postinst.hb
* use hardlinks or copy files if symlinks do not work
* config/linux/gcc.mk
* added support for non SH shells - it allows to create Android
builds in MS-Windows using Android NDK from Google.
* src/rtl/gttrm/gttrm.c
! fixed terminal ISO mode auto detection (broken in previous patch)
% use position from UTF8/ISO mode detection instead of double asking
terminal cursor position. With the minor cost of unknown initial
column position we have faster start on slow connections.
* include/hbvm.h
* src/vm/hvm.c
* added new 7-th parameter fOverLoad to hb_vmRegisterSymbols() function.
When it's TRUE then new public function symbols overload existing ones.
* src/vm/runner.c
! use new fOverLoad parameter of hb_vmRegisterSymbols() function to
overload existing functions (HB_HRB_BIND_OVERLOAD) instead of making
local modifications in global symbol table. It fixes memory corruption
when the same HRB module is reloaded with HB_HRB_BIND_OVERLOAD parameter.
This was very old bug which has existed from the beginning when I added
support for HB_HRB_BIND_* flags.
* src/rdd/dbcmd.c
! fixed dbRSelect() to be compatible with undocumented Cl*pper behavior:
When parameter is missing, wrong or 0 then 1 is used as relation number
* src/rtl/hbgtcore.c
+ added support for GT parameters passed in //GT<NAME>
parameter after ":", i.e. //GT<NAME>:<params>
* src/rtl/gttrm/gttrm.c
+ added new parameters set in //GTTRM:<params>
1) "NOPOS" - inform GTTRM that terminal does not support
cursor position query: ESC [ 6 n
At startup GTTRM asks terminal about cursor position
and waits for answer for 2 seconds. If terminal doesn't
support it then it's unnecessary delay at application
startup.
2) "UTF8" or "UTF-8" - force UTF-8 terminal output
Useful when terminal does not support cursor position
query so it cannot be used to detect automatically
UTF-8 or ISO terminal mode.
3) "ISO" - force ISO terminal output
4) "XTERM", "LINUX", "PUTTY", "CONS" - force given terminal
type
f.e. working with Android Terminal Emulator it's good to use
//GTTRM:UTF8,NOPOS
because it still does not support cursor position query and
LANG variable is not set.
* src/rtl/cdpapi.c
* use CP437 control codes in translations from unicode to ASCII
* src/rtl/gtwvt/gtwvt.c
* added support for key code typed using ALT + <ASCII_VALUE_FROM_KEYPAD>
* tests/gtkeys.prg
* added parenthesis to clarify expression order
* src/vm/dlmalloc.c
* use __builtin_clz() and __builtin_ctz() only with GCC 3.4 or newer.
Problem reported by David Arturo Macias Corona and OS2 GCC3.3.5.
* README.md
+ added link suggested by David to os2gcc454 from Paul Smedley
* src/rtl/gtstd/gtstd.c
+ accept keyboard input from redirected file on platforms without
dedicated code for keyboard support in GTSTD
* src/rtl/hbsocket.c
! use sock_errno() instead of errno in OS2 WATCOM builds.
It fixes few problems with socket code using errno value, i.e.
hb_socketConnect() with timeout.
* src/compiler/hbdbginf.c
! fixed module names generated for debugger line info when user compiles
files passing path with drive letters, i.e. hbmk2 c:\temp\test.prg
Thanks to Anton Ryzhov for the information about the problem.
* src/rtl/hbsocket.c
! fixed hb_socketConnect() with timeout in DOS Watt-32 builds.
Watt-32 sets socket error to EISCONN when connection is established.
* src/rtl/fstemp.c
! fixed casting for DOS C++ builds
* config/dos/watcom.mk
! moved CRTL library to the end of linked library list - some
other libraries may overload some C RTL functions or symbols,
f.e. error descriptions in WATT-32
* utils/hbmk2/hbmk2.prg
! added hbpmcom library to linked library list in DOS builds
! fixed WATT-32 support in DOS builds to work in cross compilation
environment
! link WATT-32 library before C RTL
! fixed simultaneous compilation with -jobs=N when N >= 2
The same hash array (hReplace) was shared between different threads
and each thread tried to modify it overloading their own parameters.
It was causing different side effects, i.e. all threads compiled
the same .c file instead of their own ones or HBMK2 was crashing
due to memory corruption.
* always join all started threads
* contrib/hbct/getsecrt.prg
! applied Clipper compatibility fix to GetSecret() by Pavel Tsarenko
* src/common/hbdate.c
* removed explicit _BSD_SOURCE definition - it was confusing our
code used to detect localtime_r() support and is not necessary
if we do not use extended fields of tm structure
* src/rtl/mtran.c
* updated to show strict Clipper compatible behavior - Clipper
ignores 3-rd cSoftCR parameter if 2-nd one cHardCR is not given
(strict compatibility is covered by HB_CLP_STRICT macro and
disabled by default - undocumented feature which may confuse
users)
% minor optimization
* contrib/gtqtc/gtqtc1.cpp
* accept META key as CTRL key in MacOSX builds.
This QT Meta key is marked as "control" on Apple keyboards so
this seems to be less confusing. Anyhow I'm not regular MacOSX
user so if someone thinks it's bad idea then please inform me.
"command" key is mapped by QT as CTRL key by default.
! disabled Qt::WA_InputMethodEnabled in default builds.
I disabled it because it was breaking support for national characters
in few European countries, f.e. Polish characters with ALT in MacOSX.
Qt::WA_InputMethodEnabled is used for some Asian languages but I have
no idea if it was working with GTQTC so far and if it's really
necessary and usable. I'm waiting for information from people who
lives in countries where it's used. Just let me know if you need
GTQTC compiled with this window attribute.
* contrib/gtqtc/gtqtc.hbp
* do not use system QT directories in android builds
* include/hbgtinfo.ch
* contrib/gtqtc/gtqtc1.cpp
+ added new font attributte HB_GTI_FONTA_NOSTRETCH
It disables font stretching in some GTs like QTC.
On some platforms (i.e. MacOSX) font stretching
does not work correctly (at least in my tests) so
if someone wants to use GTQTC on MACs then I suggest
to set:
hb_gtInfo( HB_GTI_FONTATTRIBUTE, ;
hb_bitOr( HB_GTI_FONTATTRIBUTE ), HB_GTI_FONTA_NOSTRETCH )
! do not use QPainter::RasterOp_SourceXorDestination to display
cursor and selection in MacOSX builds.
RasterOp operations are not supported in MacOSX.
* include/hbdate.h
* src/common/hbdate.c
+ added new C functions:
double hb_timeLocalToUTC( double dTimeStamp );
long hb_timeStampUTCOffset( int iYear, int iMonth, int iDay,
int iHour, int iMinutes, int iSeconds );
; warning: some C RTLs may not correctly detect Summer time for all past
dates in few countries.
* include/harbour.hbx
* src/rtl/dateshb.c
+ added new PRG function:
hb_TSToUTC( <tsLocal> ) -> <tsUTC>
+ added support for optional timestamp parameter in hb_UTCOffset()
function, current syntax is:
hb_UTCOffset( [ <tsLocal> ] ) -> <nSeconds>
* contrib/hbtip/hbtip.hbx
* contrib/hbtip/utils.c
+ added new PRG function:
tip_FileNameMimeType( <cFileName> ) -> <cMimeType>
It's a wrapper to old C function s_findFileMimeType()
TODO: replace few independent mimetype functions by single one.
! fixed tip_FileMimeType() to not call hb_fsClose() or any other FS
function with wrong handler.
! fixed tip_TimeStamp() using hb_timeStampUTCOffset() instead of
hb_timeUTCOffset() to correctly calculate UTC offset for dates
different then current one.
! decode time passed as numeric second() value in 2-nd parameter of
tip_TimeStamp() only when the 1-st one contains pure date value.
* src/debug/dbgentry.c
+ added protection against wrong parameters passed to __dbgDelBreak()
* src/debug/debugger.prg
+ implemented display history for command window.
This modification also fixes clearing command window when focus is
changed.
+ added support for new commands:
DELETE ALL BP
DELETE BP <nNumber>
LIST BP
* replicated Clipper compatible command line shortcuts
! send :RefreshAll instead of :RefreshCurrent to source code window
when break point changed
; TODO: add support for window resizing and repositioning. Commands
like LIST BP are in practice unusable in 3 line command window.
* src/rtl/console.c
% minor optimization
* src/debug/dbgtmenu.prg
! allow to chose current menu item by its hotkey
* src/debug/dbgtmitm.prg
% eliminated dummy hb_DispOutAtBox() for not marked options
* src/debug/debugger.prg
! keep RunAtStartup flag synced with menu
! fixed options decoding from init.cld file.
Thanks to Franček Prijatelj for locating the problem though fix
should be a little bit different.
* src/debug/tbrwtext.prg
! respect LineNumbers on/off setting
* src/rtl/console.c
! call hb_gtFlush() at the end of hb_DispOutAtBox() - it fixes
different side effects in code using hb_DispOutAtBox().
* contrib/hbct/ctwfunc.c
! extract box frame string passed to WBOX() using BOX CP
* src/vm/procaddr.c
! added hb_extIsNil() to hb_vmProcAddress() - it fixes PCODE DLLs
using [HB_]ISNIL() macro and linked with hbmaindllp library or
other wrapper using hb_vmProcAddress()
* src/vm/codebloc.c
- removed old comment which was never true in real HVM MT model
* ChangeLog.txt
! typo: tanks -> thanks ;)
* src/debug/debugger.prg
% Don't save debugger window positions if user did not change them as the
original debugger behaves.
+ Support arguments to Options Save and Options Restore debugger commands
as the original debugger does.
* src/debug/debugger.prg
! Maintain fixed window logical order as the original debugger does.
! Load debugger settings in two steps: before and after debugger UI activation.
! Save watchpoints to the settings file.
* src/debug/dbgentry.c
! added missing casting
* src/debug/debugger.prg
+ show in call stack references to code compiled without debug info
* src/rtl/itemseri.c
* ignore HB_HASH_RESORT flag during hash serialization