* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
* common.mak
+ Added -DHBMK_INTEGRATED_COMPILER compile time option
to enable integrated Harbour compiler. Experimental,
please test. This results is bigger executable (obviously)
but may be more efficient on some platforms.
% Using .exe extension for external commands on non-*nix.
* Using slightly different format to echo commands on
screen, they are now printed in a new line and they are
not put between quotes.
* make_b32.mak
* make_vc.mak
* common.mak
+ bin/hbmk.bat
* utils/hbmk/Makefile
- utils/hbmk/hbmk.prg
+ utils/hbmk/hbmk2.prg
+ Renamed hbmk to hbmk2 to avoid collision with hbmk script,
and to allow parallel testing.
+ Readded hbmk.bat to redirect to hbmk2.exe.
This will be removed in the future. Win9x/OS/2 isn't
supported with this batch file.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* common.mak
* utils/Makefile
+ Added hbmk to make systems.
* utils/hbmk/hbmk.prg
+ Update. Second pass, it's now ready for testing. I've
only tried with BCC yet.
Please test and if possible update internal setup
for various platforms/compilers.
* harbour/common.mak
* harbour/source/rtl/Makefile
- harbour/source/rtl/hbi18n.c
+ harbour/source/rtl/hbi18n1.c
* renamed hbi18n.c to hbi18n1.c to avoid conflicts with hbi18n
program - non GNU make files needs unique file names
! fixed bug in internal function __I18N_HASHTABLE()
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbi18n2.prg
+ added new I18N functions to manage .pot files and generate .hbl ones.
public functions:
HB_I18N_loadPot( <cFile>, [<pI18N>] [, @<cErrorMsg>] ) -> <pI18N> | NIL
Reads .pot file and returns Harbour translation set or NIL when
error appears. In such case <cErrorMsg> is contains error message
string. If second parameter [<pI18N>] is given then translation
items read from .pot file are added to this set. Otherwise new
Harbour translation set is created.
HB_I18N_savePot( <cFile>, <pI18N> [, @<cErrorMsg>] ) -> <lSuccess>
Generates .pot file from Harbour translation set. Please note
that Harbour translation set does not contain additional
information which exists in original .pot files like source
code numbers or alternative plural forms.
internal functions for Harbour developers which will work on I18N
tools:
__I18N_potArrayLoad( <cFile> [, @<cErrorMsg>] ) -> <aTrans> | NIL
Reads .pot file and returns array with translation items or
NIL when error appears. In such case <cErrorMsg> is contains
error message string.
<aTrans> is an array with translation items containing additional
informations from .pot file which are not necessary in final
translation sets used at runtime. It's designed for I18N tools
written in Harbour to manage .pot files and/or create .hbl ones.
__I18N_potArraySave( <cFile>, <aTrans> [, @<cErrorMsg>] ) -> <lSuccess>
Generates .pot file from array with translations items.
__I18N_potArrayJoin( <aTrans>, <aTrans2> ) -> <aTrans>
Join two arrays with translation items. Items from <aTrans2>
are added to <aTrans>. If given translation item already exists
in <aTrans> (the same msgctxt and msgid) then source code references
are merged and translations from <aTrans2> are added only if
<aTrans> does not have it.
__I18N_potArrayToHash( <aTrans>, [<lEmpty>] [, <hI18N>] ) -> <hI18N>
Converts array with translation items to hash table in the format
used internally by Harbour translation sets. It's the same format
as used __I18N_hashTable() function. The conversion removes data
which is not necessary for runtime translations like source code
references or alternative source plural forms.
If second parameter <hI18N> is given then translation items form
<aTrans> are added to it. Otherwise new hash table with is created.
If <lEmpty> is .T. then also items with empty translation are added
but source strings are used instead of missing destination ones.
* harbour/include/hbextern.ch
+ added new I18N functions
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_gcc.mak
* harbour/common.mak
* harbour/utils/Makefile
+ harbour/utils/hbi18n
+ harbour/utils/hbi18n/hbi18n.prg
+ harbour/utils/hbi18n/Makefile
+ added very simple application to manage .pot/.hbl files
Syntax: hbi18n -m | -g [-o<outfile>] [-e] [-q] <files1[.pot] ...>
-m merge given .pot files
-g generate .hbl file from given .pot files
-o<outfile> output file name
default is first .pot file name with
.po_ (merge) or .hbl extension
-e do not strip empty translation rules from .hbl files
-q quiet mode
TODO: extend it and add support for interactive mode which will
allow to edit translations.
+ harbour/include/hbrddnsx.h
+ harbour/source/rdd/dbfnsx
+ harbour/source/rdd/dbfnsx/dbfnsx1.c
+ harbour/source/rdd/dbfnsx/Makefile
* harbour/config/global.cf
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_gcc.mak
* harbour/common.mak
+ added new DBFNSX RDD. Those of you who knows SIX3 should also
know NSX index format. It's very interesting format and in some
cases much better then CDX. I hope you will find it interesting.
In hbrddnsx.h you can find detail information about Harbour NSX
implementation.
It's a small gift from me for Christmas ;-)
I would like to wish all of you Marry Christmas and Happy new Year.
best regards,
Przemek
* common.mak
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* Smoothened the difference between HARBOURFLAGS and
HARBOURFLAGSDLL under the name HARBOURFLAGSLIB.
Now all core .prg modules will be compiled with -n1
Harbour switch. This also means double compilation
of .prg modules for static/dynamic libs could be
optimized out as the object files are the same in
both modes.
TODO: Make -n1 switch unnecessary.
* contrib/mtpl_gcc.mak
+ Added -n1 to HARBOURFLAGS. This way Harbour functions
in libs will never be considered as entry points in
executables or when any such module is built as dynamic
lib in the future.
* contrib/make_gcc_all.sh
* Minor formatting.
* make_b32.mak
* make_vc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
* Minor fix.
* contrib/hbcurl/make_b32.bat
* contrib/hbcurl/make_vc.bat
* contrib/hbcurl/Makefile
- Removed recently added HB_HBCURL_USR_C.
* contrib/gtwvg/tests/demowvg.prg
* Replaced '#if __MW__' with 'IF hb_vmmt()'.
(not tested)
* contrib/gtwvg/tests/hbmk_b32.bat
* contrib/gtwvg/tests/hbmk_vc.bat
! Added hbwin.lib to HB_USER_LIBS list.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgclass.prg
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgphdlr.prg
* contrib/gtwvg/wvgpaint.prg
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgwnd.prg
* contrib/gtwvg/wvgcrt.prg
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgsink.c
! SVN IDs missing, mistyped. SVN tags now reset.
; TOFIX: GTWVG is now broken with MSVC 8 and/or C++ and/or 64-bit modes,
also unsafe string function is used:
- strcat() should be hb_strncat().
- Usual but wrong HRESULT to ULONG conversions break in 64-bit.
- Some newest Windows features should be probably guarded.
.\gtwvg.c(1913) : warning C4013: 'TrackMouseEvent' undefined; assuming extern returning int
.\gtwvg.c(3205) : error C2065: 'WS_EX_LAYERED' : undeclared identifier
.\wvgsink.c(128) : warning C4244: 'return' : conversion from 'HB_THREAD_NO' to 'int', possible loss of data
.\wvgsink.c(339) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(352) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(368) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(392) : warning C4245: 'return' : conversion from 'HRESULT' to 'ULONG', signed/unsigned mismatch
.\wvgsink.c(455) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(457) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(460) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(463) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(466) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(469) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(472) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(475) : error C2039: 'n1' : is not a member of 'tagVARIANT'
.\wvgsink.c(633) : warning C4305: 'type cast' : truncation from 'HB_LONG' to 'device_interface *'
.\wvgsink.c(652) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
+ Added 'set HB_BUILD_OPTIM=no' option to disable
all C compiler optimization for all compilers in
non-GNU make system. This replaces old envvars
BCC_NOOPTIM and GCC_NOOPTIM and add MSVC support
for this option.
* common.mak
* Formatting.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* common.mak
+ Added generation of hbmainstd and hbmainwin libs.
* bin/hbmk.bat
+ Changed to use above libs. This also means that '-shared'
can now be used in Harbour binary distributions, too.
* make_b32.mak
* make_vc.mak
! Added hbpp.lib and hbcommon.lib to HBRUN_DLL liblist.
* include/hbapi.h
* source/vm/cmdarg.c
* source/common/hbver.c
* source/common/hbverdsp.c
* source/rtl/console.c
* source/rtl/setcolor.c
* source/rtl/setcurs.c
+ Added HB_EXPORT to some functions to make it possible
to build hbrun-dll.exe.
For other reasons, it only works if Harbour built with
set C_USR=-DHB_DYNLIB.
; TODO: Make HB_DYNLIB the default build mode, do gradual
steps to remove separate DLL building pass, and
finally to remove HB_BUILD_DLL option.
The only drawback will be about 10-100K
(currently) overhead in final executable size due
to included export table for BCC and MSVC builds.
* make_b32.mak
* contrib/mtpl_b32.mak
* config/w32/bcc32.cf
- Added -4 switch, which means Intel 386 CPUs are not
not supported by default.
* make_vc.mak
+ Added -GA switch to MSVC 32/64 which creates smaller
(and only slightly faster) TLS access code.
* source/compiler/cmdcheck.c
* source/compiler/hbusage.c
+ Added -/+ suboptions to -k? options to make it
possible to set them to the opposite setting.
; NOTE: BTW, shouldn't -ki option also disable
#pragma BEGINDUMP/ENDDUMP? IMO it should,
otherwise it doesn't really enforce C
out of .prg code.
* config/w32/gcc.cf
* config/w32/mingw.cf
* Changed -march=i486 to -march=i586.
; NOTE: Please comment on CPU optimization switches, IMO
we can quite safely target Pentium/586 as the
minimum CPU requirement these days for default
Harbour builds. If someone needs to run it on
386 (Win95) or 486 (Win98/WinME), a special built
can be created.
* make_b32.mak
* make_vc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
* "IF EXIST" -> "if exist" for consistency.
* "-" echo supression char consistently changed to "@",
and added where it was missing (for 'if exist' commands).
* make_vc.mak
% Cleaned WinCE C options from unnecessary quotes.
% Minor opt in .dll flag assembly.
% Some commented options removed.
* WinCE LDFLAGS uppercase to lowercase.
% Minor opt in non-WinCE LDFLAGSDLL assembly.
* source/rtl/gtwvt/gtwvt.c
* Minor formatting.
* common.mak
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* HB_BUILD_VERBOSE=yes is now the default. If someone
is wanting to build Harbour from source and is bothered
by the compiler command-lines being shown, these can
be turned off with HB_BUILD_VERBOSE=no.
These lines are IMO very important to see, which options
were exactly used when Harbour was built, I personally
archive these logs along with the builds.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
+ Readded -b when HB_BUILD_STATIC=yes.
Now it should work.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
% Deleted -l- switch when HB_BUILD_STATIC=yes.
Line numbers are automatically enabled when
-b switch is used.
* source/debug/debugger.prg
* Renamed getdbginput() -> __dbgInput()
; NOTE to TOFIX: Do we need "Mono display" these days? :)
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* Removed disabling -b for non-debug builds.
; We aim to remove RTL .prg dependencies from hbdebug.lib,
either by local implementation, .c rewrite, or force
disabling debug mode in more core files.
Until this happens, one will have to be careful with
using -b switch to compile Harbour. These are the core .prg
modules currently used by hbdebug.lib:
- HBGETLIST(), GET(), __GET(), __GETLISTACTIVE(), __GETLISTSETACTIVE(), READINSERT(), READMODAL()
- HBCLASS()
- HBOBJECT()
- HBEDITOR()
- TBCOLUMNNEW()
- ACHOICE()
- ALERT()
* source/debug/dbgtobj.prg
* source/debug/dbgbrwsr.prg
* source/debug/dbgtwin.prg
* source/debug/dbgmenu.prg
* source/debug/dbgthsh.prg
* source/debug/tbrwtext.prg
* source/debug/dbgwa.prg
* source/debug/debugger.prg
* source/debug/dbghelp.prg
* source/debug/dbgtarr.prg
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
+ Readded '#pragma DEBUGINFO=OFF'.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
! Minor formatting.
* include/hbapierr.h
! Fixed casting in macro HB_ERR_FUNCNAME, as it was
generating a new warning with MSVC in 64-bit mode.
'( ( char * ) 1 )' -> '( ( const char * ) NULL + 1 )'
('const' keyword was not enough to silence it)
* include/hbapierr.h
* source/rtl/errorapi.c
- Disabled (marked with HB_LEGACY_LEVEL) hb_errFuncName
symbol. No longer supported, pls use HB_ERR_FUNCNAME
instead.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* Removed special 'set HB_GT_LIB=gtXXX' support. For the exact
same effect - in case you want to modify default GT at
build time, which is not recommended -, pls use this:
'set C_USR=-DHB_GT_LIB=XXX' where XXX is 'wvt', 'std', etc.
- Removed HARBOURFLAGSDLL, LDFLAGSDLL, CFLAGSDLL as public options.
It's better to keep these settings common IMO, and handle
all DLL subtleties in our make files.
+ L_USR is now respected for .dlls, too.
! Fixed make_gcc.mak internal HARBOURFLAGSDLL to be in sync
with the other .mak files (removed -l switch).
- Removed HB_BUILD_MODE for VC builds. Now C/C++ is left to
the default value (which is C mode for core), and it's possible
to override using:
'set C_USR=-TP' for C++ mode (or -TC for forced C mode).
% Other minor cleanups.
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
- Removed HB_BUILD_MODE undocumented options from contrib
make files. For Borland C++ mode, use 'set C_USR=-P'.
For VC, see above.
- Removed HB_BUILD_ST undocumented option.
% Other minor cleanups.
* contrib/xhb/hbcompat.ch
* contrib/xhb/xhb.ch
! Moved __COPYFILE() translation to xhb.ch.
* common.mak
* make_b32.mak
* make_vc.mak
* make_gcc.mak
- Removed option HB_BUILD_ST to build another version
of Harbour MT build [for non-GNU builds], or forced
SingleThreaded (non -tWM) Harbour builds.
* Modified to not allow CFLAGSMT to be tweaked from the
outside [for non-GNU builds].
* make_b32.mak
* make_vc.mak
! Fixed to use 'COPY /B' instead of 'COPY /A' to install
headers, to avoid appending and EOL to these files.
They should work as is.
* make_gcc.mak
! Fixed mainstd lib name.
[TOMERGE 1.0]
* include/hbthread.h
% Disabled HB_USE_TLS for __BORLAND__ and __MINGW32__ for
best performance.
* contrib/hbwhat/whtmmcap.c
! Fixed some warnings under certain MinGW 4.3.2
installations.
TODO: hbwhat users pls finish this fix.
* utils/hbmake/hbmake.prg
! Fixed hbw32 to hbwin.
* Win32 references changed to Windows.
* make_gcc.sh
* Not accepting CFLAGS anymore as custom C flags envvar.
Pls use C_USR instead.
* make_gcc.mak
+ Added wsock32 lib to Cygwin system liblist.
! Removed setting HB_OS_* macros explicitly.
* make_b32.mak
* make_vc.mak
* Minor formatting.
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* harbour.spec
* source/rtl/hbgtcore.c
* source/rtl/Makefile
* source/rtl/gtsys.c
* config/w32/poccce.cf
* config/w32/xcc.cf
* config/w32/pocc.cf
% Removed HB_GT_DEFAULT envvar, which was the exact synonym
of HB_GT_LIB. Please use HB_GT_LIB instead, if you - by any
chance - want to change the default GT at Harbour build-time.
* tests/speedtst.prg
! Fixed to delete temp .dbf files before exiting.
* make_b32.mak
* make_vc.mak
* common.mak
* source/rtl/hbgtcore.c
! Any messing with HB_GT_LIB and HB_GT_DEFAULT was removed
from non-GNU make files, to leave these things to the
source code itself (just like in GNU-make).
+ Added automatic selection of GTWVT from source code,
so that it also works in GNU-make.
* source/rdd/dbfcdx/dbfcdx1.c
! Restored RTE behaviour when key length is zero.
! Recently added C53 compatible but C52 incompatible
RTE enabled only if HB_COMPAT_C53 and HB_C52_STRICT
are both #defined to not make valid C52 apps crash.
; Someone pls review me.
* debian/changelog
* Synced with 1.0.1.
* source/pp/ppcore.c
! Minor typo in one PP error message. (sync 1.0.1)
* Cleaned ":" from all PP error/warning messages to be
friendly with Eclipse.
* source/compiler/hbgenerr.c
* Cleaned some more ":" chars from compiler error/warning
messages to be friendly with Eclipse.
; NOTE: Few more still remain. If you have an idea how to rephrase these, pls tell:
"Bound error: '%s'"
"Syntax error: '%s'"
"Syntax error: \"%s at '%s'\""
"Invalid lvalue: '%s'"
"Invalid use of '@' (pass by reference): '%s'"
"3Incompatible type in assignment to declared array element expected: '%s'"
"4Suspicious type in assignment to declared array element expected: '%s'"
* utils/hbmake/hbmake.prg
* Updated by large patch from Bill Robertson.
Adds several enhancements, fixes and optimizations
to the previous version.
* utils/hbdoc/hbdoc.prg
* utils/hbmake/hbmake.prg
* utils/hbrun/hbrun.prg
* Changed the way version number is shown.
* utils/hbmake/hbmake.prg
* Updated MT lib lists. (untested)
* make_b32.mak
* Minor sync with make_vc.mak.
* make_vc.mak
* Attempt to implement hbvmmt.lib just like in
make_b32.mak to make them synced.
* make_b32.mak
* contrib/mtpl_b32.mak
+ Added -vG -Od to debug flags (CodeGuard and no optimization
if HB_BUILD_DEBUG is 'yes').
; I couldn't test it, because I'm getting a fatal error
when trying with my BCC build file.
Fatal: Unable to open file '.OBJ'
* harbour/bin/pack_src.sh
* added file list to archive so it's possible to recreate it later without SVN data
* harbour/common.mak
* harbour/make_b32.mak
* harbour/make_gcc.mak
+ added HBVMMT library for default builds
BCC version not tested - please test.
* harbour/source/vm/hvm.c
* moved language and code page setting before class and error initialization
* harbour/source/rtl/fserror.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
! fixed overloading FS error codes by other operations, f.e. accessing
TLS data by OS API function call