* harbour/include/hbclass.ch
* enable strict parameters validation in method declaration and
implementation when warning level (-w?) is 3 or higher
* small modification in error messages
* harbour/contrib/hbwin/win_prn1.c
! fixed WIN_FILLRECT() to return logical value (result of FillRect()
function)
+ extended WIN_SETPEN() to accept previously created by this function
HPEN handles
! fixed WIN_SETCOLOR() to return previously allocated color.
This function is used in such context in WIN_PRN class.
* harbour/contrib/hbwin/win_tprn.prg
+ added PageNumber member
! fixed printer output detection to respect also graphic primitives
! fixed SetColor() not changed to win_SetColor() when code was ported
from xHarbour
* include/hbdefs.h
+ Marked BOOL, TRUE and FALSE as HB_LEGACY_LEVEL3.
This means these types will disappear from Harbour after next
major release.
Please start to migrate to the new, pure Harbour replacement
types for portable Harbour code:
HB_BOOL, HB_TRUE, HB_FALSE.
Notice that you still may (and should) use BOOL, TRUE, FALSE
when dealing with Windows API (and some other 3rd party APIs),
where these are valid types in their own context.
* include/clipdefs.h
+ Added BOOL, TRUE and FALSE as Clipper compatibility type.
TRUE equals to 1 here for better Clipper compatibility
(was: !0)
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idesources.prg
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbslots.cpp
+ Implemented "Set Mark" and "Goto Mark" toolbar actions.
This implementation has a little glitch which I am lookking
to be realized with subclassing. But the prototype is in place.
! Fixed a bug reported by Marco Bra.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
+ Implemented current line highliting.
Currently it is ON by default. Later when all components
will be in place then it will fall under generic category
in thought of "Setup" dialog.
+ Implemented to show number of selection characters in status-bar.
Requested by: Rodrigo Machado.
+ Implemented to retain last selected codec from the main menu
to be populated at next run. It is also displayed
in the status-bar.
; Please comment.
* harbour/include/hbclass.ch
! fixed compilation with strong typed parameters in method
implementation
* enable strict parameters validation only when method is declared
with (), i.e.:
method open
does not force any parameter validation so it can be implemented
with any parameters but:
method open()
needs open method implementation with only one parameter and:
method open( file )
needs open method implementation with exactly one parameter 'file'
* contrib/hbwin/win_prn3.c
* ULONG -> HB_SIZE
! Fixed new warning in hb_tstrncat() (assigment in conditional).
I've now basically restored my original version taken from common lib.
* contrib/hbwin/mapi.c
* Formatting.
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesources.prg
+ Implemented line numbers in editing objects.
I used a very simplified way to achieve which
otherwise is implemented in altogether different ways
in Qt examples scattered over the net.
+ Thoughly reworked Edit engine. Please text.
TODO: Synchronize method definitions with declarations.
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyh
* harbour/src/compiler/harbour.yyc
! pacified compile time error when ... is used as parameter in _HB_MEMBRER
declaration. TODO: Remove or fix this strong typing grammar rules.
* harbour/src/debug/dbgtwin.prg
* harbour/src/debug/dbgtmenu.prg
* harbour/src/debug/tbrwtext.prg
* harbour/src/debug/debugger.prg
* harbour/src/debug/dbgtinp.prg
* harbour/src/rtl/tbcolumn.prg
* harbour/src/rtl/listbox.prg
* harbour/src/rtl/pushbtn.prg
* harbour/src/rtl/treport.prg
* harbour/src/rtl/radiogrp.prg
* harbour/src/rtl/tthreadx.prg
* harbour/src/rtl/checkbox.prg
* harbour/src/rtl/tsymbol.prg
* harbour/src/rtl/teditor.prg
* harbour/src/rtl/tmenuitm.prg
* harbour/src/rtl/tbrowse.prg
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/xhb/stream.prg
* harbour/contrib/xhb/trpccli.prg
* harbour/contrib/xhb/hblognet.prg
* harbour/contrib/xhb/tfile.prg
* harbour/contrib/xhb/tframe.prg
* harbour/contrib/xhb/htjlist.prg
* harbour/contrib/xhb/hblog.prg
* harbour/contrib/xhb/trpc.prg
* harbour/contrib/xhb/thtm.prg
* harbour/contrib/xhb/tcgi.prg
* harbour/contrib/xhb/ttable.prg
* harbour/contrib/xhb/txml.prg
* harbour/contrib/xhb/hjwindow.prg
* harbour/contrib/xhb/htmutil.prg
* harbour/contrib/hbodbc/todbc.prg
* harbour/contrib/hbfbird/tfirebrd.prg
* harbour/contrib/xpp/tthreadx.prg
* harbour/contrib/hbpgsql/tpostgre.prg
* harbour/contrib/hbgd/gdchart.prg
* harbour/contrib/hbgd/gdimage.prg
* harbour/contrib/hbgd/gdbar.prg
* harbour/contrib/hbgd/gdbarcod.prg
* harbour/contrib/hbmisc/twirler.prg
* harbour/contrib/hbtip/thtml.prg
* harbour/contrib/hbtip/cgi.prg
* harbour/contrib/hbtip/httpcli.prg
* harbour/contrib/hbtip/smtpcli.prg
* harbour/contrib/hbtip/client.prg
* harbour/contrib/hbtip/ftpcli.prg
* harbour/contrib/hbtip/mail.prg
* harbour/contrib/hbtip/popcli.prg
* harbour/contrib/hbwin/win_tprn.prg
* harbour/contrib/hbbtree/tbtree.prg
* harbour/utils/hbformat/hbformat.prg
! fixed class method declarations to be synced with method implementations
All of the above missdeclarations were detected by compilation with:
HB_USER_PRGFLAGS=-DHB_CLS_PARAMS_ERR
Few years ago in hbclass.ch I defined PP rules to force strict method
declarations but I had to disable them due to problems with old PP.
I defined HB_CLS_NO_PARAMS_ERR and left this note in hbclass.ch:
> I have to enable this definition by default until we will not fix
> preprocessor. [druzus]
Current PP code works correctly so we can remove it and activate this
code. Anyhow as above commit shows a lot of code has been created with
wrong declarations. I fixed Harbour core code (except HBQT, HBXBP and
GTWVG - I hope Pritpal or Viktor will fix it) but setting
HB_CLS_PARAMS_ERR as default will exploit a lot of similar problems in
user code so I would like the hear other developers' opinions about it.
* src/rtl/memoedit.prg
! Fixed to set K_ESC as lastkey() if exiting with changed
buffer and answering 'yes' to confirmation question.
Thanks Przemek for reporting it.
! Fixed to not save buffer if exiting with <Esc> and
SET SCOREBOARD OFF.
* src/rtl/tget.prg
% Minor optimization when displaying delim chars.
* contrib/hbwin/win_prn3.c
! Fixed function name in file header comment.
* harbour/src/rtl/achoice.prg
! fixed RTE reported by Robert Skowronek - thanks for the code example
! fixed not shown immediately newly added achoice items (see
Robert's example) - please verify this modification.
* harbour/src/vm/hashes.c
! fixed missing HB_STACK_TLS_PRELOAD - thanks to Xavi
* harbour/contrib/hbnetio/netiosrv.c
! fixed wrong declaration and casting of rpcFilter - thanks to Xavi
+ harbour/contrib/hbnetio/readme.txt
+ added small description of NETIO functions - now only client parts
* harbour/contrib/hbwin/win_tprn.prg
* updated class name in comments
* harbour/contrib/hbwin/win_prn1.c
* minor formatting
* harbour/contrib/hbwin/win_prn3.c
% removed unnecessary rest of buffer clearing in hb_tstrncat()
* src/rtl/tget.prg
! Fixed cursor positioning bug, when @S picture length is
higher than actual edit buffer length.
Thanks to Stupar for report.
[TOMERGE 2.0]
* contrib/hbnetio/utils/netiosrv.prg
* Minor.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
! Code cleanup.
! Started preparations for line nos dispaly commented out with
#if 0/#endif construct.
* contrib/hbqt/hbqt_hbslots.cpp
! Fixed to initialize the C to PRG calling block with correct
parameters number.
* src/rtl/Makefile
+ src/rtl/strclear.c
* include/hbextern.ch
+ Added HB_STRCLEAR() function to safely clear the content
of a string variable.
Notice that this method by itself can only work if the
string variable has no other references, and generally
you have to code carefully to avoid creating unwanted
copies of the string when passing it around in an app.
So this is no silver bullet, but rather just one component
to solve this problem.
* contrib/hbnetio/utils/netiosrv.prg
+ Added steps to avoid having the password stored in memory,
while the server is running.
* src/rtl/philes.c
% Minor cleanup.
* contrib/hbnetio/utils/netiosrv.prg
+ Internal change moving all server object related variables to
one array.
+ Added 'config' command.
* Changed exit command to quit to be in sync with other tools and hbrun.
+ Attempt to free password variable.
+ Showing 'unsafe' warning if RPC is enabled without filter module.
* include/hbsetup.ch
* Disabled HB_LEGACY_LEVEL2 by default.
* HB_LEGACY_OFF now controls HB_LEGACY_LEVEL3 (was HB_LEGACY_LEVEL2).
+ Added HB_LEGACY_LEVEL4
; SVN users notice: This may make your C code INCOMPATIBLE with
this version, please review required changes (documented in older
ChangeLog entries) and update your code. Look for HB_LEGACY_LEVEL2
and INCOMPATIBLE keywords.
* contrib/hbnetio/utils/netiosrv.prg
+ contrib/hbnetio/utils/modules.hbp
+ contrib/hbnetio/utils/modules
+ contrib/hbnetio/utils/modules/test.prg
+ Added simple command line to server.
+ Added list of possible feature as TODO. Most of these will
need backend support from hbnetio lib.
+ Added detailed help screen.
+ Added --version option support.
+ Added support for -rpc=file.hrb option. Although for some
reason (most likely my omission) it doesn't work yet.
+ -DHB_EXTERN will now enable inclusion of all core functions.
+ Added build file for .hrb modules.
+ Added little test module.
+ Added SETCANCEL( .F. ) to avoid irregular shutdown with Ctrl+C.
* src/rtl/memoedit.prg
! Deleted hack which explicitly set lastkey to CTRL_END/W
when exiting with changes saved. The comment said that
it was added to make DBU happy, but it doesn't seem to be
necessary anymore, at least I couldn't spot any problem
without it. Pls check it.
! Fixed MEMOEDIT() not recognizing K_ESC as exit key when
custom function is used.
This fixes DBU not recognizing K_ESC as a way to exit
memo editing. Please review, I'm not MEMOEDIT() user
and this was such an obvious omission that I wonder
if there was some real reason for it. Anyhow it was
wrong before.
* contrib/hbfimage/fi_wrp.c
* contrib/hbclipsm/num.c
* contrib/hbclipsm/numfloor.c
* contrib/hbclipsm/status.c
* contrib/hbclipsm/numceil.c
* Formatting.
* harbour/include/hbapi.h
* harbour/src/vm/hashes.c
+ added new function hb_hashGetCItemPtr() which accepts ASCIIZ string
as index.
* harbour/contrib/hbnetio/netiosrv.c
+ added support for using HASH arrays as RPC filter.
Such hash array should be indexed by function/procedure name set of
codeblocks or function references or even objects which understand
EVAL method.
Please remember that function names passed from client side are case
sensitive so if you do not need it then please disable case matching
in the hash array, i.e. using HB_HSETCASEMATCH( hValue, .F. ).
* renamed NETIO_RPCFUNC() to NETIO_RPCFILTER() it's better name now
because we added support for using hash arrays as RPC filters:
NETIO_RPCFILTER( <pConnectionSocket>,
<sFuncSym> | <hValue> | NIL ) -> NIL
* harbour/contrib/hbnetio/netiomt.prg
+ added support for setting RPC filter in NETIO_MTSERVER() using its
4-th parameter:
NETIO_MTSERVER( [<nPort>], [<cIfAddr>], [<cRootDir>],
[<lRPC> | <sFuncSym> | <hValue>],
[<cPasswd>], [<nCompressionLevel>], [<nStrategy>] )
-> <pListenSocket>
* harbour/contrib/hbclipsm/environ.c
! fixed GPF in FILEDRIVE() function on platforms which do not support
drive letters or when path does not contain drive.
% small optimization in FILEPATH(), FILEBASE(), FILEEXT(), FILEDRIVE()
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/qth/QTextCodec.qth
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtnetwork/*
+ Implemented Linguistic Translation Mechanism base call.
The next step is to feed translations into Qt's engine.
This means any string sent to QWidgets will be translated
through the language set with hbqt_SetCodecForTr( cCodec ).
The translated string is in the context of the widget it
is being applied to.
TODO: Feed the translations from outer source.
* contrib/hbbtree/hb_btree.c
* read-only flag is not hidden when a file is opened
* allow skip size to be optional
* raise error when inserting or deleting into a read-only file
! this does not apply to a created read-only file
* improved argument checks
* fixed TOFIX regarding portable binary format reading/writing
* fixed TOFIX regarding a suspicious sizeof of a constant
! TOFIX: in-memory btree's cause a fatal error; this is a work in progress
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
+ Implemented various actions on current editing window
honoring splitted windows indivisually, i.e., Find/Replace,
Goto, Function activated via Function List, etc., etc.
Though I have attempted resonable debugging but still
for sure I must have left undesirable, please report.
+ Thoroughly overhauled "Editor Tab" management, more elegant
and encapsulated.
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbfimage/fi_wrp.c
! Fixed to use hb_vmRequest*() in callbacks.
* contrib/hbfimage/fi_wrp.c
% Optimized FreeImageErrorHandler().
% FreeImageErrorHandler() made static.
* Formatting.
; Please test and review. I didn't test these modifications at all.