* 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.
* harbour/contrib/hbwin/olecore.c
+ added support for passing OLE pointer item as VT_DISPATCH variants
+ added support for updating VT_DISPATCH and VT_UNKNOWN parameters
passed by reference
Please test.
* utils/hbmk2/hbmk2.prg
+ Added -xhp=<xMate .xhp file> option which will attempt to
read xMate project file and save it as .hbp file.
This is experimental and I'd like to ask xMate users to
update/extend this converter code as I'm not xMate user.
Moreover the only .xhp file sample I have is pretty slim,
limited, so it may easily be possible that some features
are not imported or imported wrongly.
* utils/hbmk2/hbmk2.prg
+ Added -xbp=<xbuild .xbp file> option which will attempt to
read xbuild project file and save it as .hbp file.
This is experimental and I'd like to ask xbuild users to
update/extend this converter code as I'm not xbuild user.
* contrib/hbmisc/spd.c
+ Applied patch to add timestamp support.
Supplied by Xaxi. Thank you.
! Readded DJGPP warning avoiding hack which was
missing from sent file.
* utils/hbmk2/hbmk2.prg
+ Added -hbmake=<hbmake file> option which will attempt to
read hbmake project file and save it as .hbp file.
This is experimental and I'd like to ask hbmake users to
update/extend this converter code as I'm not hbmake user.
This feature is to aid users to migrate from hbmake to hbmk2.
Notice that along the same line converter could be written
for .xbp and xMate project files too.
* src/compiler/Makefile
- src/compiler/gencobj.c
* src/compiler/hbmain.c
* src/compiler/cmdcheck.c
* src/compiler/hbusage.c
* include/hbcompdf.h
* debian/rules
* mpkg_src.sh
* mpkg_tgz.sh
* harbour.spec
- Deleted support for harbour.cfg / compiler -go mode.
This was scheduled to be done after release, but since
hbmk2 seems to be a very solid tool now with visible
acceptance from users, it seems safe to make the move
now. This will mean that one less Harbour file will
"pollute" system locations, which is always a good
thing. Plus this part had a few bugs, which are now
also a thing of the past.
- examples/hbmake
- Deleted hbmake tool. This wasn't really working anyway,
and require -go mode, which was deleted.
Use hbmk2 instead.
* mpkg_src.sh
* mpkg_tgz.sh
! Fixed indentation to be consistent 4 chars.
* INSTALL
* harbour.spec
* mpkg_rpm.sh
* Moved mpkg_rpm*.sh cmdline options description to INSTALL.
At the same time some inconsistencies were fixed and from
now on it should be updated in less copies. Still, there
different option list for win/wce cross-builds and regular
builds. (some of these may not be relevant anymore as Przemek
just deleted some of these option, which is an even better
solution.)
Maybe the same could be done for the rest of them?
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/mpkg_rpm_win.sh
* harbour/mpkg_rpm_wce.sh
* removed all conditional build settings - they are not necessary
for current make system
* harbour.spec
* harbour-win-spec
* harbour-wce-spec
* mpkg_rpm.sh
* mpkg_rpm_win.sh
* mpkg_rpm_wce.sh
* Cleanup/sync of 'with' and 'without' parameters:
--with fbsql -> --with firebird
--without nf -> --without hbnf
--without gtcrs -> --without curses
--without gtsln -> --without slang
! Deleted fmstat/nofmstat options from help texts.
* Internal 'fbird' references changed to 'firebird'.
; Pls test.
; TODO: I'd like to delete '--without hbnf'. If someone knows
why this lib is different than all the others so that
it needs special --without switch, pls speak up.
* mpkg_rpm.sh
* harbour.spec
+ Added hbqt and hbxbp libraries to a new rpm package harbour-qt.
Path submitted by Tomaz Zupan. Thanks.
! Converted tab to space.
* include/hbextern.ch
! HB_SETCODEPAGE() reference also guarded with HB_LEGACY_LEVEL2.
* tests/wcecon.prg
* tests/gtkeys.prg
* examples/terminal/trm_cli.prg
* HB_SETCODEPAGE() -> HB_CDPSELECT().
* contrib/hbwin/win_prn2.c
+ Added comment.
* contrib/hbwin/legacy.prg
+ Guarded with HB_WIN_LEGACY_LEVEL_OFF.
* contrib/hbmysql/mysqlold.c
* contrib/hbodbc/odbcold.c
* contrib/hbwin/legacycd.c
* contrib/hbwin/legacyco.c
* contrib/hbwin/legacycp.c
* contrib/hbwin/legacycv.c
* contrib/hbwin/legacy.prg
+ Guarded with HB_LEGACY_LEVEL3.
This means these will be removed after major release.
Please upgrade your code to use new function names.
* src/rtl/cdpapi.c
* HB_SETCODEPAGE() guarded as HB_LEGACY_LEVEL2 which means
it will be removed in next major version.
NOTE to users: Use HB_CDPSELECT() or SET( _SET_CODEPAGE ) instead.
* src/debug/debugger.prg
- Deleted __XHARBOUR__ protected parts.
* contrib/xhb/xhberr.prg
- Deleted some __XHARBOUR__ protected parts.
Some other remain, most of them dealing with SET()s which
are xhb extension.
It again shows that emulating extended SETs is quite a PITA,
so we should avoid it.
* harbour/contrib/hbtip/popcli.prg
+ added method OpenDigest( cUrl ) based on APOP command
+ added support for RSET command ( method Rset() )
* changed method Close - new lAutoQuit parameter added
By default lAutoQuit == .T. for compatibility
! rewritten method countMail()
I think old version never work correctly and new one
based on STAT command will be faster also
* cosmetic changes
* harbour/src/vm/fm.c
! fixed typo - thanks to Bill for info
* harbour/contrib/hbwin/axcore.c
* minor cleanup
* harbour/contrib/hbwin/olecore.c
+ added support for VT_UNKNOWN variants translated to Harbour
OLE objects (WIN_OLEAUTO) - please test