Commit Graph

279 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
7c254a3168 2009-09-11 20:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
    + added hb_xgrabz() and hb_xmemdup() macros

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added new functions which can be used in translations changing the
      size of trnaslated strings:
         hb_cdpDup(), hb_cdpnDup(), hb_cdpnDup2(), hb_cdpnDup3(),
         hb_cdpnDupLen(), hb_cdpnDup2Len()
      Now hb_cdp[n]Translate() functions are depreciated.
    + added pseduto codepage "UTF8" which can be used in trnaslations only
    + added new function hb_cdpFindExt() which allows to chose pseudo CPs

  * harbour/include/hbapi.h
  * harbour/include/hbset.h
  * harbour/source/vm/set.c
  * harbour/source/nortl/nortl.c
    - removed old functions: hb_osEncode() and hb_osDecode() with low level
      code which was using static char to char translation table
    + add new functions hb_osEncodeCP() and hb_osDecodeCP() which can make
      translations changing the size of translated strings.
      Warning all parameters have to be initialized.
      Passing NULL in second parameter means that the 1-st is dynamically
      allocated and can be used as buffer and reallocated if necessary.
      if 2-nd parameter is not NULL then the 1-st one is used as const value.
      The size of allocated buffer can be passed by reference in 3-rd
      parameter and this value is updated on reallocation.
      If buffer is two small then new bigger one is allocated and old one
      freed.

  * harbour/source/vm/set.c
    + added support for UTF8 translations in _SET_OSCODEPAGE

  * harbour/source/vm/cmdarg.c
  * harbour/source/common/hbffind.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/philes.c
  * harbour/source/rtl/gete.c
  * harbour/source/rtl/net.c
  * harbour/source/rtl/hbproces.c
  * harbour/source/rtl/hbrunfun.c
  * harbour/source/rtl/run.c
  * harbour/contrib/hbwin/win_misc.c
  * harbour/contrib/hbwin/wapi_shellapi.c
  * harbour/contrib/hbwin/wapi_winbase.c
    * use new hb_osEncodeCP()/hb_osDecodeCP() functions

  * harbour/source/rtl/hbi18n1.c
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtpca/gtpca.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()

  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/hbgtcore.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()
    + added support for UTF8 translations set by hb_setDispCP() and
      hb_setTermCP() functions

  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()
    + added support for CP translations which can change the size of
      translated strings
    ! disabled memo field translations for fields marked as binary
    + added support for UTF8 translations.
      Using UTF8 as CP disables any national sorting in indexes.
      Warning: please remember that normal character fields in tables have
               fixed size and translation to UTF8 may increase the string
               and cut results.

  * harbour/source/rdd/dbf1.c
    ! fixed GPF in dbCreate() with empty struct table
2009-09-11 18:38:10 +00:00
Viktor Szakats
b14c719757 2009-08-23 17:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* doc/gmake.txt
  * doc/man/hbmk.1
  * doc/whatsnew.txt
  * external/sqlite3/Makefile
  * external/libhpdf/Makefile
  * include/hbapi.h
  * include/hbver.ch
  * utils/hbmk2/hbmk2.prg
  * contrib/hbhpdf/Makefile
  * source/vm/cmdarg.c
  * source/main/harbour.c
  * source/rtl/version.c
  * config/global.mk
  * config/dir.mk
  * config/common/watcom.mk
  * config/rules.mk
  * examples/superlib/superlib.hbc
  * examples/superlib/superlib.hbp
  * examples/hbmsql/hbmsql.hbc
  * examples/hbmsql/hbmsql.hbp
  * examples/hbsqlit2/hbsqlit2.hbp
  * examples/hbsqlit2/hbsqlit2.hbc
  * examples/gfspell/gfspell.hbp
  * examples/gfspell/gfspell.hbc
  * examples/hbapollo/hbapollo.hbp
  * examples/hbapollo/hbapollo.hbc
    * HB_ARCH_AUTO -> HB_PLAT_AUTO
    * HB_HOST_ARCH -> HB_HOST_PLAT
    * 'architecture' -> 'platform' in text.
    * HB_VERSION_BUILD_ARCH -> HB_VERSION_BUILD_PLAT
      (INCOMPATIBLE, if you happen to use this from previous dev/beta version)
    * hb_verHB_ARCH() -> hb_verHB_PLAT()
    * ${hb_arch} -> ${hb_plat}

  * INSTALL
    * Minor update.
2009-08-23 15:06:11 +00:00
Viktor Szakats
ecb56859df 2009-07-30 06:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/common/hbdate.c
    ! Fixed for some systems where tm->tm_gmtoff isn't available.
      (like sunos). Thanks to Tamas Tevesz for report and pointer.

  * contrib/rddads/adsfunc.c
    + ADSCREATESAVEPOINT()
      ADSROLLBACKSAVEPOINT()
      Added support for 3rd optional parameter on Harbour level.

  * include/hbapi.h
  * source/vm/extend.c
    + hb_parnidef(), hb_parnldef() to give a faster and shorter
      alternative to HB_ISNUM( x ) ? hb_parn[i|l]( x ) : <value>
      construct, which quite often occure in C interface code.
      We may also add a hb_parl() version which returns TRUE,
      this covers most real-life usages.

  * examples/uhttpd2/socket.c
  * examples/httpsrv/socket.c
    % Deleted local hb_parnidef() wrapper.
2009-07-30 04:36:35 +00:00
Viktor Szakats
a67b63175a 2009-07-23 12:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbmisc/dates2.c
    * Renamed DAYSINMONTH() to HBMISC_DAYSINMONTH(),
      to avoid collision with hbct function with the same
      name, but different functionality.
    - Deleted functions below from hbmisc library:
      EOM(), BOM(), WOM(), DOY(), WOY(), EOY(), BOY()
      They have superior alternatives with the same name
      in hbct lib, please use those.

  * contrib/hbssl/evpciph.c
  * contrib/hbssl/ssl.c
  * contrib/hbssl/bio.c
  * contrib/hbssl/tests/pem.prg
  + contrib/hbssl/tests/pubkey.pem
  * contrib/hbssl/tests/crypt.prg
  * contrib/hbssl/err.c
    + Added EVP_SEALINIT() (under development)
    + Added EVP_SEALUPDATE(), EVP_SEALFINAL().
    + Added SSL_SET_MSG_CALLBACK() (it's a debug function really,
      and the solution is slightly hackish, as I have to access
      OpenSSL structure and Harbour item freeing needs to be done
      manually. Anyhow it can be excluded from builds.
    + Added ERR_LOAD_CRYPTO_STRINGS().
    + Added ERR_PRINT_ERRORS(). (very useful)
    + Added ERR_FREE_STRINGS().

  * include/hbapi.h
  * source/vm/arrays.c
  * source/vm/extend.c
  * source/debug/dbgentry.c
  * source/rtl/hbgtcore.c
    ! Renamed API function hb_arraySetCPtr() to hb_arraySetCLPtr().
      Old function name still available for compatibility.
2009-07-23 10:03:20 +00:00
Viktor Szakats
2849c6e191 2009-07-22 15:39 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * source/common/hbstr.c
  * source/rtl/hbmd5.c
    * Moved (and somewhat standardized and renamed) mem to hex C
      function from hbm5/rtl to common lib.

  * bin/hb-func.sh
    ! Fixed double '%' chars in hbmk.cfg generation.

  * contrib/hbcrypt/Makefile
  + contrib/hbcrypt/hbsha1.c
  + contrib/hbcrypt/hbsha1hm.c
  + contrib/hbcrypt/tests/testsha1.prg
    + Added HB_SHA1() and HB_HMAC_SHA1() functions.

  * source/rtl/hbmd5.c
    * Changed meaning of second boolean parameter. From
      now on a .T. has to be passed to get binary output.
      (I won't list this as a incompatible, as the new
      parameter has just been introduced)
    ; by now HB_MD5() and HB_SHA*() functions are synced 
      in functionality.

  * contrib/hbcrypt/hbsha1.c
  * contrib/hbcrypt/hbsha2.c
  * contrib/hbcrypt/hbsha1hm.c
  * contrib/hbcrypt/hbsha2hm.c
  * contrib/hbcrypt/tests/testsha2.prg
    * Changed all SHA2 functions to returned digest in hex
      format by default. The binary format can be requested by
      passing .T. as an extra parameter.
      INCOMPATIBLE: Please update your sources if you used
                    these functions. Add .T. parameter to keep
                    current workings.

  * contrib/hbcurl/hbcurl.c
    % Cleaned types (no BYTE, no BOOL, deleted unnecessary casts).
      Only a few ULONGs remained.

  * contrib/hbssl/pem.c
    + Some advances.
2009-07-22 13:41:36 +00:00
Viktor Szakats
e2cca2e1e6 2009-07-20 17:45 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/win_reg.prg
  * contrib/hbwin/win_regc.c
    ! GETREGISTRY() fixed to return default only if the
      registry entry doesn't exist. Previously it was
      falling back to default even if the value existed but
      was empty. In case of empty string, these weren't
      possible to write from hbwin, but could exist in registry
      when written by other tools.
    ! GETREGISTRY() fixed to return binary data as string
      for REG_BINARY types. (previously it was returning
      an unsigned int - essentially truncating everything
      beyong the first 4 bytes).
    ! GETREGISTRY() fixed to swap words for REG_DWORD_BIG_ENDIAN
      values to return correct unsigned integer results.
      (not tested)
    ! GETREGISTRY() fixed to strip only the ending Chr( 0 )
      from string values. This makes it possible to utilize
      strings containing nul chars (obviously) and also to
      parse REG_MULTI_SZ multistring values.
    ! GETREGISTRY() fixed to not RTE if WIN_REGQUERYVALUEEX()
      returned non-null length and a non-string value.
      I still have to understand how this was possible, but
      I got a report that it happened on a system.
    ! WIN_REGQUERYVALUEEX() fixed to store NIL in 5th param,
      if the registry entry doesn't exist.
    ! WIN_REGQUERYVALUEEX() fixed to store empty string when
      registry value is zero length.

  * include/hbapi.h
  * source/vm/extend.c
    + Added API hb_stor() to store a NIL into a parameter passed
      by reference.

  * source/vm/arrays.c
    * Minor formatting.
2009-07-20 15:48:57 +00:00
Viktor Szakats
2a4e728aa9 2009-07-10 04:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * source/vm/fm.c
  * source/rtl/fstemp.c
  * source/rtl/ampm.c
  * source/rtl/fkmax.c
  * source/rtl/isprint.c
  * source/rtl/samples.c
  * source/rtl/inkey.c
  * source/rtl/fmhb.c
  * source/rtl/colorind.c
  * source/rtl/hbffind.c
    * USHORT -> int.
2009-07-10 02:31:59 +00:00
Viktor Szakats
cd2e990242 2009-07-10 02:19 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbgtcore.h
  * include/hbapigt.h
  * include/hbapi.h
  * source/rtl/scroll.c
  * source/rtl/maxrow.c
  * source/rtl/gtapi.c
  * source/rtl/saverest.c
  * source/rtl/console.c
  * source/rtl/oldclear.c
  * source/rtl/hbgtcore.c
  * source/rtl/scrrow.c
  * source/rtl/shadow.c
  * source/rtl/setcurs.c
  * source/rtl/mouse53.c
  * source/rtl/gx.c
  * source/rtl/mouseapi.c
  * contrib/hbct/cursor.c
  * contrib/hbct/ctwfunc.c
  * contrib/hbclipsm/gauge.c
    * Changed all USHORT to int in high-level GT API layer which
      already had an int representation on the low-level.
      Please review me. It's possible that some extra checks (or else)
      need to be added since signedness has changed.
    * Change mouse state buffer from char * to void *.
    ; TODO: Review remaining BYTE/USHORT usage for attr, color 
            and char. Char is sometimes represented by UCHAR, 
            sometimes by char and sometimes by USHORT. Color is 
            represented by both int and BYTE. attr is BYTE, which 
            can be changed to hbU8.
2009-07-10 00:23:44 +00:00
Przemyslaw Czerpak
2532ca9143 2009-07-08 20:33 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    ! fixed macropop used with messages

  * harbour/include/hbapi.h
  * harbour/source/vm/hvm.c
    * added code to debug recover statements - it's disabled by default
2009-07-08 18:33:12 +00:00
Przemyslaw Czerpak
0e9b041baa 2009-07-03 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyc
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
    % reduced INASSING definition - thanks to Xavi for information

  * harbour/source/compiler/hbopt.c
    ! fixed stupid bug in logical expression optimization - thanks to Randy
      for self contain example

  * harbour/include/hbapi.h
  * harbour/include/hbmacro.h
  * harbour/include/hbexprb.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/hvm.c
  * harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyc
    + added direct support for pushing references to macro expressions.
      It resolves the problem with Clipper compatibility (thanks to Alex
      for information and example) in code like:
         m->var := {0}
         &("var[1]") += 10
      and also many other things, f.e. now Harbour can cleanly compile
      and execute this code:
            proc main
               local s
               m->o := errorNew()
               s:="o:tries"
               ? m->o:tries
               ? &s
               ? &(s+"+=2")
               ? m->o:tries
               ? &(s+":=3")
               ? m->o:tries
               ?
               &s := 4
               ? m->o:tries
               &s -= 2
               ? m->o:tries
               &s++
               ? m->o:tries
               ?
               s := "o"
               m->o := 1
               ? &s
               &s := &s + 4
               ? &s
               ? &s += 5
               ? --&s
               ?
               s := "o[2]"
               m->o := { 1, 2 }
               ? &s
               &s := &s + 4
               ? &s
               ? &s += 5
               ? --&s
            return

  * harbour/utils/hbtest/Makefile
    * force hbtest compilation with line numbers - information about line
      numbers is important part of this test.
2009-07-03 00:24:36 +00:00
Viktor Szakats
03caef2ec2 2009-07-02 15:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcomp.h
  * include/hbcompdf.h
  * include/hbapifs.h
  * include/hbexprop.h
  * include/hbmacro.h
  * include/hbapi.h
  * include/hbapiitm.h
  * include/hbdate.h
  * source/pp/ppcore.c
  * source/vm/itemapi.c
  * source/vm/arrays.c
  * source/vm/extend.c
  * source/common/expropt1.c
  * source/rtl/philes.c
  * source/rtl/empty.c
  * source/rtl/minmax.c
  * source/rtl/dates.c
  * source/rtl/filesys.c
  * source/rdd/dbfnsx/dbfnsx1.c
  * source/rdd/dbfcdx/dbfcdx1.c
  * source/rdd/dbf1.c
  * source/rdd/dbffpt/dbffpt1.c
  * source/rdd/hbsix/sxdate.c
  * source/compiler/hbmain.c
  * source/compiler/complex.c
  * source/compiler/harbour.yyc
  * source/compiler/harbour.y
  * contrib/hbct/files.c
  * contrib/hbct/dattime2.c
  * contrib/hbct/datetime.c
  * contrib/xhb/filestat.c
  * contrib/hbtip/utils.c
  * examples/hboleold/win_ole.c
    * LONG -> long for date/time related values
      (julian, date, type, millisec)
    ; This is an effort to clean Harbour sources from
      Windows/legacy-Clipper basic types and replace
      them with own or ANSI C ones.
      In the above case, usage wasn't consistent,
      LONG and long were mixed.

  * source/main/harbour.c
  * source/vm/fm.c
    * LONG -> long for some stat counters.
2009-07-02 14:18:06 +00:00
Przemyslaw Czerpak
9220ae716c 2009-07-02 01:19 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/extend.c
    * changed type of returned value in hb_par[v]ds() functions
      from 'char *' to 'const char *'
2009-07-01 23:20:05 +00:00
Viktor Szakats
a77f478287 2009-07-01 08:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/gtwvt/gtwvt.c
    ! Fixed maximize button state when HB_GTI_RESIZABLE is set to .T.
      before the window is drawn.
      Please test.
    % Cleaned windows style definitions in source.

  * include/hbstack.h
  * include/hbapi.h
    * Formatting in comment.
2009-07-01 06:37:45 +00:00
Viktor Szakats
83a6162d7f 2009-06-25 14:37 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * source/vm/maindllp.c
  * source/vm/extend.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvgutils.c
    * Changed hb_parv*() function return value to 'const char *'.
2009-06-26 12:37:23 +00:00
Przemyslaw Czerpak
9e3ae49cb6 2009-06-26 03:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbinit.h
  * harbour/include/hbapi.h
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/set.c
  * harbour/source/rtl/cdpapi.c
    * replace old hb_vmProcessSymbols() with hb_vmProcessSymbolsEx()
      and removed hb_vmProcessSymbolsEx() - it efectively force all .prg
      code recompilation
    * removed old hb_vmProcessDllSymbols()
    * changed 'char *' to 'const char *' in:
         const char * hb_cdpSelectID( const char * );
         const char * hb_cdpID( void );
         void hb_xsetfilename( const char * szValue );
         void hb_xsetinfo( const char * szValue );
         int hb_memvarScope( const char * szVarName, ULONG ulLength );
         const char * hb_macroGetType( HB_ITEM_PTR pItem );
2009-06-26 01:17:15 +00:00
Viktor Szakats
340fc1f1de 2009-06-25 02:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
  * make_gnu.bat
    + Added support for Cygwin builds (passes call to make_gnu.sh).
    + Added Cygwin build starter example.
    + Cygwin mentioned as a requirement for mingwarm builds,
      also added to PATH.
    ! Fixed cygwin autodetection.
    ! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
    * Merged mingw+msys and cygwin bash based build methods,
      and titled as "alternate" method.
      Now all supported compilers work by starting up make_gnu.bat.

  * utils/hbmk2/hbmk2.prg
    ! Change compiler autodetection to work for cygwin.

  * mpkg_dos.bat
  * mpkg_win.bat
  * make_gnu.bat
    ! Fixed build process to work in paths containing spaces.
      I didn't test the batch in pure DOS, so I may have broken it.

  * config/win/install.cf
  * config/wce/install.cf
    ! Fixed 'install' to work when there is a space in install path.

  * make_gnu.bat
  * INSTALL
    + Added support for HB_BUILD_LOG envvar. If set to 'yes',
      it will automatically set log output filename to:
         'log-<arch>-<comp>.txt'
      if set to 'no' it will no make any extra redirection,
      if set to any other value, it will be used for output
      (both std and err). The batch will set HB_BUILD_LOGFILE
      to the filename used for output for processing.
      This feature requires Windows NT or upper host.
      I didn't enable this feature yet by default to not break
      existing user setups, but maybe I'll do it before the
      final release.
    * Modified text shown (+ beep thrown) when build failed.
    * Messages now all start with 'Harbour'.
    * Do not do the second build pass if the first one failed.

  * contrib/hbwin/legacy.prg
    ! Fixed CreateObject() not working due to typo.
      Thanks to Itamar Lins for the report.

  * mpkg_dos.bat
  * mpkg_win.bat
  * mpkg_win.nsi
    + Enabled HB_BUILD_LOG=yes.
    * Silenced copy, zip, makensis commands.
    + Added message about failed build process.
    * Changed to use 'copy' instead of 'xcopy'
    * Changed internals so now they don't require HB_COMPILER
      and HB_ARCHITECTURE to be set. This means that now
      we can rely on autodetection even for mpkg_*.bat files.
      Creating an installer is very easy now for most cases.
      Just type:
         mpkg_gnu.bat

  * source/vm/set.c
    + Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
      is set to .T.. This is the default which means by default we aren't
      CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.

  * source/rdd/dbf1.c
    ! Minor typo in comment.

  * doc/en-EN/hb_apiit.txt
  * include/hbapi.h
  * include/hbapiitm.h
  * source/vm/itemapi.c
  * source/vm/extend.c
  * source/rtl/gtwvt/gtwvt.c
  * source/rdd/dbf1.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/hbwin/olecore.c
  * examples/hboleold/win_ole.c
    * Finishing long planned function renames to clear up
      a very (10 years) old naming inconsistency.
      To adapt you code to this, please do changes below:
         1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
         2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
      Unmodified code will generate compile time errors, so it's easy
      to spot where the modifications need to be done. For most users,
      only case 1) will need to be dealt with.
    ; INCOMPATIBLE. Please update your code.

  * source/rtl/hbi18n1.c
  * source/rdd/dbfnsx/dbfnsx1.c
    * hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()

  * contrib/gtwvg/wvggui.c
  * contrib/gtqtc/gtqtc.cpp
    ! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
      parameter.
2009-06-26 01:11:11 +00:00
Przemyslaw Czerpak
c3e1436da0 2009-06-26 02:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbrdddbf.h
  * harbour/include/hbapidbg.h
  * harbour/include/hbset.h
  * harbour/include/hbcomp.h
  * harbour/include/hbapirdd.h
  * harbour/include/hbstack.h
  * harbour/include/hbsxfunc.h
  * harbour/include/hbapilng.h
  * harbour/include/hbgtcore.h
  * harbour/include/hbapifs.h
  * harbour/include/hbdbsort.h
  * harbour/include/hbapigt.h
  * harbour/include/hbapi.h
  * harbour/include/hbapierr.h
  * harbour/include/hbapiitm.h
  * harbour/include/hbrddfpt.h
  * harbour/contrib/hbmysql/mysql.c
  * harbour/contrib/hbct/bitnum.c
  * harbour/contrib/hbct/token2.c
  * harbour/contrib/hbct/charsprd.c
  * harbour/contrib/hbct/ctnet.c
  * harbour/contrib/hbct/charonly.c
  * harbour/contrib/hbct/atadjust.c
  * harbour/contrib/hbct/ctwin.c
  * harbour/contrib/hbct/charsort.c
  * harbour/contrib/hbct/ctwin.h
  * harbour/contrib/hbct/charmix.c
  * harbour/contrib/hbct/charevod.c
  * harbour/contrib/hbct/maxline.c
  * harbour/contrib/hbct/wordrepl.c
  * harbour/contrib/hbct/charrepl.c
  * harbour/contrib/hbct/files.c
  * harbour/contrib/hbct/video.c
  * harbour/contrib/hbct/charswap.c
  * harbour/contrib/hbct/dattime3.c
  * harbour/contrib/hbct/charop.c
  * harbour/contrib/hbct/misc2.c
  * harbour/contrib/hbct/charone.c
  * harbour/contrib/hbct/ctstr.c
  * harbour/contrib/hbct/screen1.c
  * harbour/contrib/hbct/token1.c
  * harbour/contrib/hbct/ctstr.h
  * harbour/contrib/hbct/charmirr.c
  * harbour/contrib/hbct/relation.c
  * harbour/contrib/hbct/atnum.c
  * harbour/contrib/hbct/like.c
  * harbour/contrib/hbct/count.c
  * harbour/contrib/hbct/disk.c
  * harbour/contrib/hbct/ctstrfil.c
  * harbour/contrib/hbct/posdiff.c
  * harbour/contrib/hbct/addascii.c
  * harbour/contrib/hbct/tab.c
  * harbour/contrib/hbct/numline.c
  * harbour/contrib/hbct/dattime2.c
  * harbour/contrib/hbct/asciisum.c
  * harbour/contrib/hbct/expand.c
  * harbour/contrib/hbct/pos2.c
  * harbour/contrib/hbct/numat.c
  * harbour/contrib/hbct/atrepl.c
  * harbour/contrib/hbct/wordtoch.c
  * harbour/contrib/hbct/print.c
  * harbour/contrib/hbct/justify.c
  * harbour/contrib/xhb/hbxml.c
  * harbour/contrib/xhb/dbf2txt.c
  * harbour/contrib/xhb/xhbis.c
  * harbour/contrib/xhb/fparse.c
  * harbour/contrib/xhb/xstrdel.c
  * harbour/contrib/xhb/hbcomprs.c
  * harbour/contrib/xhb/datesxhb.c
  * harbour/contrib/xhb/xhbmsgs.c
  * harbour/contrib/xhb/freadlin.c
  * harbour/contrib/xhb/txtline.c
  * harbour/contrib/xhb/xhbtrim.c
  * harbour/contrib/xhb/xhbcopyf.c
  * harbour/contrib/xhb/cstructc.c
  * harbour/contrib/xhb/xhbfunc.c
  * harbour/contrib/hbtpathy/tplinux.c
  * harbour/contrib/hbgt/charmixg.c
  * harbour/contrib/hbgt/strexpan.c
  * harbour/contrib/hbgt/charodd.c
  * harbour/contrib/hbgt/strright.c
  * harbour/contrib/hbgt/asciisgt.c
  * harbour/contrib/hbgt/strdiffg.c
  * harbour/contrib/hbgt/chrtotal.c
  * harbour/contrib/hbgt/strcount.c
  * harbour/contrib/hbgt/strleft.c
  * harbour/contrib/hbgt/ascposgt.c
  * harbour/contrib/hbgt/chrfirst.c
  * harbour/contrib/hbgt/chrcount.c
  * harbour/contrib/hbgt/strpbrk.c
  * harbour/contrib/hbgt/chareven.c
  * harbour/contrib/hbgt/strcspn.c
  * harbour/contrib/hbgt/atdiff.c
  * harbour/contrib/hbsqlit3/hbsqlit3.c
  * harbour/contrib/hbmzip/hbmzip.c
  * harbour/contrib/hbnf/proper.c
  * harbour/contrib/hbnf/fttext.c
  * harbour/contrib/hbnf/chdir.c
  * harbour/contrib/hbnf/getver.c
  * harbour/contrib/hbnf/ftattr.c
  * harbour/contrib/hbnf/mkdir.c
  * harbour/contrib/hbnf/rmdir.c
  * harbour/contrib/Makefile
  * harbour/contrib/hbcurl/hbcurl.c
  * harbour/contrib/rddsql/sddmy/mysqldd.c
  * harbour/contrib/rddsql/sddpg/pgsqldd.c
  * harbour/contrib/rddsql/sddfb/fbirddd.c
  * harbour/contrib/rddsql/sddodbc/odbcdd.c
  * harbour/contrib/rddsql/sqlmix.c
  * harbour/contrib/hbhpdf/harupdf.c
  * harbour/contrib/rddads/adsx.c
  * harbour/contrib/rddads/adsfunc.c
  * harbour/contrib/rddads/rddads.h
  * harbour/contrib/rddads/ads1.c
  * harbour/contrib/hbmisc/hb_f.c
  * harbour/contrib/hbmisc/strfmt.c
  * harbour/contrib/hbmisc/stringsx.c
  * harbour/contrib/hbmisc/spd.c
  * harbour/contrib/hbtip/utils.c
  * harbour/contrib/hbwin/wapi_winbase.c
  * harbour/contrib/hbwin/win_misc.c
  * harbour/contrib/hbbtree/hb_btree.h
  * harbour/contrib/hbbtree/hb_btree.c
  * harbour/source/pp/hbpp.c
  * harbour/source/vm/runner.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/dynlibhb.c
  * harbour/source/vm/set.c
  * harbour/source/main/harbour.c
  * harbour/source/debug/dbgentry.c
  * harbour/source/common/hbfsapi.c
  * harbour/source/common/hbfopen.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/diskspac.c
  * harbour/source/rtl/console.c
  * harbour/source/rtl/chrasc.c
  * harbour/source/rtl/fscopy.c
  * harbour/source/rtl/run.c
  * harbour/source/rtl/spfiles.c
  * harbour/source/rtl/defpath.c
  * harbour/source/rtl/philes.c
  * harbour/source/rtl/oldbox.c
  * harbour/source/rtl/math.c
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/cdpapi.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/dirdrive.c
  * harbour/source/rtl/hbi18n1.c
  * harbour/source/rtl/trim.c
  * harbour/source/rtl/hbzlibgz.c
  * harbour/source/rtl/philesx.c
  * harbour/source/rtl/mlcfunc.c
  * harbour/source/rtl/filehb.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/is.c
  * harbour/source/rtl/hbrunfun.c
  * harbour/source/rtl/ampm.c
  * harbour/source/rtl/setcolor.c
  * harbour/source/rtl/oemansi.c
  * harbour/source/rtl/disksphb.c
  * harbour/source/rtl/hbzlib.c
  * harbour/source/rtl/strpeek.c
  * harbour/source/rtl/replic.c
  * harbour/source/rtl/stuff.c
  * harbour/source/rtl/hbstrfmt.c
  * harbour/source/rtl/transfrm.c
  * harbour/source/rtl/hbhex.c
  * harbour/source/rtl/trace.c
  * harbour/source/rtl/hbadler.c
  * harbour/source/rtl/samples.c
  * harbour/source/rtl/filebuf.c
  * harbour/source/rtl/hbcrc.c
  * harbour/source/rtl/gete.c
  * harbour/source/rtl/hbmd5.c
  * harbour/source/rtl/langapi.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/errapi.c
  * harbour/source/rtl/hbregexc.c
  * harbour/source/rtl/natmsg.c
  * harbour/source/rtl/fssize.c
  * harbour/source/rtl/hbinet.c
  * harbour/source/rtl/colorind.c
  * harbour/source/rtl/copyfile.c
  * harbour/source/rtl/mouseapi.c
  * harbour/source/rtl/soundex.c
  * harbour/source/rtl/memofile.c
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/gtapi.c
  * harbour/source/rtl/direct.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/file.c
  * harbour/source/rtl/val.c
  * harbour/source/rtl/hbregex.c
  * harbour/source/rtl/rat.c
  * harbour/source/rtl/isprint.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbsql.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/wacore.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbdetach.c
  * harbour/source/rdd/dbcmdx.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/hsx/hsx.c
  * harbour/source/rdd/dbcmd53.c
  * harbour/source/rdd/usrrdd/usrrdd.c
  * harbour/source/rdd/wafunc.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/hbsix/sxsem.c
  * harbour/source/rdd/hbsix/sxord.c
  * harbour/source/rdd/hbsix/sxfname.c
  * harbour/source/rdd/hbsix/sxtable.c
  * harbour/source/rdd/hbsix/sxdate.c
  * harbour/source/rdd/hbsix/sxutil.c
  * harbour/source/rdd/hbsix/sxcompr.c
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/hbcmplib.c
  * harbour/source/compiler/ppcomp.c
    * changed 'char *' and changed 'BYTE *' to 'const char *' in
      the following functions:
         const char * hb_vmFindModuleSymbolName( PHB_SYMB pSym );
         void  hb_vmInitSymbolGroup( void * hNewDynLib, int argc,
                                     const char * argv[] );
         void hb_dbgEntry( int nMode, int nLine, const char *szName,
                           int nIndex, PHB_ITEM pFrame );
         void hb_dbgAddBreak( void *handle, const char *cModule,
                              int nLine, const char *szFunction );
         void hb_dbgAddWatch( void *handle, const char *szExpr, BOOL bTrace );
         PHB_ITEM hb_dbgGetExpressionValue( void *handle,
                                            const char *expression );
         BOOL hb_dbgIsValidStopLine( void *handle, const char *szModule,
                                     int nLine );
         void hb_dbgSetToCursor( void *handle, const char *szModule,
                                 int nLine );
         void hb_dbgSetWatch( void *handle, int nWatch,
                              const char *szExpr, BOOL bTrace );
         const char * hb_setGetCPtr( HB_set_enum set_specifier );
         const char * hb_setGetAltFile( void );
         const char * hb_setGetDateFormat( void );
         const char * hb_setGetTimeFormat( void );
         const char * hb_setGetDefault( void );
         const char * hb_setGetDelimChars( void );
         const char * hb_setGetDevice( void );
         const char * hb_setGetExtraFile( void );
         const char * hb_setGetPath( void );
         const char * hb_setGetMFileExt( void );
         const char * hb_setGetPrintFile( void );
         const char * hb_setGetEOL( void );
         const char * hb_setGetHBOUTLOG( void );
         const char * hb_setGetHBOUTLOGINFO( void );
         const char * hb_setGetOSCODEPAGE( void );
         void hb_compInitPP( HB_COMP_DECL, int argc,
                             const char * const argv[] );
         void hb_compGenPCodeN( const BYTE * pBuffer, ULONG ulSize,
                                HB_COMP_DECL );
         int  hb_compMain( int argc, const char * const argv[],
                           BYTE ** pBufPtr, ULONG * pulSize,
                           const char * szSource );
         void hb_compChkCompilerSwitch( HB_COMP_DECL, int,
                                        const char * const args[] );
         void hb_compChkDefines( HB_COMP_DECL, int iArg,
                                 const char * const args[] );
         void hb_compGenCString( FILE * yyc, const BYTE * pText, ULONG ulLen );
         AREAP hb_rddRequestArea( const char * szAlias, PHB_ITEM pCargo,
                                  BOOL fNewArea, BOOL fWait );
         char * hb_stackDirBuffer( void );
         LONG hb_sxPtoD( const char * pDate );
         const char * hb_langID( void );
         const char * hb_langSelectID( const char * pszID );
         const char * hb_langDGetItem( int iIndex );
         const char * hb_langDGetErrorDesc( ULONG ulIndex );
         BOOL       hb_fsChDir( const char * pszDirName );
         HB_FHANDLE hb_fsCreate( const char * pszFileName, ULONG ulAttr );
         HB_FHANDLE hb_fsCreateEx( const char * pszFilename, ULONG ulAttr,
                                   USHORT uiFlags );
         HB_FHANDLE hb_fsCreateTemp( const char * pszDir,
                                     const char * pszPrefix,
                                     ULONG ulAttr, char * pszName );
         HB_FHANDLE hb_fsCreateTempEx( char * pszName, const char * pszDir,
                                       const char * pszPrefix,
                                       const char * pszExt, ULONG ulAttr );
         const char * hb_fsCurDir( USHORT uiDrive );
         USHORT     hb_fsCurDirBuff( USHORT uiDrive, char * pbyBuffer,
                                     ULONG ulLen );
         void       hb_fsBaseDirBuff( char * pbyBuffer );
         BOOL       hb_fsDelete( const char * pszFileName );
         BOOL       hb_fsFile( const char * pszFileName );
         BOOL       hb_fsIsDirectory( const char * pszFilename );
         HB_FOFFSET hb_fsFSize( const char * pszFileName, BOOL bUseDirEntry );
         HB_FHANDLE hb_fsExtOpen( const char * pszFileName,
                                  const char * pDefExt,
         char *     hb_fsExtName( const char * pFilename,
                                  const char * pDefExt, USHORT uiExFlags,
                                  const char * pPaths );
         BOOL       hb_fsMkDir( const char * pszDirName );
         HB_FHANDLE hb_fsOpen( const char * pszFileName, USHORT uiFlags );
         BOOL       hb_fsRmDir( const char * pszDirName );
         BOOL       hb_fsRename( const char * pszOldName,
                                 const char * pszNewName );
         BOOL       hb_fsGetFileTime( const char * pszFileName,
                                      LONG * plJulian, LONG * plMillisec );
         BOOL       hb_fsSetFileTime( const char * pszFileName,
                                      LONG lJulian, LONG lMillisec );
         BOOL       hb_fsGetAttr( const char * pszFileName, ULONG * pulAttr );
         BOOL       hb_fsSetAttr( const char * pszFileName, ULONG ulAttr );
         HB_FHANDLE hb_fsPOpen( const char * pFilename, const char * pMode );
         BOOL       hb_fsCopy( const char * pSource, const char * pDest );
         BOOL       hb_spFile( const char * pFilename, char * pRetPath );
         BOOL       hb_spFileExists( const char * pFilename, char * pRetPath );
         HB_FHANDLE hb_spOpen( const char * pFilename, USHORT uiFlags );
         HB_FHANDLE hb_spCreate( const char * pFilename, ULONG ulAttr );
         HB_FHANDLE hb_spCreateEx( const char * pFilename,
                                   ULONG ulAttr, USHORT uiFlags );
         PHB_FILE   hb_fileExtOpen( const char * pFilename,
                                    const char * pDefExt, USHORT uiExFlags,
                                    const char * pPaths, PHB_ITEM pError );
         PHB_FILE   hb_fileCreateTemp( const char * pszDir,
                                       const char * pszPrefix,
                                       ULONG ulAttr, char * pszName );
         PHB_FILE   hb_fileCreateTempEx( char * pszName, const char * pszDir,
                                         const char * pszPrefix,
                                         const char * pszExt, ULONG ulAttr );
         HB_ERRCODE hb_gtBox( SHORT uiTop, SHORT uiLeft, SHORT uiBottom,
                              SHORT uiRight, const BYTE * pbyFrame );
         HB_ERRCODE hb_gtDrawBox( SHORT uiTop, SHORT uiLeft, SHORT uiBottom,
                                  SHORT uiRight, const BYTE * pbyFrame,
                                  int iColor );
         HB_ERRCODE hb_gtWrite( const BYTE * pbyStr, ULONG ulLen );
         HB_ERRCODE hb_gtWriteAt( USHORT uiRow, USHORT uiCol,
                                  const BYTE * pbyStr, ULONG ulLen );
         HB_ERRCODE hb_gtWriteCon( const BYTE * pbyStr, ULONG ulLen );
         HB_ERRCODE hb_gtPutText( USHORT uiRow, USHORT uiCol,
                                  const BYTE * pStr, ULONG ulLength,
                                  int iColor );
         HB_ERRCODE hb_gtOutStd( const BYTE * pbyStr, ULONG ulLen );
         HB_ERRCODE hb_gtOutErr( const BYTE * pbyStr, ULONG ulLen );
         HB_ERRCODE hb_gtBoxEx( int iTop, int iLeft, int iBottom, int iRight,
                                const BYTE * pbyFrame, int iColor );
         void       hb_mouseRestoreState( const BYTE * pBuffer );
         const char * hb_strLTrim( const char * szText, ULONG * ulLen );
         const char * hb_conNewLine( void );
         const char * hb_conSetColor( const char * szColor );
         const char * hb_errGetDescription( PHB_ITEM pError );
         const char * hb_errGetFileName( PHB_ITEM pError );
         const char * hb_errGetOperation( PHB_ITEM pError );
         const char * hb_errGetSubSystem( PHB_ITEM pError );
         int hb_ctwAddWindowBox( int iWindow, const BYTE * szBox, int iColor );
         const char *ct_at_exact_forward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcMatch, size_t sMatchLen,
                                size_t *psMatchStrLen );
         const char *ct_at_exact_backward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcMatch, size_t sMatchLen,
                                size_t *psMatchStrLen );
         const char *ct_at_wildcard_forward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcMatch, size_t sMatchLen,
                                char cWildCard, size_t *psMatchStrLen );
         const char *ct_at_wildcard_backward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcMatch, size_t sMatchLen,
                                char cWildCard, size_t *psMatchStrLen );
         const char *ct_at_charset_forward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcCharSet, size_t sCharSetLen,
                                size_t *psMatchedCharPos );
         const char *ct_at_charset_backward
                              ( const char *pcString, size_t sStrLen,
                                const char *pcCharSet, size_t sCharSetLen,
                                size_t *psMatchedCharPos );
         char * hb_adsOemToAnsi( const char * pcString, ULONG ulLen );
         char * hb_adsAnsiToOem( const char * pcString, ULONG ulLen );
         struct hb_BTree * hb_BTreeNew( const char *FileName,
                                        USHORT usPageSize, USHORT usKeySize,
                                        ULONG ulFlags, USHORT usBuffers );
         struct hb_BTree * hb_BTreeOpen( const char *FileName, ULONG lFlags,
                                         USHORT usBuffers );
         BOOL hb_BTreeInsert( struct hb_BTree * pBTree, const char * szKey,
                              PHB_ITEM pData );
         BOOL hb_BTreeDelete( struct hb_BTree * pBTree, const char * szKey,
                              LONG lData );
         BOOL hb_BTreeSeek( struct hb_BTree * pBTree, const char * szKey,
                            LONG lData, BOOL bSoftSeek );
         const char * hb_BTreeKey( struct hb_BTree * pBTree );

    * modified RDD methods:
         HB_ERRCODE PUTVALUEFILE( AREAP, USHORT, const char *, USHORT );
         HB_ERRCODE GETVALUEFILE( AREAP, USHORT, const char *, USHORT );
    * modified GT methods:
         void REST( HB_GT_PTR, int, int, int, int, const BYTE * );
         void PUTTEXT( HB_GT_PTR, int, int, BYTE, const BYTE *, ULONG );
         void WRITEAT( HB_GT_PTR, int, int, const BYTE *, ULONG );
         void WRITE( HB_GT_PTR, const BYTE *, ULONG );
         void WRITECON( HB_GT_PTR, const BYTE *, ULONG );
         void BOX( HB_GT_PTR, int, int, int, int, const BYTE *, BYTE );
         void BOXD( HB_GT_PTR, int, int, int, int, const BYTE *, BYTE );
         void BOXS( HB_GT_PTR, int, int, int, int, const BYTE *, BYTE );
         void OUTSTD( HB_GT_PTR, BYTE *, ULONG );
         void OUTERR( HB_GT_PTR, BYTE *, ULONG );
         void MOUSERESTORESTATE( HB_GT_PTR, const BYTE * );
    * modified RDD structers:
         DBFIELDINFO, DBOPENINFO, DBORDERCONDINFO, DBCONSTRAINTINFO,
         DBORDERCREATEINFO
    + modified parameters and behevior:
         const char * hb_fsNameConv( const char * szFileName, char ** pszFree );
         const char * hb_osEncode( const char * szFileName, char ** pszFree );
         const char * hb_osDecode( const char * szFileName, char ** pszFree );
      Please look at implementation and current usage of these functions.
    + added new function:
         BOOL hb_itemGetWriteCL( PHB_ITEM pItem,
                                 char ** pszValue, ULONG * pulLen );
      which converts item string buffer to writable state to use with
      functions like FREAD() instead of hb_itemUnShare*()
    * updatd other code to respect above modifications
    ! fixed bugs (also GPF traps) located by above modifications

   TODO: please make build tests. Especially in OS2 - not tested at all.
2009-06-26 00:33:38 +00:00
Viktor Szakats
e569ecf8b4 2009-06-24 22:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * include/hbapiitm.h
  * source/vm/itemapi.c
  * source/vm/arrays.c
  * source/vm/extend.c
    ; Started addition of 'const' keywords where applicable.
    * First pass:
      extern HB_EXPORT const char * hb_parc( int iParam );
      extern HB_EXPORT const char * hb_parcx( int iParam );
      extern HB_EXPORT const char * hb_itemGetCPtr( PHB_ITEM pItem );
      extern HB_EXPORT const char * hb_arrayGetCPtr( PHB_ITEM pArray, ULONG ulIndex );
    ; NOTE: This modification will break code in most compilers,
            especially in C++ mode.
            As a next steps source code will have to be modified
            according to this change. Be patient, don't report all
            errors to the developers. You can join the code cleanup.

  * source/vm/dynsym.c
  * source/vm/itemapi.c
  * source/vm/arrays.c
  * source/vm/memvars.c
  * source/vm/extend.c
  * source/vm/set.c
  * source/vm/classes.c
    * 'const's added to caller code.
2009-06-24 20:37:05 +00:00
Viktor Szakats
f5904ca848 2009-06-23 19:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * include/hbapiitm.h
  * source/vm/itemapi.c
  * source/vm/arrays.c
  * source/vm/extend.c
    * Clean alternative for: 2009-06-23 18:15 UTC+0200
      (now change is local to extend.c)
      Thanks Przemek.
2009-06-23 17:23:22 +00:00
Viktor Szakats
7de9ca92fe 2009-06-23 18:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * include/hbapiitm.h
  * source/vm/itemapi.c
  * source/vm/arrays.c
  * source/vm/extend.c
    ! Fixed hb_parvc() function to return NULL in case an array 
      is passed as Harbour level parameter. This makes this function 
      (and _parc()) fully CA-Cl*pper compatible.
    ; Please review maybe there is a lighter patch to achieve this 
      goal. I had to add NULL versions for two functions downstream.

  * utils/hbmk2/hbmk2.prg
    * Formatting.
2009-06-23 16:16:52 +00:00
Viktor Szakats
564cb93315 2009-06-22 17:16 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Always escape filenames/paths if they contain "-" char.
      (on Windows).
      (this could recently cause a regression with BCC)

  * include/hbapi.h
    ! Missded change from previous commit.

  * bin/postinst.bat
    + hbrun is now built also in non-dll mode at the end of the
      build process, so it gets built with the icon.
      Probably we should switch to using hbmk2 to build these
      extra tools, eventually.
2009-06-22 15:27:38 +00:00
Przemyslaw Czerpak
68c738b9ba 2009-06-20 22:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/extend.c
    * renamed existing hb_par*() and hb_stor*() functions which supports
      variable number of parameters (...) into hb_parv*() and hb_storv*()
    * added new hb_par*() and hb_stor*() functions which use strict number
      of parameters. New hb_par*() functions do not make hidden conversion
      between types, f.e. hb_parl() returns 1 only for logical parameters
      which contain .T.

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

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

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

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

  * harbour/source/macro/macrolex.c
    * replaced HB_LEX_IS*() macros by by HB_IS*() ones
2009-06-20 20:25:26 +00:00
Viktor Szakats
e4ddd5f914 2009-06-13 23:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbxbp/hbxbp.hbc
    + Added gtgui as default GT on win/wce systems.

  * include/extend.api
  * include/hbsetup.ch
  * include/hbapi.h
    + Added new HB_LEGACY_LEVEL3 macro to wrap legacy
      constructs to be deprecated in the next major release.
      Currently legacy IS*() parameter type checking macros
      are marked as such, ones present in CA-Cl*pper retained
      in extend.api even when this macro off.

    ; NOTE: It's recommended for 3rd party developers to
            start using new HB_IS*() macros. They work
            the same as Clipper compatible IS*() macros,
            but got a HB_ prefix: ISNUM( 1 ) -> HB_ISNUM( 1 )
            (not to be confused with HB_IS_*() macros which
            accept a PHB_ITEM)
            Here's a little batch which helps this process:
            ---
            gsar -o -s:x20ISNUM(       -r:x20HB_ISNUM(       *.c *.cpp
            gsar -o -s:x20ISCHAR(      -r:x20HB_ISCHAR(      *.c *.cpp
            gsar -o -s:x20ISLOG(       -r:x20HB_ISLOG(       *.c *.cpp
            gsar -o -s:x20ISARRAY(     -r:x20HB_ISARRAY(     *.c *.cpp
            gsar -o -s:x20ISBYREF(     -r:x20HB_ISBYREF(     *.c *.cpp
            gsar -o -s:x20ISDATE(      -r:x20HB_ISDATE(      *.c *.cpp
            gsar -o -s:x20ISDATETIME(  -r:x20HB_ISDATETIME(  *.c *.cpp
            gsar -o -s:x20ISNIL(       -r:x20HB_ISNIL(       *.c *.cpp
            gsar -o -s:x20ISTIMESTAMP( -r:x20HB_ISTIMESTAMP( *.c *.cpp
            gsar -o -s:x20ISBLOCK(     -r:x20HB_ISBLOCK(     *.c *.cpp
            gsar -o -s:x20ISPOINTER(   -r:x20HB_ISPOINTER(   *.c *.cpp
            gsar -o -s:x20ISSYMBOL(    -r:x20HB_ISSYMBOL(    *.c *.cpp
            gsar -o -s:x20ISOBJECT(    -r:x20HB_ISOBJECT(    *.c *.cpp
            gsar -o -s:x20ISHASH(      -r:x20HB_ISHASH(      *.c *.cpp
            gsar -o -s!ISNUM(          -r!HB_ISNUM(          *.c *.cpp
            gsar -o -s!ISCHAR(         -r!HB_ISCHAR(         *.c *.cpp
            gsar -o -s!ISLOG(          -r!HB_ISLOG(          *.c *.cpp
            gsar -o -s!ISARRAY(        -r!HB_ISARRAY(        *.c *.cpp
            gsar -o -s!ISBYREF(        -r!HB_ISBYREF(        *.c *.cpp
            gsar -o -s!ISDATE(         -r!HB_ISDATE(         *.c *.cpp
            gsar -o -s!ISDATETIME(     -r!HB_ISDATETIME(     *.c *.cpp
            gsar -o -s!ISNIL(          -r!HB_ISNIL(          *.c *.cpp
            gsar -o -s!ISTIMESTAMP(    -r!HB_ISTIMESTAMP(    *.c *.cpp
            gsar -o -s!ISBLOCK(        -r!HB_ISBLOCK(        *.c *.cpp
            gsar -o -s!ISPOINTER(      -r!HB_ISPOINTER(      *.c *.cpp
            gsar -o -s!ISSYMBOL(       -r!HB_ISSYMBOL(       *.c *.cpp
            gsar -o -s!ISOBJECT(       -r!HB_ISOBJECT(       *.c *.cpp
            gsar -o -s!ISHASH(         -r!HB_ISHASH(         *.c *.cpp
            ---

  * source/rtl/hbinet.c
    * Formatting.
    % Minor optimizations.

  * source/debug/dbgentry.c
  * source/rdd/dbcmd.c
  * source/rdd/dbcmd53.c
  * source/rdd/dbcmdx.c
  * source/rdd/dbdetach.c
  * source/rdd/dbsql.c
  * source/rdd/hbsix/sxfname.c
  * source/rdd/hbsix/sxord.c
  * source/rdd/hbsix/sxtable.c
  * source/rdd/usrrdd/usrrdd.c
  * source/rtl/at.c
  * source/rtl/box.c
  * source/rtl/cdpapi.c
  * source/rtl/chrasc.c
  * source/rtl/colorind.c
  * source/rtl/console.c
  * source/rtl/copyfile.c
  * source/rtl/dateshb.c
  * source/rtl/dirdrive.c
  * source/rtl/diskspac.c
  * source/rtl/disksphb.c
  * source/rtl/errapi.c
  * source/rtl/filesys.c
  * source/rtl/fscopy.c
  * source/rtl/fssize.c
  * source/rtl/fstemp.c
  * source/rtl/gete.c
  * source/rtl/gtfunc.c
  * source/rtl/gx.c
  * source/rtl/hbbit.c
  * source/rtl/hbgtcore.c
  * source/rtl/hbhex.c
  * source/rtl/hbi18n1.c
  * source/rtl/hbinet.c
  * source/rtl/hbprocfn.c
  * source/rtl/hbrandom.c
  * source/rtl/hbregex.c
  * source/rtl/hbstrsh.c
  * source/rtl/hbtoken.c
  * source/rtl/hbzlib.c
  * source/rtl/hbzlibgz.c
  * source/rtl/inkey.c
  * source/rtl/itemseri.c
  * source/rtl/left.c
  * source/rtl/math.c
  * source/rtl/maxrow.c
  * source/rtl/mlcfunc.c
  * source/rtl/mouse53.c
  * source/rtl/mousex.c
  * source/rtl/mtran.c
  * source/rtl/natmsg.c
  * source/rtl/padc.c
  * source/rtl/padl.c
  * source/rtl/padr.c
  * source/rtl/philes.c
  * source/rtl/philes53.c
  * source/rtl/rat.c
  * source/rtl/replic.c
  * source/rtl/right.c
  * source/rtl/round.c
  * source/rtl/run.c
  * source/rtl/saverest.c
  * source/rtl/scroll.c
  * source/rtl/setcolor.c
  * source/rtl/setcurs.c
  * source/rtl/setpos.c
  * source/rtl/shadow.c
  * source/rtl/strc.c
  * source/rtl/strmatch.c
  * source/rtl/strpeek.c
  * source/rtl/strtoexp.c
  * source/rtl/strtran.c
  * source/rtl/stuff.c
  * source/rtl/substr.c
  * source/rtl/tone.c
  * source/rtl/trace.c
  * source/rtl/transfrm.c
  * source/rtl/valtype.c
  * source/rtl/word.c
  * source/vm/arrayshb.c
  * source/vm/asort.c
  * source/vm/classes.c
  * source/vm/cmdarg.c
  * source/vm/eval.c
  * source/vm/hashfunc.c
  * source/vm/hvm.c
  * source/vm/memvars.c
  * source/vm/proc.c
  * source/vm/thread.c
    * IS*() -> HB_IS*() macro rename.
      (pass 1 - sf.net SVN works badly today, so I've split 
      the commit to raise the chances of a successfully 
      finished one)
2009-06-13 22:44:34 +00:00
Viktor Szakats
6ef2986f43 2009-06-02 19:22 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/xhb/Makefile
  + contrib/xhb/bkgtsks.c
    + Added background tasks functions. My only current goal
      was to make it compile under Harbour, plus did some
      optimizations along the way.
      (borrowed from xhb, work of Francesco Saverio Giudice)
    ; TODO: Adapt to Harbour: MT mode, Set() replacement,
            attach it to VM possibly without modifying
            the VM itself.

  * source/rtl/mlcfunc.c
    + Reenabled for default builds the parameter extension
      in memo functions (now guarded with HB_C52_STRICT).
      This breaks our effort to not introduce such extensions,
      but since was no better idea I've made an exception,
      but I personally still don't like it and this practice
      stays forbidden.
      Talking about the last parameter of these functions:
      MEMOLINE(), MLCOUNT(), MLPOS(), MLCTOPOS(), MPOSTOLC()

  * source/codepage/cphr437.c
  * source/codepage/cphr852.c
  * source/codepage/cphrwin.c
    * Fixed wrongly ordered accented chars.
    * Fixed missing accented chars in Windows CP.
    ; Submitted by Vladimir Miholic on sf.net.

  * contrib/xhb/xhb.h
    + Added hb_seconds() compatibility macro.

  * tests/speedtst.prg
    + Added SET DATE ANSI and SET CENTURY ON.

  * tests/Makefile
  + tests/brwpos.prg
    + Added TBrowse() :rowPos test submitted by Xavi to the list.

  * utils/hbmk2/hbmk2.hbp
  * utils/hbrun/hbrun.hbp
    % Minor opt to prev.

  * tests/rto_tb.prg
    + Added hb_SToD() compatibility function to make it link
      with xhb.
    + Added forced define of HB_COMPAT_C53 in xhb mode, but 
      commented because it makes it RTE.

  * INSTALL
    ! Term changed to be consistent with rest of doc.

  * include/hbapi.h
    ! Typo in comment.
2009-06-02 17:24:02 +00:00
Przemyslaw Czerpak
1ccc1e06f7 2009-05-27 05:34 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour.spec
  * harbour/mpkg_tgz.sh
    + added hbformat

  * harbour/include/hbdefs.h
  * harbour/include/hbapi.h
  * harbour/source/common/hbarch.c
    * redefined macros used to store/retrieve integer and double values
      to/from byte arrays in little and big endian order.
      Now GCC uses inline functions which are hardly optimized by compiler
      giving on x86 machines the same code as direct casting (with the
      exception to march=i686 where putting double value forces strict
      alignment to avoid hidden CPU exception) but they respect strict
      aliasing rules. It also means that now GCC builds always respect
      strict alignment even if HB_STRICT_ALIGNMENT macro is not set.
2009-05-27 03:25:05 +00:00
Przemyslaw Czerpak
5e9629763e 2009-04-24 16:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/common/hbprintf.c
  * harbour/source/common/hbstr.c
    + added hb_vsnprintf() - vsnprintf() replacement
    * synced type of parameters in hb_snprintf() used for builds with and
      without HB__USE_OWN_SNPRINTF
2009-04-24 14:17:17 +00:00
Viktor Szakats
84d6d15bd6 2009-04-11 13:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapi.h
  * include/hbver.ch
  * source/common/hbver.c
  * source/rtl/version.c
    + Added target CPU detection.
      c: hb_verCPU() -> "x86"
      prg: hb_version( HB_VERSION_CPU ) -> "x86"
    ; TODO: Host CPU detection.
  
  * contrib/rddsql/sddfb/Makefile
    + Enabled for msvc64
2009-04-11 11:34:06 +00:00
Przemyslaw Czerpak
7f1dcb2a81 2009-03-29 19:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/fm.c
    + added support for thread local memory allocators by using MSPACE
      mechanism in DLALLOC.
      It can be enabled by compiling Harbour with HB_FM_DLMT_ALLOC macro.
      By default up to 16 (HB_MSPACE_COUNT macro) independent memory
      allocators is dynamically created for new threads. When more threads
      is used then allocators are shared between them and HVM tries to
      balance used allocators to reduce number of threads using the
      same allocator.
      It should give noticeable scalability improvement in some OS-es
      where default memory manages has pure MT performance.
      Please try to compiler speedtst.prg with Harbour compiled with
      and without HB_FM_DLMT_ALLOC and compare results in this test:
         speedtst --thread=2 --scale
      using real multiCPU machine.

  * harbour/source/vm/dlmalloc.c
    * pacified warning when FOOTERS are enabled

  * harbour/source/vm/garbage.c
    * cleanup comment
2009-03-29 17:13:52 +00:00
Viktor Szakats
b937df971b 2009-03-25 14:09 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* INSTALL
    + Added HB_INC_SQLITE3

  * include/hbapi.h
    + Added HB_IS*() flavour of classic Clipper compatibility IS*()
      macros. I'd recommend everyone to start using these new ones,
      as the old ones might be deprecated in future versions.

  * Makefile
    + Added new 'external' dir to host foreign, non-Harbour code.

  + external
  + external/sqlite3
  + external/sqlite3/_sqlite3.c
  + external/sqlite3/sqlite3.c
  + external/sqlite3/sqlite3.h
  + external/sqlite3/Makefile
  - contrib/hbsqlit3/sqlite3
    + Moved sqlite3 code into its dedicated place.

  * contrib/hbsqlit3/tests/hbsqlit3.hbp
    + Added sqlite3 to liblist.

  * contrib/hbsqlit3/hbsqlit3.c
  * contrib/hbsqlit3/Makefile
    + Changed to use external headers just like other external
      dependent libs. The only difference here is that it will
      pickup the locally hosted sqlite3 source from
      external/sqlite3 if not specified by user.
    * Changed to no embed sqlite3 code anymore.
      ATTENTION: This also means that hbsqlit3 users will now
                 have to add sqlite3 lib to their liblist, since
                 this code isn't anymore embedded into hbsqlit3.

  * contrib/hbqt/hbqt_qfontcombobox.cpp
  * contrib/hbqt/hbqt_qgroupbox.cpp
  * contrib/hbqt/hbqt_qcombobox.cpp
  * contrib/hbqt/hbqt_qtoolbutton.cpp
  * contrib/hbqt/slots.h
  * contrib/hbqt/hbqt_qpushbutton.cpp
  * contrib/hbqt/hbqt_qpagesetupdialog.cpp
  * contrib/hbqt/hbqt_qprintpreviewdialog.cpp
  * contrib/hbqt/hbqt_qlabel.cpp
  * contrib/hbqt/hbqt_qinputdialog.cpp
  * contrib/hbqt/hbqt_qprogressdialog.cpp
  * contrib/hbqt/hbqt_qtoolbox.cpp
  * contrib/hbqt/hbqt_qcommandlinkbutton.cpp
  * contrib/hbqt/hbqt_qmenubar.cpp
  * contrib/hbqt/hbqt_qhboxlayout.cpp
  * contrib/hbqt/hbqt_qabstractbutton.cpp
  * contrib/hbqt/hbqt_qabstractprintdialog.cpp
  * contrib/hbqt/hbqt_qwizard.cpp
  * contrib/hbqt/hbqt_qabstractspinbox.cpp
  * contrib/hbqt/hbqt_qfont.cpp
  * contrib/hbqt/hbqt_qdial.cpp
  * contrib/hbqt/hbqt_qtablewidgetitem.cpp
  * contrib/hbqt/hbqt_qlcdnumber.cpp
  * contrib/hbqt/hbqt_qmainwindow.cpp
  * contrib/hbqt/hbqt_qprintdialog.cpp
  * contrib/hbqt/hbqt_qcalendarwidget.cpp
  * contrib/hbqt/hbqt_qabstractitemview.cpp
  * contrib/hbqt/hbqt_qaction.cpp
  * contrib/hbqt/hbqt_qspinbox.cpp
  * contrib/hbqt/hbqt_qwidget.cpp
  * contrib/hbqt/hbqt_slots.cpp
  * contrib/hbqt/hbqt_qdateedit.cpp
  * contrib/hbqt/hbqt_qcheckbox.cpp
  * contrib/hbqt/hbqt_qprogressbar.cpp
  * contrib/hbqt/hbqt_qframe.cpp
  * contrib/hbqt/hbqt_qfocusframe.cpp
  * contrib/hbqt/hbqt_qtabbar.cpp
  * contrib/hbqt/hbqt_qcqlendarwidget.cpp
  * contrib/hbqt/hbqt_qerrormessage.cpp
  * contrib/hbqt/hbqt_qfiledialog.cpp
  * contrib/hbqt/hbqt_qformlayout.cpp
  * contrib/hbqt/hbqt_qtoolbar.cpp
  * contrib/hbqt/hbqt_qdatetimeedit.cpp
  * contrib/hbqt/hbqt_qmenu.cpp
  * contrib/hbqt/hbqt_qabstractslider.cpp
  * contrib/hbqt/hbqt_qwebview.cpp
  * contrib/hbqt/hbqt_qlayout.cpp
  * contrib/hbqt/hbqt_qslider.cpp
  * contrib/hbqt/hbqt_qtableview.cpp
  * contrib/hbqt/hbqt_qfontdialog.cpp
  * contrib/hbqt/hbqt_qboxlayout.cpp
  * contrib/hbqt/hbqt_qtreeview.cpp
  * contrib/hbqt/hbqt_qtextedit.cpp
  * contrib/hbqt/hbqt_qradiobutton.cpp
  * contrib/hbqt/hbqt_qcolordialog.cpp
  * contrib/hbqt/hbqt_qapplication.cpp
  * contrib/hbqt/hbqt_qtimeedit.cpp
  * contrib/hbqt/hbqt_qsplitter.cpp
  * contrib/hbqt/hbqt_qlistview.cpp
  * contrib/hbqt/hbqt_qtabwidget.cpp
  * contrib/hbqt/hbqt_qabstractscrollarea.cpp
  * contrib/hbqt/hbqt_qvboxlayout.cpp
  * contrib/hbqt/hbqt_qdoublespinbox.cpp
  * contrib/hbqt/hbqt_qscrollbar.cpp
  * contrib/hbqt/hbqt_qscrollarea.cpp
  * contrib/hbqt/hbqt_qtablewidget.cpp
  * contrib/hbqt/hbqt_qsizegrip.cpp
  * contrib/hbqt/hbqt_qlayoutitem.cpp
  * contrib/hbqt/hbqt_qmessagebox.cpp
  * contrib/hbqt/hbqt_qlineedit.cpp
    * Formatting, indenting.
    ! ISNIL() usage removed.

  * contrib/hbwin/wapi_commctrl.c
  * contrib/hbwin/wapi_winuser.c
    ! ISNIL() usage removed.

  * contrib/hbfbird/tfirebrd.prg
  * contrib/hbpgsql/tests/simple.prg
  * contrib/hbpgsql/tests/test.prg
  * contrib/hbpgsql/tests/cache.prg
  * contrib/hbpgsql/tests/stress.prg
  * contrib/hbpgsql/tests/dbf2pg.prg
  * contrib/hbpgsql/tpostgre.prg
  * contrib/examples/uhttpd/uhttpd.prg
  * contrib/examples/uhttpd/uhttpdc.c
  * contrib/examples/terminal/trm_server.prg
    * ISNIL() usage and other code cleanup, formatting.
2009-03-25 13:22:38 +00:00
Przemyslaw Czerpak
26a11bd859 2009-03-21 16:07 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    ! restored default optimization flag (-O3) in hb* scripts

  * harbour/harbour.spec
    ! fixed recent modification

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

   Warning: this implementation is not xHarbour compatible. There are many
   important differences. Mostly on C level and used API. Please be careful
   in porting xHarbour source code to Harbour.
2009-03-21 15:04:43 +00:00
Viktor Szakats
0211fce921 2009-03-18 13:09 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapi.h
    ! Added HB_EXPORT declaration for hb_vmSetLinkedMain().

  * utils/hbmk2/hbmk2.prg
    ! Regression regarding -ldflag: option handling.
2009-03-18 12:10:16 +00:00
Przemyslaw Czerpak
d44ee7b66b 2009-03-05 19:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbwince.h
  * harbour/source/common/hbgete.c
  * harbour/source/common/hbwince.c
    + added BOOL hb_setenv( const char * szName, const char * szValue )
      It sets or deletes (szValue==NULL) environment variable.
      Please add support for other compilers/OS-es or define
      unsupported platforms to eliminate TODO warning.
      For sure OS2 version have to be updated.

  * harbour/source/rtl/gete.c
    + added .prg function:
         HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK>
      which sets or deletes (when <cNewVal> is NIL) process environment
      variable <cEnvName>. <lOsCP> controls character translation to
      OS encoding. By default is enabled.
      TOFIX: <cEnvName> OS character encoding is missing in [HB_]_GETENV()
2009-03-05 18:38:33 +00:00
Viktor Szakats
cf2a1eb5ed 2009-03-02 09:43 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapi.h
  * source/rtl/hbstrfmt.c
    * C level function renamed to hb_strFormat().
    + Added to headers, exported.
2009-03-02 08:44:00 +00:00
Przemyslaw Czerpak
d56e5a98c8 2009-03-01 13:58 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbstack.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/memvars.c
    ! fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible
      and do not release PUBLIC GetList value. Here it's small example
      which illustrates current behavior and exploits bug in previous
      version:
         memvar getlist
         proc main()
            getlist:="public:getlist"
            ? getlist
            private getlist:="private:getlist"
            ? getlist
            CLEAR MEMORY
            ? getlist
         return

  * harbour/source/compiler/gencc.c
    + added Harbour exception to the license - it's mine code with
      few lines added/modified by Ryszard and Viktor. I hope they do
      not have anything against.

  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/hbident.c
    * minor formatting
2009-03-01 12:53:15 +00:00
Viktor Szakats
527a1031ef 2009-02-24 21:35 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapi.h
  * source/pp/hbpp.c
  * source/vm/cmdarg.c
  * source/main/harbour.c
    + Added hb_verHB_ARCH(), hb_verHB_COMP() to
      retrieve build time HB_ARCHITECTURE and HB_COMPILER
      settings.

  * include/hbver.ch
  * source/rtl/version.c
    + Added new hb_version() information:
      hb_version( HB_VERSION_BUILD_ARCH )
      hb_version( HB_VERSION_BUILD_COMP )

  * utils/hbmk2/hbmk2.prg
    + Using above hb_version() values to find out the exact
      build time architecture/compiler instead of guessing.
2009-02-24 20:37:19 +00:00
Przemyslaw Czerpak
fbe97f53ab 2009-02-18 12:17 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/hvm.c
    % replaced index to evaluated PCODE by direct PCODE pointer
      modification
2009-02-18 11:12:27 +00:00
Przemyslaw Czerpak
4fd0cafdd2 2009-02-18 10:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/hvm.c
    * added hb_cmdargUpdate() function which makes final argc/argv updating
      (code moved from hb_cmdargInit())
    ! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions
      were called before allocating HVM stack
    ; TOFIX: change some hb_setGet*() functions to work without HVM stack.

  * harbour/source/rtl/hbtoken.c
    * formatting
2009-02-18 09:20:39 +00:00
Viktor Szakats
bc6e1a9b3e 2009-02-12 10:57 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbsetup.h
  * include/hbapi.h
  * source/common/hbprintf.c
  * source/common/hbstr.c
    + Temporarily enabled local hb_snprintf() implementation.
    ; Please test. If it's okay, we can enable it permanently.

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

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

  * source/lang/msguawin.c
  * source/lang/msgua866.c
  * source/lang/msguakoi.c
    ! Fixed corrupted equal char in code.
    ! Fixed date format.
    ! Fixed CP IDs and descriptions in UA866 and UAKOI.
    ! Restored 'CA-Cl*pper' in comment.
    ; Please verify me.
2009-02-12 10:03:45 +00:00
Przemyslaw Czerpak
013f7ab9a5 2009-02-11 02:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/cmdarg.c
    + added const char * hb_cmdargARGVN( int argc )

  * harbour/source/vm/cmdarg.c
    * try to convert executable file name argument in argv[0] to
      absolute path if it's relative one. Respect PATH envvar it necessary.

  * harbour/source/common/hbdate.c
    * formatting

  * harbour/source/rtl/philes.c
  * harbour/source/rtl/errorint.c
  * harbour/source/rtl/filesys.c
    ! use hb_cmdargARGVN(n) instead of hb_cmdargARGV()[n] to avoid
      possible GPF if some function will be called before argument
      initialization
    * removed additional logic which tries to convert relative paths
      in file name from hb_fsBaseDirBuff() and HB_PROGNAME() functions
2009-02-11 01:33:31 +00:00
Viktor Szakats
897a02e44a 2009-02-10 01:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* doc/whatsnew.txt
  * include/clipdefs.h
  * include/filesys.api
  * include/gt.api
  * include/hbapi.h
  * include/hbapierr.h
  * include/hbapifs.h
  * include/hbapigt.h
  * include/hbapiitm.h
  * include/hbapirdd.h
  * include/hbdefs.h
  * include/hbgfxdef.ch
  * include/hbgtinfo.ch
  * include/hbsetup.ch
  * include/hbsetup.h
  * include/item.api
  * include/rdd.api
  * source/rtl/errorapi.c
  * source/rtl/filesys.c
  * source/vm/cmdarg.c
  * common.mak
  - source/vm/debugold.c
  * source/vm/Makefile
  * source/vm/vmmt/Makefile
    - Permanently disabled HB_LEGACY_LEVEL support.
    + Added HB_LEGACY_LEVEL2 support to protect some
      recently made incompatible changes. Old methods
      are supported until Harbour 1.2. Please update
      your code until then. To test your code for
      compatibility with recent changes, you can turn
      off legacy support manually by #defining HB_LEGACY_OFF.
      (HB_USER_CFLAGS=-DHB_LEGACY_OFF)
      This is recommended on local systems for all
      Harbour developers.
2009-02-10 00:47:50 +00:00
Przemyslaw Czerpak
e339973046 2009-02-07 00:22 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
  * harbour/include/hbapi.h
    * moved HB_ISSPACE(), HB_ISFIRSTIDCHAR() and HB_ISNEXTIDCHAR() from
      hbapi.h to hbdefs.h
    + HB_ISXDIGIT() macro

  * harbour/include/hbpp.h
    * updated other HB_PP_IS*() macros definitions to internally use HB_IS*()
      ones

  * harbour/source/rtl/fstemp.c
    ! fixed unterminated ASCIIZ string

   TODO: new macros HB_CHARVAL( c ), HB_CHARXVAL( c ),
                    HB_VALDIGIT( i ), HB_VALXDIGIT( i )
2009-02-06 23:18:19 +00:00
Viktor Szakats
a341b29acd 2009-02-06 23:47 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
  * harbour-wce-spec
  * harbour-win-spec
  * harbour.spec
  * make_b32.bat
  * make_b32.mak
  * make_gcc.mak
  * make_gcc.sh
  * make_gnu.bat
  * make_gnu.sh
  * make_gnu_os2.cmd
  * make_gnu_xmingw.sh
  * make_gnu_xmingwce.sh
  * make_vc.bat
  * make_vc.mak
  * mpkg_tgz.sh
  * bin/hb-func.sh
  * bin/hb-mkslib.sh
  * bin/hbmk.bat
  * bin/hbmk_os2.cmd
  * bin/postinst.sh
  * config/bin.cf
  * config/bsd/gcc.cf
  * config/darwin/gcc.cf
  * config/dos/bcc16.cf
  * config/dos/djgpp.cf
  * config/dos/owatcom.cf
  * config/dos/rsx32.cf
  * config/hpux/gcc.cf
  * config/lib.cf
  * config/linux/gcc.cf
  * config/linux/owatcom.cf
  * config/os2/gcc.cf
  * config/os2/icc.cf
  * config/rules.cf
  * config/sunos/gcc.cf
  * config/win/bcc32.cf
  * config/win/dm.cf
  * config/win/gcc.cf
  * config/win/icc.cf
  * config/win/mingw.cf
  * config/win/mingwce.cf
  * config/win/msvc.cf
  * config/win/msvcce.cf
  * config/win/owatcom.cf
  * config/win/pocc.cf
  * config/win/pocc64.cf
  * config/win/poccce.cf
  * config/win/rsxnt.cf
  * config/win/xcc.cf
  * contrib/gtalleg/Makefile
  * contrib/hbapollo/Makefile
  * contrib/hbcurl/Makefile
  * contrib/hbfbird/Makefile
  * contrib/hbfimage/Makefile
  * contrib/hbgd/Makefile
  * contrib/hbgd/tests/hbmk_b32.bat
  * contrib/hbgd/tests/hbmk_vc.bat
  * contrib/hbgf/hbgfgtk/Makefile
  * contrib/hbhpdf/Makefile
  * contrib/hbmysql/Makefile
  * contrib/hbodbc/Makefile
  * contrib/hbpgsql/Makefile
  * contrib/hbssl/Makefile
  * contrib/hbtip/ChangeLog
  * contrib/hbwhat/Makefile
  * contrib/hbwhat/tests/hbmk_b32.bat
  * contrib/hbwhat/tests/hbmk_vc.bat
  * contrib/mtpl_b32.bat
  * contrib/mtpl_b32.mak
  * contrib/mtpl_gcc.mak
  * contrib/mtpl_gcc.sh
  * contrib/mtpl_vc.bat
  * contrib/mtpl_vc.mak
  * contrib/rddads/Makefile
  * contrib/rddsql/sddfb/Makefile
  * contrib/rddsql/sddmy/Makefile
  * contrib/rddsql/sddpg/Makefile
  * doc/es/tracing.txt
  * doc/gmake.txt
  * doc/tracing.txt
  * include/hbapi.h
  * source/main/harbour.c
  * source/pp/hbpp.c
  * source/rdd/dbffpt/Makefile
  * source/vm/cmdarg.c
  * source/vm/Makefile
  * source/vm/vmmt/Makefile
  * tests/multifnc/Makefile
  * tests/testid.prg
  * utils/hbdoc/Makefile
  * utils/hbi18n/Makefile
  * utils/hbmake/hbmake.prg
  * utils/hbmake/Makefile
  * utils/hbrun/Makefile
  * utils/hbtest/Makefile
    * Renamed remaining build configration envvars:
      - PRG_USR -> HB_USER_PRGFLAGS
      - C_USR   -> HB_USER_CFLAGS
      - L_USR   -> HB_USER_LDFLAGS
      - A_USR   -> HB_USER_AFLAGS
      - MK_USR  -> HB_USER_MAKEFLAGS
      (finally settled with HB_USER* instead of HB_USR*,
      this also means that HB_USER_LIBS was kept unchanged.)
    ; Please update your environment.
      You may use these commands to make it easy:
      gsar -o -sPRG_USR -rHB_USER_PRGFLAGS  *
      gsar -o -sC_USR   -rHB_USER_CFLAGS    *
      gsar -o -sL_USR   -rHB_USER_LDFLAGS   *
      gsar -o -sA_USR   -rHB_USER_AFLAGS    *
      gsar -o -sMK_USR  -rHB_USER_MAKEFLAGS *
2009-02-06 23:15:37 +00:00
Przemyslaw Czerpak
5dbddbeb1a 2009-02-06 00:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    ! fixed typo in one internal function name

  * harbour/include/hbapi.h
  * harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/dynsym.c
  * harbour/source/vm/memvars.c
    % changed code used for memvars clear in MT mode - it greatly 
      reduce the cost of HVM thread exit
    % changed code for memvars copping/sharing when thread is started
      it greatly reduce the time of thread creation when existing memvars
      are shared or copied
   Both modifications reduced the cost of simple
      hb_threadJoin( hb_threadCreate( {|| NIL } ) )
   few times depending on number of symbols and memvars.

  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/gtsln.h
  * harbour/source/rtl/gtpca/gtpca.c
    % added better initial cursor position detection and eliminated sscanf()

  * harbour/source/Makefile
    ! fixed concurrent dependencies in cross builds
2009-02-05 23:01:40 +00:00
Viktor Szakats
e8777b2dfd 2009-02-04 19:20 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
   * source/rtl/tbcolumn.prg
   * source/rtl/tbrowse.prg
   * source/rtl/tget.prg
   * source/rtl/tgetx.prg
     ! Using new method to solve the GET()/TBROWSE()/TBCOLUMN()
       symbol problem (these aren't public symbols in Clipper).
       The method used is the one already implemented for other
       C53 CUI classes.
       This allows inheritance, doesn't mess up the class name,
       and won't declare above public symbols.
     * Moved Xbase++ compatible GET()/TBROWSE()/TBCOLUMN()
       functionality into separate classes, all inheriting from
       original Harbour classes. This means that Xbase++
       compatible methods are only accessible when using the
       derived classes. The separation will allow us to
       move XPP (and other HB_COMPAT_*) compatible functionality
       into a separate libraries in the future, allowing more
       freedom to resolve clashing features, symbol names, etc..
     * Xbase++ compatible classes are named: xpp_Get(),
       xpp_TBrowse(), xpp_TBColumn(). This is a slight
       incompatibility compared to Xbase++ and also to
       previous Harbour. Technically it seems possible
       to give them the names GET()/TBROWSE()/TBCOLUMN(), if
       the class is defined in a different file, but let's first 
       discuss it.

   * source/rtl/tgetint.prg
     * Using GetNew() instead of Get():New().

     ; Finally I didn't use '( ... )' to pass parameters in GetNew(),
       as it's a tiny bit less efficient with -gc3.

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

  * include/hbdefs.h
  * include/hbsetup.h
    + Added compatibility to still understand HB_OS_WIN_32_USED,
      and to #define HB_OS_WIN_32 in addition to HB_OS_WIN.
      This means that old code will still work, but these
      compatibility features will be removed in the future,
      so it's recommended to change the code as above.
2009-02-04 00:18:56 +00:00
Viktor Szakats
dc70d7602c 2009-02-03 18:24 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* doc/en/hb_api.txt
  * doc/en/hb_apird.txt
  * include/hbrdddbf.h
  * include/hbrddcdx.h
  * include/hbapi.h
  * include/hbrddfpt.h
  * include/hbrddntx.h
  * contrib/hbct/dbftools.c
  * contrib/rddado/adordd.prg
  * contrib/hbpgsql/pgrdd.prg
  * contrib/rddads/adsx.c
  * contrib/rddads/adsfunc.c
  * contrib/examples/rdddbt/hbrdddbt.h
  * contrib/examples/rdddbt/dbfdbt1.c
  * source/vm/hvm.c
  * source/vm/memvars.c
  * source/debug/dbgentry.c
    * SUCCESS -> HB_SUCCESS
    * FAILURE -> HB_FAILURE
    * ERRCODE -> HB_ERRCODE
    ; Migration finished.
2009-02-03 17:25:32 +00:00
Viktor Szakats
d0c085ee97 2009-02-03 14:48 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbusrrdd.ch
  * include/hbapi.h
    + Added HB_SUCCESS, HB_FAILURE on .prg level, too.
    * SUCCESS, FAILURE, ERRCODE as compatibility.
    * Minor cleanup.

  ; TODO: Switch to HB_* versions inside Harbour tree.
2009-02-03 13:48:59 +00:00
Przemyslaw Czerpak
77df7fd78f 2009-02-02 11:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/fm.c
    ! fixed typo in default FM module setting/

  * harbour/include/hbapicls.h
  * harbour/source/vm/classes.c
  * harbour/source/debug/dbgentry.c
    * renamed hb_dbgObjSendMessage() to hb_dbg_objSendMessage() to keep
      naming convention used for other C debugger functions

  * harbour/source/vm/debug.c
    * added information about existing debugger functions and where they
      are used.

  * harbour/include/hbvm.h
  * harbour/include/hbapidbg.h
  * harbour/include/hbvmpub.h
  * harbour/include/hbstack.h
  * harbour/include/hbapi.h
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/hvm.c
  * harbour/source/debug/dbgentry.c
    * changed the method of static variable handling. Now we do not
      have centralized array of all statics used by application (s_aStatics)
      but each module uses it's own array to keep statics. The old
      s_aStatics has been removed. It means that loading new PCODE module
      from .hrb file or shared/dynamic library does not cause any static
      table reallocation so it does not creates potential GPF trap for MT
      code which may operate on static vars.
      This modification changed a little bit the debugger interface.
      I also updated some unused by us debug functions like __DBGVMVARSLIST()
      or __DBGVMVARSLEN() anyhow any 3-rd party debuggers should be
      updated for new API and modified hb_dbgEntry() syntax.
2009-02-02 09:58:22 +00:00
Viktor Szakats
1e62fb550e 2009-01-14 16:15 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/net.c
  * contrib/hbziparc/hbziparc.prg
  * contrib/hbct/files.c
    * Minor formatting.

  * source/rtl/gtxwc/gtxwc.c
    ! Fix to recent fix. An '!' was missing, Przemek pls check me.

  * source/rtl/philes.c
    + HB_PROGNAME() now returns absolute path in *NIX systems, too.
      (please test and refine)

  * source/lang/msgca.c
    ! Fixes from xhb.

  * contrib/hbziparc/hbziparc.prg
    * Minor correction ( = -> := )

  * source/rtl/gtwin/gtwin.c
    + Added HB_GTI_CODEPAGE support.
      As per MS docs, this works only when non-raster font is used
      in the console window. Notice that the accepted CP values are
      different from the GTWVT ones (GTWIN being the more "logical"
      one, since it's a newer API). Currently, Harbour doesn't try
      to hide these interface details.
    ; TODO: UNICODE and BOX char support for GTWIN mode.

  * source/rtl/tbrowse.prg
    * Using HB_DISPOUTATBOX() to draw column/header/footer separators.
    ; NOTE: This may cause problems if someone wants to use native
            CP (accented or other special CP specific) chars to draw
            these screen elements. Maybe an option should be added,
            or some sort of markings in the separator strings to
            control that.
            Pls REVIEW.

  * include/hbextern.ch
  * source/rtl/console.c
    + Added HB_DISPOUTATBOX() which is similar to HB_DISPOUTAT(),
      but marks the text drawn as HB_GT_ATTR_BOX, so these chars
      can be properly displayed as drawing chars, regardless of
      the selected codepage. Another difference is that this
      function only supports strings to be printed. Other types
      don't print anything.
    ; NOTE: Maybe this function could use a better name, pls
            review and decide.

  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/gtwvt/gtwvt.h
    ! Fixed not accepting zero as a HB_GTI_CODEPAGE value.
    ! Fixed HB_GTI_CODEPAGE to change the codepage.
    + Added box char support in Unicode mode.
      For chars marked as HB_GT_ATTR_BOX, chars will be
      mapped to Unicode according to CP437.
    + Added box char support in non-Unicode mode.
      For chars marked as HB_GT_ATTR_BOX, OEM_CHARSET will
      always be used.
    ; NOTE: This way it's possible to use ISO/WIN codepages with
            GTWVT, while still being able to use various drawing
            chars (lines, blocks, arrows).
    ; NOTE: The available set of drawing chars depends on the
            OS OEM_CHARSET mapping _for non-Unicode Harbour_.
            For Unicode Harbour, full CP437 codepage is
            always available.
    ; NOTE: This solution doesn't go as far as (GTWXC) to
            graphically draw / emulate these chars.
    ; TODO: Add HB_GTI_BOXCP support to change hard-wired "EN" CP.

  * include/hbapigt.h
  * include/hbgtcore.h
    ! Moved HB_GT_ATTR_* macros to public headers, because they
      are needed for public API functions.

  * contrib/hbwin/win_reg.prg
    + w32_regRead(): Added second parameter to specify the default
      value returned in case the reg entry doesn't exist.
      If not specified, NIL will be returned, just like before.
    + GetRegistry(): Added 4th parameter with same purpose as above.

  * source/rtl/hbregex.c
    * Minor opt.

  * contrib/hbwin/win_misc.c
    * Added command line option parameter to WIN_RUNDETACHED().

  * include/hbapi.h
    + HB_ERRCODE (to replace ERRCODE)
    + HB_SUCCESS (to replace SUCCESS)
    + HB_FAILURE (to replace FAILURE)

  + contrib/hbwin/win_misc.c
  * contrib/hbwin/common.mak
  * contrib/hbwin/Makefile
    + WIN_SHELLEXECUTE()
      WIN_RUNDETACHED()
      WIN_LOADRESOURCE()
      Added some new Windows API wrappers.
    ; TODO: Add hb_osEncode() to them.

  * source/rtl/diskspac.c
  * source/rtl/disksphb.c
    ! Fixed DISKSPACE() and HB_DISKSPACE() for Darwin.
      Previously they had returned erroneous values.
    ; TOFIX: Probably HB_DISKSPACE() should be implemented for Watcom and CEGCC,
             just like DISKSPACE() is.

  * source/rtl/filesys.c
    ! hb_fsGetAttr() to set the returned attribute to zero
      in case of error.

  * include/hbextern.ch
  * source/rtl/philes.c
    + HB_FSETATTR( <cFileName>, @<nAttr> ) -> <lSuccess>
    + HB_FGETATTR( <cFileName>, <nAttr> ) -> <lSuccess>
    + HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>] ) -> <lSuccess>

  * source/rtl/direct.c
    ! Fixed DIRECTORY() when called with "V" (label) parameter.
      Tested under Windows. Please test/correct for other platforms.
      On Windows, the dirspec should not contain a filemask in order
      to work.

  * contrib/hbtip/base64x.c
    % HB_BASE64(): Optimized, cleaned.
    ! HB_BASE64(): Removed second parameter allowing to pass the length of
      the string. This could cause GPF if passed incorrectly. Now length
      is simply determined using hb_parclen().
    ; TOFIX: Input string size limit checking.

  * include/hbdefs.h
    + HB_SIZEOFARRAY() macro, which does: ( sizeof( var ) / sizeof( *var ) )
      To be really precise, f.e. all hb_strncpy() calls should use
      'hb_strncpy( d, s, HB_SIZEOFARRAY( d ) );' instead of:
      'hb_strncpy( d, s, sizeof( d ) );' (given that 'd' is allocated at compile time).
      So that the code adapts to changing character sizes (like UTF-16/32).
      It's useful in some other places, too.

  * contrib/hbct/dattime2.c
    * 0 -> FALSE for BOOL types.

  * include/hbextern.ch
  * source/rtl/strmatch.c
    + HB_WILDMATCHI(). Case-instenstive, exact match. First
      two parameters and return value are the same as for
      HB_WILDMATCH().

  * include/hbextern.ch
  * source/rtl/cdpapi.c
    + HB_CDPSELECT() which does the same as HB_SETCODEPAGE(), but
      aligns well with function naming rules and namespace.
      HB_SETCODEPAGE() still works, but usage is not recommended.
    + Added HB_CDPUNIID( <cHarbourCP> ) -> <cCPName>
      This will return the std CP ID of a Harbour CP, or empty
      if the Harbour CP isn't linked.

  * include/hbapi.h
  * source/rtl/is.c
    ! Fixed compile error when HB_CDP_SUPPORT_OFF is defined.
    + Added following functions:
      hb_charIsDigit()
      hb_charIsAlpha()
      hb_charIsLower()
      hb_charIsUpper()

  * include/hbapi.h
    - hb_strUpperCopy() removed. Implementation was missing.

  * source/rtl/strcase.c
    * Minor formatting.

  * source/rtl/filesys.c
    ! hb_fsCurDirBuff() fixed potential buffer overrun by one byte.

  * source/rtl/hbrunfun.c
  * source/rtl/run.c
    ! Fixed missing header hbapiitm.h (after previous local change).

  * include/hbapi.h
  * include/hbset.h
  * include/hbapifs.h
  * include/set.ch
  * source/rtl/hbffind.c
  * source/rtl/gete.c
  * source/rtl/filesys.c
  * source/rtl/hbrunfun.c
  * source/rtl/run.c
  * source/rtl/philes.c
  * source/vm/set.c
  * source/vm/cmdarg.c
    + Added file system CP translation.
      Set( _SET_FNAMECP[, <cCPID> ] ) -> <cOldCPID>
      All operations passing filenames to/from the
      OS will convert them to/from the host CP from/to
      the FS CP specified using _SET_FNAMECP.
    * hb_fsNameConv() extended to deal with CP
      conversion, if requested by the app.
    + hb_fsNameConvFrom() (exported) added to deal
      with CP conversions for filenames received from OS.
    + hb_fsNameConvTo() (exported) added to deal
      with CP conversions for filenames/string sent to the OS.
    + Added hb_setGetFNAMECP() (exported) function.
    + Added hb_setGetFileCPTransTo(), hb_setGetFileCPTransFrom()
      (non-exported) functions.
    + hb_fsCurDirBuff() and hb_fsFindNextLow() extended
      to use hb_fsNameConvFrom().
    + Added hb_fsBaseDirBuff() to return the base
      directory on the C level (based on argv[0]).
    + Added HB_PROGNAME() to return the executable
      program name (based on argv[0]).
    + Added HB_DIRBASE() to return the executable
      base directory (based on argv[0]).
    * Renames done regarding OS/FS CP conversion:
      hb_fsNameConvFrom()        -> hb_osDecode()
      hb_fsNameConvTo()          -> hb_osEncode()
      hb_setGetFileCPTransTo()   -> -
      hb_setGetFileCPTransFrom() -> -
      hb_setGetFNAMECP()         -> hb_setGetOSCODEPAGE()
      _SET_FNAMECP               -> _SET_OSCODEPAGE
    * hb_osDecode()/hb_osEncode() extended to have a second
      parameter BOOL * fFree.
       Changed all calls to handle the case when fFree is set
      to TRUE by hb_osDecode()/hb_osEncode().
    + HB_GETENV(): Added 3rd logical parameter to control wether
      to convert the returned value from OS CP to Harbour CP.
      The default is TRUE to be in sync with GETE[NV]() and the
      rest of core.
    * hb_fsNameConv() is now doing OS CP conversion using std APIs,
      rather than duplicating such logic. I've traded some speed
      for modularity.
    * hb_osDecode/hb_osEncode() function declarations moved to hbapi.h
    * hb_osDecode/hb_osEncode() function definitions moved to set.c
    ; NOTE: None of these were extensively tested, and I tend
            to make mistakes when dealing with pointers.
            It compiles cleanly with BCC, and some basic tests
            worked, but bFree = TRUE codepaths are not yet
            working so this needs more review.

  * source/rtl/teditor.prg
  * source/rtl/tpersist.prg
  * utils/hbmake/hbmake.prg
    * MemoRead() -> hb_MemoRead()

  * contrib/hbct/files.c
    ; TOFIX: Many functions here are possibly not thread safe.
    ; TOFIX: Calling hb_fsFindClose() at app exit (and thus keeping
             the FF handles open for the whole app lifetime) doesn't
             play well with server side apps (as the app may run for
             months or even longer), and even worse, they
             will lock the passed directory so that they cannot be
             removed (maybe even renamed), until the app exists.
             At least on Windows.

  * source/rtl/dirdrive.c
    ! Fixed to use F_ERROR instead of -1.

  * include/hbextern.ch
    ! Added missing HB_GCSTEP().

  * source/vm/extrap.c
    + Added CPU dump code for Windows x64.
    + Enabled module listing for Windows 64-bit platforms.
    % Minor cleanup in Windows x86 CPU dump code.
    + Added TODO for Windows IA64 CPU dump.
    + Added TODO for Windows x64 stack walk, with pointers.
    + Added TOFIX regarding displaying module names in Windows x64 mode.

  * source/rtl/fstemp.c
    ! Minor formatting.

  * source/rtl/gete.c
  * source/rtl/run.c
  * source/rtl/hbrunfun.c
  * source/vm/cmdarg.c
    + Added CP conversion to:
      GETE[NV](), HB_GETENV(), __RUN(), HB_RUN(),
      HB_ARGSTRING(), HB_CMDLINE().

  ; TODO: dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, <cDelimArg>, <nConnection> ) -> <lSuccess>
          Generates and opens a new dbf with a temporary filename
          in exclusive mode, deletes it automatically when closed.
          All indexes created for this table, should ideally have
          the temporary flag on, so those get deleted too, when closed.

  ; TOFIX: hb_regex*() functions will not honor Harbour CP setting,
           when case insensitivity is selected.

  ; TOFIX: hbct / SetFDaTi() to move any local logic into Harbour core
           functions and use a simple Harbour API call only.
           I'm not sure what is the reason with keeping the logic
           duplicated here; if this isn't by intent, this function
           could be much simplified.

  ; TOFIX: Avoid using C level toupper()/tolower()/islower()/isupper()

  ; TOFIX: hb_regexMatch()'s 3rd parameter has a double meaning.
           It controls case-sensitivity (in sync with the documentation),
           but it also controls if hb_regexMatch() behaves like
           hb_regexLike() (.T.), or hb_regexHas() (.F.). This means
           that hb_regexMatch(,, .T.) == hb_regexLike(,, .T.) (case-sensitive) and
                hb_regexMatch(,, .F.) == hb_regexHas(,, .F.) (case-insensitive)
           Maybe this was the intent of the original developers, but
           to me it looks a rather strange behaviour which was added by
           accidentally forgetting about the 3rd parameter already being
           utilized. This either needs to be fixed, or properly documented.

  ; NOTE: Noteworthy links:
          http://docs.python.org/3.0/whatsnew/3.0.html
            - Unicode/text section
            - Removed <> (use != instead)
          http://sphinx.pocoo.org/
            - Documentation format
          http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
            - Character encoding detection
2009-01-14 15:32:43 +00:00
Mindaugas Kavaliauskas
c19ebf700e 2008-12-30 18:10 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    + added array preallocation

  * harbour/contrib/rddsql/sqlbase.c
  * harbour/contrib/rddsql/sqlmix.c
    * fixed a few compile time warnings
2008-12-30 16:14:01 +00:00