* contrib/hbcairo/core.c
! fixed typo
* contrib/hbssl/ssl.c
! fixed typo in SSL_GET_MODE()
* contrib/hbssl/hbssl.h
* contrib/hbssl/x509.c
* contrib/hbssl/ssl.c
+ implemented release option for X509 collectable pointer
; openSSL increments reference counter for X509 returned
by SSL_get_peer_certificate(), but does not increment it
for SSL_get_certificate(). Unnecessary freeing of X509
pointer caused random GPF later
* src/rtl/hbsockhb.c
* changed .prg level hb_socketSetBlockingIO() return value
type from lSuccess to nSuccess, to have the same return
value meaning precision as C level function
* src/rtl/hbsockhb.c
* include/harbour.hbx
+ hb_socketGetFD( hSocket ) --> nFD
* external/pcre/Makefile
! Forcing C mode for this external component, which is
mainly tested and developed for C compiler.
Currently sunpro has problems in C++ mode due to little
bug in current PCRE code. Reported to author here:
http://bugs.exim.org/show_bug.cgi?id=939
* utils/hbmk2/hbmk2.prg
* Minor formatting.
* contrib/hbcairo/core.c
* Using HB_TRUE/HB_FALSE instead of 1/0.
* harbour/contrib/hbcairo/core.c
* used current GC API to store references between GC blocks
! fixed GC block storage
* added additional protection against using released path in
cairo_path_iterator_*()
* harbour/contrib/hbcairo/text.c
! fixed copy-paste typo in cairo_set_font_matrix()
* harbour/include/hbapilng.h
+ harbour/include/hbmsgreg.h
+ added common for all Harbour lang modules (msg*.c) header file
with initialization code
* harbour/src/lang/msgbe866.c
* harbour/src/lang/msgbewin.c
* harbour/src/lang/msgbg866.c
* harbour/src/lang/msgbgiso.c
* harbour/src/lang/msgbgmik.c
* harbour/src/lang/msgbgwin.c
* harbour/src/lang/msgca.c
* harbour/src/lang/msgcs852.c
* harbour/src/lang/msgcsiso.c
* harbour/src/lang/msgcskam.c
* harbour/src/lang/msgcswin.c
* harbour/src/lang/msgde.c
* harbour/src/lang/msgdewin.c
* harbour/src/lang/msgel.c
* harbour/src/lang/msgelwin.c
* harbour/src/lang/msgeo.c
* harbour/src/lang/msges.c
* harbour/src/lang/msgeswin.c
* harbour/src/lang/msgeu.c
* harbour/src/lang/msgfr.c
* harbour/src/lang/msggl.c
* harbour/src/lang/msghe862.c
* harbour/src/lang/msghewin.c
* harbour/src/lang/msghr437.c
* harbour/src/lang/msghr852.c
* harbour/src/lang/msghriso.c
* harbour/src/lang/msghrwin.c
* harbour/src/lang/msghu852.c
* harbour/src/lang/msghucwi.c
* harbour/src/lang/msghuiso.c
* harbour/src/lang/msghuwin.c
* harbour/src/lang/msgid.c
* harbour/src/lang/msgis850.c
* harbour/src/lang/msgit.c
* harbour/src/lang/msgko.c
* harbour/src/lang/msgltwin.c
* harbour/src/lang/msgnl.c
* harbour/src/lang/msgpl852.c
* harbour/src/lang/msgpliso.c
* harbour/src/lang/msgplmaz.c
* harbour/src/lang/msgplwin.c
* harbour/src/lang/msgpt.c
* harbour/src/lang/msgptiso.c
* harbour/src/lang/msgro.c
* harbour/src/lang/msgru866.c
* harbour/src/lang/msgrukoi.c
* harbour/src/lang/msgruwin.c
* harbour/src/lang/msgsk852.c
* harbour/src/lang/msgskiso.c
* harbour/src/lang/msgskkam.c
* harbour/src/lang/msgskwin.c
* harbour/src/lang/msgsl437.c
* harbour/src/lang/msgsl852.c
* harbour/src/lang/msgsliso.c
* harbour/src/lang/msgslwin.c
* harbour/src/lang/msgsr852.c
* harbour/src/lang/msgsriso.c
* harbour/src/lang/msgsrwin.c
* harbour/src/lang/msg_tpl.c
* harbour/src/lang/msgtr857.c
* harbour/src/lang/msgtrwin.c
* harbour/src/lang/msgua866.c
* harbour/src/lang/msguados.c
* harbour/src/lang/msguakoi.c
* harbour/src/lang/msguawin.c
* harbour/src/lang/msgzhb5.c
* harbour/src/lang/msgzhgb.c
* modified to use initialization code defined in common for all
lang modules header file.
* harbour/contrib/gtwvg/wvggui.c
* harbour/contrib/hbqt/qtgui/QApplication.cpp
* harbour/contrib/hbqt/qth/QApplication.qth
* use default GT startup cvode (#include "hbgtreg.h")
* harbour/include/hbinit.h
+ harbour/include/hbiniseg.h
* replaced HB_MSC_STARTUP code with more universal HB_DATASEG_STARTUP
* moved HB_DATASEG_STARTUP code to separate header file to reduce
modifications in other files when this code has to be changed or
extended
+ added support for startup code in OpenWatcom C builds. Now we can
create OpenWatcom Harbour binaries without forcing C++ mode.
I've tested Linux and Win32 builds and they works correctly.
Probably similar solution can be used also for other C compilers
which do not have native interface to define starup code.
* harbour/src/compiler/genc.c
* harbour/utils/hbmk2/hbmk2.prg
* harbour/include/hbcdpreg.h
* harbour/include/hbgtreg.h
* harbour/src/rtl/hbregex.c
* harbour/src/rdd/dbf1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/delim1.c
* harbour/src/rdd/sdf1.c
* harbour/src/pp/pplib3.c
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbmemio/memio.c
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbbtree/hb_btree.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/win_com.c
* modified to use HB_DATASEG_STARTUP instead of HB_MSC_STARTUP
Now HB_MSC_STARTUP is local macro used only in hbinit.h.
Please make MSVC build tests.
* harbour/contrib/hbmemio/memio.c
! declare s_fileFuncs structure as static
* removed unnecessary code to directly register HB_MEMIO symbol.
Mindaugas if you need it for some reasons then I can reactivate it
but I would like to know why it's necessary for you.
* harbour/src/vm/task.c
! added missing {}
* harbour/src/vm/fm.c
* locally disabled "unreachable code" warnings for dlmalloc.c
compilation by OpenWatcom in pure C mode
* harbour/src/rtl/hbzlibgz.c
* minor code cleanup
* harbour/src/rtl/filesys.c
* pacified OS/2 warnings
* harbour/contrib/hbcairo/core.c
! fixed casting for C++ builds
* harbour/contrib/hbwin/wapi_winbase.c
! fixed casting
* harbour/src/Makefile
* changed the order of compiled libraries to improve little bit
the speed in concurrent (-j<N>) builds
+ contrib/hbqt/hbqt_hbqtmymainwindow.cpp
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/Makefile
* MyMainWindow() class moved to separate source file.
* Deleted commented debug calls.
* Code formatting.
! Fix to call mutex initialization on MyMainWindows creation,
to guarantee its present. Anyhow current method is still not
safe.
% Cleaned some casts.
; TOFIX: mutex initialization in MyMainWindow.
; TOFIX: MyMainWindow is a leakable resource and it _is_
leaked from hbxbp.
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbppushbutton.prg
* contrib/hbxbp/xbp.ch
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpspinbutton.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbide/hbide.prg
* :createFromQtPtr() -> hbCreateFromQtPtr()
! Fixed few non-Xbase++ public functions to hold the
hbxbp_ prefix in their names.
It probably needs further cleanup.
% Highly optimized ConvertAFact(), now goes by the
name hbxbp_ConvertAFactFromXBP(). Only one conversion
was used in code, so I dropped the other, but it can be
readded similarly if ever needed.
! Mutex destroy moved to the end of EXIT PROC, anyway
it's still not safe and should be solved differently.
(TOFIX)
; TOFIX: hbxbp_SetEventFilter() is passed to several function,
but this function has no return value.
* contrib/hbcairo/core.c
* Minor.
* harbour/contrib/hbcairo/core.c
! fixed code which operates on GC blocks and make both versions
(with and without HB_USE_ITEM) working in the same way so thay
can be easy compared.
+ 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.