* src/rtl/achoice.prg
! Added patch by Jerry Finuliar to fine tune cursor
positioning behavior.
* contrib/hbmysql/mysql.c
+ Added MYSQL_REAL_ESCAPE_STRING() function.
! Fixed some types to be in sync with actual MYSQL implementation
(int -> unsigned int, int -> unsigned long)
in MYSQL_ESCAPE_STRING(), MYSQL_ESCAPE_STRING_FROM_FILE(),
MYSQL_FETCH_ROW() functions.
* utils/hbmk2/hbmk2.prg
+ Added comment on dbfnsx lib availability in xhb.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Started: basework for different kinds of block copy/paste/move/etc
operations. Nothing is final yet but hope it to be ready
within a day or two.
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/hbqt_errorsys.prg
+ Error trace copied to clipboard, requested by Massimo.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: persistent blocks and cut/copy/paste operations
across files and locations within the same file.
Persistance: block remains intact untill another block marking
operation is initiated. Any other editing actions can be carried
as normal outside of the block boundaries. One block per source is
permitted.
Keyboard Mappings can be redefined for
CTRL+ X.Cut C.Copy V.Paste Z.Undo Y.Redo A.SelectAll
Those macros will be honored in block cut/copy/paste actions as well.
* contrib/hbxbp/xbptabpage.prg
+ Started work to make context menu alive.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idethemes.prg
+ Implemented: almost all menu/toolbar actions to public API.
Probably this will allow the user to configure hbIDE to
the behavior he is used to.
+ Implemented: close button on the right-hand corner of editing tabs.
Clicking it closes the current editing instance in focus.
+ Added: more Harbour keywords to color engine, OR, AND, SELF.
! Included: some more options in the main menu which were
available on toolbars only.
! Cleaned some redundant code.
* contrib/hbide/idemisc.prg
! Finally added existance check for .uic files to avoid the
unending flow of strange error reports (RTE/GPF) (and subsequente
random guessing) about problems caused by these missing files.
Now HBIDE will show a clear message and quit instantly in this
case.
* contrib/hbmysql/mysql.ch
* contrib/hbmysql/tmysql.prg
* Synced type constant names with MYSQL.
Kept old names for compatibility, guarded with HB_LEGACY_LEVEL3.
* contrib/hbmysql/tmysql.prg
% Minor optimizations.
! TMySQLRow:MakePrimaryKeyWhere() and TMySQLTable:MakePrimaryKeyWhere()
fixed to not create wrong SQL expression when no primary key
is present.
; TOFIX: Handle this case properly in callers of these methods.
* contrib/hbxbp/xbptoolbar.prg
! Issued: setWindowaTitle() for main menubar.
+ contrib/hbide/resources/keyboardmappings.png
+ Icon for "keyboard Mappings" menu option.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: almost all the docks can be placed on any of the areas.
Exception is "Output Console" which is only dockable to top or bottom.
+ Main toolbar and statusbar featured to toggle. Statusbar, however is
session dependant, i.e., is not saved for next run.
! Many artifacts fixed for Search/Replace engine, all the three variants.
! "Exppression" edit fixed to respect "Enter" key press to start searching.
! More artifacts I must be forgetting.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
% Fixed to honor right-to-left selection.
Now text can be selected in either directions with
keyboard and mouse, both.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
+ Implemented: horizontally scrolled text to be copied.
So now it is identical to xMate in all respects plus
selection through mouse as properitory to hbIDE.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideeditor.prg
+ Implemented: much-awaited and extremely-required feature - block copy/paste.
This implementation closely follows xMate's footsteps and is highly optimized,
having maximum tasks carried through .prg code. Probably this opens up
hbIDE to wider audience. This has been the most difficult feature so far,
and has consumed an entire week with intensive schedule.
Here is how it should be used:
Activation:
Clicking on the "Toggle Selection Mode" top-toolbar icon.
It must appear depressed after activation.
Selection Process:
Keyboard : Shift + Navigation Keys ( Left, Right, Up, down, PgUp, PgDn, Home, End ).
Mouse : Mouse-move while left-button pressed ( Only available for visible text ).
Copy : Ctrl+C ( text is also available on the clip-board )
Paste : Ctrl+V ( text only copied through Ctrl+C while in "Column Selection" mode ).
Inserts : Position cursor at first line and column,
Press Shift+Down arraow upto some ending row,
A thin-vertical-line should appear follwoing your cursor path,
Start typing any characters,
Any other navigation key will end this sesion,
Backspace key can be used to deleted previous characters.
If block is already selected, visible through color differentiation,
typing any charcter(s) will merely fill the selection with it,
Deletes : Select the text with Shift+Navigation Keys,
Press "Del".
It is highly possible that some of the artifacts may have gone not exactly like
xMate, so please report back. Also note that selections left-to-right are known
for accuracy, right-to-left may not produce accurate results. Other thing to
note is that horizontal scrolling has not been possible, so if your text goes
beyond right-edge of the window and you have a need to copy it, then first zoom-in
to brought it into viewport, then start selection process. Vertical length does
not matter. However with mouse you can only select a window-full of text.
xMate does not support column-selection with mouse.
* config/darwin/libs.mk
! Fixed to include MacPorts and Fink lib paths only if
they exist. This fixes potential warnings with latest
release of clang.
* config/linux/libs.mk
! Minor in comment.
* src/rtl/achoice.prg
! Added patch by Jerry Finuliar to refix dbu menu hang.
* harbour/src/rtl/hbznet.c
! fixed stupid typo which caused that hb_znetFlush() in encrypted
buffers never returned 0 (the returned value was increased by 4)
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/readme.txt
+ added support for communication streams/channels which allow to
send asynchronously data from server to client.
The following client side functions had been added:
NETIO_OPENDATASTREAM( <cStreamFuncName> [, <params,...>] )
-> <nStreamID>
NETIO_OPENITEMSTREAM( <cStreamFuncName> [, <params,...>] )
-> <nStreamID>
NETIO_CLOSESTREAM( <nStreamID>, [<cServer>], [<nPort>] )
-> <lOK>
NETIO_GETDATA( <nStreamID>, [<cServer>], [<nPort>] )
-> <aData> | <cData> | NIL
The following server side functions had been added:
NETIO_SRVSTATUS( <pConnectionSocket> [, <nStreamID>] )
-> <nStatus>
NETIO_SRVSENDITEM( <pConnectionSocket>, <nStreamID>, <xData> )
-> <lSent>
NETIO_SRVSENDDATA( <pConnectionSocket>, <nStreamID>, <cData> )
-> <lSent>
+ added RT errors to the netio client code. They should help to early
detect any communication problems
! disabled hb_socketSetNoDelay() in client and server code.
I enabled it for some local tests and by mistake committed to SVN
and I didn't noticed it. It could cause serious problems in some cases
i.e. with slow WiFi or WAN connections.
Warning: server signature changed due to extensions in protocol.
both client and server side has to be updated and use
current SVN code.
+ harbour/contrib/hbnetio/tests/netiot03.prg
+ added demonstration/test code for alternative RDD IO API, RPC and
asynchronous data streams in HBNETIO
* contrib/hbxbp/xbplistbox.prg
% Fixed a nasty bug.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/hbqt_hbslots.cpp
+ Implemented: horizontal ruler in the editor instances at the top
of the window. Opinions are welcome about its base and tab colors.
* harbour/src/vm/strapi.c
* harbour/include/hbapistr.h
+ added new C function hb_wstrnlen()
* harbour/include/hbdefs.h
* harbour/src/common/hbwin.c
! fixed possible buffer overflows in hb_mb*() and hb_wc*() functions
* removed danger hb_mb*() and hb_wc*() functions which were wrongly
used in core code and corresponding HB_TCHAR_*() macros
+ added hb_mbntowccpy() function and HB_TCHAR_COPYTO() macro
it always sets trailing 0 after passed buffer just like hb_strncpy()
+ added hb_wcntombcpy() function and HB_TCHAR_COPYFROM() macro
it always sets trailing 0 after passed buffer just like hb_strncpy()
* harbour/src/rtl/gtclip.c
! fixed wrongly calculated size of string extracted from clipboard
(when unicode string was in clipboard then number of unicode characters
were used instead of number of multibyte ones)
! added protection against possible memory corruption if some external
process sets clipboard text without trailing 0
* changed hb_gt_winapi_[sg]etClipboard() functions parameters to use
PHB_ITEM as buffer
Question to windows users: different Win GTs use different encoding
for the clipboard buffer. Maybe you want to normalize it?
* harbour/src/vm/cmdarg.c
* harbour/src/vm/extrap.c
* harbour/src/common/hbgete.c
* harbour/src/common/hbffind.c
* harbour/src/common/hbtrace.c
* harbour/src/rtl/gtwin/gtwin.c
* harbour/src/rtl/fstemp.c
* harbour/src/rtl/filesys.c
* harbour/src/rtl/gtgui/gtgui.c
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/include/hbgtcore.h
* harbour/include/hbapistr.h
* harbour/include/hbwmain.c
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvggui.c
* harbour/contrib/gtwvg/wvgcuig.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgwing.c
* harbour/examples/gtwvw/gtwvw.c
! fixed possible buffer overflows and GPF traps due to wrongly used
HB_TCHAR_*() macros and/or corresponding hb_mb*()/hb_wc*() functions
Seems that some problems were potentially exploited even in non UNICODE
builds.
* src/common/hbver.c
+ Now able to distinguish between XP x64 and Server 2003.
+ Now able to distinguish between Server 2003 and Server 2003 R2
(borrowed from Peter Rees/xhb, with typo fixed)
(please test on these platforms)
* ChangeLog
+ Marked some changes as [DONE].
* contrib/hbwin/win_osc.c
+ Added WIN_OSISWINXPORLATER(). Following Peter Rees in xhb.
* contrib/xhb/Makefile
+ contrib/xhb/xwin_reg.c
+ contrib/xhb/xwin_ver.c
* contrib/hbwin/Makefile
- contrib/hbwin/legacycr.c
- contrib/hbwin/legacycv.c
! Moved these legacy Windows functions to xhb lib from hbwin
lib. This way we don't have to delete them after next
release, plus they provide better compatibility as they are
now also present in non-win builds (returning dummy values),
just like in xhb.
+ Added OS_ISWINXP_OR_LATER() function.
* contrib/xhb/hbxml.c
! REVERTED: 2010-04-05 11:04 UTC+0200
This means that these heavy leaks are again present
in this xhb ported code, but at least it won't GPF.
* contrib/xhb/tests/xml1.prg
! Minor to prev.
+ contrib/xhb/tests/xml1.prg
+ contrib/xhb/tests/test.xml
+ Added xml test code posted to list by "Ivan re".
(after fix and formatting)
; TOFIX: This sample crashes with mingw.
* src/rtl/Makefile
* src/rtl/getsys.prg
+ src/rtl/getsyshb.prg
! Moved HB_GETREADVAR() to separate source file.
! HB_GETREADVAR() fixed to use HB_ASCIIUPPER() like
TGETLIST():GETREADVAR() instead of UPPER().
* src/rtl/tgetlist.prg
% TGETLIST():GETREADVAR() now can use HB_GETREADVAR()
instead of duplicating the code locally.
* INSTALL
+ Added sort of "disclaimer" note to HB_BUILD_IMPLIB option.
* include/hbextern.ch
+ Added missing TBREADER().
* contrib/hbxbp/xbplistbox.prg
+ setItemColorFG( nIndex, aRGB )
* contrib/hbide/ideeditor.prg
+ Implemented: current function the cursor is navigating
highlighted in the Functions List.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideharbourhelp.prg
+ All docks are made to be opened in the same state these
were left at the last run.
TESTED: on multi-monitor every artifact is behaving as expected.
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
+ Left and right Toolbars made floatable, movable and dockable.
Now these can be placed anywhere user wants.
% View menubar option is placed next to Edit.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/environ.ui
* contrib/hbide/resources/environ.uic
+ started: dialog to capture build environment settings for different
language compilers on line with xMate. Dialog can be seen via
Menubar->Projects->Environments. Please note that this menu option
is subject to change in future. It is just for bird's eyeview.
* harbour/src/common/hbtrace.c
! fixed potential GPF/memory corruption due to direct passing formatted
string as format to syslog() function. Please remember to never create
code like 'printf( str );' if str can contain printf escape characters
because it may cause any unpredictable results. Always use
'printf( "%s", str);' in such context.
BTW It's one of the most common bug used by hackers in buffer/stack
overflow attacks, i.e. using str with %n conversion specifier.
% eliminated unnecessary buffer conversion in *nix builds
* contrib/hbxbp/xbp.ch
* contrib/hbxbp/xbpdataref.prg
* contrib/hbxbp/xbplistbox.prg
! Reworked XbpListBox(). Now it implements most of the
methods per Xbase++ documentation.
* contrib/hbxbp/tests/demoxbp.prg
! Implementation of multiple-selections list box.
* contrib/hbxbp/xbpsle.prg
! Small fix.
* contrib/hbxbp/xbpmle.prg
+ Implemented almost all Xbase++ methods and slots. Untested.
Can someone provide a XbpMLE() usage code which exploits its
maximum methods ?
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Fix to handle space key when code completion popup is visible.
* contrib/hbide/ideeditor.prg
! Corresponding fix to above one.
* contrib/hbide/idethemes.prg
+ Added more Harbour keywords to be distinguished in color.
* contrib/hbxbp/xbp3state.prg
* contrib/hbxbp/xbpappevent.prg
* contrib/hbxbp/xbpbitmap.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpdataref.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbphtmlviewer.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpmle.prg
* contrib/hbxbp/xbppushbutton.prg
* contrib/hbxbp/xbpradiobutton.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbpspinbutton.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptoolbar.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpwindow.prg
! Reworked callbacl Slots/Methods which are now INHERITable in
the sub-classes derived from Xbp Part.
! Slots ae now recognized through the slot identifier string.
! Deleted redundant parts and made code more cleaner and uniform in
method calling conventions.
This is first round of reforms, more will follow.
* src/rtl/achoice.prg
! REVERTED: Fixed typo in ACHOICE() K_UP handling, which caused a
bogus line to appear below the bottom when the height of the
achoice area was only one line. Pls verify me for regressions.
[ It did cause regression. So now the original bug is present
again. ]
TOFIX: ---
#include "inkey.ch"
CLS
hb_keyPut( K_DOWN )
hb_keyPut( K_UP ) /* bogus '2' appears out of the area here. */
AChoice( 0, 0, 0, 0, { "1", "2" } )
---
+ examples/ps32
+ examples/ps32/ps32.hbp
+ examples/ps32/ps32.hbc
+ examples/ps32/ps32.dif
+ examples/ps32/readme.txt
+ examples/ps32/tests
+ examples/ps32/tests/hbmk.hbm
+ Added necessary files to use PageScript32 with Harbour.
(it's a payware product, so if anyone has any slight
aversion to this, or the small .dif poses even the
slightest chance of copyright issue, pls tell and I'll
delete the whole stuff.)
BTW, ideally someone should post this patch to the
authors of the library, after all it's their interest
to make it work with Harbour. The patch is very simple.
* contrib/hbide/idemisc.prg
! Fixed to store original filename without case convertion inside .hbp.
It fixes issue on linux if source file name contains mix case.
* utils/hbmk2/hbmk2.prg
! Fixed path normalization to return '.' in case a
non-empty path becomes an empty one after normalization.
* Added extra protection to avoid '-I' option with empty
parameter.