Commit Graph

2314 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
8acd47d80c 2007-11-07 01:47 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/filesys.c
    * updated hb_fsTell() and hb_fsEof() to respect platform dependent
      API calls used in hb_fsSeek[Large]()
2007-11-07 00:47:52 +00:00
Przemyslaw Czerpak
07c9e15d8d 2007-11-06 12:58 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbwince.h
    * put functions declarations inside HB_EXTERN_BEGIN / HB_EXTERN_END

  + harbour/include/hbwmain.c
    + added WinMain() to main() wrapper

  * harbour/include/hbexprb.c
  * harbour/source/common/expropt1.c
    ! fixed typo reported by Chen

  * harbour/source/pp/hbppgen.c
  * harbour/source/main/harbour.c
  * harbour/utils/hbpp/hbpp.c
    * use hbwmain.c when main() is not supported by C compiler/platform

  * harbour/source/rtl/gtwin/gtwin.c
    * include wincon.h in all builds except LCC

  * harbour/source/rtl/fserror.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/filesys.c
    * use HB_OS_WIN_32_USED as in other files (still on TOFIX list)

  * harbour/source/rtl/seconds.c
    + added HB_OS_WIN_32_USED

  * harbour/source/compiler/hbcomp.c
    ! fixed typo: stderr was used instead of stdout
2007-11-06 11:59:02 +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
Mindaugas Kavaliauskas
7eb0a16404 2007-11-04 03:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* include/hbapifs.h
  * harbour/source/common/hbfsapi.c
    ! fixed hb_fsFileExists() for DOS 
    + Added hb_fsDirExists()

  * include/hbextern.ch
  * source/rtl/hbfile.c
    + Added HB_DIREXISTS()
2007-11-04 01:40:13 +00:00
Przemyslaw Czerpak
7bad05f1b6 2007-11-04 02:34 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/common/hbstr.c
    + added hb_strlow()

  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/filesys.c
    ! fixed _SET_DIRSEPARATOR behavior - now it's always set to default
      OS directory separator what means no translations. If you want to
      enable some translations then it should be set to other value, f.e.
      in *nixes:
         set( _SET_DIRSEPARATOR, "\" )
      enables translations of "\" in paths to "/"

  * harbour/source/main/harbour.c
    + added support for new compiler switches:
         - Filename casing:
               -fn:l       (lower)
               -fn:u       (upper)
               -fn-        (disable - default)
               -fn         (disable - default)
         - Directory casing
               -fd:l       (lower)
               -fd:u       (upper)
               -fd-        (disable - default)
               -fd         (disable - default)
         - Path separator:
               -fp:<char>
               -fp         (default: OS defined)
         - Filename space trimming:
               -fs         (enable)
               -fs-        (disable - default)
      These switches works only in standalone compiler.
      When compiler is linked with HVM and RTL then corresponding
      _SET_* switches are used instead.
2007-11-04 01:34:59 +00:00
Przemyslaw Czerpak
523a7a2705 2007-11-03 11:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * indenting
2007-11-03 10:12:31 +00:00
Przemyslaw Czerpak
c944fb87e4 2007-11-03 11:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * some minor speed improvement

  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * use hb_cdpSelect() instead of direct accessing hb_cdp_page variable
2007-11-03 10:06:02 +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
c441d870aa 2007-11-01 18:16 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * added mossing const in declaration

  * harbour/contrib/xhb/make_b32.bat
  * harbour/contrib/xhb/make_vc.bat
  * harbour/contrib/win32/make_b32.bat
  * harbour/contrib/win32/make_vc.bat
    * changed EOL style to CRLF
2007-11-01 17:17:14 +00:00
Przemyslaw Czerpak
878b5a7406 2007-11-01 11:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * changed accented character handling and multibyte character
      comparison to make some operations like:
         dbSeek(cVal)
         while ordKeyVal() = cVal
            ...
         enddo
      safe also with such CDPs
2007-11-01 10:05:39 +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
Viktor Szakats
e400c484b5 2007-10-27 17:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbpp/pragma.c
   * source/rtl/binnum.c
   * source/rtl/direct.c
     ! Some VS2005 -O2 warnings.
       One TOFIX added at the same time, since DIRECTORY()
       has a problem returning file sizes greater than 2GB.
2007-10-27 15:54:12 +00:00
Viktor Szakats
0639e8b140 2007-10-27 16:57 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapifs.h
   * source/rtl/fserror.c
   * source/rtl/philes.c
   * source/rtl/philes53.c
     ! Two FS API functions moved the hb_fs*() namespace:
       hb_getFError() -> hb_fsGetFError()
       hb_setFError() -> hb_fsSetFError()
2007-10-27 15:00:42 +00:00
Viktor Szakats
88cb3664a9 2007-10-27 16:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapifs.h
   * source/common/hbfsapi.c
     ! Added missing HB_EXPORTs.
     + Added hb_fsFileExists(). This is the preferred way to check 
       for the existence of a file, because it is fast and will 
       find a file even of directory traversal is not possible 
       for the file's directory. Works the same way as file 
       existence check in most other tools.
     ; NOTE: DOS branch was not compiled or tested (it is a 
             rewrite of a tested ASM function though).

   * common.mak
   * include/hbextern.ch
   * source/rtl/Makefile
   + source/rtl/hbfile.c
     + Added HB_FILEEXISTS() Harbour level function to check 
       for the existence of a file. This works better than 
       FILE() in most situations, but it doesn't accept any 
       wildcards.

   * source/compiler/gencobj.c
     ! Fixed to not used access(). Using hb_fsFileExists() instead.
2007-10-27 14:51:53 +00:00
Viktor Szakats
082820305e 2007-10-26 20:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/win32/w32_prn.c
     + Using hb_retptrGC()/hb_parptrGC().

   * source/rtl/filesys.c
     ! DosToWinHandle() made static.
     ; Minor formatting.
2007-10-26 18:46:27 +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
Mindaugas Kavaliauskas
e2e2d24604 2007-10-24 20:57 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/source/rtl/hbbit.c
    + fixed HB_BITRESET()
2007-10-24 17:59:19 +00:00
Przemyslaw Czerpak
26e1f8984d 2007-10-23 10:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/diskspac.c
    ! added missing ; in DOS builds
2007-10-23 08:22:17 +00:00
Przemyslaw Czerpak
1f3acc4ec7 2007-10-23 04:03 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbwince.h
  * harbour/source/common/hbwince.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/contrib/win32/tprinter.c
  * harbour/contrib/win32/w32_prn.c
    * updated for compilation with UNICODE support
2007-10-23 02:05:21 +00:00
Viktor Szakats
530ce56c04 2007-10-21 02:52 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/set.c
     ! Fixed SET DEVICE TO PRINTER not to add an extension (".prn") 
       to the filename specified by SET PRINTER TO (the extension 
       is only added by the SET PRINTER TO command).
     ! Fixed SET DEVICE TO PRINTER to point to "LPT1" by default 
       (instead of "PRN") under Win32 (this is now in sync with 
       ISPRINTER() logic). Added "PRN" for the rest of OSes (TOFIX).
     ; Pls test.

   * source/rtl/isprint.c
     ! Cleaned up platform branches in ISPRINTER(). Non DOS/Win32 
       branch is a dummy TODO now.

   * contrib/libnf/fttext.c
     ! Some fixes reported by Mike Evans. Pls test.
       Not all reported bugs were fixed. (ft_FError() returns 
       a constant zero, ft_FUse() still needs ft_FSelect())

   - contrib/directx/HB_DDraw.cpp
   + contrib/directx/w32_ddrw.cpp
   - contrib/directx/HB_DDraw.h
   + contrib/directx/w32_ddrw.h
   * contrib/directx/readme.1st
     ! Harbour API updates to this severly outdated code.
     ! Fixed warnings.
     + Added SVN headers.
2007-10-21 01:48:36 +00:00
Przemyslaw Czerpak
ec423de877 2007-10-19 16:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added hb_cdpGetChar()

  + harbour/tests/wcecon.prg
    + added demonstration console program for WinCE,
      compile it using:
         hbmk -n -w -es2 -gtwvt wcecon

  * harbour/include/hbwince.h
  * harbour/source/common/hbwince.c
  * harbour/contrib/win32/w32_ole.c
  * harbour/contrib/odbc/odbc.c
    * use UNICODE macro instead of HB_WINCE to allow using Unicode
      WINAPI also in other MS-Windows versions

  * harbour/source/rtl/gtwvt/gtwvt.h
  * harbour/source/rtl/gtwvt/gtwvt.c
    + added support for Unicode IO

  * harbour/source/rtl/diskspac.c
  * harbour/source/rtl/disksphb.c
     ! fixed wrongly set error code
     ! fixed possible access to uninitialized memory
     * use GetDiskFreeSpaceEx() on WinCE instead of GetDiskFreeSpace()
       for disk larger then 4GB - I do not know if PocketPC have such
       large devices now or if WinCE can support it but for sure it will
       somewhere in the future
2007-10-19 14:16:35 +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
95422142ab 2007-10-17 11:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* common.mak
   * source/rtl/Makefile
   * source/rtl/oemansi.c
   + source/rtl/oemansix.c
   * source/rtl/typefile.prg
   + source/rtl/typefilx.prg
   * source/rdd/Makefile
   * source/rdd/dbjoin.prg
   + source/rdd/dbjoinx.prg
   * source/rdd/dblist.prg
   + source/rdd/dblistx.prg
   * source/rdd/dbtotal.prg
   + source/rdd/dbtotalx.prg
   * source/rdd/dbstrux.prg
   + source/rdd/dbstruxx.prg
   * source/rdd/dbfuncs.prg
   + source/rdd/dbfuncsx.prg
   * source/rdd/dbsort.prg
   + source/rdd/dbsortx.prg
   * source/rdd/dbcmd.c
   + source/rdd/dbcmdx.c
   * source/rdd/dbupdat.prg
   + source/rdd/dbupdatx.prg
     + Moved XPP compatible functions into separated source files.
2007-10-17 09:57:59 +00:00
Viktor Szakats
1b84bb638d 2007-10-16 23:58 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/isprint.c
     - Removed Win32 bitmap printer specific (non-multiplatform)
       functionality. For this feature (and more) pls use 
       hbwin32prn.lib from contrib:
       PRINTEREXISTS(), GETDEFAULTPRINTER(), etc.
     % Minor optimization.
2007-10-16 22:10:18 +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
Viktor Szakats
2c6c52830f 2007-10-16 09:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
   * source/rtl/gete.c
     + Added HB_GETENV(). There you have a 2nd parameter 
       which will be returned in case the requested 
       envvar doesn't exist. This extensions is still present 
       in GETE[NV](), but we'd better remove it.

   * include/hbextern.ch
   * source/rtl/isprint.c
     + Added HB_ISPRINTER() with support for extra parameter 
       printer port name. This parameter also currently has 
       support for Win32 printers. Win32 printer name support 
       was removed from ISPRINTER() to keep compatibility.
       ISPRINTER() extra parameter is enabled with HB_COMPAT_XPP 
       (which is the default).
2007-10-16 07:39:29 +00:00
Viktor Szakats
af54c49e6b minor formatting 2007-10-15 16:37:26 +00:00
Viktor Szakats
1320481f88 2007-10-15 18:36 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tbcolumn.prg
     ! Strict C5.2e compatible behaviour made the default.

   * source/rtl/inkey.c
     + Added handling of arrays of numbers in HB_KEYPUT().
       (this was copied from __KEYBOARD()'s extended section)
     + Added handling of string parameter in HB_KEYPUT().
       (this way we don't really need the hidden extensions 
       in __KEYBOARD() anymore. Also notice that __KEYBOARD() 
       doesn't clear the keyboard buffer when numeric or 
       array is passed, which is not consistent with the 
       Clipper compatible behaviour when strings are passed.)

   * common.mak
   * include/hbcompdf.h
   * source/compiler/hbmain.c
   * source/compiler/cmdcheck.c
   * source/compiler/hbcomp.c
   * source/compiler/harbour.l
   * source/compiler/Makefile
   * source/compiler/ppcomp.c
   * source/compiler/hbusage.c
   - source/compiler/genjava.c
   - source/compiler/gencli.c
     - Removed two non-working (experimental) output types: 
       Java, CLI
     ! Prefixed LANG_* enums with HB_
2007-10-15 16:36:38 +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
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
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
822c550662 2007-09-28 15:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexpra.c
    + added support for HB_ENUM*([@]<varname>) functions - disabled
      by default can be enabled by HB_USE_ENUM_FUNCTIONS macro

  * harbour/source/rtl/gttone.c
    * use assembler code for tone emulation for POCC/XCC compiler only
      for X86 platforms

  * harbour/source/rtl/filesys.c
    * do not include <share.h> for POCC/XCC

  * harbour/source/compiler/gencli.c
    * pacify warning

  * harbour/config/w32/owatcom.cf
  * harbour/config/w32/xcc.cf
    * updated description in header files

  + harbour/config/w32/pocc.cf
    + added support for Pelles ISO C Compiler
2007-10-02 08:52:28 +00:00
Viktor Szakats
799edeb1e5 2007-10-01 23:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/tip/Makefile
   * contrib/tip/makefile.bc
   + contrib/tip/makefile.vc
   + contrib/tip/make_vc.bat
   * contrib/tip/tip.ch
   * contrib/tip/utils.c
   * contrib/tip/base64x.c
   * contrib/tip/encmthd.c
   - contrib/tip/hbhex2n.c
   * contrib/tip/cgi.prg
   * contrib/tip/client.prg
   * contrib/tip/ftpcln.prg
   * contrib/tip/httpcln.prg
   * contrib/tip/mail.prg
   * contrib/tip/thtml.prg
   * contrib/tip/url.prg
     + Code converted to not require xhb lib.
     % Now compiled with -kM switch to avoid macro expansion 
       of strings. This is important here, as "&" char is used 
       quite often in the code, so expect a somewhat better 
       performance.
     - Removed hex number conversion functions, as compatible 
       versions are now available in Harbour with am hb_ prefix.
     + C code update to use Harbour API calls only.
     + Added VC build script.
     ! Fixed two C warnings.
     ! Standardized SVN header in one file.
     ! Set std SVN keywords and eol-style.
     ; Please test it.

   * include/hbextern.ch
   * source/rtl/hbinet.c
   * contrib/xhb/xhb.ch
   * contrib/xhb/xhbfunc.c
     * Renamed hb_IsInetSocket() to hb_inetIsSocket() to 
       keep all inet related functions in one namespace.
2007-10-01 22:17:21 +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
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
Viktor Szakats
d71fa590e7 2007-09-25 04:30 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/xhb/Makefile
   * contrib/xhb/xhbfunc.c
   + contrib/xhb/xhb.ch
   + contrib/xhb/xhbcomp.prg
     + Added xhb_AScan(), xhb_AIns(), xhb_ADel() plus defines 
       to redirect extended AScan(), AIns(), ADel() calls to these 
       functions. They need to be tested as I'm no xhb user.
     + Added compatibility header, which adds a the above translations 
       and include hbcompat.ch.
     + Added INIT PROC xhb_Init() as a future place for xhb specific 
       startup settings.
     ; TODO:
       - Add $ and [] operator overloading.
       - Add operator overloading for hash type.
       - Add a way hash API call to control the default flag 
         hb_hashNew() uses, then add this default setting to 
         the xhb libs INIT PROC.
     ; For better xhb compatibility, developers should add 
       #ifndef __XHARBOUR__
          #include "xhb.ch"
       #endif
       to every .prg file they use.

   + contrib/xhb/make_b32.bat
   + contrib/xhb/make_vc.bat
   + contrib/xhb/makefile.bc
   + contrib/xhb/makefile.vc
     + Added non-GNU makefiles for xhb lib.

   * include/hbcompat.ch
     + Added xhb compatibility translates for ENDSWITCH end friends.

   * source/rtl/scrollbr.prg
     * Minor formatting.
2007-09-25 02:43:22 +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
f98cc37e3c 2007-09-24 02:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/ole2/win32ole.prg
    * changed Invoke() method to work with core code compiled without
      HB_COMPAT_XHB

  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rdd/dbcmd.c
    * code clean-up

  * harbour/include/hbset.h
  * harbour/source/rtl/set.c
    * code clean-up
    + added functions to access set parameters:
         hb_setAltHan()
         hb_setCentury()
         hb_setExtraHan()
         hb_setPrintHan()
         hb_setAlternate()
         hb_setAltFile()
         hb_setAutOpen()
         hb_setAutOrder()
         hb_setAutoShare()
         hb_setBell()
         hb_setCancel()
         hb_setColor()
         hb_setConfirm()
         hb_setConsole()
         hb_setDateFormat()
         hb_setDebug()
         hb_setDecimals()
         hb_setDefault()
         hb_setDeleted()
         hb_setDelimChars()
         hb_setDelimiters()
         hb_setDevice()
         hb_setEOF()
         hb_setEpoch()
         hb_setEscape()
         hb_setEventMask()
         hb_setExact()
         hb_setExclusive()
         hb_setExit()
         hb_setExtra()
         hb_setExtraFile()
         hb_setFixed()
         hb_setIdleRepeat()
         hb_setInsert()
         hb_setIntensity()
         hb_setPath()
         hb_setMargin()
         hb_setMBlockSize()
         hb_setMCenter()
         hb_setMessage()
         hb_setMFileExt()
         hb_setOptimize()
         hb_setPrinter()
         hb_setPrintFile()
         hb_setScoreBoard()
         hb_setScrollBreak()
         hb_setSoftSeek()
         hb_setStrictRead()
         hb_setTypeAhead()
         hb_setUnique()
         hb_setFileCase()
         hb_setDirCase()
         hb_setDirSeparator()
         hb_setVideoMode()
         hb_setWrap()
         hb_setDBFLockScheme()
         hb_setHardCommit()
         hb_setForceOpt()
         hb_setDefExtension()
         hb_setEOL()
         hb_setTrimFileName()
      This is compatible with recent modifications by Andi Jahja
      in xHarbour.
2007-09-24 00:09:15 +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
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
Viktor Szakats
683744e6ca 2007-09-17 18:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tbrowsys.prg
   * source/rtl/getsys.prg
   * source/rtl/tbrowse.prg
     ! Some rearrangements to avoid including the C5.3 
       compatible (and yet to be implemented) bloat in tbrowsys.prg
2007-09-17 16:42:43 +00:00
Viktor Szakats
b6d6464779 2007-09-17 13:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* tests/rto_get.prg
   * tests/rto_tb.prg
   * source/rtl/gui.prg
   + source/rtl/tbrowsys.prg
   * source/rtl/tmenusys.prg
   * source/rtl/menusys.prg
   * source/rtl/tscalar.prg
   * source/rtl/tbrowse.prg
     + Added missing file from previous commit.
     + Set Id keyword and eol-style to native on newly added files.
2007-09-17 11:27:09 +00:00
Viktor Szakats
b2561a13f0 2007-09-17 12:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tscalar.prg
     ! Some fixes for previous commit regarding scalar classes.
2007-09-17 10:35:07 +00:00
Viktor Szakats
9303fd7c30 2007-09-17 12:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* common.mak
   + source/rtl/tbrowsys.prg
   * source/rtl/Makefile
   * source/rtl/getsys.prg
   * source/rtl/tbrowse.prg
     + Added new file for C5.3 TB*() functions.
       Most of them is dummy, a few of them were moved 
       here from existing files.

   * include/hbextern.ch
     + Added rest of C5.3 TB*() functions.

   * source/rtl/teditor.prg
     ! Fixed new scope violations reported by Guillermo.

   * source/rtl/tbrowse.prg
     + :border implemented (to be tested).
     ! :setColumn() return value fixed, NOTE added.
     ! Non-character :picture handled properly.
       (to be tested for full compatibility)
     % Some optimizations.
     - :TApplyKey() removed (it is not a C5.3 method)
     ; Some source cleanup and other changes.
     ; Work in progress.

   * include/hbextern.ch
   * common.mak
   * source/rtl/Makefile
   + source/rtl/tscalar.prg
   - source/rtl/array.prg
   - source/rtl/block.prg
   - source/rtl/characte.prg
   - source/rtl/date.prg
   - source/rtl/logical.prg
   - source/rtl/nil.prg
   - source/rtl/numeric.prg
   - source/rtl/scalar.prg
     + Consolidated scalar classes to one file.
     + Minor optimizations and cleanup done on files.
     + Class function names now consistently HB*()
       (was non-Class(y) compatible and a mixed list 
       of plain unprefixed class names and class names 
       prefixed with an underscore). Notice however that 
       Class(y) has only CsyArray() defined in its own 
       library, the rest was seemingly made only 
       available as additional source code.
     ! Fixed NIL class to be named NIL (was _NIL).
     % Some unneeded MESSAGE redirections removed.
     % LOCAL var[0] -> LOCAL var := {}. This results 
       in better pcode.
     + Added all these symbols to hbextern.ch

   * source/rtl/symbol.prg
     * Some cleanup.
     ; I believe this should be named HBSymbol() and 
       added to hbextern.ch
2007-09-17 10:28:19 +00:00
Viktor Szakats
4aadee430a 2007-09-16 20:14 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tbrowse.prg
     ! C5.x compatible fix for non-numeric values inside the 
       defColor array or the one returned by colorBlock.
2007-09-16 18:16:26 +00:00
Viktor Szakats
76aaa169db 2007-09-16 18:44 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tbrowse.prg
     ! Another fix for TBrowse() full color compatibility.
2007-09-16 16:44:52 +00:00
Viktor Szakats
75ebef1fad 2007-09-16 12:53 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/libct/makefile.vc
     * Some alignment.

   * source/rtl/listbox.prg
     ! Using manifest constant.

   * source/rtl/tbrowse.prg
     ! Some final fixes for full color compatibility.

   * source/common/hbver.c
     + Added NOTE about what CA-Cl*ppers are returning 
       for Version().
2007-09-16 10:54:46 +00:00
Viktor Szakats
1091b1a150 2007-09-14 18:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/tbrowse.prg
     ! Color handling made fully C5.x compatible. Pls test.
     + One C5.3 bug replicated where no special header/footer 
       colors are being used if there is not header/footer separator 
       sepcified.
     ! Fixed compile error (because of unused var warning) when 
       HB_COMPAT_C53 is not defined.

   * source/rtl/numeric.prg
   * source/rtl/memoedit.prg
   * source/rtl/typefile.prg
   * source/rtl/block.prg
   * source/rtl/symbol.prg
   * source/rtl/errorsys.prg
   * source/rtl/scalar.prg
   * source/rtl/nil.prg
   * source/rtl/radiogrp.prg
   * source/rtl/logical.prg
   * source/rtl/array.prg
   * source/rtl/listbox.prg
   * source/rtl/browse.prg
   * source/rtl/characte.prg
   * source/rtl/pushbtn.prg
   * source/rtl/ttextlin.prg
   * source/rtl/profiler.prg
   * source/rtl/date.prg
   * source/rtl/persist.prg
   * source/debug/dbgbrwsr.prg
   * source/debug/tbrwtext.prg
   * source/debug/dbgtmenu.prg
     + Enabled "PROTECTED:" keyword in profiler.prg
     * Finished CLASS declarations to use a more or less consistent syntax 
       inside Harbour (Class(y) compatible except SETGET and the METHOD 
       parameter lists, maybe some more).
     * Finished WHILE, iif(), END, string quotation to be consistent along Harbour.
     ! Fixed some indentations.
     * Some other minor cleanups.
2007-09-15 11:54:39 +00:00
Viktor Szakats
1596493ade 2007-09-14 18:46 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/source/rtl/tbrowse.prg
     ! Fixed cell color. This was needed because the oCol:colorBlock() 
       now always contains a block (it cannot be NIL) to be CA-Cl*pper 
       compatible, so the logic had to be adjusted in :DispCell() 
       accordingly.
2007-09-14 16:48:10 +00:00