8a50c19c2ba02a8ee839d7693e45aadbb93e75ea
101 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
43c3c2eeb1 |
2008-05-22 10:30 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
* source/rdd/dbcmdx.c
+ Added dbPack() and dbZap() XBase++
compatibility functions.
|
||
|
|
addea6d04e |
2008-05-22 08:00 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
- contrib/hbmisc/dbftools.c
* contrib/hbmisc/common.mak
* contrib/hbmisc/Makefile
- Removed to avoid collision with similar file in hbct.
Notice the content was also similar, except that
in hbct it was updated and extended. There was also
FIELDTYPE() implemented which was colliding with
function with the same name in core.
* include/hbextern.ch
* source/rdd/dbcmd.c
* source/rdd/dbdrop.c
* source/rdd/dbexists.c
* source/rdd/fieldhb.c
+ Added HB_ prefixed versions of DBDROP(),
DBEXISTS(), FIELDDEC(), FIELDLEN(), FIELDTYPE()
* source/rdd/rddinfo.c
! Comment.
* tests/multifnc/Makefile
! Updated lib names.
* contrib/hbapollo/apollo.c
! Fixed MSVC errors.
* contrib/mtpl_b32.bat
* contrib/mtpl_vc.bat
! Removed one obsolete line.
+ Now defines _HB_MAKELOG.
* contrib/hbapollo/make_b32.bat
* contrib/hbapollo/make_vc.bat
* contrib/hbfimage/make_b32.bat
* contrib/hbgd/make_b32.bat
* contrib/hbhpdf/make_b32.bat
* contrib/hbmysql/make_b32.bat
* contrib/hbodbc/make_b32.bat
* contrib/hbodbc/make_vc.bat
* contrib/hbpgsql/make_b32.bat
* contrib/hbpgsql/make_vc.bat
* contrib/hbw32ddr/make_b32.bat
* contrib/hbw32ddr/make_vc.bat
* contrib/hbzlib/make_b32.bat
* contrib/rddads/make_b32.bat
+ Redirects .lib creation (implib, lib) output to log file.
* contrib/xhb/hbcompat.ch
+ Added some more converions for xhb code.
* contrib/rddads/ads1.c
+ Added two TODOs. (to adsDrop and adsExists)
* source/pp/hbppgen.c
! MSVC warning fixed.
* make_vc.mak
! Typo in prev commit.
|
||
|
|
53030631bf |
2008-05-07 11:21 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/rddads/make_b32.bat
* contrib/rddads/make_vc.bat
* contrib/rddads/ads.ch
* contrib/rddads/rddads.h
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsmgmnt.c
+ Added ACE version autodetection.
You can override with: -DADS_LIB_VERSION=700 (and similar)
(ADS_REQUIRE_VERSION still accepted for compatibility)
! Fixed a few lib version related problems.
! hMgmtHandle global renamed to ads_g_hMgmtHandle.
* Formatting.
* contrib/rddads/rddads.h
+ QUESTION: added about ADS_MAX_KEY_LENGTH redefinition.
Is it needed?
* source/compiler/hbmain.c
* Changed output device (hb_compOutStd() -> hb_compOutErr())
for following texts:
"Compiling..."
"No code generated"
"Lines x, Functions/Procedures x"
This is to replicate CA-Cl*pper behaviour a bit more.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
* source/rtl/maxrow.c
+ source/rtl/scrrow.c
* contrib/xhb/hbcompat.ch
+ Added hb_ScrMaxRow(), hb_ScrMaxCol()
These will return the screen dimensions regardless
of the size of an active window (when using CT
windows for example). Functionality is the same
as MaxRow(.T.) and MaxCol(.T.) previously.
! MaxRow()/MaxCol() extended parameters removed.
+ Added MaxRow(.T.)/MaxCol(.T.) conversions for
xhb lib (hbcompat.ch) in both directions.
; XBase++ doesn't have any extended parameters
for Max*() function. Flagship has two of them,
both of them doing something different. CAVO doesn't
have these functions at all.
* contrib/xhb/hbcompat.ch
! GTI_* macros updated to HB_GTI_*.
* source/vm/memvclip.c
% Minor opt in __QQPUB().
* source/vm/extend.c
* 0 -> NULL
* source/vm/estack.c
- QUESTION removed.
* source/lang/msgbgmik.c
* source/rtl/console.c
* source/rtl/philes.c
* source/rtl/adir.prg
* source/rtl/getsys53.prg
* source/rtl/getsys.prg
* source/rtl/tget.prg
* source/rtl/ttopbar.prg
* source/rtl/pushbtn.prg
* source/rtl/mod.c
* source/rtl/memofile.c
* source/rtl/radiobtn.prg
* source/rtl/filesys.c
* source/rtl/tbrowse.prg
* source/vm/estack.c
* source/vm/itemapi.c
* source/vm/hvm.c
* source/vm/cmdarg.c
* source/vm/fm.c
* source/vm/eval.c
* source/common/hbver.c
* source/common/expropt2.c
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_str.prg
! Comment fixes and minor formatting.
|
||
|
|
31d82e116c |
2008-04-29 13:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
* source/rdd/Makefile
* source/rdd/dbstrux.prg
* source/rdd/rddord.prg
+ source/rdd/rddordu.prg
+ source/rdd/dbstruxu.prg
+ Moved some UNDOC functions to separate files.
* Removed STRICT guard from _dtxCondSet().
* include/hbextern.ch
! Added missing _dtxCondSet().
* source/rtl/colorind.c
* source/rtl/direct.c
* Minor formatting.
* source/vm/asort.c
! Changed one direct item access to item API call.
* contrib/rddads/ads.ch
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
! Added support for ADS9 VFP file type and fields.
; Borrowed from xhb / Luiz Rafael Culik.
(changed to compile using original - older - ADS headers)
; Please review & test.
* source/vm/pcount.c
% Minor opt.
* contrib/hbtip/sendmail.prg
! SF bugtracker#1934698 fix applied. Thanks Chen.
- contrib/hbapollo/tests/bld.bat
* contrib/hbapollo/tests/bld_b32.bat
% Using central bld.bat instead of modified local copy.
+ contrib/gtwvg/tests/bld_b32.bat
+ Added BCC32 build batch file for GTWVG tests.
; NOTE: demowvg still doesn't seem to work.
|
||
|
|
afe85d8f42 |
2008-04-26 07:53 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/tget.prg
! Fixed to not extend ::left(), ::right(), ::backspace(),
::delete() with an internally used (but also externally
accessible) extra parameter. This is interface is now
made fully C5x compatible.
* tests/rto_tb.prg
! Fixed to override __eInstVar53() (instead of _eInstVar())
* include/hbextern.ch
* common.mak
* source/rdd/Makefile
+ source/rdd/dbcmdhb.c
+ Added non-internal versions of __dbPack() and __dbZap(),
named: hb_dbPack() and hb_dbZap(). If group needs it I
can add dbPack() and dbZap() too in separate files to
lessen the problem of name collision with app code.
* source/rtl/inkey.c
* Formatting.
+ HB_KEYPUT(): Now possible to pass an array with string elements.
(see feature in xhb/__KEYBOARD())
* HB_KEYPUT(): For string parameter it now uses hb_inkeySetText()
API, rather than a loop of hb_inkeyPut()s.
* contrib/xhb/xhbfunc.c
! xhb flavour of __KEYBOARD() sync fixed. (hb_inkeySetText() got
extended in xhb, so here we're using hb_inkeyPut() for single
numeric key codes).
; Now same code is used as in HB_KEYPUT().
* source/vm/memvars.c
* source/vm/hvm.c
* source/vm/arrayshb.c
+ Added HB_C52_STRICT branches for the remaining RTEs
which produced different results in hbtest.
! Fixed HB_C52_STRICT RTE for AFill().
; NOTE: It's not possible to build Harbour currently when
HB_C52_STRICT, so it's not easy to test these.
* include/hbclass.ch
! Typos.
* source/rtl/memoedit.prg
* source/rtl/achoice.prg
* source/rtl/treport.prg
* Formatting.
* source/rtl/tobject.prg
* Formatting.
% Minor opt.
|
||
|
|
026c5720f3 |
2008-04-21 15:02 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
* include/hbextern.ch
* source/rtl/Makefile
* source/rtl/checkbox.prg
* source/rtl/einstvar.prg
+ source/rtl/einstv52.prg
* source/rtl/listbox.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/tget.prg
* source/rtl/tmenuitm.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
! _eInstVar() made compatible with C5.2 in C5.2 mode.
* Renamed _eInstVar52() -> __eInstVar52()
(Harbour internal function namespace)
* Renamed _eInstVar53() -> __eInstVar53()
(Harbour internal function namespace)
* __eInstVar52() moved to a separate file.
* Harbour now uses __eInstVar53() internally.
- make_os2_gcc.cmd
+ make_gnu_os2.cmd
* Renamed to align the filename with the rest of the
GNU make command files. Content unchanged.
TODO: TGET test case for my vtgetlst problem.
TODO: TGET fix for the above.
|
||
|
|
b007d20e6b |
2008-04-21 14:48 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* tests/rto_get.prg
* tests/rto_tb.prg
+ Added more tests.
+ Enabled object as array results by default.
+ More details for TGet test results.
* bin/bld_os2.cmd
! Fixed lib names. Thanks David.
* source/rtl/tobject.prg
* Formatting.
* source/rtl/tget.prg
! Delimiter colors in C5.3 mode made compatible.
! ::colorSpec handling in C5.3 mode made compatible
for some invalid parameter types.
! Fixed handling decimals in :row, :col, :pos
methods.
! Fixed to compile in C5.2 mode without warning
(introduced in recent commit).
* source/rtl/tbrowse.prg
! Fixed handling decimals in :nTop, :nBottom, :nLeft, :nRight.
+ Added unfinished XPP method :viewArea()
+ Added untested XPP method :firstScrCol()
; Few minor formatting.
* include/hbextern.ch
* source/rtl/einstvar.prg
+ Added _eInstVar52() which is the C5.2 compatible version
of this function. It also replicates a bug.
* _eInstVar() renamed to _eInstVar53().
* _eInstVar() made a stub to call _eInstVar53().
* source/rtl/checkbox.prg
* source/rtl/listbox.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/symbol.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tget1.prg
* source/rtl/tgetlist.prg
* source/rtl/tmenuitm.prg
* source/rtl/tmenusys.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
* Formatting (EXPORT: -> EXPORTED:)
* contrib/hbtip/thtml.prg
* contrib/hbtip/ftpcln.prg
! Fixed to work regardless of SET EXACT setting.
; NOTE: I'd suggest an optional compiler warning
to detect plain "=" usage. It's bad practice
in most cases.
TODO: make_os2_gcc.cmd -> make_gcc_os2.cmd
TODO: TGET test case for my vtgetlst problem.
TODO: TGET fix for the above.
TODO: _eInstVar() -> _eInstVar53()
|
||
|
|
cb966c280e |
2008-04-17 03:53 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
* source/rtl/errorapi.c
+ Added ERRORINHAN() (and alias ERRORINHANDLER()) CA-Cl*pper
compatible, undocumented function, guarded with HB_C52_UNDOC.
Same as Harbour __ERRINHANDLER().
* source/rtl/trim.c
* source/rtl/strtran.c
+ Added strict branches for incompatible error messages.
% Minor optimization in STRTRAN() parameter checking.
* utils/hbtest/rt_str.prg
+ Reenabled two C53-only test calls.
* include/hbdefs.h
! Minor indentation fix.
* utils/hbdoc/hbdoc.prg
* utils/hbdot/hbdot.prg
* utils/hbmake/hbmake.prg
* utils/hbpp/hbpp.c
* utils/hbtest/hbtest.prg
* utils/hbrun/hbrun.prg
! Year updated in copyright banners.
|
||
|
|
8a5c03a538 |
2008-01-31 16:32 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
* source/rtl/net.c
* contrib/xhb/hbcompat.ch
! Removed non-compatible xhb extension from NetName().
+ hb_UserName() function added with the above functionality.
! Slight correction to the Win32 branch of hb_UserName().
+ Added compatibility translations to NetName(1) for
xhb lib users (enough to #include "hbcompat.ch").
|
||
|
|
12bb58304e |
2007-12-06 02:21 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* 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.
|
||
|
|
5a278f5646 |
2007-12-06 01:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* 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.
|
||
|
|
630119e503 |
2007-11-23 03:03 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* make_vcce.mak
* common.mak
! Fixed copyrights.
! Tabs converted to spaces.
- CFLAGS not advertised anymore as an official public var to set
compiler flags.
C_USR should be used, which is also GNU make system compatible.
* make_vc.mak
* make_vcce.mak
! Removed /Y from copy command
(we're using the COPYCMD trick in core make files).
- contrib/adordd/access1.prg
- contrib/adordd/access2.prg
- contrib/adordd/mysql1.prg
- contrib/adordd/mysql3.prg
+ contrib/adordd/tests
+ contrib/adordd/tests/access1.prg
+ contrib/adordd/tests/access2.prg
+ contrib/adordd/tests/mysql1.prg
+ contrib/adordd/tests/mysql3.prg
- contrib/btree/mktest.bat
+ contrib/btree/test/mktest.bat
- contrib/samples/testdate.prg
- contrib/samples/testenv.prg
- contrib/samples/testgaug.prg
- contrib/samples/testnum.prg
- contrib/samples/teststat.prg
- contrib/samples/testtime.prg
- contrib/samples/tststack.prg
+ contrib/samples/tests
+ contrib/samples/tests/testdate.prg
+ contrib/samples/tests/testenv.prg
+ contrib/samples/tests/testgaug.prg
+ contrib/samples/tests/testnum.prg
+ contrib/samples/tests/teststat.prg
+ contrib/samples/tests/testtime.prg
+ contrib/samples/tests/tststack.prg
* Test related files moved to test dir.
! Added EOLs to the last line in adordd files.
- contrib/gd/README
+ contrib/gd/readme.txt
* Renamed to use proper extension.
* contrib/adordd/common.mak
* contrib/apollo/common.mak
* contrib/bmdbfcdx/common.mak
* contrib/btree/common.mak
* contrib/directx/common.mak
* contrib/firebird/common.mak
* contrib/freeimage/common.mak
* contrib/gd/common.mak
* contrib/hbzlib/common.mak
* contrib/hgf/win32/common.mak
* contrib/htmllib/common.mak
* contrib/ole/common.mak
* contrib/pdflib/common.mak
* contrib/pgsql/common.mak
* contrib/libct/common.mak
* contrib/libgt/common.mak
* contrib/libnf/common.mak
* contrib/libmisc/common.mak
* contrib/mysql/common.mak
* contrib/odbc/common.mak
* contrib/rdd_ads/common.mak
* contrib/samples/common.mak
* contrib/telepath/common.mak
* contrib/tip/common.mak
* contrib/win32/common.mak
* contrib/xhb/common.mak
* Formatting made consistent.
* contrib/adordd/common.mak
* contrib/bmdbfcdx/common.mak
* contrib/btree/common.mak
* contrib/freeimage/common.mak
* contrib/gd/common.mak
* contrib/hgf/win32/common.mak
* contrib/libct/common.mak
* contrib/libnf/common.mak
* contrib/mysql/common.mak
* contrib/odbc/common.mak
* contrib/pdflib/common.mak
* contrib/pgsql/common.mak
* contrib/rdd_ads/common.mak
* contrib/samples/common.mak
* contrib/tip/common.mak
* contrib/xhb/common.mak
+ Added headers.
* contrib/btree/common.mak
* contrib/freeimage/common.mak
* contrib/freeimage/Makefile
* contrib/hbzlib/common.mak
* contrib/hbzlib/Makefile
* contrib/libct/common.mak
* contrib/libmisc/common.mak
* contrib/libmisc/Makefile
* contrib/mysql/common.mak
! Library names synced between GNU and non-GNU
make systems.
! Some libraries renamed to not have a too common
or non-descriptive name, like "misc".
non-GNU hb_btree -> hbbtree (synced with GNU)
non-GNU fi_lib -> hbfreeimage
GNU fi_lib -> hbfreeimage
non-GNU hbzip -> hbziparch
GNU ziparchive -> hbziparch
non-GNU libct -> ct (synced with GNU)
non-GNU libmisc -> hbmisc
GNU misc -> hbmisc
non-GNU mysql -> hbmysql (synced with GNU)
* contrib/apollo/Makefile
* contrib/firebird/Makefile
! Fixed space to tabs.
+ contrib/msql/make_b32.bat
+ contrib/msql/make_vc.bat
+ contrib/msql/common.mak
+ Added non-GNU make files.
; TOFIX: I cannot compile these still.
* contrib/msql/Makefile
! Added SVN header.
; TOFIX: This is a non-standard Makefile.
Did anyone manage to compile this lib?
* contrib/adordd/adordd.ch
* contrib/adordd/adordd.prg
! Added EOLs to the last line.
* utils/hbmake/hbmutils.prg
* Lib names fixed and changed to reflect the recent
changes in contrib.
* contrib/rdd_ads/rddads.h
! Minor cosmetic fix.
* include/hbextern.ch
* source/rtl/memofile.c
! MEMOWRIT() 3rd parameter marked as extension.
+ HB_MEMOWRIT() function added, which never write the
obsolete EOF char at the end of the file.
|
||
|
|
0de23eaa4f |
2007-11-16 14:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbsetup.ch
! Minor fix in comments.
* contrib/xhb/hbcompat.ch
+ Added hb_rddInfo() translation for xhb apps.
* common.mak
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/natmsgu.c
* source/rtl/natmsg.c
+ Added Harbour internal version of undocument Clipper
Nat*() (and friends) calls. These are always available
in core.
Harbour __natIsAffirm() = Clipper IsAffirm()
Harbour __natIsNegative() = Clipper IsNegative()
Harbour __natMsg() = Clipper NationMsg()
Harbour __natSortVer() = Clipper _NatSortVer()
Harbour __natMsgVer() = Clipper _NatMsgVer()
* utils/hbtest/rt_misc.prg
* source/rtl/dircmd.prg
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
* source/rtl/tlabel.prg
* source/rtl/treport.prg
! Now using Harbour internal __NAT*() functions
instead of C5.x undocumented calls, so Harbour
will now compile with HB_C52_UNDOC turned off.
|
||
|
|
a35b2d9643 |
2007-11-14 23:54 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* common.mak
* include/hbextern.ch
* source/rdd/Makefile
+ source/rdd/rddinfo.c
* source/rdd/dbcmd.c
+ source/rdd/dbdrop.c
+ source/rdd/dbcmd53.c
+ source/rdd/dbexists.c
+ source/rdd/fieldhb.c
! Moved away C53 functions to a separate file.
+ Added HB_RDDGETTEMPALIAS() as a documented version
of the long existing __RDDGETTEMPALIAS(). The latter
name still kept for compatibility.
! Moved away non-namespace conformant HB_EXTENSIONs
to separate files to cause less harm form those not
wanting these or already using these names in app
code.
+ Added HB_RDDINFO() namespace conformant version of
the RDDINFO() Harbour extension. RDDINFO() still works
but it's now defined in a separate file to cause less
potential harm.
- Removed HB_EXTENSION guards from around DBDROP(), DBEXISTS(),
RDDINFO(), FIELDLEN(), FIELDDEC(), FIELDTYPE() non namespace
conformant Harbour extensions.
; Przemek: I'm sorry you didn't bother to answer, so I
just can hope these address the problems you were having.
* source/rdd/sdf1.c
* source/rdd/delim1.c
! Removed two __XHARBOUR__ guards, by making the guarded
code the default. We have SET EOL support in Harbour now,
so this seems okey. If not, tell.
; TOFIX: We still have __XHARBOUR__ #defines in pp/ppcore.c
and debug/debugger.prg.
* include/hbsetup.ch
! HB_EXTENSION turned off.
|
||
|
|
f7de654b8b |
2007-11-11 22:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* common.mak
* source/rtl/Makefile
+ source/rtl/getsys53.prg
* source/rtl/getsys.prg
+ source/rtl/secondfs.c
* source/rtl/seconds.c
+ source/rtl/mouse53.c
* source/rtl/mouseapi.c
+ Some C53 and FlagShip functions moved to separate source file.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
+ source/rtl/hbstrsh.c
* utils/hbtest/rt_stra.prg
+ Added hb_StrShrink(<cString>[,<nShrinkBy>]) -> cStringShrinked
<nShrinkBy> has a default value of 1. Returns empty string
on error, returns full string if <nShrinkBy> is zero or negative.
This function call is meant to be use instead of code like this:
cString := Left( cString, Len( cString ) - 1 ) ->
cString := hb_StrShrink( cString, 1 )
TODO: Maybe to support passing it by reference and make it even
faster.
+ Added regression tests for this function.
|
||
|
|
97aad59548 |
2007-11-11 12:51 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/std.ch
! SET STRICTREAD command definition fixed.
* include/hbextern.ch
! Fixed placement of MENUMODAL, to compile when HB_COMPAT_C53
is turned off.
* contrib/libmisc/Makefile
! Fixed test dir name. (broken since yesterday)
* contrib/pdflib/common.mak
+ Added another file.
+ contrib/pdflib/Makefile
+ Added GNU make file for pdflib.
* utils/hbdoc/ft_funcs.prg
* utils/hbmake/ft_funcs.prg
* utils/hbmake/hbmake.prg
! Made them compile with HB_COMPAT_C53 turned off.
There is a loss of functionality in this case.
(MAKEDIR(), DIRCHANGE() and @ CHECKBOX are used here)
* source/rtl/menuto.prg
* source/rtl/tgetlist.prg
! Fixed to compile when HB_COMPAT_C53 is turned off.
* include/hbextern.ch
* source/rtl/defpath.c
* source/rtl/adir.prg
* __DEFPATH() is now always included, not just when HB_C52_UNDOC
is defined, since we use this function from core, and __*()
functions are okey to be included without this guard.
DEFPATH() is still marked as HB_C52_UNDOC.
! ADIR() now uses __DEFPATH() instead of DEFPATH() to compile
with HB_C52_UNDOC turned off.
; TOFIX: There are still a few functions we use from core, which
are guarded with HB_C52_UNDOC: NATIONMSG(), ISNEGATIVE()
* source/vm/memvars.c
* Changed HB_EXTENSION to HB_C52_STRICT. Reason: This
is a Harbour internal (undocumented) function, where extension
is possible. CA-Cl*pper internal (undocumented) function __MRESTORE()
is mapped to this function, which is still okey. We could
create a fully CA-Cl*pper compatible, non-extended __MRESTORE()
without any trouble, if this is an issue.
|
||
|
|
31f9030f34 |
2007-11-11 02:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/at.c
* include/hbextern.ch
+ Added hb_At() which is equivalent to At() with
HB_EXTENSION turned on. Users are encouraged to
use hb_At(), and this is also a must inside core.
* include/hbextern.ch
! Added missing hb_AIns(), hb_ADel(), hb_AScan()
* source/rtl/persist.prg
! Fixed hard-wired EOL length.
! Fixed to not go into an infinite loop on
non EOL terminated texts. (Thanks Petr)
! Fixed to use hb_At() instead of extended At().
! Fixed to also handle LF delimited texts.
; All this in static function ExtractLine()
* contrib/rdd_ads/doc/gendoc.bat
! Added version header.
* contrib/hgf/tests/bld_b32.bat
! Some more minor cleanups.
* contrib/pgsql/make_vc.bat
* contrib/apollo/make_vc.bat
* contrib/gd/make_vc.bat
* contrib/adordd/make_vc.bat
* contrib/pdflib/make_b32.bat
* contrib/pdflib/make_vc.bat
* contrib/btree/make_vc.bat
* contrib/samples/make_vc.bat
* contrib/mysql/make_vc.bat
* contrib/odbc/make_vc.bat
* contrib/bmdbfcdx/make_vc.bat
! Fixed EOL-style.
+ contrib/libmisc/test
- contrib/libmisc/tests
* Dir rename.
|
||
|
|
7eb0a16404 |
2007-11-04 03:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* include/hbapifs.h
* harbour/source/common/hbfsapi.c
! fixed hb_fsFileExists() for DOS
+ Added hb_fsDirExists()
* include/hbextern.ch
* source/rtl/hbfile.c
+ Added HB_DIREXISTS()
|
||
|
|
88cb3664a9 |
2007-10-27 16:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapifs.h
* source/common/hbfsapi.c
! Added missing HB_EXPORTs.
+ Added hb_fsFileExists(). This is the preferred way to check
for the existence of a file, because it is fast and will
find a file even of directory traversal is not possible
for the file's directory. Works the same way as file
existence check in most other tools.
; NOTE: DOS branch was not compiled or tested (it is a
rewrite of a tested ASM function though).
* common.mak
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/hbfile.c
+ Added HB_FILEEXISTS() Harbour level function to check
for the existence of a file. This works better than
FILE() in most situations, but it doesn't accept any
wildcards.
* source/compiler/gencobj.c
! Fixed to not used access(). Using hb_fsFileExists() instead.
|
||
|
|
8db0ce3340 |
2007-10-16 12:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/isprint.c
! Fixed ISPRINTER() on Win32 after last changes.
Thanks Guillermo, pls test now.
* source/rdd/dbcmd.c
! Marked as HB_EXTENSION: FIELDLEN(), FIELDDEC(), FIELDTYPE()
* include/hbextern.ch
* source/rdd/dbcmd.c
! Marked as HB_EXTENSION: DBDROP(), DBEXISTS(), RDDINFO()
(they were properly marked in hbextern.ch but not in source)
* include/hbextern.ch
* source/rtl/disksphb.c
* source/rtl/fssize.c
* source/rtl/fstemp.c
* source/rtl/inkey.c
* source/rtl/oemansi.c
* source/rtl/philes.c
* source/rtl/setcolor.c
* source/rtl/setfunc.prg
* source/rtl/setkey.c
* source/rtl/shadow.c
* source/rtl/trace.c
* source/rtl/valtostr.c
* source/vm/dynsym.c
+ Removed HB_EXTENSION from all the .prg level functions
prefixed with HB_.
(there was a mixed situation here, but there's no need
to mark any HB_ functions as extensions, as it's obvious
by their name. So as a rule, no HB_ prefixed function
should ever be marked as HB_EXTENSION anymore.)
! Fixed some inconsistencies in HB_EXTENSION between
hbextern.ch and actual sources.
* source/rtl/tgetlist.prg
* One HB_EXTENSION changed to !HB_C52_STRICT because it
was guarding a bugfix rather than a real extension.
* source/rtl/gui.prg
* _GetNumCol() is now always strictly compatible.
NOTE added about sloppy C5.3 behaviour.
* source/rtl/inkey.c
* contrib/xhb/xhb.ch
* contrib/xhb/xhbfunc.c
! __KEYBOARD() xhb hidden parameter extension moved to
xhb lib. For similar functionality inside Harbour
pls use HB_KEYPUT(). __KEYBOARD is now 100% C5.x
compatible.
* source/rtl/setfunc.prg
* __SetFunction() extension now uses HB_KEYPUT() instead
of __KEYBOARD() extended parameters.
* source/compiler/hbfunchk.c
* source/rtl/at.c
! AT() extra parameters handled when HB_EXTENSION is on
(was !HB_C52_STRICT). (The first extra parameter is
XPP and Flagship compatible. The three parameter version
of this function is called AT3() in CAVO.)
! TRIM()/RTRIM() extra parameters handled on compiler level
when HB_EXTENSION is on (default).
! FILE() parameter check turned off in compiler.
(to be C5.x compatible)
* source/rtl/alert.prg
! ALERT() Harbour extended parameter (1st parameter type)
is now guarded with HB_EXTENSION instead of HB_C52_STRICT.
* source/rtl/gete.c
! GETE[NV]() Harbour extended parameter guarded with HB_EXTENSION.
* source/vm/proc.c
! PROCFILE() Harbour extended parameter guarded with HB_EXTENSION.
* source/rtl/mlcfunc.c
! Harbour extended parameters for MEMOLINE()/MLCOUNT()/
MLPOS()/MLCTOPOS()/MPOSTOLC() are now guarded with HB_EXTENSION
(instead of HB_C52_STRICT). It seems to be possible to
specify custom EOLs for all these functions. (Maybe simple
automatic Unix/Win EOL style handling would be better here)
* source/vm/memvars.c
! Guarded Harbour extension in __MVRESTORE() with HB_EXTENSION.
; After this cleanup:
- HB_EXTENSION is marking extra features living inside existing C5.x
functions or classes, or Harbour extension functions
not complying with the HB_ prefix rule (we have six
such functions in RDD). If there are more extended
parameters in Harbour pls mark them with HB_EXTENSION
too.
- HB_C52_STRICT is guarding bugfixes compared to C5.x.
- No HB_ functions are guarded with HB_EXTENSION anymore.
- We'd pbly need to review each HB_EXTENSIONs to check whether they
are safe or not.
- A list of HB_EXTENSIONs:
- MLCOUNT()
MEMOLINE()
MLPOS()
MLCPOS()
MPOSTOLC() - 5th and up can specify custom EOLs.
- ALERT() - 1st parameter type can be any type in Harbour, char only in C5.x
- SET FUNCTION TO
__SETFUNCTION - 2nd parameter can be numeric or array of numeric in Harbour.
- SETKEY() - 3rd codeblock parameter ("isactive" block)
- SAVESCREEN() - 5th parameter: lNoCheck (?)
RESTSCREEN() - 6th parameter: lNoCheck (?)
- AT() - 3rd and 4th parameters to set search range. 3rd parameter is
also supported by XPP and FS. Results in compiler error in C5.x.
(CAVO uses AT2() and AT3() for extended versions.)
- TRIM()
RTRIM() - 2nd parameter is an extension regarding space trimming mode.
Results in compiler error in C5.x.
- ALLTRIM() - 2nd parameter is an extension regarding space trimming mode.
- GETE()
GETENV() - 2nd parameter specifies a default value. Can be found in HB_GETENV().
- PROCFILE() - 1st parameter is a Harbour extension. Undocumented function in C5.x.
The extension looks similar to the one found in Flagship.
- __MVRESTORE() - 3rd/4th parameters are Harbour extensions to set variable name
mask. Redirected from the internal 5.x function named __MRESTORE().
- DB*() - cRDD, nConnection, cCodePage extra parameters in many DB*() functions.
TOFIX: None of them is marked as HB_EXTENSION.
- SET()s - These are not marked as HB_EXTENSION.
- ? - Is there anything else?
|
||
|
|
2c6c52830f |
2007-10-16 09:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
* source/rtl/gete.c
+ Added HB_GETENV(). There you have a 2nd parameter
which will be returned in case the requested
envvar doesn't exist. This extensions is still present
in GETE[NV](), but we'd better remove it.
* include/hbextern.ch
* source/rtl/isprint.c
+ Added HB_ISPRINTER() with support for extra parameter
printer port name. This parameter also currently has
support for Win32 printers. Win32 printer name support
was removed from ISPRINTER() to keep compatibility.
ISPRINTER() extra parameter is enabled with HB_COMPAT_XPP
(which is the default).
|
||
|
|
799edeb1e5 |
2007-10-01 23:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/tip/Makefile
* contrib/tip/makefile.bc
+ contrib/tip/makefile.vc
+ contrib/tip/make_vc.bat
* contrib/tip/tip.ch
* contrib/tip/utils.c
* contrib/tip/base64x.c
* contrib/tip/encmthd.c
- contrib/tip/hbhex2n.c
* contrib/tip/cgi.prg
* contrib/tip/client.prg
* contrib/tip/ftpcln.prg
* contrib/tip/httpcln.prg
* contrib/tip/mail.prg
* contrib/tip/thtml.prg
* contrib/tip/url.prg
+ Code converted to not require xhb lib.
% Now compiled with -kM switch to avoid macro expansion
of strings. This is important here, as "&" char is used
quite often in the code, so expect a somewhat better
performance.
- Removed hex number conversion functions, as compatible
versions are now available in Harbour with am hb_ prefix.
+ C code update to use Harbour API calls only.
+ Added VC build script.
! Fixed two C warnings.
! Standardized SVN header in one file.
! Set std SVN keywords and eol-style.
; Please test it.
* include/hbextern.ch
* source/rtl/hbinet.c
* contrib/xhb/xhb.ch
* contrib/xhb/xhbfunc.c
* Renamed hb_IsInetSocket() to hb_inetIsSocket() to
keep all inet related functions in one namespace.
|
||
|
|
b4e5912a0e |
2007-09-25 03:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbextern.ch
+ harbour/contrib/xhb/xhbextrn.ch
* harbour/contrib/xhb/Makefile
* moved xHarbour compatible functions from hbextern.ch to xhbextrn.ch
|
||
|
|
9303fd7c30 |
2007-09-17 12:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* common.mak
+ source/rtl/tbrowsys.prg
* source/rtl/Makefile
* source/rtl/getsys.prg
* source/rtl/tbrowse.prg
+ Added new file for C5.3 TB*() functions.
Most of them is dummy, a few of them were moved
here from existing files.
* include/hbextern.ch
+ Added rest of C5.3 TB*() functions.
* source/rtl/teditor.prg
! Fixed new scope violations reported by Guillermo.
* source/rtl/tbrowse.prg
+ :border implemented (to be tested).
! :setColumn() return value fixed, NOTE added.
! Non-character :picture handled properly.
(to be tested for full compatibility)
% Some optimizations.
- :TApplyKey() removed (it is not a C5.3 method)
; Some source cleanup and other changes.
; Work in progress.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
+ source/rtl/tscalar.prg
- source/rtl/array.prg
- source/rtl/block.prg
- source/rtl/characte.prg
- source/rtl/date.prg
- source/rtl/logical.prg
- source/rtl/nil.prg
- source/rtl/numeric.prg
- source/rtl/scalar.prg
+ Consolidated scalar classes to one file.
+ Minor optimizations and cleanup done on files.
+ Class function names now consistently HB*()
(was non-Class(y) compatible and a mixed list
of plain unprefixed class names and class names
prefixed with an underscore). Notice however that
Class(y) has only CsyArray() defined in its own
library, the rest was seemingly made only
available as additional source code.
! Fixed NIL class to be named NIL (was _NIL).
% Some unneeded MESSAGE redirections removed.
% LOCAL var[0] -> LOCAL var := {}. This results
in better pcode.
+ Added all these symbols to hbextern.ch
* source/rtl/symbol.prg
* Some cleanup.
; I believe this should be named HBSymbol() and
added to hbextern.ch
|
||
|
|
94e55db264 |
2007-09-11 00:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
* include/hbextern.ch
* source/rtl/hbini.prg
+ .ini functions added to hbextern.ch.
* .ini functions renamed so that all of them reside
in the hb_ini*() namespace. xhb compatibility translates
added.
* source/debug/debugger.prg
* Formatting.
* source/rtl/memoedit.prg
% Minor optimization.
* source/rtl/teditor.prg
! Fixed to not ask for confirmation when pressing
<Esc> on an unedited buffer.
|
||
|
|
485c23ffe7 |
2007-09-07 12:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
! Fix of some corrected public function names.
|
||
|
|
80fb85b354 | minor fix after commit | ||
|
|
1b46bf32b9 |
2007-09-07 03:38 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* tests/Makefile
* tests/rto_get.prg
+ tests/rto_tb.prg
* include/button.ch
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
- source/rtl/mssgline.prg
+ source/rtl/gui.prg
+ source/rtl/menusys.prg
+ source/rtl/tmenusys.prg
* source/rtl/checkbox.prg
* source/rtl/einstvar.prg
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/listbox.prg
* source/rtl/memoedit.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tlabel.prg
* source/rtl/tmenuitm.prg
* source/rtl/tpopup.prg
* source/rtl/treport.prg
* source/rtl/ttopbar.prg
; These changes mainly targeted the .prg
level UI classes of Harbour.
+ Code standardization, cleanup, formatting.
(formatting is not fully complete yet)
! Lots of compatibility fixes.
! Lots of bugfixes (crashes, wrongly passed
parameters, etc).
! Minor fix in one of the methods of HBReportForm()
- Non-Clipper classes removed (the MENUSYS/msgline
related ones).
! Some fixes adapted from xHarbour's TBrowse()
+ Class VARs properly scoped.
+ TBColumn() is now fully compatible.
* The mess in the TTopBar and related classes was
cleaned up, some small non-Clipper compatible
classes were removed and a new TMenuSys class
was created of the related parts.
% Optimizations.
+ TBrowse/TBColumn regression test suite
added (far from complete at this point).
; NOTE: No C5.3 GUI support is implemented in Harbour.
; NOTE: Harbour uses Disp*() functions in UI functions
to update screen. C5.x uses a mixture of Dev*(),
Q?Out() and Disp*().
; NOTE: TBrowse() fixing is still a work in progress.
; Please test.
|
||
|
|
da4d8743b5 |
2007-08-31 11:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbhex.c
+ added HB_HEXTOSTR() and HB_STRTOHEX() - they are compatible with
HEXTOSTR() and STRTOHEX() in xHarbour
* harbour/include/hbcompat.ch
+ added translations for HB_HEXTOSTR(), HB_STRTOHEX()
* harbour/include/hbextern.ch
+ added new functions
* harbour/contrib/libct/ctextern.ch
* updated function list
|
||
|
|
39970a9215 |
2007-08-23 17:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gttrm/gttrm.c
* set cursor position at beginning of new line on application exit
* harbour/include/hbextern.ch
+ added missing functions (CDPs, LANGs, HSX, ...)
* harbour/utils/hbdot/Makefile
* harbour/utils/hbrun/Makefile
+ added codepage library
|
||
|
|
57748f5e13 |
2007-08-14 15:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
+ added HB_UTF8TRAN(), HB_UTF8STUFF(), HB_UTF8POKE()
|
||
|
|
20f052ed91 |
2007-08-08 16:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
* include/hbextern.ch
* contrib/libnf/fttext.c
* source/vm/arrayshb.c
+ xhb RASCAN() added to Harbour without HB_COMPAT_XHB
switch, under the name HB_RASCAN().
Translation from RASCAN() is done via hbcompat.ch
! NFLib/FT_FRSEEK() now works in Harbour regardless
of the HB_COMPAT switches.
|
||
|
|
f679ae3bc0 |
2007-07-04 18:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbextern.ch
+ added some other missing functions for which I had no doubt they
should be included
|
||
|
|
2a7af92999 |
2007-07-03 21:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompat.ch
! added closing parentheses in operators translation rules to avoid
wrong translations
* harbour/include/hbextern.ch
+ added many missing functions
|
||
|
|
685393a361 |
2007-06-23 11:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtchrmap.c
* harbour/source/rtl/gttrm/Makefile
* harbour/source/rtl/gttrm/gttrm.c
+ set Id keyword property
* harbour/source/common/expropt1.c
! fixed typo in HB_TRACE() parameters
* harbour/include/hbapicdp.h
* harbour/include/hbapirdd.h
* harbour/source/rtl/strcase.c
* harbour/source/rtl/is.c
* harbour/source/rtl/gtxwc/gtxwc.h
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/gtsln.h
* harbour/source/rtl/gtpca/gtpca.c
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/vm/hvm.c
! fixed compilation with HB_CDP_SUPPORT_OFF - I do not plan to
create such builds but now these macro allow to easy locate
CDP dependent code
* harbour/include/hbextern.ch
* harbour/source/rtl/cdpapi.c
+ added two prg functions for translations from/to UTF-8:
HB_STRTOUTF8( <cStr> [, <cCPID> ] ) -> <cUTF8Str>
HB_UTF8TOSTR( <cUTF8Str> [, <cCPID> ] ) -> <cStr>
<cCPID> is Harbour codepage id, f.e.: "EN", "ES", "ESWIN",
"PLISO", "PLMAZ", "PL852", "PLWIN", ...
When not given then default HVM codepage (set by HB_SETCODEPAGE())
is used.
|
||
|
|
271095b949 |
2007-05-03 16:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
* harbour/include/hbapirdd.h
- harbour/include/hbrddwrk.h
* harbour/source/rdd/Makefile
+ harbour/source/rdd/wacore.c
+ harbour/source/rdd/wafunc.c
* harbour/source/rdd/workarea.c
* cleaned RDD code:
* the default work area implementation from which each RDD inherits
and RDD management is now in workarea.c file - this part will be
common for all threads in future MT version
* the code to mange workareas and aliases moved to wacore.c - this
code uses some static variables which will be moved to HVM stack
in MT version
* helper RDD functions thread independent moved to wafunc.c
* harbour/source/rdd/dbcmd.c
* removed RDD/WorkArea management code - only independent HB_FUNCs
left. IMHO it will be good to divide this file into few ones.
* changed dbCreate() and dbUseArea() to return logical value
* harbour/config/global.cf
- removed nulsys from linked library list - it should not be here
because it can confuse some linkers and wrong library will be
created
* harbour/contrib/rdd_ads/ads1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfdbt/dbfdbt1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/nulsys/nulsys.c
* updated for recent modifications in RDD API
* harbour/include/hbextern.ch
- removed __RDDSETDEFAULT() - this function was necessary with old
rdd register code and we not not need it for few years. It's not
Clipper function so I do not see any reason to keep it but if you
want we can add wrapper to standard RDDSETDEFAULT()
* harbour/source/rdd/hbsix/sxcompr.c
+ added workaround for SIX3 bug which I intentionally replicated in
[x]Harbour but it may cause data corruption so IMHO it will be better
to fix it.
* harbour/source/rtl/errorsys.prg
* added default action for EG_LOCK - it's Clipper compatible behavior
but done in differ way. Due to some differences in linker we are
using we cannot exactly replicate Clipper behavior because it will
not work on some platforms as expected so I decided to add it here.
I think it's even more Clear then the trick with source/sys/ntxerr.prg
done by Clipper. Many people do not even knows about it.
* harbour/source/rtl/gtcrs/chrmap.c
* changed environment variable name from HB_CHRMAP to HB_CHARMAP to
be compatible with description in default map file
|
||
|
|
56267f28dd |
2007-04-14 12:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/include/hbstdgen.ch
* harbour/include/box.ch
* harbour/include/hbclass.ch
* harbour/include/hbcommon.ch
* harbour/include/hbextern.ch
* harbour/include/hbgetcmt.ch
* harbour/include/hbsetup.ch
* harbour/include/ord.ch
* harbour/source/rdd/dbdelim.prg
* harbour/source/rdd/dbfuncs.prg
* harbour/source/rdd/dbjoin.prg
* harbour/source/rdd/dblist.prg
* harbour/source/rdd/dbsort.prg
* harbour/source/rdd/dbstrux.prg
* harbour/source/rdd/dbtotal.prg
* harbour/source/rdd/dbupdat.prg
* harbour/source/rdd/rddord.prg
* harbour/source/rtl/alert.prg
* harbour/source/rtl/browdb.prg
* harbour/source/rtl/browdbx.prg
* harbour/source/rtl/checkbox.prg
* harbour/source/rtl/dircmd.prg
* harbour/source/rtl/getsys.prg
* harbour/source/rtl/input.prg
* harbour/source/rtl/mssgline.prg
* harbour/source/rtl/pushbtn.prg
* harbour/source/rtl/radiobtn.prg
* harbour/source/rtl/radiogrp.prg
* harbour/source/rtl/setfunc.prg
* harbour/source/rtl/setta.prg
* harbour/source/rtl/tbcolumn.prg
* harbour/source/rtl/tget.prg
* harbour/source/rtl/tgetint.prg
* harbour/source/rtl/tmenuitm.prg
* harbour/source/rtl/tpopup.prg
* harbour/source/rtl/ttopbar.prg
* harbour/source/rtl/typefile.prg
* harbour/source/vm/harbinit.prg
* harbour/utils/hbrun/external.prg
* harbour/utils/hbtest/rt_main.ch
+ Following #defines are now available by default without
the need to #include "hbsetup.ch". These are of course
also available for applications as defined at Harbour
build time:
HB_EXTENSION
HB_C52_UNDOC
HB_C52_STRICT
HB_COMPAT_C53
HB_COMPAT_XPP
HB_COMPAT_VO
HB_COMPAT_FLAGSHIP
HB_COMPAT_FOXPRO
HB_COMPAT_DBASE
HB_COMPAT_CLIP
HB_COMPAT_XHB
HB_SHORTNAMES
HB_FILE_VER_STATIC
* harbour/source/compiler/hbusage.c
* Mail address update.
|
||
|
|
49b4fc91e3 |
2007-04-04 10:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/tip/Makefile
- harbour/contrib/tip/atokens.c
* removed HB_ATOKENS()
- harbour/source/rtl/teditorl.c
- removed __STRTOKEN(), __STRTKPTR()
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbextern.ch
+ harbour/source/rtl/hbtoken.c
+ added set of functions to manipulate string tokens:
HB_TOKENCOUNT( <cString>, [ <cDelim> ], [ <lSkipStrings> ],
[ <lDoubleQuoteOnly> ] ) -> <nTokens>
HB_TOKENGET( <cString>, <nToken>, [ <cDelim> ], [ <lSkipStrings> ],
[ <lDoubleQuoteOnly> ] ) -> <cToken>
HB_TOKENPTR( <cString>, @<nSkip>, [ <cDelim> ], [ <lSkipStrings> ],
[ <lDoubleQuoteOnly> ] ) -> <cToken>
HB_ATOKENS( <cString>, [ <cDelim> ], [ <lSkipStrings> ],
[ <lDoubleQuoteOnly> ] ) -> <aTokens>
All these functions use the same method of tokenization. They can
accept as delimiters string longer then one character. By default
they are using " " as delimiter. " " delimiter has special mening
Unlike other delimiters repeted ' ' characters does not create empty
tokens, f.e.: HB_ATOKENS( " 1 2 3 " ) returns array { "1", "2" }
Any other delimiters are restrictly counted, f.e. HB_ATOKENS( ",,1,,2,")
return array: { "", "", "1", "", "2", "" }.
+ added emulation for old __STRTOKEN(), __STRTKPTR() and xHarbour's
__STRTOKENCOUNT() by HB_TOKEN*() functions. They do not return
exactly the same result as __STRT*() functions which in some cases
ignored some delimiters and return wrong results.
* harbour/source/rdd/Makefile
+ harbour/source/rdd/dbsql.c
+ added __DBSQL() function
* harbour/include/hbsetup.h
* harbour/source/vm/fm.c
+ added support for native Windows memory allocation functions
It can be enabled by HB_FM_WIN32_ALLOC macro and disable C-RTL
memory manager.
* harbour/tests/mousetst.prg
* touch screen output before MPRESENT() to work with GTXWC
|
||
|
|
88cda3200d |
2007-03-22 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
* updated for new files - please check
* harbour/harbour.spec
* added compiler library
* harbour/bin/pack_src.sh
* harbour/bin/hb-func.sh
* updated for new files and libraries
* harbour/config/w32/mingw32.cf
* harbour/config/w32/watcom.cf
* harbour/config/w32/xcc.cf
* added winsock libraries
* harbour/include/hbapicdp.h
* harbour/source/rtl/cdpapi.c
+ added hb_cdpicmp() - not case sensitive version of hb_cdpcmp()
* harbour/include/hbapiitm.h
* harbour/source/vm/itemapi.c
+ hb_itemStrICmp(), hb_itemCopyFromRef(), hb_itemMoveFromRef()
* harbour/include/hbapi.h
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/include/hbexprop.h
* harbour/include/hbmacro.h
* harbour/include/hbpcode.h
* harbour/include/hbvmpub.h
* harbour/include/hbxvm.h
* harbour/source/common/expropt1.c
* harbour/source/compiler/complex.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencc.c
* harbour/source/compiler/gencli.c
* harbour/source/compiler/genhrb.c
* harbour/source/compiler/genobj32.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.yyh
* harbour/source/compiler/hbdead.c
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hblbl.c
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbopt.c
* harbour/source/compiler/hbpcode.c
* harbour/source/compiler/hbstripl.c
* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
* harbour/source/macro/macro.yyh
* harbour/source/macro/macrolex.c
* harbour/source/vm/Makefile
* harbour/source/vm/arrays.c
* harbour/source/vm/asort.c
* harbour/source/vm/classes.c
* harbour/source/vm/eval.c
* harbour/source/vm/garbage.c
* harbour/source/vm/hvm.c
* harbour/source/vm/itemapi.c
* harbour/source/vm/macro.c
+ harbour/source/vm/hashes.c
+ harbour/source/vm/hashfunc.c
+ added hash items, f.e.:
local h1 := {=>}, h2 := { "a"=>1.234, "b"=>2.345 }
? h2[ "a" ], h2[ "b ]
+ added support for DYNAMIC function declaration - it allow to define
functions which are lately bound at runtime, f.e.:
/*** t01.prg ***/
dynamic func1
proc main()
local h:=__hrbload("t02.hrb")
? func1()
return
/*** t02.prg ***/
func func1
return "Hello!!!"
% use new FUNCALL structure to hold EXTERNAL and DYNAMIC functions,
it reduce memory usage, FUNCALL is much smaller then FUNCTION
% use symbol scope bits when possible instead of making some linear scan
+ added new enumarator message: __ENUMKEY - it allow to access
key value when hash item is base enumerator value, f.e.:
proc main()
local v, h:={"a"=>1.000,"b"=>2.000,"c"=>3.000}
heval( h, { |k,v,i| qout( k, v, i ) } ); ?
for each v in h
? v, "=>", v:__enumKey(), v:__enumValue(), v:__enumIndex(), ;
valtype(v:__enumBase())
v += 0.123
next
? ;heval( h, { |k,v,i| qout( k, v, i ) } )
return
+ added C level hb_hash*() functions
+ added support for full HASH item cloning and updated array cloning
to also clone nested hashes - please note that xHarbour does not do
that, in xHarbour ACLONE() clones _ONLY_ nested arrays and HCLONE()
_DOES_NOT_ clone _ANY_ nested items.
* harbour/include/hbextern.ch
+ added hash functions HB_H*()
* changed INET*() functions to HB_INET*()
+ added hash functions H*() and socket functions INET*() when
HB_COMPAT_XHB is set
* harbour/include/hbtypes.h
+ added missing HB_EXTERN_BEGIN / HB_EXTERN_END
* harbour/include/hbpp.h
* harbour/source/pp/ppcore.c
! added protection against automatic word concatenation in some cases
! fixed preprocessing expressions when match marker matches ';' token
* harbour/source/rtl/Makefile
+ harbour/source/rtl/itemseri.c
+ added functions for item serialization: HB_SERIALIZE() and
HB_DESERIALIZE() - these function are not binary compatible
with xHarbour functions with the same names but make very
similar job with the exception to serialization of codeblock
and object variables - Harbour does not allow to serialize
codeblocks and serialize objects as arrays.
In most cases these functions can replace the xHarbour ones
+ added HB_DESERIALBEGIN() and HB_DESERIALIZE() functions covered
by HB_COMPAT_XHB macro - this functions are only for compatibility
with existing xHarbour code, In Harbour HB_DESERIALBEGIN() is
dummy function which returns first parameter and HB_DESERIALNEXT()
is a simple wrapper to HB_DESERIALIZE() so it's not necessary to
use them.
* harbour/source/rtl/hbinet.c
* changed INET*() functions to HB_INET*() and enable them for default
build
+ added INET*() functions wrappers covered by HB_COMPAT_XHB macro
* harbour/source/rtl/hbrandom.c
+ added HB_RANDOMINT() - xHarbour compatible
* harbour/source/rtl/len.c
+ added support for HASHes
* harbour/source/rtl/valtype.c
+ added support for HASHes
+ added set of HB_IS*() functions - they are a little bit faster then
calling VALTYPE( v ) == <cVal>
- removed HB_ISBYREF() - this function cannot longer work, it was using
a Clipper incompatible anomalies in passing variables by reference I
fixed so it has to stop to work. If it will be realy necessary to
implement HB_ISBYREF() function then please inform me - it will have
to be done at compiler level or with some much deeper HVM stack
checking.
* harbour/source/vm/extend.c
! fixed hb_extIsArray() and hb_extIsObject() to work well with
parameters passed by reference.
Please note that now hb_extIsArray() return TRUE only for pure arrays
not object values.
* harbour/contrib/Makefile
+ harbour/contrib/tip/Changelog
+ harbour/contrib/tip/Makefile
+ harbour/contrib/tip/atokens.c
+ harbour/contrib/tip/base64x.c
+ harbour/contrib/tip/cgi.prg
+ harbour/contrib/tip/client.prg
+ harbour/contrib/tip/credent.prg
+ harbour/contrib/tip/cstr.prg
+ harbour/contrib/tip/encb64.prg
+ harbour/contrib/tip/encmthd.c
+ harbour/contrib/tip/encoder.prg
+ harbour/contrib/tip/encqp.prg
+ harbour/contrib/tip/encurl.prg
+ harbour/contrib/tip/ftpcln.prg
+ harbour/contrib/tip/hbhex2n.c
+ harbour/contrib/tip/httpcln.prg
+ harbour/contrib/tip/mail.prg
+ harbour/contrib/tip/popcln.prg
+ harbour/contrib/tip/smtpcln.prg
+ harbour/contrib/tip/tip.ch
+ harbour/contrib/tip/url.prg
+ harbour/contrib/tip/utils.c
+ added TIP library - code borrowed from xHarbour
Please test - a lot of above code is not well tested, also some peaces
were written over year ago for different things (f.e. serialization for
NETRDD) and now I collected them and committed.
The TIP library was not tested at all. It can be compiled but I cannot
say if it works - I hope that people familiar with it can make necessary
test and fixes.
It's also not the final version of low level HASH item code. I'm working
on more efficient structure which uses binary tries but I cannot say when
I'll finish it (maybe in this weekend or maybe in next year) so I committed
working version now even if I'm not happy with overall performance (BTW
not worser then in xHarbour)
|
||
|
|
a193cd605d |
2007-03-14 14:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapiitm.h
* harbour/source/vm/eval.c
+ added C function hb_execFromArray()
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbinet.c
+ added xHarbour compatible INET*() functions - code borrowed
from xHarbour with some minor modifications and fixes
* harbour/include/hbextern.ch
+ added regex functions
+ added INET*() functions when compiled with HB_COMPAT_XHB
|
||
|
|
8d38c093b4 |
2006-11-17 13:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
* harbour/source/common/hbstr.c
* harbour/source/compiler/harbour.l
* harbour/source/macro/macro.l
* harbour/source/macro/macro.slx
* harbour/source/compiler/harbour.slx
* changed parameters in function: hb_compStrToNum() now the string
size is passed explicitly so it can work with strings which does
not have trailing ASCII NUL character.
* harbour/source/macro/macro.y
* indenting
* harbour/include/hbmacro.h
* harbour/source/common/hbstr.c
* harbour/source/macro/macro.l
* harbour/source/macro/macro.y
* added two new functions for macro compiler: hb_macroLexNew() and
hb_macroLexDelete() to clearly separate lexer from grammar parser.
* harbour/source/compiler/harbour.l
* harbour/source/common/hbstr.c
* harbour/source/pp/ppcore.c
* added error generation for wrong e"..." strings and fixed \" quoting
* removed \q quoting
* harbour/source/pp/ppcore.c
* harbour/source/pp/ppgen.c
* added small description in headers
* harbour/common.mak
* harbour/source/pp/Makefile
* harbour/source/pp/pplib.c
+ harbour/source/pp/pplib2.c
* harbour/include/hbextern.ch
+ added auto destructor for allocated PP context, it's not longer
necessary to execute __PP_FREE() so this function was moved from
the standard .prg API to file with backward compatible functions
* changed __PREPROCESS() to __PP_PROCESS()
* moved setting std rules to separate file so now if user uses PP
with only his own rules we are not forcing linking static tables
which are quite huge (over 100kb)
To include stdandard rules in static binaries user should add
to his code:
REQUEST __PP_STDRULES
+ harbour/source/pp/pplib3.c
* old PP functions for backward compatibility:
__PPADDRULE(), __PREPROCESS(), __PP_FREE()
Please note that using this function is not MT safe. They should
work like with old PP code. Using any of this function automatically
forces linking __PP_STDRULES
|
||
|
|
8deba76fc3 |
2006-09-28 14:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/common.ch
+ added ISSYMBOL()
* harbour/include/hbextern.ch
- removed __CLS_PARAM()
* harbour/include/hbclass.ch
* harbour/source/rtl/tclass.prg
* harbour/source/vm/classes.c
* replaced __CLS_PAR00() and __CLS_PARAM() functions by preprocessor
rules. These functions are not longer necessary though I left them
in classes.c for backward binary compatibility. Probably they will
be removed in the future.
! use function pointers (@<funcname>()) instead of function names
with REQUEST for super classes ID. It fixes using STATIC class
functions.
|
||
|
|
c35391da65 |
2006-09-14 15:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/garbage.c
* minor cleanup
* harbour/source/rtl/cdpapi.c
* harbour/include/hbextern.ch
+ added HB_CDPLIST() - it returns array with all registered CODEPAGEs
* harbour/source/rtl/set.c
! fixed typo in _SET_DEFEXTENSIONS
* harbour/tests/testrpt.prg
! fixed syntax
! use lower name in report name to work properly on case sensitive
file systems
|
||
|
|
bd29875021 |
2006-07-18 13:25 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu)
* harbour/include/hbextern.ch
! Removed __dbfList() reference.
|
||
|
|
482c47321d |
2006-07-12 18:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbextern.ch
- removed ORDCOND() - it's not normal function
* harbour/include/ord.ch
+ added documented by CL5.3 NG but not implemented in Clipper
pseudofunction ORDCOND()
* harbour/source/rdd/dbcmd.c
+ added __dbOpenSDF() function
In Clipper dbCreate() can receive also 6-th undocumented
parameter: cDelim. In [x]Harbour this parameter is used
for code page ID. I'd like you decide if we should move
it and keep exact Clipper parameters. I'm also not sure
if __dbOpenSDF() is the exact Clipper's name. In Clipper
the name has only 10 characters __dbOpenSD() and this
function is used to open for import DELIMITED and SDF
files so maybe SD is not from SDF. Can anyone confirm
it's valid name. Maybe we should remove the last F.
* harbour/source/rdd/dbstrux.prg
* small speed optimization
* harbour/source/rtl/dbdelim.prg
* added alternatice Clipper like version of __dbDelim(). It executes
internally the same functions as Clipper - if someone has a while
and can check if it works correctly giving the same as Clipper
results then I'll be helpfull.
* harbour/source/rtl/dummy.prg
- removed ORDCOND() and __dbOpenSDF()
* harbour/source/vm/arrays.c
* minor optimization
* harbour/source/vm/cmdarg.c
* harbour/source/vm/itemapi.c
* formatting
|
||
|
|
a290c984e7 |
2006-02-04 17:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour.spec
* harbour/make_bsd.sh
* harbour/make_drw.sh
* harbour/make_gnu.sh
* harbour/make_rpm.sh
* harbour/make_tgz.sh
* harbour/bin/hb-func.sh
* harbour/bin/pack_src.sh
* harbour/config/c.cf
* harbour/config/global.cf
* harbour/config/rules.cf
* harbour/config/darwin/gcc.cf
* harbour/config/darwin/global.cf
* harbour/config/dos/djgpp.cf
* harbour/config/dos/global.cf
* harbour/config/dos/install.cf
* harbour/config/dos/owatcom.cf
* harbour/config/hpux/gcc.cf
* harbour/config/hpux/global.cf
* harbour/config/linux/gcc.cf
* harbour/config/linux/global.cf
* harbour/config/linux/owatcom.cf
* harbour/config/sunos/gcc.cf
* harbour/config/w32/watcom.cf
* include ADSRDD by default in RPMs
* updated for new RPM which does not accept some old tags
* set -fPIC on 64bit platforms
+ added /etc/harbour/hb-charmap.def
* updated for new GT system and drivers
* harbour/contrib/dot/pp.prg
* harbour/contrib/dot/pp_harb.ch
* use _APMAIN as startup function
* cleaned direct access to item internals
* harbour/contrib/libct/Makefile
+ harbour/contrib/libct/ctwfunc.c
+ harbour/contrib/libct/ctwin.c
+ harbour/contrib/libct/ctwin.h
* added CT3 like Window System - it's a GT driver which inherits
from the existing one and adds CTW functionality
* harbour/contrib/libct/screen1.c
* updated for GTAPI modifications
* harbour/contrib/libnf/Makefile
* harbour/contrib/libnf/chdir.c
* harbour/contrib/libnf/mkdir.c
* harbour/contrib/libnf/rmdir.c
* use hb_fs*() API functions instead of calling DOS interrupts
Now NF dir functions works on all platforms - it will be nice
to update other functions too.
* harbour/contrib/libnf/dispc.c
* harbour/contrib/libnf/ftattr.c
* updated for GT API modifications, some of this code still depends
on EGA/VGA video buffer so will work only if user will force in GT
using it - it will be nice to rewrite them
* harbour/contrib/odbc/odbc.c
* harbour/contrib/ole/ole2.c
* casting and cleaning direct access to item internals
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/rdd_ads/adsfunc.c
* harbour/contrib/rdd_ads/adsmgmnt.c
* synced with xHarbour
* harbour/include/Makefile
* added new header files
+ harbour/include/hbgtinfo.ch
+ added GTI_* defintions for hb_gtInfo() function.
This function works in similar way to dbInfo() in RDD.
The GTI_* definitions are taken from xHarbour "as is" and
they should be cleaned - not all functionality are supported
in Harbour and some others should be implemented in differ
way then in xHarbour.
+ harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* new GTAPI
hbgtcore.h file should not be included by user code
it's only for internal use in GT drivers
* HB_inkey_enum changed to int - this is bit field not enumerated type.
Many of C/C++ compilers forbid bit operations on enum types and
forcing it by casting which finally exceeds the enum range is defined
as bug because it may badly interacts with some compiler optimizations
* harbour/include/hbapi.h
* harbour/include/hbapicdp.h
* harbour/include/hbapierr.h
* harbour/include/hbapifs.h
* harbour/include/hbapiitm.h
* harbour/include/hbapilng.h
* harbour/include/hbapirdd.h
* harbour/include/hbdate.h
* harbour/include/hbdefs.h
* harbour/include/hbinit.h
* harbour/include/hbpcode.h
* harbour/include/hbrdddbf.h
* harbour/include/hbset.h
* harbour/include/hbstack.h
* harbour/include/hbvm.h
* harbour/include/hbvmopt.h
* harbour/include/hbvmpub.h
* separated internal and external API. Now the definitions for
internal HVM structures and functions are excluded by default
they could be enabled if user include hbvmopt.h before other
header files. Such operation should be done _ONLY_ by core
code - if 3-rd party developers make sth like that then it's
for their own risk and such code may stop to work with next
Harbour versions. Without hbvmopt.h the internal structures
like HB_ITEM, HB_DYNS, ... are mapped to 'void' so there is
no way to access their members so we can modify them in the
future without afford for 3-rd party code.
There is one small exception 'type' should be the first member
for HB_ITEM structure because I used a small ugly hack in
HB_IS_*() macros with castin PHB_ITEM to HB_TYPE* - it works
without speed overhead but if you think that it will be
better/cleaner to not use such tricks then it's enough to
change HB_ITEM_TYPE() definitions in hbvmpub.h - see note.
* cleared the usage of HB_EXPORT - to avoid problems with some C/C++
compilers we agreed that the only one common way of using HB_EXPORT
is adding it ad begining of declaration - please keep this convention
in the future.
+ added new functions:
hb_extIsObject(), hb_codeblockId(), hb_idleSleep(),
hb_fsGetOsHandle(),
hb_dynsymFindSymbol(), hb_dynsymGetSymbol(),
hb_dynsymSymbol(), hb_dynsymName(),
hb_dynsymMemvarHandle(), hb_dynsymAreaHandle(), hb_dynsymSetAreaHandle()
* changed hb_arrayClone() declaration to:
PHB_ITEM hb_arrayClone( PHB_ITEM pArray )
* changed hb_arrayFromParams() declaration to:
PHB_ITEM hb_arrayFromParams( int iLevel )
The previous version needed a pointer to stack relocatable area
so any stack resizing could cause GPF.
* harbour/include/inkey.ch
* added definitions for extended mouse keys/events and some key
combinations
* harbour/source/codepage/uc1250.c
* harbour/source/codepage/uc1251.c
* harbour/source/codepage/uc1253.c
* harbour/source/codepage/uc1257.c
* harbour/source/codepage/uc737.c
* harbour/source/codepage/uc850.c
* harbour/source/codepage/uc852.c
* harbour/source/codepage/uc866.c
* harbour/source/codepage/uc88591b.c
* harbour/source/codepage/uc8859_1.c
* harbour/source/codepage/uc8859_2.c
* harbour/source/codepage/uc8859_5.c
* harbour/source/codepage/uckoi8.c
* harbour/source/codepage/uckoi8u.c
* harbour/source/codepage/ucmaz.c
* updated unicode values for characters in rabge 1-31 to keep
DOS compatibility
* harbour/source/common/expropt1.c
* harbour/source/common/hbarch.c
* harbour/source/common/hbdate.c
* harbour/source/common/hbstr.c
* harbour/source/common/hbver.c
* keep HB_EXPORT at the beginning of function declaration
* harbour/include/hbpcode.h
* harbour/include/hbcomp.h
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/hbfix.c
+ harbour/source/compiler/hbdead.c
* harbour/source/compiler/hbpcode.c
+ harbour/source/compiler/hbstripl.c
% rewritten jump optimization
! fixed some minor problems
* do not optimize jumps and local variable access by shorter
PCODE version and HB_P_NOOP when jump optimization is
disabled, this is a note I left in source code in few places:
/*
* optimizing jumps here by shorting them and setting HB_P_NOOPs
* only slow down the compilation process for three reasons:
* 1. When it's dummy jump to next instruction we need two passes
* in hb_compOptimizeJumps() to fully remove it
* 2. hb_compOptimizeJumps() also make jump shortcutting in each pass
* 3. When Jump Optimization is disabled (-kJ) then it cause slowness
* at runtime because we will have more HVM loops: first for the
* shorter jump and next for the HB_P_NOOP PCODE(s)
* [druzuz]
*/
+ added support for multi passes in jump/dead code elimination
(hb_compOptimizeJumps())
By default is set upto three passes.
Now hb_compOptimizeJumps() keeps all compiler internal data clean
on exist and can be called any times and does not change other
compiler's functions behaviors
+ added dummy jumps elimination
+ added optimization for:
IF .T.
IF .F.
WHILE .T.
WHILE .F.
etc.
* restored empty BEGIN/RECOVER sequence block elimination
if Jump Optimization is enabled then it marks the block
with HB_P_NOOPS else it cut the generated PCODE
+ added dead code eliminator (new functions hb_compCodeTraceMarkDead()/
hb_compPCodeTrace() - it works only when Jump Optimization is
not disabled)
As a result of the above we have smaller and faster PCODE.
I do not think that we will have meta code support in the reasonable
time and because I need some valid compiler data/structures like
updated table of all jumps for real C code (not PCODE in .c files)
generation then I decide to make some modifications and the above
is in practice a side effect of this work.
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/rddord.prg
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/nulsys/nulsys.c
* synced with my modifications in xHarbour
* updated for API modifications
* harbour/source/rtl/Makefile
+ added gtsys.c, gtfunc.c, hbgtcore.c
* harbour/source/rtl/accept.c
* harbour/source/rtl/alert.prg
* harbour/source/rtl/cdpapi.c
* harbour/source/rtl/console.c
* harbour/source/rtl/dates.c
* harbour/source/rtl/do.c
* harbour/source/rtl/errorapi.c
* harbour/source/rtl/errorsys.prg
* harbour/source/rtl/file.c
* harbour/source/rtl/fserror.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/idle.c
* harbour/source/rtl/math.c
* harbour/source/rtl/oldclear.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/strpeek.c
* harbour/source/rtl/valtype.c
* harbour/source/rtl/xsavescr.c
* updated for API modifications
* cleaned some compiler warnings
* harbour/source/rtl/filesys.c
+ added hb_fsGetOsHandle()
* updated for API modifications
* harbour/source/rtl/gt.c
* harbour/source/rtl/gtapi.c
* harbour/source/rtl/gtapiu.c
+ harbour/source/rtl/gtfunc.c
+ harbour/source/rtl/gtsys.c
+ harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/inkey.c
* harbour/source/rtl/maxrow.c
* harbour/source/rtl/mouseapi.c
* harbour/source/rtl/setcolor.c
* harbour/source/rtl/setposbs.c
* harbour/source/rtl/shadow.c
* new GT API code
* harbour/source/rtl/saverest.c
* changed default behavior in SEVESCREEN/RESTSCREEN with parameters
out of screen range to be Clipper compatible. Added last logical
parameter to keep previous behavior for programs which begins to
use it.
* harbour/source/rtl/seconds.c
* include missing header file to fix C++ compilation
* make hb_secondsCPU global function
* harbour/source/rtl/set.c
* make HB_SET_TYPEAHEAD Clipper compatible
* harbour/source/rtl/gtcgi/Makefile
* harbour/source/rtl/gtcgi/gtcgi.c
- harbour/source/rtl/gtcgi/mousecgi.c
* rewritten for new GT API
some detail behaviors has been changed but I think the current
implementation is better for CGI programs output - please check
and fix me if necessary
* harbour/source/rtl/gtcrs/Makefile
- harbour/source/rtl/gtcrs/charmap.prg
+ harbour/source/rtl/gtcrs/chrmap.c
- harbour/source/rtl/gtcrs/debug.map
- harbour/source/rtl/gtcrs/eterm.map
* harbour/source/rtl/gtcrs/gtcrs.c
+ harbour/source/rtl/gtcrs/gtcrs.h
+ harbour/source/rtl/gtcrs/hb-charmap.def
- harbour/source/rtl/gtcrs/kbdcrs.c
- harbour/source/rtl/gtcrs/keymap.prg
- harbour/source/rtl/gtcrs/linux.map
- harbour/source/rtl/gtcrs/mousecrs.c
* new GTCRS based on my xHarbour and Flagship curses code
Please not that at runtime it looks for a file
/etc/harbour/hb-charmap.def where user can fully tune output
for his terminal. This file is included with proper path in
binaries created by make_rpm.sh and make_tgz.sh
Ryszard I've removed some of your extensions which are no longer
necessary and some other (keyboard sequence redefinition) should
be done in a little bit differ way. I would like to talk about it
when you test current code.
Added support for extended mouse keys (middle button and wheel).
* harbour/source/rtl/gtdos/Makefile
* harbour/source/rtl/gtdos/gtdos.c
- harbour/source/rtl/gtdos/mousedos.c
* rewritten for new GT API
Fixed some small problems, finished mouse code which for DJGPP
is fully Clipper compatible with real mouse SAVE/RESTORE code.
For other compilers it should be updated depending on memory
model and used DPMI driver (if any).
* harbour/source/rtl/gtos2/Makefile
* harbour/source/rtl/gtos2/gtos2.c
- harbour/source/rtl/gtos2/mouseos2.c
* rewritten for new GT API
Fixed some problems and finished the mouse code.
Please test it - I made all modifications without OS2 and
I was not able to make any test. I'm interesting in information
if it works and the speed difference - f.e. results from
tests/vidtest.prg run with previous and current version.
* harbour/source/rtl/gtpca/Makefile
* harbour/source/rtl/gtpca/gtpca.c
- harbour/source/rtl/gtpca/kbdos2.gcc
- harbour/source/rtl/gtpca/mousepca.c
* rewritten for new GT API
and finished so now it's full functional GT driver
I'm interesting in keyboard sequences used by PC-ANSI drivers
in DOS so it will be possible to implement also support for
extended keys input.
* harbour/source/rtl/gtsln/Makefile
* harbour/source/rtl/gtsln/gtsln.c
+ harbour/source/rtl/gtsln/gtsln.h
* harbour/source/rtl/gtsln/kbsln.c
* harbour/source/rtl/gtsln/keytrans.c
* harbour/source/rtl/gtsln/mousesln.c
* rewritten for new GT API basing on current xHarbour code
added support for slang 1.4x patched for UNICODE (Debian
patches used by most of current Linux distributions) and
slang 2.x - It's unicode ready, tries to detect terminal mode
(utf-8/iso) at startup and switch the internal logic to
iso/unicode mode. When compiled with slang 1.4x or 2.x
and terminal is in UTF-8 it can display all characters like
in DOS if only used font have them or good fall-back table is
loaded (f.e. the one created by QRCZAK)
Added support for extended mouse keys (middle button and wheel).
* harbour/source/rtl/gtstd/Makefile
* harbour/source/rtl/gtstd/gtstd.c
- harbour/source/rtl/gtstd/mousestd.c
* rewritten for new GT API
Now it can work as full screen GT driver redrawing the previous
screen contents from internal GT core buffers. I run with this
GT some of my programs and they work quite well ;-) of course
without colors.
* harbour/source/rtl/gtwin/Makefile
* harbour/source/rtl/gtwin/gtwin.c
- harbour/source/rtl/gtwin/mousewin.c
* updated for new GT API
+ harbour/source/rtl/gtxwc/Makefile
+ harbour/source/rtl/gtxwc/gtxwc.c
+ harbour/source/rtl/gtxwc/gtxwc.h
* new XWindow Console GT driver based on my and Giancarlo Niccolai
code form xHarbour - this GT can work in XWindow environment only
and create its own window for console output. It delays the
initialization to the moment when user try to display anything on
the screen so even without X Window system programs which uses this
GT can work as long as use only outstd/outerr output.
* harbour/source/vm/arrays.c
* updated for API modifications
+ added hb_arrayId(),
* changed hb_arrayClone() declaration to:
HB_EXPORT PHB_ITEM hb_arrayClone( PHB_ITEM pSrcArray )
* changed hb_arrayFromParams() declaration to:
PHB_ITEM hb_arrayFromParams( int iLevel )
* harbour/source/vm/arrayshb.c
* updated for API modifications
+ added new parameter iLevel to function HB_APARAMS()
* harbour/source/vm/classes.c
* harbour/source/vm/cmdarg.c
* harbour/source/vm/dynlibhb.c
* harbour/source/vm/estack.c
* harbour/source/vm/fm.c
* harbour/source/vm/garbage.c
* harbour/source/vm/maindll.c
* harbour/source/vm/maindllh.c
* harbour/source/vm/maindllp.c
* harbour/source/vm/mainstd.c
* harbour/source/vm/mainwin.c
* harbour/source/vm/memvars.c
* harbour/source/vm/pcount.c
* harbour/source/vm/proc.c
* updated for API modifications
* harbour/source/vm/codebloc.c
* updated for API modifications
+ added hb_codeblockId()
* harbour/source/vm/dynsym.c
* updated for API modifications
+ added new functions:
hb_dynsymFindSymbol(), hb_dynsymGetSymbol(),
hb_dynsymSymbol(), hb_dynsymName(),
hb_dynsymMemvarHandle(), hb_dynsymAreaHandle(), hb_dynsymSetAreaHandle()
* harbour/source/vm/eval.c
* updated for API modifications
* call hb_vmPushState()/hb_vmPopState() in hb_itemDo()/hb_itemDoC()
functions - it's necessary to make HVM reentrant safe.
* harbour/source/vm/extend.c
* updated for API modifications
+ added hb_extIsObject() similar to existing hb_extIsArray()
* harbour/source/vm/hvm.c
* updated for API modifications
+ added new functions: hb_vmPushState(), hb_vmPopState()
which save/restore HVM state (the top stack value which can be
processed and return item and maybe sth else in the future) making
HVM ready for reentrant.
* harbour/source/vm/itemapi.c
* updated for API modifications
+ added new function:
HB_EXPORT PHB_SYMB hb_itemGetSymbol( PHB_ITEM pItem );
! fixed bug in hb_itemPutNInt()
* harbour/tests/Makefile
* harbour/utils/hbdoc/Makefile
* harbour/utils/hbextern/Makefile
* harbour/utils/hbmake/Makefile
* harbour/utils/hbrun/Makefile
* harbour/utils/hbtest/Makefile
- removed badly added: dbfntx, dbfcdx, dbffpt, hbsix libraries.
what broke GNU make compilation for some compilers
This libraries should be included automatically when RDD lib
is included by *.cf files
Summary:
The whole patch (cvs diff -uN) is ~1.5MB length and I cannot describe
everything in details - sorry but it was too much modifications in
one commit so now just some of general notes.
The header files included as is does not have any information about
internal HVM structures and some functions. In practice only HB_SYMB
is public and it has to be public for .c files generated from .prg
so I force the fixed size of this structure (alignment independent)
by redefining some members to union with void * - it's a little bit
ugly trick but it effectively eliminates the problem of linking
binaries compiled with differ alignment C compiler switches.
The structures like HB_ITEM, HB_CODEBLOCK, HB_STACK, HB_DYNS are not
longer defined and pointers to the defined as void * - like in Clipper
the ITEM structure. It caused that I had to add some new functions
to make some operation still possible to implement. If I missed sth
and any of you will have a problem with your code then please inform
me about it and after a small discussion on Harbour developers list
we can decide if other functions should be added.
The internal API is still accessible. It's enough to include "hbvmopt.h"
file before other header files to enable it. Now only files in
source/vm directory include it.
The 3-rd party code which does not include hbvmopt.h (or tries to
set some internals macros) should be safe for future HVM modifications
and will work also with new binaries so 3-rd party library developers
should remember about it. If they won't then it's only their and
their clients problem not Harbour developers.
With this modifications I also create new GT model which is similar
to the one used by RDD with multi inheritance. It can be quite easy
extended to simultaneously load more then one GT subsystem (sth like
work areas in RDD) but I left it for the future when someone may
need it. hbapigt.h file now contains only information about public
functions and does not have any code which depends on current
internal implementation - it should be backword compatible as long
as somone did not try to use internal GT functions.
The internal GT system use hbgtcore.h file which should not be
included by 3-rd party code as long as someone will not make new
GT driver. The internal GT code is new so I expect that it will
be changed yet in the nearest future (I'm waiting for other developers
feedback) and in such case any 3-rd party GTs will have to be updated.
How it works:
The base GT driver (GTNUL) is fully functional GT driver which
makes all operations on memory buffer. After each screen write
Flush() method is called which check for dispcount() and if
it's 0 then call Refresh() method to update modified area by
Redraw() method. This method is dummy in GTNUL and external
output with this GT can be reached by outstd()/outerr() which
are now redirected to GT methods. A simple GT driver may overload
only Refresh() method to give full screen output.
Application can use only this GT driver and it seems to be very
good choice for GUI and background daemon/service programs.
This GT is loaded at startup then all other GTs can be loaded
later and inherit from the previously loaded GT drivers.
The new GT driver can overload as much method as wants/needs.
Now all GT operations are implemented as GT method so GT driver
can easy change their default behavior, f.e. it may fully overload
color parsing methods and use differ or extended to Clipper color
definitions.
I rewrote all existing GTs to work with new GT model.
OS2 users - please test GTOS2 which I was not able to test and
see the note in Redraw() method. If possible please make some
speed tests.
In fact now there is much more internal operations then it was
before but because they are done on memory only then current
code is much faster in this GT drivers which so far makes all
operations on real video area. I made some tests with GTNUL
and tests/vidtest.prg and the total overhead is minimal. Now
dipbegin()/dispend() in practice does not cost anything so it
gives additional speed improvement in application which extensively
use it.
More then one GT driver can be linked with final binaries and
chose on application startup by //GT<NAME> switch and/or environment
variable HB_GT=<name>
In the RTL is new GT function GTSYS() which works in similar way
to RDDSYS() in RDD subsystem and for linking default GT driver
for given platform. When RTL is compiled the default GT driver
is set to HB_GT_DEFAULT envvar and if not exist to HB_GT_LIB
envvar and if it also does not exist to hard coded platfom GTs
(see source/rtl/gtsys.c and source/rtl/Makefile for rules)
Adding to source code:
ANNOUNCE GTSYS
disable linking the default GT driver and:
REQUEST HB_GT_<name>
for linking given (<name>) GT driver, f.e.: REQUEST HB_GT_WIN
If you are working in SH environment (Linux and other *nixes users,
DJGPP bash, MinGW shell then it's possible to use -gt<name> switch
in hblnk / hbmk scripts to force linking GT drivers (it could be
repeated with different <name>) and the first one becomes the default
one. F.e.:
xhbmk -m -n -w -es2 -gtcrs -gtsln -gtstd -gtpca vidtest.prg
Usually the GT driver are loaded at HVM startup but it's possible
to load it later. I created new GT driver CTW which gives full
CT3 like Window system. The CT3 extended driver change the behavior
of some function in Clipper extended driver, f.e WRITECON() or
SETPOS() with parameters out of screen range. So I implemented it
CTW as RT GTs which is loaded when some of CTWIN function is used
(f.e. WOPEN()/WBOARD()) and inherits from any existing GT driver.
This is full CT3 WIN implementation with all detail behaviors I
found (with some CT3 bug fixes). It does not have any CT3 limitations
and can be used for any virtual screen/window size though I hardcoded
CT3 limitation for backword compatibility. If somone will want to
remove it then it will be enough to delete few lines from ctwin.c
file. I'm not CTWIN Clipper user so maybe I missed some side effects
in this driver and was not able to well test it so if you will find
any incompatibilities then please inform me.
THe default GT buffer uses 32bit character cell internally but
in savescreen/restscreen it uses VGA compatible two bytes character
cell. Some GT drivers may want to use differ character cell.
Now GTCRS and GTSLN use 32bit character cell by default. They
need additional information about character set (box/normal) to
properly display box characters. It is possible to force in this
GT drivers using Clipper compatible character cell by calling:
hb_gtInfo( GTI_COMPATBUFFER, <lCompat> ) -> <lPreviousSeting>
but in may cause that box drawing characters will be lost in
some countries after RESTSCREEN(). It will depend on used code
page.
HB_GTINFO() is new function which works in similar way to DBINFO()
in RDD. It allows to retrieve/change some of GT driver settings.
GTI_* actions are defined in hbgtinfo.ch - it has all GTI_*
definitions used in xHarbour. Now in Harbour only few of them
are implemented.
The new three .prg functions:
HB_SETKEYCP( <cTermCP> [,<cHostCP>] )
HB_SETDISPCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] )
HB_SETTERMCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] )
have been added. They set automatic input (HB_SETKEYCP)
and output (HB_SETDISPCP) (or both: HB_SETTERMCP) character
translation. They are also important for some GTs which
informing them about used internal code page for unicode
translation (GTXWC, GTSLN) and/or chosing proper character
set (standard/alternate) for letters and other (f.e. box
drawing characters) (GTCRS, GTSLN),
<cTermCP> is encoding used on external (terminal) side
<cHostCP> is encoding used internally, if not given then
current code page set HB_SETCODEPAGE() is used.
some of GTs which uses unicode output may
ignore <cTermCP>
<lBoxChar> is optional parameter which interacts with dispbox()
output disabling switching to alternate character
set in some GTs. It effectively causes that if internal
(host) code page contains some letters on the box char
positions then they will be shown also by box drawing
functions like dispbox() instead of CP437 characters.
In some cases it could be useful. By default lBoxChar
is not set and GTs which can switch between standard
and alternate character set (GTCRS, GTSLN) will try to
use alternate character set for box drawing functions.
Victor: I removed some of your functions. They can be very easy
implemented with hb_gt_GetChar()/hb_gt_PutChar() but I do not want to
make them part of documented external API because some GT drivers may
want to use absolutely differ color definitions and they will stop to
work so I do not want to make this functions documented external API.
Ryszard: Setting alternative debug keys does not longer work.
I like such possibilities but it should be implemented in differ
way to f.e. using HB_GTINFO interface to allow low level GT driver
extensions, f.e. in *nixes using CTRL+[A-Z] and SIGINT, SIGQUIT,
SIGTSTP signals for real asynchronous setting of debug/cancel flag
without keyboard polling from main HVM loop. I would like to discus
about such more general solution.
*** Please updated non GNU make files ***
|
||
|
|
54ef385941 |
2005-11-24 23:24 UTC+0100 Viktor Szakats (viktor.szakats/syenar.hu)
* include/hbpcode.h
+ Comment added about adding new pcodes at the end of
the list for compatibility.
* source/rtl/filesys.c
+ Added hb_fsSetDevMode() Unix branch added (thx Przemek)
* tests/mathtest.prg
* source/rtl/math.c
! Fixed prev commit to comply with 10char function name
rule:
HB_MATHERRMODE() -> HB_MATHERMODE()
HB_MATHERRORBLOCK() -> HB_MATHERBLOCK()
* source/rtl/seconds.c
! hb_secondsCPU() move inside FlagShip guard instead
of HB_EXTENSION.
* hb_secondsCPU() made static (Harbour level function
helper only with non-std name).
* source/vm/dynlibhb.c
* include/hbextern.ch
* LIBLOAD(), LIBFREE() moved (back) to Harbour namespace:
HB_LIBLOAD(), HB_LIBFREE()
+ Added these functions to hbextern.ch
* source/rtl/symbol.prg
* source/vm/dynsym.c
* include/hbextern.ch
* Internal function names renamed to comply and to
not collide with existing ones (mistake in prev
commit).
+ tests/symbolt.prg
; Missed from prev commit.
|
||
|
|
77e2a41f97 |
2005-11-22 10:31 UTC+0100 Viktor Szakats (viktor.szakats/syenar.hu)
* source/rtl/symbol.prg
* source/vm/dynsym.c
* include/hbextern.ch
! Moved and renamed two functions from BEGINDUMP to their
proper place.
GETSYMBOLPOINTER() -> __DYNSGETPOINTER()
GETSYMBOLNAME() -> __DYNSGETNAME()
+ Added the two functions to hbextern.ch
+ TOFIX added to symbol.prg to remove the remaining one C
function inside BEGINDUMP. (Antonio, can you take a look?)
|
||
|
|
58eafb0a08 |
2005-11-21 17:44 UTC+0100 Viktor Szakats (viktor.szakats/syenar.hu)
+ tests/simplet.prg
* src/rtl/symbol.prg
* Embedded example code moved to the test dir.
* src/rtl/math.c
* include/hbextern.ch
* tests/mathtest.prg
* doc/en/math.txt
! HB_ prefix added for non-Clipper functions.
MATHERRMODE() -> HB_MATHERRMODE()
MATHERRORBLOCK() -> HB_MATHERRORBLOCK()
+ Above two functions added to hbextern.ch
* HB_MATHERRMODE() input validation logic moved to the lower
level function. This is a step to make this a simple Set()
* include/math.ch
+ HB_ prefix added.
|
||
|
|
7f36538154 |
2005-11-14 20:50 UTC+0100 Viktor Szakats (viktor.szakats/syenar.hu)
* hrbdll.vc
* makefile.nt
* makefile.vc
* makefile64.nt
* Change -o linker option to /OUT: to avoid warning with
MS Visual Studio 2005 compiler tools.
+ Added -D_CRT_SECURE_NO_DEPRECATE to suppress the many
new MS warnings about unsafe function usage.
; NOTE: MSVC 14.0 fails to compile macroy.c
; NOTE: Still tons of warnings, but other than these it
compiles fine.
* source/codepage/cdpsl437.c
! Fixed wrong escape char (\ -> \\).
* include/hbsetup.ch
* source/common/hbverdsp.c
+ Added CLIP compatibility switch.
* include/hbextern.ch
+ Updated (somewhat).
* source/rtl/strmatch.c
* source/rdd/rddord.prg
! WILDMATCH() renamed to HB_WILDMATCH()
* source/rdd/rddord.prg
! ORDWILDSEEK() guarded with HB_COMPAT_XPP
* source/rtl/seconds.c
! SECONDSCPU guarded with HB_COMPAT_FLAGSHIP
|