Commit Graph

56 Commits

Author SHA1 Message Date
Viktor Szakats
084c037d63 2009-09-22 02:05 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/vm/maindllp.c
    ! Fixed for Unicode mode (msvc2010 x64).
2009-09-22 00:05:35 +00:00
Viktor Szakats
0a002a156d 2009-08-21 16:42 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/vm/maindllh.c
  * source/vm/maindllp.c
    ! Fixed DllMain() declaration for msvcarm targets.
      Thanks Przemek for the hint.
2009-08-21 14:41:58 +00:00
Viktor Szakats
9ad0920842 2009-08-21 10:54 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/pp/Makefile
  * bin/hb-mkdyn.bat
    + Deleting hbpp dynamic built object to not interfere with
      harbour dll creation when picking up the objects with wildcard.
    * Changed .dll creation script to not filter out above object
      explicitly, it's not needed anymore.

  * source/vm/mainwin.c
  * source/vm/mainstd.c
  * bin/hb-mkdyn.bat
    + Added hack to exclude any content when creating dynamic build
      objects for win/watcom. Any content here breaks .dll creation
      on this target.
    * Changed .dll creation script to not filter out above objects
      explicitly, it's not needed anymore.

  * config/global.mk
    % Changed CPU detection to use $(filter)
    + Added CPU detection based on wce compilers.
    + Showing detected host and target CPU architecture in log
      (if it could be detected - this is currently only implemented
      for non-*nix targets)
    - Deleted host binary extension display in verbose mode.
    - Deleted now unused HB_BUILD_VERBOSE option.

  * config/global.mk
    + Added HB_DYN_VER variable to hold the version number used in Harbour
      dynamic libary name.

  * config/bsd/global.mk
  * config/darwin/global.mk
  * config/hpux/global.mk
  * config/linux/global.mk
  * config/os2/global.mk
  * config/sunos/global.mk
  * config/wce/global.mk
  * config/win/global.mk
    + Added DYN_EXT variables for each platform.

  * source/Makefile
  * config/rules.mk
  + config/dyn.mk
  + source/dynlib
  + source/dynlib/mt
  + source/dynlib/mt/Makefile
  + source/dynlib/Makefile
  * config/win/msvc.mk
    + Added experimental .dll building feature to the GNU Make system.
      It's only implemented for MSVC yet.
      The goal is to replace shell specific (postinst) solutions.

  * utils/hbmk2/hbmk2.prg
    + Added darwin/icc support. Untested yet.

  * source/vm/maindllp.c
    ! Fixed typo in prev commit.
2009-08-21 08:58:55 +00:00
Viktor Szakats
8264b6486a 2009-08-21 02:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    * Improvement in msvc/wce support to support multiple WinCE
      CPUs.
    ! Fixed to add '/manifest:no' only for 8.00 or upper msvcarm
      compilers.

  * config/wce/msvcarm.mk
    * Minor improvements.
    + Added preliminary support for MIPS/SH/x86 WinCE build settings.

  * source/vm/maindllp.c
    + Added MIPS and SH .dll names.

  * include/hbsetup.h
  * source/common/hbver.c
    * HB_CPU_SUPERH -> HB_CPU_SH
2009-08-21 01:03:50 +00:00
Viktor Szakats
51416661e9 2009-08-04 03:18 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/hbqt_slots.cpp
    ! Deleted windows.h.

  * include/hbsetup.h
    + PPC CPU detection made better.

  * include/hbatomic.h
  * source/vm/maindllp.c
  * source/rtl/gttone.c
    + Using HB_CPU_* macros to detect CPU instead of compiler
      specific solutions.
      Przemek, please review me.

  * source/vm/maindllp.c
    % Using hbver.h constants to form the version number
      included in the .dll name. So it's now maintainence
      free.
    % Reduced redundancy when forming .dll names.

  * source/vm/maindllp.c
  * utils/hbmk2/hbmk2.prg
    * Renamed wce .dll to harbour[mt]-20-wce-arm.dll
    * Renamed non-ARM wce .dlls to harbour[mt]-20-wce.dll

  * INSTALL
  + config/linux/sunpro.cf
    + Added Sun Studio compiler support for Linux platforms.
      Thanks Tamas Tevesz for the tip that this port exists.
      It has various problems to fix, but it's a start.

  * config/sunos/sunpro.cf
    ! Typo in prev commit.
2009-08-04 01:26:12 +00:00
Viktor Szakats
2832c55881 2009-07-09 23:14 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbvmpub.h
  * include/extend.api
  * include/hbwince.h
  * include/hb_io.h
  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbinit.h
  * include/clipdefs.h
  * include/hbmath.h
  * include/hbzlib.h
  * include/hbregex.h
  * include/hbexprb.c
  * source/pp/hbpp.c
  * source/lang/msgrukoi.c
  * source/lang/msgzhgb.c
  * source/lang/msgruwin.c
  * source/lang/msgelwin.c
  * source/lang/msgro.c
  * source/lang/msghriso.c
  * source/lang/msgcskam.c
  * source/lang/msggl.c
  * source/lang/msges.c
  * source/lang/msgde.c
  * source/lang/msgru866.c
  * source/lang/msgcs852.c
  * source/lang/msgplmaz.c
  * source/lang/msgpliso.c
  * source/lang/msgplwin.c
  * source/lang/msgid.c
  * source/lang/msgel.c
  * source/lang/msgdewin.c
  * source/lang/msghr437.c
  * source/lang/msghr852.c
  * source/lang/msgcsiso.c
  * source/lang/msgcswin.c
  * source/lang/msgeswin.c
  * source/vm/macro.c
  * source/vm/mainwin.c
  * source/vm/maindll.c
  * source/vm/itemapi.c
  * source/vm/hvm.c
  * source/vm/cmdarg.c
  * source/vm/mainstd.c
  * source/vm/maindllp.c
  * source/vm/fm.c
  * source/vm/extrap.c
  * source/vm/thread.c
  * source/vm/main.c
  * source/vm/break.c
  * source/vm/dynlibhb.c
  * source/vm/set.c
  * source/vm/classes.c
  * source/debug/dbgtwin.prg
  * source/debug/dbgtmenu.prg
  * source/debug/dbgmenu.prg
  * source/debug/dbgthsh.prg
  * source/debug/dbgwa.prg
  * source/common/hbgete.c
  * source/common/hbver.c
  * source/common/hbprintf.c
  * source/common/hbfsapi.c
  * source/common/hbverdsp.c
  * source/common/hbwince.c
  * source/common/hbfopen.c
  * source/common/hbdate.c
  * source/macro/macroa.c
  * source/macro/macrob.c
  * source/rtl/lennum.c
  * source/rtl/gtdos/gtdos.c
  * source/rtl/setposbs.c
  * source/rtl/gtwin/gtwin.c
  * source/rtl/typefile.prg
  * source/rtl/math.c
  * source/rtl/getsys53.prg
  * source/rtl/tobject.prg
  * source/rtl/gtcrs/gtcrs.c
  * source/rtl/gtcrs/gtcrs.h
  * source/rtl/philesx.c
  * source/rtl/filehb.c
  * source/rtl/hbtoken.c
  * source/rtl/fstemp.c
  * source/rtl/ampm.c
  * source/rtl/maxrow.c
  * source/rtl/hbstrfmt.c
  * source/rtl/transfrm.c
  * source/rtl/gttone.c
  * source/rtl/datec.c
  * source/rtl/fserr.c
  * source/rtl/pushbtn.prg
  * source/rtl/memvarbl.prg
  * source/rtl/hbregexc.c
  * source/rtl/profiler.prg
  * source/rtl/hbini.prg
  * source/rtl/dbedit.prg
  * source/rtl/filesys.c
  * source/rtl/lang.c
  * source/rtl/einstv52.prg
  * source/rtl/hbbit.c
  * source/rtl/isprint.c
  * source/rtl/altd.prg
  * source/rtl/diskspac.c
  * source/rtl/console.c
  * source/rtl/gtos2/gtos2.c
  * source/rtl/adir.prg
  * source/rtl/gui.prg
  * source/rtl/hbgtcore.c
  * source/rtl/dirdrive.c
  * source/rtl/wait.prg
  * source/rtl/mlcfunc.c
  * source/rtl/scrollbr.prg
  * source/rtl/gtapiu.c
  * source/rtl/tbrowsys.prg
  * source/rtl/oemansi.c
  * source/rtl/philes53.c
  * source/rtl/color53.prg
  * source/rtl/xsavescr.c
  * source/rtl/tgetlist.prg
  * source/rtl/gtsln/mousesln.c
  * source/rtl/gtsln/kbsln.c
  * source/rtl/gtsln/gtsln.h
  * source/rtl/disksphb.c
  * source/rtl/tlabel.prg
  * source/rtl/radiogrp.prg
  * source/rtl/scrrow.c
  * source/rtl/net.c
  * source/rtl/stuff.c
  * source/rtl/checkbox.prg
  * source/rtl/filebuf.c
  * source/rtl/mtran.c
  * source/rtl/gete.c
  * source/rtl/hbproces.c
  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/fssize.c
  * source/rtl/memofile.c
  * source/rtl/hbffind.c
  * source/rtl/tmenuitm.prg
  * source/rtl/gtsys.c
  * source/rtl/devoutp.prg
  * source/codepage/uckoi8.c
  * source/codepage/uckoi8u.c
  * source/codepage/cphu852s.c
  * source/codepage/cpes850c.c
  * source/codepage/cphuisos.c
  * source/codepage/ucmaz.c
  * source/codepage/cptr857.c
  * source/codepage/ucmik.c
  * source/codepage/cphr437.c
  * source/codepage/cphuwins.c
  * source/rdd/dbjoin.prg
  * source/rdd/dbnubs.c
  * source/rdd/dbfuncs.prg
  * source/rdd/dbtotal.prg
  * source/rdd/dbstrux.prg
  * source/rdd/dbsort.prg
  * source/rdd/dbfcdx/dbfcdx1.c
  * source/rdd/hbsix/sxcompr.c
  * source/compiler/hbmain.c
  * source/compiler/expropta.c
  * source/compiler/exproptb.c
  * source/compiler/fixflex.c
  * source/compiler/compi18n.c
  * source/compiler/gencobj.c
  * source/compiler/hbopt.c
  * source/compiler/hbgenerr.c
  * utils/hbtest/rt_main.h
  * utils/hbtest/rt_main.ch
  * utils/hbtest/rt_trans.prg
  * utils/hbtest/rt_misc.prg
  * utils/hbtest/rt_vars.ch
  * contrib/gtalleg/gtalleg.c
  * contrib/gtalleg/ssf.h
  * contrib/hbmysql/mysqlold.c
  * contrib/hbmysql/mysql.c
  * contrib/hbct/charlist.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/charonly.c
  * contrib/hbct/ctset.c
  * contrib/hbct/ctset.h
  * contrib/hbct/cterror.ch
  * contrib/hbct/ftoc.c
  * contrib/hbct/charevod.c
  * contrib/hbct/exponent.c
  * contrib/hbct/dattime3.c
  * contrib/hbct/ct.prg
  * contrib/hbct/cursor.c
  * contrib/hbct/color.c
  * contrib/hbct/charone.c
  * contrib/hbct/numconv.prg
  * contrib/hbct/cttime.prg
  * contrib/hbct/ctstr.h
  * contrib/hbct/atnum.c
  * contrib/hbct/disk.c
  * contrib/hbct/misc1.c
  * contrib/hbct/print.c
  * contrib/xhb/hblog.ch
  * contrib/xhb/bkgtsks.c
  * contrib/xhb/wintypes.ch
  * contrib/xhb/classex.ch
  * contrib/xhb/hbcomprs.c
  * contrib/xhb/ttable.ch
  * contrib/xhb/hbcompat.ch
  * contrib/xhb/arrayblk.prg
  * contrib/xhb/hbctypes.ch
  * contrib/xhb/xhbextrn.ch
  * contrib/xhb/filestat.c
  * contrib/xhb/hblogdef.ch
  * contrib/xhb/xhbcopyf.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/xhbfunc.c
  * contrib/hbodbc/odbcold.c
  * contrib/hbtpathy/telepath.ch
  * contrib/hbmzip/hbmzip.c
  * contrib/hbblat/hbblat.ch
  * contrib/hbxbp/xbpfiledialog.prg
  * contrib/hbxbp/gra.ch
  * contrib/hbxbp/xbpwindow.prg
  * contrib/hbxbp/xbp.ch
  * contrib/hbxbp/xbphtmlviewer.prg
  * contrib/hbxbp/xbptoolbar.prg
  * contrib/hbxbp/appevent.ch
  * contrib/hbxbp/xbpgeneric.prg
  * contrib/xpp/philesx.c
  * contrib/hbnf/acctyear.prg
  * contrib/hbnf/byteneg.prg
  * contrib/hbnf/isshare.prg
  * contrib/hbnf/kspeed.c
  * contrib/hbnf/prtscr.c
  * contrib/hbnf/ftshadow.c
  * contrib/hbnf/descendn.c
  * contrib/hbnf/scancode.prg
  * contrib/hbnf/vidmode.prg
  * contrib/hbnf/acctadj.prg
  * contrib/hbnf/vidcur.prg
  * contrib/hbnf/iamidle.c
  * contrib/hbnf/acctmnth.prg
  * contrib/hbnf/madd.prg
  * contrib/hbnf/fttext.c
  * contrib/hbnf/mouse1.prg
  * contrib/hbnf/settime.prg
  * contrib/hbnf/page.prg
  * contrib/hbnf/setkeys.c
  * contrib/hbnf/month.prg
  * contrib/hbnf/acctweek.prg
  * contrib/hbnf/acctqtr.prg
  * contrib/hbnf/dosver.prg
  * contrib/hbnf/metaph.prg
  * contrib/hbnf/menu1.prg
  * contrib/hbnf/byteand.prg
  * contrib/hbnf/bytexor.prg
  * contrib/hbnf/byteor.prg
  * contrib/hbnf/asum.prg
  * contrib/hbnf/wda.prg
  * contrib/hbnf/aavg.prg
  * contrib/hbnf/mouse.c
  * contrib/hbnf/setdate.prg
  * contrib/hbnf/amedian.prg
  * contrib/hbnf/blink.prg
  * contrib/hbnf/getvid.c
  * contrib/hbnf/getver.c
  * contrib/hbnf/nwuid.prg
  * contrib/hbnf/aemaxlen.prg
  * contrib/hbnf/bitset.prg
  * contrib/hbnf/nwlstat.prg
  * contrib/hbnf/tempfile.prg
  * contrib/hbnf/diskfunc.prg
  * contrib/hbnf/d2e.prg
  * contrib/hbnf/mouse2.prg
  * contrib/hbnf/firstday.prg
  * contrib/hbnf/menutonf.prg
  * contrib/hbnf/pvid.prg
  * contrib/hbnf/isbit.prg
  * contrib/hbnf/datecnfg.prg
  * contrib/hbnf/putkey.c
  * contrib/hbnf/getenvrn.c
  * contrib/hbnf/bytenot.prg
  * contrib/hbnf/aeminlen.prg
  * contrib/hbnf/year.prg
  * contrib/hbnf/ftmenuto.ch
  * contrib/hbnf/rmdir.c
  * contrib/hbnf/sysmem.prg
  * contrib/hbnf/bitclr.prg
  * contrib/hbnf/setlastk.c
  * contrib/hbnf/clrsel.prg
  * contrib/hbcurl/hbcurl.ch
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvgax.prg
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgtabpg.prg
  * contrib/gtwvg/wvgsink.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbclipsm/num.c
  * contrib/hbclipsm/stack.c
  * contrib/rddads/rddads.h
  * contrib/rddads/ads1.c
  * contrib/hbfimage/fi_winfu.c
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbgd/gd.ch
  * contrib/hbgd/gdchart.prg
  * contrib/hbgd/gdimage.prg
  * contrib/hbgd/gdwrp.c
  * contrib/hbmisc/nconvert.prg
  * contrib/hbmisc/stringsx.c
  * contrib/hbmisc/spd.c
  * contrib/hbmisc/stringp.prg
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/wapi_commctrl.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/hbwinole.h
  * contrib/hbwin/win_dll.c
  * contrib/hbwin/axfunc.prg
  * contrib/hbwin/win_prn1.c
  * contrib/hbvpdf/hbvpdf.ch
  * examples/hboleold/win_ole.c
    * Formatting:
       - Removing EOL whitespaces.
       - Removing extra empty lines at EOF.
       - Adding EOL at EOF if missing.
      (except in foreign code)
2009-07-09 21:22:22 +00:00
Przemyslaw Czerpak
fa50b1ccc3 2009-07-02 02:29 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/maindllp.c
    ! fixed unapdated hb_parvds() redirection
2009-07-02 00:29:59 +00:00
Przemyslaw Czerpak
0a2ccc50f1 2009-06-30 18:04 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbtypes.h
  * harbour/source/vm/maindllp.c
    * cleaned prototype names for hb_vmProcessSymbols() and hb_vmExecute()
2009-06-30 16:04:36 +00:00
Viktor Szakats
83a6162d7f 2009-06-25 14:37 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * source/vm/maindllp.c
  * source/vm/extend.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvgutils.c
    * Changed hb_parv*() function return value to 'const char *'.
2009-06-26 12:37:23 +00:00
Przemyslaw Czerpak
9e3ae49cb6 2009-06-26 03:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbinit.h
  * harbour/include/hbapi.h
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/set.c
  * harbour/source/rtl/cdpapi.c
    * replace old hb_vmProcessSymbols() with hb_vmProcessSymbolsEx()
      and removed hb_vmProcessSymbolsEx() - it efectively force all .prg
      code recompilation
    * removed old hb_vmProcessDllSymbols()
    * changed 'char *' to 'const char *' in:
         const char * hb_cdpSelectID( const char * );
         const char * hb_cdpID( void );
         void hb_xsetfilename( const char * szValue );
         void hb_xsetinfo( const char * szValue );
         int hb_memvarScope( const char * szVarName, ULONG ulLength );
         const char * hb_macroGetType( HB_ITEM_PTR pItem );
2009-06-26 01:17:15 +00:00
Przemyslaw Czerpak
68c738b9ba 2009-06-20 22:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/extend.c
    * renamed existing hb_par*() and hb_stor*() functions which supports
      variable number of parameters (...) into hb_parv*() and hb_storv*()
    * added new hb_par*() and hb_stor*() functions which use strict number
      of parameters. New hb_par*() functions do not make hidden conversion
      between types, f.e. hb_parl() returns 1 only for logical parameters
      which contain .T.

  * harbour/include/extend.api
    * map Clipper _par*() functions to hb_parv*()
    * map Clipper _stor*() functions to hb_storv*()

  * harbour/source/vm/dynsym.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/thread.c
  * harbour/source/vm/classes.c
  * harbour/source/rtl/cdpapi.c
  * harbour/source/rtl/mlcfunc.c
  * harbour/contrib/hbnf/dispc.c
  * harbour/contrib/hbnf/mouse.c
  * harbour/contrib/hbnf/getenvrn.c
  * harbour/contrib/hbhpdf/harupdf.c
  * harbour/contrib/gtwvg/wvgcuig.c
  * harbour/contrib/gtwvg/wvgwin.c
  * harbour/contrib/gtwvg/wvgutils.c
  * harbour/contrib/gtwvg/wvgcore.c
  * harbour/contrib/gtwvg/wvgwing.c
  * harbour/contrib/rddads/adsfunc.c
  * harbour/contrib/rddads/ads1.c
  * harbour/contrib/rddads/adsmgmnt.c
  * harbour/contrib/hbmisc/hb_f.c
  * harbour/contrib/hbwin/wapi_commctrl.c
    * replaced hb_par*() and hb_stor*() calls used with additional parameters
      by hb_parv*() and hb_storv*()
    TODO: update examples/hbwhat/*.c files

  * harbour/examples/uhttpd2/socket.c
  * harbour/examples/httpsrv/socket.c
    * changed hb_parni() to hb_parnidef()

  * harbour/source/vm/itemapi.c
    * removed some conversion which are not necessary for CA-Cl*pper
      compatibility

  * harbour/source/macro/macrolex.c
    * replaced HB_LEX_IS*() macros by by HB_IS*() ones
2009-06-20 20:25:26 +00:00
Viktor Szakats
3915031ebb 2009-06-05 15:26 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + In -rebuild mode now targets will be deleted by hbmk2
      before calling compilers to create them. This will resolve
      some potential errors when compiler tools get confused about
      an existing file with the same name but perhaps created with
      another compiler. It will also make sure no attempts will be
      made to create an incremental build. If target cannot be
      deleted, a warning message will be shown by hbmk2.

  * harbour-win-spec
  * harbour-wce-spec
  * harbour.spec
  * mpkg_win.bat
  * include/hbver.h
  * doc/whatsnew.txt
  * source/vm/maindllp.c
    * 1.1.0dev -> 2.0.0dev
    ; Preparation for next rc1.

  * INSTALL
    * Long lines reflowed.
2009-06-05 13:29:28 +00:00
Viktor Szakats
f5f314d774 2009-04-08 11:22 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/maindllh.c
  * source/vm/maindllp.c
    ! Fixed for wce/poccarm's strange Windows headers.
    ; Now this problem surfaced with wce/poccarm, and this one I really
      cannot fix:
      ---
      hbmk: Processing configuration: C:\devl\hbvc-1.1\bin\hbmk.cfg
      POLINK: error: Unresolved external symbol 'hb_wctomb'.
      POLINK: fatal error: 1 unresolved external(s).
      hbmk: Error: Running linker. 1:
      polink.exe hbtest.obj rt_array.obj rt_date.obj rt_file.obj rt_hvm.obj rt_hvma.obj rt_math.obj rt_misc.obj rt_mt.obj rt_str.obj rt_stra.obj rt_trans.obj rt_class.obj rt_miscc.obj /libpath:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\lib  /subsystem:windows /out:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\bin\hbtest-dll.exe /libpath:C:\work\harbour-new\harbour\_hb_install_temp\harbour-wce-poccarm\bin harbour-11-arm.lib hbmainstd.lib hbmainwin.lib hbcplr.lib hbdebug.lib wininet.lib ws2.lib commdlg.lib commctrl.lib uuid.lib ole32.lib
      ---
2009-04-08 09:21:41 +00:00
Przemyslaw Czerpak
3672e94c50 2009-04-01 22:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/doc/Makefile
    ! removed unexisting license.txt file

  * harbour/include/hbapidbg.h
    * do not export Harbour debugger functions. If someone wants to create
      3-rd party debugger then we should agree the list of functions which
      should be public.

  * harbour/include/hbstack.h
    * minor cleanup in some definitions

  * harbour/include/hbdefs.h
    + added HB_DLL_ENTRY_POINT macro to set default DLL entry point for
      different Windows compilers

  * harbour/source/vm/maindllh.c
  * harbour/source/vm/maindllp.c
    * use HB_DLL_ENTRY_POINT macro

  * harbour/include/hbsetup.h
    * added internal macro to disable flatten optimization

  * harbour/include/hbmath.h
  * harbour/source/rtl/math.c
    * make default math error handler function static

  * harbour/include/hbatomic.h
    + added atomic inc/dec inline asm code to OW x86 builds

  * harbour/source/rtl/console.c
    * small code reorganization to not mix public and private function calls

  * harbour/source/rtl/hbregex.c
  * harbour/source/hbpcre/_hbpcreg.c
    * do not use hb_xfree() function pointer directly to avoid problems
      with different calling conventions.

  * harbour/config/win/owatcom.cf
  * harbour/config/os2/owatcom.cf
    * removed unnecessary in recent OpenWatcom versions explicit wlink.lnk
      including.
2009-04-01 20:04:37 +00:00
Viktor Szakats
dd6039357e 2009-03-29 19:52 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* external/sqlite3/Makefile
    ! Added necessary configuration for WinCE builds.

  * bin/hb-func.sh
  * source/vm/maindllp.c
    * mingwce will now generate dll by the name: harbour*-*-arm.dll
    ; TOFIX: mingwce .dlls should probably be generated in bin dir just
             like in every other cases, but I don't know why it's
             explicitly put in lib dir in this case.

  * bin/hb-mkdyn.bat
    + Added .dll generation for msvcce and poccce.

  * source/vm/maindllp.c
    * Formatting.
    ! Fixed to compile for WinCE. Please review me.

  * contrib/hbct/disk.c
    ! DRIVETYPE() made a dummy under WinCE to make it compile.

  * contrib/gtwvg/Makefile
    ! Limited GTWVG builds to 32-bit Windows compilers as it's
      still broken for WinCE, this time with pocce. Notice
      HB_OS* macros aren't available before #including Harbour
      headers. Reenable them after being fixed and tested.

  * contrib/hbole/olecore.c
    ! Fixed compilation errors below with poccce. Please review me.
      pocc.exe -I. -Ze -Go -W1 -Ot -Tarm-coff -D_WINCE -DUNICODE -DHB_NO_WIN_CONSOLE -I../../../../include     -c ../../olecore.c -Foolecore.obj
      ../../olecore.c(188): error #2152: Unknown field 'llVal' of 'union (no name)'.
      ../../olecore.c(273): error #2152: Unknown field 'llVal' of 'union (no name)'.
      ../../olecore.c(290): error #2152: Unknown field 'ullVal' of 'union (no name)'.

  * contrib/hbsqlit3/Makefile
    ! Excluded for poccce.

  ; TOFIX:
      pocc.exe -I. -Ze -Go -W1 -Ot -Tarm-coff -D_WINCE -DUNICODE -DHB_NO_WIN_CONSOLE -I../../../../include     -c ../../getenvrn.c -Fogetenvrn.obj
      ../../getenvrn.c(177): warning #2027: Missing prototype for 'GetEnvironmentStrings'.
      ../../getenvrn.c(177): error #2168: Operands of = have incompatible types 'wchar_t *' and 'int'.
      ../../getenvrn.c(246): warning #2027: Missing prototype for 'FreeEnvironmentStrings'.
      pocc.exe -I. -Ze -Go -W1 -Ot -Tarm-coff -D_WINCE -DUNICODE -DHB_NO_WIN_CONSOLE -I../../../../include     -c ../../hbserv.c -Fohbserv.obj
      ../../hbserv.c(391): error #2048: Undeclared identifier 'CTRL_C_EVENT'.
      ../../hbserv.c(392): error #2048: Undeclared identifier 'CTRL_BREAK_EVENT'.
      ../../hbserv.c(393): error #2048: Undeclared identifier 'CTRL_CLOSE_EVENT'.
      ../../hbserv.c(394): error #2048: Undeclared identifier 'CTRL_LOGOFF_EVENT'.
      ../../hbserv.c(395): error #2048: Undeclared identifier 'CTRL_SHUTDOWN_EVENT'.
      ../../hbserv.c(398): error #2069: Initializer must be constant.
      ../../hbserv.c(511): warning #2027: Missing prototype for 'CallNextHookEx'.
      ../../hbserv.c(528): warning #2027: Missing prototype for 'CallNextHookEx'.
      ../../hbserv.c(635): error #2048: Undeclared identifier 'SEM_NOALIGNMENTFAULTEXCEPT'.
      ../../hbserv.c(635): error #2048: Undeclared identifier 'SEM_NOGPFAULTERRORBOX'.
      ../../hbserv.c(636): error #2048: Undeclared identifier 'SEM_NOOPENFILEERRORBOX'.
      ../../hbserv.c(638): warning #2027: Missing prototype for 'SetUnhandledExceptionFilter'.
      ../../hbserv.c(639): warning #2027: Missing prototype for 'SetWindowsHookEx'.
      ../../hbserv.c(639): error #2048: Undeclared identifier 'WH_GETMESSAGE'.
      ../../hbserv.c(639): error #2048: Undeclared identifier 'HOOKPROC'.
      ../../hbserv.c(639): error #2001: Syntax error: expected ')' but found 's_MsgFilterFunc'.
      ../../hbserv.c(639): error #2168: Operands of = have incompatible types 'HHOOK' and 'int'.
      ../../hbserv.c(639): error #2001: Syntax error: expected ';' but found 's_MsgFilterFunc'.
      ../../hbserv.c(639): error #2001: Syntax error: expected ';' but found ')'.
      ../../hbserv.c(639): error #2061: Illegal statement termination.
      ../../hbserv.c(640): warning #2027: Missing prototype for 'SetConsoleCtrlHandler'.
      ../../hbserv.c(665): warning #2027: Missing prototype for 'SetUnhandledExceptionFilter'.
      ../../hbserv.c(668): warning #2027: Missing prototype for 'UnhookWindowsHookEx'.
      ../../hbserv.c(672): warning #2027: Missing prototype for 'SetConsoleCtrlHandler'.
      ../../hbserv.c(776): warning #2027: Missing prototype for 'FreeConsole'.
2009-03-29 17:55:37 +00:00
Przemyslaw Czerpak
26a11bd859 2009-03-21 16:07 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    ! restored default optimization flag (-O3) in hb* scripts

  * harbour/harbour.spec
    ! fixed recent modification

  * harbour/contrib/rddads/ads1.c
  * harbour/contrib/rddads/adsfunc.c
  * harbour/contrib/hbmisc/strfmt.c
  * harbour/contrib/hbcrypt/sha1.c
    ! fixed wrongly used C reference operator

  * harbour/contrib/hbwin/win_prn2.c
  * harbour/contrib/hbwin/wapi_commctrl.c
  * harbour/source/vm/maindllp.c
    ! fixes for unicode builds

  * harbour/include/std.ch
    + added SET TIME FORMAT [TO] <f>

  * harbour/include/set.ch
  * harbour/include/hbset.h
  * harbour/source/vm/set.c
    + added _SET_TIMEFORMAT
      The folowing modifiers are supported:
         hh - hours
         mm - minutes
         ss - seconds
         fff - fraction part of seconds
         p - 1-st letter from PM / AM signature. When used time is shown
             in 12 hour format otherwise 24 hour format is used
      ex: Set( __SET_TIMEFORMAT, "hh:mm pm" )
      default _SET_TIMEFORMAT value is "hh:mm:ss:fff"
    + added C function: char * hb_setGetTimeFormat( void );

  * harbour/include/hbpp.h
  * harbour/source/pp/ppcore.c
    + added support for timestamp constant values in the form:
         t"YYYY-MM-DD HH:MM:SS.fff"
      The exact accepted timestamp pattern is is:
         YYYY-MM-DD [H[H][:M[M][:S[S][.f[f[f[f]]]]]]] [PM|AM]
      i.e.:
         tValue := t"2009-03-21 5:31:45.437 PM"
      or:
         YYYY-MM-DDT[H[H][:M[M][:S[S][.f[f[f[f]]]]]]] [PM|AM]
      with literal "T" as date and time part delimiters (XML timestamp
      format), i.e.:
         tValue := t"2009-03-21T17:31:45.437"
      The folowing characters can be used as date delimiters: "-", "/", "."
      if PM or AM is used HH is in range < 1 : 12 > otherwise
      in range < 0 : 23 >

  * harbour/source/compiler/complex.c
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.yyh
    + added support for t"YYYY-MM-DD HH:MM:SS.fff" time stamp constant
      to compiler
    + added support for VFP datetime constant values:
         { ^ [ YYYY-MM-DD [,] ] [ HH[:MM[:SS][.FFF]] [AM|PM] ] }
      The following characters can be used as date delimiters: "-", "/".
      Dot "." as date delimiter is not supported.
      There is no limit on number of characters in YYYY, MM, DD, HH, MM,
      SS, FFF parts. Important is only their value. This is the format
      in semi PP notation:
         { ^ <YEAR> <sep:/-> <MONTH> <sep:/-> <DAY> [[<sep2:,>]
           [ <HOUR> [ : <MIN> [ : <SEC> [ . <FRAQ> ] ] ] [AM|PP] ] }
      In practice it allows to also parse xHarbour datetime constant
      values with compatible conditions though xHarbour support onlu "/"
      as date delimiter.
      NOTE: there is one important difference to VFP and xHarbour in
      decoding above format. In VFP and xHarbour when date part is
      missing then it's set by default to: 1899-12-30 so this code:
         { ^ 12:00 }
      gived the same results as:
         { ^ 1899/12/30 12:00 }
      Harbour does not set any default date value when timestamp
      constant value contains only time part.
      If you want we can change it for strict VFP compatiblity.
      Now this extension is enabled by default for testing. In the future
      it will be probably covered by HB_COMPAT_FOXPRO macro.

  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyh
  * harbour/source/macro/macrolex.c
    + added support for t"YYYY-MM-DD HH:MM:SS.fff" time stamp constant
      to macro compiler

  * harbour/include/hbmacro.h
  * harbour/source/vm/macro.c
    + added new function:
      void hb_macroGenPushTimeStamp( LONG lDate, LONG lTime, HB_COMP_DECL );

  * harbour/include/hberrors.h
  * harbour/source/compiler/hbgenerr.c
    + added new compile time error: "Invalid timestamp constant '%s'"

  * harbour/source/compiler/cmdcheck.c
    * use Harbour API timestamp functions instead of calling system
      functions

  * harbour/include/hbpcode.h
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbstripl.c
  * harbour/source/compiler/hbopt.c
    + added new PCODE HB_P_PUSHTIMESTAMP (replaced one unused PCODE value)
      to store timestamp constant values in the PCODE

  * harbour/include/hbcomp.h
  * harbour/source/compiler/hbmain.c
    + added new function:
      void hb_compGenPushTimeStamp( LONG lDate, LONG lTime, HB_COMP_DECL );

  * harbour/include/hbexprop.h
  * harbour/source/common/expropt1.c
    + added new C functions:
      HB_EXPR_PTR hb_compExprNewTimeStamp( LONG, LONG, HB_COMP_DECL );

  * harbour/include/hbexprb.c
  * harbour/include/hbcompdf.h
  * harbour/source/common/expropt2.c
    + added timestamp expressions support
    + added compile time optimization for timestamp expressions
    * updated function optimization for timestamp expressions

  * harbour/include/hbdate.h
  * harbour/source/common/hbdate.c
    * changed hb_dateMilliSeconds() to return UTC julian timestamp in
      milliseconds
    * changed existing seconds, time and timestamp functions to operate
      on common OS specific functions to eliminate possible problems
      with different OS time counters
    + added new functions to operates on time and timestamp values.
      See source code for details.

  + harbour/source/rtl/cputime.c
    * moved double hb_secondsCPU( int n ) function to separate file

  * harbour/source/rtl/seconds.c
    - removed old version of date/seconds functions

  * harbour/source/vm/hashes.c
  * harbour/source/vm/arrays.c
    + added support for timestamp values as hash item indexes

  * harbour/source/vm/hashfunc.c
    + added support for find timestamp values in hash and array items
      by simple date value in AScan(), hb_HScan(), hb_AScan() and hb_RAScan()
      functions when exact comparison is not used.

  * harbour/source/vm/asort.c
    + added support for sorting timestamp values

  * harbour/source/vm/classes.c
    + added support for timestamp scallar classes
    + added support for timestamp typed instance variables

  * harbour/source/vm/memvars.c
    + added support for timestamp values in .mem files

  * harbour/source/vm/estack.c
    + show timestamp values in stack dump

  * harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    + added new C functions:
      double hb_arrayGetTD( PHB_ITEM pArray, ULONG ulIndex );
      BOOL hb_arraySetTD( PHB_ITEM pArray, ULONG ulIndex, double dTimeStamp )
      BOOL hb_arrayGetTDT( PHB_ITEM pArray, ULONG ulIndex,
                           LONG * plJulian, LONG * plMilliSec );
      BOOL hb_arraySetTDT( PHB_ITEM pArray, ULONG ulIndex,
                           LONG lJulian, LONG lMilliSec );

  * harbour/include/hbapi.h
  * harbour/source/vm/extend.c
    + accept timestamp items in date functions - use only date part of
      timestamp value
    + added new C functions:
      double hb_partd( int iParam, ... );
      BOOL hb_partdt( LONG * plJulian, LONG * plMilliSec , int iParam, ... );
      void hb_rettd( double dTimeStamp );
      void hb_rettdt( LONG lJulian, LONG lMilliSec );
      int hb_stortd( double dTimeStamp, int iParam, ... );
      int hb_stortdt( LONG lJulian, LONG lMilliSec, int iParam, ... );

  * harbour/include/hbapiitm.h
  * harbour/source/vm/itemapi.c
    + accept timestamp items in date functions - use only date part of
      timestamp value
    + added new C functions:
      char * hb_itemGetTS( PHB_ITEM pItem, char * szDateTime );
      PHB_ITEM hb_itemPutTS( PHB_ITEM pItem, const char * szDateTime );
      double hb_itemGetTD( PHB_ITEM pItem );
      PHB_ITEM hb_itemPutTD( PHB_ITEM pItem, double dTimeStamp )
      BOOL hb_itemGetTDT( PHB_ITEM pItem, LONG * plJulian, LONG * plMilliSec );
      PHB_ITEM hb_itemPutTDT( PHB_ITEM pItem, LONG lJulian, LONG lMilliSec );
    + support for timestamp items in hb_itemString(), hb_itemPadConv() and
      hb_itemTypeStr() functions

  * harbour/include/hbvm.h
  * harbour/include/hbxvm.h
  * harbour/include/hbapi.h
  * harbour/source/vm/hvm.c
    + added HB_IT_TIMESTAMP items
    * modified HB_IT_DATE internal item structure to use common structure
      with HB_IT_TIMESTAMP - it  simplifies HVM code and eliminates additional
      RT conditions.
    + added HB_IS_TIMESTAMP() and ISTIMESTAMP() macros
    + added HB_IS_DATETIME() and ISDATETIME() macros - they return true
      if item/parameter is DATE or TIMESTAMP type.
    + added void hb_vmPushTimeStamp( long lJulian, long lMilliSec );
      and xhb_vmPushTimeStamp()
    + added support for timestamp values in relational operators:
         <, <=, >, >=, =, ==
      When two timestamp values are compared then VM compares date and
      time parts in both values.
      When date and timestamp values are used in <, <=, >, >=, = operations
      then VM compares only date part in both values.
      When date and timestamp values are used in == operation then VM
      compares date part in both values and then check if time part
      of timestamp value is 0.
    + added support for timestamp values in + and - math operations.
      The following rules are used in timestamp arithmetic:
         <t> + <t> => <t>
         <t> - <t> => <n>
         <t> + <n> => <t>
         <n> + <t> => <t>
         <t> - <n> => <t>
         <d> + <t> => <t>
         <t> + <d> => <t>
         <d> - <t> => <n>
         <t> - <d> => <n>
      When number is result or argument of timestamp operation then the
      its integer part is a number of day and fractional part is the time.

  * harbour/source/rtl/dateshb.c
    + added new .prg functions to mange date and timestamp values:
      HB_DATETIME() -> <tTimeStamp>
      HB_CTOD( <cDate> [, <cDateFormat> ] ) -> <dDate>
      HB_DTOC( <dDate> [, <cDateFormat> ] ) -> <cDate>
      HB_NTOT( <nValue> ) -> <tTimeStamp>
      HB_TTON( <tTimeStamp> ) -> <nValue>
      HB_TTOC( <tTimeStamp>, [ <cDateFormat> ] [, <cTimeFormat> ] ) ->
                                                            <cTimeStamp>
      HB_CTOT( <cTimeStamp>, [ <cDateFormat> ] [, <cTimeFormat> ] ) ->
                                                            <tTimeStamp>
      HB_TTOS( <tTimeStamp> ) -> <cYYYYMMDDHHMMSSFFF>
      HB_STOT( <cDateTime> ) -> <tTimeStamp>
         <cDateTime> should be in one of the above form:
            - "YYYYMMDDHHMMSSFFF"
            - "YYYYMMDDHHMMSSFF"
            - "YYYYMMDDHHMMSSF"
            - "YYYYMMDDHHMMSS"
            - "YYYYMMDDHHMM"
            - "YYYYMMDDHH"
            - "YYYYMMDD"
            - "HHMMSSFFF"
            - "HHMMSSF"
            - "HHMMSS"
            - "HHMM"
            - "HH"
         Important is number of digits.
      HB_TSTOSTR( <tTimeStamp> ) -> <cTimeStamp> // YYYY-MM-DD HH:MM:SS.fff
      HB_STRTOTS( <cTimeStamp> ) -> <tTimeStamp>
         <cTimeStamp> should be in one of the above form:
            YYYY-MM-DD [H[H][:M[M][:S[S][.f[f[f[f]]]]]]] [PM|AM]
            YYYY-MM-DDT[H[H][:M[M][:S[S][.f[f[f[f]]]]]]] [PM|AM]
         The folowing characters can be used as date delimiters: "-", "/", "."
         T - is literal "T" - it's for XML timestamp format
         if PM or AM is used HH is in range < 1 : 12 > otherwise
         in range < 0 : 23 >
      HB_HOUR( <tTimeStamp> ) -> <nHour>
      HB_MINUTE( <tTimeStamp> ) -> <nMinute>
      HB_SEC( <tTimeStamp> ) -> <nSeconds>   // with milliseconds

  * harbour/source/rtl/datec.c
    + accept timestamp parameters in CMONTH() and CDOW() functions

  * harbour/source/rtl/empty.c
    + added support for timestamp items

  * harbour/source/rtl/itemseri.c
    + added support for timestamp items serialization

  * harbour/source/rtl/minmax.c
    + added support for timestamp values to MIN() and MAX() functions.
      when only one of given parameters is timestamp value and other
      is date value and date parts are equal then always date item
      is returned as both MIN() or MAX() value.

  * harbour/source/rtl/dates.c
    + added new C functions: hb_timeFormat(), hb_timeUnformat(),
      hb_timeStampFormat(), hb_timeStampUnformat()

  * harbour/source/rtl/valtype.c
    + added .prg functions: HB_ISDATETIME(), HB_ISTIMESTAMP()

  * harbour/source/rtl/transfrm.c
    + added support for timestamp items formatting.
    + added new function modifier @T.
      When @T is used without @D then only time part of timestamp value
      is formatted and return.
      When @D is used without @T then only date part of timestamp value
      is formatted and return.

  * harbour/source/rtl/tbrowse.prg
    + display timestamp values

  * harbour/source/rtl/philes.c
    + accept timestamp value as second parameter of HB_FSETDATETIME()
      function
    + store file data and time in second parameter of HB_FGETDATETIME()
      as timestamp value.
    Old parameters (2-dDate, 3-cTime) are still supported but please think
    about removing them - they are redundant.

  * harbour/source/rtl/filesys.c
    * updated function names


  * harbour/source/rdd/dbf1.c
    + added native support for time and timestamp fields

  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddnsx.h
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    + added support for indexing timestamp fields
    + added support for using DATE values with timestamp fields
      which replicate HVM behavior.
      SEEK and SEEKLAST with date value when active index is on
      timestamp positions to 1-st or last record where date part
      of indexed timesamp value is equal.
      Settings scopes to date values when active index is on timestamp
      value reduce the visible record range to these ones which have
      date part of timestamp value in the range of dates values used
      for scopes. It possible to mix date and timestamp values in scope
      and set one scope to date value and the second to timesamp.

  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/delim1.c
    + added support for exporting timestamp fields

  * harbour/source/rdd/dbsql.c
    ! fixed typo in logical value export
    + export timestamp fields.
      Please update the format to given SQL syntax.


  * harbour/contrib/hbct/files.c
    + changed SETFDATI() to optionally accept timestamp parameter
      instead of two parameters dDate and cTime

  * harbour/contrib/hbct/misc1.c
    + added timestamp support to XTOC() function

  * harbour/contrib/hbct/misc2.c
    + added timestamp support to COMPLEMENT() function

  * harbour/contrib/hbct/dattime2.c
    + accept timestamp values in ADDMONTH(), DOY(), ISLEAP(), QUARTER()
      LASTDAYOM(), WEEK() functions

  * harbour/contrib/hbmzip/hbmzip.c
    + updated HB_ZipFileCreate( hZip, cZipName, tDateTime, cTime, ... )
      functions to optionaly accept timestamp value in 3-rd parameter
      instead od dDate, and cTime in 3-rd and 4-th parameters.
    + updated HB_UnzipFileInfo( hUnzip, @cZipName, @tDateTime, @cTime, ... )
      to return timestamp value in 3-rd parameter instead of date value.
      TODO: Please think about removing 4-th parameter from:
               HB_ZipFileCreate( hZip, cZipName, tDateTime, cTime, ... )
               HB_UnzipFileInfo( hUnzip, @cZipName, @tDateTime, @cTime, ... )
            Now it's redundant.
  * harbour/contrib/hbmzip/readme.txt
    * updated parameters description for above functions

  * harbour/contrib/hbnf/descendn.c
    + added timestamp support to FT_DESCEND() function

  * harbour/contrib/hbclipsm/date.c
    + accept timestamp values in DATEASAGE(), DATEASARRAY() and DATEISLEAP()
      functions

  * harbour/contrib/hbmisc/dates2.c
    + accept timestamp values in ISLEAPYEAR(), DAYSINMONTH(), EOM(), BOM(),
      WOM(), WOY(), EOY() and BOY() functions


   The following contrib files should be updated but I'm leaving it to
   other developers who want to keep this code alive:
         contrib/hbtip/utils.c
         contrib/hbvpdf/hbvpdf.prg
         contrib/hbvpdf/hbvpdft.prg
         contrib/hbwin/win_dll.c
            some minor cleanups if necessary and authors will find
            timestamp values usable

         contrib/hbole/ole2.c
         contrib/hbwin/win_ole.c
            add support for timestamp values in OLE

         contrib/rddado/adordd.prg
         contrib/rddads/ads1.c
         contrib/rddads/adsx.c
         contrib/rddsql/...
            add support for timestamp values in RDDs

   Warning: this implementation is not xHarbour compatible. There are many
   important differences. Mostly on C level and used API. Please be careful
   in porting xHarbour source code to Harbour.
2009-03-21 15:04:43 +00:00
Viktor Szakats
61cfc5b576 2009-03-21 15:02 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
  * config/win/icc.cf
  * config/win/cygwin.cf
  * config/win/msvc.cf
  * config/win/owatcom.cf
  * config/win/xcc.cf
  * config/win/mingw.cf
  * config/win/pocc.cf
    * Changed Harbour to uniformly link against ws2_32 winsock
      lib on Windows. Previous we've been using a mixture of
      ws2_32 and wsock32, sometimes both. For some platforms
      one of these libs is automatically included by linker,
      f.e. for bcc, wsock32 is used.
    ! This fixes wsock32 no longer available for mingw64.
    ; These platforms should be retested if this causes any
      problems, but ws2_32 should be available for all since long.

  * utils/hbmk2/hbmk2.prg
    ! Typo in prev commit.

  * source/vm/maindllp.c
  * source/vm/extrap.c
    ! Fixed for mingw64.
    ! Fixed warning for mingw64.
      ; TODO: Check for possible regression.

  * contrib/hbodbc/odbc.c
    ! Fixed mingw64 warning.
    ; TODO: Check for possible regression.

    ; TOFIX: (3rd party dependent contribs not yet included)
      Errors/Core:
      Temp/ccVJXjZS.s: Assembler messages:
      Temp/ccVJXjZS.s:19: Error: Incorrect register `%rax' used with `l' suffix
      Temp/ccVJXjZS.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
      Temp/ccVJXjZS.s:36: Error: Incorrect register `%rax' used with `l' suffix
      Temp/ccVJXjZS.s:37: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
      + GTWVG (also lots of warning)

      Warnings/Core:
      ../../hbprintf.c: In function 'hb_snprintf':
      ../../hbprintf.c:1067: warning: implicit declaration of function 'finite'
      ../../hbprintf.c:1148: warning: cast from pointer to integer of different size
      ../../itemapi.c: In function 'hb_itemStrBuf':
      ../../itemapi.c:2159: warning: implicit declaration of function 'finite'
      ../../dbfntx1.c: In function 'hb_ntxTagHeaderCheck':
      ../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c: In function 'hb_nsxTagHeaderCheck':
      ../../dbfnsx1.c:1233: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1235: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c: In function 'hb_nsxPageFree':
      ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c: In function 'hb_nsxPageNew':
      ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
      ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules

      Warnings/Contrib:
      ../../files.c: In function 'HB_FUN_SETFDATI':
      ../../files.c:247: warning: cast to pointer from integer of different size
      ../../files.c:268: warning: cast from pointer to integer of different size
      ../../getenvrn.c: In function 'HB_FUN_FT_GETE':
      ../../getenvrn.c:178: warning: implicit declaration of function 'GetEnvironmentStrings'
      ../../getenvrn.c:178: warning: initialization makes pointer from integer without a cast
      ../../tpwin.c: In function 'HB_FUN_P_INITPORTSPEED':
      ../../tpwin.c:78: warning: cast to pointer from integer of different size
      ../../tpwin.c:89: warning: cast to pointer from integer of different size
      ../../tpwin.c: In function 'HB_FUN_P_READPORT':
      ../../tpwin.c:108: warning: cast to pointer from integer of different size
      ../../tpwin.c: In function 'HB_FUN_P_WRITEPORT':
      ../../tpwin.c:119: warning: cast to pointer from integer of different size
      ../../win_dll.c: In function 'DllExec':
      ../../win_dll.c:509: warning: cast from pointer to integer of different size
      ../../win_dll.c:603: warning: cast to pointer from integer of different size
      ../../win_dll.c:672: warning: cast to pointer from integer of different size
      ../../win_dll.c:689: warning: cast to pointer from integer of different size
      ../../win_dll.c: In function 'hb_getprocaddress':
      ../../win_dll.c:809: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'hb_oleItemToVariant':
      ../../win_ole.c:466: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'FreeParams':
      ../../win_ole.c:762: warning: cast from pointer to integer of different size
      ../../win_ole.c: In function 'hb_oleVariantToItem':
      ../../win_ole.c:1092: warning: cast from pointer to integer of different size
      ../../win_ole.c: In function 'HB_FUN_CREATEOLEOBJECT':
      ../../win_ole.c:1425: warning: cast from pointer to integer of different size
      ../../win_ole.c: In function 'HB_FUN_GETOLEOBJECT':
      ../../win_ole.c:1478: warning: cast from pointer to integer of different size
      ../../win_ole.c: In function 'HB_FUN_OLEADDREF':
      ../../win_ole.c:1486: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_OLERELEASEOBJECT':
      ../../win_ole.c:1498: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLEVALUE':
      ../../win_ole.c:1648: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO__OLEVALUE':
      ../../win_ole.c:1675: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLENEWENUMERATOR':
      ../../win_ole.c:1703: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_INVOKE':
      ../../win_ole.c:1786: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_SET':
      ../../win_ole.c:1810: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_GET':
      ../../win_ole.c:1834: warning: cast to pointer from integer of different size
      ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_ONERROR':
      ../../win_ole.c:1861: warning: cast to pointer from integer of different size
      ../../win_regc.c: In function 'hb_regkeyconv':
      ../../win_regc.c:77: warning: cast to pointer from integer of different size
      ../../win_regc.c: In function 'HB_FUN_WIN_REGCREATEKEYEX':
      ../../win_regc.c:82: warning: cast to pointer from integer of different size
      ../../win_regc.c:96: warning: cast from pointer to integer of different size
      ../../win_regc.c: In function 'HB_FUN_WIN_REGOPENKEYEX':
      ../../win_regc.c:118: warning: cast from pointer to integer of different size
      ../../win_regc.c: In function 'HB_FUN_WIN_REGCLOSEKEY':
      ../../win_regc.c:193: warning: cast to pointer from integer of different size
      ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETITEMRECT':
      ../../wapi_commctrl.c:521: warning: value computed is not used
      ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETIMAGELIST':
      ../../wapi_commctrl.c:553: warning: cast from pointer to integer of different size
      ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_ADJUSTRECT':
      ../../wapi_commctrl.c:632: warning: value computed is not used
      ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_CREATE':
      ../../wapi_commctrl.c:782: warning: cast to pointer from integer of different size
      ../../wapi_commctrl.c:786: warning: cast from pointer to integer of different size
      ../../wapi_winbase.c: In function 'HB_FUN_WAPI_GETMODULEHANDLE':
      ../../wapi_winbase.c:83: warning: cast to pointer from integer of different size
      ../../hbserv.c: In function 's_serviceSetHBSig':
      ../../hbserv.c:638: warning: passing argument 1 of 'SetUnhandledExceptionFilter' from incompatible pointer type
      ../../hbxml.c: In function 'HB_FUN_HBXML_DATAREAD':
      ../../hbxml.c:2321: warning: cast to pointer from integer of different size
2009-03-21 14:07:25 +00:00
Viktor Szakats
7589f0c672 2009-03-19 19:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/vm/maindll.c
  * source/vm/maindllp.c
    ! HB_EXPORT moved to beginning of declaration.

  * contrib/hbmysql/tmysql.prg
  * contrib/hbmysql/tsqlbrw.prg
    * More formatting.

  * xhb/Makefile
  * xhb/hbcompat.ch
  + xhb/xhbis.c
  + xhb/xhbscr.c
  + xhb/xhbat.c
  + xhb/txtline.c
  + xhb/dumpvar.prg
    + Added xhb remaining stuff:
      ISALNUM()
      ISSPACE()
      ISXDIGIT()
      ISCNTRL()
      ISGRAPH()
      ISPRINT()
      ISPUNCT()
      ISASCII()
      SCROLLFIXED()
      ATSKIPSTRINGS()
      HB_TABEXPAND()
      HB_READLINE()
      __OutDebug()
      HB_DumpVar()
      HBCONSOLELOCK() (emulation, might be wrong)
      HBCONSOLEUNLOCK() (emulation, might be wrong)
    ; Please review, my only goal was to make them compile.
2009-03-19 18:13:33 +00:00
Viktor Szakats
6b55002024 2009-03-19 18:06 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/vm/maindll.c
  * source/vm/maindllp.c
    ! Fixed placement of HB_EXPORT in declaration.

  * contrib/hbmysql/tmysql.prg
    * Reformatting (heavy). Minor optimizations along the way. Pls test.
    ! S&R typo fixed.
    + Added lFormat parameter to FieldDec() method.
      Submitted by Mitja Podgornik.

  * contrib/xhb/Makefile
  + contrib/xhb/fparse.c
    + Added part from xhb RTL.
      (pls review changed PHB_ITEM usage)
2009-03-19 17:08:33 +00:00
Viktor Szakats
a2f3932fd1 2009-03-19 01:14 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbmysql/mysql.c
  * contrib/hbmysql/tmysql.prg
    * Renamed all functions to standard mysql equivalents.
      Please update your code and turn off old function
      names with -DHB_MYSQL_LEGACY_LEVEL_OFF to test for
      success. Legacy function names will be removed from
      Harbour in the next release. This move allows to use
      hbmysql and hbodbc in the same app.
      SQLAND() has to be replaced with HB_BITAND(), be aware
      that latter will RTE when non-numeric var is passed,
      while SQLAND() was silently ignoring it.
      Changed functions names:
      SQLVERSION()      => mysql_get_server_version()
      SQLCONNECT()      => mysql_real_connect()
      SQLCLOSE()        => mysql_close()
      SQLCOMMIT()       => mysql_commit()
      SQLROLLBACK()     => mysql_rollback()
      SQLSELECTD()      => mysql_select_db()
      SQLQUERY()        => mysql_query()
      SQLSTORER()       => mysql_store_result()
      SQLUSERES()       => mysql_use_result()
      SQLFREER()        => mysql_free_result()
      SQLFETCHR()       => mysql_fetch_row()
      SQLDATAS()        => mysql_data_seek()
      SQLNROWS()        => mysql_num_rows()
      SQLFETCHF()       => mysql_fetch_field()
      SQLFSEEK()        => mysql_field_seek()
      SQLNUMFI()        => mysql_num_fields()
      SQLFICOU()        => mysql_field_count()
      SQLLISTF()        => mysql_list_fields()
      SQLGETERR()       => mysql_error()
      SQLLISTDB()       => mysql_list_dbs()
      SQLLISTTBL()      => mysql_list_tables()
      SQLAFFROWS()      => mysql_affected_rows()
      SQLHOSTINFO()     => mysql_get_host_info()
      SQLSRVINFO()      => mysql_get_server_info()
      DATATOSQL()       => mysql_escape_string()
      FILETOSQLBINARY() => mysql_escape_string_from_file()
      SQLAND()          => hb_bitAnd()

  * source/vm/maindll.c
  * source/vm/maindllh.c
  * source/vm/maindllp.c
  * contrib/hbodbc/odbc.c
    * Minor formatting.
2009-03-19 00:16:43 +00:00
Viktor Szakats
970ec4e61d 2009-03-18 20:17 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/vm/Makefile
  + source/vm/maindllp
  + source/vm/maindllp/Makefile
    + Added generation of hbmaindllp lib, to create pcode .dlls
      on Windows platform. -DHB_DYNLIB is always defined for
      this lib. This is just the first step, we will need compiler,
      hbmk2 and other changes. I'll contribute with hbmk2 changes.

  * source/vm/maindllp.c
    % Code made less verbose.
    ! Created HB_EXPORT declaration for DllEntryPoint().

  * config/win/icc.cf
    * Changed optimization to -O3 (from MSVC ones).
      With max optim (-Ox) it was just a bit faster than MSVC 2008.

  + contrib/hbqt
  + contrib/hbqt/hbqt_qabstractbutton.cpp
  + contrib/hbqt/hbqt_qdialog.cpp
  + contrib/hbqt/hbqt.h
  + contrib/hbqt/Makefile
    + Added initial QT wrapper lib layout with content posted
      by Pritpal to the list. (I did a few renames, please check
      them)

  * contrib/hbwin/hbwapi.h
    * Fixes in header.
2009-03-18 19:22:47 +00:00
Viktor Szakats
2ec4c76d15 2009-03-18 11:58 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
    ! Enabled lib grouping for minwgce.

  * include/hbtypes.h
  * source/vm/maindllp.c
    * Formatting.
2009-03-18 10:59:10 +00:00
Viktor Szakats
dccd59cf69 2009-03-17 17:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.sh
  * bin/hb-mkdyn.bat
  * source/vm/maindllp.c
  * utils/hbmk2/hbmk2.prg
    + Renamed all Windows Harbour .dlls to harbour-11.dll and
      harbourmt-11.dll. This means that MinGW will now have a versioned
      name to be in sync with other builds. It also means that
      -vc, -pocc, -ow postfixes are gone (and additionally DMC
      could also be supported). What remains is -x64 to
      signal an x64 and -ia64 to signal a IA64 build. Another thing
      which remains is -b32 (now renamed to -bcc to be in sync with
      rest of Harbour), because Borland has an non-standard
      name mangling, and while it can be made work with other
      compilers since the calling convention is the same, it requires
      the .dll user applications to be rebuilt with some implib tricks.
      Overall Borland isn't recommended for .dll creation.
      Please do further tests for binary compatibility.

    ; TOFIX: Location of .dll still differs for mingw/cygwin, they
             are created in lib while rest of compilers create it in
             bin. I think we should sync them by creating a copy
             of the .dlls in bin for mingw/cygwin. Przemek, could
             you help here?
    ; TOFIX: "Making <dllname>..." screen messages. I'll need some  
             help here also.

  * bin/hb-mkdyn.sh
    * ${MAJOR} default set to 1.

  * make_gnu_os2.cmd
    * Minor formatting.

  * contrib/hbgd/gdwrp.c
    ! Minor correction to recent change. (avoiding warning for MinGW)
2009-03-17 16:30:35 +00:00
Viktor Szakats
394831e5d4 2009-03-16 01:33 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.bat
  * source/vm/maindllp.c
  * utils/hbmk2/hbmk2.prg
    + Added .dll generation for pocc.
    + Added -shared support for pocc.

  * utils/hbmk2/hbmk2.prg
    ! Warning after prev commit is fixed.

  * source/vm/Makefile
    * All win targets will generate maindllh lib.
2009-03-16 00:36:06 +00:00
Viktor Szakats
09621b1eed 2009-02-26 19:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.bat
    * Cleaned tool outputs.
    + Added hbmaindllh lib to included liblist.
      (dunno what this serves, but we had it in non-GNU make)
      Do we need this at all?
    + Added support for msvc64 dll name.
    * Some tweak to owatcom, but it's just guessing, it still
      doesn't work.
    + Added generating hbrun-dll executable.

  * source/vm/hvm.c
  * source/vm/mainstd.c
    * Random tweak for owatcom/win dll support without success.
      Best result so far is:
      "Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'"

  * source/vm/Makefile
    + Added mainddllp generation for msvc, msvc64, bcc32, owatcom.

  * source/vm/maindllp.c
    + Added msvc64 and msvcia64 .dll names.

  * source/vm/extrap.c
    * Minor tweak to use alternate (documented) CPU detection macro.

  * utils/hbmk2/hbmk2.prg
    + Added msvc64 .dll name.
    * Removed automatic addition of hbcommon lib for shared
      mode for win compilers.

  * utils/hbtest/hbtest.hbm
  * utils/hbrun/hbrun.hbm
    + Added make files.
2009-02-26 18:48:17 +00:00
Viktor Szakats
7bdb1a9ea4 2009-02-26 10:24 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.bat
    + Moving .lib and .exp (if they are generated) files
      to LIB dir.

  * source/vm/maindllp.c
    + Added owatcom flavour of .dll name.

  * contrib/hbwin/win_misc.c
    + Added WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE().

  * utils/hbmk2/hbmk2.prg
    + Added TODO to create temp .c files in temp location.
      Looks this can create a few problems (-hbcc, .ppo output
      location when -p is used by user).
    + '/o' flavour of -o option is now ignored on non-*nix
      systems to make sure users cannot mess up the hbmk process
      flow.
    * -o option modified to reset any previous explicit -o settings.
    * Some minor internal renames, comments.
    + Added new hbmk.cfg / .hbp option: 'shareddef='. This can
      change the default state of shared/static setting, so it
      can be used by installers or user to override default
      behaviour. NOTE: HB_SHARED envvar can also be used.
    * Changed hbmk.cfg lookup preferences to this:
      1. $HOME/.harbour
      2. /etc/harbour
      3. <hbmkdir>/../etc/harbour
      4. <hbmkdir>/../etc
      5. <hbmkdir>
      (NOTE: I've deleted /etc as etc/harbour seems superior
             and we already store a .def file there.
             I've also deleted /usr/local/etc)
2009-02-26 09:25:29 +00:00
Viktor Szakats
bc6e1a9b3e 2009-02-12 10:57 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbsetup.h
  * include/hbapi.h
  * source/common/hbprintf.c
  * source/common/hbstr.c
    + Temporarily enabled local hb_snprintf() implementation.
    ; Please test. If it's okay, we can enable it permanently.

  * contrib/rddsql/sddmy/make_b32.bat
  * contrib/rddsql/sddmy/make_vc.bat
  * contrib/rddsql/sddpg/make_b32.bat
  * contrib/rddsql/sddpg/make_vc.bat
  * contrib/rddsql/sddfb/make_b32.bat
  * contrib/rddsql/sddfb/make_vc.bat
    ! Fixed typos for VC flavours.
    % Removed unnecessary INCLUDE path.

  * source/vm/maindllp.c
    ! Updated dll name for Borland and MSVC.

  * source/lang/msguawin.c
  * source/lang/msgua866.c
  * source/lang/msguakoi.c
    ! Fixed corrupted equal char in code.
    ! Fixed date format.
    ! Fixed CP IDs and descriptions in UA866 and UAKOI.
    ! Restored 'CA-Cl*pper' in comment.
    ; Please verify me.
2009-02-12 10:03:45 +00:00
Viktor Szakats
1d13959a7b 2009-02-04 01:09 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/extend.api
  * include/hbgtcore.h
  * include/hbwince.h
  * include/hbthread.h
  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbapi.h
  * include/clipdefs.h
  * include/hbatomic.h
  * contrib/hbmysql/mysql.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/files.c
  * contrib/hbct/dattime3.c
  * contrib/hbct/disk.c
  * contrib/hbodbc/odbc.c
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbsyslog.c
  * contrib/xhb/filestat.c
  * contrib/hbmsql/msql.c
  * contrib/hbole/ole2.c
  * contrib/hbmzip/hbmzip.c
  * contrib/hbapollo/apollo.c
  * contrib/hbfbird/firebird.c
  * contrib/hbnf/descendn.c
  * contrib/hbnf/getenvrn.c
  * contrib/rddsql/sqlmix.c
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/rddads/adsx.c
  * contrib/rddads/rddads.h
  * contrib/rddads/adsmgmnt.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/ads1.c
  * contrib/hbfimage/fi_winfu.c
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbgd/gd.ch
  * contrib/hbgd/gdwrp.c
  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbtip/utils.c
  * contrib/hbtip/ChangeLog
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_osc.c
  * contrib/hbwin/win_misc.c
  * contrib/hbwin/win_prt.c
  * contrib/hbwin/win_dll.c
  * contrib/hbwin/win_ole.c
  * contrib/hbwin/win_prn1.c
  * contrib/hbwin/win_regc.c
  * contrib/hbssl/sslsess.c
  * contrib/hbssl/sslrand.c
  * contrib/hbwhat/whtdate.c
  * contrib/hbwhat/whtini.c
  * contrib/hbwhat/whtcret.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whtilst.c
  * contrib/hbwhat/whtreg.c
  * contrib/hbwhat/whtclpb.c
  * contrib/hbwhat/whtmous.c
  * contrib/hbwhat/whtrgn.c
  * contrib/hbwhat/whtmeta.c
  * contrib/hbwhat/whttbar.c
  * contrib/hbwhat/whtrect.c
  * contrib/hbwhat/whtbrsh.c
  * contrib/hbwhat/whtgdi.c
  * contrib/hbwhat/whtdlg.c
  * contrib/hbwhat/whtview.c
  * contrib/hbwhat/whtsys.c
  * contrib/hbwhat/whtmain.c
  * contrib/hbwhat/whtwnd.c
  * contrib/hbwhat/whtmmcap.c
  * contrib/hbwhat/whtfont.c
  * contrib/hbwhat/whtdir.c
  * contrib/hbwhat/whtbmp.c
  * contrib/hbwhat/whtkbrd.c
  * contrib/hbwhat/whtpen.c
  * contrib/hbwhat/whttext.c
  * contrib/hbwhat/whtdc.c
  * contrib/hbwhat/whtdraw.c
  * contrib/examples/uhttpd/socket.c
  * contrib/examples/uhttpd/uhttpdc.c
  * source/vm/mainwin.c
  * source/vm/maindll.c
  * source/vm/maindllh.c
  * source/vm/hvm.c
  * source/vm/cmdarg.c
  * source/vm/maindllp.c
  * source/vm/fm.c
  * source/vm/extrap.c
  * source/vm/thread.c
  * source/vm/dynlibhb.c
  * source/vm/set.c
  * source/common/hbgete.c
  * source/common/hbver.c
  * source/common/hbfsapi.c
  * source/common/hbwince.c
  * source/common/hbdate.c
  * source/rtl/diskspac.c
  * source/rtl/console.c
  * source/rtl/gtwin/gtwin.c
  * source/rtl/fserror.c
  * source/rtl/hbgtcore.c
  * source/rtl/gtclip.c
  * source/rtl/fstemp.c
  * source/rtl/idle.c
  * source/rtl/oemansi.c
  * source/rtl/disksphb.c
  * source/rtl/net.c
  * source/rtl/gtgui/gtgui.c
  * source/rtl/seconds.c
  * source/rtl/gttone.c
  * source/rtl/hbproces.c
  * source/rtl/gtkeycod.c
  * source/rtl/version.c
  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/hbrandom.c
  * source/rtl/hbinet.c
  * source/rtl/hbffind.c
  * source/rtl/gtsys.c
  * source/rtl/filesys.c
  * source/rtl/gtkbstat.c
  * source/rtl/isprint.c
  * source/compiler/cmdcheck.c
  * utils/hbmake/hbmlang.c
    * #defines renamed to be bitwidth-independent.
      - HB_OS_WIN_32_USED -> HB_OS_WIN_USED
      - HB_OS_WIN_32      -> HB_OS_WIN
    ; Please modify your code accordingly.

  * include/hbdefs.h
  * include/hbsetup.h
    + Added compatibility to still understand HB_OS_WIN_32_USED,
      and to #define HB_OS_WIN_32 in addition to HB_OS_WIN.
      This means that old code will still work, but these
      compatibility features will be removed in the future,
      so it's recommended to change the code as above.
2009-02-04 00:18:56 +00:00
Viktor Szakats
8be149614c 2008-11-09 17:15 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/vm/arrays.c
  * source/vm/classes.c
  * source/vm/cmdarg.c
  * source/vm/codebloc.c
  * source/vm/debug.c
  * source/vm/dynsym.c
  * source/vm/extend.c
  * source/vm/fm.c
  * source/vm/hashes.c
  * source/vm/hvm.c
  * source/vm/itemapi.c
  * source/vm/maindll.c
  * source/vm/maindllh.c
  * source/vm/maindllp.c
  * source/vm/mainstd.c
  * source/vm/mainwin.c
  * source/vm/set.c
  * source/vm/vm.c
    % Removed HB_EXPORT from remaining function definitions.
2008-11-09 16:16:54 +00:00
Przemyslaw Czerpak
d4b61aece8 2008-10-10 06:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/source/vm/hvm.c
    + added hb_vmProcessDynLibSymbols() which works like
      hb_vmProcessSymbolsEx() but always mark registered modules as
      dynamic

  * harbour/source/vm/maindllp.c
    * redirect hb_vmProcessSymbolsEx() to hb_vmProcessDynLibSymbols()

  * harbour/source/vm/thread.c
    * disabled some low level locking code in non MT HVM mode
2008-10-10 04:26:42 +00:00
Przemyslaw Czerpak
a9ed741e26 2008-10-09 00:17 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbtypes.h
  * harbour/source/vm/maindllp.c
    ! updated casting for current SVN code
      [TOMERGE 1.0]

  * harbour/include/hbthread.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    + added .prg function
         hb_threadWait( <pThID> | <apThID>, [ <nTimeOut> ] [, <lAll> ] )
               => <nThInd> | <nThCount> | 0
      This function wait for <nTimeOut> seconds (default infinite wait)
      until one or all (controlled by <lAll> parameter) of given HVM threads
      will have finished execution in HVM area. It does not join the threads.
      It returns index to 1-st thread which has finished execution (default)
      or number of threads which has finished in given time period when lAll
      is .T.
2008-10-08 22:18:09 +00:00
Viktor Szakats
b7a7705eee 2008-10-03 09:04 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/oleauto.prg
  * contrib/hbole/ole2.c
  * contrib/hbwin/win_tole.prg
  * contrib/hbwin/win_ole.c
    * OLESHOWEXCEPTION() implemented on the .prg level, using 
      Alert() rather than MessageBox().
    ! All MessageBox()es converted to Alert()s.
    + Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION() 
      to hbole.

  * source/vm/maindllp.c
    ! Changed MessageBox() call to internal error.

  * contrib/gtwvg/gtwvg.c
  * source/rtl/gtwvt/gtwvt.c
    ! Changed MessageBox() calls to internal error.

  * contrib/gtwvg/gtwvg.c
    * Internal error calls synced with GTWVT.

  * source/rtl/hbgtcore.c
    - Removed "Internal error" text from two internal error descriptions.

  * make_vc.mak
    - Removed reference to MessageBox() from comment.

  ; NOTE: No more MessageBox() calls in Harbour.
          (except some wrappers for user .prg code)
2008-10-03 07:06:16 +00:00
Viktor Szakats
24ec421a42 2008-05-21 17:45 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* harbour.spec
     + Added HU translation (cpwin).

   * source/rtl/gtfunc.c
     % Minor opt.

   * source/rtl/console.c
   * source/rtl/fserror.c
   * source/rtl/strmatch.c
   * source/rtl/padr.c
   * source/rtl/hbhex.c
   * source/rtl/at.c
   * source/rtl/abs.c
   * source/rtl/dates.c
   * source/rtl/padc.c
   * source/rtl/mod.c
   * source/rtl/hbrandom.c
   * source/rtl/filesys.c
   * source/rtl/padl.c
   * source/rtl/val.c
   * source/rtl/hbregex.c
   * source/vm/runner.c
   * source/vm/hashes.c
   * source/vm/itemapi.c
   * source/vm/hvm.c
   * source/vm/maindllp.c
   * source/vm/fm.c
   * source/vm/arrayshb.c
   * source/vm/classes.c
   * source/common/hbtrace.c
     * Formatting (whitespace only)
2008-05-21 15:50:34 +00:00
Przemyslaw Czerpak
59ebbe7064 2007-12-11 16:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* 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
2007-12-11 15:06:07 +00:00
Przemyslaw Czerpak
113866e6a1 2007-06-20 21:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
    + added GTI_ADDKEYMAP and GTI_DELKEYMAP

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added const to declarations of some function parameters

  * harbour/include/hbgtcore.h
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/gtcrs/Makefile
  - harbour/source/rtl/gtcrs/chrmap.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtcrs/gtcrs.h
    * hb_gt_chrmapinit() common function now for different GT drivers
    * minor cleanup in GTCRS code

  * harbour/include/hbcompat.ch
    + added some new translation rules

  * harbour/include/hbapi.h
    * cleanup comment

  * harbour/source/pp/ppcore.c
    ! fixed line numbering when errors are reported in different order
      due to preprocessing extended code block

  + harbour/source/rtl/gttrm
  + harbour/source/rtl/gttrm/Makefile
  + harbour/source/rtl/gttrm/gttrm.c
    + added new GT driver - it's terminal driver like GTCRS and GTSLN
      but it does not use any external library like [N]CURSES or SLANG
      so it can be compiled in nearly all POSIX systems. It's not such
      flexible like curses or slang base drivers because instead of
      using termcap/terminfo databases to extract terminal capabilities
      it uses some hard coded sequences for few terminals (now Linux, ANSI,
      XTERM) but it should cover users requests in 95% of cases. Terminals
      I tested are quite well supported (GTTRM works even better then GTCRS
      or GTSLN and is much faster in full screen mode - 2-4 times).
      I noticed that most terminal emulators works much better with GTTRM
      then with GTCRS or GTSLN due to limited list of used escape sequences
      so some minor differences in each terminal implementation are not
      noticeable. GTTRM automatically detects ISO/UTF8 terminal mode and
      chose valid output what should also help *nix users.
      Now I would like to ask BSD and MacOSX users to test GTTRM in these
      systems with pure text console and XWindow terminal emulators. I'm
      interesting in any problems you may found.

  * harbour/source/vm/hvm.c
    + added protection for possible GPF caused by wrong .prg code

  * harbour/source/vm/maindllp.c
    % store function addreses in static variables to improved execution
      speed
    + added support for compilers which does not use "_" as function prefix
    + added support for using with harbour*.dll

  * harbour/source/vm/memvars.c
    + added new method of detaching enumerators and array item references
      covered by HB_COMPAT_XHB macro. xHarbour does not work in such way
      but the final results are similar.

  * harbour/source/vm/dynlibhb.c
    + added protection against passing wrong pointer items to HB_LIB*()
      functions

  * harbour/source/common/reserved.c
    * cleaned warning

  * harbour/bin/hb-func.sh
  * harbour/config/hpux/global.cf
  * harbour/config/darwin/global.cf
  * harbour/config/linux/global.cf
  * harbour/config/sunos/global.cf
  * harbour/config/bsd/global.cf
    + added GTTRM to library list
2007-06-20 19:07:37 +00:00
Przemyslaw Czerpak
5f67da8896 2006-06-19 23:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
    + added hbapicls.h

  * harbour/include/hbapi.h
  * harbour/source/vm/garbage.c
    * added some testing macros

  * harbour/include/hbmath.h
    * HB_MATH_ERRNO enabled for MINGW build. Seems that MinGW doesn't
      activate math error handler and only sets errno

  * harbour/include/hbtypes.h
  * harbour/source/vm/maindllp.c
    ! fixed VM_PROCESS_SYMBOLS_EX definition
    * cleaned a little bit code to not return uninitialized values
      when original function cannot be detected

  * harbour/source/compiler/genc.c
    * minor modifications

  * harbour/source/rtl/math.c
    ! fixed possible memory leak
    * indenting

  * harbour/source/vm/classes.c
    ! fixed possible GPF in __GETMSGPRF
    * use only one function for method name hashing

  * harbour/source/vm/hvm.c
    * minor fix
2006-06-19 21:11:59 +00:00
Przemyslaw Czerpak
fb60be5866 2006-06-17 00:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcomp.h
    + added extern hb_comp_szFile

  * harbour/include/hbinit.h
    * changed hb_vmProcessSymbolsExt() to hb_vmProcessSymbolsEx() respecting
      Mindaugas suggestion.
    + added HB_INIT_SYMBOLS_EX_END() macro
    * translate HB_INIT_SYMBOLS_END() macro to HB_INIT_SYMBOLS_EX_END()

  * harbour/include/hbsetup.h
    + added HB_PCODE_VER_MIN and HB_PCODE_VER both now are set to 0x0001

  * harbour/include/hbtypes.h
    * changed VM_PROCESS_SYMBOLS_EXT to VM_PROCESS_SYMBOLS_EX

  * harbour/include/hbvm.h
    + added hb_vmFindModuleSymbolName() - it returns the file name of given
      symbol if it was registered in HVM

  * harbour/source/compiler/genc.c
    * set HB_FS_LOCAL for local module functions
    * use HB_INIT_SYMBOLS_EX_END instead of HB_INIT_SYMBOLS_END

  * harbour/source/compiler/harbour.c
    * minor modifications

  * harbour/contrib/rdd_ads/ads1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * added HB_FS_LOCAL to function symbols in registered symbol tables

  * harbour/source/rdd/dbfntx/dbfntx1.c
    * added HB_FS_LOCAL to function symbols in registered symbol tables
    ! added missing break
    + added DBOI_KEYCOUNTRAW, DBOI_KEYNORAW. They works like DBOI_KEYCOUNT
      and DBOI_KEYNO in pure DBFNTX. Only with some upper level RDDs like
      RMDBFNTX which supports bit map filters they can return differ results.

  * harbour/source/rdd/workarea.c
    * changed ORDERINFO to DBORDERINFO in error message

  * harbour/source/rtl/set.c
    * respect previous settings in logical SETs if given value is not valid
      new one.
    + added misinf initialization for _SET_FORCEOPT and _SET_HARDCOMMIT.
    * changed default value of _SET_OPTIMIZE to TRUE

  * harbour/source/vm/dynsym.c
    * give the highest priority for LOCAL function symbols

  * harbour/source/vm/hvm.c
    + added hb_vmFindModuleSymbolName() - it returns the file name of given
      symbol if it was registered in HVM
    * changed hb_vmProcessSymbolsExt() to hb_vmProcessSymbolsEx() and added
      PCOE version checking

  * harbour/source/vm/maindllp.c
    * changed hb_vmProcessSymbolsExt() to hb_vmProcessSymbolsEx()
    * changed VM_PROCESS_SYMBOLS_EXT to VM_PROCESS_SYMBOLS_EX

  * harbour/source/vm/proc.c
    * changed to use stack macros/functions instead of direct accessing
      HB_STACK members
    + implemented PROCFILE() - it returns now real source file name
      with body of given function symbol or function executed at given
      stack level. If the source file cannot be detected then empty
      string is returned. Unlike in xHarbour it works also for static
      functions. synatx:
         PROCFILE( [ <FuncSym> | <nStackLevel> ] )
      F.e.:
         PROCFILE() -> current module name
         PROCFILE(@DBFCDX())  -> ../../dbfcdx1.c
2006-06-17 06:36:33 +00:00
Przemyslaw Czerpak
917c8057e6 2006-06-14 13:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/config/linux/dir.cf
  * harbour/config/linux/gcc.cf
    * formatting

  * harbour/config/linux/global.cf
  * harbour/config/linux/install.cf
    * added -ldl to linked library list and RANLIB executing after library
      creation

  * harbour/contrib/ole/ole2.c
    * added #include "hbapicls.h"

  + harbour/include/hbapicls.h
  * harbour/include/hbapi.h
    + added HB_IT_ENUM item
    + added collect member to HB_IT_POINTER structure for POINTER items
      inspected by GC
    * changed the order of HB_CODEBLOCK members to safe few bytes on
      alignment
    * removed counters from HB_CODEBLOCK and HB_BASEARRAY structure
    + added hb_xRefInc(), hb_xRefDec(), hb_xRefFree(), hb_xRefCount(),
      hb_xRefResize() functions. They are internal Harbour VM functions
      and covered by internal API macro. Should not be used by 3-rd
      party code because we may change them in the future or even remove.
    + added hb_gcRefInc(), hb_gcRefDec(), hb_gcRefFree(), hb_gcRefCount()
      functions. These are also internal function which corresponds to the
      above hb_x*() ones.
    - removed hb_arrayRelease() function. This function is not longer
      necessary and it should never be public function - it was implemented
      in very dangerous way.
    - removed hb_codeblockDelete() function.
    - removed hb_memvarValueDecGarbageRef()
    + added USHORT usLen parameter to hb_codeblockMacroNew() - when sets
      to non 0 value it informs that PCODE should be copied to dynamically
      allocated buffer.
    * moved all classes/object functions to separate file: hbapicls.h
    + added hb_retptrGC()
    + added internal function hb_memvarGetItem()

  * harbour/include/hbapiitm.h
    - removed hb_itemForwardValue() and added macro which translates
      hb_itemForwardValue() to hb_itemMove()
    + added hb_itemUnShareString() and hb_itemReSizeString() functions
    + added hb_itemSetNil() macro

  * harbour/include/hbdefs.h
    * some cleanups in macro definitions

  * harbour/include/hbexprb.c
    * indenting

  * harbour/include/hbvm.h
  * harbour/include/hbinit.h
    + added hb_vmProcessSymbolsExt(), hb_vmRegisterSymbols(),
      hb_vmFreeSymbols(), hb_vmBeginSymbolGroup(),
      hb_vmInitSymbolGroup(), hb_vmExitSymbolGroup()
    * changed hb_vmProcessSymbols() to return address of register symbol
      table. For normal code it's the same address as given in parameter
      so it does not break backward binary compatibility.
    * changed symbol init macros to work correctly with modified address
      of symbol table

  * harbour/include/hbsetup.h
    * added support for HB_USE_PROFILER macro. Now profiler code is
      is disable in HVM by default
    * commented out HB_ASORT_OPT_ITEMCOPY - it's not longer used - see note.

  * harbour/include/hbstack.h
    * added missing parenthesis in hb_stackItem() macro

  * harbour/include/hbtypes.h
    * updated VM_PROCESS_DLL_SYMBOLS definition
    + added VM_PROCESS_SYMBOLS_EXT
    - removed HB_ARRAYRELEASE

  * harbour/include/hbver.h
    * changed revision number to 2

  * harbour/include/hbvmpub.h
    - remove pFunPtr from HB_DYNS and cover profiler member by
      #ifndef HB_NO_PROFILER
    + added HB_PCODEFUNC structure
    + added HB_FS_PCODEFUNC, HB_FS_DYNCODE and HB_FS_LOCAL - the last one
      is not used yet.

  * harbour/include/hbxvm.h
    * added some multipcode functions for some speed optimization in -gc3
      output

  * harbour/include/hbapicdp.h
  * harbour/source/codepage/cpbg866.c
  * harbour/source/codepage/cpbgiso.c
  * harbour/source/codepage/cpbgwin.c
  * harbour/source/codepage/cpeldos.c
  * harbour/source/codepage/cpelwin.c
  * harbour/source/codepage/cpesdos.c
  * harbour/source/codepage/cpesmwi.c
  * harbour/source/codepage/cpeswin.c
  * harbour/source/codepage/cpgedos.c
  * harbour/source/codepage/cpgewin.c
  * harbour/source/codepage/cphu852.c
  * harbour/source/codepage/cphuiso.c
  * harbour/source/codepage/cphuwin.c
  * harbour/source/codepage/cppl852.c
  * harbour/source/codepage/cppliso.c
  * harbour/source/codepage/cpplmaz.c
  * harbour/source/codepage/cpplwin.c
  * harbour/source/codepage/cppt850.c
  * harbour/source/codepage/cpptiso.c
  * harbour/source/codepage/cpru866.c
  * harbour/source/codepage/cprukoi.c
  * harbour/source/codepage/cpruwin.c
  * harbour/source/codepage/cpsl437.c
  * harbour/source/codepage/cpsl852.c
  * harbour/source/codepage/cpsliso.c
  * harbour/source/codepage/cpslwin.c
  * harbour/source/codepage/cpsrwin.c
  * harbour/source/common/hbfhnd.c
  * harbour/source/common/hbstr.c
  * harbour/source/common/hbver.c
  * harbour/source/compiler/gencli.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/langapi.c
  * harbour/source/rtl/gtalleg/gtalleg.c
  * harbour/source/rtl/gtalleg/ssf.h
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtos2/gtos2.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/source/rtl/gtxwc/gtxwc.c
    * cleaned the code to avoid warnings for some non ANSI C constructions

  * harbour/source/compiler/cmdcheck.c
    * formatting

  * harbour/source/compiler/gencc.c
    * added some multipcode optimizations

  * harbour/source/compiler/genc.c
    * keep function name set by compiler for static initstatics

  * harbour/source/compiler/harbour.c
    * extend init statics name with the number of used static variables
    * formatting

  * harbour/source/compiler/hbusage.c
    + added my name to developers list - I hope that there is enough
      of my code in Harbour (BTW for quite long time) ;-)

  * harbour/source/rdd/dbcmd.c
    - removed DBF2TEXT() function

  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * generate RT error when someone tries to create DBF with memo fields
      without MEMO RDD linked.

  * harbour/source/rtl/errorapi.c
    * replace all hb_vmDo() with hb_vmSend()

  * harbour/source/rtl/math.c
    * use hb_errPutArgs() to pass parameters to error object

  * harbour/source/rtl/philes.c
  * harbour/source/rtl/space.c
  * harbour/source/rtl/strpeek.c
    * some minor optimizations

  * harbour/source/vm/arrays.c
    - removed hb_arrayRelease() function.
    * changed hb_arrayReleaseGarbage() to be safe for recursive call
    * updated to use GC counters

  * harbour/source/vm/arrayshb.c
    * use stack function/macros instead of direct accessing HB_STACK members

  * harbour/source/vm/asort.c
    * removed unused HB_ASORT_OPT_ITEMCOPY

  * harbour/source/vm/classes.c
    * added class code from HVM
    % added fast overloaded operator detection and execution
    + added hb_objHasOperator(), hb_objOperatorCall()
    + added separated overloading of "=" and "==" operators
    * operate on PHB_SYMB not PHB_FUNC - support for pure PCODE function
      without any machine code
    * use stack function/macros instead of direct accessing HB_STACK members
    * separated profiler code
    * some code cleaning

  * harbour/source/vm/codebloc.c
    + added USHORT usLen parameter to hb_codeblockMacroNew() - when sets
      to non 0 value it informs that PCODE should be copied to dynamically
      allocated buffer.
    * updated to use GC counters
    - removed hb_codeblockDelete() function.
    * changed hb_codeblockDeleteGarbage() to be safe for recursive call
    - removed restoring statics base in hb_codeblockEvaluate()

  * harbour/source/vm/debug.c
    * cleaned and optimized some code

  * harbour/source/vm/dynlibhb.c
    + added support for loading and unloading dynamic libraries with PCODE
    + added support for dynamic libraries in Linux (.so)
    + added HB_LIBERROR() - returns error string with last error in
      HB_LIBLOAD() - now works only in Linux

  * harbour/source/vm/dynsym.c
    * separated profiler code
    + use pDynSym->pSymbol->value.pFunPtr instead of pDynSym->pFunPtr

  * harbour/source/vm/estack.c
    + added #include "hbapicls.h"
    + added hb_stackPushReturn(), hb_stackPopReturn()

  * harbour/source/vm/eval.c
  * harbour/source/vm/extend.c
    * use stack function/macros instead of direct accessing HB_STACK members
    + added hb_retptrGC()

  * harbour/source/vm/fm.c
    + added hb_xRefInc(), hb_xRefDec(), hb_xRefFree(), hb_xRefCount(),
      hb_xRefResize() functions. They are internal Harbour VM functions
      and covered by internal API macro. Should not be used by 3-rd
      party code because we may change them in the future or even remove.

  * harbour/source/vm/garbage.c
    + added hb_gcRefInc(), hb_gcRefDec(), hb_gcRefFree(), hb_gcRefCount()
      functions. These are also internal function which corresponds to the
      above hb_x*() ones.
    * changed Step 3 of GC pass and execution of clean-up function to be
      safe for recursive calls and additional activity.
      Ryszard see my note and s_pDeletedBlock
    + added GC inspected HB_IT_POINTER items.

  * harbour/source/vm/hvm.c
    * separated profiler code
    * separated class code from HVM
    + added support for loading and unloading libraries with PCODE modules
    + added support for pure PCODE functions
    + added support for string item resizing and preallocating string buffer
    + added some new multipcode functions for -gc3 optimization
    + added hb_vmProcessSymbolsExt(), hb_vmRegisterSymbols(),
      hb_vmFreeSymbols(), hb_vmBeginSymbolGroup(),
      hb_vmInitSymbolGroup(), hb_vmExitSymbolGroup()
    * changed hb_vmProcessSymbols() to return address of register symbol
      table. For normal code it's the same address as given in parameter
      so it does not break backward binary compatibility.
    + use new code for operator overloading
    * changed FOR EACH to dynamically check iteration scope in
      hb_vmEnumNext()/hb_vmEnumPrev() and remove max number of iteration
      stored on HVM stack
    * temporary use hb_itemUnRefOnce() instead of hb_itemUnRefRefer() as
      workaround for possible GPF. I'd like Ryszard will chose the final
      version

  * harbour/source/vm/itemapi.c
    + added support for preallocating string buffer size
    + added hb_itemUnShareString() and hb_itemReSizeString()
    * updated string items to use counters allocated with each
      memory block by xh_xgrab()/hb_xalloc()
    * updated codeblock and array items to use GC reference counters
    + added GC inspected HB_IT_POINTER items.
    * generate RT error in hb_itemUnreOnce() for enumerator items
      out of scope
    + added hb_itemPutPtrGC()

  * harbour/source/vm/macro.c
    * use pDynSym->pSymbol->value.pFunPtr instead of pDynSym->pFunPtr

  * harbour/source/vm/maindllp.c
    * updated usage of hb_vmProcessSymbols()
    * added hb_vmProcessSymbolsExt()

  * harbour/source/vm/memvars.c
    + added hb_memvarGetItem()
    - removed hb_memvarValueDecGarbageRef()

  * harbour/source/vm/proc.c
    + added #include "hbapicls.h"

  * harbour/source/vm/pvalue.c
    * do not access stack structure directly but use hb_stack*()
      functions (macros)

  * harbour/source/vm/runner.c
    * synced with xHarbour

  * harbour/utils/hbtest/rt_misc.prg
   * added overloading "=" operator. Now "==" and "=" can be overloaded
     with different methods

   All names I used for new functions/macros can be changed. Please look at
   it and if you will some better propositions then we can use it.
   hb_vmProcessSymbolsExt() is added but not used yet.
2006-06-14 11:21:26 +00:00
Przemyslaw Czerpak
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 ***
2006-02-04 16:16:48 +00:00
Przemyslaw Czerpak
6d28a19d98 2005-10-24 13:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbapiitm.h
  * harbour/include/hbapirdd.h
  * harbour/include/hbdefs.h
  * harbour/include/hbtypes.h
  * harbour/source/rtl/empty.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/maindllp.c
    + added HB_TYPE to as HB_ITEM type marker.
    * set HB_TYPE as UINT32
    * updated to the above modifications
    * cleaned some ~HB_IT_BYREF which has no effect in current VM
2005-10-24 11:29:10 +00:00
Przemyslaw Czerpak
5aa228910c 2005-10-24 12:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbtypes.h
  * harbour/source/vm/maindllp.c
    ! fixed some declaration I missed in previous commit
2005-10-24 10:47:32 +00:00
Przemyslaw Czerpak
188575920d 2005-10-24 02:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/dot/pp.prg
  * harbour/contrib/dot/pp_harb.ch
  * harbour/include/hbapi.h
  * harbour/include/hbapirdd.h
  * harbour/include/hbdefs.h
  * harbour/include/hbextern.ch
  * harbour/include/hbinit.h
  * harbour/include/hbstack.h
  * harbour/include/hbsxfunc.h
  * harbour/include/hbvm.h
  + harbour/include/hbvmopt.h
  * harbour/include/hbvmpub.h
  * harbour/source/codepage/cdp_tpl.c
  * harbour/source/codepage/cdppl852.c
  * harbour/source/codepage/cdppliso.c
  * harbour/source/codepage/cdpplmaz.c
  * harbour/source/codepage/cdpplwin.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/harbour.c
  * harbour/source/lang/msgca.c
  * harbour/source/lang/msgpl852.c
  * harbour/source/lang/msgpliso.c
  * harbour/source/lang/msgplmaz.c
  * harbour/source/lang/msgplwin.c
  * harbour/source/rdd/Makefile
  * harbour/source/rdd/dbcmd.c
  -  harbour/source/rdd/dbf0.prg
  * harbour/source/rdd/dbf1.c
  -  harbour/source/rdd/delim0.prg
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/rddsys.prg
  -  harbour/source/rdd/sdf0.prg
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbfcdx/Makefile
  -  harbour/source/rdd/dbfcdx/dbfcdx0.prg
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  -  harbour/source/rdd/dbfcdx/sixcdx0.prg
  * harbour/source/rdd/dbfdbt/Makefile
  -  harbour/source/rdd/dbfdbt/dbfdbt0.prg
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/dbffpt/Makefile
  -  harbour/source/rdd/dbffpt/dbffpt0.prg
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/Makefile
  * harbour/source/rdd/dbfntx/dbfntx0.prg
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/hbsix/Makefile
  * harbour/source/rdd/hbsix/sxcompr.c
  * harbour/source/rdd/hbsix/sxcrypt.c
  * harbour/source/rdd/hbsix/sxdate.c
  * harbour/source/rdd/hsx/hsx.c
  * harbour/source/rdd/nulsys/nulsys.prg
  * harbour/source/rtl/browdbx.prg
  * harbour/source/rtl/cdpapi.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/arrayshb.c
  * harbour/source/vm/asort.c
  * harbour/source/vm/break.c
  * harbour/source/vm/classes.c
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/debug.c
  * harbour/source/vm/dynlibhb.c
  * harbour/source/vm/dynsym.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/eval.c
  * harbour/source/vm/evalhb.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/garbage.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/memvclip.c
  * harbour/source/vm/pcount.c
  * harbour/source/vm/proc.c
  * harbour/source/vm/pvalue.c
  * harbour/source/vm/runner.c
    * remove default API and stack macros. Now API/stack macros can be
      enabled by including hb_vmopt.h file.
      This file should be included _ONLY_ by core code because binary
      object/libraries generated after can work only with _EXACTLY_ the
      same HVM compiled the same C alignment switches
    * cleaned some HB_EXTERN_C declaration - Anotonio you should be able
      to build FWH now
    * cleaned startup initialization code -
      please update lang and codepage files - I only updated
      source/codepage/cdppl*.c and source/lang/msgpl*.c files
      Or other files should be updated or they will not work MSC
    * synced with recent xHarbour modification in RDD init code
2005-10-24 00:52:42 +00:00
Przemyslaw Czerpak
8d5abcdc8f 2004-10-12 01:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
   * foramting some // replaced by /*  */

  * harbour/source/vm/maindllp.c
   * fixed Windows compilation
   The BCC and MSC make fiels have to be updated to the folowing changes:
     - harbour/contrib/libct/invertwin.prg
     + harbour/contrib/libct/invrtwin.prg
     - harbour/source/common/hbffind.c
     + harbour/source/common/hbverdsp.c
     - harbour/source/rdd/dbfcdx/dbfcdx1.h
     + harbour/source/rtl/hbffind.c
2004-10-11 23:16:07 +00:00
Alexander S.Kresin
f50951ebc9 2003-01-24 17:47 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2003-01-24 14:45:09 +00:00
Paul Tucker
2f137704cc 2002-10-28 11:10 UTC-0500 Paul Tucker <ptucker@sympatico.ca> 2002-10-29 16:49:05 +00:00
Antonio Linares
dfc4e68551 all hb_stor... functions changed to return an int value 2002-10-19 11:22:00 +00:00
Andi Jahja
ac770ac643 Andi Jahja <harbour@cbn.net.id> 2001-12-31 07:39:55 +00:00
Luiz Rafael Culik
330ccfcebd See changelog 2001-12-30 14:35 UTC-0300 2001-12-30 16:26:50 +00:00
Luiz Rafael Culik
572f4b99ed See 2001-12-29 19:00 UTC-0300 2001-12-29 21:11:32 +00:00
Luiz Rafael Culik
3a1e95b7ba See changelog 2001-12-19 19:00 UTC-0300 2001-12-29 20:56:11 +00:00