* include/hbgtinfo.ch
+ added new hb_gtInfo() switch: HB_GTI_CLOSEMODE
It controls close event (i.e. ALT+F4 and/or [x] button in MS-Windows)
behavior:
== 0 - terminate application
>= 1 - generate HB_K_CLOSE
== 2 - disable close button
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
% optimized setWindowFlags() and setWindowState() to not
execute show() when flags/state are not changed.
+ added support for HB_GTI_CLOSEMODE
* changed HB_GTI_CLOSABLE to work line in GTXWC and GTWVT
* src/rtl/gtxwc/gtxwc.c
! fixed setting window position by HB_GTI_SETPOS_XY
+ added support for HB_GTI_CLOSEMODE
; note: in GTXWC we cannot easy disable close button so
HB_GTI_CLOSEMODE==2 will work like 1 until we
do not find some portable way to inform WM that
is should hide close button
* src/rtl/gtwin/gtwin.c
* added type checking in few HB_GTI_* settings
+ added support for HB_GTI_CLOSEMODE
; note: in GTWIN we cannot catch close event so
HB_GTI_CLOSEMODE==1 works like 2
In this GT HB_GTI_CLOSABLE also has to work like
HB_GTI_CLOSEMODE==2
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
* added range checking in HB_GTI_RESIZEMODE setting
+ added support for HB_GTI_CLOSEMODE
* 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>)
* 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.
* 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.
* include/hbapidbg.h
* src/debug/dbgentry.c
* src/debug/debugger.prg
+ added new C function hb_dbgGetModuleName() - it returns module name
used to register module in HVM. In current version it only strips
path part though in the future it may use some more advanced code
which allow to debug modules with the same name but different paths
in single application and such extension will be local to core debug
code if upper level debugger uses hb_dbgGetModuleName()
+ added new PRG function __DBGGETMODULENAME() - it's wrapper to
hb_dbgGetModuleName()
+ added new PRG function __DBGMODULEMATCH()
! use __DBGMODULEMATCH() instead of hb_FileMatch() and strip_path()
! eliminated strip_path() from PRG code and use hb_dbgGetModuleName()
in C code in places where it's necessary
! replaced few strcmp() used to compare module names with
FILENAME_EQUAL()
; above modification may fix few potential problem with breakpoints
in debugger on some platforms if user uses different paths for
debugger and compilers.
! eliminated hack with memvar/field name copy in watch points,
it also fixes memory leak when fields are used in watch points.
% replaced few DO CASE with SWITCH
* include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_RESIZESTEP
It enables/disables window resize progression.
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
+ added optional code to enable XLib MT mode by XInitThreads()
+ added support for HB_GTI_RESIZESTEP and disabled window resize
progression in default settings - with some XWindow managers
it may cause bad side effects.
* do not center window in SETMODE() if console window dimensions
(rows and cols) are not changed.
* contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
* modified isAligned() to not generate warnings on platforms were
'unsigned long' is not large enough to hold pointer (Win64).
It should pacify warnings reported by Maurizio.
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* rediffed with:
hbmk2 ../../../../bin/3rdpatch.hb -rediff
* include/hbpp.h
* src/pp/ppcore.c
* replaced compile time macro HB_PP_MULTILINE_STRINGS with
runtime #pragma setting, i.e.:
#paragma multilinestrings = on
* src/vm/hashes.c
% resize index during hash arrays sorting, i.e. when strict order
is disabled or user call HB_HSORT() function
! fixed typo in timestamp value comparison - in practice only date
part was significant
! fixed new code I added recently for resorting hash arrays with
strict order
* include/hbgtinfo.ch
+ added HB_GTI_REDRAWMAX
It sets maximum number of unchanged neighboring chars in redrawn
line. It may help to optimize screen updates in some GTs.
* include/hbgtcore.h
* src/rtl/hbgtcore.c
* contrib/hbct/ctwin.c
+ respect HB_GTI_REDRAWMAX in default REDRAWDIFF() GT methods.
* contrib/gtqtc/gtqtc1.cpp
! added protection against font resizing for degenerated console
window size.
% set HB_GTI_REDRAWMAX to 1
* src/rtl/gtwvt/gtwvt.c
! translate screen base mouse wheel cords to window based ones.
% set HB_GTI_REDRAWMAX to 1
* src/rtl/gttrm/gttrm.c
% set HB_GTI_REDRAWMAX to 8
* src/rtl/gtwin/gtwin.c
% set HB_GTI_REDRAWMAX to 4
+ contrib/xhb/xhbinkey.ch
+ contrib/xhb/xhbkey.c
* contrib/xhb/xhb.hbp
* contrib/xhb/xhb.hbx
+ added support for xHarbour compatible extended Inkey() key codes
This functionality works with GTs which can operate on Harbour
extended key codes which are translated at runtime to xHarbour
extended keys (HB_EXT_INKEY).
+ added new PRG function:
xhb_Inkey( [ <nDelay> ] [ , <nKeyMask> ] ) -> <nKey>
which works like Inkey() but returns xHarbour extended key codes.
+ added new PRG function:
xhb_KeyTrans( <nExtKey> ) -> <nXhbKey>
which translates Harbour extended key code to xHarbour one.
* include/hbapigt.h
* src/rtl/inkeyapi.c
+ added new C function:
int hb_inkeyKeyVal( int iKey );
It extract key/character code from Harbour extended key code
* include/harbour.hbx
* src/rtl/inkey.c
+ added new PRG function:
hb_keyVal( <nExtKey> ) -> <nKeyVal> | <nCharVal>
* include/hbapi.h
* include/hbapigt.h
* include/hbvm.h
* src/rtl/inkeyapi.c
* src/vm/cmdarg.c
* src/vm/hvm.c
* replaced hb_cmdargProcessVM() with hb_cmdargProcess() and removed
unused for long time custom user cancel key functionality.
- removed dummy hb_inkeySetCancelKeys() C function.
- removed not used for long time HVM C functions and macros:
hb_vmFlagEnabled(), hb_vmFlagSet(), hb_vmFlagClear(),
HB_VMFLAG_HARBOUR, HB_VMFLAG_ARRSTR
* include/hbgtinfo.ch
+ added new HB_GTI_* actions:
HB_GTI_WINHANDLE - Get console window low level handle
HB_GTI_MOUSEPOS_XY - Get mouse position in pixels
HB_GTI_DISPIMAGE - Display image with given name
* include/hbapigt.h
* src/rtl/inkeyapi.c
+ added new C function: int hb_inkeyKeyMod( int iKey )
+ added code for translation from extended key codes to
standard Clipper ones
* include/harbour.hbx
* src/rtl/inkey.c
+ added new PRG function hb_keyMod( <nExtKey> ) -> <nModifiers>
It extract keyboard modifiers (HB_KF_*) from extended key code.
* include/hbgtcore.h
* src/rtl/hbgtcore.c
+ added new macros for generating extended key codes with keyboard
modifiers for ASCII and UNICODE characters
% strip repeated extended key codes for mouse move
! use standard key codes in extended ALERT() GT method
* include/inkey.ch
+ added key modifiers/flags for extended key codes: HB_KF_*
+ added extended key codes: HB_KX_*
- removed unused HB_K_MULTICODE macro
* src/rtl/gttrm/gttrm.c
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
+ added support for keyboard modifiers in GPM events
+ added support for keyboard modifiers in terminal mouse events
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
! invert selection region in WinCE builds
! fixed selection in fullscreen or maximized modes with margins
* do not add EOL to one line selections
+ added support for painting box drawing characters.
This mode can be enabled by:
hb_gtInfo( HB_GTI_FONTATTRIBUTE, HB_GTI_FONTA_DRAWBOX )
and it causes that GTWVT draws all box characters as pixmap
regardles of used font.
So far this functionality existed only in GTXWC.
+ added support for HB_GTI_FONTA_FIXMETRIC and HB_GTI_FONTA_CLRBKG
So far this functionality existed only in GTXWC.
+ added support for HB_GTI_WINHANDLE
! do not add EOL at the end of one line selection
* src/rtl/gtxwc/gtxwc.h
* src/rtl/gtxwc/gtxwc.c
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
* renamed HB_GTXWC_* box drawing macros to HB_BOXCH_* ones
* do not add EOL to one line selections
! fixed few keypad keycodes
* use cursor blinking rate HB_GTI_CURSORBLINKRATE for whole
show/hide period not only half of them. If someone use this
GTI action in his code then now he should double passed
value. [incompatible]
! fixed return value for HB_GTI_SETPOS_ROWCOL
* few minor cleanups
* tests/gtkeys.prg
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
+ added description for some key codes
+ added some initial HB_GTI_* actions
+ change cursor size by K_INS
+ display terminal size after HB_K_RESIZE
+ display mouse position after mouse key codes
! display all characters created by hb_keyChar()
! fixed formatting
* src/rdd/dbf1.c
* added more general protection against GPF in not fully
initialized workarea
* .gitignore
! removed executable file permission
* package/mpkg_src.sh
! added executable file permission
* contrib/hbct/screen2.c
% use STR API for parameters instead of using local conversions
* contrib/hbct/token1.c
% small simplification
* contrib/hbnetio/netiosrv.c
+ respect timeout parameter also in send operation
* contrib/make.hb
! moved project name normalization and directory verification to
AddProject() function. It fixes HB_BUILD_ADDONS envvar functionality.
* doc/xhb-diff.txt
+ added new paragraph: DECLARATION AND INITIALIZATION OF VARIABLES
* src/rtl/hbcom.c
* added 3-rd parameter to TIOCEXCL and TIOCNXCL ioctl() codes
to pacify valgrind warnings
* include/hbexpra.c
! fixed compilation with HB_USE_ENUM_FUNCTIONS macro
* include/hbapicls.h
* include/hbcompdf.h
* include/hbexpra.c
* src/compiler/harbour.y
* src/vm/classes.c
+ added support for :__enumIsFirst() iterator message. It's opposite
to recently added :__enumIsLast()
+ added support for overloading :__enumIsFirst() and :__enumIsLast()
functionality in custom FOR EACH implementations
* include/hbcompdf.h
* include/hbexpra.c
* src/compiler/harbour.y
+ added support for reverting :__enumIsFirst() and :__enumIsLast()
messages in descendant FOR EACH loops. It's disabled now by 2 #if 0
but I think it should be discussed. Should we keep it enable it?
The answer is not trivial when FOR EACH is used to iterate some
objects. In general such names are confusing.
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* regenerated using bison 2.5
* tests/foreach.prg
+ added :__enumIsFirst() to test code
* tests/foreach2.prg
! typo in comment
* bin/check.hb
! fixed to use local implementation instead of hb_DirScan()
which has known bug of missing extensionless files on win.
(due to hb_FileMatch() problem)
+ added support to optimize images and uncrustify C source
before upload (inactive yet)
+ added necessary exceptions now that extensionless files
properly found
+ checks for filenames without extensions
+ checks for filenames with extensions not in .gitattributes
* bin/commit.hb
+ show helpful advice when pre-commit hook check fails
! fixed to propely pick filenames that result from rename operations (for check)
! fixed to not pick filenames of deleted files (for check)
* config/lang.hb
* doc/en/lang.txt
* include/hblang.hbx
* src/lang/Makefile
* src/lang/l_zh_tra.c -> src/lang/l_zh.c
* src/rtl/langcomp.prg
* Language renamed: zh_tra -> zh (in sync with recently laid rules)
The 'REQUEST HB_LANG_*' value become INCOMPATIBLE compared
to previous dev versions
* src/rtl/cdpdet.prg
+ added 'zh' country code to codepage detection
* contrib/make.hb
* contrib/hbplist -> contrib/hbplist.txt
* renamed to have an extension
* contrib/hbrun/doc/_GENERATED_ -> contrib/hbrun/doc/_autogen.txt
* utils/hbmk2/doc/_GENERATED_ -> utils/hbmk2/doc/_autogen.txt
* renamed to have names fitting naming rules
+ added warning message inside
- extras/httpsrv/logs/empty
- deleted unnecessary file with non-compliant filename
- tests/stripeol.hb
% deleted, now similar functionality is implemented in bin/check.hb
* .gitattributes
! added missing .log and .ucf
* contrib/hbtinymt/3rd/tinymt/tinymt.hbp
! deleted SVN ID
* debian/copyright
! synced with COPYING.txt
* debian/postinst
* debian/postrm
! deleted multiple EOL at EOF
* include/hblang.hbx
* src/lang/Makefile
* src/rtl/langcomp.prg
+ src/lang/l_es_419.c
+ added 'es_419' - Spanish (Latin America) to Harbour
core languages
! fixed typo in language mapping of 'sr-sp-cyrl' to 'sr_cyr'
+ accept 'zh' for Chinese (Traditional)
+ bin/check.hb
+ new source verifier. Able to all documented (and more)
required text file and filename properties.
* bin/commit.hb
+ added feature to verify all files to be committed to
conform with certain naming and text file content rules
+ added some more feedback
* config/postinst.hb
+ include commit.hb and check.hb in 'install'
* include/extend.h
* contrib/hbcairo/paths.c
* contrib/hbcairo/png.c
* contrib/hbcairo/util.c
* contrib/hbtpathy/readme.txt
* tests/harbour.ini
* tests/parseins.ini
! multiple EOL at EOF
* contrib/hbhpdf/tests/files/cp932.txt
* contrib/hbhpdf/tests/files/cp936.txt
* contrib/hbhpdf/tests/files/elic_jp.txt
! line ending spaces
! missing EOL at EOF
* contrib/hbhttpd/tests/tpl/app/account/edit.tpl
* contrib/hbhttpd/tests/tpl/app/login.tpl
* contrib/hbhttpd/tests/tpl/app/logout.tpl
* contrib/hbhttpd/tests/tpl/app/main.tpl
* contrib/hbhttpd/tests/tpl/app/register.tpl
* lib/3rd/win/bcc/unicows_license.txt
* lib/3rd/win/mingw/libunicows_license.txt
! missing EOL at EOF
* COPYING.txt
* src/rtl/gtcrs/hb-charmap.def
* tests/big5_gen.prg
! tabs
* extras/gfspell/spell.prg
* src/rtl/gtwin/gtwin.c
! ASCII 127
* src/codepage/cp_tpl.c
! converted to UTF-8 (just guessing what the original CP was)
* src/pp/hbpp.c
! do not generate SVN header in hbverbld.h
+ avoid SVN header string in source as is to miss matched
in source verifier
* src/vm/extrap.c
! do not generate whitespace at EOL in output
* tests/lang2po.hb
* tests/po2lang.hb
+ minor improvements
! fixed to generate consistent EOL
* bin/3rdpatch.hb
* newline at top deleted
* extras/hbdoc/hbdoc.hbp
* extras/hbdoc/hbdoc.prg
* extras/hbdoc/_tmplates.prg -> extras/hbdoc/_tmplate.prg
* contrib/hbcairo/tests/lightning.prg -> contrib/hbcairo/tests/lightnin.prg
! long filename
* .gitattributes
* extras/guestbk/guestbk.prg
* extras/guestbk/guestbk.txt
* extras/guestbk/guestbk.htm -> extras/guestbk/guestbk.html
* deleted .htm file, now all HTML has extension .html
* .exe references in doc made OS neutral
; Can only be used on non-MS-DOS systems, so it's okay
* include/harbour.hbx
* src/rtl/hbi18n2.prg
+ added __i18n_potArrayClean() function that can clean source comments,
empty translations and able to do transformations on translations via
use supplied callback.
* utils/hbmk2/_po_pull.hb
+ do cleansing on .po files pulled from Transifex:
% strip source comments
% strip empty translations
! strip right/left padding from translated strings
! convert multiple spaces to single one in translated strings
; This will help keeping the diffs nice and tight and the
.po files in repo minimal in size
- utils/hbmk2/po/!
- deleted another accindental file :( fixed auto-script to be
more selective.
* include/harbour.hbx
* src/rtl/hbi18n2.prg
+ added __i18n_potArraySort( aTrans ) -> aTrans
to sort .pot files to a predictable order (of first
occurrence in file). It helps reducing unnecessarily
large and unusable diffs when updating .pots and their
related .po files
* utils/hbmk2/hbmk2.prg
* marked some string previously (and intentionally) marked
as non-translatable, as translatable. One exception less.
* utils/hbmk2/_po_push.hb
+ sort .pot before saving and pushing to localization service
* utils/hbmk2/hbmk2.es_PE.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.pt_BR.po
! added standard .po meta headers (manually for now)
* include/hbexpra.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/vm/classes.c
* tests/foreach.prg
+ added :__enumIsLast() enum method. It returns .T. for
last relement, .F. else. It's useful to replace conditions
like: 'item:__enumIndex() < Len( item:__enumBase() )'
* tests/lang2po.hb
+ added standard .po meta header
; use __enumIsLast()
* contrib/hbnetio/utils/hbnetio/_console.prg
! fixed wrongly initialized management plugin
(missed to update it when adapted the plugin
for hbrun last year)
* contrib/hbnetio/utils/hbnetio/netiomgm.hb
! fixed to show proper error instead of RTE, if RPC calls
fail to return expect values
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* formatting
* utils/hbmk2/hbmk2.prg
! fixed to suppress remaining remaining double outputs at
startup in hbrun mode, when processing .hbc files
* contrib/hbexpat/hbexpat.hbc
! added usage time detection of locally hosted 3rd party
dependency to avoid warnings when the locally hosted
dependency is not present (f.e. because the system
hosted copy was used at build/install time)
Experimental. If it works fine, should be applied to
other similar contribs:
hbbz2, hbhpdf, hblzf, hbmlzo, hbmxml, hbmzip, hbsqlit3, hbtinymt, hbxdiff, sddsqlt3
* README.md
* typographic and misc improvements
* config/global.mk
+ detect qnx cross-compile tool (via Francesco Perillo)
* include/hbsetup.h
* src/common/hbtrace.c
+ added macro HB_OS_QNX_BB10 for BlackBerry 10 subplatform
+ guard some stuff that's not present in BB10 (via Francesco Perillo)
* contrib/hbtinymt/3rd/tinymt/tinymt.hbc
! deleted $Id$
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate