* contrib/hbwin/olecore.c
* changed tagVARIANT member used in hack extracting variant value
address from ullVal to bVal to avoid problems with some old header
files which do not support LONGLONG values
* contrib/hbwin/olecore.c
+ added functions which changes default method of NIL conversion to
OLE variant:
__oleVariantNil2Null( [<lNewNil2NullFlag>] ) -> <lPrevNil2NullFlag>
By default NIL values passed to foreign OLE code are converted to
VT_EMPTY variants. __oleVariantNil2Null( .t. ) changes this behavior
so NIL values are converted to VT_NULL variants.
; Warning: This function was added for tests. Looks that it's expected
behavior for communication with MS-Excel and allows to use
NIL as default parameter value but potentially it may create
problems with some custom OLE interfaces so this modification
should be widely tested in real life before we change the
default behavior.
* contrib/hbwin/olecore.c
- removed support for VT_DECIMAL and VT_PTR arrays from
__oleVariantNew() - I found in MSDN that such types are
unsupported in SAFEARRAYs
! fixed indexes in array conversion in __oleVariantNew()
! fixed conversion to VT_BSTR arrays in __oleVariantNew()
* contrib/hbwin/olecore.c
+ automatically add WIN_VT_ARRAY bit in 1-st parameter of
__oleVariantNew() when 2-nd parameter is an array
+ added support for typed variant arrays to __oleVariantNew()
Now it's possible to create strong typed one dimensional arrays and
pass them as parameters to foreign OLE code, i.e.
oOle:setArrayOfStrings( ;
__oleVariantNew( WIN_VT_BSTR, { "1-st", "2-nd", "3-rd" } ) )
oOle:setArrayOfIntegers( ;
__oleVariantNew( WIN_VT_INT, { 1, 2, 3, 4 } )
+ added support for array of integers initialization from strings
passed to __oleVariantNew() in 2-nd parameter.
Now it's possible to create strong typed one dimensional OLE array
initialized with string bytes ASCII values, i.e.
oOle:setUcharStr( ;
__oleVariantNew( hb_bitOr( WIN_VT_ARRAY, WIN_VT_UI8 ), ;
"ABCDEF" ) )
oOle:setArrayOfIntegers( ;
__oleVariantNew( hb_bitOr( WIN_VT_ARRAY, WIN_VT_INT ), ;
"ABCDEF" ) )
; warning: code not tested at all, written in my Linux box,
please make real life tests in MS-Windows
* contrib/hbwin/olecore.c
* added additional protection to reduce hb_oleSafeArrayToString()
functionality to arrays of VT_I1 and VT_UI1 items so other types
which may also allocate 1 byte for each item are not converted.
* contrib/rddads/ads1.c
* src/rdd/workarea.c
* simplified the code and eliminated wrong /* fallthrough */ comments
inside case block reported by Viktor
* contrib/hbwin/olecore.c
+ added support for named parameters in OLE method calls,
named parameters should be passed inside hash array in
first parameter, i.e.:
oWorksheets:add( { "Before" => oWS, "Count" => 3 } )
next parameters if exist are passed as unnamed ones, i.e.
oOle:add( { "name" => "test", "value" => 12345 }, 1, 2, 3 )
; warning: code not tested at all, written in my Linux box,
please make real life tests in MS-Windows
! fixed __oleGetNameId()
* contrib/hbamf/amfenc.c
! fix trivial mistake in AMF3_ENCODE(), which broke string
deduplication after hash with string-keys was serialized
in object tree. The hash itself was serialized correctly
because keys are by definition unique.
* include/hbcomp.h
* src/compiler/hbmain.c
* removed not longer necessary calls to hb_compExprLstDealloc()
* src/compiler/hbcomp.c
! do not generate internal error when nested expression deallocation
is activated
* contrib/rddads/ads1.c
! fixed bad typo which effectively completely broke
AdsTestRecLocks( .t. ) mode
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C functions for UNIX and DJGPP builds:
int hb_fsPollFD( PHB_POLLFD pPollSet, int iCount,
HB_MAXINT nTimeOut );
int hb_fsCanRead( HB_FHANDLE hFileHandle, HB_MAXINT nTimeOut );
int hb_fsCanWrite( HB_FHANDLE hFileHandle, HB_MAXINT nTimeOut );
These functions should be used instead of select() in C code to hide
low level access to select()/poll() functionality in *nix builds
(they are supported by DJGPP only to simplify existing code common
for DJGPP and *nix builds). Maximum file handle value which can be
used in select() is limited by FD_SETSIZE. Please note that it's
file handle value not number of file handles in the set. It creates
serious problem for applications which operate on great number of
handles (i.e. servers which have to keep open many sockets, pipes,
files, etc. for their clients) so the new file/socket/pipe/...
handle value can easy exceed FD_SETSIZE limit and in such case
cannot be used with select(). The modification on
2016-04-05 21:24 UTC+0200 Przemyslaw Czerpak
resolved the problem only for sockets and pipes in code which uses
corresponding hb_socket*() and hb_fsPipe*() API but not for all
other cases. This one is for POSIX compilant code which needs pure
POSIX select()/poll() functionality.
Please note that HB_POLLFD structure should is compatible with
struct pollfd defined by POSIX.1-2001 anyhow not all platforms
confirm this standard so portable Harbour code should always use
HB_POLLFD and HB_POLL* constant values instead of POLL* ones.
* include/hbdate.h
* src/common/hbdate.c
+ added new C functions to calculate timeouts:
HB_MAXUINT hb_timerGet( void );
HB_MAXUINT hb_timerInit( HB_MAXINT nTimeOut );
HB_MAXINT hb_timerTest( HB_MAXINT nTimeOut, HB_MAXUINT * pnTimer );
They are designed to be used instead of direct access to
hb_dateMilliSeconds(). Now they internally use hb_dateMilliSeconds()
but it can be easy replaced by any other system monotonic clock by
one local modification inside hb_timerGet() function.
* src/rtl/filesys.c
* use hb_timer*() functions instead of hb_dateMilliSeconds()
* use hb_fsCanRead()/hb_fsCanWrite() instead of select()/poll()
It also fixed timeout processing inside hb_fsPipeIsData() and
hb_fsPipeWrite() in builds using poll()
* src/rtl/filesys.c
* src/rtl/gtcrs/gtcrs.h
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtsln/mousesln.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtxwc/gtxwc.c
* use hb_timer*() functions instead of hb_dateMilliSeconds()
* use hb_fsCanRead()/hb_fsCanWrite() instead of select()/poll()
* src/vm/thread.c:
* src/rtl/gtwin/gtwin.c
* src/rtl/hbcom.c
* src/rtl/hbgtcore.c
* src/rtl/hblpp.c
* src/rtl/idle.c
* contrib/hbnetio/netiosrv.c:
* contrib/hbssl/ssl_sock.c:
* use hb_timer*() functions instead of hb_dateMilliSeconds()
* contrib/xhb/hboutdbg.c
* use hb_fsCanWrite() instead of select()
* src/rtl/hbsocket.c
! repeat select() interrupted by signal inside hb_socketSelect()
when poll() function is not available
* src/3rd/hbdossrl/serial.c
! fixed -Wshift-negative-value GCC warnings
* contrib/hbtip/httpcli.prg
! fixed uploading binary files with TIPClientHTTP:PostMultiPart()
Thanks to Alexandre Alencar, who informed about the bug, supplied
example test code and suggested a patch. This commit simplifies patch
given by Alexandre.
* ChangeLog.txt
% stripped spaces before EOLs
* contrib/hbgs/core.c
! fixed to build with new GS versions - fix borrowed from Viktor's
branch
* src/rtl/setkey.c
+ in hb_SetKey() and hb_SetKeyCheck() if extended keycode is passed
and does not have associated action check also for actions bound
with corresponding standard keycode
! honor user parameters passed by reference to hb_SetKeyCheck()
! fixed hardcoded 4 parameter limit in hb_SetKeyCheck()
* src/compiler/hbopt.c
! fixed 'assigned but not used' warning detection - it should not
mark initial HB_P_PUSHLOCALREF PCODE as used when next <op>=
operation leaves result on HVM stack.
* optimize 'var <op>= 0', 'var <op>= 1' and 'var <op>= <timestamp>'
operations
* small cleanup
* package/harbour.spec
* contrib/hbbz2/hbbz2.hbp
* package/mpkg_rpm.sh
+ added support for '--with localbz2' RPM build parameter
* include/hbpp.h
* src/pp/ppcore.c
* src/compiler/hbmain.c
* modified hb_pp_inBuffer() parameters. Now it supports optional
szFileName parameter.
Warning: it's incompatible with previous version but I do not think
that anyone used this function outside core code so I decided to not
add new function but simply change the existing one.
[INCOMPATIBLE]
* src/rtl/filebuf.c
! do not resepct SET DEFAULT/PATH in hb_fileExists() when 2nd parameter
is NULL in default file IO drivers. It also changes the behvior of
PRG function hb_vfOpen() which now honors SET DEFAULT/PATH only if
its 2nd parameter is passed by reference - this modification is
compatible with 2016-01-25 18:16 UTC+0100 Viktor Szakats in his fork.
* src/rdd/dbf1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* updated to work correctly with modified hb_fileExists() behavior
; CL5.2 DBFCDX and Six3 CDX/NSX RDDs looking for production indexes
respect SET PATH but Harbour in core DBF* index RDDs is CL5.3/COMIX
compatible and looks for production indexes only in the directory
where DBF file is located and only SIXCDX Harbour RDD is CL5.2/Six3
compatible.
Please also note that it's significant only for situations when
DBF file is located in current directory. If it's open from
SET DEFAULT/PATH directory then corresponding path is added
to DBF file name what effectively disables SET DEFAULT/PATH
processing when production index is open.
* src/rtl/filebuf.c
* src/rtl/filebufd.c
* src/rtl/iousr.c
* contrib/hbmemio/memio.c
; cleaned name of hb_fileCopy() paramter
* include/hbapifs.h
* src/rtl/filebuf.c
* src/harbour.def
+ added new C function:
HB_BOOL hb_fileMove( const char * pszSrcFile,
const char * pszDstFile );
* src/rtl/vfile.c
* include/harbour.hbx
* src/harbour.def
+ added new PRG function:
hb_vfMoveFile( <cFileSrc>, <cFileDst> ) -> <nResult>
; unlike hb_fileRename()/hb_vfRename() new hb_fileMove()/hb_vfMoveFile()
functions allow to move files between different file systems/drives
and also different Harbour file IO drivers. Please note that it means
that file name IO driver prefix is significant in both source and
destination file names unless it's local FS operation. New functions
when both file names point to the same Harbour file IO driver try to
use simple rename operation. If it fails then they try to copy the
file and remove the source one.
* ChangeLog.txt
! typo
* include/hbfloat.h
* contrib/xhb/xhbctbit.c
* src/compiler/hbcmplib.c
* src/compiler/hbcomp.c
* src/compiler/hbusage.c
! pacified new GCC warnings and partially synced with Viktor's fork
* src/compiler/hbusage.c
* added Klas Engwall to credits list
* added Rolf to credits list
* updated April White email address
; please verify it and update if necessary
* contrib/gtqtc/gtqtc1.cpp
! fixed clipboard selection with shift + left mouse button to not report
mouse events during selection
* include/hbdate.h
* src/common/hbdate.c
+ added support for ISO 8601 week dates (YYYY-Www-D) in timestamp
literals
+ added support for ISO 8601 ordinal dates (YYYY-DDD) in timestamp
literals
+ added new C functions:
HB_BOOL hb_dateDecWeek( long lJulian, int * piYear,
int * piWeek, int * piDay );
long hb_dateEncWeek( int iYear, int iWeek, int iDay );
to decode/encode ISO 8601 week dates
* src/rtl/dateshb.c
+ added new PRG function get week number and other parts ISO 8601
week date:
hb_Week( <dDate>, [@<nYear>], [@<nDayOfWeek>] ) -> <nWeek>
* include/harbour.hbx
* src/harbour.def
* updated for new functions
* contrib/hbmisc/dates.c
! fixed WOY() to return some reasonable results. I have no idea what
author wanted to reach but now WOY() be default returns ISO 8601
week number and simple week number if 2-nd parameter is .F.
* contrib/hbssl/hbssl.h
* contrib/hbssl/evppkey.c
+ added new C function
void hb_EVP_PKEY_ret( EVP_PKEY * pkey );
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/pem.c
+ added new PRG functions:
PEM_READ_PRIVATEKEY()
PEM_READ_PUBKEY()
* contrib/hbssl/ssl_sock.c
! added missing HB_SOCKET_ERR_TIMEOUT setting in hb_ssl_socketRead()
! fixed cleared to early SSL error code in hb_ssl_socketWrite()
* contrib/hbssl/tests/inetssl.prg
! interrupt test program if server thread stops
* load server certificates before listen socket is created
* src/rdd/dbfnsx/dbfnsx1.c
! code cleanup to pacify warnings in new GCC versions
* src/rtl/filesys.c
! check if child's fork() was executed successfully
* src/rtl/hbproces.c
! use hb_fsCloseRaw() instead of close() in hb_fsProcessExec() to avoid
lost handles when close() operation is interrupted by signal.
! repeat waitpid() calls interrupted by signal
- extras/hbdoc/_tmplate.prg
- extras/hbdoc/hbdoc.ch
* extras/hbdoc/_genbase.prg
* extras/hbdoc/_genhtml.prg
* extras/hbdoc/_gentxt.prg
* extras/hbdoc/_genxml.prg
* extras/hbdoc/hbdoc.hbp
* extras/hbdoc/hbdoc.prg
+ improve readability by paragraphs spacing in DESCRIPTION sections
+ improve divs in section content for better control via CSS
+ improve readability of tables with borders and
header hightlights
* change default output to single-file
+ add support for the old <table>/<fixed> tags in html output until they
are converted to something better
+ add support for <b>/<b>, <URL:url>, Markdown `inline code`,
_emphasis_, *bold*, character escaping \*, line separators ===/---,
and fenced code using triple backticks.
Very limited and not with standard compliance or completeness
in mind, just to be able to use some basic formatting.
; TODO: Markdown URL and lists, then replace all <b>,<URL>,<fixed>
markup with Markdown equivalents in docs
+ better localization support
+ add support for one file per component output via -output-component
cmdline option
% assemble output in memory and write to disk in a single call
% integrate external header
% replace almost all internal arrays with hashes
% replace self-modifying class and macro expansion with
regular hashes
% internal cleanups
% switch to simpler method for sort weighting
+ merge category/subcategory values into tag list. It
means they will be now be included in the output
% cleanup/fix/simplify value expansions for 'compliance',
'status' and 'platform' fields
% cleanup the way output engines are handles internally
+ add support for 'TAGS' entry to replace/extend the rigid and
ambiguous CATEGORY/SUBCATEGORY-based categorization. It is meant
to be a comma-separated list of freeform tags, possibly with a set
of standard common tags, with the freedom to use anything else deemed
useful by component/doc authors.
+ add footer showing the build date of the doc
+ include Git revision the doc is based on, link to the relevant
source tree version.
* various code refactoring steps to avoid unnecessary
classes, arrays, macro evaluation, and using undocumented
functions
% various HTML5 tag improvements and optimizations
+ load HBX file contents and lookup each referenced
symbol. Emit warning in verbose mode, if docs refers
to non-existing one.
(this replaces slow and broken logic based on hbextern.ch)
+ use core hbdoc API to load the documentation instead
of locally rolled logic
* always show those content problems that are considered
fatal and the input doc to be skipped
+ filter docs to English language by default
+ add ability to choose language using a command-line option
! fix faulty validation logic that resulted in
erronously skipping certain entries
+ identify docs' 'component' property automatically
! fix to not eat empty lines from examples
+ convert "see also" items to links (this works correctly only
in single file output mode)
! fix to not break words (f.e. URLs) when outputting HTML
% use shorter class names
! fix invalid element ID generated
! fix RTE when trying to create output by category
% delete dummy "HTML2" output mode
* convert more ASCII chars to better Unicode equivalents
+ mark more text as code automatically
* drop MS-DOS compatibility
* src/rtl/hbdoc.prg
! fix filling '_LANG' property with the correct value
* switch to use LF instead of CRLF in the field contents
* contrib/hbct/doc/en/*.txt
* contrib/hbgd/doc/en/hbgd.txt
* contrib/hbgt/doc/en/hbgt.txt
* contrib/hbmisc/doc/en/dates2.txt
* contrib/hbnf/doc/en/*.txt
* contrib/rddads/doc/en/adsfuncs.txt
* doc/en/*.txt
* cleanups and fixes
! casing
! fix to always delimit "see also" items with comma (",")
! fix various casing issues and old typos
! various fixes after detecting them using updated hbdoc
! eliminate/fix various rare/unnecessary/invalid field values
! move some embedded docs from hbdoc into their respective
doc sources
! fix a typo
* use backtick
* replace code copyright with reference to COPYING.txt (=LICENSE.txt)
+ mark tables without a header or with double height header
; Above patches come from 3.4 fork commits below:
2016-10-26 12:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 12:34 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 12:20 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 03:21 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 02:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 15:05 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 14:51 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 14:30 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 13:19 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 12:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 11:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 02:48 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 22:26 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 18:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 17:58 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 16:12 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 15:44 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 03:36 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 02:40 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 00:23 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 23:09 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 16:39 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 16:10 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 13:15 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
+ contrib/hbxpp/doc/en/binnumx.txt
+ contrib/hbxpp/doc/en/browse.txt
* sync more docs with 3.4 fork
* contrib/hbgt/doc/en/hbgt.txt
* sync some updates from 3.4 fork
* contrib/hbwin/hbwin.ch
+ WIN_SERVICE_CONTROL_SHUTDOWN define added
* contrib/hbwin/win_svc_1.c
+ implemented capability to have custom service control handler. win_serviceStart()
optional parameter added:
win_serviceStart( cName, bEntryFunc | sEntryFunc [, bControlFunc | sControlFunc ] )
The minimal control function implementation is:
PROC SvcControl(nControl)
IF nControl == WIN_SERVICE_CONTROL_STOP .OR. ;
nControl == WIN_SERVICE_CONTROL_SHUTDOWN
win_serviceSetStatus(WIN_SERVICE_STOP_PENDING)
ENDIF
RETURN
If control function parameter is passed, service state will not be set
to running by default. This allows to abort service on startup.
If service is started, service main function should set running status
by calling win_serviceSetStatus(WIN_SERVICE_RUNNING)
* contrib/hbssl/hbssl.h
* contrib/hbssl/ssl_sock.c
* contrib/hbssl/ssl_inet.c
+ added new 'PHB_ITEM pSSL' parameter to hb_sockexNewSSL() and
hb_ssl_socketNew() C functions - it allows to bind harbour item
with SSL pointer which should not be released before connection
is closed. In new OpenSSL version such tricks can be replaced
by SSL_up_ref()
This modification also fixes possible GPF trap when SSL filter
socket was create dynamically from C code without SSL pointer
item on HVM stack in 2-nd parameter and removes old hack which
saved internally 2-nd HVM stack parameter.
+ allow to pass SSL_CTX instead of SSL in "ssl", "ctx" or "key" items
of hash array used to initialize SSL socket filter. Using SSL_CTX
allows to use the same hash array to set SSL socket filter for
different connections
+ allow to use codeblocks or function pointers as "ssl", "ctx" or
"key" items of hash array used to initialize SSL socket filter
* contrib/hbssl/hbssl.h
* contrib/hbssl/sslctx.c
+ added new C function:
SSL_CTX * hb_SSL_CTX_itemGet( PHB_ITEM pItem )
* contrib/hbssl/ssl_sock.c
* src/rtl/hbcom.c
* src/rtl/hbsocket.c
! fixed timeout checking in select()/poll()
* src/rtl/hbsockhb.c
! fixed possible GPF trap when socket filter refuse to create new
socket wrapper
* include/hbinit.h
* in GCC C++ builds for startup code use GCC constructor function
attribute instead of static variable initialization to avoid
warnings in new GCC versions
* src/rtl/hbntos.c
! fixed missing '-' in result of negative integer numbers - thanks
to Luigi Ferraris
* src/common/hbstr.c
+ added code to round integer part when the size of number is greater
then double precision (~16 digits).
* contrib/gtqtc/gtqtc1.cpp
* removed unnecessary casting after recent modification
* src/3rd/jpeg/Makefile
* src/3rd/jpeg/jconfig.h
! moved definitions which interacts with 3-rd party code using libjpeg
header files to jconfig.h
* include/hbapi.h
* include/hbvmpub.h
* removed casting C style casting from commonly used macros
* contrib/gtqtc/gtqtc1.cpp
* use C++ casting instead of C casting
* contrib/rddads/ads1.c
* contrib/rddads/adsx.c
* contrib/rddsql/sqlmix.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbsql.c
* src/rdd/workarea.c
* cleaned HB_IT_* usage
* contrib/rddads/ads1.c
! fixed typo in low level code of ordDescend() / DBOI_ISDESC,
now ordDescend() should work with ADS* RDDs just like with
native RDDs
* contrib/hbfoxpro/relfunc.c
! fixed typo in Between() function - thanks to Petr Chorney
* src/rtl/gtwvt/gtwvt.c
! added workaround for keyboard drivers which sets CTRL key modifier
flag when only ALTGR is pressed - thanks to Maurizio la Cecilia
* doc/xhb-diff.txt
+ added information about support for strong typed variables in [x]Harbour
* updated information about typed object items
! typos
* include/hbclass.ch
* updated information about initialization of typed object items
* include/hbatomic.h
* do not force OSSpinLock usage in OSX builds
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function hb_fsCloseRaw() - it works like hb_fsClose() but
does not change hb_fsError()
* src/rtl/filebuf.c
* changed the condition in hb_fileLoadData() used to detect file
descriptors without full support for file seek - now it's possible
to use [hb_]MemoRead() to read /proc/* files in Linux
* src/rtl/filesys.c
! detach printer process to not leave zombie processes after printing
in programs which do not catch SIGCHLD signal in *nixes builds
* src/rtl/filesys.c
* src/rtl/hbproces.c
* use hb_fsCloseRaw() instead of hb_fsClose() to safe original error code
* src/rtl/hbsocket.c
! fixed OpenWatcom Linux builds
+ added HB_WINSOCK_USE_OLDFUNC macro which disables new WinSock functions
in MS-Windows builds
* src/rtl/gtxwc/gtxwc.c
! fixed recursive mutex lock
! added some missing locks
+ added support for X11 XLockDisplay()/XUnlockDisplay() in default builds
when MT HVM is used. X11 locks can be disabled by HB_XWC_XLOCK_OFF
macro - it may be necessary on some old platforms which do not support
them.
! disabled resize step when font size is changed to reduce possible
problem with reduced number of columns and rows by this operation.
Please remember that X Server/Window Manager may still ignore
suggested window size and force their own dimensions so application
has to be ready to accept final screen size set by server/WM.
* contrib/hbnf/shadow.c
! use 8 instead of 7 as default color attribute in FT_Shadow() function
* contrib/hbwin/hbwin.ch
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwin.hbx
+ contrib/hbwin/win_svc_2.c
* contrib/hbwin/win_svc.c -> contrib/hbwin/win_svc_1.c
+ add function win_ServiceRun( <cName>, [...] ) -> <lSuccess>
to start a service by name
+ add WIN_SERVICE_CONTROL_* constants
+ add function win_ServiceControl( <cName>, <nControlCode> ) -> <lSuccess>
+ add 2nd parameter to win_ServiceDelete( <cName>, <lForce> ) -> <lSuccess>
<lForce> will attempt to stop the service before deleting it.
% separate service management functions and Harbour app-as-service
support functions into separate sources
; build-tested only, function names not finalized.
* set wapi_GetLastError() more consistently
+ win_ServiceInstall() add two new optional parameters:
<cUsername> (5th) and <cPassword> (6th)
! win_ServiceInstall() do not convert an omitted
<cDisplayName> (2nd) parameter to empty string, pass it
to Windows as NULL instead
% use HB_IT_EVALITEM instead of ( HB_IT_BLOCK | HB_IT_SYMBOL )
; Above patches come from 3.4 fork commits below:
2015-09-03 18:52 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-09-02 19:54 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-09-02 18:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-04-03 11:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-01-29 02:15 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
* contrib/rddads/ads.ch
+ 64bit server type constants included
* include/dbinfo.ch
* contrib/rddsql/hbrddsql.h
* contrib/rddsql/rddsql.hbc
- contrib/rddsql/hbrddsql.ch
* definitions of SQL related RDDI_*, DBI_* constants moved from RDDSQL
to core code
* include/dbinfo.ch
* contrib/rddsql/sqlbase.c
* RDDI_NEWID renamed to more informative RDDI_INSERTID
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/rddads.h
+ RDDI_CONNECT, RDDI_DISCONNECT implemented. RDDINFO() can be used instead
of RDD specific AdsConnect*() calls
+ other SQL related RDDINFO(), DBINFO() capabilities implemented
+ DBUSEAREA() accepts prefixes "SQL:" and "TABLE:" to indicate if
given table name should be treated as SQL query or table file name.
If these prefixes are omitted, function parameter is treated as table
file name except in case it begins with "SELECT " (compatibility).
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/pem.c
* contrib/hbssl/x509.c
+ added new prg functions: PEM_READ_X509(), PEM_READ_X509_AUX() and
X509_get_PubKey()
* src/debug/dbgmenu.prg
! fixed wrong method name :ToggleBreakPoint() -> BreakPointToggle()
Thanks to Viktor.
* src/rtl/gtwin/gtwin.c
* hardcoded some LEFT_ALT + <key> to return K_ALT_* value instead of
national characters, i.e. in EL keyboard layout. Please test it.
I cannot check it in my MS-Windows version.
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
! use HB_MIN() macro instead of non-standard min() function
! use casting to double instead of float which may strip significant
bits from 32bit numbers
* include/hbapicdp.h
+ added hb_cdpGetID() macro
* formatting
* src/rtl/hbjson.c
* modified codepage parameter behavior in JSON encode/decode functions.
Now they can be used for codepage translation.
* src/rtl/gtwvt/gtwvt.c
* ignore national characters when WM_SYSCHAR message is generated.
It should resolve the problem with Greek keyboard layout reported
by Pete anyhow it's possible that it may create new problems with
some other keyboard layouts so please report them if any.
* 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
* 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.
* 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.
* 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
* 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.