Commit Graph

28 Commits

Author SHA1 Message Date
Viktor Szakats
031003a8c9 2012-11-08 18:01 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbnf/any2any.prg
  * contrib/hbnf/d2e.prg
    ! Fixed wrongly cased local macros after last formatting.
      These macro names collided with function names used in
      other libs. I gave these macros a unique name to avoid that.
      Based on Andi Jahja's patch. Thank you.

  * include/*.ch
    * formatting (except std.ch)

  * contrib/xhb/hbcompat.ch
    ! minor fix to prev

  * include/harbour.hbx
    ! minor fix

  * contrib/gtwvg/hbgtwvg.ch
  * contrib/hbblink/hbblink.ch
  * contrib/hbcairo/hbcairo.ch
  * contrib/hbct/ct.ch
  * contrib/hbct/ctdisk.ch
  * contrib/hbct/ctvideo.ch
  * contrib/hbfimage/freeimag.ch
  * contrib/hbmxml/hbmxml.ch
  * contrib/hbnf/any2any.prg
  * contrib/hbnf/d2e.prg
  * contrib/hbtip/thtml.ch
  * contrib/hbtip/tip.ch
  * contrib/hbxpp/hbxpp.ch
  * contrib/hbzebra/hbzebra.ch
  * contrib/xhb/hbcompat.ch
  * contrib/xhb/hbdll.ch
  * contrib/xhb/hblog.ch
  * contrib/xhb/ttable.ch
  * extras/hbdoc/hbdoc.ch
  * extras/hbvpdf/hbvpdf.ch
  * utils/hbtest/rt_init.ch
    * minor cleanups/formatting
2012-11-08 17:05:01 +00:00
Przemyslaw Czerpak
faf0b92f31 2012-06-18 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/src/rdd/dbf1.c
    + added new dbFieldInfo() actions:
         DBS_COUNTER - get/set autoincrement field counter
         DBS_STEP    - get/set autoincrement field step
    * reset autoincrement and row version fields in ZAP operation
2012-06-18 15:34:06 +00:00
Przemyslaw Czerpak
8f7e9eda97 2011-12-06 11:42 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbrdddbf.h
    * modified DB_DBFLOCK_HB64 locking scheme
         - extended RLOCK/FLOCK area from 2^31-2 to 2^32-2
           it effectively changes maximum number of records in this
           locking scheme to 4'294'967'294
         - use COMIX like hyper locking mode
           it should increase performance
      Warning: INCOMPATIBLE!
               all applications using DB_DBFLOCK_HB64 locking mode should
               be updated - it is not safe to concurrently access the
               same files using programs compiled with older Harbour
               versions and current one.
    * renamed the following DB_DBFLOCK_* macros:
         DB_DBFLOCK_CLIP    to DB_DBFLOCK_CLIPPER
         DB_DBFLOCK_CL53    to DB_DBFLOCK_COMIX
         DB_DBFLOCK_CL53EXT to DB_DBFLOCK_HB32
    * added new locking scheme: DB_DBFLOCK_CLIPPER2
      This locking scheme is designed to replicate _real_ locking scheme
      used by Cl*pper applications linked with NTXLOCK2.OBJ
      It's different then the documented one.
    ; Now Harbour supports the following locking schemes:
         DB_DBFLOCK_CLIPPER  1 default Clipper locking scheme
         DB_DBFLOCK_COMIX    2 COMIX and CL53 DBFCDX hyper locking scheme
         DB_DBFLOCK_VFP      3 [V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ
         DB_DBFLOCK_HB32     4 Harbour hyper locking scheme for 32bit file API
         DB_DBFLOCK_HB64     5 Harbour hyper locking scheme for 64bit file API
         DB_DBFLOCK_CLIPPER2 6 extended Clipper locking scheme NTXLOCK2.OBJ

  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddntx.h
  * harbour/include/hbrddnsx.h
  * harbour/include/hbrddcdx.h
  * harbour/src/rdd/dbf1.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    + finished support for COMIX like hyper locking.
      This modification enables periodical switch to write locks
      by readers to eliminate starvation effect on some systems
      where many readers can completely block writer.
      By default readers use exclusive lock once per each 16 operations.
    + added optional support for delayed index write locks (flush locks)
      in hyper locking modes.
      If index RDD can use such locks then write lock can be divided into
      two parts:
         1) block writers and new readers (write lock)
         [prepare index modifications in memory]
         2) wait for old readers still active (flush lock)
         [write modifications to index file]
         [release locks]
      This mode reduces time when index is locked exclusively increasing
      reader performance and also increase writer performance because
      waiting for active readers it can prepare index modifications in
      memory.

  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    + added support for delayed index write locks (flush locks) in DBFCDX

  * harbour/src/rtl/filebuf.c
    * automatically change write file locks to read locks when file is
      open in readonly mode in POSIX systems.

  * harbour/src/vm/classes.c
    * disabled inheriting of class variables values from ancestor classes
      when new class is dynamically created.
      Warning: INCOMPATIBLE!
               This modification is not backward compatible and can
               interact with some existing code which has to be updated
               for new behavior.
2011-12-06 10:42:41 +00:00
Przemyslaw Czerpak
4bebbd6ac3 2011-06-09 15:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapifs.h
  * harbour/src/rtl/filesys.c
    % removed unnecessary PID setting in POSIX file lock function.
    + added new C function:
         int hb_fsLockTest( HB_FHANDLE hFileHandle, HB_FOFFSET nStart,
                            HB_FOFFSET nLength, HB_USHORT uiMode );
      It allows to test file range lock status.
      It returns -1 on error, 0 when lock can be set and value greater
      then 0 if part of given range is locked by other process. In POSIX
      systems this value is PID of current lock owner. In other systems
      it's always 1.
      In uiMode only FLX_SHARED bit is significant.

  * harbour/include/hbapifs.h
  * harbour/src/rtl/filebuf.c
    + added new C function:
         int hb_fileLockTest( PHB_FILE pFile, HB_FOFFSET nStart,
                              HB_FOFFSET nLen, int iType );
      It's redirected to hb_fsLockTest()

  * harbour/contrib/hbnetio/netio.h
  * harbour/contrib/hbnetio/netiocli.c
  * harbour/contrib/hbnetio/netiosrv.c
  * harbour/contrib/hbmemio/memio.c
    + implemented hb_fileLockTest() low level code

  * harbour/include/dbinfo.ch
    + added DBI_LOCKTEST

  * harbour/src/rdd/dbf1.c
    % small code simplification
    + implemented DBI_LOCKTEST
         dbInfo( DBI_LOCKTEST [, <nRecNo> ] ) -> <nStatus>
      returns corresponding results to C level hb_fsLockTest() function.
      If current workarea is already locked then 0 is returned.
      If low level FS is located on POSIX system (accessed directly or by
      HBNETIO) then value greater then 0 is PID of current lock owner.
      If the lock is hold by aliased area or other thread of calling
      process then <nStatus> is current PID. In Other systems 1 is returned
      when lock cannot be set in current workarea.
      If <nRecNo> is given then the test is for RLOCK() otherwise FLOCK()
      operation.
2011-06-09 13:32:19 +00:00
Przemyslaw Czerpak
9519421231 2010-12-04 19:32 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    + added DBOI_RESETPOS action which can be used to discard cached
      logical and raw position in all index files in given WA
2010-12-04 18:33:01 +00:00
Przemyslaw Czerpak
73c06c043a 2010-06-15 00:59 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/idle.c
    ! fixed to call hb_idleState() for hb_idleSleep( 0 )

  * harbour/src/pp/ppcore.c
  * harbour/src/rdd/workarea.c
  * harbour/src/rdd/dbcmd.c
  * harbour/src/rdd/dbf1.c
  * harbour/include/dbinfo.ch
  * harbour/include/hbapifs.h
  * harbour/include/hbvmopt.h
  * harbour/include/hbvmint.h
  * harbour/include/hbrddntx.h
    * renamed xHarbour to Harbour in some of my comments
2010-06-14 22:59:27 +00:00
Viktor Szakats
2fa7ba29cf 2010-06-03 16:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* package/winuni/mpkg_win_uni.nsi
    * 2.0 -> 2.1

  * src/hbextern/hbextern.prg
  * src/pp/pplib.c
  * src/pp/ppcore.c
  * src/pp/pplib2.c
  * src/pp/hbpp.c
  * src/pp/pplib3.c
  * src/main/harbour.c
  * src/debug/dbgtwin.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtmitm.prg
  * src/debug/dbgtobj.prg
  * src/debug/dbgbrwsr.prg
  * src/debug/dbgmenu.prg
  * src/debug/dbgthsh.prg
  * src/debug/tbrwtext.prg
  * src/debug/dbgwa.prg
  * src/debug/debugger.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgtinp.prg
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbver.c
  * src/common/hbwin.c
  * src/common/hbtrace.c
  * src/common/funcid.c
  * src/common/hbfsapi.c
  * src/common/hbprintf.c
  * src/common/hbverdsp.c
  * src/common/hbwince.c
  * src/common/hbfopen.c
  * src/common/expropt1.c
  * src/common/hbstr.c
  * src/common/expropt2.c
  * src/common/hbdate.c
  * src/common/hbmem.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/nortl/nortl.c
  * src/macro/macro.yyc
  * src/macro/macro.y
  * src/macro/macrolex.c
  * src/compiler/compi18n.c
  * src/compiler/hbmain.c
  * src/compiler/ppcomp.c
  * src/compiler/hbfix.c
  * src/compiler/cmdcheck.c
  * src/compiler/hbdbginf.c
  * src/compiler/hbpcode.c
  * src/compiler/genhrb.c
  * src/compiler/complex.c
  * src/compiler/hbdead.c
  * src/compiler/hbcomp.c
  * src/compiler/genobj32.c
  * src/compiler/genc.c
  * src/compiler/hbopt.c
  * src/compiler/hbident.c
  * src/compiler/hbusage.c
  * src/compiler/gencc.c
  * src/compiler/hbcmplib.c
  * src/compiler/hblbl.c
  * src/compiler/harbour.yyc
  * src/compiler/hbstripl.c
  * src/compiler/harbour.y
  * src/compiler/hbfunchk.c
  * src/compiler/hbgenerr.c
  * include/hbpp.h
  * include/set.ch
  * include/achoice.ch
  * include/hbrdddbf.h
  * include/hbstdgen.ch
  * include/hbvmpub.h
  * include/hbgtinfo.ch
  * include/vm.api
  * include/hbpcode.h
  * include/hbset.h
  * include/hbver.h
  * include/hbtrace.h
  * include/extend.api
  * include/hbapicdp.h
  * include/hbrddnsx.h
  * include/button.ch
  * include/hbstack.h
  * include/item.api
  * include/inkey.ch
  * include/hbapilng.h
  * include/hbhrb.ch
  * include/tbrowse.ch
  * include/common.ch
  * include/rdd.api
  * include/gt.api
  * include/hbgtcore.h
  * include/dbinfo.ch
  * include/hbundoc.api
  * include/hbapifs.h
  * include/hbtask.h
  * include/hbsetup.ch
  * include/hbwince.h
  * include/hbvmopt.h
  * include/hb_io.h
  * include/hbthread.h
  * include/hbxvm.h
  * include/setcurs.ch
  * include/hbdefs.h
  * include/hbmsgreg.h
  * include/dbedit.ch
  * include/hblang.ch
  * include/filesys.api
  * include/hbdebug.ch
  * include/hbextcdp.ch
  * include/hbsetup.h
  * include/hbmacro.h
  * include/hbzlib.ch
  * include/hbinit.h
  * include/hbtypes.h
  * include/hbmacro.ch
  * include/hbusrrdd.ch
  * include/hbrddsdf.h
  * include/hbgtreg.h
  * include/hbwinuni.h
  * include/hbapi.h
  * include/simpleio.ch
  * include/hbmemory.ch
  * include/hbpers.ch
  * include/error.ch
  * include/hb.ch
  * include/hbapiitm.h
  * include/hbmath.h
  * include/hbmath.ch
  * include/memoedit.ch
  * include/hbvmint.h
  * include/hbver.ch
  * include/fileio.ch
  * include/rddsys.ch
  * include/hbrddntx.h
  * include/hbapicom.h
  * include/hbatomic.h
  * include/extend.h
  * include/hbznet.h
  * include/hbvm.h
  * include/std.ch
  * include/hbapidbg.h
  * include/hbmemvar.ch
  * include/hbcomp.h
  * include/hbapirdd.h
  * include/hbextlng.ch
  * include/color.ch
  * include/hbcompdf.h
  * include/hbclass.ch
  * include/hbsxdef.ch
  * include/hbmather.h
  * include/dbstruct.ch
  * include/hbsocket.ch
  * include/hbdyn.ch
  * include/hbrdddel.h
  * include/hbtrace.ch
  * include/error.api
  * include/hbapistr.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbexprop.h
  * include/hbiniseg.h
  * include/hbgfx.ch
  * include/hbsocket.h
  * include/hbchksum.h
  * include/hbdbf.h
  * include/hbbfish.h
  * include/hbdbsort.h
  * include/hbcdpreg.h
  * include/hbapigt.h
  * include/hbfloat.h
  * include/hbgfxdef.ch
  * include/hbsix.ch
  * include/hbextern.ch
  * include/hbapicls.h
  * include/hberrors.h
  * include/directry.ch
  * include/clipdefs.h
  * include/hboo.ch
  * include/box.ch
  * include/hbinkey.ch
  * include/hbapierr.h
  * include/hbhash.h
  * include/assert.ch
  * include/hbassert.h
  * include/getexit.ch
  * include/reserved.ch
  * include/hbregex.h
  * include/fm.api
  * include/hbthread.ch
  * include/hbexprb.c
  * include/ord.ch
  * include/hbdate.h
    * Deleted 'www.' from harbour-project.org website name.
      (www.harbour-project.org -> harbour-project.org)
2010-06-03 14:48:23 +00:00
Viktor Szakats
0d3d65531c 2010-03-09 14:30 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbini.prg
    * Deleted several unnecessary empty lines at EOF.

  * INSTALL
    * Minor.

  * include/dbinfo.ch
    * Formatting.

  + include/hb.ch
  * include/Makefile
    + Added Harbour header which #includes commonly used in
      applications.
      It also enables us to easily extend standard set of macros
      and constants.

  * contrib/hbide/idesaveload.prg
    * "hbide.set" -> "hbidewnd.ini". At least it uses standard
      extension. Still wrong solution and a remaining TOFIX.
2010-03-09 13:32:05 +00:00
Przemyslaw Czerpak
1b9a7424b9 2010-01-18 11:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/include/hbrdddbf.h
  * harbour/src/rdd/dbf1.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
    * renamed DB_DBFLOCK_XHB64 => DB_DBFLOCK_HB64

  * harbour/contrib/hbwin/win_tprn.prg
    * updated some comments and formatting

  * harbour/contrib/xhb/Makefile
  + harbour/contrib/xhb/xhw32prn.prg
    + added WIN32PRN class, it inherits from WIN_PRN class hiding some
      differences between Harbour and xHarbour in paper size setting and
      separated horizontal and vertical alignment setting
2010-01-18 10:21:26 +00:00
Przemyslaw Czerpak
e12013d2ff 2009-04-28 19:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    * removed TOVERIFY note - Viktor checked it.

  * harbour/contrib/hbct/ctwin.c
    ! redraw windows after each WCENTER() call

  * harbour/contrib/rddads/ads1.c
    + added support for ADS_VARCHAR_FOX and ADS_VARBINARY_FOX fields
      in ADS_VFP tables

  * harbour/include/dbinfo.ch
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddnsx.h
  * harbour/include/hbrddntx.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/workarea.c
    + added support for VFP tables with VARCHAR and VARBINARY fields
    + added support for VFP tables with NULLABLE fields
    + added new dbFieldInfo() action to check if given field is NULL, f.e.:
         ? dbFieldInfo( DBS_ISNULL, FieldPos( <cFieldName> ) )
      The above modifications were not tested with real VFP files. I do
      not have VFP. VFP users should make some real life tests with tables
      created by VFP.
2009-04-28 17:37:49 +00:00
Przemyslaw Czerpak
987fff2601 2009-02-16 17:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
    + added DBI_ISTEMPORARY

  * harbour/include/hbapirdd.h
  * harbour/source/rdd/wafunc.c
    + added hb_rddCreateTableTemp() C function to create temporary
      table which are automatically deleted on close. All indexes and
      memo files for such tables are also in temporary files and
      automatically deleted on close. Please remember that Harbour uses
      OS functions to create temporary files so it's installation dependent
      how much disk space is available for them. Some RDDs may also do
      not create temporary files but keep everything in memory if they
      decide it's more efficient.

  * harbour/source/rdd/dbcmd.c
    + added .prg function to create temporary files:
         dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, ;
                       <cCodePage>, <nConnection> ) -> <lSuccess>
      Not all RDDs have to support it. It's verified by support for
      DBI_ISTEMPORARY dbInfo() action.

  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddnsx.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddntx.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    + added support for temporary tables in native RDDs.

   Most of above modifications were done by Viktor Szakats.
2009-02-16 16:39:39 +00:00
Viktor Szakats
4c4120985a 2008-08-21 10:28 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/dbinfo.ch
   * include/dbstruct.ch
   * include/hbgtinfo.ch
   * include/hblang.ch
   * include/setcurs.ch
     ! Added "also used from C code" comments.

   * utils/hbmake/ffile1.prg
     ! Minor cleanup.

   * include/hbgfxdef.ch
   * include/hbgtinfo.ch
     * Marked old GTI_*, GFX_* macros with HB_LEGACY_LEVEL.
       (Old macro HB_GT_NO_XHB no longer works)

   * include/hbsetup.ch
     + Added HB_LEGACY_LEVEL macro. Currently turned on.
       Will be turned off later, and completely removed 
       as a final step. Times are not defined for these 
       yet. Please prepare to modify your code to not 
       use old legacy stuff.
       NOTE: C code using legacy Clipper (.api) headers are
             unaffected.

   * include/hbapirdd.h
     * Marked HARBOUR_* macros with HB_LEGACY_LEVEL

   * include/hbsetup.h
     * Marked OS_UNIX_COMPATIBLE, OS_PATH_DELIMITER 
       macros with HB_LEGACY_LEVEL.

   * include/hbapifs.h
   * source/rtl/filesys.c
     * Marked hb_fileNameConv() as HB_LEGACY_LEVEL.
     ; 3rd party and app developers should switch to 
       hb_fsNameConv().

   * source/rtl/box.c
   * source/rtl/console.c
   * source/rtl/filesys.c
   * source/rtl/gtapi.c
   * source/rtl/hbgtcore.c
   * contrib/hbclipsm/gauge.c
   * contrib/hbclipsm/status.c
   * contrib/hbct/ctwin.c
   * source/rtl/set.c
   * utils/hbmake/hbmlang.c
     * Updated core/contrib sources to use non-legacy names:
       HB_CLRSTR_LEN, HB_EVALINFO, PHB_EVALINFO, HB_FHANDLE
     ; TODO: FHANDLE -> HB_FHANDLE is incomplete yet.

   * include/hbdefs.h
     * Minor formatting.

   * include/hbmath.h
     ! #include <hbmath.ch> -> #include "hbmath.ch"

   * contrib/hbmysql/mysql.c
     + function SQLFETCHR() updated to allow fetching binary (BLOB) 
       fields. [Thanks to Mitja Podgornik]

   * include/hbapifs.h
   * include/hbapigt.h
   * include/hbapiitm.h
   * include/hbdefs.h
   * include/item.api
   * include/filesys.api
   * include/gt.api
     * FHANDLE      -> HB_FHANDLE
     * EVALINFO     -> HB_EVALINFO
     * PEVALINFO    -> PHB_EVALINFO
     * EVALINFO_PTR -> marked as legacy
     * CLR_STRLEN   -> HB_CLRSTR_LEN
     ; Old names are still working if HB_LEGACY_LEVEL 
       is #defined, and by default now it is.
     ; It's highly recommended to change all 3rd party and 
       app C code to use the new #defines/types/functions.
     ; NOTE1: There are some more names which are still 
              in the legacy "namespace", and gradually 
              I'd like to clean some of these as well. The most 
              important would be the type names, as these 
              are currently colliding with multiple external 
              packages, like windows.h, and it also makes it 
              impossible to compile hbfimage on certain systems.
     ; NOTE2: I'd also like to move the *_PTR (like HB_ITEM_PTR) 
              names to legacy status as we don't really use 
              them except in a few VM files, and we have PHB_* 
              as a wide-spread (and shorter) replacement.
     ; NOTE3: We may also use HB_LEGACY_LEVEL to obolete other 
              legacy or unsafe functions, with better new 
              alternatives.
     ; NOTE4: Here's a more or less complete list of names 
              that _may_ cause such problems:
              ; Type related stuff
                - TRUE, FALSE
                - BOOL, BYTE, SCHAR, UINT, USHORT
                - INT_MAX, INT_MIN
                - INT16, INT16_MAX, INT16_MIN
                - INT24_MAX, INT24_MIN
                - INT32, INT32_MAX, INT32_MIN
                - INT64, INT64_MAX, INT64_MIN
                - LONG, LONG_MAX, LONG_MIN
                - LONGLONG, LONGLONG_MAX, LONGLONG_MIN
                - SHORT, SHRT_MAX, SHRT_MIN
                - UCHAR, UCHAR_MAX
                - UINT16, UINT16_MAX
                - UINT24_MAX
                - UINT32, UINT32_MAX
                - UINT64, UINT64_MAX
                - ULONG, ULONG_MAX
                - ULONGLONG, ULONGLONG_MAX
                - assert()
              ; Some hacks currently used:
                - HB_DONT_DEFINE_BASIC_TYPES
                - HB_DONT_DEFINE_BOOL
                - HB_OS_WIN_32_USED ->
                  (include <windows.h> locally where needed)
              ; Compiler related stuff:
                - VS_*, VU_*, VT_*, FUN_*
                - *COMDECLARED, *COMCLASS, *COMSYMBOL
                - VAR, PVAR
                - _FUNC, PFUNCTION
                - _INLINE, PINLINE
                - _FUNCALL, PFUNCALL
                - _EXTERN, PEXTERN
                - AUTOOPEN, PAUTOOPEN
                - FUNCTIONS
                - INLINES
                - FUNCALLS
                - SYMBOLS
              ; Clipper compatibility #defines,
                better be moved behind a compatibility layer:
                - F_ERROR, FS_ERROR
                - IS*()
                - E_*, EF_*
                - FL_*, FLX_*, FO_*, FXO_*
                - _B_*
                - FC_*, FS_*, FD_*
                - INKEY_*, K_*
                - ES_*, EG_*
                - SC_*
                - DBS_*
              ; + All RDD related stuff, including "dbinfo.ch" constants.
2008-08-21 09:12:17 +00:00
Viktor Szakats
b2594752b3 2008-08-19 14:58 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* make_deb.sh
     * Removed wrong comment recently added.
       (we will need to fix hbfimage compilation anyway)

   * harbour-ce-spec
   * harbour-w32-spec
   * harbour.spec
   * debian/control
   * include/vm.api
   * include/extend.api
   * include/button.ch
   * include/hbstack.h
   * include/item.api
   * include/rdd.api
   * include/gt.api
   * include/dbinfo.ch
   * include/error.api
   * include/filesys.api
   * include/hbapigt.h
   * include/clipdefs.h
   * include/assert.ch
   * include/fm.api
   * include/extend.h
   * source/compiler/genhrb.c
   * config/os2/install.cf
   * tests/db_brows.prg
   * tests/debugtst.prg
   * tests/ac_test.prg
   * tests/testhtml.prg
   * tests/tstcolor.prg
   * doc/hdr_tpl.txt
   * doc/man/harbour.1
   * doc/dirstruc.txt
   * doc/howtobld.txt
   * doc/en/diskspac.txt
   * doc/en/string.txt
   * doc/en/rddord.txt
   * doc/en/math.txt
   * doc/en/error.txt
   * doc/en/treport.txt
   * doc/en/memvar2.txt
   * doc/en/terminal.txt
   * doc/en/dir.txt
   * doc/en/rddmisc.txt
   * doc/en/var.txt
   * doc/en/nation.txt
   * doc/en/dbstrux.txt
   * doc/en/datetime.txt
   * doc/en/memo.txt
   * doc/en/tgetlist.txt
   * doc/en/tlabel.txt
   * doc/en/hb_compa.txt
   * doc/en/array.txt
   * doc/en/rdddb.txt
   * doc/en/dbsdf.txt
   * doc/en/tbrowse.txt
   * doc/en/hvm.txt
   * doc/en/input.txt
   * doc/en/dbdelim.txt
   * doc/en/browse.txt
   * doc/en/menu.txt
   * doc/en/file.txt
   * doc/en/binnum.txt
   * doc/en/tclass.txt
   * doc/en/set.txt
   * doc/en/misc.txt
   * doc/en/sayget.txt
   * doc/en/readme.txt
   * doc/es/diskspac.txt
   * doc/es/tlabel.txt
   * doc/es/array.txt
   * doc/es/dbsdf.txt
   * doc/es/tbrowse.txt
   * doc/es/math.txt
   * doc/es/hvm.txt
   * doc/es/treport.txt
   * doc/es/input.txt
   * doc/es/dbdelim.txt
   * doc/es/browse.txt
   * doc/es/memvar2.txt
   * doc/es/command.txt
   * doc/es/dir.txt
   * doc/es/file.txt
   * doc/es/eval.txt
   * doc/es/binnum.txt
   * doc/es/nation.txt
   * doc/es/var.txt
   * doc/es/tclass.txt
   * doc/es/dbstrux.txt
   * doc/es/misc.txt
   * doc/es/datetime.txt
   * doc/es/sayget.txt
   * doc/es/memo.txt
   * doc/es/readme.txt
   * doc/es/tgetlist.txt
   * doc/readme.txt
   * contrib/hbct/ctnet.c
   * contrib/hbct/video.c
   * contrib/hbct/dattime3.c
   * contrib/hbct/color.c
   * contrib/hbnf/acctyear.prg
   * contrib/hbnf/byteneg.prg
   * contrib/hbnf/isshare.prg
   * contrib/hbnf/sinkey.prg
   * contrib/hbnf/dhkey.h
   * contrib/hbnf/kspeed.c
   * contrib/hbnf/prtscr.c
   * contrib/hbnf/descendn.c
   * contrib/hbnf/peek.c
   * contrib/hbnf/scancode.prg
   * contrib/hbnf/vidmode.prg
   * contrib/hbnf/nwsem.prg
   * contrib/hbnf/acctadj.prg
   * contrib/hbnf/week.prg
   * contrib/hbnf/vidcur.prg
   * contrib/hbnf/iamidle.c
   * contrib/hbnf/prtesc.prg
   * contrib/hbnf/miltime.prg
   * contrib/hbnf/proper.c
   * contrib/hbnf/acctmnth.prg
   * contrib/hbnf/savearr.prg
   * contrib/hbnf/rand1.prg
   * contrib/hbnf/madd.prg
   * contrib/hbnf/dispmsg.prg
   * contrib/hbnf/settime.prg
   * contrib/hbnf/restsets.prg
   * contrib/hbnf/page.prg
   * contrib/hbnf/byt2bit.prg
   * contrib/hbnf/setkeys.c
   * contrib/hbnf/month.prg
   * contrib/hbnf/byt2hex.prg
   * contrib/hbnf/findith.prg
   * contrib/hbnf/at2.prg
   * contrib/hbnf/acctweek.prg
   * contrib/hbnf/dispc.c
   * contrib/hbnf/gcd.prg
   * contrib/hbnf/pegs.prg
   * contrib/hbnf/min2dhm.prg
   * contrib/hbnf/acctqtr.prg
   * contrib/hbnf/numlock.c
   * contrib/hbnf/dosver.prg
   * contrib/hbnf/nooccur.prg
   * contrib/hbnf/dayofyr.prg
   * contrib/hbnf/metaph.prg
   * contrib/hbnf/ontick.c
   * contrib/hbnf/menu1.prg
   * contrib/hbnf/byteand.prg
   * contrib/hbnf/sqzn.prg
   * contrib/hbnf/bytexor.prg
   * contrib/hbnf/ftidle.c
   * contrib/hbnf/workdays.prg
   * contrib/hbnf/byteor.prg
   * contrib/hbnf/asum.prg
   * contrib/hbnf/shift.c
   * contrib/hbnf/sleep.prg
   * contrib/hbnf/wda.prg
   * contrib/hbnf/aavg.prg
   * contrib/hbnf/woy.prg
   * contrib/hbnf/origin.c
   * contrib/hbnf/any2any.prg
   * contrib/hbnf/chdir.c
   * contrib/hbnf/adessort.prg
   * contrib/hbnf/setdate.prg
   * contrib/hbnf/netpv.prg
   * contrib/hbnf/amedian.prg
   * contrib/hbnf/blink.prg
   * contrib/hbnf/stod.c
   * contrib/hbnf/vertmenu.prg
   * contrib/hbnf/qtr.prg
   * contrib/hbnf/linked.prg
   * contrib/hbnf/n2color.c
   * contrib/hbnf/aredit.prg
   * contrib/hbnf/alt.c
   * contrib/hbnf/xbox.prg
   * contrib/hbnf/ftround.prg
   * contrib/hbnf/hex2dec.prg
   * contrib/hbnf/nwuid.prg
   * contrib/hbnf/dectobin.prg
   * contrib/hbnf/bitset.prg
   * contrib/hbnf/aemaxlen.prg
   * contrib/hbnf/nwlstat.prg
   * contrib/hbnf/invclr.prg
   * contrib/hbnf/ctrl.c
   * contrib/hbnf/lastday.prg
   * contrib/hbnf/tempfile.prg
   * contrib/hbnf/diskfunc.prg
   * contrib/hbnf/scregion.prg
   * contrib/hbnf/mouse2.prg
   * contrib/hbnf/d2e.prg
   * contrib/hbnf/ftisprn.c
   * contrib/hbnf/pickday.prg
   * contrib/hbnf/firstday.prg
   * contrib/hbnf/daytobow.prg
   * contrib/hbnf/anomatch.prg
   * contrib/hbnf/pvid.prg
   * contrib/hbnf/isbiton.prg
   * contrib/hbnf/color2n.c
   * contrib/hbnf/isbit.prg
   * contrib/hbnf/putkey.c
   * contrib/hbnf/cntryset.prg
   * contrib/hbnf/datecnfg.prg
   * contrib/hbnf/getenvrn.c
   * contrib/hbnf/easter.prg
   * contrib/hbnf/bytenot.prg
   * contrib/hbnf/ntow.prg
   * contrib/hbnf/poke.c
   * contrib/hbnf/aeminlen.prg
   * contrib/hbnf/floptst.prg
   * contrib/hbnf/pchr.prg
   * contrib/hbnf/savesets.prg
   * contrib/hbnf/mkdir.c
   * contrib/hbnf/year.prg
   * contrib/hbnf/caplock.c
   * contrib/hbnf/rmdir.c
   * contrib/hbnf/calendar.prg
   * contrib/hbnf/e2d.prg
   * contrib/hbnf/elapsed.prg
   * contrib/hbnf/sysmem.prg
   * contrib/hbnf/bitclr.prg
   * contrib/hbnf/eltime.prg
   * contrib/hbnf/aading.prg
   * contrib/hbnf/dfile.prg
   * contrib/hbnf/elapmil.prg
   * contrib/hbnf/setlastk.c
   * contrib/hbnf/pending.prg
   * contrib/hbnf/clrsel.prg
   * contrib/rddads/doc/en/adsfuncs.txt
   * contrib/rddads/doc/en/readme.txt
   * contrib/hbclip/hbclip.ch
   * contrib/hbclip/readme.txt
   * contrib/hbmisc/doc/en/ht_dbf.txt
   * utils/hbdoc/rtf.prg
   * utils/hbdoc/fclass1.prg
   * utils/hbdoc/genos2.prg
   * utils/hbdoc/genng.prg
   * utils/hbdoc/genasc.prg
   * utils/hbdoc/genchm.prg
   * utils/hbdoc/os2.prg
   * utils/hbdoc/ng.prg
   * utils/hbdoc/genhpc.prg
   * utils/hbdoc/html.prg
   * utils/hbdoc/ffile1.prg
   * utils/hbdoc/ft_funcs.prg
   * utils/hbdoc/hbdoc.prg
   * utils/hbdoc/troff.prg
   * utils/hbdoc/genhtm.prg
   * utils/hbdoc/genpdf1.prg
   * utils/hbdoc/gentrf.prg
   * utils/hbdoc/genrtf.prg
   * utils/hbmake/fclass1.prg
   * utils/hbmake/prb_stak.prg
   * utils/hbmake/ffile1.prg
   * utils/hbmake/ft_funcs.prg
   * utils/hbmake/pickfile.prg
   * utils/hbmake/hbmutils.prg
     * More cleanups, formatting (filename casing, CA-Cl*pper, etc).
2008-08-19 13:11:22 +00:00
Viktor Szakats
097ae961f2 2008-08-17 17:00 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/examples/guestbk/guestbk.ini
   * contrib/examples/guestbk/testcgi.prg
   * contrib/examples/hscript/hscript.prg
   * contrib/examples/pp/hbppdef.h
   * contrib/examples/pp/hbpptbl.c
   * contrib/gtwvg/tests/demowvg.prg
   * contrib/gtwvg/wvgclass.prg
   * contrib/hbapollo/tests/apollo.prg
   * contrib/hbgd/ChangeLog
   * contrib/hbgt/doc/gendoc.bat
   * contrib/hbmisc/doc/gendoc.bat
   * contrib/hbvpdf/hbvpdf.prg
   * contrib/hbvpdf/hbvpdft.prg
   * contrib/hbwhat32/_winclpb.c
   * contrib/hbwhat32/_windate.c
   * contrib/hbwhat32/_windc.c
   * contrib/hbwhat32/_windir.c
   * contrib/hbwhat32/_windraw.c
   * contrib/hbwhat32/_wingdi.c
   * contrib/hbwhat32/_winmisc.c
   * contrib/hbwhat32/_winpen.c
   * contrib/hbwhat32/_winprn.c
   * contrib/hbwhat32/_winrect.c
   * contrib/hbwhat32/_winrgn.c
   * contrib/hbwhat32/_winsock.c
   * contrib/hbwhat32/_wintbar.c
   * contrib/hbwhat32/import.ch
   * contrib/hbwhat32/sqltypes.ch
   * contrib/hbwhat32/windebug.prg
   * contrib/hbwhat32/winerror.prg
   * contrib/hbwhat32/winini.prg
   * contrib/hbwhat32/winrbar.prg
   * contrib/hbwhat32/winstruc.ch
   * contrib/hbwhat32/wintbar.prg
   * contrib/hbziparch/hbziparc.c
   * contrib/rddads/doc/gendoc.bat
   * doc/cmdline.txt
   * doc/dirstruc.txt
   * doc/en/cmdline.txt
   * doc/en/dbstrux.txt
   * doc/en/dir.txt
   * doc/en/file.txt
   * doc/en/rddord.txt
   * doc/es/dbstrux.txt
   * doc/es/file.txt
   * doc/es/hbpplib.txt
   * doc/howtomak.txt
   * doc/hrb_faq.txt
   * doc/windll.txt
   * include/dbinfo.ch
   * source/debug/dbghelp.prg
   * source/vm/classes.c
   * source/vm/hvm.c
   * tests/keywords.ch
   * tests/output.prg
   * tests/statics1.prg
   * tests/statics2.prg
   * tests/test_all.prg
   * tests/testcgi.prg
   * tests/testpre.prg
   * tests/testrdd2.prg
   * utils/hbmake/hbmake.prg
   * utils/hbmake/hbmutils.prg
     ! Some filename casing related fixes, cleanups.
     * Some non-ASCII drawing chars in comments changed to ASCII ones.
2008-08-17 15:04:11 +00:00
Przemyslaw Czerpak
c384b23f25 2007-09-27 15:29 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/contrib/rdd_ads/ads1.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/sdf1.c
    + added support for DBI_POSITIONED flag. Because some RDDs may not
      support phantom record then checking for EOF() does not have to
      be enough to detect that the cursor is positioned to phantom
      record. Checking for RecNo() == LastRec() + 1 does not have to
      work either because some RDD may use not use continuous record
      numbers f.e. ADT. So in code like BROWSE() if you want to be sure
      that current record is phantom one then (!dbInfo(DBI_POSITIONED))
      should be used.
2007-09-27 13:30:20 +00:00
Przemyslaw Czerpak
3ea86f8269 2007-09-25 03:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbset.h
  * harbour/source/rtl/set.c
    * changed recently added hb_set*() functions to hb_setGet*()
      Please do not use these functions yet - it's possible that
      they will be removed soon.
    + added hb_setGetL(), hb_setGetCPtr(), hb_setGetNI(), hb_setGetNL()

  * harbour/contrib/libct/dattime2.c
  * harbour/contrib/samples/date.c
    * use hb_setGetCentury() instead of hb_setGetL( hb_set_century )
      we do not have hb_set_century SET switch so hb_setGetL() cannot
      be used

  * harbour/harbour.spec
  * harbour/bin/hb-func.sh
  * harbour/bin/pack_src.sh
  * harbour/contrib/Makefile
  + harbour/contrib/xhb
  + harbour/contrib/xhb/hboutdbg.c
  + harbour/contrib/xhb/cstruct.ch
  + harbour/contrib/xhb/hblog.prg
  + harbour/contrib/xhb/hblog.ch
  + harbour/contrib/xhb/hblognet.prg
  + harbour/contrib/xhb/hbxml.c
  + harbour/contrib/xhb/hbxml.h
  + harbour/contrib/xhb/hbxml.ch
  + harbour/contrib/xhb/hblogdef.ch
  + harbour/contrib/xhb/hbctypes.ch
  + harbour/contrib/xhb/wintypes.ch
  + harbour/contrib/xhb/txml.prg
  + harbour/contrib/xhb/hbsyslog.c
  + harbour/contrib/xhb/cstructc.c
  + harbour/contrib/xhb/Makefile
  + harbour/contrib/xhb/cstruct.prg
  + harbour/contrib/xhb/xhbfunc.c
    + added XHB library with xharbour compatible functions borrowed from
      xHarbour. Now it contains HBLOG, HBXML, HBCSTRUCT, HASH, INET*()
      functions and classes.

  * harbour/source/rtl/itemseri.c
  * harbour/source/rtl/strmatch.c
  * harbour/source/rtl/hbinet.c
  * harbour/source/vm/hashfunc.c
     * moved xHarbour compatible functions to XHB library

  * harbour/source/vm/classes.c
     + added support for ERROR HANDLER message in scalar classes

  * harbour/contrib/tip/mail.prg
  * harbour/contrib/tip/ftpcln.prg
    + added #include "hbcompat.ch"

  * harbour/include/hbdbferr.h
    + added new RT errors: EDBF_CREATE_TEMP, EDBF_WRITE_TEMP, EDBF_READ_TEMP

  * harbour/include/dbinfo.ch
    + added DBI_ENCRYPT, DBI_DECRYPT, DBI_MEMOPACK, DBI_DIRTYREAD
    + added DBOI_INDEXTYPE, DBOI_USECURRENT
    + added RDDI_LOCKRETRY, RDDI_DIRTYREAD

  * harbour/include/dbinfo.ch
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddfpt.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddntx.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    + added support for MEMOPACK, table ENCRYPT/DECRYPT, index DIRTYREAD

  * harbour/include/hbapirdd.h
  * harbour/include/dbstruct.ch
  * harbour/include/hbusrrdd.ch
  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/ace.h
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/wafunc.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/delim1.c
    * changed HB_IT_* as field type to HB_FT_*
    + added field flags HB_FF_*
    + added support for new field types to core code

  * harbour/source/rdd/dbf1.c
    + added support for AUTOINC (+), ROWVERSION (^), TIME (T), DAYTIME (@)
      and MODTIME (=) fields

  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/ace.h
    + added support for ROWVERSION (^), and MODTIME (=) fields

  ! harbour/source/rdd/dbcmd.c
    * fixed bug in dbSkipper() reported by Viktor

  + harbour/include/hbsix.ch
  * harbour/source/rdd/hbsix/Makefile
  * harbour/source/rdd/hbsix/sxdate.c
  * harbour/source/rdd/hbsix/sxcompr.c
  * harbour/source/rdd/hbsix/sxcrypt.c
  + harbour/source/rdd/hbsix/sxsem.c
  + harbour/source/rdd/hbsix/sxord.c
  + harbour/source/rdd/hbsix/sxredir.c
  + harbour/source/rdd/hbsix/sxfname.c
  + harbour/source/rdd/hbsix/sxtable.c
  + harbour/source/rdd/hbsix/sxutil.c
  + harbour/source/rdd/hbsix/sxcompat.prg
  + harbour/source/rdd/hbsix/sxtrig.prg
  + harbour/source/rdd/hbsix/sxini.prg
    + added SIx3 compatible functions:
         RDD_Count(), RDD_Name(), RDD_Info(), SetRDD(),
         sxChar(), sxNum(), sxDate(), sxLog(),
         Sx_DToP(), Sx_PToD(),
         Sx_BLOB2File(), Sx_File2BLOB(),
         Sx_Compress(), Sx_Decompress(),
         Sx_FCompress(), Sx_FDecompress(),
         Sx_AutoOpen(), Sx_AutoShare(),
         Sx_MemoExt(), Sx_MemoBlk(), Sx_SetMemoBlock(), Sx_MemoPack(),
         Sx_SetTrigger(), Sx_SetTrig(), Sx_DefTrigger(), 
         Sx_INIheader(), _sx_INIinit(), _sxOpenInit(),
         Sx_SetPass(),
         Sx_Encrypt(), Sx_Decrypt(), Sx_DBFdecrypt(), Sx_DBFencrypt(),
         sx_MakeSem(), sx_KillSem(), sx_IsSem(),
         Sx_ClrScope(), Sx_SetScope(),
         Sx_Freeze(), Sx_Warm(), Sx_Chill(), Sx_Thermometer(),
         Sx_IsReindex(), Sx_Step(), Sx_KeysIncluded(),
         Sx_I_IndexName(), Sx_I_TagName(),
         Sx_IndexCount(), Sx_IndexName(), Sx_IndexType(), Sx_IndexFilter(),
         Sx_ROXLock(), Sx_ROXUnLock(), Sx_IsMyROX(), Sx_IsROXLock(),
         Sx_KeyAdd(), Sx_KeyDrop(), Sx_KeyData(),
         Sx_KeySkip(), Sx_KeyCount(), Sx_KeyNo(), Sx_KeyGoto(),
         Sx_WildSeek(), Sx_WildMatch(),
         Sx_IsFLocked(), Sx_IsReadOnly(), Sx_IsShared(),
         Sx_IsLocked(), Sx_IsDBT(),
         Sx_IDtype(), Sx_TableType(), Sx_TableName(),
         Sx_SetTurbo(), Sx_TurboArea(), Sx_SetDirty(), Sx_DirtyArea(),
         Sx_RLock(), Sx_UnLock(), Sx_GetLocks(), Sx_LockRetry(),
         Sx_SeekLast(), Sx_FindRec(),
         Sx_SkipUnique(), Sx_TagUnique(),
         Sx_TagCount(), Sx_TagOrder(), Sx_TagNo(), Sx_TagName(),
         Sx_TagInfo(), Sx_Tags(),
         Sx_SetTag(), Sx_SetTagOrder(), Sx_SetTagNo(),
         Sx_KillTag(),
         Sx_FileOrder(), Sx_SetFileOrd(), Sx_ClearOrder(),
         Sx_VSigLen(), Sx_VFGet(),
         Sx_dbCreate(), Sx_StrxCheck(), Sx_Rollback(), Sx_SortOption(),
         _sxCondSet(),
         Sx_FNameParser(), Sx_SlimFast(),
         Sx_Version(), Sx_Error(),

    + added SIx3 compatible commands:
         SET DIRTYREAD ON|OFF
         USE ... [TRIGGER <cTrigger>] [PASSWORD <cPassword>]
         SORT ... USECURRENT
         WILDSEEK <str>
         WILDSEEKNEXT <str>
         CLEAR ORDER <order>
         SET TAGORDER TO [<order>]
         SET ORDER TO TAG <(tag)> [OF <(bag)>]
         SET TAG TO [<tag> [OF <(bag)>]]
         REINDEX OPTION <eval> [STEP <step>]
         DELETE TAG <(tag1)> [OF <(bag1)>] [, <(tagN)> [OF <(bagN)>]]
         DELETE TAG ALL [OF <(bag)>]
         CLEAR SCOPE
         SET SCOPETOP TO [<value>]
         SET SCOPEBOTTOM TO [<value>]
         SET SCOPE TO [<value>]
         SET TURBOREAD ON|OFF
         MEMOPACK [BLOCK <size>] [OPTION <opt> [STEP <step>]]
         SET MEMOBLOCK TO <value>
         SUBINDEX ON <key> TO <(file)> ;
               [OPTION <eval> [STEP <every>]] [FILTERON] [EMPTY]
         SUBINDEX ON <key> TAG <(tag)> [OF <(bag)>] [TO <(bag)>] ;
               [OPTION <eval> [STEP <every>]] [FILTERON] [EMPTY]
         INDEX ON <key> [TAG <(tag)>] TO <(bag)> ;
               [OPTION <eval> [STEP <every>]] [FILTERON] [EMPTY] [SUBINDEX]
         INDEX ON <key> TAG <(tag)> [OF <(bag)>] [TO <(bag)>] ;
               [OPTION <eval> [STEP <every>]] [FILTERON] [EMPTY] [SUBINDEX]

      Unlike Ads*() functions the Sx_*() ones can be used with any RDD
      and will work if RDD supports necessary functionality.

      The global settings in SIx3 are RDD dependent in Harbour, f.e.
      in SIx3 Sx_MemoExt() change MEMO file extensions in all SIX* RDDs
      but in Harbour only in default RDD driver.
      In Harbour default trigger function "Sx_DefTrigger" is not
      enabled by default. If user needs such functionality then he
      has to enable it himself using
         rddInfo( RDDI_TRIGGER, "SX_DEFTRIGGER", [<cRDD>] )
      f.e. this code:
         init procedure sx_inittrig()
            local aRDDs := { "DBF", "DBFNTX", "DBFCDX", "SIXCDX", ;
                             "RMDBFNTX", "RMDBFCDX" }
            local aRDDList := RddList(), cRdd

            for each cRdd in aRDDs
               if ascan( aRDDList, { |x| x == cRdd } ) != 0
                  rddInfo( RDDI_TRIGGER, "SX_DEFTRIGGER", cRDD )
               endif
            next
         return
      sets SX_DEFTRIGGER as default trigger in DBF* based RDDs.

      I still do not allow to encrypt tables with memo fields to not
      replicate SIx3 bugs which may cause data corruption.
2007-09-25 01:21:03 +00:00
Przemyslaw Czerpak
f7b2b9a553 2007-09-13 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  + harbour/include/hbsxdef.ch
  * harbour/include/dbinfo.ch
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddntx.h
  * harbour/contrib/bmdbfcdx/hbrddbmcdx.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/workarea.c
    + added SIx3 compatible triggers support
      They should work like in SIx3 with some intentional excpetions:
         1) if 4-th parameter exists (PREUSE/GET/PUT) then it's passed by
            reference otherwise is not passed at all and PCOUNT() in trigger
            functions returns 3
            SIx3 do not pass 4-th parameter by reference and if it not
            exist then passes 0
         2) EVENT_POSTCLOSE is executed after SUPER_CLOSE()
            SIx3 executes EVENT_POSTCLOSE just before SUPER_CLOSE()
         3) EVENT_UPDATE is executed _ALWAYS_ when DBF is updated also
            when WA does not have open indexes
            SIx3 executes EVENT_UPDATE only when at least one index is
            open without checking if it's updated or not
         4) EVENT_POSTUSE is executed from OPEN() method in "DBF" RDD not
            from index RDDs so before the indexes are open
            SIx3 executes EVENT_POSTUSE after opening indexes
            It's possible that I'll change this condition in the future
2007-09-13 14:40:24 +00:00
Przemyslaw Czerpak
9dc35d9cef 2007-09-10 17:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/source/rdd/workarea.c
    * renamed RDDI_TRIGGERS to RDDI_TRIGGER
    + added RDDI_PENDINGTRIGGER, RDDI_PENDINGPASSWORD,
      DBI_TRIGGER, DBI_OPENINFO
    * do not generate RT error in WA default ORDERINFO() method

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/hbini.prg
    + added HB_ReadIni()/HB_WriteIni() - code by Giancarlo Niccolai
      borowed from xHarbour with some minor fixes
2007-09-10 15:27:10 +00:00
Przemyslaw Czerpak
5bc389f293 2007-09-08 15:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
    * updated comment

  * harbour/contrib/rdd_ads/ads1.c
    * replaced hb_itemGetPtr(hb_param(n,HB_IT_POINTER)) with hb_parptr(1)

  * harbour/contrib/hbzlib/hbcomprs.c
    * changed variable name: PHB_FNAME fDirSpec to PHB_FNAME pDirSpec

  * harbour/source/rdd/dbcmd.c
    ! fixed parameter checking in OrdNumber() to generate Clipper compatible
      RT error
    * code cleanup

  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * do not evaluate KEY expresion in custom indexes in KEYDEL operation.
      It may interact with MULTIKEY/TEMPLATE indexes.
    * updated default order in DBOI_BAGNUMBER and DBOI_BAGORDER
2007-09-08 13:15:37 +00:00
Przemyslaw Czerpak
35ca6dae33 2006-06-07 16:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbrddcdx.h
  * harbour/include/hbrdddbf.h
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * cleaned // comments and some compiler warnings

  * harbour/include/dbinfo.ch
  * harbour/source/rdd/dbf1.c
    ! fixed setting [V]FP DBF table type

  * harbour/source/vm/arrays.c
    ! fixed ADEL() to clear last element
    % optimized a little bit AINS() - use hb_itemMove() instead of
      hb_itemCopy()
2006-06-07 14:41:08 +00:00
Przemyslaw Czerpak
8bc1e2f652 2006-04-15 20:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  + harbour/include/blob.ch
  * harbour/include/dbinfo.ch
  * harbour/include/hbdbferr.h
  * harbour/include/hbrddfpt.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    + added all CL5.3 BLOB*() functions support
    + added new RDD DBFBLOB compatible with CL5.3 DBFBLOB
      It operates on memo files only (.dbv) without tables (.dbf)
      To create .DBV file use:
         dbCreate( cFile, {}, "DBFBLOB" )

  * harbour/source/rdd/dbcmd.c
    * do not report error when empty structure table is passed to DBCREATE()
      CL5.3 allow to create even DBF files without any fields and because
      I can imagine some valid code which use it as a feature then I also
      allow it in DBF RDD.
      Authors of RDDs which do not allow to create tables without fields
      should add to their low level RDD code necessary RT error.
2006-04-15 18:51:38 +00:00
Przemyslaw Czerpak
0638d0237e 2006-03-01 21:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/dbinfo.ch
  * harbour/source/rdd/workarea.c
    * added DBI_SCOPEDRELATION action. It alow to test if given
      relation on current work area sets scope on child index.
      F.e.: dbInfo( DBI_SCOPEDRELATION, 1 )
2006-03-01 20:22:14 +00:00
Ryszard Glab
691b3a9890 2005-09-23 15:45 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* changes to synhronize RDD code with xHarbour (state of 23.09.2005)
        Many, many thanks to Przemek Czerpak for his work.
2005-09-23 08:45:05 +00:00
Przemyslaw Czerpak
e31bdceeb4 2005-01-30 22:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* xharbour/contrib/rdd_ads/ace.h
    * small modification for OpenWatcom on Linux

  * xharbour/source/rdd/dbfntx/dbfntx1.c
    * minor fix: use *_GOTO( pArea, 0 ) instead
      of *_GOTO( pArea, pArea->ulRecCount+1000 )
    + use hb_fsSeekLarge() - for DBFs longer then 2GB

  * xharbour/include/hbrddcdx.h
  * xharbour/source/rdd/dbfcdx/dbfcdx1.c
    + use hb_fsSeekLarge() - for DBFs longer then 2GB
    * my last xHarbour modifications:
      improved indexing speed of DBFs with very big number of
      records. In small DBFs less then 100'000 records the new
      algorithm can even decrease the speed by ~0.5% due to static
      costs but in bigger it becomes faster. For 1'000'000 records
      DBFs is about 20% faster, for 10'000'000 records about twice
      faster. With bigger DBFs more. Please test it. If you will
      have any troubles (I hope not) then please comment out in
      dbfcdx.c:
        #define HB_CDX_NEW_SORT
      I should done it before when I was rewriting the indexing but
      sorry I was too lazy. Now I've found a while. Current cost of
      key comparisons is always n*log2(n) and cannot be more improved.
      Some small optimizations still can be done but the static cost
      for small database will be bigger then ~0.5% as in this case
      so I do not plan to do it in the nearest future.

  * harbour/include/dbinfo.ch
  * harbour/source/rdd/dbf1.c
    + use hb_fsSeekLarge() - for DBFs longer then 2GB
    * synched with xHarbour (added DBRI_RAW*)
    * do not call GOCOLD() inside CHILDSYNC() but do it in FORCEREL()
      the modification based on CL5.3 NG.
      Below is a note I lef in dbf1.c:
      /*
       * !!! The side effect of calling GOCOLD() inside CHILDSYNC() is
       * evaluation of index expressions (index KEY and FOR condition)
       * when the pArea is not the current one - it means that the
       * used RDD has to set proper work area before eval, DBFCDX does
       * but DBFNTX not yet - it should be changed.
       * IMHO GOCOLD() could be safely removed from this place but I'm not
       * sure it's Clipper compatible - I will have to check it, Druzus.
       */
      /*
       * I've checked in CL5.3 Technical Reference Guide that only
       * FORCEREL() should ensure that the work area buffer is not hot
       * and then call RELEVAL() - I hope it describes the CL5.3 DBF* RDDs
       * behavior so I replicate it - the GOCOLD() is moved from CHILDSYNC()
       * to FORCEREL(), Druzus.
       */

  * harbour/source/rdd/dbf0.prg
  * harbour/source/rdd/delim0.prg
  * harbour/source/rdd/rddsys.prg
  * harbour/source/rdd/sdf0.prg
  * harbour/source/rdd/dbfntx/dbfntx0.prg
    * formatting (adding EOL at EOF)

  * harbour/include/hbapifs.h
  * harbour/source/rtl/filesys.c
    * added hb_fsLockLarge() and hb_fsSeekLarge() which uses 64bit ofsets

  * harbour/source/rdd/workarea.c
    * set current work area to the used one in EVALBLOCK RDD method
      before code block evaluation

  * harbour/source/vm/harbinit.prg
  * harbour/source/vm/hvm.c
    + added hb_vmDoInitClip() which calls CLIPINIT function to initialize
      ErrorBlock() and __SetHelpK()
      Because on some platform the execution order of init functions
      is out of Harbour control then CLIPINIT has to be called explicitly
      in VM initialization process before hb_vmDoInitFunctions() and do not
      depends on INIT clause.
    * small modification in VM loop which gives noticeable speed-up
2005-01-30 21:11:50 +00:00
Przemyslaw Czerpak
ef0883bf02 2004-10-11 21:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/Makefile
  + harbour/make_bsd.sh
  + harbour/make_drw.sh
  * harbour/make_tgz.sh
  + harbour/bin/hb-func.sh
  * harbour/bin/pack_src.sh
  + harbour/bin/postinst.bat
  + harbour/bin/postinst.sh
  * harbour/config/dir.cf
  * harbour/config/bsd/gcc.cf
  * harbour/config/bsd/global.cf
  + harbour/config/darwin/dir.cf
  + harbour/config/darwin/gcc.cf
  + harbour/config/darwin/global.cf
  + harbour/config/darwin/install.cf
  * harbour/config/dos/dir.cf
  * harbour/config/dos/global.cf
  * harbour/config/dos/install.cf
  * harbour/config/dos/owatcom.cf
  * harbour/config/dos/watcom.cf
  * harbour/config/linux/gcc.cf
  * harbour/config/linux/global.cf
  * harbour/contrib/Makefile
  * harbour/contrib/dot/pp_harb.ch
  * harbour/contrib/libct/Makefile
  * harbour/contrib/libct/bit1.c
  * harbour/contrib/libct/bit2.c
  * harbour/contrib/libct/bit3.c
  * harbour/contrib/libct/files.c
  * harbour/contrib/libct/ftoc.c
  - harbour/contrib/libct/invertwin.prg
  + harbour/contrib/libct/invrtwin.prg
  * harbour/contrib/libct/keyset.c
  * harbour/contrib/libct/makefile.bc
  * harbour/contrib/libmisc/dates2.c
  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/adsfunc.c
  * harbour/contrib/samples/date.c
  * harbour/include/dbinfo.ch
  * harbour/include/hbapi.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbapifs.h
  * harbour/include/hbapigt.h
  * harbour/include/hbapiitm.h
  * harbour/include/hbcomp.h
  * harbour/include/hbdate.h
  * harbour/include/hbdbf.h
  * harbour/include/hbdbferr.h
  * harbour/include/hbdefs.h
  * harbour/include/hbexprb.c
  * harbour/include/hbexprc.c
  * harbour/include/hbexprop.h
  * harbour/include/hbmacro.h
  * harbour/include/hbmath.h
  * harbour/include/hbpcode.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrdddbt.h
  * harbour/include/hbrddfpt.h
  * harbour/include/hbrddntx.h
  * harbour/include/hbset.h
  * harbour/include/hbsetup.h
  * harbour/include/set.ch
  * harbour/source/common/Makefile
  * harbour/source/common/expropt1.c
  * harbour/source/common/expropt2.c
  - harbour/source/common/hbffind.c
  * harbour/source/common/hbfsapi.c
  * harbour/source/common/hbstr.c
  * harbour/source/common/hbver.c
  + harbour/source/common/hbverdsp.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/harbour.c
  * harbour/source/compiler/harbour.l
  * harbour/source/compiler/harbour.slx
  * harbour/source/compiler/harbour.sly
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbusage.c
  * harbour/source/compiler/simplex.c
  * harbour/source/macro/macro.l
  * harbour/source/macro/macro.slx
  * harbour/source/macro/macro.y
  * harbour/source/pp/ppcore.c
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  - harbour/source/rdd/dbfcdx/dbfcdx1.h
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rtl/Makefile
  * harbour/source/rtl/abs.c
  * harbour/source/rtl/at.c
  * harbour/source/rtl/datec.c
  * harbour/source/rtl/dates.c
  * harbour/source/rtl/dateshb.c
  * harbour/source/rtl/datesx.c
  * harbour/source/rtl/empty.c
  * harbour/source/rtl/errorapi.c
  * harbour/source/rtl/errorint.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/fstemp.c
  + harbour/source/rtl/hbffind.c
  * harbour/source/rtl/hbrandom.c
  * harbour/source/rtl/idle.c
  * harbour/source/rtl/inkey.c
  * harbour/source/rtl/math.c
  * harbour/source/rtl/minmax.c
  * harbour/source/rtl/pad.c
  * harbour/source/rtl/padc.c
  * harbour/source/rtl/padl.c
  * harbour/source/rtl/padr.c
  * harbour/source/rtl/philes.c
  * harbour/source/rtl/round.c
  * harbour/source/rtl/soundex.c
  * harbour/source/rtl/str.c
  * harbour/source/rtl/strcase.c
  * harbour/source/rtl/strmatch.c
  * harbour/source/rtl/strtran.c
  * harbour/source/rtl/strzero.c
  * harbour/source/rtl/substr.c
  * harbour/source/rtl/val.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtcrs/kbdcrs.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/kbsln.c
  * harbour/source/rtl/gtsln/keytrans.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/eval.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/runner.c
  * harbour/tests/bldtest/bldtest.c
  * harbour/utils/hbtest/hbtest.prg
  * harbour/utils/hbtest/rt_misc.prg
  * harbour/utils/hbtest/rt_str.prg
   * Sorry but it's too much modification for full description
     cvs diff gives file 785982 bytes length. So I only count the
     main things:
   ! cleand the code (no more warning messages under Linux and GCC and
     DOS OpenWatcom) - some of them were real bugs
   ! cleaned all endian dependend code I've found - now Harbour can be
     compiled on LITLE and BIG endian machines - for some other like
     PDP ENDIAN it's enough to define proper macros in hbdefs.h
   + added macros for to get/put values in chosen byte order:
         HB_GET_LE_[U]INT{16,24,32,64}( pPtr )
         HB_GET_BE_[U]INT{16,24,32,64}( pPtr )
         HB_PUT_LE_[U]INT{16,24,32,64}( pPtr, nVal )
         HB_PUT_BE_[U]INT{16,24,32,64}( pPtr, nVal )
   + added macro HB_CAST_BYTE_NUMBERS_OFF which disables casting in
     HB_{GET|PUT}_{LE|BE}_* macros - it's necessary for some platforms
     like ALPHA DEC.
   ! cleaned the code for 64bit machines
   * changed all parameters in hb_date* functions (day, month, year, week)
     from LONG to int - it doesn't change binary compatibility for 32bit
     machines but can cause troubles with compiling the old source
   + changed HB_IT_LONG type to HB_LONG which is mapped to long long
     by default for 32 bit machines.
   + change HB_IT_INTEGER to be real 'int' C type not 'short int'
   + added HB_IS_NUMINT() macro
   + added hb_parnll, hb_stornll, hb_retnll, hbretnlllen, hb_itemPutNLL,
     hb_itemPutNLLLen, hb_itemGetNLL which operates on LONGLONG
   + added hb_parnint, hb_stornint, hb_retnint, hb_retnintlen,
     hb_itemPutNInt, hb_itemPutNIntLen, hb_itemGetNInt which operates on
     HB_LONG
   + added HB_PUSHLONGLONG pcode
   + changed compiler and optimizer to use HB_LONG numbers and reduce
     conversion from to double which may damage the 64bit number.
   + common functions for string to number conversions for compiler, RTL
     and RDD to reduce problems with differ FL values for the same number:
     hb_compStrToNum(), hb_valStrnToNum(), hb_strToNum(), hb_strnToNum()
   + common function hb_numRoun() which uses exactly the same algorithms
     as string to number conversion for the same reason - please keep
     this functions together.
   + hack inside hb_numRound() similar to the one used by CL5.3
   + hb_numInt() which uses uses the same hack as hb_numRound()
   + rewritten number to string conversion
   + some new string manipulation functions hb_strncpy(), hb_strncat(), ...
     They works differ the the C one - always set 0 at the end, the buffer
     has to be n+1 bytes length, the n is total size of buffer not the
     left free space.
   ! cleaned some code which operates on ASCIIZ string to avoid potential
     buffer overflow
   + updated RDD code - it's the first part - in few days I plan to change
     workarea structure in both projects - it will break any 3rd party RDDs
     so they have to be updated. I want to add SUPERTABLE into workarea
     to allow creating new RDD on-line.
   ! cleaned the bugs with negating integers - on most machines (like x86)
     the integers are not 0 symmetric - it means that x = -x does not work
     for {INT,LONG,LONGLONG}_MIN (hb_vmNegate, ABS())
   + cleaned error messages to be Clipper compatible.
   + updated build process for .DEB packages - now hb* scripts and shared
     libs are created by standard make install
   * added new .prg #defines: __PLATFORM__<cPlatfrom>,
     __ARCH{16|32|64}BIT__, __LITTLE_ENDIAN__|__BIG_ENDIAN__|__PDP_ENDIAN__
     !!! cPlatfrom can have lower letters (for xHarbour compatibility)
     If you do not like it please change it.
   * others ...
2004-10-11 20:44:30 +00:00
Alexander S.Kresin
a1c34af07c 2004-03-24 22:10 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2004-03-24 19:01:06 +00:00
Brian Hays
443d4f27b5 2002-10-16 1:50 UTC-0800 Brian Hays <bhays@abacuslaw.com> 2002-10-16 08:54:39 +00:00
Brian Hays
052615e4c8 2002-10-14 0:10 UTC-0800 Brian Hays <bhays@abacuslaw.com> 2002-10-14 07:19:27 +00:00