* source/vm/fm.c
! Fixed bcc C++ build errors by enabling USE_DL_PREFIX in this case.
Only this warning remain:
Warning W8008 ../../fm.c 386: Condition is always true in function dlmalloc_destroy()
* contrib/hbxbp/xbpdev.ch
+ Added SVN ID.
* source/rtl/hbinet.c
+ Added hbU16 casts to silence very old warnings.
* source/rtl/gtapiu.c
* Tweaked type and constant usage.
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbct/ctwfunc.c
* GetClearChar/SetClearChar changed to use USHORT for char
(was int). This resolves all remaining MSVC warnings.
* _HB_GT_BASE structure adapted to latest changes, three
vars changed from USHORT to int, one renamed to reflect
int type.
+ Added var names to a few functions declarations.
% Minor optimizations.
* hb_gtScrollEx() modified to not do parameter evaluation,
just pass them to low-level.
; Przemek, please review me, I've again encountered UCHARs
in hbct / SETCLEARB().
* source/rtl/idle.c
* SHORT -> int.
* Minor formatting.
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbpgeneric.prg
* harbour/contrib/hbxbp/xbpwindow.prg
! Cleanups ad tweaks.
+ harbour/contrib/hbxbp/xbppresspace.prg
+ Started XbpPresSpace() class - skeleton only.
+ harbour/contrib/hbxbp/xbpprintdialog.prg
+ Implemented XbpPrintDialog() class.
Mostly working but has some differences with Xbase++ - a work-in-progress.
+ harbour/contrib/hbxbp/xbpprinter.prg
+ Implemented XbpPrinter() class.
Mostly working but has some differences with Xbase++ - a work-in-progress.
Integrated with XbpPrintDialog()
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstration of XbpPrintDialog() and XbpPrinter() classes.
Click on <Print Dialog> toolbar button.
/* I would request Xbase++ users to test the code under different
permutations and combinations and please report the differences.
So far I have not received any support in this direction.
*/
* examples/terminal/trm_cli.prg
* examples/terminal/trm_cli.hbp
* examples/terminal/terminal.prg
* examples/terminal/trm_srv.prg
* examples/terminal/trm_srv.hbp
* examples/terminal/terminal.hbc
* examples/terminal/trm_app.prg
* examples/terminal/trm_app.hbp
+ Changed to use portable solutions instead of GTWVG/Windows facilites.
This means that these programs should now build and run on
all OSes with MT support and they will work with any full screen
GTs. I didn't test yet on other platforms and stopping the server
is a bit messy yet due to the newly added threads.
* contrib/hbct/ctwin.c
! Silenced MSVC warning.
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* changed BYTE to USHORT in few functions which expected character
for GTs with UNICODE screen buffer
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gttrm/gttrm.c
* updated for USHORT used as character holder
* harbour/source/rtl/gtwvt/gtwvt.c
% minor modification
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtalleg/gtalleg.c
* updated for BYTE to int as color holder modification
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
* harbour/contrib/hbct/ctwfunc.c
* harbour/contrib/hbnf/ftattr.c
! fixed casting changing values or added casting to force strict
translation
* modified to accept color and character values with wider ranges
* harbour/contrib/hbct/ctwin.c
! removed unnecessary stripping to BYTE in character and color values
* harbour/source/rtl/console.c
* pacified warning
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtdos/gtdos.c
* source/rtl/gtwin/gtwin.c
* source/rtl/gtxwc/gtxwc.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gttrm/gttrm.c
* source/rtl/gtcgi/gtcgi.c
* source/rtl/gtapi.c
* source/rtl/gtos2/gtos2.c
* source/rtl/hbgtcore.c
* source/rtl/gtsln/gtsln.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtwvt/gtwvt.c
* contrib/hbct/screen2.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbnf/ftattr.c
* Changed color representation to be 'int' in all places.
This means changes in high level and low level GT interfaces.
; QUESTION: In hbct UCHAR is used in a few places, I didn't want to
touch it.
; Please test and review.
; TODO: Clean char type usage (from int, UCHAR, BYTE, USHORT to what?)
; TODO: Clean attr type usage to be hbU8, or HB_ATTR, or else?
* include/hbapigt.h
* source/rtl/gtapi.c
! Fixed a few byAttr parameter names which should really be named bColor.
; TOFIX: ? hb_gtSetAttribute() and *SETATTRIBUTE interfaces
have a misleading name, as they're really setting
color, not attribute. (we called color as attr in
the beginning when no separate attr info was
implemented)
* harbour/source/rtl/gtwvt/gtwvt.c
% small optimization in non unicode builds - do not divide text
output and reduce number of hdc settings if the same font is
used for box and normal characters
* include/hbdefs.h
+ Added HB_RESULT. This is meant to replace current USHORT used
to store result (or "error" values).
* source/rtl/console.c
* USHORT -> int (printer coordinates).
* source/rtl/gtwin/gtwin.c
* source/rtl/gtwvt/gtwvt.h
* source/rtl/gtwvt/gtwvt.c
* Updated to use ints instead of [U]SHORTs internally.
; Please review me and correct any possible mistakes.
* contrib/xhb/xhbscr.c
% Deleted explicit casts.
* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
* changed last parameter of hb_gtRepChar() from USHORT uiCount to
ULONG ulCount
* removed basic parameter validation from hb_gtScroll() - such
things should be done by GT driver
* minor cleanup
* harbour/source/rtl/hbgtcore.c
% moved pbyBuffer initialization outside the loop in Rest/Save methods
* minor cleanup in casting
* harbour/source/rtl/mouse53.c
% minor optimization
* harbour/source/rtl/gtdos/gtdos.c
* changed buffer type in Mouse{Save,Restore}State methods from char *
to void *
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtcrs/gtcrs.c
! fixed casting
* harbour/source/rtl/xhelp.c
* harbour/source/rtl/console.c
% use 'int' instead of 'USHORT'
* harbour/source/rtl/saverest.c
* removed explicit casting
* harbour/source/rtl/scroll.c
* harbour/source/rtl/console.c
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
! fixed casting from 'char *' items which was wrongly changing
the results.
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
% eliminated not longer necessary intermediate variables used for
passing by reference in previous version with [U]SHORT casting
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/ftattr.c
* harbour/contrib/hbnf/ftshadow.c
* changed screen coordinates from [U]SHORT to int
* include/hbgtcore.h
* include/hbapigt.h
* include/hbapi.h
* source/rtl/scroll.c
* source/rtl/maxrow.c
* source/rtl/gtapi.c
* source/rtl/saverest.c
* source/rtl/console.c
* source/rtl/oldclear.c
* source/rtl/hbgtcore.c
* source/rtl/scrrow.c
* source/rtl/shadow.c
* source/rtl/setcurs.c
* source/rtl/mouse53.c
* source/rtl/gx.c
* source/rtl/mouseapi.c
* contrib/hbct/cursor.c
* contrib/hbct/ctwfunc.c
* contrib/hbclipsm/gauge.c
* Changed all USHORT to int in high-level GT API layer which
already had an int representation on the low-level.
Please review me. It's possible that some extra checks (or else)
need to be added since signedness has changed.
* Change mouse state buffer from char * to void *.
; TODO: Review remaining BYTE/USHORT usage for attr, color
and char. Char is sometimes represented by UCHAR,
sometimes by char and sometimes by USHORT. Color is
represented by both int and BYTE. attr is BYTE, which
can be changed to hbU8.
* include/hbgtcore.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* Changed low level GT SAVE/REST method buffer parameter type
to void * from BYTE *. Some explicit casts removed.
* Few more BYTE *s to char *.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/base64c.c
+ source/rtl/base64.prg
+ Added HB_BASE64ENCODE(), HB_BASE64DECODE() to core.
They were copied from hbtip and hbvpdf and currently
the decoder is .prg code while encoding is .c code.
Latter has one TOFIX for an error situation.
* contrib/hbtip/encurl.prg
* contrib/hbtip/thtml.prg
* contrib/hbtip/sessid.prg
* contrib/hbtip/popcln.prg
* contrib/hbtip/sendmail.prg
* contrib/hbtip/tip.ch
* contrib/hbtip/cgi.prg
* contrib/hbtip/url.prg
* contrib/hbtip/encqp.prg
* contrib/hbtip/base64x.c
* contrib/hbtip/httpcln.prg
* contrib/hbtip/client.prg
* contrib/hbtip/encoder.prg
* contrib/hbtip/smtpcln.prg
* contrib/hbtip/encb64.prg
* contrib/hbtip/mail.prg
* contrib/hbtip/credent.prg
* contrib/hbtip/ftpcln.prg
+ Added TOFIXes, QUESTIONs
! Fixed to use hb_MemoRead() instead of MemoRead() in one place.
! Fixed a wrong error checks after FCreate() calls.
! Fixed to use Len( hb_inetCRLF ) instead of hardwired length.
! Using hb_ntos() instead of Str() in POP3 commands.
* Changed explicit values to manifest constants (F_ERROR)
* Changed high ASCII chars in source to Chr() representation,
now source can be edited with any editor.
! Added missing copyright header to tip.ch. Although this header
seems to be unnecessary.
! TipMail:MakeBoundary() to not add any date punctuations in the ID.
! Fixed tIPClientFTP:fileSize() to not return permantent zero.
% Heavier optimizations and cleanup in TIpClientSmtp().
% Optimizations.
* Formatting.
; Please test.
* harbour/include/hbexpra.c
% reduce macro expressions used in POP operation.
It allows to use code like: &("((M->VAR))") := 1
* harbour/include/hbexprb.c
+ added support for iif() used in macro expressions passed by references:
proc MAIN()
local s := "IIF( lVar, xVar1, xVar2 )"
M->xVar1 := 1
M->xVar2 := 2
M->lVar := .T.
? M->xVar1, M->xVar2
P( @&s )
? M->xVar1, M->xVar2
proc P(x)
x+=1000
* harbour/source/vm/hvm.c
! fixed possible assign value lost in extended references
* harbour/contrib/hbxbp/xbpbitmap.prg
+ Implemented XbpBitmap() class - mostly working.
* harbour/contrib/hbxbp/xbpfiledialog.prg
! Shifted constants to hbqt.ch
* harbour/contrib/hbxbp/xbpfontdialog.prg
+ Implemented XbpFontDialog() and XbpFont() class with interaction.
* harbour/contrib/hbxbp/xbpstatic.prg
+ Implemented :type == XBPSTATIC_TYPE_BITMAP.
* harbour/contrib/hbxbp/xbpwindow.prg
+ Implemented :setFont( oXbpFont ).
! Enhanced "Attribute" factor of :compoundName to accept bold and italic together.
Integrated with :setFont()
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated XbpFontDialog() and XbpFont() implementation.
1. Click on <MLE> tab-page.
2. Click on <Font Dialog> toolbar icon.
3. Adjust and select a font.
4. See the result in MLE text editor.
+ Demonstrated XbpBitmap() functionality as in Xbase++, code shows up with both compilers.
* harbour/contrib/hbqt/hbqt.ch
* harbour/contrib/hbqt/QBitmap.cpp
* harbour/contrib/hbqt/QBrush.cpp
* harbour/contrib/hbqt/QCursor.cpp
* harbour/contrib/hbqt/QImage.cpp
* harbour/contrib/hbqt/QLine.cpp
* harbour/contrib/hbqt/QLinearGradient.cpp
* harbour/contrib/hbqt/QPicture.cpp
* harbour/contrib/hbqt/QPixmap.cpp
* harbour/contrib/hbqt/QPoint.cpp
* harbour/contrib/hbqt/QPointF.cpp
* harbour/contrib/hbqt/QRadialGradient.cpp
* harbour/contrib/hbqt/QRect.cpp
* harbour/contrib/hbqt/QRectF.cpp
* harbour/contrib/hbqt/QRegion.cpp
* harbour/contrib/hbqt/QSizeF.cpp
* harbour/contrib/hbqt/TQBitmap.prg
* harbour/contrib/hbqt/TQImage.prg
* harbour/contrib/hbqt/TQLine.prg
* harbour/contrib/hbqt/TQLinearGradient.prg
* harbour/contrib/hbqt/TQPicture.prg
* harbour/contrib/hbqt/TQPixmap.prg
* harbour/contrib/hbqt/TQPoint.prg
* harbour/contrib/hbqt/TQPointF.prg
* harbour/contrib/hbqt/TQRadialGradient.prg
* harbour/contrib/hbqt/TQRect.prg
* harbour/contrib/hbqt/TQRectF.prg
* harbour/contrib/hbqt/TQRegion.prg
* harbour/contrib/hbqt/TQSizeF.prg
* harbour/contrib/hbqt/qth/QBitmap.qth
* harbour/contrib/hbqt/qth/QBrush.qth
* harbour/contrib/hbqt/qth/QCursor.qth
* harbour/contrib/hbqt/qth/QImage.qth
* harbour/contrib/hbqt/qth/QLine.qth
* harbour/contrib/hbqt/qth/QLinearGradient.qth
* harbour/contrib/hbqt/qth/QPalette.qth
* harbour/contrib/hbqt/qth/QPicture.qth
* harbour/contrib/hbqt/qth/QPixmap.qth
* harbour/contrib/hbqt/qth/QPoint.qth
* harbour/contrib/hbqt/qth/QPointF.qth
* harbour/contrib/hbqt/qth/QRadialGradient.qth
* harbour/contrib/hbqt/qth/QRect.qth
* harbour/contrib/hbqt/qth/QRectF.qth
* harbour/contrib/hbqt/qth/QRegion.qth
* harbour/contrib/hbqt/qth/QSizeF.qth
! Updated for exact constructor parameters.
If the constructor accepts parameters with identical .prg supplied values,
a new parameter is inserted as a first argument and then resolved in .cpp.
oBrush := QBrush():new( "QPixmap" , pQPixmap )
oBrush := QBrush():new( "QImage" , pQImage )
oBrush := QBrush():new( "QGradient", pQGradient )
Note that constructor fetches only one argument, a pointer to relevant
object, which at prg to cpp level can never be differed so this
mechanism was necessary. The first parameter will be matched exact
and hence it is case sensitive. If this parameter is of the same type
object is being created then it call will only supply pointer:
oBrush := QBrush():new( pQBrush_other )
* utils/hbmk2/hbmk2.prg
+ Added -[no]ignore option which tells hbmk2 to ignore
errors returned by compiler tools and continue as normal.
Useful to gather all build errors in one pass.
! Fixed hbmk2 errorlevel on resource compiler error.
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbf1.c
! cleaned initialization code - use INIT method to make independent
from initialization code. It fixes default memo type setting in
DBFNSX (SMT) and DBFNTX (DBT) on some platforms
* contrib/xhb/xhbat.c
* contrib/hbtip/utils.c
* Moved ATI() function to xhb lib.
ATI() is different from HB_ATI() since it doesn't support
national chars, but it supports negative start/end values in
xhb style.
* contrib/hbtip/thtml.prg
* Changed to use core HB_ATI() instead of xhb specific ATI().
To me it looks that negative positions aren't used by hbtip code,
also respect for national chars is fine, so this replacement is okay.
Please review me and correct it if needed.
* contrib/xhb/xhbfunc.c
* contrib/hbtip/legacy.prg
* Moved HB_EXEC() to xhb lib. Restored the C version.
* contrib/hbtip/Makefile
- contrib/hbtip/legacy.prg
- Deleted. No longer necessary.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/ati.c
+ Added HB_ATI() function. This is the same as HB_AT(), but
case-insensitive. It supports national chars.
* contrib/hbtip/Makefile
* contrib/hbtip/thtml.prg
* contrib/hbtip/utils.c
+ contrib/hbtip/legacy.prg
* Renamed ATI() to TIP_ATI().
(Probably we should have a proper, CP-aware HB_ATI() function in core)
* Readded ATI() as legacy function.
% Using <sym>:exec() instead of HB_EXEC() local .c function.
+ HB_EXEC() moved to legacy status and reimplemented in .prg.
(Thanks Przemek and Petr)
% Minor optimization where TIP_ATI() is only used where
we're looking for alphabetic data.
I'd appreciate if someone could review me, I'm not using this code.
* harbour/contrib/hbqt/generator/hbqtgen.prg
! Some refinements and formatting.
* harbour/contrib/hbxbp/xbpstatic.prg
+ Implemented :type == XBPSTATIC_TYPE_SYSICON
With this XbpStatic() class is 100% Xbase++ compliant plus
Harbour has more goodies to play with, i.e., more sysicons to
display ( about 60+ ) instead of only 4 provided in Xbase++.
Plus Harbour has implemented to define mouse cursor from any image format.
* harbour/contrib/hbxbp/tests/demoxbp.prg
! Demonstrated all XbpStatic() implementation.