* source/rtl/tbrowse.prg
! Color handling made fully C5.x compatible. Pls test.
+ One C5.3 bug replicated where no special header/footer
colors are being used if there is not header/footer separator
sepcified.
! Fixed compile error (because of unused var warning) when
HB_COMPAT_C53 is not defined.
* source/rtl/numeric.prg
* source/rtl/memoedit.prg
* source/rtl/typefile.prg
* source/rtl/block.prg
* source/rtl/symbol.prg
* source/rtl/errorsys.prg
* source/rtl/scalar.prg
* source/rtl/nil.prg
* source/rtl/radiogrp.prg
* source/rtl/logical.prg
* source/rtl/array.prg
* source/rtl/listbox.prg
* source/rtl/browse.prg
* source/rtl/characte.prg
* source/rtl/pushbtn.prg
* source/rtl/ttextlin.prg
* source/rtl/profiler.prg
* source/rtl/date.prg
* source/rtl/persist.prg
* source/debug/dbgbrwsr.prg
* source/debug/tbrwtext.prg
* source/debug/dbgtmenu.prg
+ Enabled "PROTECTED:" keyword in profiler.prg
* Finished CLASS declarations to use a more or less consistent syntax
inside Harbour (Class(y) compatible except SETGET and the METHOD
parameter lists, maybe some more).
* Finished WHILE, iif(), END, string quotation to be consistent along Harbour.
! Fixed some indentations.
* Some other minor cleanups.
* harbour/source/rtl/tbrowse.prg
! Fixed cell color. This was needed because the oCol:colorBlock()
now always contains a block (it cannot be NIL) to be CA-Cl*pper
compatible, so the logic had to be adjusted in :DispCell()
accordingly.
* harbour/utils/hbtest/rt_misc.prg
* harbour/utils/hbtest/make_c5x.bat
+ added alternative results for oGet:colorspec compatible with CL53
when HB_COMPAT_C53 macro is set
* harbour/include/Makefile
+ harbour/include/hbsxdef.ch
* harbour/include/dbinfo.ch
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/contrib/bmdbfcdx/hbrddbmcdx.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/workarea.c
+ added SIx3 compatible triggers support
They should work like in SIx3 with some intentional excpetions:
1) if 4-th parameter exists (PREUSE/GET/PUT) then it's passed by
reference otherwise is not passed at all and PCOUNT() in trigger
functions returns 3
SIx3 do not pass 4-th parameter by reference and if it not
exist then passes 0
2) EVENT_POSTCLOSE is executed after SUPER_CLOSE()
SIx3 executes EVENT_POSTCLOSE just before SUPER_CLOSE()
3) EVENT_UPDATE is executed _ALWAYS_ when DBF is updated also
when WA does not have open indexes
SIx3 executes EVENT_UPDATE only when at least one index is
open without checking if it's updated or not
4) EVENT_POSTUSE is executed from OPEN() method in "DBF" RDD not
from index RDDs so before the indexes are open
SIx3 executes EVENT_POSTUSE after opening indexes
It's possible that I'll change this condition in the future
* makefile.vc
* makefile.gc
* makefile.bc
* config/rules.cf
+ Using Harbour -kM switch when building Harbour itself.
(this switch will turn off macro substitution in string
literals.)
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
* source/debug/debugger.prg
! Fixed scope violation in debugger by creating
a new :Get() method for HBGetList().
! Fixed some minor issues.
% Minor optimization. Like dropping HBGetList():ReadExit()
which was just a wrapper to SET( _SET_EXIT ).
! Replaced a few remaining external HBGetList() var accesses
with :ReadStats() calls.
! TGetList():GetApplyKey() parameter list rearranged after
yesterday to keep it compatible with previous versions.
This also avoids a crash in the debugger.
* source/rtl/memoedit.prg
* source/rtl/teditor.prg
* source/debug/tbrwtext.prg
+ HBEditor():RefreshWindow() renamed to :display()
old message name kept for compatibility.
+ HBEditor():hitTest() added.
+ HBEditor():changed() added. (returns internal
::lDirty which got renamed to ::lChanged)
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
! Fixes for UI problems reported by Lorenzo
and more. Mostly from xhb.
+ ReadModal() core functionality moved inside
HBGetList()
+ ReadStats() functionality moved indide
HBGetList()
+ All HBGetList() vars made protected.
+ Cleaned up the .prg and class interfaces.
! Fixed crashes of several GETSYS compatibility
functions, when no getlist was active.
We're still not fully C5.x compatible though.
* source/rtl/tmenusys.prg
+ Uses ReadStats() instead of direct
HBGetList() var access.
* source/rtl/tbrowse.prg
! :hitTest() fixed.
* source/rtl/tget.prg
! Minor fixes to :capCol() and :capRow()
* source/rtl/checkbox.prg
* source/rtl/listbox.prg
* source/rtl/menuto.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
* Formatting (some varnames uniformized).
* source/rtl/tget.prg
! :HitTest() crash fix.
! :HitTest() made more compatible.
+ Added proper wrappers for undocumented C5.3 vars.
+ Added support for Caption.
+ Added support for C5.3 color handling (it's quite ugly,
but it's on by default).
; Some snippets from xhb but heavily fixed.
* source/rtl/scrollbr.prg
* source/rtl/tpopup.prg
* source/rtl/radiogrp.prg
* source/rtl/listbox.prg
* source/rtl/checkbox.prg
* source/rtl/tget.prg
* source/rtl/ttopbar.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
% __GUIColor() -> hb_ColorSelect()
* source/rtl/teditor.prg
* source/rtl/tbrowse.prg
! Fixed to assign SetColor() in New() rather than in INIT.
(INIT value gets evaluated and stored on first class usage,
not on every instantiantion.)
* source/rtl/tget.prg
* tests/rto_get.prg
+ Added Harbour extensions:
:hideInput (logical value)
:style (1 char long string to control mask character when :hideInput is .T.)
QUESTION: Is there any need to support multiple hiding styles?
(like always fully masked or masked with random chars?)
! Fixed several bugs in SET DELIMITERS handling.
(color, focus behaviour, "caching", positioning)
+ Added test cases for SET DELIMITERS issues.
* harbour/include/hbrdddbf.h
* harbour/source/rdd/dbf1.c
+ added two new members to DBFAREA structure: fModStamp and fTrigger
* harbour/include/hbrddntx.h
* harbour/include/hbrddcdx.h
* harbour/contrib/bmdbfcdx/hbrddbmcdx.h
* updated for DBFAREA structure modifications
* harbour/contrib/libct/ctnet.c
* use hb_stricmp() instead of stricmp()
* harbour/include/hbrddcdx.h
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* updated for DBFAREA structure modifications
+ added some very basic support for order temperature flags
* source/rtl/getsys.prg
! Fix for crash in TGetList():ShowGetMsg() reported by Lorenzo.
* contrib/libct/blank.prg
* source/rtl/menuto.prg
* source/rtl/valtoexp.prg
* source/rtl/readkey.prg
* source/rtl/browse.prg
* source/debug/debugger.prg
+ Replaced END with ENDSWITCH and ENDWITH
* harbour/include/std.ch
* cover ENDSEQUENCE translation with HB_C52_STRICT macro
+ added translations for END SWITCH, END WITH, END OBJECT
* harbour/source/compiler/complex.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.yyh
+ added support for ENDSEQ[UENCE], ENDSW[ITCH] and ENDW[ITH]
* harbour/source/rtl/hbgtcore.c
! changed string to color number translation to be fully Clipper
compatible. Now I do not know any examples which we translate
differently - if someone will find any them then please inform me.
The only one intentional difference between Harbour and Clipper
is in color number to string translation and background highlighting
attribute "*", Clipper put it just before "/" as part of foreground
color (f.e.: 248 => "N*+/W") but Harbour as part background color
(f.e.: 248 => "N+/W*") - Clipper compatible behavior is enabled when
Harbour is compiled with HB_C52_STRICT macro
* harbour/utils/hbtest/rt_misc.prg
* control the position of background highlighting attribute (*) in
expected results depending on HB_C52_STRICT. Harbour passes correctly
all included color translation tests.
* source/rtl/hbgtcore.c
! Fixed handling of some strangely formatted colorstrings
mainly inside TGet(). The low-level functionality
modified is the colorstring to number conversion. The
only change is to continue (and not exit) on a non-std
char.
* utils/hbtest/rt_misc.prg
+ Added some color string parsing tests. Some of them fail.
* source/rtl/achoice.prg
* source/debug/debugger.prg
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_array.prg
* Formatting.
* tests/rto_get.prg
* source/rtl/tget.prg
! Fixed display issue when using display->varput->display
sequence. (Thanks Lorenzo)
+ Above case added to test suite.
* source/rtl/tbrowse.prg
+ Some scattered logic moved inside :Configure()
! Some TOFIX-es added.
! ::ColorSpec() to call Configure().
* source/debug/dbgtobj.prg
* source/debug/dbgwa.prg
+ Formatting, var name cleanup.
* include/hbcompat.ch
* include/hbextern.ch
* source/rtl/hbini.prg
+ .ini functions added to hbextern.ch.
* .ini functions renamed so that all of them reside
in the hb_ini*() namespace. xhb compatibility translates
added.
* source/debug/debugger.prg
* Formatting.
* source/rtl/memoedit.prg
% Minor optimization.
* source/rtl/teditor.prg
! Fixed to not ask for confirmation when pressing
<Esc> on an unedited buffer.
* harbour/contrib/rdd_ads/ads1.c
* changed HB_TR_ALWAYS to HB_TR_DEBUG in two places and
removed some old comment for which Brian received answer from ExtSys
* harbour/include/hbset.h
* declare hb_set with HB_EXPORT attribute when HB_SET_IMPORT macro
is not set - it's temporry modification and it will be removed when
we will have real hb_setGet*() and hb_setPut*() functions.
* harbour/include/hbdefs.h
+ added HB_IMPORT macro
* harbour/include/hbset.h
* declare hb_set with HB_IMPORT attribute when HB_SET_IMPORT macro is set
+ added macros to retrieve information from hb_set structure:
hb_setGetCPtr(), hb_setGetNI(), hb_setGetNL(), hb_setGetL()
In the future these macros will be replaced by functions and
direct access to hb_set structure from non core code will be
forbidden so please update your code and and replace all
hb_set.HB_SET_*
with
hb_setGet*( HB_SET_* )
f.e. replace:
hb_set.HB_SET_SOFTSEEK
with:
hb_setGetL( HB_SET_SOFTSEEK )
I'll also add hb_setPut*() functions to assign some set values.
Both hb_setGet*() and hb_setPut*() functions will validate parameters
and in future MT mode will operate on global or thread local structures.
* harbour/contrib/rdd_ads/ads1.c
* define HB_SET_IMPORT before #include "hbset.h"
* use hb_setGet*() to access SET values
* harbour/include/dbinfo.ch
* harbour/source/rdd/workarea.c
* renamed RDDI_TRIGGERS to RDDI_TRIGGER
+ added RDDI_PENDINGTRIGGER, RDDI_PENDINGPASSWORD,
DBI_TRIGGER, DBI_OPENINFO
* do not generate RT error in WA default ORDERINFO() method
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbini.prg
+ added HB_ReadIni()/HB_WriteIni() - code by Giancarlo Niccolai
borowed from xHarbour with some minor fixes
* harbour/include/dbinfo.ch
* harbour/source/rdd/workarea.c
* renamed RDDI_TRIGGERS to RDDI_TRIGGER
+ added RDDI_PENDINGTRIGGER, RDDI_PENDINGPASSWORD,
DBI_TRIGGER, DBI_OPENINFO
* do not generate RT error in WA default ORDERINFO() method
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbini.prg
+ added HB_ReadIni()/HB_WriteIni() - code by Giancarlo Niccolai
borowed from xHarbour with some minor fixes
* source/rtl/color53.prg
+ Added HB_COMPAT_C53 guards.
* source/rtl/tgetlist.prg
+ Two new methods to return Self rather than NIL.
* source/rtl/einstvar.prg
+ Added HB_C52_STRICT branch.
* source/rtl/tbrowse.prg
+ Continued prev. changed.
* include/setcurs.ch
* include/hbapigt.h
* SC_UNDEF moved to .prg level.
! SC_* defs not duplicated on C level.
* include/hbcompat.ch
+ Added debugger class compatibility translations.
* source/rtl/tmenusys.prg
* source/rtl/menusys.prg
* Formatting.
* source/rtl/teditor.prg
* source/debug/debugger.prg
+ Added :RowPow(), :ColPos(), :IsWordWrap(), :WordWrapCol()
! Changed debugger to use the above methods instead of direct
instance var access.
* source/rtl/tbcolumn.prg
* source/rtl/tget.prg
* source/rtl/tbrowse.prg
! Public class initializator names hidden when in strict
(and non-XPP) mode.
* source/rtl/tbrowse.prg
+ Some work in progress towards better C5.x compatibility
(borrowed from xhb)
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
+ (Better) C5.3 message line support, several 5.3 fixes,
some of them borrowed from xhb.
* include/hbcompat.ch
* source/debug/dbgtobj.prg
* source/debug/dbgbrwsr.prg
* source/debug/dbgtwin.prg
* source/debug/dbgmenu.prg
* source/debug/dbgthsh.prg
* source/debug/tbrwtext.prg
* source/debug/dbgwa.prg
* source/debug/debugger.prg
* source/debug/dbghelp.prg
* source/debug/dbgtarr.prg
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
! Class names named to be in the Harbour namespace.
xhb compatibility translations added to hbcompat.ch
! Unneeded BEGINDUMP and .h inclusions removed.
! Added :End() to HBBrwText to avoid using some
internals vars of the class.
! Fixed problem with HBDebugger:SaveAppScreen()
where it crashed due to wrong initialization
of TBrowse() screen coordinates. Bug appeared
due to the now more compatible TBrowse() behaviour.
% Optimizations and cleanups.
% Unused vars/functions removed.
* Formatting (except large parts of debugger.prg and
those files which were okey).
; Majority of formatting, optimization and code cleanup
work is still left to do.
Please test as much as you can.
* harbour/include/dbinfo.ch
* updated comment
* harbour/contrib/rdd_ads/ads1.c
* replaced hb_itemGetPtr(hb_param(n,HB_IT_POINTER)) with hb_parptr(1)
* harbour/contrib/hbzlib/hbcomprs.c
* changed variable name: PHB_FNAME fDirSpec to PHB_FNAME pDirSpec
* harbour/source/rdd/dbcmd.c
! fixed parameter checking in OrdNumber() to generate Clipper compatible
RT error
* code cleanup
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* do not evaluate KEY expresion in custom indexes in KEYDEL operation.
It may interact with MULTIKEY/TEMPLATE indexes.
* updated default order in DBOI_BAGNUMBER and DBOI_BAGORDER
* tests/Makefile
* tests/rto_get.prg
+ tests/rto_tb.prg
* include/button.ch
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
- source/rtl/mssgline.prg
+ source/rtl/gui.prg
+ source/rtl/menusys.prg
+ source/rtl/tmenusys.prg
* source/rtl/checkbox.prg
* source/rtl/einstvar.prg
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/listbox.prg
* source/rtl/memoedit.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tlabel.prg
* source/rtl/tmenuitm.prg
* source/rtl/tpopup.prg
* source/rtl/treport.prg
* source/rtl/ttopbar.prg
; These changes mainly targeted the .prg
level UI classes of Harbour.
+ Code standardization, cleanup, formatting.
(formatting is not fully complete yet)
! Lots of compatibility fixes.
! Lots of bugfixes (crashes, wrongly passed
parameters, etc).
! Minor fix in one of the methods of HBReportForm()
- Non-Clipper classes removed (the MENUSYS/msgline
related ones).
! Some fixes adapted from xHarbour's TBrowse()
+ Class VARs properly scoped.
+ TBColumn() is now fully compatible.
* The mess in the TTopBar and related classes was
cleaned up, some small non-Clipper compatible
classes were removed and a new TMenuSys class
was created of the related parts.
% Optimizations.
+ TBrowse/TBColumn regression test suite
added (far from complete at this point).
; NOTE: No C5.3 GUI support is implemented in Harbour.
; NOTE: Harbour uses Disp*() functions in UI functions
to update screen. C5.x uses a mixture of Dev*(),
Q?Out() and Disp*().
; NOTE: TBrowse() fixing is still a work in progress.
; Please test.
* harbour/source/rtl/gttrm/gttrm.c
* use for teraterm Linux controle codes
* harbour/source/rtl/filesys.c
* harbour/source/rtl/file.c
! fixed GPF trap which appeared after my last modifications
* harbour/hbgtmk.sh
* replaced CVS checkout commands by SVN checkout
# This script checks you have all tools to build Harbour binaries
# installed then takes current Harbour sources from SourceForge SVN
# repository and build binary RPMs at your local host
If possible I think it will be good to put this script on
Harbour home page so Linux users using RPM based distributions
can simply download it and execute. It should greatly help them
and it will reduce some repeated questions.
* harbour/include/hbapifs.h
* harbour/source/rtl/filesys.c
+ added hb_fsNameConv() function, hb_fileNameConv() kept only for
backward compatibility - it should not be used
* use hb_fsNameConv() instead of hb_fileNameConv()
* updated conversion code to use hb_fsFNameSplit()/hb_fsFNameMerge()
and respect some other DOS like conditions
* harbour/include/hbdate.h
* harbour/source/common/hbdate.c
* harbour/source/rtl/seconds.c
* use MT safe localtime_r() instead of localtime() in Linux
+ hb_dateTimeStamp(), hb_timeStampStr(), hb_timeStampDecode(),
hb_dateTimeStampStr(), hb_dateTimeStampStrGet()
* harbour/contrib/libct/files.c
* harbour/contrib/libct/disk.c
* harbour/contrib/hbzlib/hbcomprs.c
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/file.c
* use hb_fsNameConv() instead of hb_fileNameConv()
* harbour/source/debug/dbgentry.c
+ added modifications by Phil Krylow borowed from xHarbour for
supporting :: in command line expressions
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfdbt/dbfdbt1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/sdf1.c
* minor clenup:
use hb_parptr(n) instead of hb_itemGetPtr(hb_param(n,HB_IT_POINTER))