* src/lang/Makefile
+ src/lang/l_de_at.c
* include/hblang.hbx
+ added new DE_AT German-Austria lang module by byte1one@gmail.com
* src/lang/l_is.c
! fixes in Icelandic lang module by Isleifur Gislason
<isleifurgisla@gmail.com>
* src/rtl/gttrm/gttrm.c
+ added support for CYGWIN ssh terminal
(i.e. ssh.exe included in github for MS-Windows)
! fixed support for terminals which always scrolls when the most
upper/right character is written.
In current version GTTRM simply ignores this character cell.
On such terminals it can be shown by writing the last character
one cell before then sending escape sequences to move cursor back,
insert one space and finally restoring overwritten character
cell value. Anyhow it increases number of used escape sequences
so I decided to not implement it yet.
* src/rtl/hbgtcore.c
! fill whole box area in DispBpx() when 0 length string or string with
Chr( 0 ) at the beginning is used as box frame - Cl*pper compatible
behavior
* contrib/hbnetio/hbnetio.hbx
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/readme.txt
+ added new client side function:
netio_SetPath( <pConnection> [, <cPath>] ) -> [<cPrevPath>]
It set/get path prefix for automatic file redirection to HBNETIO.
If automatic redirection is activated then <cPath> is removed
from file name passed to HBNETIO server, i.e.:
netio_SetPath( netio_GetConnection(), "//myserver/myshare" )
[...]
/* open "/data/table" on HBNETIO server */
use "//myserver/myshare/data/table"
* allow to pass filename to netio_Decode() with "net:" prefix
* allow to pass to use "net:" prefix in function names passed
to netio_{Proc|Func}*() when <pConnection> parameter is not used
! fixed possible GPF trap when connection cannot be set
* src/vm/memvars.c
% do not create reference chain when memvars are passed by reference
and called function uses PARAMETERS statement
! do not return references from __mvDbgInfo() but destination values
* doc/xhb-diff.txt
! typo
* src/vm/itemapi.c
! typo in debug trace message
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function:
HB_FOFFSET hb_fsGetSize( HB_FHANDLE hFileHandle );
! fixed SetFilePointer() error detecting - it was broken
and we returned wrong results for offset 0xFFFFFFFF
* src/rtl/filebuf.c
* use hb_fsGetSize()
* src/rtl/hbsocket.c
* enabled new socket functions in MSC 18.0 (before was MSC 19.0)
If someone uses this compiler and this modification created problem
then please let me now.
* src/rtl/gtxwc/gtxwc.c
! fixed buffer overflow in HB_GTI_FONTATTRIBUTE used after
after console window initialization
! set XLib mutex when font size is changed by HB_GTI_FONTSIZE
after console window initialization (for MT programs using
more then one GTXWC console simultaneously).
! allow HB_GTI_FONTSIZE to change font created by HB_GTI_FONTSEL
using before console window is created
% do not create new console window pixmap if old one has the
same dimensions
* src/compiler/cmdcheck.c
! fixed parsing some parameters taken from environment and
delimited with spaces
! fixed potential memory leak when some parameters were
repeated.
* include/hbapifs.h
* src/common/hbfsapi.c
+ added automatic file handle table resizing to hb_fsOS2DosOpenL()
+ added new C function: hb_fsOS2DosOpen() which is wrapper to DosOpen()
with automatic file handle table resizing.
Please remember that unlike hb_fsOS2DosOpenL() this function is
pure wrapper to DosOpen() so it does not make file name conversions
and does not set hb_fsError().
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* use hb_fsOS2DosOpen() instead of DosOpen()
* src/vm/cmdarg.c
* set the initial size of file handle table to 256 in OS2 OpenWatcom
builds if user does not set it explicitly by //F:<n> switch
* config/global.mk
- removed set HARBOUR=F:100 - it's not necessary with automatic FHT
resizing
; Please test it in real OS2 environment
* *
% remove brandings and homepage from copyright header. Pass 3 - manual.
* project homepage and name is described in README, amongst others
; this should make the diff between 3.4 and 3.2 easier to manage
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
* renamed few variables to avoid -Wshadow warnings
* contrib/hbfimage/fi_wrp.c
* removed unnecessary ;
* contrib/hbodbc/odbc.c
! replaced '\0' with NULL in pointer initialization
* src/3rd/jpeg/Makefile
% added missing HAVE_UNSIGNED_CHAR build macro. Without it LIBJPEG
uses SHORT to hold unsigned 8 bit integers what increases memory
usage and reduces the speed.
* src/pp/hbpp.c
* minor modification to keep string constant C90 comnpatible
* src/rtl/filesys.c
* simplified DOS to POSIX file attribute translation
+ respect hidden and system file attribute in DOS builds of hb_fsOpenEx()
* src/vm/fm.c
! added yet another missing HB_STACK_TLS_PRELOAD
* *
% remove brandings and homepage from copyright header. Pass 2 - semi-auto.
* project homepage and name is described in README, amongst others
; this should make the diff between 3.4 and 3.2 easier to manage
* *
% remove brandings and homepage [1] from copyright header. Pass 1 - using script.
[1] nobody has access to it anymore AFAIK - and it's also just
a redirect since long
! update url in copyright header
; this should make the diff between 3.4 and 3.2 easier to manage
* config/global.mk
* set HARBOUR=F:100 during build process in OS2 builds - it increases
maximum number of open handles per process from 20 to 100 so it should
be possible to use -j<n> switch during Harbour compilation - please
test, i.e.:
os2-make -j3
* contrib/xhb/hbcompat.ch
! fixed pp rules for Str(,,, <lStrip> ) translation
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function:
HB_FHANDLE hb_fsOpenEx( const char * pszFileName, HB_FATTR nAttr,
HB_USHORT uiFlags );
* minor cleanup
* include/hbmemory.ch
* src/vm/fm.c
+ added two new actions for Memory() function:
HB_MEM_STATISTICS - return non 0 value if FM statistic is enabled
HB_MEM_ISLIMIT - return non 0 value if used memory limit is
supported
+ added new PRG function:
__fm_allocLimit( [ <nNewLimit> ] ) -> <nPrevLimit>
It allows to set limit for maximum used memory in some memory
managers, -1 means no limit.
Now it works with DLMALLOC and in ST mode it's limit for memory
allocated from system for whole application. In MT mode when
HB_FM_DLMT_ALLOC (default for DLMALLOC) is enabled it's limit for
single MSPACE (Harbour allocates 16 MSPACES and balance them
between threads to improve scalability) so it's rather per thread
limit. If memory statistic module is enabled during Harbour build
process then this limit works with any memory manager and defines
limit for total memory allocated by Harbour application regardles
of MT or ST mode.
* src/vm/hvm.c
* use HB_MEM_STATISTICS instead of HB_MEM_USEDMAX to check if memory
statistic module is enabled
* contrib/hbtip/encurlc.c
! fixed C&P typos in tip_URLEncode() and tip_URLDecode() in may
previous commit
* src/pp/ppcore.c
* pacified warning
* src/common/hbver.c
* src/rtl/hbsocket.c
* updated for Digital Mars C compilation
* include/hbsocket.h
* src/rtl/hbsockhb.c
+ added new C function:
HB_BOOL hb_sockexItemReplace( PHB_ITEM pItem, PHB_SOCKEX pSock );
* contrib/hbssl/ssl_sock.c
+ replace passed socket structure to hb_socketNewSSL_connect() and
hb_socketNewSSL_accept() with new one using SSL filter if it was
passed by reference, current syntax is:
hb_socketNewSSL_connect( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
-> <pSocketSSL>
hb_socketNewSSL_accept( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
-> <pSocketSSL>
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbx
+ contrib/hbssl/ssl_hbcon.prg
+ added new PRG functions which can be used for fast initialization of
SSL connection:
hb_SSL_new() -> <pSSL>
hb_SSL_connect_inet( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
-> <lConnected>
hb_SSL_connect_socket( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
-> <lConnected>
They do not need any addiitonal initialization code and can be called
as first and the only SSL functions in user code.
* contrib/hbtip/mail.prg
! fixed bug reported by Lorenzo - thanks
* use hb_MemoWrit() in :detachFile() to honor Harbour File IO API
* cleanup
* src/common/hbffind.c
* src/rtl/gtos2/gtos2.c
* src/rtl/hbproces.c
* cleaned DosAllocMem() flags
* src/common/hbfsapi.c
* src/rtl/hbproces.c
* pacified OS2 GCC warnings
* config/global.mk
* show information about HB_MT build parameter if set by user
* contrib/hbtip/encurlc.c
! fixed url decoding - thanks to Lorenzo for reporting the problem
* small simplification of url encoding code
* src/rtl/hbproces.c
! use DosAllocMem() instead of hb_xgrab() to allocate memory for
DosExecPgm() parameters - it should fix the problem with random
build crashes when pipes are used for redirection of child
process standard IO handles - please test in real OS2 environment.
* src/rtl/spfiles.c
! typo in HB_TR_DEBUG message
* src/rtl/hbproces.c
- removed unnecessary call to hb_fsSetIOError()
% variable localization
! fixed wrongly located hb_vmLock() - it was not called if
hb_fsProcessOpen() failed.
* src/vm/hvm.c
* allow to use == operator for codeblocks
* utils/hbtest/rt_hvm.prg
* updated for == operator which accepts codeblocks
* utils/hbtest/rt_main.ch
* do not define __CLIPPER__ macro when ITK Clip compiler is used
* contrib/hbbz2/errint.c
* added HB_EXPORT to bz_internal_error() declaration
* src/vm/hvm.c
+ allow to compare symbol items with == operator, i.e.:
? @QOut() == &( "@QOut()" )
* include/hbapiitm.h
* src/vm/itemapi.c
+ added new C function:
hb_itemCompare( PHB_ITEM pItem1, PHB_ITEM pItem2,
HB_BOOL bForceExact, int * piResult );
For compatible types it compares pItem1 with pItem2 setting piResult
to -1, 0 or 1 if pItem1 is <, == or > then pItem2 and returns true
otherwise it returns false and does not touch piResult.
+ allow to compare symbol items in hb_itemEqual()
* include/hbrdddel.h
* src/rdd/delim1.c
+ added to DELIM RDD support for defined by user default filename
extenssion. It can be changed by:
hb_rddInfo( RDDI_TABLEEXT, ".csv", "DELIM" )
+ added to DELIM RDD support for exporting initial record with field
names. It can be enabled by:
hb_rddInfo( RDDI_SETHEADER, 1, "DELIM" )
and disabled by:
hb_rddInfo( RDDI_SETHEADER, 0, "DELIM" )
Importing from CSV files with such header is not supported yet but
I plan to add it so in the future RDDI_SETHEADER=1 will also effect
import (APPEND FROM).
* include/hbapigt.h
* src/rtl/gttrm/gttrm.c
* modified GTTRM to generate HB_K_CLOSE if input stream is closed and
then HB_K_TERMINATE on next inkey calls.
* src/rtl/hbznet.c
* src/rtl/hbzsock.c
! cleanup
* include/hbrdddel.h
* include/hbrddsdf.h
* src/rdd/delim1.c
* src/rdd/sdf1.c
+ added support for any standard EOL combination to DELIM and SDF RDDs,
Now LF, CRLF, CR and LFCR EOLs are supported and automatically
recognized during import if one of such EOLs is also set in HVM by
_SET_EOL.
% use 8192 bytes read ahead buffer to speed up import from DELIM and
SDF RDDs
+ modified file IO operations to work with stream only (no support for
file seek) Harbour File IO drivers
% optimized some File IO operations
* strip all EOF (^Z) characters from imported data. It's not strictly
Cl*pper compatible because Cl*pper interrupts import on first ^Z
character anyhow it was always the source of problems when .txt
files are concatenated by tools like 'cat' in *nixes so I decided
to change it.
+ added support RECORD clause command in commands like:
APPEND FROM "data.txt" RECORD (nRec) DELIMITED
APPEND FROM "data.txt" RECORD (nRec) SDF
It's Harbour extension - Cl*pper does not support it.
+ generate RTE when some unsupported in transfer RDDs methods are
called
+ src/3rd/hbdossrl/Makefile
+ src/3rd/hbdossrl/serial.c
+ src/3rd/hbdossrl/serial.h
+ src/3rd/hbdossrl/README
+ added DOS Serial Library - it's much cleaner and simpler then COMLib
we used so far in DOS builds. It also supports hardware and software
flow control. Many thanks for Karl Stenerud for his wonderful job.
* src/rtl/hbcom.c
+ added support for DOS Serial Library used as low level backend in
Harbour DOS builds.
* config/dos/djgpp.mk
* config/dos/watcom.mk
* config/dyn.mk
* config/lib.mk
* src/3rd/Makefile
* src/Makefile
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/hbmk2.prg
* use DOS Serial Library (hbdossrl) instead of COMLib (hbpmcom)
* include/harbour.hbx
* src/vm/hvm.c
+ added new PRG function:
__RecoverErrorBlock() -> <bError> | NIL
It extracts previous error block pushed on HVM stack
by BEGIN SEQUENCE WITH ...
* src/rdd/dbf1.c
! fixed detecting VFP tables broken in my previous
modification - thanks to Mario H. Sabado for information
about the problem.