Commit Graph

7 Commits

Author SHA1 Message Date
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
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
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
96ca3fe470 2014-01-21 20:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* Makefile
  * config/*
  * contrib/*
  * doc/*
  * extras/*
  * include/*
  * lib/*
  * package/*
  * src/*
  * tests/*
  * utils/*
    * removed empty lines left after removed '$' + 'Id' + '$' identifiers
2014-01-21 20:41:05 +01:00
Przemysław Czerpak
4ffd5bb726 2013-12-18 21:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/Makefile
  + include/hbzlib.h
  * include/hbzlib.ch
  * src/rtl/Makefile
  * src/rtl/hbzlib.c
    + added new C functions weakly bound with ZLIB library:
         HB_SIZE hb_zlibCompressBound( HB_SIZE nLen );
         HB_SIZE hb_zlibUncompressedSize( const char * pSrc, HB_SIZE nLen,
                                          int * piResult );
         int hb_zlibCompress( char * pDst, HB_SIZE * pnDst,
                              const char * pSrc, HB_SIZE nLen, int iLevel );
         int hb_zlibUncompress( char * pDst, HB_SIZE * pnDst,
                                const char * pSrc, HB_SIZE nLen );
      these functions can be used by any C code without forcing ZLIB liking.
      If user usese in his code HB_ZCOMPRESS() function or has
         REQUEST HB_ZCOMPRESS
      then above funcitons are automatically bound with linked ZLIB library.
      Otherwise they return 0 or HB_ZLIB_RES_UNSUPPORTED error.

  * src/rdd/dbf1.c
    * small code simplification
    ; added note about alternative numeric value rounding when
      pure binary integer fields (without decimal places) are
      assigned.

  * src/common/hbdate.c
    ! added missing header for WinCE builds

  * include/hbexpra.c
    * minor simplification

  * src/vm/macro.c
    + added new implementation for MemVarBlock() function. It's much faster
      and does not force dynamic symbol table scanning on each call

  * src/rtl/Makefile
  - src/rtl/memvarbl.prg
    - removed previous implementation of MemVarBlock()

  * src/rtl/tgetint.prg
    ! fixed __Get() and __GetA() to return NIL when cVarName parameter
      is not string (CA-Cl*pper compatible)
    ! fixed __GetA() to return NIL when given aIndex parameter or value
      returned by variable block is not array (CA-Cl*pper compatible)
    ! fixed __Get() and __GetA() to use FieldWBlock() instead of manually
      created macro block which didn't respect workarea
      (CA-Cl*pper compatible)
    ! fixed __GetA() to create SET/GET block instead of access block
      (CA-Cl*pper compatible)
    ! fixed  __Get() and __GetA() to not create simple SET/GET macro
      blocks but always force memvar usage (CA-Cl*pper compatible).
      Please remember that
         &( "DATA" )
      gives code which tries to access field then memvar but
         &( "DATA := .T." )
      gives code which always tries to assign memvar and does not even
      check if "DATA" field exists in current WA. It means that macro
      compiled code like:
         &( "{|_1| iif( _1 == NIL, DATA, DATA := _1 ) }" )
      should not be used because gives higher priority for fields in
      access operation and always assigns memvars, if necessary creating
      them.
    ! allow to dynamically create memvars for get objects in error handler
      (CA-Cl*pper compatible)
    % use much faster MemVarBlock() instead of manually created codeblock
      which activates dynamic symbol table scanning on each call
2013-12-18 21:05:06 +01:00
vszakats
9687850865 2013-03-16 02:10 UTC+0100 Viktor Szakats (harbour syenar.net)
* (all files)
    * stripped svn header
    * minor cleanups
    ; use following command to find out the history of files:
       git log
       git log --follow
       git blame
       git annotate
2013-03-16 02:11:42 +01:00
vszakats
a4a357a18b 2013-03-15 11:12 UTC+0100 Viktor Szakats (harbour syenar.net)
* /harbour/* -> /*
    * moved whole Harbour source tree one level up to
      avoid single 'harbour' top dir
2013-03-15 11:13:30 +01:00