Commit Graph

19085 Commits

Author SHA1 Message Date
Przemysław Czerpak
a5c9a7e68e 2014-04-03 12:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! added missing condition to interrupt broken client connections
2014-04-03 12:17:40 +02:00
Przemysław Czerpak
bf2a912c0e 2014-04-02 22:52 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! fixed very bad bug in one of recent modifications which completely
      broke all servers using early authentication by netio_VerifyClient()
2014-04-02 22:52:09 +02:00
Przemysław Czerpak
6277cb38ff 2014-04-02 12:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebufd.c
  * src/rtl/iousr.c
    * slightly modified code to pacify warnings in some older GCC versions

  * contrib/gtwvg/gtwvg.hbx
    * regenerated with new function
2014-04-02 12:46:22 +02:00
Przemysław Czerpak
9aeaa964d6 2014-04-02 08:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hashes.c
    ! added missing HB_STACK_TLS_PRELOAD
2014-04-02 08:31:40 +02:00
Przemysław Czerpak
7349602fcb 2014-04-01 12:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! unlock HVM stack before locking local mutex and calling hb_fs*()
      functions which also unlocks HVM. It fixes possible deadlock condition
      when hb_gcAll( .T. ) is executed.

  * include/hbapi.h
  * src/vm/garbage.c
    ! changed mark function semantic.
      Adding support for user defined mark function I created race condition
      in MT GC code. It happens because blocks marked as deleted were not
      scanned by GC mark code so their subitems where not accessible.
      To fix it we have to change mark function semantic. Now mark function
      can be executed also for blocks currently deleted. It means that GC
      block destructor should clean references to just removed items and
      subblocks. The best place to make it is clearing pointers to GC blocks
      just after hb_itemRelease() or hb_gcRefFree().
      It is save to clean the reference just before hb_itemRelease() or
      hb_gcRefFree() but only for the single block passed to these functions.
      It is not save to clear reference to more then one block and then
      execute above functions.
    + check reference count after destructor execution for all blocks
      not only arrays - warning it may exploit some wrong C code.
    - removed not longer used hb_gcRefCheck() function.

  * include/hbvm.h
  * src/vm/hvm.c
    + added new internal function hb_vmLockForce()
    ! fixed to mark GC blocks with active threads

  * src/vm/thread.c
  * include/hbthread.h
    % modified sync mutexes used by xBase++ signal class emulation
      to not use item array internally
    * updated mutex destructor to new GC mark semantic
    ! mark GT items if GT is bound with thread item
    ! fixed mutex notify/subscribe code to not change GC items
      when HVM stack is unlocked
    ! use hb_vmLockForce() to eliminate potential deadlock
    + added new C function hb_threadEnterCriticalSectionGC().
      It should be used instead of hb_threadEnterCriticalSection()
      in code which manipulates GC items inside critical section.
      It's slower but eliminates possible deadlock condition.
      Please remember that remember that both functions cannot
      be used for the same mutex. So if it's necessary to use
      hb_threadEnterCriticalSectionGC() in one place then it
      has to be used in all others when the same mutex is locked.

  * src/vm/arrays.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
  * src/rtl/hbgtcore.c
  * contrib/hbcurl/core.c
  * contrib/hbexpat/core.c
    * updated destructors to new GC mark semantic

  * contrib/hbxpp/dllx.c
    ! fixed destructor for pointer item created by DllPrepareCall()
      Now it respects reference counter.
    ; added note about real behavior of library handle destructor,
      I haven't changed existing code behavior but maybe it should
      be done.

  * contrib/xhb/hbserv.c
  * src/debug/dbgentry.c
  * src/rdd/wacore.c
    ! fixed possible deadlocks by using hb_threadEnterCriticalSectionGC()
      instead of hb_threadEnterCriticalSection().

  * contrib/hbmemio/memio.c
    ! slightly modified hb_memfsDirectory() code to avoid race condition
      without using hb_threadEnterCriticalSectionGC()

  * src/vm/fm.c
    % reduce the lock range in HB_FM_STAT builds

  * src/rtl/hbsocket.c
    ! added missing HVM stack unlocking in hb_socketSelect() function

  * src/rtl/gtxwc/gtxwc.c
    ! added few missing locks for version compiled with HB_XWC_XLIB_NEEDLOCKS

  * src/rdd/dbtotal.prg
    * allow to use symbols instead of codeblocks
    * modified Harbour extension which uses ordKey() as default group
      signature to work also without index. In such case all records
      are summarized into single one.

  ; Most of above modifications were critical for stability of MT programs.
    They should allow to activate GC in any place.
2014-04-01 12:33:17 +02:00
Przemysław Czerpak
8f73524d34 2014-03-27 16:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbpgsql/rddcopy.c
    ! fixed typos in my recent modification and potential memory corruption
      and/or wrong output due to ugly hack for last field terminator in old
      code. Thanks to Aleksander Czajczynski for reporting the problem.
2014-03-27 16:13:41 +01:00
Przemysław Czerpak
45a2a56a69 2014-03-27 15:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
    * do not call memset() with zero length

  * include/hbapi.h
  * src/vm/fm.c
    + added new FM statistic C function:
         const char * hb_xinfo( void * pMem, HB_USHORT * puiLine );

  * src/rtl/filebufd.c
  * src/rtl/iousr.c
    * modified casting to pacify more restrictive strict aliasing warnings

  * src/vm/garbage.c
    * minor formatting
2014-03-27 15:03:58 +01:00
Przemysław Czerpak
3c9a89d9e5 2014-03-26 14:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbtest/rt_class.prg
    * updated to follow modified RTE codes
2014-03-26 14:30:33 +01:00
Przemysław Czerpak
4c1c10ef29 2014-03-26 14:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/garbage.c
    ! added protection for activating GC from thread with unlocked HVM stack
      when other thread is already executing GC passes. Such situation does
      not happen in core code and the protections is only just in case.

  * src/vm/hvm.c
    ! do not release HVM thread STOP signal when GC mark pass is activated.
      It was very serious bug which could cause memory corruption when
      thread unlocked HVM stack what allow to start GC mark pass by other
      thread and then locked HVM and begin to change complex variables
      still scanned by the GC thread. This problem have existed from the
      beginning when I committed initial version of Harbour MT support.
      I do not remember why I added code to remove the STOP signal - probably
      I was experimenting with some new things working on Harbour MT code
      and I forgot to deactivate it.
      NOTE: 3-rd party developers who use GC collectible pointer items
            must not activate any PRG code execution inside their mark
            functions.
2014-03-26 14:10:01 +01:00
Przemysław Czerpak
d2ceb0e306 2014-03-25 00:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* tests/iotcp.prg
    ! fixed typo in macro name - thanks to Itamar for the info
2014-03-25 00:38:18 +01:00
Przemysław Czerpak
ed45b65b04 2014-03-24 22:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/Makefile
  + include/hbiousr.ch
  * src/rtl/Makefile
  + src/rtl/iousr.c
    + added module for writting Harbour FILE IO redirectors at PRG level

  + tests/iotcp.prg
    + example code for FILE IO redirector written in PRG.
      It's IOTCP and gives exactly the same functionality as TCP redirector
      in contrib which is written in C.

  * src/vm/runner.c
    % modified internal structure to eliminate some memory allocations

  * contrib/hbpgsql/rddcopy.c
    % small simplification
2014-03-24 22:19:45 +01:00
Przemysław Czerpak
046c9694e0 2014-03-20 14:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    ! added workaround for offset returned by FSeek( hDir, 0, FS_END )
      for directories handles in some *nixes
2014-03-20 14:59:02 +01:00
Pritpal Bedi
fc14c595dc ! Fixed BOM issue in ChangeLog.txt 2014-03-20 00:56:25 -07:00
Pritpal Bedi
71a7be0661 2014-03-19 21:27 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib\gtwvg\hbgtwvg.ch
    + Added: #define GOBJ_OBJDATA_PICTUREEX            10
             #define GOBJ_OBJTYPE_LABEL_EX2            21

  * contrib\gtwvg\gtwgud.c
  * contrib\gtwvg\gtwvgd.c
    % Changed: WM_CLOSE firing K_ESC => HB_K_CLOSE in accordance rest of GTs.

  * contrib\gtwvg\wvgcuig.c
    % Changed: hb_wvg_RefreshRect() flag to erase background: FALSE => TRUE.
    % Changed: WVG_SETGOBJDATA() now returns lSUCCESS or lFAILURE.
    + Added: new CGUI object type - GOBJ_OBJDATA_PICTUREEX.
    + Added: new function
        Wvg_LabelEx2( nTop, nLeft, nBottom, nRight, aPxlOff, cLabel, nAlign,
                  nEscapement, nTextColor, nBkColor, cFontFace, nFontHeight,
                     nFontWidth, nFontWeight, nQuality,  nCharSet, lItalics,
                      lUnderline, lStrikeOut )
    + Added: 7th parameter [<lDoNotScale>] in
       Wvg_Picture( nTop, nLeft, nBottom, nRight, aPxlOff, nSlot, lDoNotScale )
    % Changed: hb_wvg_RenderPicture() code to honor scaled vs non-scaled
       rendering.

  * contrib\gtwvg\wvgutils.c
    ! Fixed: Wvt_ChooseFont() to return correctly array of 9 elements
       instead of 8.
2014-03-19 21:46:07 -07:00
Przemysław Czerpak
5873d78e2c 2014-03-20 04:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
  * src/rtl/filebufd.c
  * contrib/hbcomio/comio.c
  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbtcpio/tcpio.c
    * changed internal FILE IO API. Now all functions which do
      not operate on PHB_FILE receive pointer to function table
      (PHB_FILE_FUNCS) used by given redirector.

  * src/rtl/vfile.c
    * open wirtual files in READWRITE mode by default
    * translate FO_* attributes to FXO_* ones

  * src/vm/classes.c
    ! fixed typo in RTE message

  * src/vm/garbage.c
    * use different error code (1301/1302) for destructor RTE

  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/gtxwc/gtxwc.h
    + added support for HB_GTI_FONTWEIGHT with HB_GTI_FONTW_* actions

  * contrib/hbpgsql/rddcopy.c
    ! fixed memory leak
    % encapsulate PQ calls in hb_vmUnlock()/hb_vmLock() to not stop
      other threads when GC is activated
2014-03-20 04:01:25 +01:00
Przemysław Czerpak
b5305f3861 2014-03-16 20:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/adsx.c
    * pacified warnings
2014-03-16 20:22:42 +01:00
Przemysław Czerpak
21ec946359 2014-03-16 19:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
    * move HB_FILE_TYPE_MAX definition to header file
    % include C stat() header only in *nix builds

  * src/pp/ppcore.c
    ! force stringify when illegal characters are included inside
      square brackets []
2014-03-16 19:54:22 +01:00
Mindaugas Kavaliauskas
1fb6dd3962 2014-03-13 18:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* contrib/rddads/adsx.c
    * implemented intermediate index creation in case ADS can process index
      FOR or WHILE condition.
      Ex., if requested index has WHILE condition supported by server,
      but index key expression is not supported (or codeblock is used),
      server side index is created using WHILE condition. This intermediate
      index later is used to create final index.
      This logic increases speed dramatically if WHILE condition was used
      to filter a few records from a large database using subindex.
2014-03-13 18:43:00 +02:00
Przemysław Czerpak
07960b8b7d 2014-03-12 00:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/hbdbsort.c
    * casting

  * src/rtl/filesys.c
    + added additional method to extract file time in MS-Windows version of
      hb_fsGetFileTime()

  * include/hbapifs.h
  * src/rtl/vfile.c
    + added C functions to manipulate PRG level hb_vf*() file pointer items

  * include/hbapifs.h
  * src/rtl/filebuf.c
    + added C functions to create/extract file IO handle from raw file handle
    + added C functions to check if file IO handle points to local file

  * contrib/hbmzip/mzip.c
    * changed hb_fs*() API to hb_file*() API
    ! fixed file time setting in *nix builds
2014-03-12 00:18:12 +01:00
Przemysław Czerpak
e227af16d0 2014-03-11 09:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdbsort.h
  * include/hbrddcdx.h
  * include/hbrddnsx.h
  * include/hbrddntx.h
  * include/hbsxfunc.h
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbsql.c
  * src/rdd/hbdbsort.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxsem.c
    * changed hb_fs*() API to hb_file*() API
2014-03-11 09:38:36 +01:00
Przemysław Czerpak
74f298f8ec 2014-03-10 18:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
    * use default timeout defined in initial hostname string in read/write
      operations

  * include/hbapicom.h
  * src/rtl/hbcom.c
    + added new C function:
         int hb_comFindPort( const char * pszDevName, HB_BOOL fCreate );
      It check if given port name is already defined and if not and second
      parameter fCreate is TRUE then it allocates such port in one of last
      free slots. On success port number is returned. If port cannot be
      found or created 0 is returned.

  * include/harbour.hbx
  * src/rtl/hbcomhb.c
    + added new PRG function:
         hb_comFindPort( <cDeviceName> [, <lCreate> = .F. ] ) -> <nPort>

  * contrib/hbplist.txt
  + contrib/hbcomio/comio.c
  + contrib/hbcomio/hbcomio.hbc
  + contrib/hbcomio/hbcomio.hbp
    + added new Harbour FILE IO redirector.
      It recognizes and process names with "COM<n>:" prefix, in form like:
         COM<n>:[<com_params>]
      <n> is port number or port name prefixed with "$" character.
      <com_params> may contain serial port parameters like baud rate, stop
      and data bits, parity and flow control (XON,XOFF,CTS, RTS,DST,DTR).
      As delimiter comma "," is accepted.
      This redirector can be used in different subsystems using Harbour
      FILE IO and stream read/write operations, i.e.
         REQUEST HB_COMIO
         SET PRINTER TO COM2:38400,N81,XONXOFF
      can be used to connect to serial printers.
      Please remember that redirectors like NETIO can be used as wrapper
      to other redirectors so code like:
         pFile := hb_vfOpen( "NET:192.168.0.1:::COM1:9600,8N1" )
      opens 1-st serial port on the server and
         pFile := hb_vfOpen( "NET:192.168.0.1:::COM$/dev/ttyUSB0:9600,8N1" )
      opens "/dev/ttyUSB0" serial device on the server.
2014-03-10 18:59:52 +01:00
Przemysław Czerpak
4f4f59a64d 2014-03-08 14:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbcmplib.c
  * src/rtl/filesys.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/hbproces.c
  * src/rtl/memofile.c
  * src/vm/runner.c
  * contrib/xhb/txtline.c
    * pacified warnings

  * contrib/hbmemio/memio.c
    ! fixed C&P typo
2014-03-08 14:00:05 +01:00
Przemysław Czerpak
f1783b9fa6 2014-03-06 22:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
    ! fixed local static function prototype

  * include/harbour.hbx
    * casing
2014-03-06 22:35:36 +01:00
Przemysław Czerpak
c89f63ee0b 2014-03-06 19:07 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
    ! fixed freed memory access exploited by interactions between
      modifications in last few years.
    ! do not try to remove trailing ^Z char reading from the stream
      if FS_END seek reports 0.
    ! if possible open printer/alternate/extra output in write only mode
      to avoid problem on devices where read access is not available.

  * src/rtl/langapi.c
    * keep EN lang active after deinitialization

  * src/rtl/filesys.c
    ! fixed condition for file time refresh in *nix builds
    ! fixed file time setting in *nix builds

  * include/hbapifs.h
  * src/rtl/Makefile
  * src/rtl/filebuf.c
  + src/rtl/filebufd.c
    * renamed hb_fileRegister2() to hb_fileRegisterFull()
    + added new function hb_fileRegisterPart() which simplifies writing
      small FILE IO redirectors.

  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netiocli.c
    * use hb_fileRegisterFull()

  * contrib/hbplist.txt
  + contrib/hbtcpio/hbtcpio.hbc
  + contrib/hbtcpio/hbtcpio.hbp
  + contrib/hbtcpio/hbtcpio.hbx
  + contrib/hbtcpio/tcpio.c
    + added new Harbour FILE IO redirector.
      It recognizes and process names with "tcp:" prefix, in form like:
         tcp:<host>:<port>[:<timeout>]
      It can be used in different subsystems using Harbour FILE IO and
      stream read/write operations, i.e.
         REQUEST HB_TCPIO
         SET PRINTER TO tcp:192.168.0.110:9100
      can be used to connect to network printers using TCP direct printing.

  * utils/hbmk2/po/hbmk2.pt_BR.po
    ! fixed typo in translation
2014-03-06 19:07:49 +01:00
Przemysław Czerpak
5f6c317492 2014-03-05 11:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
    ! added additional protection against recursive debugger activation.
      It should fix problem reported by Rafa.

  * src/rtl/fssize.c
    * use explicit open attributes.

  * src/rtl/copyfile.c
    ! reset error object between different RTE calls in __copyFile()
    ! copy file attributes only on *nix platforms.
      In Cl*pper __copyFile() does not copy attributes so maybe also
      in *nixes we should make the same.

  * contrib/xhb/xhbcopyf.c
    * changed hb_fs*() API to hb_file*() API.
2014-03-05 11:59:16 +01:00
Przemysław Czerpak
4f3c6e53b4 2014-03-04 19:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/xhb/hbserv.c
    * pacified CLANG warning reported by Franček
2014-03-04 19:12:14 +01:00
Przemysław Czerpak
b04066c388 2014-03-04 18:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/debugger.prg
    * minor cleanup

  * src/rtl/copyfile.c
    ! fixed RTE after recent modification (#55)
2014-03-04 18:15:39 +01:00
Przemysław Czerpak
8e08bb8c2a 2014-03-04 04:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/gencc.c
    ! pacified CLANG warning in -gc3 output (issue: #53)
2014-03-04 04:30:29 +01:00
Przemysław Czerpak
624698cd5a 2014-03-04 04:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
  * src/vm/memvars.c
  * src/rtl/copyfile.c
    ! casting and pacified warnings
2014-03-04 04:03:14 +01:00
Przemysław Czerpak
2c302ae7fa 2014-03-04 01:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbchksum.h
  * src/rtl/hbmd5.c
    * changed C function:
         void hb_md5file( HB_FHANDLE hFile, char * digest )
      to
         HB_BOOL hb_md5file( const char * pszFileName, char * digest )
      Warning: [INCOMPATIBLE]

  * src/rtl/copyfile.c
  * src/rtl/fscopy.c
  * src/rtl/hbmd5.c
  * src/rtl/isprint.c
  * src/rtl/memofile.c
    * changed hb_fs*() API to hb_file*() API

  * contrib/hbnetio/netiocli.c
    ! fixed GPF when non attributes are passed to hb_fileDirectory()
      redirected to NETIO - thanks to Rolf for the info about the problem.

  * contrib/hbnetio/netiosrv.c
    ! allow to pass empty directory to hb_fileDirectory() redirected to NETIO
2014-03-04 01:56:15 +01:00
Przemysław Czerpak
bb9d85f0fc 2014-03-04 00:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
    ! added missing FXO_APPEND flag.
      It should fix #54.

  * src/vm/asort.c
    ! respect milliseconds part when timestamp values are compared in ASORT()
      Note: ASORT() does not use exact comparison so when mixed date and
      timestamp values are used only date is significant. Just like in:
         ASort( aValue, {|x, y| x < y } )

  * src/rtl/filebuf.c
    ! fixed C&P typo.
      It should fix problem with SET PRINTER TO reported by Rolf.

  * src/rtl/hbgtcore.c
    ! added missing break after HB_GTI_VERSION
2014-03-04 00:08:07 +01:00
Przemysław Czerpak
0e1377fd01 2014-02-26 23:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! use hb_fsReadLarge()/hb_fsWriteLarge() instead of
      hb_fsRead()/hb_fsWrite() for hb_fileRead()/hb_fileWrite()
2014-02-26 23:56:05 +01:00
Przemysław Czerpak
6374c20735 2014-02-26 13:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
  * include/harbour.hbx
  * src/rtl/Makefile
  - src/rtl/xfile.c
  + src/rtl/vfile.c
    * renamed PRG functions HB_X*() to HB_VF*()
    * renamed PRG functions hb_vf[GS]etAttr() to hb_vfAttr[GS]et()
    * renamed PRG functions hb_vf[GS]etDateTime() to hb_vfTime[GS]et()

  * include/hbapifs.h
  * src/rtl/filebuf.c
  * src/rtl/fscopy.c
  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    * renamed C functions hb_file[GS]etAttr() to hb_fileAttr[GS]et()
    * renamed C functions hb_file[GS]etFileTime() to hb_fileTime[GS]et()

  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    + added support for redirecting hb_vfConfig() to the server.
      NETIO does not use it anyhow NETIO works as full redirector
      to server system and it may be used on the server side.
2014-02-26 13:21:23 +01:00
Przemysław Czerpak
63403f88e4 2014-02-26 00:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
    + added new C function hb_filePOpen()

  * include/hbset.h
  * src/vm/set.c
  * src/rtl/console.c
    * changed hb_fs*() API to hb_file*() API in HVM SETs

  * src/vm/memvars.c
    * changed hb_fs*() API to hb_file*() API in .mem files

  * src/vm/runner.c
    * changed hb_fs*() API to hb_file*() API in .hrb files

  * include/hbapifs.h
  * src/rtl/filesys.c
    * renamed hb_fsPOpen() param
2014-02-26 00:10:05 +01:00
Przemysław Czerpak
e4fff1fb61 2014-02-25 19:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbhpdf/3rd/libhpdf/hpdffdfj.c
    ! removed executable attribute

  * src/vm/thread.c
    ! fixed typo reported by Viktor - thanks.

  * include/hbapifs.h
  * src/rtl/hbproces.c
  * src/rtl/spfiles.c
  * src/rtl/filesys.c
  * src/rtl/file.c
    * synced parameter file and dir names used in declarations and
      implementations

  * include/hbrddcdx.h
    + added few fields used in ADI files

  * src/codepage/cp_utf8.c
  * src/rtl/cdpapi.c
    ! always return -1, 0 and 1 from hb_cdpcmp() function.
      Workaround for problem exploited by optimized memcmp() function.

  * src/rdd/dbfntx/dbfntx1.c
    ! fixed possible sort problem when optimized memcmp() is used
    * added feew missing const declarations

  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    ! fixed OrdWildSeek() to work with optimized memcmp()

  * include/hbapifs.h
  * src/rtl/disksphb.c
    + added new C function:
         double hb_fsDiskSpace( const char * pszPath, HB_USHORT uiType );

  * include/hbapifs.h
  * src/rtl/direct.c
    + added new C function:
         PHB_ITEM hb_fsDirectory( const char * pszDirSpec,
                                  const char * pszAttributes );

  * src/rtl/filesys.c
    ! report EOF in hb_fsEof() also when file position is out of file size
    * updated comment

  * include/hbapifs.h
  * src/rtl/filebuf.c
    + extended Harbour FILE IO API and added support for read/write filepos,
      directory and link operations.
      Read/write filepos support in some systems (i.e. *nixes) needs additional
      emulation code. If it's not necessary then this functionality can be
      disabled by FXO_NOSEEKPOS attribute. Now this attribute is used by our
      RDD code.

  * src/rtl/Makefile
  + src/rtl/xfile.c
    + added PRG interface to Harbour FILE IO API
      The following PRG functions are available for Harbour programmers:
         HB_XEXISTS( <cFileName>, [ @<cDestFileName> ] ) -> <lOK>
         HB_XERASE( <cFileName> ) -> <nResult>
         HB_XRENAME( <cFileSrc>, <cFileDst> ) -> <nResult>
         HB_XCOPYFILE( <cFileSrc>, <cFileDst> ) -> <nResult>
         HB_XDIREXISTS( <cDirName> ) -> <lExists>
         HB_XDIRMAKE( <cDirName> ) -> <nSuccess>
         HB_XDIRREMOVE( <cDirName> ) -> <nSuccess>
         HB_XDIRECTORY( [ <cDirSpec> ], [ <cAttr> ] ) -> <aDirectory>
         HB_XDIRSPACE( <cDirName>, [ <nInfoType> ] ) -> <nFreeSpace>
         HB_XGETATTR( <cFileName>, @<nAttr> ) -> <lOK>
         HB_XSETATTR( <cFileName>,  <nAttr> ) -> <lOK>
         HB_XGETDATETIME( <cFileName>, @<tsDateTime> ) -> <lOK>
         HB_XSETDATETIME( <cFileName>,  <tsDateTime> ) -> <lOK>
         HB_XLINK( <cExistingFileName>, <cNewFileName> ) -> <nSuccess>
         HB_XLINKSYM( <cTargetFileName>, <cNewFileName> ) -> <nSuccess>
         HB_XLINKREAD( <cFileName> ) -> <cDestFileName> | ""
         HB_XOPEN( <cFileName>, [ <nMode> ], [ <nAttr> ] ) -> <pHandle> | NIL
         HB_XCLOSE( <pHandle> ) -> <lOK>
         HB_XLOCK( <pHandle>, <nStart>, <nLen>, [ <nType> ] ) -> <lOK>
         HB_XUNLOCK( <pHandle>, <nStart>, <nLen> ) -> <lOK>
         HB_XLOCKTEST( <pHandle>, <nStart>, <nLen>, [ <nType> ] ) ;
               -> <nPID> | 0 (nolock) | -1 (err)
         HB_XREAD( <pHandle>, @<cBuff>, [ <nToRead> ], [ <nTimeOut> ] ) ;
               -> <nRead>
         HB_XWRITE( <pHandle>, <cBuff>, [ <nToWrite> ], [ <nTimeOut> ] ) ;
               -> <nWritten>
         HB_XREADAT( <pHandle>, @<cBuff>, [ <nToRead> ], [ <nAtOffset> ] ) ;
               -> <nRead>
         HB_XWRITEAT( <pHandle>, <cBuff>, [ <nToWrite> ], [ <nAtOffset> ] ) ;
               -> <nWritten>
         HB_XSEEK( <pHandle>, <nOffset>, [ <nWhence> ] ) -> <nOffset>
         HB_XTRUNC( <pHandle>, [ <nAtOffset> ] ) -> <lOK>
         HB_XSIZE( <pHandle> ) -> <nSize>
         HB_XEOF( <pHandle> ) -> <lEOF>
         HB_XFLUSH( <pHandle>, [ <lDirtyOnly> ] ) -> NIL
         HB_XCOMMIT( <pHandle> ) -> NIL
         HB_XCONFIG( <pHandle>, <nSet>, [ <nParam> ] ) -> <nResult>
         HB_XHANDLE( <pHandle> ) -> <nOsHandle>
         HB_XTEMPFILE( @<cFileName>, [ <cDir> ], [ <cPrefix> ], [ <cExt> ], ;
                       [ <nAttr> ] ) -> <pHandle> | NIL
      Please remember that not all redirectors have to support all of them.
      I.e. MEMIO allows to use directory names in files but does not allow to
      create or remove directories. It also does not support file attributes
      and times in current implementation though it can be easy added.
      HB_XCONFIG() is general function which can be used by redirector
      authors to make some special operations which are specific to given
      device.
      HB_XTEMPFILE() always creates temporary files on local system without
      switching to FILE IO redirector. It's intentional behavior.

  * src/rtl/fscopy.c
    * used Harbour FILE IO API in hb_fsCopy()/HB_FCOPY()
      Please remember that HB_FCOPY() always makes operation using current
      system when HB_XCOPY() may optimize it moving the operation to low
      level subsystem or even other computer i.e.  NETIO can do that  when
      both files are located on the same server.

  * src/rdd/delim1.c
  * src/rdd/sdf1.c
  * src/rdd/dbf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/hsx/hsx.c
    * open files with FXO_NOSEEKPOS attribute to inform low level API that
      read/write filepos is not used (disables unnecessary filepos emulation).

  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    + added support for extended Harbour FILE IO API.

  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
    ! renamed "quit" command to "shutdown" as suggested by Rolf.

  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
    * allow to interrupt server process using ESC when run in console window.

  * contrib/hbmemio/memio.c
    + added support for extended Harbour FILE IO API.
      I left two minor TODO notes - maybe someone will try to implement it.
2014-02-25 19:34:33 +01:00
Przemysław Czerpak
5242917e63 2014-02-07 20:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/dynsym.c
  * src/rtl/saverest.c
    ! casting
2014-02-07 20:23:24 +01:00
Przemysław Czerpak
db1b307c59 2014-02-06 23:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/saverest.c
    ! fixed missing casting in last commit
2014-02-06 23:32:39 +01:00
Przemysław Czerpak
981d96b712 2014-02-06 15:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/saverest.c
    ! added protection against passing to small screen
      buffer to RestScreen() function (issue #43)

  * src/rtl/xsavescr.c
    ! save and reuse original screen size in
      __XSaveScreen()/__XRestScreen() functions
2014-02-06 15:57:42 +01:00
Przemysław Czerpak
7c5a4b18a3 2014-02-06 15:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/hsx/hsx.c
    ! fixed hs_Version() - it wrongly used hb_xstrcat() instead of
      hb_xstrcpy() and last NULL parameter was missed.

  * src/rdd/usrrdd/usrrdd.c
    ! fixed GPF when wrong parameters are passed to UR_SUPER_*()
      functions (issue #44)
2014-02-06 15:33:40 +01:00
Przemysław Czerpak
b8f523350f 2014-02-05 19:39 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/ctwin.c
    ! added protection against wrong parameters passed to hb_gtAllert()
      It fixes #41 issue.
2014-02-05 19:39:07 +01:00
Przemysław Czerpak
56eab3d2ab 2014-02-03 23:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/3rd/minizip/*
    * updated MINIZIP library 1.2.7 -> 1.2.8
      (synced with Viktor's branch)
2014-02-03 23:06:37 +01:00
Przemysław Czerpak
4c71e3d819 2014-02-03 22:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/complex.c
    + added support for AS HASH, POINTER, SYMBOL, TIMESTAMP
    + added support for AS BLOCK as synonym of AS CODEBLOCK
    + added support for AS DATETIME  as synonym of AS TIMESTAMP

  * src/vm/classes.c
    + added support for "DATETIME" type uses as synonym of "TIMESTAMP"
2014-02-03 22:26:32 +01:00
Przemysław Czerpak
a520ee91ca 2014-02-03 18:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/dattime2.c
    ! fixed potential GPF trap due to wrong protection condition
      and change internal variable name (synced with Viktor's branch)

  * src/vm/classes.c
    ! fixed typo in alternative code - thanks to Lorenzo for the info

  * contrib/hbhpdf/3rd/libhpdf/*
    * updated HARUPDF library 2.3.0RC2 -> 2.3.0RC3
      (the same version is used in Viktor's branch)
2014-02-03 18:11:47 +01:00
Przemysław Czerpak
2075a50872 2014-02-03 09:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
    * updated previous ChangeLog entry to mark group of files.
2014-02-03 09:59:26 +01:00
Przemysław Czerpak
70e0c3c9e5 2014-02-03 09:45 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/jpeg/Makefile
    * updated JPEG library 9 -> 9a

  * contrib/hbmxml/3rd/minixml/config.h
    * updated MINIXML library 2.7 -> 2.8
2014-02-03 09:45:06 +01:00
Przemysław Czerpak
65973e04e2 2014-02-03 09:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/pcre/*
    * updated PCRE 8.31 -> 8.34
2014-02-03 09:09:07 +01:00
Przemysław Czerpak
dfcdf0f843 2014-02-02 19:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/3rd/sqlite3/*
    * sqlite3 update 3.7.16.2. -> 3.8.2
  * contrib/3rd/sqlite3/sqlite3.hbp
    + enabled FTS3/FTS4 (full text search) in SQLite

  * contrib/hbtinymt/3rd/tinymt/*
    * updated tinymt to 1.0.3
2014-02-02 19:22:58 +01:00
Przemysław Czerpak
5b5183359f 2014-02-01 11:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
    * added WINBASEAPI in declaration of redefined functions
    ; NOTE: if recent MSVC releases support above functions then they
            should be covered by some macros

  * src/rdd/dbfcdx/dbfcdx1.c
    * minor cleanup: EDBF_CREATE -> EDBF_CREATE_INDEX
2014-02-01 11:00:22 +01:00
Przemysław Czerpak
43a0697b3d 2014-02-01 09:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
    - removed GetProcAddress() redefinition which forced ANSI
      version not supported in recent Windows Mobile MSVC libraries

  * include/hbwinuni.h
    + added new macros which hide differences between Windows systems
      in GetProcAddress() usage: HB_WINAPI_GETPROCADDRESS() and
      HB_WINAPI_GETPROCADDRESST()
      The second one adds "W" or "A" suffix to function names.
    - removed not longer used HB_WINAPI_FUNCTION_NAME() macro

  * src/vm/dynlibhb.c
    * updated hb_libSymAddr() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * src/vm/maindllp/dllpcode.c
    * updated hb_dllGetProcAddress() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * contrib/hbwin/wapi_winbase.c
    * updated WAPI_GetProcAddress() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * src/common/hbdate.c
  * src/common/hbver.c
  * src/rtl/diskspac.c
  * src/rtl/disksphb.c
  * src/rtl/fslink.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/vm/extrap.c
  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgwin.c
  * contrib/hbwin/axcore.c
  * contrib/hbwin/mapi.c
  * contrib/hbwin/wapi_shellapi.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_wingdi_font.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_prn3.c
  * contrib/hbwin/win_rpc.c
  * extras/gtwvw/gtwvwd.c
    * use HB_WINAPI_GETPROCADDRESS*()
2014-02-01 09:11:23 +01:00
druzus
e82806cc1b Merge pull request #37 from raphaelgz/pr/improve_rpm_package_name
Improve RPM package name
2014-01-30 23:13:08 -08:00