* contrib/hbtcpio/tcpio.c
* contrib/hbpipeio/pipeio.c
* modified hb_fileWrite() to return 0 in case of timeout or unblocking
write and -1 on other errors.
* contrib/hbcomio/comio.c
* modified hb_fileRead() to return 0 in case of timeout or unblocking
read and -1 on other errors.
* src/rtl/filesys.c
* return -1 instead of 0 from hb_fsPipeWrite() in MS-Windows and OS2
builds if PIPE state cannot be read
* ChangeLog.txt
! c&p typo in previous ChangeLog entry
* include/fileio.ch
+ added few HB_VF_* macros for hb_vfConfig() settings
* contrib/hbcomio/comio.c
* contrib/hbtcpio/tcpio.c
+ implemented HB_VF_TIMEOUT, HB_VF_PORT, HB_VF_SHUTDOWN, HB_VF_RDHANDLE
and HB_VF_WRHANDLE hb_vfConfig() settings, i.e. now
hb_vfConfig( pFile, HB_VF_TIMEOUT, <nTimeOut> ) -> <nTimeOut>
can be used to change default timeout in TCP and COM Harbour File IO
handles.
* include/hbapifs.h
* src/rtl/filebuf.c
* src/rtl/filebufd.c
* src/rtl/filesys.c
* src/rtl/vfile.c
* src/rtl/iousr.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
* contrib/hbcomio/comio.c
* contrib/hbmemio/memio.c
* contrib/hbtcpio/tcpio.c
* contrib/hbnetio/netio.h
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/netiosrv.c
* changed HB_USHORT uiAttr parameter to HB_FATTR nAttr
in hb_fsExtOpen() and hb_fileExtOpen()
* include/fileio.ch
* src/rtl/vfile.c
+ added support for FO_DEFAULTS in hb_vfOpen().
When this flag is used in <nModeAttr> parameters then new
_SET_DEFAULT is respected when new file is created and
_SET_DEFAULT + _SET_PATH when file is opened.
+ added support for checking file size by it's in hb_vfSize()
so it can work like hb_FSize() but for virtual FS not only
for local files. Now this function has the following syntax:
hb_vfSize( <pHandle> | <cFileName> [, <lUseDirEntry> ] ) -> <nSize>
The 2-nd parameter <lUseDirEntry> is significant only when
the 1-st one <cFileName> is character value.
* src/rtl/gttrm/gttrm.c
* replaced C++ comments with ANSI ones
* src/rtl/vfile.c
* updated casing of function names in comments
* return F_ERROR instead of NIL hb_vfHandle() when wrong parameter
is given (borrowed from Viktor's branch)
* added C function hb_fileParamGet() borrowed from Viktor's branch
* src/rtl/filesys.c
* variable localization (synced with Viktor's branch)
* src/rtl/disksphb.c
! fixed bug with potentially uninitialized buffer
(fix borrowed from Viktor's branch)
+ contrib/hbcomio/hbcomio.hbx
+ added missing hbx file
* package/harbour.spec
! fixed to not corrupt root filesystem during package build process.
It was necessary to set HB_INSTALL_CONTRIB with package install prefix.
(undocumented functionality)
TODO: add single variable which can be used in such case for all
HB_INSTALL_* variables.
+ added support for HBMK2 .hbc files for contrib libraries
* 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
* 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.