Commit Graph

1093 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
a3fc484d14 2007-11-07 13:53 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/pp/ppcore.c
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/cdpapi.c
  * harbour/source/rtl/mlcfunc.c
  * harbour/source/vm/classes.c
  * harbour/source/common/reserved.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/hbfunchk.c
    * cleaned possible dangerous code reported by Chen - many thanks
2007-11-07 12:53:20 +00:00
Przemyslaw Czerpak
7aa8292529 2007-11-04 19:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcomp.h
  * harbour/include/hbmacro.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/harbour.y
  * harbour/source/vm/macro.c
  * harbour/source/vm/garbage.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/classes.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rtl/binnum.c
  * harbour/source/rtl/gtwvt/gtwvt.c
    * added explicit casting or changed some declarations to avoid
      warning about possible data lost in conversions
  * harbour/source/rtl/direct.c
    % optimized directory array creation and fixed one TOFIX note

   I left few warnings intentionally to mark places which should be
   updated in the future (f.e. HB_SYMBOLSCOPE translations).
   Victor, if you can please make build test with MSVC builds and
   send the list of warnings which still exist to harbour-devel.
2007-11-04 18:21:17 +00:00
Przemyslaw Czerpak
13427dd60a 2007-11-03 02:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/bmdbfcdx/bmdbfcdx1.c
    * replaced all direct access to hb_set structure with functions
      Now it's possible to link bmdbfcdx with harbour.dll but because
      it still access hb_cdp_page then only if linker supports auto
      import conversions

  * harbour/source/common/hbfsapi.c
  * harbour/source/main/harbour.c
  * harbour/source/pp/hbppgen.c
  * harbour/utils/hbpp/hbpp.c
    * added filename conversion (hb_fsNameConv()) to hb_fsFileExists()
      function

  * harbour/include/hbapifs.h
  + harbour/source/common/hbfopen.c
  * harbour/source/common/Makefile
  * harbour/common.mak
    + added hb_fopen() function - it's a wrapper to fopen() function but
      calls internally hb_fsNameConv()

  * harbour/source/pp/hbppgen.c
  * harbour/source/pp/ppcore.c
  * harbour/source/common/hbtrace.c
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/gencobj.c
  * harbour/source/compiler/genobj32.c
  * harbour/source/compiler/genc.c
  * harbour/source/rtl/gtchrmap.c
  * harbour/source/vm/fm.c
    * use hb_fopen() instead of fopen()
2007-11-03 01:35:47 +00:00
Przemyslaw Czerpak
55747014ee 2007-10-29 17:57 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour-ce-spec
  * harbour/make_xmingwce.sh
  * harbour/make_xmingw.sh
    * removed HOST_OS_UNIX_COMPATIBLE

  * harbour/makefile.gc
    * changed ppgen.c -> hbppgen.c

  * harbour/source/pp/hbppgen.c
  * harbour/source/vm/dynsym.c
    * fixed some typos in comment

  * harbour/source/rtl/hbcrc.c
    ! fixed casting
2007-10-29 16:58:14 +00:00
Przemyslaw Czerpak
32f17091b8 2007-10-26 03:46 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/include/hboo.ch
  * harbour/ChangeLog
  * harbour/utils/hbmake/hbmlang.c
  * harbour/utils/hbpp/hbppcore.c
  * harbour/utils/hbpp/hbpp.c
  * harbour/source/pp/ppcore.c
  * harbour/source/rtl/cdpapi.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtalleg/fixedth.sfc
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/idle.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/hbregex.c
  * harbour/source/vm/hvm.c
  * harbour/contrib/xhb/hboutdbg.c
  * harbour/contrib/xhb/hbxml.c
  * harbour/contrib/xhb/hbxml.h
  * harbour/contrib/xhb/cstructc.c
  * harbour/contrib/xhb/hbsyslog.c
  * harbour/contrib/libmisc/hb_f.c
  * harbour/contrib/libnf/fttext.c
  * harbour/contrib/libnf/mouse.c
  * harbour/contrib/tip/encmthd.c
  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/ace.h
  * harbour/contrib/btree/hb_btree.c
  * harbour/contrib/samples/status.c
  * harbour/contrib/samples/gauge.c
  * harbour/contrib/odbc/odbc.c
  * harbour/contrib/bmdbfcdx/hbrddbmcdx.h
  * harbour/contrib/bmdbfcdx/bmdbfcdx1.c
    * cleanup errors in strict ANSI C compilation
2007-10-26 01:47:21 +00:00
Viktor Szakats
e208b9a1d7 2007-10-24 03:54 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/vm.api
   * include/hbapi.h
   * include/clipdefs.h
   * common.mak
   * source/vm/Makefile
   + source/vm/vm.c
     + Added skeletons for CA-Cl*pper-like C-level VM API.
       Types slightly modified for portability and to support 
       larger memory than C5x.
2007-10-24 02:00:45 +00:00
Przemyslaw Czerpak
328f402a42 2007-10-23 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/source/vm/mainwin.c
  * harbour/source/common/hbwince.c
    ! fixed compilation with Unicode support and standard MS-Windows
2007-10-23 00:25:01 +00:00
Przemyslaw Czerpak
c99ac3d297 2007-10-18 23:54 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-mkslib.sh
  * harbour/bin/pack_src.sh
    * updated for recent Viktor's modifications

  * harbour/source/rtl/oemansix.c
    ! added missing #include "hbpai.h"

  * harbour/include/Makefile
  + harbour/include/hbwince.h
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrdddbt.h
  * harbour/include/hbdefs.h
  * harbour/include/hbsetup.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddfpt.h
  * harbour/contrib/xhb/hboutdbg.c
  * harbour/contrib/xhb/hbsyslog.c
  * harbour/contrib/xhb/xhbfunc.c
  * harbour/contrib/libct/ctnet.c
  * harbour/contrib/libct/files.c
  * harbour/contrib/libct/disk.c
  * harbour/contrib/libnf/getenvrn.c
  * harbour/contrib/win32/tprinter.c
  * harbour/contrib/win32/w32_ole.c
  * harbour/contrib/win32/w32_prn.c
  * harbour/contrib/odbc/odbc.c
  * harbour/source/pp/ppgen.c
  * harbour/source/rtl/diskspac.c
  * harbour/source/rtl/gtclip.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/oemansi.c
  * harbour/source/rtl/disksphb.c
  * harbour/source/rtl/fssize.c
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/net.c
  * harbour/source/rtl/gtgui/gtdef.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/source/vm/Makefile
  * harbour/source/vm/mainwin.c
  * harbour/source/vm/dynlibhb.c
  + harbour/source/vm/mainwin/Makefile
  * harbour/source/common/Makefile
  * harbour/source/common/hbgete.c
  * harbour/source/common/hbver.c
  + harbour/source/common/hbwince.c
  * harbour/utils/hbpp/hbpp.c
  * harbour/utils/hbdot/hbdot.prg
  * harbour/utils/hbver/hbverfix.c
    + added support for WinCE and PocketPC

  + harbour/make_xcemgw.sh
  + harbour/config/w32/cemgw.cf
  * harbour/bin/hb-mkslib.sh
  * harbour/bin/hb-func.sh
  * harbour/bin/postinst.sh
    + added support for CeGCC-MinGW32 port - those of you who want to
      create applications for WinCE on PockePC with ARM processors on
      Linux or MS-Windows can download from SF cegcc-mingw32ce port.
      User using RPM based Linux distribution for x86 CPUs can simply
      download cegcc-mingw32ce-0.50-1.i586.rpm and install it.
      The hb* scripts created by ./make_xcemgw.sh [tgz|gnu] are
      automatically updated to work with CeGCC-MinGW32 so later you
      can simply crate WinCE-ARM binaries using them as for native port.

     I'm waiting for users feedback. Please remember that I'm not Windows
     user and even this port was created without any Pocket machine.
     With Marek Paliwoda help I only tested that final applications are
     working using PocketPC emulator.
2007-10-18 21:55:39 +00:00
Viktor Szakats
8db0ce3340 2007-10-16 12:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/isprint.c
     ! Fixed ISPRINTER() on Win32 after last changes.
       Thanks Guillermo, pls test now.
   
   * source/rdd/dbcmd.c
     ! Marked as HB_EXTENSION: FIELDLEN(), FIELDDEC(), FIELDTYPE()

   * include/hbextern.ch
   * source/rdd/dbcmd.c
     ! Marked as HB_EXTENSION: DBDROP(), DBEXISTS(), RDDINFO()
       (they were properly marked in hbextern.ch but not in source)

   * include/hbextern.ch
   * source/rtl/disksphb.c
   * source/rtl/fssize.c
   * source/rtl/fstemp.c
   * source/rtl/inkey.c
   * source/rtl/oemansi.c
   * source/rtl/philes.c
   * source/rtl/setcolor.c
   * source/rtl/setfunc.prg
   * source/rtl/setkey.c
   * source/rtl/shadow.c
   * source/rtl/trace.c
   * source/rtl/valtostr.c
   * source/vm/dynsym.c
     + Removed HB_EXTENSION from all the .prg level functions 
       prefixed with HB_.
       (there was a mixed situation here, but there's no need 
       to mark any HB_ functions as extensions, as it's obvious 
       by their name. So as a rule, no HB_ prefixed function 
       should ever be marked as HB_EXTENSION anymore.)
     ! Fixed some inconsistencies in HB_EXTENSION between 
       hbextern.ch and actual sources.

   * source/rtl/tgetlist.prg
     * One HB_EXTENSION changed to !HB_C52_STRICT because it 
       was guarding a bugfix rather than a real extension.

   * source/rtl/gui.prg
     * _GetNumCol() is now always strictly compatible.
       NOTE added about sloppy C5.3 behaviour.

   * source/rtl/inkey.c
   * contrib/xhb/xhb.ch
   * contrib/xhb/xhbfunc.c
     ! __KEYBOARD() xhb hidden parameter extension moved to 
       xhb lib. For similar functionality inside Harbour 
       pls use HB_KEYPUT(). __KEYBOARD is now 100% C5.x 
       compatible.

   * source/rtl/setfunc.prg
     * __SetFunction() extension now uses HB_KEYPUT() instead 
       of __KEYBOARD() extended parameters.

   * source/compiler/hbfunchk.c
   * source/rtl/at.c
     ! AT() extra parameters handled when HB_EXTENSION is on 
       (was !HB_C52_STRICT). (The first extra parameter is 
       XPP and Flagship compatible. The three parameter version 
       of this function is called AT3() in CAVO.)
     ! TRIM()/RTRIM() extra parameters handled on compiler level 
       when HB_EXTENSION is on (default).
     ! FILE() parameter check turned off in compiler.
       (to be C5.x compatible)

   * source/rtl/alert.prg
     ! ALERT() Harbour extended parameter (1st parameter type) 
       is now guarded with HB_EXTENSION instead of HB_C52_STRICT.

   * source/rtl/gete.c
     ! GETE[NV]() Harbour extended parameter guarded with HB_EXTENSION.

   * source/vm/proc.c
     ! PROCFILE() Harbour extended parameter guarded with HB_EXTENSION.

   * source/rtl/mlcfunc.c
     ! Harbour extended parameters for MEMOLINE()/MLCOUNT()/
       MLPOS()/MLCTOPOS()/MPOSTOLC() are now guarded with HB_EXTENSION 
       (instead of HB_C52_STRICT). It seems to be possible to 
       specify custom EOLs for all these functions. (Maybe simple 
       automatic Unix/Win EOL style handling would be better here)

   * source/vm/memvars.c
     ! Guarded Harbour extension in __MVRESTORE() with HB_EXTENSION.

   ; After this cleanup:
     - HB_EXTENSION is marking extra features living inside existing C5.x 
                    functions or classes, or Harbour extension functions 
                    not complying with the HB_ prefix rule (we have six 
                    such functions in RDD). If there are more extended 
                    parameters in Harbour pls mark them with HB_EXTENSION 
                    too.
     - HB_C52_STRICT is guarding bugfixes compared to C5.x.
     - No HB_ functions are guarded with HB_EXTENSION anymore.
     - We'd pbly need to review each HB_EXTENSIONs to check whether they 
       are safe or not.
     - A list of HB_EXTENSIONs:
       - MLCOUNT()
         MEMOLINE()
         MLPOS()
         MLCPOS()
         MPOSTOLC()      - 5th and up can specify custom EOLs.
       - ALERT()         - 1st parameter type can be any type in Harbour, char only in C5.x
       - SET FUNCTION TO
         __SETFUNCTION   - 2nd parameter can be numeric or array of numeric in Harbour.
       - SETKEY()        - 3rd codeblock parameter ("isactive" block)
       - SAVESCREEN()    - 5th parameter: lNoCheck (?)
         RESTSCREEN()    - 6th parameter: lNoCheck (?)
       - AT()            - 3rd and 4th parameters to set search range. 3rd parameter is 
                           also supported by XPP and FS. Results in compiler error in C5.x.
                           (CAVO uses AT2() and AT3() for extended versions.)
       - TRIM()
         RTRIM()         - 2nd parameter is an extension regarding space trimming mode.
                           Results in compiler error in C5.x.
       - ALLTRIM()       - 2nd parameter is an extension regarding space trimming mode.
       - GETE()
         GETENV()        - 2nd parameter specifies a default value. Can be found in HB_GETENV().
       - PROCFILE()      - 1st parameter is a Harbour extension. Undocumented function in C5.x.
                           The extension looks similar to the one found in Flagship.
       - __MVRESTORE()   - 3rd/4th parameters are Harbour extensions to set variable name 
                           mask. Redirected from the internal 5.x function named __MRESTORE().
       - DB*()           - cRDD, nConnection, cCodePage extra parameters in many DB*() functions.
                           TOFIX: None of them is marked as HB_EXTENSION.
       - SET()s          - These are not marked as HB_EXTENSION.
       - ?               - Is there anything else?
2007-10-16 11:04:51 +00:00
Przemyslaw Czerpak
01c5248dde 2007-10-15 17:39 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbmath.h
  * harbour/source/pp/ppcore.c
  * harbour/source/pp/ppgen.c
  * harbour/source/pp/Makefile
  * harbour/source/rtl/diskspac.c
  * harbour/source/rtl/fserror.c
  * harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/disksphb.c
  * harbour/source/rtl/gttone.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/source/rtl/fssize.c
  * harbour/source/rtl/hbinet.c
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/filesys.c
  * harbour/source/vm/mainwin.c
  * harbour/source/common/hbver.c
  * harbour/source/common/hbtrace.c
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/ppcomp.c
  * harbour/utils/hbver/hbverfix.c
  * harbour/utils/hbpp/hbppcore.c
  * harbour/config/w32/pocc.cf
    * code cleanup:
      - eliminated unnecessary errno access
      - use WinAPI functions instead of some standard C library functions
        in Windows builds
2007-10-15 15:40:17 +00:00
Przemyslaw Czerpak
4803d0e558 2007-10-09 09:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/runner.c
  * harbour/source/compiler/genhrb.c
    ! added support for functions marked as DYNAMIC in .hrb format

  * harbour/source/compiler/complex.c
    + finished code (stil disabled) to decode datetime in
       VFP strict date form
2007-10-09 07:05:39 +00:00
Mindaugas Kavaliauskas
3c909a6e05 2007-10-09 00:11 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/source/vm/dynsym.c
    * minor optimzation
  * harbour/tests/multifnc/t0.prg
  * harbour/tests/multifnc/t1.prg
  * harbour/tests/multifnc/t2.prg
    + one more test for function overload
2007-10-08 21:10:12 +00:00
Przemyslaw Czerpak
c5c1113387 2007-10-08 23:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * do not clear references to public functions in symbol tables used
      by unloaded modules

  * harbour/source/compiler/complex.c
    + added disabled yet code to decode datetime in VFP strict date form
         {^YYYY/MM/DD[,][HH[:MM[:SS[.CCC]]][A|P]]}
      It's for future datetime implementation.
2007-10-08 21:06:12 +00:00
Przemyslaw Czerpak
6ac1bea71f 2007-10-08 01:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/arrays.c
    ! fixed value returned by HB_RASCAN( aVal, bCode ) - it was returning
      index -1, f.e. hb_rascan({1,2,3},{|x|x==2}) returned 1 when it
      should 2
2007-10-07 23:06:43 +00:00
Przemyslaw Czerpak
dafaea3cbe 2007-10-06 13:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hashes.c
    * set AUTOADD for assign operation by default in new arrays
    * removed last HB_COMPAT_XHB

  * harbour/source/vm/hashfunc.c
    * change HB_HAUTOADD( hHash, .T. ) to set AUTOADD for assign only
      when no default value is set

   Above are minimal modifications to make default Harbour behavior
   more similar to other languages f.e. PHP or xHarbour. Other
   modifications will depend on group decision.
2007-10-06 11:56:02 +00:00
Przemyslaw Czerpak
053e67ddeb 2007-10-06 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbsetup.h
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/filesys.c
    * cleanup

  * harbour/source/vm/hvm.c
    % use extended reference for enumerator destructor - it eliminates
      3 hb_itemNew() calls reducing the cost of creating FOR EACH envelope
      about 40%
2007-10-06 10:45:13 +00:00
Przemyslaw Czerpak
0ce94714e6 2007-10-05 23:44 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbsetup.h
    * minor cleanup comment
  * harbour/source/vm/hvm.c
    * save/restore return value in extended references
2007-10-05 21:44:46 +00:00
Przemyslaw Czerpak
2429517eed 2007-10-05 14:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/dynsym.c
    * added some additional comments. I still do not know MSVC behavior
      can someone check the results from tests/multifnc in MS[V]C build?
2007-10-05 12:00:38 +00:00
Miguel Angel Marchuet Frutos
e92d579e1c 2007-10-04 13:15 UTC+0100 Miguel Angel Marchuet Frutos <miguelangel/at/marchuet.net>
* contrib/bmdbfcdx/bmdbfcdx1.c
    * removed memory leak.

  * contrib/xhb/makefile.bc
    * added missing file.

  * source/vm/estack.c
    * corrected sintax
2007-10-04 15:02:54 +00:00
Przemyslaw Czerpak
9e390bcdcf 2007-10-04 12:36 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    ! removed one call to hb_vmRequestRestore() left by mistake
    % minor optimization
2007-10-04 10:37:00 +00:00
Przemyslaw Czerpak
0efe049e5d 2007-10-03 17:04 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/tests/oleenum.prg
    + added Enrico example and test code for enumerators and OLE objects

  * harbour/contrib/Makefile
    * enabled hbole, ado_rdd, hybodbc in most of Windows builds

  * harbour/contrib/ole2/win32ole.prg
  * harbour/contrib/ole2/w32ole.c
    * synced with recent Ron's modifications in xHarbour
      I'd like to ask Windows users to make tests with above
      oleenum.prg and example sent by Luis

  * harbour/source/rtl/gttrm/gttrm.c
    * disable ACS mode before sending BEL on Linux compatibile terminals
      - some of them may try to display chr(7) instead of generating
        sound when ACSC is enabled

  * harbour/source/vm/proc.c
    + added support for character parameter in PROCFILE() - now it can
      accept <nLevel> | <sFuncSym> | <cFuncName> as first parameter

  * harbour/source/vm/dynsym.c
    * added support for detecting not cleanly overloaded by linker .prg
      functions.
      In such case hb_dynsymNew() checks if linker updated function
      addresses and if yes then remove unnecessary HB_FS_LOCAL flag.
      In such case works GCC (but not MinGW and DJGPP), OpwenWatcom
      for Linux, DOS, Windows (and probably for OS2), POCC, XCC (with
      /FORCE:MULTIPLE linker switch) and some other linkers I haven't
      tested.
      Otherwise (two different functions with the same name linked and
      each accessible from different symbol, f.e. BCC32, MinGW, DJGPP)
      it accept multiple HB_FS_LOCAL for dynamically loaded modules
      (.hrb, .dll, .so, .dyn, ...) if HVM also accepted it (for future
      KEEP_LOCAL_FUNC HB_LIBLOAD()/__HBRLOAD() parameter).
      For statically linked modules it overloads one of the functions when
      HB_OVERLOAD_MULTIPLE_FUNC macro is set (now by default to make tests
      with different linkers). I left detail description in source code of
      hb_dynsymNew() in source/vm/dynsym.c.
      I hope it will also help Ron in recent xHarbour modifications - AFAIK
      it's sth what he tires to do.
      Anyhow please remember that that dirty overloading any symbols by
      linker is very bad idea and in such case you have big chance that
      wrong binaries will be created so the most preferable choice is
      eliminating such situations and not using linker switches like
      -Wl,--allow-multiple-definition or /FORCE:MULTIPLE

  + harbour/tests/multifnc
  + harbour/tests/multifnc/t0.prg
  + harbour/tests/multifnc/t1.prg
  + harbour/tests/multifnc/t2.prg
  + harbour/tests/multifnc/Makefile
    + added test code for results of dirty overloaded functions.
      With recent modifications expected results are:
            main t0.prg t0.prg
            alert t1.prg t1.prg [ALERT]
            p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
            p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
            p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
            p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
            p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
            p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK
            ===
            main2 t1.prg t1.prg
            alert t1.prg t1.prg [ALERT]
            p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
            p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
            p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
            p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
            p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
            p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK
            ===
            main3 t2.prg t2.prg
            alert t1.prg t1.prg [ALERT]
            p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
            p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
            p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
            p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
            p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
            p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK

      I've tested only few compilers: GCC/G++ (Linux) MinGW (WINE-W32),
      DJGPP (DOSEMU), OpenWatcom (Linux, WINE-W32, DOSEMU), XCC/POCC
      (WINE-W32) and I'm interesting in results from other compiler/
      platforms, f.e. from M[V]SC.
2007-10-03 15:05:12 +00:00
Przemyslaw Czerpak
b5d010fbeb 2007-10-01 19:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/errorapi.c
    + added protection against possible GPF when some assign methods
      were called without parameters

  * harbour/source/rdd/workarea.c
    * initialize uiFalgs also when DBS_FLAGS is not set

  * harbour/contrib/bmdbfcdx/bmdbfcdx1.c
    * fixed hb_cdxSkipFilter() declaration - it should be 'static' function

  * harbour/source/pp/ppcore.c
  * harbour/source/compiler/ppcomp.c
    + added support for changing all -k? switches by #pragma, f.e.;
         #pragma -ks+
         #pragma -kM-
         #pragma -kx1
         #pragma -kJ0

  * harbour/source/compiler/hbusage.c
    * changed -ks description

  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
    * do not generate error message for negative indexes and
      [] operators are used for simple types when -ks option
      is used

  * harbour/include/hbvmpub.h
  * harbour/include/hbapi.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/memvars.c
    + added HB_IT_DEFAULT flags - it allows to check if item was changed

  * harbour/source/vm/memvars.c
  * harbour/include/hbvm.h
    ! fixed HB_IT_MEMOFLAG updating to be Clipper compatible. Here we are
      not Clipper compatible in one place: in clodeblock local parameters
      with memo values are marked as MEMO but if you leave function where
      codeblock were created then Clipper during detaching removes MEMO
      flag. In Harbour memo flag is kept.

  * harbour/include/hbvm.h
  * harbour/source/vm/classes.c
  * harbour/source/vm/hvm.c
    % improved speed of extended references used for SETGET methods
      and overloaded [] operators

  * harbour/include/hbapi.h
  * harbour/include/hbsetup.ch
  * harbour/source/compiler/hbcomp.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/cmdarg.c
    * removed HB_COMPAT_XHB flags - only one HB_COMPAT_XHB still exist
      in HVM in hashes.c - it will be removed soon.

  * harbour/source/common/hbverdsp.c
    * removed information about xHarbour compatibility mode - it's not
      longer used. We are emulating xHarbour behavior using external
      XHB library and standard compiler/HVM features

  * harbour/contrib/xhb/xhb.ch
  * harbour/contrib/xhb/xhbfunc.c
  * harbour/source/vm/arrayshb.c
    * moved XHB_AINS(), XHB_ADEL() from XHB lib to HVM as HB_AINS(), HB_ADEL()

  * harbour/contrib/xhb/xhb.ch
    + added #pragma -ks+
    + added transaltion for hb_enumindex( <enumvar> )

  + harbour/contrib/xhb/xhbenum.c
    + added emulation for HB_EUMMINDEX()

  * harbour/contrib/xhb/xhbfunc.c
    * do not add INET*() function wrappers for DOS builds or when
      HB_NO_DEFAULT_INET macro is set

  * harbour/contrib/xhb/xhbmsgs.c
    * added comment

  * harbour/contrib/Makefile
    + added TIP and XHB

  * harbour/make_rpm.sh
  * harbour/harbour.spec
    * removed HB_COMPAT_XHB, --with tip, --with xhb
      they are not longer necessary
2007-10-01 17:43:52 +00:00
Przemyslaw Czerpak
d5a382e30d 2007-09-28 16:32 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    * respect -ks in macrovars and array item references

  * harbour/source/vm/memvars.c
    * do not detach array items during detaching enumerator variable
      also in standard (without HB_COMPAT_XHB) build
2007-09-28 14:32:20 +00:00
Przemyslaw Czerpak
af5038b272 2007-09-28 14:08 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/garbage.c
    + added extended item references - it's universal reference which
      can be used by HVM for many different things without introducing
      new item types

  * harbour/include/hbexprb.c
    * respect -ks compiler also with <op>=, --, ++ operators

  * harbour/include/hbvm.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/classes.c
    + added extended references for SETGET methods used as object
      item references
    * use extended references to respect overloaded [] operator in
      object item references
    + added support for passing indexes to string item characters
      ( @cValue[n] ) by reference using extended references - extension
      enabled by -ks compiler switch and //flags:s RT switch. 
    + added hb_vmPushItemRef()

  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/usrrdd/usrrdd.c
    * use hb_vmPushItemRef()

  * harbour/contrib/xhb/xhbcomp.prg
  * harbour/contrib/xhb/xhbmsgs.c
    * overload +, -, *, %, ^, ++, -- in string and numeric scalar
      classes to emulated xHarbour behavior when 1 byte string is
      used as numeric value.
      Note: <nun> + <char1> in XHB lib gives numeric value when in
            xHarbour character. But because <nun> <anyOtherOper> <char1>
            in xHarbour gives numeric value then I guess that it's
            xHarbour bug and I should not replicate it, f.e.:
               proc main()
                  ? 1+"A", 131-"A", 33 * 2, 132 / chr(2), 133 % "C"
               return
    * overload +, - in hash scalar class to emulated xHarbour behavior
      for <hash> + <hash> and <hash> - <hash>
      Seems that now we can remove HB_COMPAT_XHB flag from HVM and keep
      Harbour compatibility only with -ks compile time switch and XHB
      library. Please make some tests with Harbour compiled without
      HB_COMPAT_XHB and xHarbour code using REQUEST XHB_LIB. It's possible
      that I missed sth but some basic test shows that our emulation is
      better then original and addresses places where xHarbour does not
      work at all or gives strange results, f.e.:

         #ifndef __XHARBOUR__
            request XHB_LIB
         #endif
         proc main()
            local h:={"ABC"=>123.45}
            ? h:abc
            h:abc+=1000   ; ? h:abc
            h["ABC"]+=1000; ? h:abc
            p(@h:abc)     ; ? h:abc
            p(@h["ABC"])  ; ? h:abc
         return
         proc p(x)
            x+=1000
         return

      or:

         #ifndef __XHARBOUR__
            request XHB_LIB
         #endif
         #include "hbclass.ch"
         proc main()
            local o:=myClass():new()
            o:setget:="ABC"; ? o:setget
            o:setget[2]:=42; ? o:setget
            o:setget[2]+=42; ? o:setget
            ? o:setget[2]+=42; ? o:setget
            ?
            o:var:="ABC"; ? o:var
            o:var[2]:=42; ? o:var
            o:var[2]+=42; ? o:var
            ? o:var[2]+=42; ? o:var
         return
         CREATE CLASS myClass
            VAR    var
            METHOD setget SETGET
         END CLASS
         METHOD setget( xNewVal ) CLASS myClass
            IF pcount() > 0
               ::var := xNewVal
            ENDIF
         RETURN ::var

  * harbour/include/hbapirdd.h
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/usrrdd/usrrdd.c
  * harbour/contrib/rdd_ads/ads1.c
    * changed second parameter in RELTEXT() method to PHB_ITEM
      Now RELTEXT() works like FILTERTEXT() and the size of
      expression is not limited. It's a modification I wanted
      to make for a long time and I think that now is a good
      moment to make it together with HB_FT_* modifications
    - rmoved not longer necessary HARBOUR_MAX_RDD_RELTEXT_LENGTH

  * harbour/source/rtl/gttrm/gttrm.c
    * small cleanup
2007-09-28 12:08:46 +00:00
Przemyslaw Czerpak
893ba137b4 2007-09-27 14:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/rdd_ads/ads1.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbf1.c
    * recognize field { "T", 4, 0 } as TIME and { "T", 8, 0 } as DAYTIME

  * harbour/source/vm/hvm.c
    * formatting
2007-09-27 12:40:32 +00:00
Przemyslaw Czerpak
d8813e5b29 2007-09-26 02:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbclass.ch
    + added:
         ON ERROR FUNCTION <FuncName>
         OPERATOR <op> FUNCTION <FuncName> <scope>

  * harbour/include/hbapicls.h
  * harbour/source/vm/classes.c
  * harbour/source/vm/hvm.c
    + added support for overloading right side $ operator

  * harbour/contrib/xhb/xhbfunc.c
    * rewritten xhb_ains() and xhb_adel() in C

  * harbour/contrib/xhb/xhb.ch
    * changed AINS() conversion to be xHarbour compatible

  * harbour/contrib/xhb/Makefile
    + added xhb.ch to PRG_HEADERS so it's installed automatically
      during 'make install'

  * harbour/contrib/xhb/Makefile
  + harbour/contrib/xhb/xhbmsgs.c
  * harbour/contrib/xhb/xhbcomp.prg
    + added support for $ operator used with hashes and arrays
      on right side working _exactly_ like in xHarbour.
    + added support for negative indexes in used in [] operator
      for array and strings.
      Please remember that standard harbour build (without
      HB_COMPAT_XHB flag) generate warning for negative indexes,
      if you wan to pacify them then instead of var[-1] use var[(-1)]
    + added support for assign string characters with [] index.
      Please remember that for standard harbour build (without
      HB_COMPAT_XHB flag) you have to use -ks compile time switch
      if you want to assign strings in such way because this feature
      needs different PCODE, f.e. try to compile this code:
         proc main()
            local s:="ABC"
            s[(-1)] := "*"
            ? s
         return
      with and without -ks switch
    + added support for accessing hash items using OO interface, f.e.:
         proc main()
            local h:={"ABC"=>123.45,"XYZ"=>567.89}
            ? h["ABC"], h["XYZ"]
            ? h:ABC, h:XYZ
            h:ABC+=1000
            h:XYZ:=-2000
            ? h:ABC, h:XYZ
         return

      All of the above extensions are written in C code so the speed
      overhead is very small. Harbour evaluates PCODE faster then xHarbour
      so in speed tests where above operators are executed in loop without
      any other code the xHarbour results with native support are comparable
      with Harbour ones where above operators are overloaded using scalar
      classes so in normal code you should not find any difference with
      one exception for assigning characters in very long strings.
2007-09-26 00:30:47 +00:00
Viktor Szakats
a3c5433fa3 2007-09-25 18:51 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
   * source/vm/arrayshb.c
   * contrib/xhb/xhb.ch
   * contrib/xhb/xhbfunc.c
     + Added HB_ASCAN() to Harbour, which does the same as 
       the plain AScan() in xhb. I decided to do this 
       because we already had hb_RAscan() implemented, and 
       having hb_Ascan() is good to keep symetry.
     * Modified xhb lib to use the Harbour one.
     * Translations moved to hbcompat.ch.
     - Removed HB_COMPAT_XHB from Harbour level array functions.
2007-09-25 16:52:16 +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
f2b0c25e87 2007-09-18 14:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbclass.ch
    + added new commands for scalar classes:
         ASSOCIATE CLASS <ClassName> WITH TYPE
                           ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
         ENABLE CLASS TYPE ALL
         ENABLE TYPE CLASS ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
      Please remeber that:
          ENABLE CLASS TYPE ALL
      and:
          ENABLE TYPE CLASS ...
      can be used in any place of code - this commands are translated to
          REQUEST HB<TYPENAME>
      so are not executed

  * harbour/source/vm/classes.c
    + added __clsAssocType( <hClass>, <cType> ) => <lOK>

  * harbour/common.mak
  * harbour/source/rtl/tscalar.prg
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/tscalars.c
  + harbour/source/rtl/tscalard.c
  + harbour/source/rtl/tscalarh.c
  + harbour/source/rtl/tscalarl.c
  + harbour/source/rtl/tscalarp.c
  + harbour/source/rtl/tscalara.c
  + harbour/source/rtl/tscalaru.c
  + harbour/source/rtl/tscalarb.c
  + harbour/source/rtl/tscalarn.c
  + harbour/source/rtl/tscalarc.c
    + added scalar classes for basic types,
      Now it's possible to define messages also for basic item types.
      It's even possible to overload some not defined in HVM operators,
      f.e. in this example we overload operator "+" so it makes
        AADD( <aValue>, <xValue> )
      for code like <aValue> + <xValue>:
        #include "hbclass.ch"
        PROC MAIN()
            LOCAL a:={}
            ASSOCIATE CLASS MyArray WITH TYPE ARRAY
            a := a + "elem1"
            a += "elem2"
            a := a + "elem3"
            a += "elem4"
            ? a:asString, a:isScalar
            AEVAL(a,{|x,i|QOUT(i,x)})
        RETURN
        CREATE CLASS MyArray INHERIT __HBArray
           OPERATOR "+" ARG xValue INLINE AADD( Self, xValue ), Self
        ENDCLASS
      Operators which have default actions for given types defined in HVM
      cannot be overloaded.
2007-09-18 12:40:49 +00:00
Przemyslaw Czerpak
9d4258aa47 2007-09-18 00:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicls.h
  * harbour/source/vm/hvm.c
    + added hb_clsDoInit() function to initialize classy .prg functions

  * harbour/source/compiler/complex.c
    * allow to use NIL as class name

  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyh
    % optimize automatically var[0] declaration and generate the same
      PCODE as for var:={}

  * harbour/source/rtl/tscalar.prg
    + added HASH, POINTER and SYMBOL scalar classes
    * changed NIL class to not use any instance variables

  * harbour/source/vm/classes.c
    + added support for scalar classes. Now at startup classy code looks
      for hb<TYPENAME> functions and try to execute them to register
      scalar classes. It's Class(y) compatible behavior and only the prefix
      of scalar ceases class function is different: 'CSY' in class(y) and
      'HB' in Harbour, f.e.: hbNumeric()
      If you prefer xHarbour like not automatic scalar class registration
      with some PP commands:
         ASSOCIATE CLASS <ClassName> WITH TYPE
                           ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
         ENABLE CLASS TYPE ALL
         ENABLE TYPE CLASS ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
         EXTEND [TYPE] ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                       NUMERIC|POINTER|SYMBOL WITH METHOD <SomeFunc>
      Then I can replace current code with it. If not then we should
      divide scalar cases definitions into separated files to allow
      easier overloading. I'm interesting in your opinions.
2007-09-17 22:48:39 +00:00
Przemyslaw Czerpak
72eca3d3e9 2007-09-18 00:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicls.h
  * harbour/source/vm/hvm.c
    + added hb_clsDoInit() function to initialize classy .prg functions

  * harbour/source/compiler/complex.c
    * allow to use NIL as class name

  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyh
    % optimize automatically var[0] declaration and generate the same
      PCODE as for var:={}

  * harbour/source/rtl/tscalar.prg
    + added HASH, POINTER and SYMBOL scalar classes
    * changed NIL class to not use any instance variables

  * harbour/source/vm/classes.c
    + added support for scalar classes. Now at startup classy code looks
      for hb<TYPENAME> functions and try to execute them to register
      scalar classes. It's Class(y) compatible behavior and only the prefix
      of scalar ceases class function is different: 'CSY' in class(y) and
      'HB' in Harbour, f.e.: hbNumeric()
      If you prefer xHarbour like not automatic scalar class registration
      with some PP commands:
         ASSOCIATE CLASS <ClassName> WITH TYPE
                           ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
         ENABLE CLASS TYPE ALL
         ENABLE TYPE CLASS ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                           NUMERIC|POINTER|SYMBOL
         EXTEND [TYPE] ARRAY|BLOCK|CHARACTER|DATE|HASH|LOGICAL|NIL|
                       NUMERIC|POINTER|SYMBOL WITH METHOD <SomeFunc>
      Then I can replace current code with it. If not then we should
      divide scalar cases definitions into separated files to allow
      easier overloading. I'm interesting in your opinions.
2007-09-17 22:45:30 +00:00
Przemyslaw Czerpak
503c1ddf13 2007-09-02 17:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/hbgtmk.sh
  * harbour/tests/codebl.prg
  * harbour/tests/testprof.prg
  * harbour/tests/keywords.prg
  * harbour/tests/testpp.prg
  * harbour/make_rpm.sh
  * harbour/makefile.gc
  * harbour/bin/hb-mkslib.sh
  * harbour/include/hbexpra.c
  * harbour/include/hbmath.ch
  * harbour/include/hbrddntx.h
  * harbour/include/hbexprb.c
  * harbour/harbour.spec
  * harbour/contrib/dot/pp.prg
  * harbour/contrib/libct/ctwin.c
  * harbour/contrib/ole2/w32ole.c
  * harbour/contrib/hgf/win32/win32.c
  * harbour/contrib/mysql/mysql.ch
  * harbour/contrib/odbc/todbc.prg
  * harbour/contrib/odbc/sql.ch
  * harbour/contrib/hb_struc/hbstruc.ch
  * harbour/contrib/bmdbfcdx/bmdbfcdx1.c
  * harbour/contrib/msql/msql.ch
  * harbour/contrib/msql/readme.txt
  * harbour/source/pp/ppcore.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtxwc/gtxwc.h
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtcrs/gtcrs.h
  * harbour/source/rtl/gtalleg/gtalleg.c
  * harbour/source/rtl/gtalleg/ssf.h
  * harbour/source/rtl/gtalleg/fixedth.sfc
  * harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/itemseri.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtsln/gtsln.h
  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/hbhex.c
  * harbour/source/rtl/tget.prg
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/hbinet.c
  * harbour/source/vm/hvm.c
  * harbour/source/debug/dbgtobj.prg
  * harbour/source/debug/dbgwa.prg
  * harbour/source/common/expropt2.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/utils/hbpp/hbppcore.c
  * harbour/utils/hbpptest/pp_test.prg
  * harbour/utils/hbpptest/pretest.prg
  * harbour/make_tgz.sh
    * converted TABs to SPACEs
2007-09-02 15:28:05 +00:00
Przemyslaw Czerpak
93fa70f0e8 2007-09-01 16:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompat.ch
    + added some new translation rules
  * harbour/source/vm/proc.c
    * fixed buffer size to protect against possible overflow
2007-09-01 14:23:25 +00:00
Mindaugas Kavaliauskas
111fcb1b07 2007-08-31 18:01 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/source/rtl/hbhex.c
    * fixed typo in HB_STRTOHEX()
  * harbour/source/vm/extend.c
    * code optimisation
2007-08-31 15:13:13 +00:00
Przemyslaw Czerpak
13a2891d97 2007-08-31 03:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/dynsym.c
    + added hb_dynsymIsFunction()

  * harbour/source/rtl/filehb.c
    * updated comment

  * harbour/source/rtl/philes.c
    * renamed HB_F_EOF() to HB_FEOF()

  * harbour/source/rtl/scroll.c
  * harbour/source/rtl/transfrm.c
  * harbour/source/rtl/file.c
    * formatting

  * harbour/source/rtl/substr.c
  * harbour/source/rtl/trim.c
    % optimization

  * harbour/source/rtl/typefile.prg
    % use HB_ATOKENS() instead of static .prg function

  * harbour/source/rtl/setkey.c
    % optimization and protection aganst possible GPF when wrong array
      is passed to HB_SETKEYSAVE()

  * harbour/source/rtl/xhelp.c
    ! do not generate RT error when HELP symbol exist
      (f.e. after PUBLIC HELP) but HELP() function doesn't
    ! keep reference in parametes passed by reference to __XHELP()
    * use only PHB_DYNS instead of PHB_SYMB

  * harbour/source/rtl/seconds.c
    + added WIN32 version borrowed from XHARBOUR

  * harbour/source/rtl/trace.c
    ! protection against possible GPF when wrong parameters are passed

  * harbour/source/rtl/samples.c
    ! protection against possible GPF when wrong parameters are passed
      Warning! We have in this file few functions without HB_ prefix.
      Some of them may create conflicts with future functions for TIMEDATE
      items.

  * harbour/source/rtl/inkey.c
    + added support for passing array with key codes as __KEYBOARD()
      parameter, covered by HB_EXTENSION macro - this is xHarbour compatible
      extension. I do not like it but we already had extension with numeric
      parameters and probably it would be hard to remove it now and keep
      __KEYBOARD() code clean so I decided to add support also for arrays
      instead of creating new function and adding conditional code covered
      by HB_COMPAT_XHB macro.

  * harbour/source/rtl/setfunc.prg
    * accept extended __KEYBOARD() parameters when HB_EXTENSION macro
      is set.
2007-08-31 01:20:52 +00:00
Przemyslaw Czerpak
feda39d689 2007-08-30 03:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/rtl/console.c
    * changed hb_conOutAlt() from static to global function.

  * harbour/include/hbapi.h
  * harbour/source/common/hbver.c
    + added hb_verBuildDate()

  * harbour/source/rtl/accept.c
    ! Fixed ACCEPT to respect SET CONSOLE and similar sets.

  * harbour/source/rtl/hbgtcore.c
  * harbour/contrib/libct/ctwin.c
    ! fixed chr(8) console output - it should erase character on the screen

  * harbour/include/set.ch
  * harbour/include/hbset.h
  * harbour/source/rtl/set.c
  * harbour/source/rtl/filesys.c
    + added _SET_TRIMFILENAME - when enabled low level hb_fs*() functions
      strip trailing and leading spaces from file names to emulate DOS
      like behavior - switch compatible with xHarbour


  * harbour/source/rtl/run.c
    * remove compiler type checking - if system() is not supported by
      some platform/compiler then I'd prefer to exclude it explicitly.

  * harbour/source/rtl/dircmd.prg
    + added support for extended DBF types and replaced some of
      Bin2W() by ASC()

  * harbour/source/rtl/defpath.c
    * use OS_HAS_DRIVE_LETTER macro to detect if platform supports drive
      letters

  * harbour/source/rtl/philes.c
    + added HB_FCOMMIT(), HB_OSERROR(), HB_OSDRIVESEPARATOR()
      Question: why we have HB_F_EOF() instead HB_FEOF()

  * harbour/source/rtl/oldbox.c
  * harbour/source/rtl/box.c
    ! fixed __BOX() to be Clipper compatible

  * harbour/source/rtl/math.c
  * harbour/source/rtl/dateshb.c
    * formatting and some minor improvements

  * harbour/source/rtl/isprint.c
  * harbour/source/vm/itemapi.c
  * harbour/source/rtl/ampm.c
  * harbour/source/rtl/inkey.c
  * harbour/source/rtl/gete.c
  * harbour/source/rtl/fkmax.c
  * harbour/source/rtl/langapi.c
  * harbour/source/rtl/colorind.c
  * harbour/source/rtl/mouseapi.c
  * harbour/source/rtl/readvar.prg
  * harbour/source/rtl/devoutp.prg
  * harbour/source/rtl/readkey.prg
    * code checking and formatting
    ! some minor fixes
    % some speed improvements

  * harbour/source/rtl/menuto.prg
  * harbour/source/rtl/radiogrp.prg
  * harbour/source/rtl/listbox.prg
  * harbour/source/rtl/checkbox.prg
  * harbour/source/rtl/pushbtn.prg
  * harbour/source/rtl/radiobtn.prg
    * code checking and formatting
    ! added fixes borrowed from xHarbour 
    ! some other fixes
    % some speed improvements

  * harbour/source/rtl/filehb.c
    + added commment

  * harbour/source/rtl/transfrm.c
    ! fixed integer numbers transformation when _SET_FIXED is on to
      be Clipper compatible

  * harbour/source/rtl/version.c
    + added HB_PCODEVER() and HB_BUILDDATE()

  * harbour/source/rtl/copyfile.c
    ! fixed __COPYFILE() - source and destination files should respect
      _SET_DEFAULT
2007-08-30 01:56:03 +00:00
Przemyslaw Czerpak
a455bf0d4c 2007-08-25 12:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
  * harbour/source/vm/extend.c
    ! fixed hb_stor*() functions return value to be Clipper compatible.
      These functions should return 1 _ONLY_ when the operation is really
      successful; otherwise, they return zero.
    + added hb_storclen_buffer(), hb_arraySetPtrGC()

  * harbour/config/darwin/gcc.cf
  * harbour/config/hpux/gcc.cf
  * harbour/config/dos/rsx32.cf
  * harbour/config/os2/gcc.cf
  * harbour/config/sunos/gcc.cf
  * harbour/config/w32/gcc.cf
  * harbour/config/w32/rsxnt.cf
    + added rtl library after gt drivers for linker which do not support
      backward references
2007-08-25 10:20:35 +00:00
Przemyslaw Czerpak
7501178afd 2007-08-24 03:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/vm/runner.c
    * code cleanup
2007-08-24 01:00:58 +00:00
Przemyslaw Czerpak
c35370c2b9 2007-08-21 16:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/memvars.c
    + added __MVSETBASE() function

  * harbour/source/pp/ppcore.c
    * redirect error messages when error trap is not defined into
      user dispout function

  * harbour/include/hbcomp.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/hbcomp.c
  * harbour/source/compiler/genjava.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/hbcmplib.c
  * harbour/source/compiler/ppcomp.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/gencobj.c
  * harbour/source/compiler/genobj32.c
  * harbour/source/compiler/hbusage.c
  * harbour/source/compiler/hbgenerr.c
    + added hb_compOutStd() and hb_compOutErr()
    * redirected all compiler output to above functions
2007-08-21 14:01:01 +00:00
Przemyslaw Czerpak
c775f56f50 2007-08-20 15:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    * do not generate error for QSELF()[...] - Clipper allows such
      operation and because some valid Clipper code needs it then
      I disabled error message.

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/einstvar.prg
    + added undocumented CA-Cl*pper function _eInstVar() used to validate
      variable type in assign messages.

  * harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    * changed 'char *' to 'const char *' in hb_arraySetC() and hb_arraySetCL()

  * harbour/source/rdd/dbcmd.c
    * cleaned DBSKIPPER() code

  * harbour/source/rtl/browdb.prg
    * use written in C DBSKIPPER() function instead of static .prg Skipped()
      when HB_COMPAT_XPP macro is enabled

  * harbour/source/rtl/browse.prg
    ! fixes in BROWSE() function:
      ! displaying box characters
      + added CL53 compatible mouse actions
      + added mouse wheel actions
      + added support for deleting records (K_DEL)
      + added support for edit mode
      + added support for append mode
2007-08-20 13:50:18 +00:00
Viktor Szakats
20f052ed91 2007-08-08 16:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
   * include/hbextern.ch
   * contrib/libnf/fttext.c
   * source/vm/arrayshb.c
     + xhb RASCAN() added to Harbour without HB_COMPAT_XHB 
       switch, under the name HB_RASCAN().
       Translation from RASCAN() is done via hbcompat.ch
     ! NFLib/FT_FRSEEK() now works in Harbour regardless 
       of the HB_COMPAT switches.
2007-08-08 14:33:26 +00:00
Przemyslaw Czerpak
69f897a26e 2007-08-02 12:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapifs.h
  * harbour/source/rtl/file.c
    + added xHarbour compatible C function hb_fsIsDirectory()

  * harbour/contrib/libct/color.c
  * harbour/contrib/libct/screen1.c
    + added UNTEXTWIN(), CHARWIN(), COLORWIN(), COLORREPL()
    * changed CLEARWIN(), INVERTWIN() to use common helper functions

  + harbour/contrib/libct/screen2.c
    + added SAYDOWN(), SAYSPREAD(), SAYMOVEIN()

  + harbour/contrib/libct/cursor.c
    + added SAVECURSOR(), RESTCURSOR()

  * harbour/contrib/libct/Makefile
  * harbour/contrib/libct/makefile.bc
  * harbour/contrib/libct/makefile.vc
    * updated for new files

  * harbour/contrib/libct/ctmisc.prg
    ! fixed CSETCURS() when called with non logical parameter

  * harbour/source/vm/classes.c
    + added basic version for executing all known inherited destructors
      final version in the future after some testes

  * harbour/source/codepage/cpsv850.c
  * harbour/source/codepage/cpsk852.c
  * harbour/source/codepage/ucmik.c
  * harbour/source/codepage/cpbgmik.c
  * harbour/source/codepage/cpsvwin.c
  * harbour/source/codepage/cpskiso.c
  * harbour/source/codepage/cpskwin.c
  * harbour/source/codepage/cpsvclip.c
    * removed hardcoded CHR(13)+CHR(10) EOLs
2007-08-02 10:25:46 +00:00
Przemyslaw Czerpak
20719c1cf1 2007-07-31 21:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    * disable CTOD("") optimization when -kc switch is used

  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macro.y
    * fixed typo reported by Mindaugas

  * harbour/source/vm/classes.c
    * fixed typo reported by Lost
2007-07-31 19:01:07 +00:00
Przemyslaw Czerpak
94cf099be5 2007-07-06 23:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/libct/bitnum.c
  * harbour/contrib/libct/charlist.c
  * harbour/contrib/libct/ctnet.c
  * harbour/contrib/libct/charonly.c
  * harbour/contrib/libct/atadjust.c
  * harbour/contrib/libct/ctmath.c
  * harbour/contrib/libct/ctset.c
  * harbour/contrib/libct/charsort.c
  * harbour/contrib/libct/ctmath.h
  * harbour/contrib/libct/ctset.h
  * harbour/contrib/libct/cterror.ch
  * harbour/contrib/libct/charmix.c
  * harbour/contrib/libct/charevod.c
  * harbour/contrib/libct/charrepl.c
  * harbour/contrib/libct/charswap.c
  * harbour/contrib/libct/charop.c
  * harbour/contrib/libct/color.prg
  + harbour/contrib/libct/blank.prg
  * harbour/contrib/libct/ct.prg
  * harbour/contrib/libct/ct.ch
  * harbour/contrib/libct/charone.c
  * harbour/contrib/libct/ctchksum.c
  * harbour/contrib/libct/ascpos.c
  * harbour/contrib/libct/charmirr.c
  * harbour/contrib/libct/ctc.c
  * harbour/contrib/libct/ct.h
  * harbour/contrib/libct/atnum.c
  * harbour/contrib/libct/ctmisc.prg
  * harbour/contrib/libct/count.c
  * harbour/contrib/libct/ctcrypt.c
  * harbour/contrib/libct/addascii.c
  * harbour/contrib/libct/ctmath2.c
  * harbour/contrib/libct/ctextern.ch
  * harbour/contrib/libct/asciisum.c
  * harbour/contrib/libct/atrepl.c
  * harbour/contrib/libct/ctstr.c
  * harbour/contrib/libct/ctstr.h
    * synced with xHarbour modifications and fixes
    ! some fixes
    * indenting

  * harbour/source/rtl/errorapi.c
    * indenting

  * harbour/source/vm/hashfunc.c
    + added HB_HSETCASEMATCH(), HB_HSETAUTOADD()
    % some minor optimizations

  * harbour/include/hbcompat.ch
    + added hb_checksum() <=> hb_adler()
    * use new HB_HSET*() function to avoid warnings

  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hberrors.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyh
  * harbour/source/compiler/hbgenerr.c
    ! fixed using EXIT/LOOP inside WITH OBJECT / END statement
    ! fixed optimization of empty BEGIN/END sequence when recover has
      EXIT or LOOP statement
    ! forbidden using EXIT and LOOP inside ALWAYS code in BEGIN/END sequence
    ! forbidden using ALWAYS statement if RECOVER code has EXIT or LOOP
      statement
2007-07-06 21:17:36 +00:00
Przemyslaw Czerpak
7d44a4b1d9 2007-07-04 04:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
   * do not allocate self calss casting method when class name cannot
     be used as method
2007-07-04 02:45:11 +00:00
Przemyslaw Czerpak
266aeecc82 2007-07-04 04:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
   ! fixed typo in adding messages with HB_OO_MSG_PROPERTY flag
   ! fixed __clsDelMsg() to be safe with later dictionary resizing
2007-07-04 02:35:24 +00:00
Przemyslaw Czerpak
d03f0a3274 2007-07-02 14:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompat.ch
    + added hb_CStr() <=> CStr() translations

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/hbbit.c
    + added set of hb_bit*() functions for bit manipulations:
      HB_BITAND( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITOR( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITXOR( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITNOT( <nVal> ) => <nResult>
      HB_BITTEST( <nVal>, <nBit> ) => <lResult>
      HB_BITSET( <nVal>, <nBit> ) => <nResult>
      HB_BITRESET( <nVal>, <nBit> ) => <nResult>
      HB_BITSHIFT( <nVal>, <nBits> ) => <nResult>

  * harbour/contrib/tip/Makefile
  * harbour/contrib/tip/utils.c
  * harbour/contrib/tip/popcln.prg
  * harbour/contrib/tip/Changelog
  * harbour/contrib/tip/cgi.prg
  * harbour/contrib/tip/url.prg
  * harbour/contrib/tip/httpcln.prg
  * harbour/contrib/tip/client.prg
  * harbour/contrib/tip/encoder.prg
  * harbour/contrib/tip/smtpcln.prg
  * harbour/contrib/tip/mail.prg
  * harbour/contrib/tip/ftpcln.prg
  + harbour/contrib/tip/thtml.prg
  + harbour/contrib/tip/thtml.ch
  - harbour/contrib/tip/cstr.prg
    * synced with recent xHarbour modifications - please test

  * harbour/source/vm/hvm.c
    * formatting

  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/sdf1.c
    % do not copy date value to separate memory buffer but decode dates
      directly from record buffer

  * harbour/source/compiler/hbopt.c
    * optimize PCODE generated for:
         return <somefunc>([<params,...>])
2007-07-02 12:10:38 +00:00
Przemyslaw Czerpak
effd14c344 2007-06-26 23:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
  * harbour/harbour.spec
    * added description for -L<path> in hb* scripts

  * harbour/include/hbapicls.h
  * harbour/source/vm/classes.c
    * changed hb_objSendMsg() and hb_objSendMessage() to return
      hb_stackReturnItem() - xHarbour users asked about it. It does
      not change binary compatibility with existing code.

  * harbour/common.mak
    * replaced some hard coded values like file extensions with variables
      for future use on other platforms

  * harbour/contrib/mysql/mysql.c
    * changed code to not use non standard function filelength()
      and optimized

  * harbour/source/compiler/cmdcheck.c
    * recognize --version on platforms where '-' is option separator

  * harbour/source/compiler/hbusage.c
    * changed syntax description from:
         Syntax:  harbour <file[s][.prg]> [options]
      to:
         Syntax:  harbour <file[s][.prg]|@file> [options]
2007-06-26 21:55:46 +00:00
Przemyslaw Czerpak
685393a361 2007-06-23 11:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/gttrm/Makefile
  * harbour/source/rtl/gttrm/gttrm.c
    + set Id keyword property

  * harbour/source/common/expropt1.c
    ! fixed typo in HB_TRACE() parameters

  * harbour/include/hbapicdp.h
  * harbour/include/hbapirdd.h
  * harbour/source/rtl/strcase.c
  * harbour/source/rtl/is.c
  * harbour/source/rtl/gtxwc/gtxwc.h
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/gtsln.h
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/vm/hvm.c
    ! fixed compilation with HB_CDP_SUPPORT_OFF - I do not plan to
      create such builds but now these macro allow to easy locate
      CDP dependent code

  * harbour/include/hbextern.ch
  * harbour/source/rtl/cdpapi.c
    + added two prg functions for translations from/to UTF-8:
         HB_STRTOUTF8( <cStr> [, <cCPID> ] ) -> <cUTF8Str>
         HB_UTF8TOSTR( <cUTF8Str> [, <cCPID> ] ) -> <cStr>
      <cCPID> is Harbour codepage id, f.e.: "EN", "ES", "ESWIN",
      "PLISO", "PLMAZ", "PL852", "PLWIN", ...
      When not given then default HVM codepage (set by HB_SETCODEPAGE())
      is used.
2007-06-23 09:13:50 +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