* include/hbwince.h
+ Added following macros to help transitioning to new method
of CP conversion when interfacing with Windows API (both UNICODE
and non-UNICODE):
HB_PARSTR( n, h, len )
HB_RETSTR( str )
HB_RETSTRLEN( str, len )
HB_STORSTR( str, n )
HB_STORSTRLEN( str, len, n )
; The goal is to replace HB_TCHAR_*() macros and hb_osEncodeCP()
call with above ones. This will allow to use any CPs (even UTF8)
on the .prg level and transparently interface with Windows
with proper CP translation.
We will probably need a few more macros to store strings in
array elements f.e., but this is enough for a start.
* contrib/hbwin/wapi_shellapi.c
+ Experimental: WAPI_SHELLEXECUTE() converted to use above new
macros. It results in much cleaner code.
Minor incompatibility: 3rd parameter is now passed as-is, so
if non-string is passed it gets passed to Windows as NULL,
which isn't a valid input parameter.
; NOTE: Probably it will useful to have HB_PARSTRDEF() which also
accepts a default value to be used when non-string
parameter was passed. (to replace old hb_parcx() calls).
Is it possible to add such function or any other ways to solve that?
; TOFIX: I'm getting this warning:
warning: implicit declaration of function 'hb_setGetOSCP'
and it's probably too late, but I couldn't find a way to
include hbset.h without errors or with least side-effects.
Przemek, could you help?
* contrib/hbwin/win_prn1.c
* Formatting.
* src/rdd/dbcmd.c
* src/rdd/wafunc.c
+ Moved recently implemented codepage defaulting logic (_SET_DBCODEPAGE)
to lower lever functions.
Please review me.
* external/libpng/pngrio.c
* external/libpng/pngerror.c
* external/libpng/pngconf.h
* external/libpng/pngwrite.c
* external/libpng/pngset.c
* external/libpng/pngpread.c
* external/libpng/pngwtran.c
* external/libpng/LICENSE
* external/libpng/pngwio.c
* external/libpng/pngrutil.c
* external/libpng/pngwutil.c
* external/libpng/pngread.c
* external/libpng/pngmem.c
* external/libpng/png.c
* external/libpng/pngget.c
* external/libpng/pnggccrd.c
* external/libpng/png.h
* external/libpng/pngrtran.c
* external/libpng/pngtrans.c
* Updated to 1.2.41 (from 1.2.40)
* contrib/hbide/idemisc.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/projects/hbide.hbi
* contrib/hbide/hbide.prg
+ Implemented Project definition/loading/manipulation through
<Project Tree> interface.
+ Implemented this tree structure:
- Projects
- Executables
- Harbour-Qt IDE
- C:\harbour\contrib\hbide\ [ Path containing the source ]
- hbide.prg
- idemisc.prg
- ...
- C:\harbour\contrib\hbwin\
- olecore.c
- ...
- GTWVG Demonstration Application
- C:\harbour\contrib\gtwvg\tests\
- demowvg.prg
- Editor [ Holds sources already opened ]
- C:\harbour\contrib\hbide\ [ Path containing the source ]
- hbide.prg
- idetags.prg
- ...
RIGHT-CLICK ( context menu ) on <Projects> node presents a menu to
define or load a project.
RIGHT-CLICK on <Project Description> node allows to redefine
the properties.
DOUBLE-CLICK on any source file has two actions,
1) it opens the editor tab if file is not open already,
2) it makes the tab current which holds the source of this file.
This action is valid on nodes contained beneath <Path> under
<Project Description> or under <Editor>.
certainly hope that some of you will play with it and will report
back anything desired more.
* src/vm/set.c
* src/rdd/dbcmd.c
* include/set.ch
* include/hbset.h
+ Added support for SET( _SET_DBCODEPAGE ). This will set the
default codepage for RDD operation. It affects following
functions and everything which is based on them:
DBUSEAREA()
DBCREATE()
HB_DBCREATETEMP()
__DBOPENSDF()
IOW every function which accepts current "dirty" Harbour
extension <cCodePage>.
This new SET() is useful if someone wants to use a different
than app codepage in tables, without modifying every above
calls to pass the db CP as extra parameter (plus maintaining
this global setting in app code).
* src/rdd/dbcmd.c
+ Added short DBUSEAREA() parameter list doc in comment.
* contrib/hbide/hbide.hbp
- contrib/hbide/freadlin.c
* contrib/hbide/idemisc.prg
% Elminated HB_FREADLINE().
% Highly optimized MEMOTOARRAY().
% Using FOR EACH in PARSEWITHMETADATA(), APPLYMETADATA().
! -1 -> F_ERROR
- Deleted #include "hbqt.ch". Not needed.
* Minor formatting.
* harbour/contrib/hbtpathy/tpunix.c
! fixed tty raw IO mode setting
* reduced CRTSCTS redefinition to WATCOMC and Linux, added small
comment about it and iTODO compile time warning if CRTSCTS is
not defined.
TODO: make some cleanup and extensions for *nix version of this
library.
* harbour/config/os2/watcom.mk
* disabled -s from GTSTD compile time parameters to test possible
workaround for OW problems in MT mode and APIENTRY16 functions.
* contrib/hbide/ideparseexpr.c
! Fixed to use hb_strncpy() instead of strncpy().
* contrib/hbwin/win_os.prg
+ Added comment to indicate parameter accepted as reference.
* contrib/hbwin/Makefile
* contrib/hbwin/win_reg.prg
+ contrib/hbwin/legacycr.c
+ Renamed three registry functions to reside in WIN_ namespace:
win_regSet() <= SetRegistry()
win_regGet() <= GetRegistry()
win_regQuery() <= QueryRegistry()
; Old names are still available.
; TODO: Move legacy Windows function names to xhb lib.
This has the advantage that they can stay there
forever.
* contrib/hbwin/win_os.prg
* Changed to use new function names.
* Variable name cleanup.
% WIN_OSNETVREDIROK() optimized/simplified.
* contrib/hbide/ideparseexpr.c
* Final renaming cleanup.
* contrib/hbide/hbide.prg
+ Changed to use HB_MEMOWRIT() instead of MEMOWRIT() to avoid
legacy EOF char.
* contrib/hbtpathy/tpunix.c
+ Cleaned definition of CRTSCTS macro, if not defined.
Based on info sent to dev list by Przemek, plus Darwin value
added after checking my system.
+ Added TODO warning and dummy return value if CRTSCTS
cannot is unknown for target platform.
; Please review me.
* contrib/hbwin/win_os.prg
* contrib/hbwin/win_osc.c
* contrib/hbwin/legacycv.c
+ Added WIN_OSISVISTAORUPPER().
+ Added xhb compatibility functions OS_ISWINVISTA_OR_LATER()
+ WIN_OSNETREGOK() extended to turn of SMB2 on Vista and upper systems.
! Fixed WIN_OSNETREGOK() to only attempt to change HKLM registry settings
if run under admin account (on NT systems). This also fixes a typo
in current xhb implementation.
; Adaptation of xhb addition by Peter Rees.
* contrib/hbwin/win_regc.c
+ Added NOTE about minor xhb incompatibility in registry hive numbers.
(default/zero is HKCU in Harbour, HKLM in xhb)
* contrib/hbide/ideparseexpr.c
* Cleaned int/size type usage.
* Formatting.
* Variables name cleanups.
* contrib/hbide/hbide.prg
* contrib/hbide/projects/hbide.hbi
* contrib/hbide/resources/projectproperties.ui
! Probably now <Project Properties> dialog will exit cleanly on <Cancel>.
! Destroyed more Qt objects on exit.
* contrib/hbxbp/xbpstatusbar.prg
! Destruction of panels.
* contrib/hbide/hbide.prg
- Deleted non __HARBOUR__ #if branch. Please tell me if I'm
wrong but hbide doesn't work anywhere else than Harbour.
* IF() -> IIF().
* contrib/hbide/hbide.env
- Deleted windows-only stuff.
- Deleted HB_COMPILER and HB_PLATFORM envvars. These are not required.
* HB_INC_* -> HB_WITH_* although I don't understand why this is needed here.
It probably should be deleted completely.
; NOTE: IMO this whole file is very much non-portable and it's not the
IDEs job to configure local environment. We have INSTALL to guide
users and hard coding any part of that information into setting
files is not good.
* contrib/hbide/idestylesheets.prg
% Optimized.
* contrib/hbide/ideparseexpr.c
! Changed to use '\0' instead of 0.
* contrib/hbide/ideparseexpr.c
! Fixed to not contain non-ANSI comments.
% Minor optimizations.
! Fixed linearfind() to return incorrect result when called in
case insensitive mode. (not exploited by current code)
% Marked worker functions as static.
+ Using Harbour types HB_BOOL and HB_SIZE. (type usage is still inconsistent)
% Elminiated HB_ISBYREF() call. Not needed.
! Fixed to use hb_strncat() instead of strcat().
! Fixed unsafe '!' oparator usage. (MSVC C++ warning)
; TOFIX: There is still one unsafe strncpy() usage, but I can't fix it.
Anyone?
* contrib/hbide/ideparseexpr.c
! Fixed to not use explicit values for const variable sizes.
Using HB_SIZEOFARRAY() instead.
! Fixed C++ warnings.
! Fixed const usage. (explicit cast removed which silences
warnings)
% Minor optimization when returning value in PARSEXPR().
! Fixed potential GPF in PARSEXPR() when non string param is passed.
* src/rtl/gtos2/Makefile
* config/os2/watcom.mk
% Changed the way -s option is disabled for certain modules
(currently gtos2).
This method doesn't require new variable, although it's still
a hack.
* harbour/src/rtl/gtos2/Makefile
* harbour/config/os2/watcom.mk
* disable -s in GTOS2 OpenWatcom builds using HB_CSTACK_CHECK variable.
This is workaround for wrong code generated by OpenWatcom <= 1.8
when -s switch is used for functions calling APIENTRY16 functions.
Such code executed from non main thread causes GPF.
* bin/postinst.bat
+ Syncing C/C++ Harbour build mode with hbmk2 invocation
options in postinst phase. (please test)
Only required for mingw, but it's done for every compiler
for consistency, but only if it's overridden by user.
(so f.e. for msvc, C++ isn't enabled in this case. This
could be done on hbmk2 level however, but it would cause
a lot of 3rd party code to break so I didn't do it yet.)
I didn't add logic to hbmk2 to inherit build-time C/C++
setting, because it wouldn't work in cross-build situations,
and multi-target installations.
* utils/hbmk2/hbmk2.prg
+ Added comment on msvc C++ mode.
* contrib/hbide/hbide.ch
+ contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/projects/hbide.hbi
* contrib/hbide/resources/projectproperties.ui
+ Started the possibility to switch to any compiler while building a project.
! Implemented tooltips on <Project Properties> dialog components.
+ Added one more tab <Compilers> which holds the contents of hbide.env
residing alongside hbide.exe.
NOTE: hbide.env is an experimental feature and as such name and location
of this file may change in future.
! Few more artifacts corrected.
* utils/hbmk2/hbmk2.prg
+ Added Harbour lib dir autodetection when Harbour installed
on 64-bit systems (where libs are in */lib64/harbour).
Please test it.
; NOTE: I've also found some logic which makes hbmk2 build
process inherit -m64/-m32/-mlp64/-mlp32 switches from
hbmk2 itself. But it only passes it to C flags.
I'm not sure it sure pass it at all, but in case it
needs to pass it, should it also pass it to linker
flags? I don't have 64-bit linux development system
to try these things.
* config/global.mk
+ Added some provisions for separate -cpu selection:
Now win/wce compiler autodetection code tries to fill HB_CPU.
This should eventually be extended to all platforms/compilers.
+ HB_CPU autodetection will now consider -m64 and -m32 HB_USER_CFLAGS
on linux platform. This may not be correct on non-intel
linux platforms. Eventually this hidden knob should be changed
to proper CPU selection (probably).
% De-xmas.
! Minor fixes to HB_COMPILER autodetection when HB_PLATFORM=wce
is used on win hosts.
; I just hope there won't be any regressions.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
! Implemented <New Project> and <Load Project> prompts of
context menu of <Projects> node of <Project Tree>.
+ contrib/hbide/projects/hbide.hbi
! Demonstration project file to show the basic protocol used to
execute next compile/link actions.
This implementation includes real-time view of the resultant
.hbp file which will be supplied to HBMK2. Because, this is going
to be a proposed engine, please experiment with the interface.
Just change diffenrent components and click on <.hbp> tab page.
It will reflect what the final .hbp will be supplied to HBMK2.
I want to be sure I am not missing something.
* harbour/contrib/rddads/ads1.c
! fixed ordSkipUnique() to properly update BOF/EOF flags, skip over
ADS BOF phantom record and respect not optimized local filters
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idetags.prg
* contrib/hbide/resources/projectproperties.ui
! More near TO project properties, will be ready by tomorrow.
* harbour/contrib/hbcairo/util.c
* harbour/contrib/hbcairo/image.c
* harbour/contrib/hbcairo/context.c
! fixed casting for some more pedantic C++ compilers
* config/beos/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/hpux/gcc.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/common/watcom.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/linux/watcom.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* Initializing LDFLAGS, DFLAGS and ARFLAGS at the beginning of files.
This allows to easily add to these var according to build settings.
It also syncs all .mk files to use the same layout in this regard.
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Added -debug linker option to .dll linking for msvc/msvcarm targets.
* harbour/contrib/rddads/ads1.c
* added support for dynamic descend flag switching by
ordDescend( [<tag>], [<bag>], <lDescending> ) -> <lPrevSetting>
It needs ADS 9.00 or higher and it's ignored in earlier ADS versions.
Based on Brian Hayes modification in xHarbour ADS RDD.
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/contrib/rddads/ads1.c
* modified ordSkipUnique() to be compatible with CL53 - it means
that the passed parameter has a little bit different meaning when
table has active index and it hasn't.
If no index is active (natural order) then passed parameter is number
of records to skip just like in dbSkip() function otherwise it's only
direction choice so negative value means backward skipping and
zero or positive means forward skipping.
We may decide to change this behavior anyhow please remember that
it's not such clear what number of records to skip should mean during
skipping with active order having repeated key values and with working
filters which also can exclude some records. It's possible to create
few algorithms giving different results for some conditions.
* utils/hbmk2/hbmk2.prg
! Added -debug linker option when building .dll for msvc and compatible targets.
! Fixed minor regression in embedded CRLFs of hbmk2 texts.
* config/win/msvc.mk
* utils/hbmk2/hbmk2.prg
+ Added -MT/-MTd for win/msvc compatible targets when verison is 7.1 (.NET 2003)
or older. On these versions this will assure that multithreading C RTL is
being used (at the same time forcing static C RTL).
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Added -debug linker option for executables.
; TODO: Add it for .dlls too.
* config/globsh.mk
+ Deleting (MSVC) .pdb and .ilk files for executables and dynlibs on 'make clean'.
* contrib/hbcairo/Makefile
+ Added autodetection for MacPorts cairo pkg.
+ Fixed autodetection on *nix systems in general.
* INSTALL
+ Added cairo package information for Darwin/MacPorts and Ubuntu.
* contrib/hbqt/qtcore/Makefile
! Fixed after last commit.
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/qtcore/filelist.mk
* contrib/hbqt/qtcore/QUiLoader.cpp
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/qth/QLabel.qth
! Fixed QUiLoader issue.
! Fixed XbpStatic()'s weired behaviour which was caused by expected improvements
in QLabel() class which eventually did not yield desired results, unluckily.
I will look into this matter later.
Now, HBQT sources re-built places proper make files and components.
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added autodetection of DWARF-2 build of mingw.
This is mingw build is required for QT 4.6.0.
* utils/hbmk2/hbmk2.prg
! Fixed to consider HB_CCPOSTFIX setting when trying to autodetect gcc/win, gcc/wce.
* bin/hb-mkimp.bat
- Deleted creation of QT implibs for mingw. Enough to use what's
provided by QT SDK.
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/qtcore/filelist.mk
* Rerun generator. This caused that QTUILoader references
got removed, plus a few other changes.
* contrib/hbqt/qtcore/QUiLoader.cpp
- Deleted header telling this file is automatically generated.
! Manually fixed debug lines to be in sync with rest of hbqt.
* contrib/hbqt/qtcore/Makefile
! Fixed to add QTUILoaded stuff manually, since it's missing
from generated filelist.mk.
* config/win/msvc.mk
* Minor in comment.
* contrib/xhb/freadlin.c
* contrib/hbide/freadlin.c
! Fixed C mode MSVC warning.
* config/win/msvc.mk
- Removed -MT switch from default MSVC options. It should be user controlled
and -MT seemed to be the default anyway. Now it's also in sync with hbmk2
and also with msvcarm target.