* 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.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
+ contrib/hbide/resources/projectproperties.ui
+ Added Project Properties Dialog in .ui format. Trying to implement
some exotic thoughts which I ever missed in xMate.
* harbour/src/rtl/gtos2/Makefile
* added 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.
* INSTALL
+ Added HB_DIR_*, HB_INC_* settings to ones which users
should NOT have in their setup anymore.
Please delete them, it's just noise on the dev list.
This current full list:
set HB_PATH=<Harbour root dir>
set HRB_DIR=<Some Harbour dir>
set INCLUDE=<Harbour include dir>
set LIB=<Harbour lib dir>
set HB_INC_*=
set HB_DIR_*=
* src/rtl/philes.c
* include/hbextern.ch
+ Added HB_FISDEVICE()
; NOTE: Didn't add anything to hbmk2 yet, as after testing I found it
weird and unusual that the output is different when redirected,
but we may think of some other solution, like user option or else.
* harbour/doc/en-EN/hb_apifs.txt
* harbour/include/hbapifs.h
* harbour/src/rtl/filesys.c
* changed:
BOOL hb_fsSetDevMode( HB_FHANDLE hFileHandle, USHORT uiDevMode )
to:
int hb_fsSetDevMode( HB_FHANDLE hFileHandle, int iDevMode )
Now it returns previous mode for hFileHandle or -1 on error.
if iDevMode == 0 then it does not change device mode.
* harbour/src/rtl/philes.c
* modified HB_FSETDEVMODE() function to work with new hb_fsSetDevMode()
Current syntax is:
HB_FSETDEVMODE( <hFile> [, <nNewMode> ] ) -> <nOldMode>
It may return FD_BINARY, FD_TEXT or FS_ERROR.
* harbour/src/rtl/philes53.c
* modified FSETDEVMOD() function to work with new hb_fsSetDevMode()
It's similar to HB_FSETDEVMODE() but returns FD_BINARY instead of
FS_ERROR. Such behavior is more closer to CL53.
* harbour/src/rtl/console.c
* set also STDIN into binary mode
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
! More properties honored while reloading the sessions.
Now editor tab is opened exactly in the same state it was closed.
Unluckily I am not been to move the cursor to the same position,
I do not know why QTextCursor():movePosition( nPos ) fails.
Anybody has any hint?
* harbour/contrib/hbcairo/context.c
* harbour/contrib/hbcairo/paths.c
* harbour/contrib/hbcairo/text.c
* harbour/contrib/hbcairo/tests/table.prg
* added some error check. If function parameters are invalid C level
functions is not called with invalid (NULL) pointers.
* changed cairo_text_extent() to return an array of .c structure
members instead of returning multiple values using parameters
passed by reference. In the future I'll try to follow this way
to return structures.
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/axcore.c
* changed error system name from OLE to WINOLE
* renumerated error subcodes starting from 1001
* src/rtl/philes.c
* src/rtl/philes53.c
* include/hbextern.ch
+ Added HB_FSETDEVMODE(). Documented, always available
equivalent of C5.3 undocumented function FSETDEVMOD().
* utils/hbmk2/hbmk2.prg
* Changed to use HB_FSETDEVMODE().
* utils/hbmk2/hbmk2.prg
+ Setting std and err output handles to text mode as an attempt
to fix OS/2 (and MS-DOS) jagged output.
* At the same time changed to use Chr( 10 ) instead of hb_osNewLine()
to send EOL to std and err outputs.
; Thanks Przemek for the help.
* contrib/hbwin/wapi_shellapi.c
! WAPI_USERISANADMIN() -> WAPI_ISUSERANADMIN()
* utils/hbmk2/hbmk2.prg
! Added RTRIM() to MEMOLINE() calls to strip right space paddings.
* harbour/include/hbwince.h
* harbour/contrib/hbwin/axcore.c
* moved HBTEXT macro definition from axcore.c to hbwince.h
* harbour/contrib/hbwin/wapi_shellapi.c
! use HBTEXT() macro for literal constants used as second parameter
of GetProcAddress(). It fixes WINCE builds where whole API uses
only UNICODE strings.
* INSTALL
+ Added cairo links.
* contrib/hbwin/wapi_shellapi.c
+ WAPI_USERISANADMIN() function. Based on xhb's recently added
OS_ISUSERANADMIN() function by Peter Rees.
Reformatted, renamed and applied fixes/UNICODE/cleanups, usual stuff.
* contrib/hbcairo/hbcairo.hbc
+ Changed libs= for *nix system. Not tested for this cairo,
it comes from my local xhgtk hbmk2 files.
* INSTALL
+ Documented HB_WITH_CAIRO setting.
* bin/hb-mkimp.bat
+ Added HB_BUILD_IMPLIB support for cairo lib.
I didn't test them.
* contrib/hbcairo/hbcairo.hbc
* Changed cairo lib name from 'libcairo-2.0' to 'cairo'
This is what HB_BUILD_IMPLIB will generate.
; TODO: It's the "fun" part of any component adaptation, that
each build and platform use a different lib naming scheme.
We should fix this one by one for all platforms.
; TODO: Make build tests on each platform/compiler.
* contrib/hbcairo/Makefile
+ Added cairo component detection.
- Deleted installation of .h header. It doesn't seem to be
one for the public.
* config/global.mk
% "De-xmastree"-d one if/else structure.
+ harbour/contrib/hbcairo
+ harbour/contrib/hbcairo/Makefile
+ harbour/contrib/hbcairo/context.c
+ harbour/contrib/hbcairo/core.c
+ harbour/contrib/hbcairo/imgae.c
+ harbour/contrib/hbcairo/paths.c
+ harbour/contrib/hbcairo/pdf.c
+ harbour/contrib/hbcairo/png.c
+ harbour/contrib/hbcairo/text.c
+ harbour/contrib/hbcairo/hbcairo.ch
+ harbour/contrib/hbcairo/hbcairo.h
+ Added Cairo graphics library
; It's a 2D graphic library that makes drawing commands platform
independent. Supported backends are: memory image, PDF, PNG, PS,
Win32 DC, SVG, Quartz, Xlib, started Qt development. I.e., you
can forget if you are drawing on screen, printer, PDF, or image
file from know. GTK and FireFox are only a sample of well-known
library/application that uses Cairo as rendering engine.
; Webpage: http://cairoprahics.org
; Binaries, development files and related packages (ex., libpng) for
Windows can be found at http://www.gtk.org/download-windows.html
; I've used multiple .c files so store Harbour level functions.
Functions are split into source files using help sections of
original Cairo docs (http://cairographics.org/manual/)
; You'll find the full documentation on Cairo webpage. Only a few
functions are spesific to Harbour and could not be found in
original documentaion. It accesses C language structures of Cairo
library. These functions are:
cairo_path_iterator_create( hPath ) --> hIterator
cairo_path_iterator_next( hIterator ) --> nType | NIL
cairo_path_iterator_get_points( hIterator ) --> aPoints
cairo_path_iterator_set_points( hIterator, aPoints ) --> lOk
; Internal Cairo pointers/handlers are implemented using collectible
pointers. It is destroyed after is not visible to probram any more.
Though original functions cairo_*_destroy() are also implemeted for
those, who wants to make it code clean.
; TOCHECK: GC pointers implementation, HB_USE_ITEM define.
; TODO: I've implemted not all functions of Cairo. Actually, the
minority, but it's enough to do some fancy things.
; TODO: Makefile support. I've completely failed to make a working
make system. I can compile library by copying Cairo *.h files into
source folder and making .dll import library manualy. I guess
Viktor can solve the issues in 3 minutes.
+ harbour/contrib/hbcairo/tests
+ harbour/contrib/hbcairo/tests/hbmk.hbm
+ harbour/contrib/hbcairo/tests/fancytxt.prg
+ harbour/contrib/hbcairo/tests/glyphdbg.prg
+ harbour/contrib/hbcairo/tests/hellow.prg
+ harbour/contrib/hbcairo/tests/table.prg
+ added a few samples to generate .pdf/.png images
; NOTE: one of the things that make me to spend 3 days for doing this
commit is never ending emails about .pdf library problems on
developers mailing list. I'm using Cairo for a few years, I've
mentioned it a few time on mailing list, but people does not look
at it before you do not show the final result. I hope this library
will be helpful for many, and test code will show both basic
(every day required) and fancy things you can do with Cairo.
* contrib/hbide/hbide.prg
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/qtgui/filelist.mk
+ contrib/hbqt/qtgui/QPlainTextEdit.cpp
+ contrib/hbqt/qtgui/TQPlainTextEdit.prg
+ contrib/hbqt/qth/QPlainTextEdit.qth
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbptabpage.prg
+ Added QPlainTextEdit class.
This class is now used in HBIDE instead of QTextEdit as it is
highly optimized for large text documents and is considerably faster.
+ Implemented tooltips for XbpListBox() class while mouse is hovered
upon an item. The expression is manifest i HBIDE's <Function List> exactly
as is with xMate.
* harbour/bin/hb-func.sh
- removed not longer working HB_DB_DRVEXT
+ added HB_USER_DLL_ADDONS which can be used to activate rebuilding
Harbour shared library in postinst phase with additional libraries
specified by user in above envvar - it's not officially supported
functionality but temporary workaround until we will not add some
more generic support for above feature so I do not document it in
INSTALL
* harbour/contrib/hbwin/olecore.c
+ added support for conversion safe arrays with any type variants
to Harbour - please test
* mpkg_rpm.sh
* INSTALL
* harbour.spec
* config/global.mk
* config/detect.mk
* HB_COMMERCE renamed to HB_BUILD_NOGPLLIB (in sync with existing
--without option)
+ HB_BUILD_NOGPLLIB now documented in INSTALL.
; Please update your enviroment.
; BTW, I'm open to other names which are more generic and clearly
states what we're talking about exactly. Current terminology
is limited to GPL license.
* config/global.mk
* config/bin.mk
* src/rdd/Makefile
* Moved central RDD related information to local makefiles.
- Deleted support for $(HB_DB_DRVEXT) envvar.
To extend Harbour with RDDs these should be added as
regular addons, and optionally hbrun rebuilt using hbrun.hbp.
[ $(HB_DB_DRVEXT) is still used from hbmk script, I didn't
touch that part. ]
* INSTALL
* Minor.
* INSTALL
* bin/hb-mkimp.bat
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqts.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
* utils/hbmk2/examples/xhgtk.hbc
* config/global.mk
+ Eliminated HB_DIR_* envvar requirement to find required 3rd
party component libs.
This means that it's now enough to only set HB_WITH_* envvars
to enable HB_BUILD_IMPLIB.
This should make configuration a lot simpler, and this clears
the last pending TODO in this area.
HB_INC_* won't work this way, so please start to migrate to
HB_WITH_* envvars, the values should stay the same.
* external/pcre/cnv_o2hb.bat
* external/pcre/cnv_hb2o.bat
* Updated comment.