Commit Graph

2820 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
bfe075abbc 2012-03-20 19:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbcdpreg.h
    + added few macros for extended CP definition

  * harbour/src/codepage/cp_big5.c
  * harbour/src/codepage/cp_utf8.c
  * harbour/src/codepage/cp_u16le.c
    * updated macros for CP definition

  * harbour/tests/big5_gen.prg
    % added small improvement in code hashing character
      translation tables so they are a little bit smaller

  * harbour/src/codepage/big5.c
    * regenerated
2012-03-20 18:26:41 +00:00
Przemyslaw Czerpak
0b8e7986c3 2012-03-20 18:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicdp.h
    + added missing declaration of hb_fsNameConvU16()
2012-03-20 17:44:49 +00:00
Przemyslaw Czerpak
1038fb15fb 2012-03-20 18:40 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbwinuni.h
    + added HB_FSNAMECONV() macro - it's automatically redirected to
      hb_fsNameConv() or hb_fsNameConvU16() functions depending on
      UNICODE windows macro

  * harbour/include/hbapifs.h
  * harbour/src/rtl/filesys.c
    + added hb_fsNameConvU16() C function - it makes similar operatin to
      hb_fsNameConv() but returns UTF16 string.
    + added hb_fsPipeUnblock() C function - currently it works only
      in POSIX systems
    * HB_FSNAMECONV() instead of HB_TCHAR_*() macros

  * harbour/src/rtl/hbcom.c
    * HB_FSNAMECONV() instead of HB_TCHAR_*() macros
    % encapsulate port open and close operations inside
      hb_vmUnlock()/hb_vmLock() - on some systems this can
      be slow operations, i.e. close() is delayed until
      byte in output buffer are not transmitted.

  * harbour/src/rtl/hbproces.c
    % prefer read then write in pipe operations
    ! in POSIX systems set unblocking mode for PIPE handles in
      hb_fsProcessRun() function - it fixes potential deadlock

  * harbour/src/common/strwild.c
    * formatting

  * harbour/src/rtl/dircmd.prg
    % use space( n ) instead of repl( chr( 0 ), n ) for allocating
      dirty buffer

  * harbour/src/rtl/gttrm/gttrm.c
  * harbour/src/rtl/gtsln/kbsln.c
    * ignore broken UTF8 characters in input
2012-03-20 17:40:34 +00:00
Przemyslaw Czerpak
9723beb5c0 2012-03-13 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/package/harbour.spec
    ! added missing attribute for harbour.ld.conf file
    ! added optional hbhttpds library

  * harbour/contrib/hbct/envparam.c
  * harbour/contrib/hbct/dummy.c
  * harbour/contrib/hbct/hbct.hbp
  * harbour/contrib/hbct/hbct.hbx
    + added ENVPARM() - now it's implemented for all platforms but
      it should be tested on different *nixes - some of them may not
      support 'char * environ' public variable

  * harbour/contrib/xhb/hbserv.c
    * added missing dummy functions in DOS builds

  * harbour/utils/hbmk2/hbmk2.prg
    ! do not set binding to hb_forceLinkMainWin() when -nohblib and -gui
      switches are used together


  * harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    + added new C functions hb_cdpnDupUpper(), hb_cdpnDupLower(),
      hb_cdpnDup2Upper() and hb_cdpnDup2Lower().
      They should be used instead of hb_strUpper() and hb_strLower()
      functions because they can work well with CPs where upper and
      lower characters uses different number of bytes, i.e. UTF8 has
      such characters.

  * harbour/src/rtl/strcase.c
  * harbour/src/rtl/fstemp.c
  * harbour/src/rtl/filesys.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/src/rdd/hbsix/sxsem.c
    * replaced obsolete hb_strUpper() and hb_strLower() functions with
      new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.

  * harbour/src/rdd/hbsix/sxutil.c
    * replaced obsolete hb_charUpper() function with hb_cdpnDupUpper()

  * harbour/contrib/sddpg/sddpg.c
  * harbour/contrib/sddsqlt3/sddsqlt3.c
  * harbour/contrib/sddmy/sddmy.c
  * harbour/contrib/sddfb/sddfb.c
  * harbour/contrib/sddodbc/sddodbc.c
  * harbour/contrib/sddoci/sddoci.c
    ! fixed memory leaks
    * replaced obsolete hb_strUpper() and hb_strLower() functions with
      new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.
    ; TODO: these conversions are redundant - I'll remove them in next
            commit.
2012-03-13 11:55:43 +00:00
Przemyslaw Czerpak
f9f8387208 2012-02-24 13:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbcompdf.h
  * harbour/src/compiler/hbmain.c
  * harbour/src/compiler/hbcomp.c
  * harbour/src/compiler/harbour.y
  * harbour/src/compiler/harbour.yyc
    ! fixed compile time GPF exploited by strings used in CASE values
      of SWITCH statement compiled with active TEXHIDDEN pragma.
      Warning: strings used in such context (CASE values) are not encrypted
               in generated code, i.e. ".jpeg", ".jpg", ".png" in this code:
            SWITCH hb_FNameExt( cFileName )
               CASE ".jpeg"
               CASE ".jpg"
               CASE ".png"
                  show_pict( "Article picture", cFileName )
            ENDSWITCH
2012-02-24 12:47:10 +00:00
Przemyslaw Czerpak
de755848ab 2012-02-17 21:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbcom.ch
  * harbour/src/rtl/hbcom.c
    + added new serial error code: HB_COM_ERR_PIPE
      It's usable for some devices which use EPIPE error to
      signal disconnected state.

  * harbour/src/3rd/zlib/zlib.h
    + added missing declarations for exported public functions

  * harbour/src/3rd/zlib/gzlib.c
  * harbour/src/3rd/zlib/gzguts.h
    ! fixed POCC and XCC compilation
    * enabled support for vsnprintf() in OpenWatcom builds

  * harbour/src/3rd/zlib/Makefile
    ! fixed all non windows and WATCOM builds - critical macro
      set by ./configure in ZLIB was not defined
    ; warning long file support is broken on most of 32bit platforms
      so be careful with GZIP functions.

  * harbour/contrib/gtwvg/gtwvg.h
    + define WINVER 0x0500 - it's necessary for some macros and
      structures used by GTWVG code

  * harbour/contrib/gtwvg/wvgwin.c
    * removed redundant line with 'break;' instruction
2012-02-17 20:04:42 +00:00
Viktor Szakats
76e3f5afd6 2012-01-30 15:19 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
  * config/postinst.hbs
    ! use HB_WILDMATCH() with .T. option to make it behave as expected

  * include/harbour.hbx
  * include/hbcpage.hbx
    * regenerated
2012-01-30 14:21:50 +00:00
Przemyslaw Czerpak
c68616972b 2012-01-30 14:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/harbour.hbx
    + added HB_FUNC_EXCLUDE HB_MT
      TOFIX: it also disabled HB_MTVM() function. It should not happen.

  * harbour/include/hbcpage.hbx
    + added HB_FUNC_EXCLUDE HB_CODEPAGE_BIG5

  * harbour/include/harbour.hbx
  * harbour/include/hbusrrdd.hbx
  * harbour/include/hbscalar.hbx
  * harbour/include/hblang.hbx
  * harbour/include/hbcpage.hbx
    * regenerated automatically

  * harbour/src/rtl/valtype.c
    + added new PRG function: HB_ISHASHKEY( <xVal> ) -> <lValidHashKey>

  * harbour/src/lang/msgskiso.c
  * harbour/src/lang/msgskwin.c
  * harbour/src/lang/msgskkam.c
  * harbour/src/lang/msgsk852.c
    * modification in Slovak CPs by Jaroslav Janik - many thanks.
2012-01-30 13:33:49 +00:00
Mindaugas Kavaliauskas
401423620e 2012-01-27 18:25 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* src/vm/hashes.c
  * src/vm/hashfunc.c
    + implemented posibility to use hashes a sorted arays with binary search.

      Implemented HB_BOOL hb_hashScanSoft( pHash, pKey, &nPos ). Function 
      if similar to, but returns nPos even if pKey is not found in pHash.

      Extended HB_HHASKEY( aHash, xKey [, @nPos ] ) --> lFound
      Function optionaly returns position of the item with a largest key 
      smaller or equal to xKey. If xKey is less than all keys in hash, 
      zero position is returned. I.e., 
        aHash := {10=>, 20=>}
        ? HB_HHASKEY( aHash,  5, @nPos ), nPos  //  .F.          0
        ? HB_HHASKEY( aHash, 10, @nPos ), nPos  //  .T.          1
        ? HB_HHASKEY( aHash, 15, @nPos ), nPos  //  .F.          1
        ? HB_HHASKEY( aHash, 20, @nPos ), nPos  //  .T.          2
        ? HB_HHASKEY( aHash, 25, @nPos ), nPos  //  .F.          2
2012-01-27 16:25:55 +00:00
Mindaugas Kavaliauskas
88a8e73167 2012-01-11 19:25 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* contrib/hbcairo/core.c
    ! fixed typo

  * contrib/hbssl/ssl.c
    ! fixed typo in SSL_GET_MODE()

  * contrib/hbssl/hbssl.h
  * contrib/hbssl/x509.c
  * contrib/hbssl/ssl.c
    + implemented release option for X509 collectable pointer
    ; openSSL increments reference counter for X509 returned
      by SSL_get_peer_certificate(), but does not increment it
      for SSL_get_certificate(). Unnecessary freeing of X509
      pointer caused random GPF later

  * src/rtl/hbsockhb.c
    * changed .prg level hb_socketSetBlockingIO() return value 
      type from lSuccess to nSuccess, to have the same return
      value meaning precision as C level function

  * src/rtl/hbsockhb.c
  * include/harbour.hbx
    + hb_socketGetFD( hSocket ) --> nFD
2012-01-11 17:26:24 +00:00
Przemyslaw Czerpak
d8aa9b52c3 2012-01-10 14:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbhrb.ch
  * harbour/src/vm/runner.c
    * disabled access to INIT and EXIT functions in
      HB_HRBGETFUNSYM() and HB_HRBGETFUNLIST()
    + added 2-nd parameter <nType> to HB_HRBGETFUNLIST()
         HB_HRBGETFUNLIST( <pHRB> [, <nType>] ) -> <aFuncList>
      <nType> is defined in hbhrb.ch:
         HB_HRB_FUNC_PUBLIC - locally defined public functions
         HB_HRB_FUNC_STATIC - locally defined static functions
         HB_HRB_FUNC_LOCAL  - locally defined functions
         HB_HRB_FUNC_EXTERN - external functions used in HRB module
2012-01-10 13:38:50 +00:00
Viktor Szakats
1b4008723b 2012-01-06 16:13 UTC+0100 Viktor Szakats (harbour syenar.net)
* ChangeLog
  * (whole tree)
    * changed e-mail address
2012-01-06 15:28:23 +00:00
Przemyslaw Czerpak
053f90539d 2012-01-05 14:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbrdddbf.h
    * moved DBF record lock range for DB_DBFLOCK_HB64 to avoid potential
      problems with integer overflows in system or network transport layer.
      Warning: INCOMPATIBLE!
               all applications using DB_DBFLOCK_HB64 locking mode should
               be updated - it is not safe to concurrently access the
               same files using programs compiled with older Harbour
               versions and current one.
2012-01-05 13:47:18 +00:00
Przemyslaw Czerpak
35fbd4f189 2012-01-02 21:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapistr.h
  * harbour/src/vm/strapi.c
    + added new C functions:
         const char * hb_parastr( int iParam, HB_SIZE nIndex,
                                  void * cdp,
                                  void ** phString, HB_SIZE * pnLen );
         const char * hb_parastr_utf8( int iParam, HB_SIZE nIndex,
                                       void ** phString, HB_SIZE * pnLen );
         const HB_WCHAR * hb_parastr_u16( int iParam, HB_SIZE nIndex,
                                          int iEndian,
                                          void ** phString, HB_SIZE * pnLen );

  * harbour/include/hbwinuni.h
    + added new C macros for windows builds:
         HB_PARASTR( nItem, nIndex, phStr, pnLen )
         HB_PARASTRDEF( nItem, nIndex, phStr, pnLen )

  * harbour/src/vm/hashes.c
    + added optional code for deleting items from hash arrays with
      strict order. This code can be enabled by Harbour compile time
      macro: HB_FAST_HASH_DEL.
      I added it for testing only.
2012-01-02 20:38:17 +00:00
Przemyslaw Czerpak
2cd688f7a6 2011-12-29 23:51 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapistr.h
  * harbour/src/vm/strapi.c
    + added new C functions:
         hb_wstrncpy(), hb_wstrncat()

  * harbour/src/common/hbstr.c
    ; minor updated in comment

  * harbour/include/hbwinuni.h
    + added new macros:
         HB_STRLEN(), HB_STRNLEN(), HB_STRDUP(), HB_STRNDUP(),
         HB_STRNCPY(), HB_STRNCAT(), HB_STRCMP(), HB_STRNCMP()

  * harbour/src/rtl/disksphb.c
  * harbour/src/rtl/gtwvt/gtwvt.h
  * harbour/src/rtl/gtwvt/gtwvt.c
    * eliminated HB_TCHAR_*() macros
2011-12-29 22:51:29 +00:00
Viktor Szakats
7ad3481808 2011-12-24 03:32 UTC+0100 Viktor Szakats (harbour syenar.hu)
* ChangeLog
  * (whole tree)
    * removed obsolete antispam measure from my e-mail address
2011-12-24 02:47:24 +00:00
Przemyslaw Czerpak
d4128116bb 2011-12-23 10:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    ! fixed typo in hb_cdpUTF8StringPeek() declaration
2011-12-23 09:43:30 +00:00
Przemyslaw Czerpak
8f7e9eda97 2011-12-06 11:42 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbrdddbf.h
    * modified DB_DBFLOCK_HB64 locking scheme
         - extended RLOCK/FLOCK area from 2^31-2 to 2^32-2
           it effectively changes maximum number of records in this
           locking scheme to 4'294'967'294
         - use COMIX like hyper locking mode
           it should increase performance
      Warning: INCOMPATIBLE!
               all applications using DB_DBFLOCK_HB64 locking mode should
               be updated - it is not safe to concurrently access the
               same files using programs compiled with older Harbour
               versions and current one.
    * renamed the following DB_DBFLOCK_* macros:
         DB_DBFLOCK_CLIP    to DB_DBFLOCK_CLIPPER
         DB_DBFLOCK_CL53    to DB_DBFLOCK_COMIX
         DB_DBFLOCK_CL53EXT to DB_DBFLOCK_HB32
    * added new locking scheme: DB_DBFLOCK_CLIPPER2
      This locking scheme is designed to replicate _real_ locking scheme
      used by Cl*pper applications linked with NTXLOCK2.OBJ
      It's different then the documented one.
    ; Now Harbour supports the following locking schemes:
         DB_DBFLOCK_CLIPPER  1 default Clipper locking scheme
         DB_DBFLOCK_COMIX    2 COMIX and CL53 DBFCDX hyper locking scheme
         DB_DBFLOCK_VFP      3 [V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ
         DB_DBFLOCK_HB32     4 Harbour hyper locking scheme for 32bit file API
         DB_DBFLOCK_HB64     5 Harbour hyper locking scheme for 64bit file API
         DB_DBFLOCK_CLIPPER2 6 extended Clipper locking scheme NTXLOCK2.OBJ

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

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

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

  * harbour/src/vm/classes.c
    * disabled inheriting of class variables values from ancestor classes
      when new class is dynamically created.
      Warning: INCOMPATIBLE!
               This modification is not backward compatible and can
               interact with some existing code which has to be updated
               for new behavior.
2011-12-06 10:42:41 +00:00
Przemyslaw Czerpak
952e2dde43 2011-11-08 12:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
    ! fixed HB_STRICT_ALIGNMENT setting.
      Now it's enabled for all non x86[_64] CPUs.
2011-11-08 11:38:44 +00:00
Przemyslaw Czerpak
9ec8317887 2011-10-20 22:03 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbcomp.h
  * harbour/src/pp/ppcore.c
  * harbour/src/compiler/hbmain.c
  * harbour/src/compiler/hbcmplib.c
    + added support for setting starting line number in code compiled
      from memory buffer
    ! removed unnecessary EF_CANDEFULT flag from recently added
      compiler RTE
2011-10-20 20:04:04 +00:00
Przemyslaw Czerpak
049e9da26f 2011-10-20 20:19 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/src/compiler/hbmain.c
  * harbour/src/compiler/hbcomp.c
  * harbour/src/compiler/hbgenerr.c
    + added support for redirecting compiler warning and error messages
      to user function.

  * harbour/src/compiler/hbcmplib.c
    + optional support for generating RTE in HB_COMPILE*() functions
      on compile errors.
2011-10-20 18:19:19 +00:00
Przemyslaw Czerpak
593b446a6a 2011-10-14 10:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    - removed hb_cdpchrcmp() function and HB_CDP_ISBYTESORT() macro
    + added new function:
         const HB_UCHAR * hb_cdpGetSortTab( PHB_CODEPAGE cdp );
      it returns binary sort table or NULL if given CP uses more
      complicated sorting algorithm.

  * harbour/include/hbrddcdx.h
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    % use hb_cdpGetSortTab() to take binary sort table used by WA CP
      instead of creating new one for each WA.
2011-10-14 08:43:06 +00:00
Przemyslaw Czerpak
69bfb809d4 2011-10-10 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/rtl/cdpapi.c
    + added new string C functions operating on current HVM CP:
         HB_BOOL hb_strIsDigit( const char * szChar );
         HB_BOOL hb_strIsAlpha( const char * szChar );
         HB_BOOL hb_strIsLower( const char * szChar );
         HB_BOOL hb_strIsUpper( const char * szChar );

  * harbour/src/rtl/is.c
    * use hb_strIs*() functions instead of hb_charIs*()

  * harbour/include/hbapi.h
  * harbour/src/vm/set.c
    + added new function to check if OS<->Harbour codepage conversion
      is enabled:
         HB_BOOL hb_osUseCP( void );

  * harbour/src/rtl/filesys.c
    * use hb_osUseCP() function

  * harbour/include/hbapicdp.h
    + added HB_CDP_ISBINSORT(cdp) and HB_CDP_ISBYTESORT(cdp) macros

  * harbour/src/vm/itemapi.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/contrib/rddsql/sqlmix.c
  * harbour/contrib/rddads/adsx.c
    * use HB_CDP_IS*SORT() macros

  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    % simplified hb_cdxFindBag()

  * harbour/src/rtl/hbascii.c
    ! fixed HB_ASCIIUPPER() and HB_ASCIILOWER() functions: hb_strUpper()
      was wrongly used inside both functions - probably C&P mistake
      [TOMERGE 3.0]

  * harbour/src/rdd/dbf1.c
    * updated comment
2011-10-10 17:50:44 +00:00
Viktor Szakats
d707da35d0 2011-10-04 23:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbthread.h
  * include/hbsetup.h
  * src/3rd/zlib/Makefile
  * utils/hbmk2/hbmk2.prg
  * config/detplat.mk
  * config/global.mk
  + config/aix
  + config/aix/libs.mk
  + config/aix/gcc.mk
  + config/aix/global.mk
    + added IBM AIX support to Harbour
      Patch by Aleksander Czajczynski
2011-10-04 22:00:25 +00:00
Przemyslaw Czerpak
c80c0feb2a 2011-09-26 10:57 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtcore.h
  * harbour/src/rtl/gtclip.c
    ! fixed possible random data settings by hb_gt_winapi_setClipboard()
    ! fixed possible memory leak in hb_gt_winapi_setClipboard()
    + added new C function for WIN32 builds:
      HB_BOOL hb_gt_winapi_setClipboardRaw( HB_UINT uFormat,
                                            void * pData, HB_SIZE nSize );
2011-09-26 08:57:26 +00:00
Przemyslaw Czerpak
f312800cfb 2011-09-24 11:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbtrace.h
  * harbour/src/common/hbtrace.c
    + added new C function:
         const char * hb_tracemode( const char * szNewMode );
      it can be called with "a" or "w" parameter to set open
      mode for newly created by hb_tracefile() log files.

  * harbour/src/rtl/trace.c
    + added new PRG function:
         HB_TRACEMODE( [<cNewMode>] ) -> <cPrevMode>
2011-09-24 09:10:51 +00:00
Viktor Szakats
2ae90b92ba 2011-09-20 17:12 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/rtl/hbrandom.c
    + Changed Harbour's core pseudo-random generator from STD C rand()/srand()
      to superior implementation. New implementation fixed MT problems with 
      the standard solution on certain targets (f.e. win/mingw, win/msvc)
      Based on Przemek's patch which is in turn based on algorithm by 
      Steve Park: http://www.cs.wm.edu/~va/software/park/ suggested by me 
      on the list. Further modifications:
         * HB_RANDOMINTMAX() adapted. Checkme, I'm not sure about this.
         * HB_RANDOMSEED() updated.
         + headers cleaned, copyright updated, note added
         + automatic seed defaulting like in previous version (checkme, 
           we may as well drop it, though it will be create incompatibility)
         ; per-thread seed didn't work well for me (even with new engine) 
           so I didn't implement it.
         + added proto for hb_random_seed()
2011-09-22 15:14:21 +00:00
Przemyslaw Czerpak
b3229d9c73 2011-09-06 09:33 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
    + added new hb_gtInfo() action: HB_GTI_FONTATTRIBUTE and attributes:
      HB_GTI_FONTA_FIXMETRIC, HB_GTI_FONTA_CLRBKG, HB_GTI_FONTA_DRAWBOX

  * harbour/src/rtl/gtxwc/gtxwc.c
    + implemented HB_GTI_FONTATTRIBUTE.
      Now user can make:
         hb_gtInfo( HB_GTI_FONTATTRIBUTE, HB_GTI_FONTA_FIXMETRIC + ;
                    HB_GTI_FONTA_CLRBKG + HB_GTI_FONTA_DRAWBOX )
      and use also fonts with broken metrics.
2011-09-06 07:33:58 +00:00
Viktor Szakats
931cd25d8f 2011-08-05 19:37 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbclass.ch
    ! typo in VO specific (inactive) section: HIDDE -> HIDDEN
      Checkme.

  * examples/gtwvw/wvwdraw.c
  * examples/gtwvw/wvwmenu.c
  * examples/gtwvw/gtwvw.c
  * examples/gtwvw/wvwstbar.c
  * examples/gtwvw/wvwcheck.c
  * examples/gtwvw/wvwfuncs.c
  * examples/gtwvw/wvwpush.c
  * examples/gtwvw/wvwedit.c
  * examples/gtwvw/wvwtbar.c
  * examples/gtwvw/hbgtwvw.h
    ! basic fixes to make it build with Harbour 3.1.0dev
      - IS*() -> HB_IS*()
      - manual windows.h inclusion instead of retired HB_OS_WIN_USED trick
2011-08-05 17:38:24 +00:00
Przemyslaw Czerpak
915eea1017 2011-08-01 15:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/src/vm/estack.c
    + added internal function hb_stackLockCount()

  * harbour/src/vm/hvm.c
    * modified hb_vmRequestReenter() to return HB_FALSE instead of GPF
      when called from non HVM thread.
    * extended hb_vmRequestReenter[Ext]()/hb_vmRequestRestore() to
      save and restore HVM stack lock state and lock HVM stack before
      successful return.
      This extensions is critical for MT applications which need
      to safely reenter HVM also from code encapsulated inside unknown
      number of hb_vnUnlock()/hb_vnLock() calls.
      [TOMERGE 3.0]

  * harbour/src/compiler/cmdcheck.c
    % removed redundant conditions
2011-08-01 13:29:07 +00:00
Viktor Szakats
2c365f9b9a 2011-07-17 22:30 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
    * updated
  * config/global.mk
    * bumped version number
2011-07-17 20:30:57 +00:00
Viktor Szakats
44306c955c 2011-07-17 16:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/extend.api
  * include/harbour.hbx
  * include/hbdefs.h
  * include/hbapi.h
  * include/hbvm.h
  * include/hbapigt.h
  * include/clipdefs.h
  - src/pp/pplib3.c
  * src/pp/Makefile
  * src/vm/hvm.c
  * src/rtl/hbtoken.c
  * src/rtl/inkey.c
  * src/rdd/usrrdd/usrrdd.c
  * contrib/hbmysql/hbmysql.hbx
  - contrib/hbmysql/mysqlold.c
  * contrib/hbmysql/mysql.c
  * contrib/hbmysql/hbmysql.hbp
  * contrib/hbmysql/mysql.ch
  * contrib/hbpgsql/hbpgsql.hbx
  * contrib/hbpgsql/postgres.c
  * contrib/hbwin/hbwin.hbp
  * contrib/hbwin/hbwin.hbx
  - contrib/hbwin/legacy.prg
  - contrib/hbwin/legacycd.c
  - contrib/hbwin/legacyco.c
  - contrib/hbwin/legacycp.c
  * contrib/hbodbc/hbodbc.hbx
  - contrib/hbodbc/odbcold.c
  * contrib/hbodbc/odbc.c
  * contrib/hbodbc/hbodbc.hbp
  * contrib/hbtip/utils.c
  * contrib/hbtip/hbtip.hbx
    * deleted things marked with HB_LEGACY_LEVEL3, finishing cleanup
      job started many years ago.
    ; this also means that windows.h and os2.h will no longer be
      included by Harbour headers, HB_OS_WIN_USED is thus ineffective,
      so if someone needs these headers to access system APIs, they
      should be manually included in each source file. Some old
      hacks have also been removed which disabled some Clipper
      compatibility macros/types in compatibility headers (clipdefs.h, *.api),
      if someone uses these alongside windows.h/os2.h inclusion, it will
      be broken, here the strategy is to move to Harbour types and
      Harbour API headers, simply Clipper headers and newer OS headers
      are not compatible.
    ; HB_DONT_DEFINE_BASIC_TYPES is not effective anymore.
    ; INKEY_RAW is no more, use HB_INKEY_RAW instead.
    ; NEXTKEY() hidden parameter extension is disabled. Use HB_KEYNEXT()
      Harbour alternative which has it.
    ; Some legacy PP functions are no more.
    ; hb_vmPushState()/hb_vmPopState() APIs were now permanently deleted.
    ; __STR*() token handling legacy functions are no more, use native HB_TOKEN*()
      ones instead.
    ; WRITEBHEADER in USRRDD is no more, WRITEDBHEADER is the replacement.
    ; hbmysql, hbodbc compatibilty and deprecated functions were deleted
    ; hbwin compatibility functions were deleted. If there is demand, mainly to
      help migrating xhb users, they can be readded to xhb lib by interested
      developers, now deleted code should be changed to fall back to dummies
      on non-Windows builds.
    ; some deprecated hbpgsql functions were deleted
    ; hbtip HB_BASE64() is deleted. Use core HB_BASE64ENCODE() instead.

    ; Anyone affected by above changes has the option to stick with 3.0.x Harbour
      versions or to update their source code according to above instructions
      (or instructions included in past ChangeLog entries)

    ; Some fallouts in Harbour build is possible after these changes
2011-07-17 14:23:26 +00:00
Viktor Szakats
f9d93bfcf8 2011-07-17 15:29 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbsetup.ch
    - deleted HB_LEGACY_LEVEL3
    + added HB_LEGACY_LEVEL5
2011-07-17 13:30:20 +00:00
Viktor Szakats
efe1e5b58b 2011-07-17 15:26 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/extend.api
  * include/hbdefs.h
  * include/hbapi.h
  * include/clipdefs.h
  * contrib/hbpost.hbm
  * contrib/hbfimage/hbfimage.hbp
  * config/rules.mk
    - deleted HB_LEGACY_TYPES_OFF macro. it is the default
      in post 3.0.x Harbour versions.
    + added HB_LEGACY_TYPES_ON macro. This should be used when 
      building C code which uses Clipper/Harbour legacy types 
      (f.e. LONG or BOOL).
      It will stay until next stable version when all legacy 
      types will be permanently removed. This gives time for
      3rd party developers to update code to use Harbour 
      (non-legacy) types in C code.
      See '2009-11-01 11:35 UTC+0100 Viktor Szakats' ChangeLog 
      entry about non-legacy Harbour types.
2011-07-17 13:26:52 +00:00
Viktor Szakats
78a76a82d2 2011-07-17 15:01 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbver.h
  * package/harbour.spec
  * package/harbour-win.spec.in
  * package/winuni/mpkg_win_uni.bat
  * package/harbour-wce.spec.in
  * package/harb_win.mft
    * trunk version bump. 2.1.0rc2 -> 3.1.0dev
2011-07-17 13:02:02 +00:00
Przemyslaw Czerpak
3f148040d0 2011-06-17 20:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
  * harbour/src/rtl/gtwvt/gtwvt.c
    + added support for HB_GTI_MAXIMIZED
      Patch created by Heinz V. Bergen - thank you.

  * harbour/src/common/hbstr.c
    % simplified hb_strAt() code and added missing stop condition.
      This modification also quite nicely optimized the average speed
      of AT() function and $ operator.
2011-06-17 18:27:14 +00:00
Viktor Szakats
50f49dbf55 2011-06-14 11:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/strtran.c
    ! minor in webpage URL

  * src/rtl/gtwvt/gtwvt.c
    ! Patch from Heinz V. Bergen, fixing full screen and alt-enter
      GT features when GTWVT windows was not open yet, also fixing
      screen positioning/sizing regression.

  * src/rtl/inkey.c
  * include/harbour.hbx
    + added HB_KEYLAST() which allows to pass a mask
      (I'm not sure if this is ultimate solution, but there is goes
      for now. Pls remove it if there is better one)

  * package/winuni/RELNOTES
    * updated 3rd party version numbers
2011-06-14 09:52:19 +00:00
Przemyslaw Czerpak
4bebbd6ac3 2011-06-09 15:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapifs.h
  * harbour/src/rtl/filesys.c
    % removed unnecessary PID setting in POSIX file lock function.
    + added new C function:
         int hb_fsLockTest( HB_FHANDLE hFileHandle, HB_FOFFSET nStart,
                            HB_FOFFSET nLength, HB_USHORT uiMode );
      It allows to test file range lock status.
      It returns -1 on error, 0 when lock can be set and value greater
      then 0 if part of given range is locked by other process. In POSIX
      systems this value is PID of current lock owner. In other systems
      it's always 1.
      In uiMode only FLX_SHARED bit is significant.

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

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

  * harbour/include/dbinfo.ch
    + added DBI_LOCKTEST

  * harbour/src/rdd/dbf1.c
    % small code simplification
    + implemented DBI_LOCKTEST
         dbInfo( DBI_LOCKTEST [, <nRecNo> ] ) -> <nStatus>
      returns corresponding results to C level hb_fsLockTest() function.
      If current workarea is already locked then 0 is returned.
      If low level FS is located on POSIX system (accessed directly or by
      HBNETIO) then value greater then 0 is PID of current lock owner.
      If the lock is hold by aliased area or other thread of calling
      process then <nStatus> is current PID. In Other systems 1 is returned
      when lock cannot be set in current workarea.
      If <nRecNo> is given then the test is for RLOCK() otherwise FLOCK()
      operation.
2011-06-09 13:32:19 +00:00
Przemyslaw Czerpak
c72ee124b3 2011-06-02 21:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/thread.c
    * set sleep timeout in *nix version of hb_threadReleaseCPU() to 10 ms

  * harbour/src/compiler/hbpcode.c
    ! fixed typo which could cause compile time crash when debugger code
      is generated (-b) and file name with extenssion has only one or
      two characters

  * harbour/include/hbcompdf.h
  * harbour/src/compiler/hbmain.c
  * harbour/src/compiler/hbstripl.c
  * harbour/src/compiler/harbour.y
  * harbour/src/compiler/harbour.yyc
    ! removed old code designed to optimize line numbers generated in PCODE.
      It cannot work correctly and in some cases it was generating HB_P_LINE
      pcodes in wrong places.
    % enabled new code for HB_P_LINE PCODEs optimization also in debugger (-b)
      compilation so it can be used to replaced the old one.
2011-06-02 19:05:56 +00:00
Przemyslaw Czerpak
20b5875721 2011-05-27 19:04 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/codepage/Makefile
  + harbour/src/codepage/uc858.c
    + added CP858 - basically it's CP850 but contains EURO SIGN (U+20AC) at position 0xD5
      instead of Turkish dotless-i (U+0131)
2011-05-27 17:04:24 +00:00
Viktor Szakats
464af38648 2011-05-21 13:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
  + src/vm/pbyref.c
  * src/vm/Makefile
    + added HB_PISBYREF() (renamed because HB_PARAM* prefix would 
      be new, whereas HB_P*() is already utilized)
      [Przemek]

  * contrib/xhb/xhb.hbx
  * contrib/xhb/xhbfunc.c
    - commented HB_ISBYREF(). it's broken.
2011-05-21 11:14:46 +00:00
Viktor Szakats
5553c16493 2011-05-21 12:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
  * src/rtl/hbrandom.c
    * HB_RANDOMMAX() -> HB_RANDOMINTMAX()
    ; TOFIX: now broken under mingw in all places where HB_RANDOMINT()
             is potentially called with larger than HB_RANDOMINTMAX()
             value. This will be impossible f.e. in RANDOM() CT function.

  * src/rtl/hbrandom.c
  * src/rtl/hbrand.c
    + hb_random_block() changed to use ARC4 backend.

  * examples/httpsrv/modules/showcounter.prg
    % hb_ntos()
2011-05-21 10:42:24 +00:00
Przemyslaw Czerpak
7fbc9044fe 2011-05-21 12:02 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/valtoexp.prg
    ! fixed typo in recent modifications causing RTE in HB_VALTOEXP()

  * harbour/contrib/hbwin/win_prn2.c
    ! allocate dynamic memory for print buffer in WIN_PRINTFILERAW()
      32KB variable on process execution stack is potential source of
      random GPFs in programs using deeper recursive calls and killer
      for MT mode when smaller thread stack is allocated.
    ! fixed potential data lost in WIN_PRINTFILERAW() when not all data
      is transfered in single WritePrinter() call
    ! interrupt printing in WIN_PRINTFILERAW() if WritePrinter() returns
      error

  * harbour/include/harbour.hbx
  * harbour/src/rtl/hbrandom.c
    ! restored my old fix - it was correct and the results over RAND_MAX
      range expected
    + added new PRG function:
         HB_RANDOMMAX() -> <nRAND_MAX>
2011-05-21 10:02:49 +00:00
Viktor Szakats
14d0d4161d 2011-05-17 19:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
  * src/rtl/hbrandom.c
    + HB_RAND32() -> <32-bit random number>

    ; TOFIX: random numbers are broken under mingw 4.5.2, only high 16bits are random.
             in all HB_RAND*() functions
2011-05-17 17:03:32 +00:00
Przemyslaw Czerpak
6b92949b7d 2011-05-17 15:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/contrib/xhb/hboutdbg.c
  * harbour/contrib/xhb/xhbfunc.c
    ! use 'hb_cmdargARGVN( 0 )' instead of 'hb_cmdargARGV()[ 0 ]' to avoid
      GPF when no arguments are initialized

  * harbour/contrib/hbwin/hbolesrv.hbc
    * use {allmingw} instead of {mingw} macro for MinGW64 builds

  * harbour/src/codepage/Makefile
  * harbour/src/codepage/uc646_yu.c
  + harbour/src/codepage/uc646yuc.c
  * harbour/include/hbapicdp.h
    + added JUS I.B1.003 - Cyrillic script variant of ISO-646-YU
      for Serbian and Macedonian language

  * harbour/src/codepage/Makefile
  + harbour/src/codepage/cpsr646.c
  + harbour/src/codepage/cpsr646c.c
  * harbour/include/hbcpage.hbx
    + added SR646 and SR646C Harbour codeapges.
      Both code pages uses the same 8-bit representation but different
      unicode values - SR646 uses Latin script and SR646C Cyrillic script.
      It means that it's useless to make any translations between SR646
      and SR646C because both versions uses the same ASCII values but they
      can help in translation to other encodings or CPs, i.e. to convert
      some Serbian text in one of the above CPs to Latin letters in UTF8
      encoding then it's enough to make:
         hb_strToUTF8( <cText>, "SR646" ) -> <cUtf8LatinText>
      and for conversion to UTF8+Cyrillic:
         hb_strToUTF8( <cText>, "SR646C" ) -> <cUtf8CyrillicText>
2011-05-17 13:40:56 +00:00
Viktor Szakats
66fdcc3bbb 2011-05-16 09:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
  * src/vm/runner.c
    + HB_HRBGETFUNLIST() -> <aArray>: New function posted to the
      list by Francesco Saverio Giudice
      (NOTE: I changed the name a little bit)

  * tests/gfx.prg
    ! fixed console output. Patch by Tamas Tevesz
    * changed rest of ? commands to outstd()
2011-05-16 07:34:46 +00:00
Przemyslaw Czerpak
0889e6b43e 2011-05-13 04:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/src/vm/hvm.c
    ! fixed stack preloading in hb_vmRequestReenterExt() when new stack has to be allocated
2011-05-13 02:05:59 +00:00
Viktor Szakats
5f731939fd 2011-05-11 16:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
    + HB_HCLEAR
  * contrib/hbide/hbide.hbp
    * deactivating HB_TR_ALWAYS
2011-05-11 14:25:20 +00:00
Przemyslaw Czerpak
16037cfc6f 2011-05-11 16:01 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/vm/hashes.c
    + add new public C function: HB_BOOL hb_hashClear( PHB_ITEM pHash )
    * do not generate RTE when unexisting key is passed to HB_HDEL()
      now code which makes sth like:
         if xKey $ hValue
            hb_hDel( hValue, xKey )
         endif
      can be reduced to:
         hb_hDel( hValue, xKey )

  * harbour/src/vm/hashfunc.c
    + added new PRG function: HB_HCLEAR( <hValue> ) -> <hValue>
2011-05-11 14:02:04 +00:00
Viktor Szakats
fa0db205a8 2011-05-11 02:52 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbtrace.ch
    * added way to disable HB_TR_ALWAYS
      for more: 2011-04-16 23:04 UTC+0200 Viktor Szakats

  * contrib/hbxbp/hbxbp.hbp
  * contrib/hbqt/hbqt_common.hbm
    + disabled HB_TR_ALWAYS permanent messages from SVN builds
    ; TODO: move this logic to hbpre.hbm
2011-05-11 00:52:35 +00:00