* contrib/hgf/os2pm/*
! fixed menu items handling under OS/2 where you cannot change a MIS_TEXT into
a MIS_SUBMENU without first deleting MIS_TEXT and then inserting MIS_SUBMENU
* contrib/os2pm/os2pm.c
* moved here functions from mainpm.c
* * contrib/os2pm/tform.prg
+ added new methods
* source/vm/mainpm.c
- removed a couple of helper functions which belong to os2pm.c
* source/vm/Makefile
+ if HB_GT_LIB == os2pm then compiles mainpm.c instead of main.c
* source/vm/mainpm.c
* little changes to make it work.
NOTE: after gcc creates an executable file you need to issue an:
emxbind -ep filename.exe
to mark it as a PM executable, failing to do so the executable file is a
VIO one and all calls to WinXxx() functions will fail
* source/compiler/harbour.c
* Minor correction to handling of HB_FS_FIRST
* source/vm/hvm.c
* Added extern "C" protection to hb_macroAutoSetMacro() declaration.
* source/vm/macro.c
* include/hbcomp.h
* include/hbexprb.c
* include/hbexprc.c
* include/hbmacro.h
* include/hbmsetup.h
* include/set.ch
* source/compiler/cmdcheck.c
* source/compiler/genc.c
* source/compiler/harbour.c
* source/compiler/hbpcode.c
* source/rdd/dblist.prg
* source/vm/hvm.c
- Removed support for syncing of macro setting with main module.
- Removed support for -ks which is replaced with -kr.
+ Added default logic to auto symchronize all macro activations with the compile time switches of each respective module.
+ Added -kr to disable auto synching, thus allowing Run-Time setting by means of HB_SETMACRO().
* include/hbvmpub.h
* source/vm/classes.c
* source/vm/hvm.c
* source/vm/dynsym.c
! Fixed profiler counting of time elapsed inside recursive functions. It still has to
be fixed for methods.
NOTE: My knowledge of harbour VM is very poor. I hope I didn't break anything else :-))
! Fixed a few warnings inside hb_vmDo() and hb_vmSend()
* source/vm/arrayshb.c
! Fixed isalnum() call on line 359, isalnum() requires an int
* source/compiler/harbour.c
! Corrected assigment of HB_FS_FIRST scope, for proper execution of first non INIT/EXIT procedure in main module.
* source/compiler/genc.c
* source/vm/hvm.c
! Improved sync logic of HB_SETMACRO() level, to only activate once per application before any prg level code is executed.
+ include/hbmsetup.h
* include/hbmacro.h
* Moved #defines of HB_SM_* to new file hbmsetup.h
* source/compiler/harbour.c
* source/vm/macro.c
* source/compiler/genc.c
+ Added logic to automatically synchronize HB_SETMACRO() level with the -k option supplied to compiler.
/* HB_SETMACRO() may still be called explictly, but now specifying any -k option to harbour will automatically provide same
level of functionalty in macro compiler. Example:
harbour test -kc
will restrict the compiler to the Clipper level mode, and will automatically disable extended macro support in that module
without requiring:
HB_SETMACRO( HB_SM_HARBOUR, .F. )
HB_SETMACRO( HB_SM_XBASE, .F. )
By default all harbour extensions are enabled - you can use -kc, -kx -ki, etc., to disable any unwanted feature.
We should still review the need to have -ki which I find absolutley redundant and unproductive.
*/
* classes.c
Fixed function __CLSNEW.
Changed variable USHORT uiSize to ULONG ulSize
This fix random GPFs in function hb_clsDictRealloc by creating
classes.
* include/hbapi.h
* Changed 2nd parameter to BYTE iContext in hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext )
* include/hbexprop.h
+ Added #define HB_ET_MACRO_LIST 16 /* &variable used as in literal arrays or parentesised expressions. */
+ Added #define HB_ET_MACRO_INDEX 32 /* &variable used as arrays index. */
* include/hbexprb.c
+ Added macro list support logic to hb_compExprUseArray()
+ Added generation of HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX in hb_compExprUseMacro()
/* HB_P_MACROLIST and HB_P_MACROLISTEND are only generated as an enevelope if array contains a one or more macro element
which will generate an HB_P_MACROPUSHLIST. */
* include/hbpcode.h
* source/compiler/genc.c
* source/compiler/hbfix.c
* source/compiler/hbpcode.c
+ Added: new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.
* source/vm/hvm.c
* source/vm/macro.c
+ Added: support for new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.
/* HB_P_MACROPUSHINDEX not completed yet.*/
/* NOTE: This implements macro as literal array arguments list syntax <{ &cMacro }>.
( &Cmacro ) and Array[ &cMacro ] are not completed yet.
*** All prgs must be recompiled due to new opcodes !!!
*/
* include/hbapi.h
+ Added #define HB_MAX_MACRO_ARGS 16
* source/vm/hvm.c
* source/vm/macro.c
+ Added support for nested HB_P_MACROPUSHARG
* contrib/dot/pp.prg
- Removed bSplit in PP_PreProLine(). Instead added logic to split the line unless line is a directive.