* 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.
* contrib/hbcups/hbcups.c
* contrib/hbcups/tests/test.prg
+ CUPSPRINTFILE(): Added support for addition 'options'
parameter. It can be an array of option strings or
a hash table with option name/value pairs.
* contrib/hbmysql/readme.txt
! More or less updated this text.
Notice have a common rules to build _all_ contribs
and _all_ accompanying test/util apps since at least
6-12 months, so most of it was not needed anymore.
It'd be interesting to make interviews with those
users who still cannot figure how to link apps, since
I'm out of ideas how it can be still blown off, or
what is the common blocking item in such cases.
My current guess is that they either don't know hbmk2,
or they copy it away from its location, or they copy
away tests from their original location.
As some rules of thumb / checklist:
0. download C compiler (mingw/msvc prefereed) (see links in INSTALL)
1. install C compiler
2. configure C compiler (as per INSTALL EXAMPLES section)
3. download dependencies (see links in INSTALL)
4. install dependencies
5. setup HB_WITH_* vars (as per INSTALL)
6. go to Harbour source root dir
7. build Harbour (as per INSTALL, usually: 'win-make' or 'make' command)
8. change dir to preferred tests or utils subdir inside
Harbour source tree ('cd contrib/hbmysql/tests').
9. issue command: '<path>hbmk2 test.prg'
(where <path> is the path to hbmk2 executable,
or nothing, if Harbour bin dir has been added to PATH)
10. remember to put involved .dll in PATH, or copy them next to
the executable.
And again: _delete_ HB_COMPILER envvar.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
! Fixed few artifacts belonging to function prototype display
as tooltip and code completion behavior.
* harbour/src/common/hbtrace.c
! fixed potential GPF due to reused va_list parameter which can be
exploited with some calling conventions
! fixed potential memory leak due to missing va_end() for va_list
parameter initialized with va_copy() which can be exploited with
some calling conventions
* simplified a little bit the code by eliminating repeated code in
Windows and *nix #if branches.
* harbour/src/rdd/dbf1.c
! added protection against GPF when user creates DBF table with
total record size greater then 65535 bytes.
Now RTE CREATE 1021 is generated in such case.
! added protection against potential GPF when corrupted DBF file
is open and total field length in DBF header file gives more then
65535. RTE CORRUPT 1012 is generated in such case.
* config/postinst.prg
! Added hack to workaround the exception where mysql .dll doesn't
work with Harbour if copied to .a file. Instead I copy over the
import .lib to .a as before. If anyone knows a better solution,
pls speak up.
* src/common/hbtrace.c
! Fixed another typo in recent modifications.
[Too bad syslog() is missing from watcom. Makes testing
much painful.]
Please test.
* harbour/contrib/rddads/ads1.c
! Fixed date handling in area putValue method for .dbf tables.
ADS does not support dates smaller than 0001-01-01 and stores
invalid values in .dbf without any error. F.e., 0000-01-01 is
stored as '-0011231', CTOD("")+5 is stored as '****1128'. Such
invalid filed values generates ADS runtime error 5095 later on
getValue area method.
DBF RDD stores empty dates in case of unsupported date range.
This fix makes ADS RDD behaviour more compatible to DBF RDD.
ADSADT behaviour is not changed because ADS allows to store
and retrieve field values for dates before 0001-01-01.
* contrib/Makefile
+ contrib/hbcups
+ contrib/hbcups/Makefile
+ contrib/hbcups/hbcups.c
+ contrib/hbcups/hbcups.hbc
+ contrib/hbcups/tests
+ contrib/hbcups/tests/hbmk.hbm
+ contrib/hbcups/tests/test.prg
+ Added basic CUPS wrapper lib, based on code idea posted on the
list by Doug.
* src/common/hbtrace.c
* INSTALL
+ Added trace output support to syslog() for *nix systems
(except watcom builds).
It's enabled by HB_TR_SYSOUT=yes envvar, which now
supercedes previous HB_TR_WINOUT setting.
Windows users pls change HB_TR_WINOUT to HB_TR_SYSOUT.
! Fixed potential problem in HB_TR_WINOUT code, where
the same vararg holder variable was used multiple
times. On *nix this caused GPF. The safest is to make
a copy of it for each usage.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/Makefile
+ contrib/hbwin/tests/testevnt.prg
+ contrib/hbwin/win_evnt.c
+ Added function to add a new event to the Windows event log:
WIN_REPORTEVENT( [<cServerName]>, <cEventLog>,
<nType>, [<nCategory>], [<nEventID>],
<cString> | <acString>, [<cRawData>] ) -> <lSuccess>
* contrib/hbwin/win_prn2.c
! Fixed wce warning.
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/contrib.hbc
+ Added minizip lib.
- external/libpng
+ external/png
* external/png/Makefile
* external/libhpdf/Makefile
* external/Makefile
* harbour.spec
* contrib/hbhpdf/hbhpdf.hbc
* contrib/hbwin/hbwin.hbc
* Renamed locally hosted libpng lib name from 'libpng'
to 'png'.
This way Harbour shifts to the *nix naming and syncs
better with these systems. On Windows the "most official"
binary builds still use 'libpng', so if someone uses them
instead of locally hosted version (which is not very likely)
the .hbc files shipped with Harbour should be edited
accordingly. This change also satisfies past request from
some users.
; NOTE: INCOMPATIBLE, pls change lib name 'libpng' to 'png'
for all platforms in your make files.
* contrib/hbhpdf/tests/harupdf.prg
* Indentation.
* Formatting.
* external/minizip/readme.txt
* Deleted paths from filenames.
* src/rtl/achoice.prg
! Fixed to be more compatible with Clipper when passed wrong
parameter types to ACHOICE(). (replacing DEFAULT TO usage
with foolproof method)
! ACHOCIE() fixed to default dimensions to 0,0,0,0 like in Clipper.
! 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.
! ACHOICE() fixed to immediately return zero (and position
cursor) when wrong type or empty array was received as
value array.
! Fixed minor inefficiency caused by wrongly calculated display
area width when rightmost colums was out of screen in ACHOICE()
call.
* src/rtl/alert.prg
+ HB_ALERT() extended to support all variables types (not
just strings) when an array is passed as first parameter:
F.e.: HB_ALERT( { "hello", 100, .T. } )
% Optimized out two local variables along the way.
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idesources.prg
+ Implemented: save/restrore of bookmarks.
Now editing instances will be opened containing bookmarks
which were placed in previous successful exit. This is
valid for bookmarks in primarary window of editing instance, i.e.,
no split window is taken account of.
* INSTALL
* Minor updates to tool links and information.
* INSTALL
* external/Makefile
+ external/minizip
+ external/minizip/Makefile
+ external/minizip/readme.txt
+ external/minizip/minizip.dif
+ external/minizip/ioapi.c
+ external/minizip/zip.c
+ external/minizip/unzip.c
+ external/minizip/ioapi.h
+ external/minizip/crypt.h
+ external/minizip/zip.h
+ external/minizip/unzip.h
* contrib/hbmzip/Makefile
* contrib/hbmzip/hbmzip.hbc
* contrib/hbmzip/readme.txt
- contrib/hbmzip/minizip.dif
- contrib/hbmzip/ioapi.c
- contrib/hbmzip/zip.c
- contrib/hbmzip/unzip.c
- contrib/hbmzip/crypt.h
- contrib/hbmzip/ioapi.h
- contrib/hbmzip/zip.h
- contrib/hbmzip/unzip.h
* Moved embedded external code from hbmzip library to
separate, locally hosted library inside the 'external'
directory. This way we keep all external code under this
directory. This change also makes it possible to use
custom version of this external library, via the
HB_WITH_MINIZIP envvar.
NOTE: Everyone using hbmzip, must now add 'minizip'
to their lib list. (INCOMPATIBLE)
* contrib/hbide/idesaveload.prg
+ Implemented: hbIDE data files to be saved/retrieved in
system folders if hbide.ini with path is not supplied
on the command-line. The following algorythm is used:
FUNCTION hbide_getIniPath( cHbideIni )
LOCAL cPath, cIni
IF empty( cHbideIni )
IF ! hb_FileExists( cIni := hb_dirBase() + "hbide.ini" )
#if defined( __PLATFORM__WINDOWS )
cPath := hbide_DirAddPathSep( GetEnv( "APPDATA" ) ) + "hbide\"
#elif defined( __PLATFORM_UNIX )
cPath := hbide_DirAddPathSep( GetEnv( "HOME" ) ) + ".hbide/"
#endif
IF ! hb_dirExists( cPath )
MakeDir( cPath )
ENDIF
cIni := cPath + "hbide.ini"
ENDIF
ELSE
cIni := cHbideIni
ENDIF
RETURN cIni
This change makes hbIDE to be able to run on any system
installed via an installer where a writable folder is expected
to write to application data.
Thanks Viktor for the actual code and guidance.
* contrib/hbide/hbide.prg
+ Implemented: last "View" to be presented at startup.
Before it was always "Stats" view.
* contrib/hbide/idetools.prg
! Fixed ::execTool() public method to behave properly throgh
Keyboard Mappings protocol.
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpfontdialog.prg
% An important fix for ancilliary dialogs, i.e., file and font,
to not be added as childrent to parent on :create().
This facilitate to destroy these dialogs after done with.
* contrib/hbxbp/tests/demoxbp.prg
! Destroying XbpFileDialog() explicitly. Now memory is released proper.
* src/rtl/hbini.prg
! Added proper type checks for all accepted parameters to avoid
(sometimes obscure) RTEs when passing wrong parameters.
* src/rtl/profiler.prg
* src/rtl/hbi18n2.prg
+ Added proper type checks instead of "DEFAULT .. TO' method.
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
* contrib/hbqt/qth/QBoxLayout.qth
* contrib/hbqt/qth/QGridLayout.qth
* contrib/hbqt/qth/QLayout.qth
* contrib/hbqt/qtgui/QBoxLayout.cpp
* contrib/hbqt/qtgui/QGridLayout.cpp
* contrib/hbqt/qtgui/QLayout.cpp
* contrib/hbide/idethemes.prg
+ Mode methods populated with custome code to accomodate detatched
parents.
Now there is no GPF absolutely neither any RTE at exit (WinXP).
It is 17Apr2010 today, exactly one year and one month since
I took to this project, and we are through.
Thanks to all who participated in this project in any way.
* contrib/hbqt/qtgui/QMainWindow.cpp
* contrib/hbqt/qtgui/QMenu.cpp
* contrib/hbqt/qtgui/QToolBar.cpp
* contrib/hbqt/qtgui/QTreeWidgetItem.cpp
* contrib/hbqt/qtgui/QWidget.cpp
* contrib/hbqt/qth/QMainWindow.qth
* contrib/hbqt/qth/QMenu.qth
* contrib/hbqt/qth/QToolBar.qth
* contrib/hbqt/qth/QTreeWidgetItem.qth
* contrib/hbqt/qth/QWidget.qth
* contrib/hbqt/generator/hbqtgen.prg
+ Applied patches provided by Francesco Perillo.
Now no GPF even if oObj:destroy() is not issued.
I confirm on WinXP and awaiting responses from all of you
on other platforms.
If all goes OK, then credit goes to Francesco and Istvan.
Guys, back them up.
* contrib/hbqt/qtgui/QLayout.cpp
* contrib/hbqt/qth/QLayout.qth
* contrib/hbqt/generator/hbqtgen.prg
+ Implemented to pick function body from .qth headers and
posted exactly the same within .cpp. Like:
QLayout.qth
bool activate () // some method before
virtual void addItem ( QLayoutItem * item ){
// Code publishes by Istavin.
}
void addWidget ( QWidget * w ) // some method after or none
Note for the opening and closing braces. These must be
last character of the method header and first character
of the methods last and separate line.
This feature facilitates to put the code dierect in headers
where we cannot generate it in automated way. This feature is
strongly discouraged to be used heavily.