* INSTALL
* Two minor cleanups
* config/postinst.prg
+ Will now honor HB_CONTRIBLIBS and HB_CONTRIB_ADDONS
when creating import libraries. IOW it will only create
implibs to the contribs actually built.
* utils/hbmk2/hbmk2.prg
+ Added trick when using real xhb toolchain to detect
-tW C flag and in this case automatically select the ST
C RTL library. (Notice that -tW will only be detected
when passed normally via cmdline or script, and not
when using legacy HB_BUILD_CFLAGS envvar or inherited
compiler flags).
+ contrib/gtalleg/gtalleg.hbi
+ contrib/hbblat/hbblat.hbi
+ contrib/hbcairo/hbcairo.hbi
+ contrib/hbcurl/hbcurl.hbi
+ contrib/hbfbird/hbfbird.hbi
+ contrib/hbfimage/hbfimage.hbi
+ contrib/hbgd/hbgd.hbi
+ contrib/hbhpdf/hbhpdf.hbi
+ contrib/hbmysql/hbmysql.hbi
+ contrib/hbpgsql/hbpgsql.hbi
+ contrib/hbssl/hbssl.hbi
+ contrib/rddads/rddads.hbi
+ contrib/sddfb/sddfb.hbi
+ contrib/sddmy/sddmy.hbi
+ contrib/sddoci/sddoci.hbi
+ contrib/sddpg/sddpg.hbi
+ Added local import library generation hbmk2 make files
to each contrib which requires it.
* config/postinst.prg
+ Changed to use contrib local implib creation hbmk2 scripts to
create import libraries.
- Deleted mingw exception for ocilib to use the static library.
Static lib is definitely better, but if someone would like to
use it, it should be done locally/manually, just like for any
other dependency.
+ Solved firebird implib creation hack/exception in contrib
local .hbi file.
; These fix the last "centralization" issues in Harbour make system.
Still remains documentation problem (everything is in INSTALL),
and *nix .deb/.rpm centralized solution for contrib dependencies
and contrib names in general.
* utils/hbmk2/hbmk2.prg
+ Combining multiple -o options (one with name, one with directory)
is now supported in -hbimplib mode. This makes it work like in
other existing modes.
! Fixes regarding -o option combining and dir inheritance.
(beware of regressions here)
* contrib/gtalleg/gtalleg.hbc
* Changed to use import library on Windows with an unmodified name
(containing version).
* src/rtl/hbcom.c
! Fixed one non-ANSI comment.
* ChangeLog
+ Added two changes missed from prev entry:
* utils/hbmk2/hbmk2.prg
+ In -hbimplib mode any options are automatically passed to
import library creation command (so -iflag option is not
absultely needed)
- Deleted -mkimplibms option now replaces by generic -iflag
solution.
! Stripped UTF-8 char from a recent entry.
* harbour/contrib/hbnetio/netiosrv.c
! fixed yet another typo located by Aleksander Czajczyki which
caused internal error (hb_xfree() with NULL pointer)
* harbour/contrib/hbnetio/netiosrv.c
! fixed typo in NETIO_SRVSTATUS() - -2 was always returned
(modification committed by mistake in my previous commit)
! fixed to return .F. by NETIO_SRVSEND{DATA,IETM}() if hb_znetFlush()
reports error.
Many thanks for Aleksander Czajczyński for information about problems
and his extensive tests.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
- Deleted 'experimental' flags from all features.
* Finalized import lib creation feature in hbmk2.
+ Added -hbimplib mode switch (this replaces -mkimplib= option)
+ Input source files (.dlls) now should be passed to
hbmk2 as simple source filenames (without option prefix).
+ Multiple input source files are now supported.
+ Added -iflag= option to pass flags to import library creation
command directly.
* Changed so that target import library name/dir can now be
specified using -o option (like in other modes).
+ Filenames/dirs are now all normalized.
+ Some warnings are now only shown in -info mode.
; F.e.:
'hbmk2 -hbimplib mydll1 mydll2 -omydir -iflag={bcc}-a'
This also means that a simple .hbp file can be created
to solve the import library needs for a given dependency.
* config/postinst.prg
* Adapted to use new import library creation hbmk2 commands.
* src/rtl/hbcom.c
! Fixed minor typo.
* contrib/hbide/plugins/savebackup.hrb
* contrib/hbide/plugins/savebackup.prg
! Fine tuned to receive correct number of parameters.
* 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
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
+ Added Icon: Toggle current Line Highlight in "Lines" toolbar.
Public API method is ::toggleCurrentLineHilight().
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
! Reverted: line edits font - monospace to GUI.
* contrib/hbide/ideobject.prg
* contrib/hbide/ideplugins.prg
! tuned to send oIDE and cVer as first and second
argument to {plugin}_init( oIde, cVer ).
* contrib/hbide/ideprojmanager.prg
! Reverted: line edits font - monospace to GUI.
* contrib/hbide/ideshortcuts.prg
+ Public Method - ::toggleCurrentLineHilight().
Toggles displaying current line in distinct color.
* contrib/hbide/idethemes.prg
+ Activated: Selection Background slot.
It facilitates to control the color of selections per theme basis.
+ Prepared to toggle matching braces mode - both vs single.
"Setup" dialog will contain its place holder.
% Fixed many other artifacts coming into way, and possibly
might have broken a few ones, please report.
* harbour/external/minizip/ioapi.h
! fixed FreeBSD and HAIKU builds
* harbour/src/rtl/fserr.c
* added translation for EPERM
* harbour/include/Makefile
+ harbour/include/hbapicom.h
* harbour/src/rtl/Makefile
+ harbour/src/rtl/hbcom.c
+ added Harbour multiplatform serial port C API (hb_com*() functions).
implemented code for *nixes, MS-Windows and OS2. DOS is not supported
yet. Please make test on different platforms.
; few notes about this code:
termios (*nix) based builds:
- reading LSR is not supported
- duration in break signal is fixed (at least 0.25 seconds, and not
more that 0.5 seconds)
- DTR/DSR hardware flow control is not supported
- setting error character is not supported
- discard card is supported only on few platforms
- checking input/output flow state is not supported
- if some platforms do not support some termio extensions then
compile time warnings TODO_* should be generated.
MS-Windows builds:
- discard card is not supported
OS2 builds:
- checking for input flow state is not supported
- discard card is not supported
In all builds not all RS-232 hardware flags/state are available.
OS2 build supports most of them,
This code needs to be extensively tested. I wrote it without any
serious tests. Especially OS2 builds should be verified by OS2
users. I wrote this port using only documentation which OS2 API
available in the Internet.
DOS is not supported yet though it's possible to compile termio code
for *nixes with DJGPP. Anyhow it would be very nice if we can add
our own DOS serial port code. I would like to ask if any of you
has low level serial port code in C for DOS (i.e. used with Clipper)
and can send it to us so we can use it with Harbour. I have my
own serial port library for Clipper but it's written in assembler
and it's much wider then sth what we need so it cannot be easy
adopted for Harbour.
* harbour/contrib/hbct/Makefile
+ harbour/contrib/hbct/ctcom1.c
+ harbour/contrib/hbct/ctcom.ch
+ harbour/contrib/hbct/ctcom2.c
+ added CT3 compatible COM_*() functions.
+ added CT3 compatible XMOBLOCK(), XMOCHECK(), ZEROINSERT() and
ZEROREMOVE() functions.
+ added new CT COM function:
COM_DEVNAME( <nComPort> [, <cNewName> ] ) -> <cPrevName>
which can be used to specify device name for given port in modern
systems which do not give direct hardware access for the process.
; few notes about CT3 COM_*() functions in Harbour.
In COM_OPEN() only 1-st parameter is significant, input/output buffer
sizes and trap mode parameters are ignored. In modern OS-es such
functionality is controlled by OS and usually buffered read/write
is always enabled. The sizes of IO buffers can be used only as
suggested IO buffer size for OS in some systems. It's possible that
these additional parameters will be used in DOS builds in the future.
COM_READ() does not support 2-nd parameter <lNoDelete>. It can be
implemented but because we do not have direct access to OS buffers
then we will have to emulate it ourselves what is rather inefficient.
Anyhow I can implement it if users think it's critical.
In COM_CRC() I fixed few CT3 bugs so it's not bug compatible with CT3,
i.e. it works correctly for 8 bit and smaller polynomials instead of
returning 0 or supports much larger polynomials up to 64bits.
For 16/17 bit polynomials it gives the same results as CT3 so for most
common usage it should be binary compatible with CT3.
In ZEROREMOVE() I fixed decoding some wrong CCITT strings which does
not have trailing 0 so it returns empty string "" for such corrupted
data. If someone needs original CT3 behavior for some broken code then
is can be enabled by HB_CT3_ZEROREMOVE_BUG macro.
I haven't implemented few functions.
COM_GETIO(), COM_SETIO(), COM_GETIRQ(), COM_SETIRQ() are not portable
and can be implemented only for really few platforms, i.e. for DOS
when/if we add support for serial ports to Harbour DOS builds.
Similar functionality for all other platforms gives our new function
COM_DEVNAME().
COM_KEY(), COM_SKEY() and COM_EVENT() are also not implemented.
To make them well we should add support for asynchronous events to HVM
and such extension is still unavailable. Some simulation can be
implemented using idle tasks but this can be done also by final
Harbour users so I decided to not make it.
Please test it - I've never used CT3 COM_*() API with Clipper.
* harbour/contrib/hbct/dummy.c
* removed dummy CT3 serial communication functions
; such files with dummy functions introduces very serious problems for
user code because they do not respect original module granularity
effectively breaking overloading only chosen functions so it breaks
also some real Clipper code.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
% Optimized: selections display with proprietory color.
Now it oply operates within viewport() coordinates.
% Changed: the behavior of matching brace. Now only corresponding
brace is highlighted instead of both. This is exactly like
xMate. Please note that highlighting both braces create
confusion and at time I am lost.
* contrib/hbide/hbide.prg
* contrib/hbide/ideplugins.prg
% Changed: plugins are loaded on first call instead of
loading all plugins at startup. Now the overhead is negligible.
+ contrib/hbide/plugins
+ contrib/hbide/plugins/savebackup.hrb
+ contrib/hbide/plugins/savebackup.prg
+ Source and corresponding .hrb ( -gh ) plugin.
In practice .prg is never required for this purpose.
The source accompanying here is for demonstration purposes
which exposes elements to comprehend.
+ contrib/hbide/resources/selectionline.png
+ Image to be activated when "Line" selection mode is on.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.hbp
+ Added ideplugin.prg
* contrib/hbide/idethemes.prg
+ Added more keywords for syntax-highlighting.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ contrib/hbide/ideplugins.prg
+ Priliminary commit to handle plugins.
* contrib/hbide/ideshortcuts.prg
+ Implemented: a very simple yet powerful interface to hook plugins.
The idea got polished with Francesco Perillo's description of the thought.
Creating a hbIDE plugin
=======================
A .hrb ( compiled with -gh as the minimum ), i.e., savebackup.prg,
having two mandatory functions:
1. hrb_file_name_without_extension_plus_underscrore_plus_INIT()
savebackup_INIT( ... ) -> TRUE/FALSE
2. hrb_file_name_without_extension_plus_underscrore_plus_EXEC()
savebackup_EXEC( oIde, ... ) -> xValue
savebackup_INIT() will be used to establish hand-shake and it must
return a logical indicating success or failure. Currently it is
called with "1.0" as version no but is scheduled to be enhanced
in future.
If hand-shake is successful, means, savebackup_INIT( ... ) returns
with TRUE, savebackup_EXEC( oIde, ... ) is called as per user
request. oIDE is sent as the first argument followed by user supplied
arguments. Within this function in .hrb, all action takes place.
User can write n number of functions withing the same source but
all other functions will always be STATIC ones.
The whole hbIDE object is passed with each execution and hence
user is having utmost control over what he wants to accomplish.
Location of the Plugin
======================
All plugins ( .hrb ) must reside within "plugins" sub-folder from hbIDE.exe
location. The location is determined with return value of
hb_dirBase() + hb_osPathSeparator() + "plugins" + hb_osPathSeparator().
Loading Plugins
===============
At startup hbIDE looks into "plugins" folder for all .hrb files.
It then tries to establish hand-shake with them. If successful, a
handle is retained in static array. When an execution request is
encountered, this static array is searched for and
savebackup_EXEC( oIDE, ... ) is called and return value is passed
back to the caller macro.
Executing Plugins in hbIDE
==========================
A public method ::execPlugin( cPlugin, ... ) is implemented under
"Keyboard Mappings". ::execPlugin is called with plugin name, which
essentially is the .hrb file name. So in demo example, it is
"savebackup". Final expression would be like :
::execPlugin( "savebackup", "saveas" )
Here "saveas" is the identifier which is used in this demo to invoke
STATIC FUNCTION savebackup_saveAs( oIde )
Author of plugin has to decide how and what he would like to pass
what and in how many. So simply build a macro to call a plugin
with parameters, that's it.
I am hopeful that you, brilliant programmers, with help extending hbIDE
to an amazing levels. Send your critics to the list to enrich this thought.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Added more public methods and default macros.
* contrib/hbide/idethemes.prg
+ Implemented: persistent blocks per all three modes; stream, column and line.
This follows xMate footsteps but enhanced to suit any scenarion. By xMate
footsteps, I mean, blocks are streamed to clipboard when cut/copied/pasted
as per the standard rules. Enhancement describes that blocks cut/copied
as such are subject to be pasted in the same format as are copied. Last
cut/copy operation is pasted and if clipboard contain data which matches
last cut/copy action within from hbIDE, its format is used to paste; but
if it is alien text then "stream" is applied by default.
Block remain persistent until another selection action is not initiated or
is explicitly cleared with Sh+F11. There is no need to use any other key
to make it persistent.
Cut/copy operation can be carried on any time after block is visible.
This effectively empowers hbIDE for a variety of applications. One
block per source can remain active for entire duration of that instance.
Just click on required instance and activate copy operation. Go anywhere
on another instance and carry a paste operation. Thus blocks are movable
across instances and are also available for external clipboard operations.
All supported actions on blocks are now fully functional for all three flavours.
You will really like "Indents" action on column selections. Now more actions
can be defined for blocks, so please submit your requests supported with
use-case.
In the coming days on-line documentation to explore this feature will be
posted at http://hbide.vouch.info, stay tuned.
Please forward your suggessions or bug reports. It was such a complex logic
that for sure I found it extremely difficult to carry all debug operations,
so your input will be of immense value.
* INSTALL
+ Added Ubuntu 10.4 as tested version.
* include/common.ch
+ Added HB_HMERGE_* constant for HB_HMERGE() function.
* package/winuni/mpkg_win_uni_extra_copy.bat
* Commented line not necessary for official mingw build.
* contrib/hbsqlit3/tests/hooks.prg
* contrib/hbsqlit3/tests/authoriz.prg
* contrib/hbsqlit3/tests/backup.prg
+ Added missing '()'s from :__enum* accesses.
* config/win/mingw.mk
! Fixed after last minute change breaking it when HB_COMPILER_VER
is not set.
* examples/httpsrv/uhttpd.prg
% Replaced 'var:__enumValue()' with 'var' in FOR EACH loops.
* utils/hbmk2/hbmk2.prg
+ Extended -mkimplib option for windows gcc compilers (mingw/cygwin)
to first look for matching COFF .lib file and use it to create
import library. If such is not found, try to use matching .def
file and automatically generate import library using dlltool.
If none if these were found, use the .dll directly, to create
the import library. In case of Harbour, this method resolves
almost all mingw implib needs.
See longer note in source (in function win_implib_command_gcc())
about the details of the problem, the only thing I cannot see
is why mingw/cygwin developers insist on not fixing this issue
since ten year, while all other compilers can properly resolve
this problem. Anyhow until then mingw cannot use .dll using
stdcall calling convention without COFF .lib or .def file. If
both are missing, the only solution is to manually build a
.def file by first generating it from .dll then manually
adding '@nn' decoration according to function prototypes.
Thanks mingw.
* config/postinst.prg
- Deleted APOLLO implib generation. Apollo fall into the
problematic category for mingw, because developers chose
to use stdcall callconv and they forgot to provide
implib or .def file. It's not part of core anyway.
* Slightly changed mysql implib generation to also work
for mingw.
- Deleted no more necessary manuall hack for mysql implib
generation.
+ Added manual hack for firebird implib generation. In
this hbmk2 automatism cannot work as they distribute
COFF .lib in another directory and using a different
name than the .dll.
* include/hbsetup.h
+ Added detection for HB_OS_IPHONE. Name tentative,
completely experimental.
+ Minor addition to ARM CPU detection.
* src/common/hbprintf.c
! Config modfl() accordingly when HB_OS_IPHONE is detected.
* INSTALL
- Deleted 'rarely updated' from official mingw comment.
- Deleted equation mingw edition.
* QT 4.5.x is not recommended over 4.6.x anymore.
+ Added link for QT 4.6.x.
+ Added more details to mingw version with DWARF support.
(required for QT 4.6.x)
* config/win/mingw.mk
+ Added more comment on newly added linker options.
! Fixed to only enable newly added linker options for
4.5.x and above. (tdm 4.4.x doesn't support them)
* package/winuni/RELNOTES
* Updated according to local tool changes.
(mingw 4.5.0 was released by official mingw project)
* config/win/mingw.mk
+ Enabled nxcompat and dynamicbase for mingw/mingw64
4.4 and upper. Note, the version isn't autodetected,
so it should be passed manually using HB_COMPILER_VER,
f.e.: HB_COMPILER_VER=45.
* config/global.mk
+ mingw64 will now default HB_COMPILER_VER to '44'.
* config/win/msvc.mk
* Added comment.
* config/win/mingw.mk
+ Enabled --nxcompat and --dynamicbase options for mingw64
targets.
* utils/hbmk2/hbmk2.prg
* Changed -mkimplib usage as follow:
-mkimplib=some.dll [implib_name_or_dir]
It's incompatible with previous one, but allows for simpler,
short calls.
! Fix to path normalizer to also append a pathsep to "." when
the resulting directory is an empty one.
* Minor internal change (cCCEXT moved to hbmk structure)
* config/postinst.prg
% Changed to use new -mkimplib parameter format.
(untested)
* harbour/src/rtl/Makefile
* harbour/src/rtl/hbznet.c
+ harbour/src/rtl/hbinetz.c
* moved HB_INETCOMPRESS() function to separate file
* harbour/include/hbexprb.c
! fixed my very bad C&P typo (2010-02-04 19:14 UTC+0100) which caused
that dummy value was left on HVM stack after post decrementation used
as statement. This dummy value could break construciton like FOR EACH,
WITH OBJECT, BEGIN SEQUENCE. Here is self contain example which can
be used to exploit the problem:
proc main()
begin sequence
p()
end sequence
return
proc p()
local nTemp := 0
begin sequence
nTemp--
end sequence
return
Many thanks to Heinz Bergen who reduced his code to similar small
example.
* contrib/hbqt/THbQtUI.prg
+ Added functionality for "WhatsThis" feature of Qt.
- contrib/hbide/resources/projectproperties.ui
- contrib/hbide/resources/projectproperties.uic
- Deleted: no longer required dialog.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/resources/shortcuts.ui
* contrib/hbide/resources/shortcuts.uic
% Shifted: tooltips to WhatsThis slot. Shift+F1 key is the
universal key to activate it. Alternatively "?" icon appears
on the left of "X" button in titlebat; press it and move over
the dialog; where "WhatsThis" will be defined, cursor will
change its shape and click there, tooltip like popup will open.
* 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
* contrib/hbide/hbide.hbp
+ contrib/hbide/ideedit.prg
+ Added: new source file which contains code to handle
editing window at the micro level. It was going unmanageable
in single file due to heavy changed needed for future.
* contrib/hbide/ideeditor.prg
- IdeEdit() class moved to ideedit.prg.
+ Implemented: base protocol to keep all the three variants of
selections, viz., stream, column and line, persistant. It is a
work in progress and may be some features of "cut" may not be
working as expected yet.
Please play with it a little and tell me about the artifacts
it must respect to.
* harbour/src/rtl/hbsocket.c
! enabled domain and protocol constant values translation in
SunOS builds
* harbour/src/rtl/hbznet.c
! fixed to return error on some wrong input data for which ZLIB
permanently returns Z_STREAM_END - thanks to Aleksander Czajczynski
for the information and self contain example.
* utils/hbmk2/hbmk2.prg
+ Refining cygwin autodetection by additionally
looking for gcc.exe next to cygstart.exe.
+ -o option will now accept macros, filters and will inherit
parent path even in -gh and other Harbour-only modes.
* src/common/hbgete.c
! Fixed hb_setenv() to not crash on NULL szName parameter.
! Fixed hb_setenv() to handle NULL szValue parameter on
win platforms.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/hbide.ch
* contrib/hbide/ideenviron.prg
* contrib/hbide/ideprojmanager.prg
+ Added: checkboxes to <Project Properties Dialog><Tab: General>
to distinguish projects belonging to specific compiler.
Current implementation passes "-xhb" switch to "hbMK2"
if "Xharbour" checkbox is checked. Other two options
will be used in future.
+ Implemented: {hbmk2} slot in hbide.env to fetch switches
which necessarily have to be supplied to hbMK2 on the
command-line only. A typical entry may look like this:
[ BCC55 xHarbour ]
{hbmk2}-ignore
{content} set HB_INC_INSTALL=C:\xharbour\include
{content} set HB_WITH_ADS=c:\dev\c5
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
* 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
! Removed: close button on "Stats" panel.
+ Implemented: line selection mode. Designated key is F11.
It is still a work in progress but a working prototype is there and
currently selection is available and paste behaves the standard way.
Mindagaus, please explore as the artifacts are OK.
* config/os2/gcc.mk
* utils/hbmk2/hbmk2.prg
- Deleted resource support from os2/gcc and os2/gccomf.
It didn't work with any gcc flavours. Resource support
seems to be broken in gcc tools.
* harbour/src/compiler/gencc.c
! fixed possible HVM stack corruption by dummy (alias->field) code
which does not store the result. The problem was exploited by
code generated for -gc3 mode only. Here is self contain example:
proc main()
begin sequence with {||break()}
p()
end sequence
proc p()
(test->name)
(test->name)
return
* 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.