* harbour/source/rtl/hbgtcore.c
* formatting
* harbour/source/vm/hvm.c
! fixed typo in HB_TRACE message
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* updated for multi window usage
* harbour/source/vm/maindllp.c
* use MessageBox() instead of hb_errInternal() - thanks to Jon Jagger
for information about the problem
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/hbgtwvg/gtwvt.h
* harbour/contrib/hbgtwvg/gtwvt.c
* moved RGB definition of used colors to terminal window structure,
now each window can use different palette
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/gtapi.c
* harbour/source/rtl/inkeyapi.c
* harbour/source/rtl/mouseapi.c
- removed hb_gt_*(), hb_inkey_*(), hb_mouse_*() functions
+ implemented HB_GTSELF_*() functions and changed HB_GTSUPER_*()
ones to operate on GT context passed ad 1-st parameter.
Now GT API allows to create many GTs working simultaneously
+ added hb_gt_Base() core function which returns GT context
it will be extended soon to allow using many GT contexts,
setting thread default one or switch between them using some
.prg function.
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/gtpca/gtpca.c
* harbour/source/rtl/gttrm/gttrm.c
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gtcrs/gtcrs.h
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/gtsln.h
* harbour/source/rtl/gtsln/kbsln.c
* harbour/source/rtl/gtsln/mousesln.c
* harbour/source/rtl/gtalleg/gtalleg.c
* harbour/source/rtl/gtgui/gtgui.c
* harbour/source/rtl/gtwin/gtwin.c
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/hbct/ctwin.c
* harbour/contrib/hbct/ctwin.h
* harbour/contrib/hbct/ctwfunc.c
* harbour/contrib/hbgtwvg/gtwvt.h
* harbour/contrib/hbgtwvg/gtwvt.c
* updated GT code for new GT API. I still haven't added GT cloning
to them and only GTTRM is ready to use in multi window MT programs
but now they can be systematically modified and it can be done
locally without core code modifications.
* harbour/contrib/hbgtwvg/wvtutils.c
! fixed some memory leaks in Unicode conversions
* harbour/source/lang/msgltwin.c
* more changes from LT to LTWIN
* harbour/common.mak
* restored missing msgltwin.c
* harbour/include/hbapi.h
* harbour/source/vm/hashes.c
+ added hash key support for pointer type
* include/hbextern.ch
* common.mak
* source/codepage/Makefile
- source/codepage/cpdedos.c
+ source/codepage/cpde850.c
- source/codepage/cpeldos.c
+ source/codepage/cpel737.c
- source/codepage/cpesdos.c
+ source/codepage/cpes850.c
- source/codepage/cpfrdos.c
+ source/codepage/cpfr850.c
- source/codepage/cptrdos.c
+ source/codepage/cptr857.c
! Renamed some codepage modules to include the
actual DOS codepage number instead of nothing
or generic "dos" name.
* common.mak
* source/lang/Makefile
+ source/lang/msgtr857.c
- source/lang/msgtrdos.c
! Rename one language module to be in sync with
proper internal ID.
* doc/howtosvn.txt
! Fixed the SVN propset command to include all needed keywords,
not just "Id".
* common.mak
* source/codepage/Makefile
- source/codepage/cpgedos.c
- source/codepage/cpgeiso.c
+ source/codepage/cpdedos.c
+ source/codepage/cpdeiso.c
! Renamed to be in sync with rules and content.
* source/lang/msgnl.c
! svn propset svn:keywords "Author Date Id Revision".
(to correct my prev commit)
* include/hbextern.ch
! Adjusted CP/MSG module names.
* source/codepage/cphuwins.c
* source/codepage/cphuiso.c
* source/codepage/cphuwin.c
* source/codepage/cphuisos.c
! Fixed sloppy wording in comment. (Thanks Chen)
* common.mak
* source/codepage/Makefile
+ source/codepage/cpgeiso.c
- source/codepage/cpgewin.c
* Renamed to ISO to be in sync with the actual codepage used.
(Thanks Chen)
; Might be a good idea to readd the "real" WIN version to stay
compatible. Anyone?
* harbour/include/hbgtcore.h
+ added some missing HB_GTSUPER_* functions
* harbour/contrib/hbgtwvg/wvtcore.c
* use hb_gt*() functions instead of hb_gt_*() ones
* harbour/contrib/hbgtwvg/wvtutils.c
* harbour/contrib/hbgtwvg/gtwvt.c
* harbour/source/rtl/gtwin/gtwin.c
* harbour/source/rtl/gtgui/gtgui.c
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gttone.c
* harbour/source/rtl/gtclip.c
* minor cleanup in hb_gt_w32_*() function names
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/gtclip.c
* use common for all GT internal Clipboard buffer - thanks to Pritpal
for a note
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/inkey.c
+ harbour/source/rtl/inkeyapi.c
* moved hb_inkey*() functions to GT subsystem so now they can be
overloaded by GT drivers and/or operate on different GT context
* harbour/source/rtl/mouse53.c
* eliminated to unused static variables
* harbour/source/rtl/mouseapi.c
* do not include unnecessary header files
* harbour/source/rtl/gtchrmap.c
* replaced // comment by /* ... */
* harbour/common.mak
* harbour/make_gcc.mak
* harbour/make_gcc.sh
+ Added the possibility to build dll/so of Harbour VM+RTL
(tested om MingW, Cygwin, FC8/64)
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_vcce.mak
+ Added HB_ARCHITECTURE definition (to be used in a future)
* harbour/source/rtl/gtchrmap.c
! Fixed compilation under Linux using make_gcc.sh
* harbour/include/hbapigt.h
* removed declaration for not existing function: hb_inkeyGet()
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* moved all static variables used by core GT code to HB_GT_BASE
structure
* harbour/source/rtl/inkey.c
* cleanup
* harbour/contrib/Makefile
* moved HB_CONTRIBLIBS to the end build library list because they may
need some other contrib libraries in dependences list
* harbour/source/rtl/mouse53.c
* do not include unnecessary header files
* harbour/bin/pack_src.sh
* changed packing procedure - now it does not scan chosen directories
and files but all contents of all .svn/entries to extract files
stores in SVN repository and then pack them - it's very good method
to pack whole Harbour repository without .svn/* data and risk of
packing local files.
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* updated for recent changes in directory and library names
* harbour/include/hbwince.h
! Fixed compilation in C++ mode by renaming local variable
named "template" to "tmplt". "template" is a reserved
word in MSVC C++.
+ Added few missing WINAPI function declarations under
MSVC WinCE.
* harbour/source/common/hbwince.c
! Fixed compilation in C++ mode by renaming local variable
named "template" to "tmplt". "template" is a reserved
word in MSVC C++.
* harbour/source/common/hbfsapi.c
* define INVALID_FILE_ATTRIBUTES when not defined in C header
files - temporary workaround for missing INVALID_FILE_ATTRIBUTES
definition in new MSVC versions
* harbour/include/hbwince.h
* removed INVALID_FILE_ATTRIBUTES definition
* harbour/bin/hb-func.sh
* inherit some parameters like -mlp{64,32}, -m{64,32} set in C_USR
during build as default C compiler/linker switches in hb* scripts
* harbour/config/w32/pocc.cf
+ added comdlg32.lib to linked library list
* harbour/source/common/hbwince.c
+ added dummy FreeResource() function. This is a note from MSDN:
FreeResource() is an obsolete function. It is provided for backward
compatibility with 16-bit Windows applications. FreeResource() is
not necessary for 32-bit Windows applications to free the resources
loaded using LoadResource() function.
* harbour/contrib/gtwvg/wvtutils.c
+ added workaround for wrong ChooseColorW() definition in header
files include in last oficial relase (0.50) of MinGW32-CE
Pritpal above finished modifications I was able to make using
only pure MinGW32-CE 0.50. The following functions used by GTWVG
are still missing:
GetMenu(), SetMenu(),
CreateBrushIndirect(),
GetViewportOrgEx(),
IsDlgButtonChecked(),
OleLoadPicture(),
TrackPopupMenu(),
If you are sure that they exist in WinCE then simply create
static import library for them or dynamic wrappers.
* harbour/source/compiler/hbmain.c
* make all hb_compI18n*() functions which do not need external access
static - now only hb_compI18nAdd() is public function. If it will
be necessary to make other functions public then we will make it
but please always try to declare new functions as static if it's
not necessary to access them externally - it helps in future
modifications because we do not have to worry about external
code which may access some functions.
* harbour/config/hpux/gcc.cf
* added commented -mlp64 GCC switch to CFLAGS and LDFLAGS - this
switch forces 64-bit mode in HP-UX on IA64
* harbour/source/common/hbwince.c
+ added wrapper for LocalHandle() and direct translation for LocalLock()
* harbour/config/w32/cemgw.cf
+ added commdlg, commctrl, luuid and ole32 to linked library list
for some contrib code
* harbour/bin/pack_src.sh
* updated for recent file name modifications
* harbour/include/hbgtcore.h
* harbour/source/rtl/gtclip.c
* changed hb_gt_w32_SetClipboard() type from void to BOOL
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtpca/gtpca.c
* added basic input support for DJGPP
* harbour/contrib/gtwvg/gtwvt.c
! fixed memory leak and GPF trap
* harbour/contrib/gtwvg/wvtutils.c
! rewritten and fixed CLIPBOARD functions - Pritpal this functions
should be removed, they are redundant and works only in MS-Windows
* make WVT__GETOPENFILENAME() and WVT__GETSAVEFILENAME() Unicode
ready and fixed possible GPF trap
* harbour/include/hbwmain.c
* harbour/source/vm/mainwin.c
! fixed unnecessary conversion of WinMain() parameters on W32/W64
when UNICODE macro is set - thanks to Chen
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/delim1.c
! fixed code wrongly synced with xHarbour - in Harbour HB_SET_EOL
is char* not PHB_ITEM - thanks to Andi
* harbour/source/compiler/genc.c
! fixed file name in generated for C inline code by escaping
special characters - thanks to Andi
* harbour/source/rtl/gtwvt/gtwvt.c
* minor code cleanup
* harbour/contrib/gtwvg/wvtcore.c
! fixed setting default foreground and background color when user
does not pass it's own one. Previous versions was using _s->background
and _s->foreground - it was wrong because this variables in all
GTWVT base GTs (also in xHarbour) contains not default color but
the color recently used to redraw some part of screen - f.e. after
exposing some region - it means that they can have any value.
Such bugs are hard to locate because the same program can be executed
many times without any problem and suddenly he will use wrong colors
drawing sth - if you observed such effect then it can be the results
of the above problem. Now default color is taken from core GT code.
Two functions make it: hb_wvt_FgColorParam() and hb_wvt_BgColorParam()
Both accept also colors passed as standard Clipper strings.
The same should be also fixed in xHarbour just like the problem with
executing registered user functions when HVM is closing fixed in
previous commit - even if now it does not cause GPF (due to race
condition it may be exploited only sometimes) then it does not mean
it works correctly.
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* removed unused global hdc
* formatting and minor code cleanup
* harbour/source/vm/hvm.c
+ added to hb_vmRequestReenter() support for checking if HVM is
properly initialized and working for code which may want to execute
PCODE before HVM initialization or after HVM close - in such case
hb_vmRequestReenter() will return FALSE.
Please also remember that in the future hb_vmRequestReenter()
may return FALSE also in some other cases.
* harbour/source/vm/eval.c
* use hb_vmRequestReenter()/hb_vmRequestRestore() in hb_itemDo[C]()
instead of hb_vmPushState()/hb_vmPopState()
* harbour/contrib/gtwvg/gtwvt.c
! always use hb_vmRequestReenter()/hb_vmRequestRestore() before
executing .prg functions/codeblocks. It will resolve the problem
with executing .prg functions during HVM closing. Anyhow I suggest
to register C cleanup functions using hb_vmAtExit() for code which
needs some additional destructor/closing procedure.
* code formatting and indenting
* source/rtl/gtwin/gtwin.c
* source/rtl/gtcrs/gtcrs.h
* source/rtl/gtsln/gtsln.h
* source/rtl/gttrm/gttrm.c
* source/rtl/gtwvt/gtwvt.h
+ #defining xhb compatible K_SH_* keyboard codes only if
they were not already defined.
* utils/hbdoc/genasc.prg
! Fixed problem generating filenames for .txt output.
Also added LFN branch to get rid of the 8.3 limitation.
* harbour/doc/man/harbour.1
* harbour/source/compiler/hbusage.c
+ added description for -j switch
* harbour/include/hbexprb.c
* replaced // comments by /* */
* accept <cContext> (domain) parameters of HB_i18nGettext() when
number of parameters is two or more
Should we generate compile time warning when wrong number of
parameters is passed to this function or they are not literal
strings? Maybe only after -j+ or sth like that?
* harbour/include/hbclass.ch
* harbour/include/tbrowse.ch
* harbour/include/hbpers.ch
* harbour/include/getexit.ch
* replaced // comments by /* */
* harbour/source/compiler/hbmain.c
! fixed bad typo in hb_compI18nAdd() and memmove() range which can
cause GPF
* changed pFileName to FileName in hb_compI18nSave() to respect used
by us naming convention
* eliminated strcpy() - do not use strcpy()/strcat() - these functions
are reported as dangerous by security restrict compilers.
I suggest to use hb_strncpy()/hb_strncat() instead (remember about
different size meaning in these functions) or some others depending
on context (f.e. hb_strdup() in this case)
* harbour/source/common/hbwince.c
+ added dummy Arc(), FrameRect(), FloodFill() for WinCE builds
* harbour/make_gcc.mak
! restored TABs in rules definitions. Viktor TABs for GNU make
have special meaning - your last modifications broke this file
* harbour/contrib/libmisc/Makefile
! comment DIR rule as temporary workaround for problem with
library name
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* removed foreground and background from GLOBAL_DATA
- they are not necessary
+ added support for gfxPrimitive() - fixed xHarbour code
* harbour/contrib/gtwvg/gtwvt.c
+ added support for gfxPrimitive() - fixed xHarbour code
* removed some methods which can be safely replaced by
default ones
* harbour/tests/gfx.prg
* harbour/tests/wcecon.prg
* harbour/tests/gtchars.prg
* updated the order of changed font parameters
* harbour/contrib/xhb/hbcompat.ch
! added missing closing square bracket
* harbour/source/include/hbcompdf.h
* harbour/source/include/hbexprop.h
* harbour/source/include/hbexprb.c
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbmain.c
+ added i18n support
Implemented -j[filename] switch to indicate output filename. Default
filename is <sourcefilename>.pot. If switch -o is used, this file
is created in speficied output path.
Output file format is compatible with 'gettext' utils, but not all
available features are implemented.
Harbour level function HB_i18nGettext( cText [, cContext ] ) sould be
used to indicate translatable strings.
All this commit is commented using #ifdef HB_I18N_SUPPORT and is in
development stage. Please, do not use it yet.
* harbour/include/hbvm.h
* harbour/source/vm/hvm.c
* make hb_vmPushNumInt() public function
* harbour/contrib/gtwvg/wvtcore.c
! fixed hb_wvt_gtDlgProcMLess() and hb_wvt_gtDlgProcModal()
- fixed GPF when codeblock are used
- use hb_vmPushNumInt() instead of hb_vmPushLong() to push
handles and numbers with potentially unknown size.
I still suggest to use pointers ITEMs instead of converting
handles to numbers but I'm leaving such modifications to library
authors - using hb_vmPushNumInt() is a workaround for striping
highest 32 bit from handles by hb_vmPushLong() in XP64
- use hb_vmRequestReenter() / hb_vmRequestRestore() to avoid crash
when function/codeblock is executed during HVM has been serving
an exception (f.e. BREAK/QUIT/RETURN)
* harbour/source/rtl/gtwvt/gtwvt.c
* declared two functions
hb_gt_wvt_AddCharToInputQueue() and
hb_gt_wvt_AddCharToInputQueue()
as static - they were public by mistake
* harbour/contrib/gtwvg/wvtcore.c
* harbour/contrib/gtwvg/gtwvt.c
* moved hb_wvt_gtDlgProcMLess() and hb_wvt_gtDlgProcModal()
from gtwvt.c to wvtcore.c
These both functions are wrong and have to be fixed.
* farther cleanup:
- declared some internal functions as static
- synced some other with GTWVT
- removed some repeated declarations
* harbour/source/rtl/gtwvt/gtwvt.c
* formatting
* harbour/contrib/gtwvg/gtwvt.h
* harbour/contrib/gtwvg/gtwvt.c
* removed some unused code and redirect some methods to common
for all MS-Win GTs functions.
Pritpal this code needs cleanup. Now it's xHarbour GT hacked
to compile and link with Harbour API. It means that this code
also inherited some small incompatibilities to Clipper which
exists in xHarbour GTs. If you agree I'll try to systematically
clean it and as I can see IMO the final version will look like
GTWVT in core code plus some additional code so it can be quite
easy separated. Probably with some small modifications in GTWVT it
will be possible to remove these two files from GTWVG at all
changing GTWVG to inherit from core GTWVT. Such separation will
also show what is core GT code and what is GUI Windows extension
what should help in defining common multi platform API.
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
* set _LARGEFILE64_SOURCE in all builds and use HB_USE_LARGEFILE64
macro (set automatically when __USE_LARGEFILE64 is defined too or
HB_OS_HPUX && O_LARGEFILE) to enable large file support in 32 bit
POSIX systems. It should help to enable large file support in other
then Linux different 32 bit *nixes.
I hope it will resolve Sandro problems with HPUX.
* harbour/source/vm/itemapi.c
* do not return DATE item value in hb_itemGetNDDec()
It was old and unused xHarbour only code - now hb_itemGetNDDec()
is compatible with hb_itemGetND()
* harbour/source/rtl/seconds.c
! fixed typo in BSD builds
BTW can someone test current SVN code with Solaris?
I will not be able to make such test myself in the nearest few weeks.
* harbour/source/rtl/hbgtcore.c
+ added emulation for clipboard in core GT code.
Now:
hb_gtInfo( GTI_CLIPBOARDDATA ) -> <cClipData>
and:
hb_gtInfo( GTI_CLIPBOARDDATA, <cNewClipData> )
is working in all GTs even if such functionality is not supported
by OS.