* include/hbdefs.h
+ Added two new abstract types: HB_AREANO, HB_FIELDNO
* src/rdd/wacore.c
* src/rdd/dbcmd.c
* src/rdd/dbcmd53.c
* src/rdd/wafunc.c
+ Using above abstract types as casts to pacify long time
msvc warnings.
+ Using HB_USHORT cast to pacify msvc warnings in hb_rddList()
and hb_rddRegister() (shouldn't these have 'int' parameters?)
* contrib/xhb/xhb.hbp
* Synced with actual file list.
* harbour/include/hbgtinfo.ch
* harbour/include/hbgtcore.h
* harbour/src/rtl/hbgtcore.c
+ added HB_GTI_INKEYFILTER which allows to set/get codeblock used to
filter inkey key codes. This codeblock receives as 1-st parameter
actually processed inside INKEY() function key code. It should return
final inkey code (it can be the same or 0 if key should be ignored.
I.e. this code change key 'a' to 'B' and blocks 'c':
hb_gtInfo( HB_GTI_INKEYFILTER, { | nKey |
SWITCH nKey
CASE ASC( 'a' )
RETURN ASC( 'B' )
CASE ASC( 'c' )
RETURN '0'
ENDSWITCH
RETURN nKey
} )
+ added HB_GTI_INKEYREAD which allows to set/get codeblock executed
just before INKEY() reads key code from the GT typeahead buffer.
If it returns non 0 numeric value then this value is returned instead
as inkey code. Otherwise standard inkey procedure is activated and
key code is read from the GT typeahead buffer.
* harbour/include/hbextern.ch
* harbour/src/rtl/inkey.c
- removed HB_INKEYSETPREBLOCK() and HB_INKEYSETPOSTBLOCK() functions
* harbour/contrib/xhb/Makefile
* harbour/contrib/xhb/xhbgt.c
+ harbour/contrib/xhb/xhbinkey.prg
* harbour/contrib/xhb/hbcompat.ch
* updated emulation of xHarbour hb_SetInkeyBeforeBlock() and
hb_SetInkeyAfterBlock() functions to use new HB_GTI_* functionality.
Incompatibility warning!
In Harbour timeout value passed to inkey() is correctly respected
and not reset internally on each call to inkey after block.
If inkey before block returns non 0 numeric value then it's not
ignored but returned as INKEY() function result without touching
GT typeahead buffer.
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/netiosrv.c
+ Added casts to the points where internal size pointers
are converted to/from 32-bit (long) ones for transmission.
; Please review. Maybe these are useful warnings once 64-bit
support is to be implemented for NETIO interface, but
it doesn't seem very likely (or useful) in the near future.
Maybe it'd be better to use fixed bit type here too to
emphasis this internal "limit"?
* contrib/hbmisc/hbeditc.c
! strcpy() -> hb_strncpy()
! strncpy() -> hb_strncpy()
; NOTE: Could be that I broke it.
! Fixed one type HB_ISIZ -> HB_FOFFSET
* contrib/hbqt/utils/hbqtui.prg
% Minor opt.
- Deleted unnecessary strings from output.
* contrib/hbide/hbide.hbp
+ Changed to generate .uip files dynamically using uip
plugin.
; TODO: If this goes well, delete .uic and .uip files from SVN,
move resources/*.ui to hbide source root dir.
* contrib/hbqt/utils/hbqtui.prg
! Fixed to use GTCGI.
; TOFIX: There is a great deal of screen flickering due to
external call to uic.exe on Windows.
+ contrib/hbide/resources/hbmk2_plugin_uip.prg
+ Added .ui -> .uip plugin.
; NOTE: hbqtui executable needs to be in PATH or
current dir.
* contrib/hbide/ideprojmanager.prg
+ Enabled above plugin.
- contrib/hbide/resources/hbmk2_plugin_hbide.prg
- Deleted empty plugin.
* utils/hbmk2/hbmk2.prg
+ Display RTEs in plugin code by default, suppress by -quiet.
(before it was enabled by -info)
- contrib/hbqt/utils/hbmk.hbm
+ contrib/hbqt/utils/hbqtui.hbp
* Renamed to be more easily started by automated make process.
* contrib/hbqt/utils/hbqtui.prg
! Fixed to accept any pathsep on input
* Changed to use .uip extension for output
! Fixed to use full output name as specified if a non-dir
is specified with -o option
- Deleted -noprefix option, there is no prefix in any case anymore
! Fixed to not include the generator's own SVN ID in generated files
* Changed to not leave .uic file behind by default
! Fixed to use platform EOL in generated files.
% Don't return an array from MAIN() function
; These changes allow to create automated processes to
generate .hbp from .ui.
+ contrib/hbqt/utils/hbmk.hbm
+ Added hbmk2 make file for hbqt utils.
* contrib/hbmisc/hbeditc.c
* Type (and some code) cleanup continued.
Deleted int casts, using HB_BOOL instead of int,
using char instead of int, using hexa notation for
HARDCR instead of high-char in source, etc.
* One strcpy() converted to hb_strncpy().
* contrib/hbide/hbide.hbp
- contrib/hbide/ui_docviewgenerator.prg
- contrib/hbide/ui_docwriter.prg
- contrib/hbide/ui_environ.prg
- contrib/hbide/ui_environments.prg
- contrib/hbide/ui_finddialog.prg
- contrib/hbide/ui_findinfiles.prg
- contrib/hbide/ui_findinfilesex.prg
- contrib/hbide/ui_findsource.prg
- contrib/hbide/ui_funclist.prg
- contrib/hbide/ui_mainwindow.prg
- contrib/hbide/ui_projectpropertiesex.prg
- contrib/hbide/ui_searchreplace.prg
- contrib/hbide/ui_searchreplacepanel.prg
- contrib/hbide/ui_selectionlist.prg
- contrib/hbide/ui_selectproject.prg
- contrib/hbide/ui_setup.prg
- contrib/hbide/ui_shortcuts.prg
- contrib/hbide/ui_skeletons.prg
- contrib/hbide/ui_themes.prg
- contrib/hbide/ui_themesex.prg
- contrib/hbide/ui_toolsutilities.prg
- contrib/hbide/ui_updown.prg
+ contrib/hbide/docviewgenerator.uip
+ contrib/hbide/docwriter.uip
+ contrib/hbide/environ.uip
+ contrib/hbide/environments.uip
+ contrib/hbide/finddialog.uip
+ contrib/hbide/findinfiles.uip
+ contrib/hbide/findinfilesex.uip
+ contrib/hbide/findsource.uip
+ contrib/hbide/funclist.uip
+ contrib/hbide/mainwindow.uip
+ contrib/hbide/projectpropertiesex.uip
+ contrib/hbide/searchreplace.uip
+ contrib/hbide/searchreplacepanel.uip
+ contrib/hbide/selectionlist.uip
+ contrib/hbide/selectproject.uip
+ contrib/hbide/setup.uip
+ contrib/hbide/shortcuts.uip
+ contrib/hbide/skeletons.uip
+ contrib/hbide/themes.uip
+ contrib/hbide/themesex.uip
+ contrib/hbide/toolsutilities.uip
+ contrib/hbide/updown.uip
* Renamed ui_*.prg files to .uip
* src/vm/runner.c
+ Module name will now be filled with the .hrb filename if known,
and default 'pcode.hrb' will only be used if running direct
binary .hrb stream. This means that also PROCFILE() will
return usable results. (f.e. in script run via hbrun)
* contrib/hbmisc/hbeditc.c
% int -> char. Dropped some casts.
* harbour/include/hbextern.ch
* harbour/src/vm/runner.c
+ added new PRG function
HB_HRBSIGNATURE() -> <cSig>
which returns HRB file signature
+ added internal function hb_hrbCheckSig() to keep HRB file
signature checking in one place
* harbour/include/hbextern.ch
* harbour/src/vm/cmdarg.c
+ added new PRG function
HB_ARGSHIFT( [<lProgName>] ) -> NIL
which updates HB_ARG*() parameter list removing the 1-st one
and replacing it by others. If <lProgName> is .T. then first
non internal parameter is moved to hb_argv(0) (hb_progname())
and all next are shifted.
* harbour/utils/hbrun/hbrun.prg
+ when extension does not allow to recognize file type then check
passed file signature. If it's HRB file then execute directly
otherwise use it as PRG script.
This modification allows to use any names (except the ones using
known for HBRUN extensions like .hrb amd .dbf) as PRG script names.
+ Call HB_ARGSHIFT(.T.) to strip HBRUN executable file name from
parameter list when PRG script or HRB file is executed
* include/hbdefs.h
+ Added new abstract type: HB_RECNO.
To replace HB_ULONG usage where it means record number.
* src/vm/hvm.c
* src/vm/cmdarg.c
* include/hbapi.h
* include/hbvm.h
* HB_ULONG -> HB_U32 for VM flags.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
% Fixed: crash at fast text selection.
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
% Fixed: slowness caused in selection process when many
lines were being selected. Now there is no overhead.
Thanks to Itamar for reporting.
* contrib/hbqt/THbQtUI.prg
% Little more syncronization.
+ Added: method ::connect(). It is identical to :signal()
But for uniformity with other hbXBP and hbIDE classes
this method name seems appropriate.
% Reworked: method create(). Now both types of implementations,
viz., .ui and .uic will be entertained with one creator.
oUI := HbQtUI():new( "MainWindow.ui" ):create()
oUI := HbQtUI():new( "MainWindow.uic" ):create()
with do the job. :build() is still active but will be depricated.
* src/rtl/hbsha2.c
* src/rtl/hbsha2hm.c
+ Added Win64 support for SHA1 functions.
; NOTE: HMAC keys longer than 2^32 bytes are not support
(unlike with SHA1), probably not huge limitation.
* src/vm/dynsym.c
* include/hbapi.h
* Minimal cleanup: using HB_LONG in place of long, just to make
this type usage easier to find in the future.
* src/vm/hvm.c
+ Added cast to pacify long time msvc warning
* src/vm/fm.c
+ Added pragmas to silence msvc64 warnings in dlmalloc (foreign) code.
* src/vm/extend.c
* Formatting.
* harbour/include/hbdefs.h
+ added HB_VMUINT_MAX macro
* harbour/src/vm/hvm.c
* harbour/src/vm/itemapi.c
% use conditional #if compilation for code which depends on
HB_SIZE range. It should eliminate dummy code and pacify
warnings in some compilers.
NOTE: do not forget to update such #if conditions when we
switch to signed HB_SIZE type.
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyh
* harbour/src/macro/macro.yyc
* harbour/src/macro/macrolex.c
* changed type of valChar.length from int to HB_SIZE
* src/vm/estack.c
* src/vm/debug.c
* src/vm/hvm.c
* src/vm/pvalue.c
* src/vm/arrays.c
* src/vm/proc.c
* src/vm/memvars.c
* src/vm/eval.c
* src/vm/classes.c
* include/hbstack.h
* include/hbapi.h
+ Win64 support for HVM stack and other related internals.
(HB_ULONG -> HB_SIZE, HB_LONG -> HB_ISIZ, long -> HB_ISIZ)
+ Using size API in debug functions.
; TOFIX: These two warnings remain in HVM (not counting dlmalloc):
---
hvm.c(10695) : warning C4244: 'argument' : conversion from 'HB_MAXINT' to 'double', possible loss of data
macro.c(1315) : warning C4310: cast truncates constant value
---
* src/vm/eval.c
* HB_FORNEXT() loop value can now be 64-bit values (was 32).
* src/vm/runner.c
* Formatting.
* include/hbhash.h
* src/common/hbhash.c
+ hash key changed from HB_ULONG to HB_SIZE.
* src/rtl/cdpapi.c
* src/compiler/hbmain.c
* Added casts to pacify long time msvc warnings.
* include/hbapi.h
! HB_IS_VALID_INDEX() macro fixed to use HB_SIZE.
* Changed hb_struRefer.offset structure member from HB_LONG to
HB_ISIZ, fixing one pending Win64 type mismatch.
The change doesn't modify HB_ITEM size.
* include/hbapicls.h
+ Added parameter name to one declaration.
* include/hbcomp.h
* include/hbcompdf.h
* include/hbexpra.c
* include/hbexprb.c
* include/hbexprop.h
* include/hbmacro.h
* src/common/expropt1.c
* src/common/expropt2.c
* src/compiler/genc.c
* src/compiler/gencc.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/hbdbginf.c
* src/compiler/hbdead.c
* src/compiler/hbident.c
* src/compiler/hblbl.c
* src/compiler/hbmain.c
* src/compiler/hbopt.c
* src/compiler/hbpcode.c
* src/vm/macro.c
+ Adding Win64 support for compiler/macro subsystems.
* HB_ULONG -> HB_SIZE where applicable.
* HB_LONG -> HB_ISIZ where applicable.
* Some now unnecessary cast deleted.
* hb_compExprAsStringLen() return value changed to HB_SIZE from int.
* hb_compNOOPfill() 3rd parameter changed to HB_ISIZ from int.
- Deleted unused hb_compExprMacroListLen().
; TOFIX: Use '$<lNumber>$' (or maybe newly added sNumber)
instead of '$<iNumber>$' in .y code.
Przemek, what do you think?
* src/compiler/Makefile
* C files sorted.
* src/vm/hvm.c
! hb_vmStaticsCount() changed to use HB_SIZE instead of
HB_ULONG. Fixing pending warnings.
* include/hbapi.h
* Changed hb_struEnum.offset structure member from HB_LONG
to HB_ISIZ, fixing one more pending Win64 type mismatch
problem. The change doesn't modify HB_ITEM size.
Please verify me.
* src/vm/classes.c
! Using size API after above change.
; QUESTION: In itemapi asEnum.offset is stored using
hb_itemPutNInt(). Should this be changed to
hb_itemPutNS()?
* contrib/hbct/ctstr.c
+ Cleaned away some HB_ULONG casts and using HB_PFS format
strings instead.
* contrib/hbct/tab.c
! Fixed regression from 2010-06-20 12:34 UTC+0200 Viktor Szakats,
by deleting now unnecessary casts. Shown by mingw64 4.6.0exp.
I'd appreciate if someone could check me!!
* include/hbapi.h
* Changed hb_struRefer.value structure member from HB_LONG to
HB_ISIZ, fixing one pending Win64 type mismatch also signaled
by msvc64 warning. The change doesn't modify HB_ITEM size.
Please verify me.
* contrib/hbct/Makefile
* contrib/hbct/hbct.hbp
* contrib/hbct/ct.h
* contrib/hbct/charlist.c
+ contrib/hbct/charlish.c
! Moved non-CT3 (Harbour extension functions to separate
source file)
% Optimized code.
* Cleaned code and type usage.
* Changelog
! Fixed date in my today's commits.