* make_gcc.mak
* contrib/mtpl_gcc.mak
+ Added '-march=i586' for Windows platform.
(Sync with other make systems.)
* ChangeLog
+ Some changes marked as TOMERGE 1.0.
* contrib/hbtip/base64x.c
! Fixed and ages old problem with BUILDUSERPASSSTRING()
function, which always returned an empty string thus
making "AUTH PLAIN" broken. I wonder how this went
unnoticed for this long.
This also fixes unsafe strcpy() usage.
[TOMERGE 1.0]
* include/hbextern.ch
* common.mak
* source/codepage/Makefile
* source/codepage/cpeswinm.c
- source/codepage/cpes850.c
+ source/codepage/cpes850c.c
* source/codepage/cpesiso.c
+ source/codepage/cpesisoc.c
* source/codepage/cpeswin.c
+ source/codepage/cpeswinc.c
* source/codepage/cpesisom.c
* Spanish language support cleaned:
Modern collation made the default, fixed
CP linkage in ESWIN collations, Clipper
compatibility versions renamed to have an
ending 'C'
Now the following collations are supported:
ES850C - Clipper compatibility CP: IBM850
ESWINC - Clipper compatibility CP: Windows-1252
ESISOC - Clipper compatibility CP: ISO-8859-1
ESWIN - Modern CP: Windows-1252
ESISO - Modern CP: ISO-8859-1
ESMWIN - Compatibility with previous Harbour versions and xhb.
(this collation has wrong linkage, so everyone is
encouraged to use ESWIN or ESISO instead.)
Intentionally not added to hbextern.ch.
; TODO: Add ES850.
; TODO: Check whether Clipper compatibility is indeed true.
* contrib/rddsql/mysqldd.c
! Excluded sizeof() in #ifdef to compile with MinGW.
* contrib/hbhpdf/make_gcc.sh
! Fixed missing quote char.
* contrib/mtpl_gcc.mak
! Fixed to create its own OBJ dir. Not the ultimate
solution, pls enhance if you think.
* source/codepage/cpeswinm.c
* source/codepage/cpeswin.c
! Fixed linked codepage to be Windows-1252 instead of
ISO-8859-1. For the ISO versions, pls see ESISO variants.
* source/codepage/cpes850.c
* source/codepage/cpesisom.c
* Comments.
* contrib/make_gcc_all.sh
! Fixed to not include externally dependent contribs,
when HB_CONTRIBLIBS is specified by user.
* harbour/source/vm/thread.c
* removed casting to void* thread startup function passed
as _beginthread() parameter in OS2 builds. It should be checked if
it does not breaks GCC builds.
* harbour/source/rtl/seconds.c
* use getpid() instead of _getpid() in non GCC OS2 builds
* harbour/include/hbthread.h
! fixed typo
* harbour/source/vm/Makefile
* excluded mainpm.c from OS2 builds
* harbour/source/rtl/hbinet.c
* changed the #include order for OS2 OpenWatcom builds and added some
cleanups - please test other builds.
* common.mak
* source/codepage/Makefile
+ source/codepage/cpsviso.c
+ Added SVISO, which is the same as SVWIN, except it's
internally using ISO-8859-1 CP in sync with its name.
* source/codepage/cpsvwin.c
! Changed internal CP to Windows-1252 from ISO-8859-1,
so that it's in sync with its name.
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
+ added ULONG _hb_gettid( void ) to OS2 builds - thanks to Maurilio
* harbour/source/rtl/hbinet.c
* changed a little bit the order of including header files in OS2 builds
(blink fix for OpenWatcom OS2 builds).
* common.mak
* source/codepage/Makefile
- source/codepage/cpesmwin.c
+ source/codepage/cpeswinm.c
+ source/codepage/cpesiso.c
+ source/codepage/cpesisom.c
* Renamed cpesmwin -> cpeswinm (ESMWIN -> ESWINM) (INCOMPATIBLE)
+ Added Spanish ISO natsort modules. Besides their ID,
they are idendical with current ESWIN* natsorts, because
the WIN versions for some reason are using ISO-8859 CP
instead of Windows-*. This is IMO wrong, even if these CPs
are similar or identical for the Spanish language.
* harbour/include/hbexprb.c
! fixed possible GPF/internal memory corruption in code like:
? HB_I18N_GETTEXT_NOOP( "Ala ma kota" + " !!!" )
Mindaugas, the fix is also the answer for the question you left
in TODO.
* harbour/source/vm/dynlibhb.c
* forced casting in OS2 builds to eliminate problems with possible
differences between compilers in 'char' type sign
* harbour/source/rtl/filesys.c
! use _getcwd1() only in GCC OS2 builds - it's local GCC function
* removed some header files from OS2 build - please test if it does
not break GCC builds
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/hbgtwvg.ch
* harbour/contrib/gtwvg/wvgpaint.prg
! Synchronized with GTWVT.
+ Added HB_GTI_* hb_gtInfo() constants:
HB_GTI_PRESPARAMS // provides mechanism to configure windows appearance and behavior
HB_GTI_ENABLE // enables window to receive input focus with specified GT
HB_GTI_DISABLE // disables window to accept input focus with specified GT
HB_GTI_SETFOCUS // sets the input focus to specified GT
+ Added HB_GT_PP structure supporting design-time presentation
parameters via HB_GTI_PRESPARAMS:
HB_GTI_PP_EXSTYLE // extended style of the window
HB_GTI_PP_STYLE // normal style of the window
HB_GTI_PP_X // left position by pixel | top position by row
HB_GTI_PP_Y // top position by pixel | left position by col
HB_GTI_PP_WIDTH // width of the window by pixel | number of rows in window
HB_GTI_PP_HEIGHT // height of the window by pixel | number of columns in window
HB_GTI_PP_PARENT // parent GT if window needs to be modal and/or other usage
HB_GTI_PP_VISIBLE // flag to specify if the window is made visible immediate after this call
HB_GTI_PP_ROWCOLS // flag to interpret X,Y,WIDTH,HEIGHT as Top,Left,Rows,Cols
;IMPLEMENTS the behavioral changes to current GT window invoked
either by hb_gtCreate() or hb_gtSelect() functions by specifying
an array of 9 elements ( bound to increase in future ) via
hb_gtInfo( HB_GTI_PRESPARAMS, aPresParams ) where <aPresParams>
contains elements described as above:
1. ExStyle N [D] 0
2. Style N WS_OVERLAPPEDWINDOW
3. x[pxl] top[row] N 0
4. y[pxl] left[col] N 0
5. width[pxl] rows[row] N CW_USEDEFAULT
6. height[pxl] cols[col] N CW_USEDEFAULT
7. Parent GT P NIL
8. Visibility L FALSE
9. RowCols L FALSE
<aPresParams> must be passed with all 9 elements even if
you want only few to be changed.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Updated to demonstrate above concept to show up a modal dialog in the
same thread on top of a threaded window. Try to click on the parent window.
<Traditional><Browser><F3> will show up this modal dialog.
;NOTE : Please do not use literals to define members, always use
#defines from hbgtwvg.ch as it is a work in progress and is possible
that few of the definitions may change in future.
* source/rtl/hbi18n.c
* Modified __I18N_GETTEXT() to not RTE when trs table
is non-array (like NIL).
* USHORT -> ULONG in a few places.
* source/rtl/gtwvt/gtwvt.c
* Minor formatting.
* source/rtl/gtwvt/gtwvt.c
+ Added support for HB_GTI_ICONRES, HB_GTI_ICONFILE
before the window is created.
! Fixed resource leak when HB_GTI_ICONFILE was used.
! Fixed problem with HB_GTI_ICONRES when it was resetting
the icon if a non-string/non-numeric parameter was passed
passed, which included simply trying to read the value
using hb_gtInfo( HB_GTI_ICONRES ). If this was an intented
feature, pls speak up.
; Please review these changes.
(this file somehow didn't get committed previously)
* harbour/source/rtl/itemseri.c
! fixed 8-bytes integer numbers deserialization
+ added support for serializing number with information about size
and decimal places. It can be activated by passing .T. as second
parameter to HB_SERIALIZE() function.
Mindaugas please test if this is what you asked for.
* harbour/source/rtl/hbi18n.c
* changed USHORT to ULONG to pacify warning and minor speed increase
(it eliminates later conversions to 32bits when variable is used)
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
! fixed HB_GTI_SETPOS_ROWCOL and HB_GTI_SETPOS_XY parameters decoding
* automatically resize caret when cell size is changed
* show window after setting its all parameters to eliminate visible
resizing and repositioning. It did not eliminate multiple calls to
hb_gt_wvt_FitSize() when windows is created. This has to be fixed
yet or at least low level actions in this function not repeated
when window and font dimensions are the same as in last call.
Please test it in real MS-Windows. It should reduce startup
flickering and increase the speed of initial code.
* source/rtl/gtwvt/gtwvt.h
* source/rtl/gtwvt/gtwvt.c
+ Added support for HB_GTI_ICONRES, HB_GTI_ICONFILE
before the window is created.
! Fixed resource leak when HB_GTI_ICONFILE was used.
! Fixed problem with HB_GTI_ICONRES when it was resetting
the icon if a non-string/non-numeric parameter was passed
passed, which included simply trying to read the value
using hb_gtInfo( HB_GTI_ICONRES ). If this was an intented
feature, pls speak up.
; Please review these changes.
* source/rtl/hbi18n.c
% Removed 'comment' field from language file header. Any text
can be added simply by adding it to the translation table.
* contrib/Makefile
! Missing hbdbgfx added here, too.
; BTW, I've intentionally left this lib out from the liblist
until we decide where to put these functions. There is
not much point maintaining for the sake of just a few functions.
If there are no objections, I'll be moving these functions
to hbwin (until someone updates the code to work outside
Windows).
* harbour/include/hbdefs.h
+ added #define INCL_LONGLONG to include native compiler LONGLONG
definition. It's necessary for OpenWatcom. Please check how it will
interact with other OS2 compilers (GCC)
* include/hbextern.ch
* source/rtl/memofile.c
+ Added HB_MEMOREAD() which is identical to MEMOREAD()
except it won't truncate the last byte (on non-UNIX
compatible systems) if it's a EOF char.
See also existing HB_MEMOWRIT().
[TOMERGE 1.0]
* include/hbextern.ch
* source/rtl/hbi18n.c
% Using buffered hb_file*() API in __I18N_LOAD()
instead of plain hb_fs*(). This will cause speedup when
buffering gets implemented in hb_file*(), because
currently two hb_fsRead() will be executed for each
string stored in the language file.
- __I18N_LOAD(): Because of the above, passing a file handle
is no longer possible.
+ Added __I18N_LOADFROMMEMORY( <mem> ) => trs
% Minor internal cleanups.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
+ source/rtl/hbi18n.c
+ Added basic/low level i18n functions:
__I18N_SAVE( cFileName | nHandle, aSortedTable [, cComment ] ) => lSuccess
__I18N_LOAD( cFileName | nHandle ) => trs
__I18N_GETTEXT( @cText, trs ) => NIL
; NOTE: These were originally based on Giancarlo Niccolai's work in xhb,
but everything was completely reworked, fixed, internals removed,
made portable, lighter, shorter and probably quicker. The used file
format is incompatible, slightly smaller and portable.
; NOTE: The internal format of 'trs' (loaded translation) is also
different. For minimal memory/speed overhead, I've choosen a one
dimensional array, as opposed to the original two dimensional
(like the input aSortedTable array).
; TODO: Higher level functions to handle selecting a default
language, loading files automatically, possibly caching
multiple loaded language translations in memory and providing
a high level HB_I18N_GETTEXT() function. We may also readd
a low-level function to create 'trs' from a memory object
instead of loading it from the disk. We should in any case make
the higher level the lightest and less app specific as possible.
* include/hbver.ch
* source/rtl/version.c
* utils/hbtest/rt_str.prg
* ChangeLog
! Fixed returning bit width.
* Reworked hb_version() parameter values as follows:
(also fixed some differences between docs here in the
previous entry and actual code)
HB_VERSION_HARBOUR (was: HB_V_HARBOUR )
HB_VERSION_COMPILER (was: HB_V_COMPILER )
HB_VERSION_MAJOR (was: HB_V_MAJOR )
HB_VERSION_MINOR (was: HB_V_MINOR )
HB_VERSION_MICRO (was: HB_V_REV )
HB_VERSION_STATUS (was: HB_V_STATUS )
HB_VERSION_REVISION (was: HB_V_COUNT )
HB_VERSION_BLD_DATE_STR (was: HB_V_DATE_TIME )
HB_VERSION_BLD_DATE (was: HB_V_DATE )
HB_VERSION_BLD_TIME (was: HB_V_TIME )
HB_VERSION_PCODE_VER (was: HB_V_PCODE )
HB_VERSION_PCODE_VER_STR (was: HB_V_PCODE_STR )
HB_VERSION_CHANGELOG_LAST (was: HB_V_CHANGELOG_LAST )
HB_VERSION_CHANGELOG_REV (was: HB_V_CHANGELOG_REV )
HB_VERSION_FLAG_PRG (was: HB_V_FLAG_HARBOUR )
HB_VERSION_FLAG_C (was: HB_V_FLAG_C )
HB_VERSION_FLAG_LINKER (was: HB_V_FLAG_LINKER )
HB_VERSION_BITWIDTH (was: HB_V_BITWIDTH )
HB_VERSION_ENDIANNESS (was: HB_V_ENDIANNESS )
This function makes deprecated following functions:
- HB_COMPILER() => hb_version( HB_VERSION_COMPILER )
- HB_PCODEVER() => hb_version( HB_VERSION_PCODE_VER_STR )
- HB_BUILDDATE() => hb_version( HB_VERSION_BLD_DATE_STR )
and macros:
- __ARCH16BIT__
- __ARCH32BIT__
- __ARCH64BIT__
- __LITTLE_ENDIAN__
- __BIG_ENDIAN__
- __PDP_ENDIAN__
- HB_VER_SVNID
- HB_VER_CHLID
- HB_VER_LENTRY
- HB_VER_C_USR
- HB_VER_L_USR
- HB_VER_PRG_USR
; TOFIX: Some term anomalies regarding 'REVISION'.
* source/vm/runner.c
* Minor formatting and added "s_" prefix to static var.