* 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.
* 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.