* doc/cmpopt.txt
* enumeration
! typos
* src/codepage/uckam.c
+ added info about Kamenicky codepage number: CP895
* include/hbapi.h
* src/common/hbstr.c
+ added new C function:
char * hb_dblToStr( char * szBuf, HB_SIZE nSize,
double dNumber, int iMaxDec );
it converts numeric value to string trying to keep all significant
digits in double numbers
* include/harbour.hbx
* src/rtl/hbntos.c
+ added new PRG function:
hb_ntoc( <nValue> ) -> cValue
it converts numeric value to string trying to keep all significant
digits in double numbers
* src/rtl/hbsocket.c
+ added support for error codes returned by
getaddrinfo() / getnameinfo() and gethostbyname() / gethostbyaddr()
* src/rtl/hbinet.c
+ set HB_SOCKET_ERR_WRONGADDR error code if hb_socketResolveAddr()
returns NULL without setting error code
* src/vm/arrays.c
* src/vm/hashfunc.c
! fix hb_HScan(), AScan(), hb_AScan() and hb_RAScan() for very large
integers with more then 53 significant bits. Such bits were lost
after conversion to double value used in scan process
* src/vm/itemapi.c
* formatting
* src/rtl/gtwvt/gtwvt.c
! do not convert characters received with ALTGR or ALT+CTRL flags to
extended keycodes - some national keyboards may use such combination
for national characters and even pure ASCII ones
* src/rtl/gtwin/gtwin.c
! strip ALT+CTRL and ALTGR from extended keycode when these modifiers
are used with ASCII characters - it should fix problem with some
national keyboards
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
+ added support for user build time macro HB_NO_POLL which disables
poll() usage
* src/rtl/hbsocket.c
! fixed bug which caused that structure passed to poll() had
uninitialized events member.
* include/hbclass.ch
* disabled by default VO compatible object constructors:
<className>{ <params,...> }
If someone needs them then he should add:
#define HB_VO_CONSTRUCTOR
before:
#include "hbclass.ch"
* src/compiler/harbour.y
* typo in comment
* src/rtl/hbstrfmt.c
* add to output trailing % in format pattern just like other % characters
which are not part of valid format string, i.e. in this code:
? hb_StrFormat( "%-% %1%q%*%" )
only the last % was silently eaten from output
* src/rtl/hbstrfmt.c
! fixed wrongly added to output character after unclosed format strings,
i.e.
? hb_StrFormat( "%1" )
? hb_StrFormat( "%1%s", "x" )
* src/common/hbffind.c
* in *nix builds of hb_fsFind*() show "." leading file names if file
mask also starts with "." regardless of hidden attribute state.
This modification restores previous Harbour behavior keeping the
new functionality.
* include/hbsocket.ch
* src/rtl/hbsocket.c
+ added support for high-priority/out-of-bound data in select()
emulated by poll()
+ added macros for socket send()/recv() flags: HB_SOCKET_MSG_*
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* include <poll.h> when HB_HAS_POLL macro is set manually by user
(thanks to Teo)
* contrib/hbnetio/netiosrv.c
* minor optimization
+ tests/pipes.prg
+ added demonstration/test code for communication between processes
by unnamed pipes. The final output is send to stderr and can be
redirected to file by 2> pipes.log
* src/common/hbprintf.c
* pacified warning
* src/rtl/filesys.c
! return -1 instead of from hb_fsPipeIsData() when poll() detects
error or end of stream - 0 should indicate timeout only.
* src/rtl/hbcom.c
! fixed bad typo which blocked hb_comSend() in *nixes
using select() instead of poll()
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
; updated #if/#else/#endif comments
* src/common/hbstr.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* pacified few warnings - thanks to Viktor
* contrib/sddfb/core.c
! fixed code which extracted float number from uninitialized memory.
On some systems it could even cause GPF or other (ie. FPE) exception.
* src/rtl/hbproces.c
! fixed infinite loop due to ignored POLLHUP errors reported by poll()
! fixed stupid typo
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* emulate read access when poll() used instead of select() reports
POLLHUP - this poll() behavior is neither consistent within a
single implementation, nor between different versions of the same
implementation, and certainly not across platforms
% optimize read/write access using extended (in comparison to select())
information reported by poll()
; TODO: emulate select() behavior for high priority data.
* src/rtl/gttone.c
! use asm {} directive only in CLANG BCC builds - asm {} needs TASM
so using it breaks Harbour compilation with free BorlandC command
line tools which do not contain TASM.
* src/rtl/hbsocket.c
* src/rtl/hbproces.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
! use poll() instead of select() in POSIX.1-2001 compliant *nix builds
It fixes the problem with file handles >= 1024
Please make tests in different *nix builds. It affects sockets, pipes
and serial ports.
* contrib/hbnetio/netiosrv.c
* minor optimization
* src/rdd/dbcmd.c
* src/rdd/wacore.c
* src/rdd/wafunc.c
! added protection against exceeding the limit of workarea numbers.
Current maximum is 65534, WA 65535 is reserved for internal RDD
WA destructor.
! fixed possible memory leak in hb_rddInsertAreaNode()
* src/vm/set.c
! fixed typo in device detection code
+ added NUL to list of known device names in DOS, OS2 and MS-Win builds
+ recognize \\<server>\<device>, \\.\PIPE\*, \\.\<device> as
device names in DOS, OS2 and MS-Win builds.
* src/rtl/direct.c
! removed set of MS-Windows attributes passed unconditionally to
hb_fsFind*() functions in Directory() PRG function.
It fixes "L" attribute passed in 2-d parameter of Directory()
function in *nix builds. When "L" is given in attribute list
then Directory() do not follow links.
* src/common/strwild.c
* removed FNM_PERIOD from fnmatch() parameters in *nix builds
* src/common/hbffind.c
* in * nix builds set hidden attribute for file and directory
names starting with "." except "." and ".." which are reported
as is for Cl*pper and Harbour multiplatform compatibility.
* src/rtl/gttone.c
* applied patch from Andi Jahja for new BCC versions - many thanks
* src/rtl/strrepl.c
% added optimization code for strings longer then 1024 bytes
For very long strings it can improve replace performance 20 or
even more times.
* src/rtl/sha2.c
* src/rtl/val.c
* src/vm/dynsym.c
* src/vm/eval.c
* src/vm/thread.c
* formatting
* config/dyn.mk
* config/win/mingw.mk
* src/dynlib/2nd/Makefile
* src/dynlib/Makefile
+ src/harbour.def
+ use .def file to specify public symbols of harbour.dll
for more details, see:
f238e5f81fb2c9e4a63b
; NOTE: please make sure to add any new public (HB_EXPORT)
symbols to this list. Ordinals are not significant
ATM so the best is to keep alphabetical order.
* include/hbclass.ch
! use more restrictive PP rules to avoid possible wrong
interactions with code using 'var' and 'data' identifiers
* force class name to be valid identifier
* commented unused rules
* include/std.ch
! fixed CODEPAGE clause in COPY TO and APPEND FROM commands
+ added VIA and CODEPAGE clauses to JOIN command
* src/rdd/dbcmd.c
* updated comments with some function syntax
* include/harbour.hbx
* src/rdd/dbcmd.c
+ added new function:
hb_dbGetFilter() -> <bCode> | NIL
it returns codeblock used as work area filter or NIL
* src/debug/dbgwa.prg
* use hb_dbGetFilter() to check if WA filter was set without
filter text representation
; above modifications created by Rolf - thanks
* src/rdd/dbcmd.c
! clear filter if dbGetFilter( , "" ) is called instead of setting
dummy one - thanks to Rolf
* include/hbclass.ch
* disabled DECLARE to not generate ignored by compiler noise in .ppo
files
* src/rdd/dbcmd.c
! allow to use dbSetFilter() with string only parameter without
codeblock - Cl*pper compatibility fix.
Cl*pper allows to set text filter without codeblock. In local
RDDs it effectively does nothing and only dbFilter() returns it
but RDDs with automatic filter optimization like CL53/DBFCDX /
COMIX/ClipMore or RDDs working with remote data base servers
may use only text version of filter and ignore or use with
lower priority the codeblock so Harbour has to work like
Cl*pper here.
* src/rdd/workarea.c
* typo in comment
* contrib/rddads/ads1.c
* do not validate empty text filters
* src/rtl/isprint.c
! HB_ISPRINTER(), ISPRINTER() fix to open the port name with CREATE
flag (= CREATE_ALWAYS on Windows). It may fix port detection in
certain situations. Tested on Windows 7 x86 and x64, whereas it
will now return .T. if the port is associated with a queue,
and .F. if it isn't. It seems to cause no harm on OS X. Please
test it on other systems and other LPT scenarios (f.e. with real
hardware device attached).
; borrowed from Viktor's fork: 2016-03-08 18:19 UTC+0100 Viktor Szakats
* ChangeLog.txt
; hide e-mail addresses
* contrib/hbmzip/mzip.c
! fixed memory leak
! typo in comment
* contrib/hbziparc/ziparc.prg
! strip leading dir separators from filenames stored in ZIP file when
<lWithDrive> parameter of hb_ZipFile() is not set.
* 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.