/*
* $Id$
*/
/* Read doc/howtorep.txt and use this format for entry headers:
YYYY-MM-DD HH:MM UTC[-|+]hhmm Your Full Name (your_email address)
2013-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
See copyright/license at the end of the file.
Encoding: UTF-8 (No BOM) Notation (in 5th position):
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2016-11-07 14:50 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
- doc/en/hb_set.txt
* doc/en/set.txt
* contrib/hbgd/doc/en/hbgd.txt -> contrib/hbgd/doc/en/gdwrp.txt
* contrib/hbmisc/doc/en/dates2.txt -> contrib/hbmisc/doc/en/dates.txt
* contrib/hbmisc/doc/en/ht_class.txt -> contrib/hbmisc/doc/en/fileread.txt
* contrib/hbmisc/doc/en/ht_conv.txt -> contrib/hbmisc/doc/en/nconvert.txt
* contrib/hbmisc/doc/en/ht_str.txt -> contrib/hbmisc/doc/en/strfmt.txt
* contrib/hbxpp/doc/en/browse.txt -> contrib/hbxpp/doc/en/dbcmdx.txt
* contrib/hbziparc/doc/en/hbziparc.txt -> contrib/hbziparc/doc/en/ziparc.txt
* contrib/rddads/doc/en/adsfuncs.txt -> contrib/rddads/doc/en/adsfunc.txt
* doc/en/array.txt -> doc/en/arrayshb.txt
* doc/en/eval.txt -> doc/en/evalhb.txt
* doc/en/input.txt -> doc/en/inputall.txt
* doc/en/lang.txt -> doc/en/langall.txt
* doc/en/nation.txt -> doc/en/natmsg.txt
* doc/en/setmode.txt -> doc/en/gx.txt
* doc/en/tgetlist.txt -> doc/en/readvar.txt
* renames to sync doc filenames with source filename
; Above patches come from 3.4 fork commits below:
2016-11-03 14:01 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2016-11-03 13:48 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-28 12:29 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* include/hbver.ch
+ add new HB_VER_* constants from 3.4
* src/rtl/version.c
+ return meaningful value for HB_VERSION_URL_BASE
* return dummy values for HB_VERSION_URL_SOURCE,
HB_VERSION_BUILD_TIMESTAMP_UTC, HB_VERSION_OPTIONS
2016-10-26 12:50 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
- 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
/ tags in html output until they
are converted to something better
+ add support for /, , 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 ,,
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)
2016-10-21 07:54 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* extras/hbdoc/_genbase.prg
* extras/hbdoc/_genhtml.prg
* extras/hbdoc/_gentxt.prg
* extras/hbdoc/_genxml.prg
* extras/hbdoc/_tmplate.prg
* extras/hbdoc/hbdoc.ch
* extras/hbdoc/hbdoc.css
* extras/hbdoc/hbdoc.hbp
* extras/hbdoc/hbdoc.prg
! fix linter problems in generated html
* html5/css cleanups
* use VF IO
! fix double close in hbdoc
! fix file handle leak in hbdoc
* use Class(y) syntax in class definitions
* remove internal file references
% use hb_AScanI()
! use hb_ATokens() instead of hand-rolled line splitting,
making this code EOL agnostic
% use hb_cwd(), hb_FName*(), hb_DirSep*() (also fixes potential portability issues)
* cleanups/opts
* cleaned doc tags
% force disable LTO at link-time
! typo in comment
; notice that you can regenerate the docs
for the Harbour website (https://harbour.github.io/doc/)
using this command:
extras/hbdoc$ hbmk2 hbdoc -run -runflag=-format=html -runflag=-output-single
or in this fork, using this command:
extras/hbdoc$ hbmk2 hbdoc -run
; for NF doc parsing I created an internal API long ago
(it is used by HBIDE f.e.):
hbmk2 -find __hbdoc_
usage examples in Harbour:
grep -R __hbdoc_ *
% optimized string handling / temp variable usage, IFs cleaned
% enabled -kmo build options
% cleaned header inclusion
% reworked to not use PUBLIC vars at all
% avoided some more macro expansions
% converted a public var to hb_StrReplace() with hash
* minor cleanups and optimizations
* use PROTECTED obj vars
% use SWITCH
% merged some nested branches
* use #if 0 for commented code
% cleaned some array declarations
% use hb_FNameExt()
* avoid one macro expansion
+ added -run flags to regenarate docs for Harbour website
* cleaned .AND./.OR. ambiguity
% converted PUBLIC var to STATIC
; Above patches come from 3.4 fork commits below:
2016-09-20 02:31 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-09-19 18:51 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-09-19 18:03 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-07-18 17:57 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-06-28 11:27 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-06-05 20:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-03-17 13:54 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2014-12-13 03:15 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2014-07-15 23:04 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-06-21 12:46 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-06-20 15:38 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-02-12 01:58 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
2014-02-03 21:07 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
2014-02-03 19:19 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
2014-02-03 18:37 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
2014-02-03 18:22 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
2014-02-03 17:45 UTC+0100 Viktor Szakáts (vszakats users.noreply.github.com)
; plus various minor maintenance updates from multiple other commits
2016-10-19 01:24 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
2016-10-18 19:16 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
- contrib/hbct/doc/en/ct.txt
* contrib/hbct/doc/en/ctc.txt
* contrib/hbct/doc/en/strdiff.txt
* contrib/hbct/doc/en/token2.txt
* contrib/hbgt/doc/en/hbgt.txt
* contrib/hbmisc/doc/en/dates2.txt
* contrib/hbmisc/doc/en/ht_class.txt
* contrib/hbmisc/doc/en/ht_str.txt
* contrib/hbnf/doc/en/aavg.txt
* contrib/hbnf/doc/en/acctadj.txt
* contrib/hbnf/doc/en/acctmnth.txt
* contrib/hbnf/doc/en/acctqtr.txt
* contrib/hbnf/doc/en/acctweek.txt
* contrib/hbnf/doc/en/acctyear.txt
* contrib/hbnf/doc/en/adapter.txt
* contrib/hbnf/doc/en/aemaxlen.txt
* contrib/hbnf/doc/en/aeminlen.txt
* contrib/hbnf/doc/en/alt.txt
* contrib/hbnf/doc/en/amedian.txt
* contrib/hbnf/doc/en/anomatch.txt
* contrib/hbnf/doc/en/any2any.txt
* contrib/hbnf/doc/en/aredit.txt
* contrib/hbnf/doc/en/asum.txt
* contrib/hbnf/doc/en/at2.txt
* contrib/hbnf/doc/en/bitclr.txt
* contrib/hbnf/doc/en/byt2bit.txt
* contrib/hbnf/doc/en/byt2hex.txt
* contrib/hbnf/doc/en/calendar.txt
* contrib/hbnf/doc/en/chdir.txt
* contrib/hbnf/doc/en/cint86.txt
* contrib/hbnf/doc/en/clrsel.txt
* contrib/hbnf/doc/en/cntryset.txt
* contrib/hbnf/doc/en/ctrl.txt
* contrib/hbnf/doc/en/d2e.txt
* contrib/hbnf/doc/en/datecnfg.txt
* contrib/hbnf/doc/en/default.txt
* contrib/hbnf/doc/en/dosver.txt
* contrib/hbnf/doc/en/easter.txt
* contrib/hbnf/doc/en/elapmil.txt
* contrib/hbnf/doc/en/elapsed.txt
* contrib/hbnf/doc/en/eltime.txt
* contrib/hbnf/doc/en/findith.txt
* contrib/hbnf/doc/en/firstday.txt
* contrib/hbnf/doc/en/floptst.txt
* contrib/hbnf/doc/en/fttext.txt
* contrib/hbnf/doc/en/getenvrn.txt
* contrib/hbnf/doc/en/hex2dec.txt
* contrib/hbnf/doc/en/iamidle.txt
* contrib/hbnf/doc/en/idle.txt
* contrib/hbnf/doc/en/inp.txt
* contrib/hbnf/doc/en/invclr.txt
* contrib/hbnf/doc/en/isprint.txt
* contrib/hbnf/doc/en/lastday.txt
* contrib/hbnf/doc/en/linked.txt
* contrib/hbnf/doc/en/madd.txt
* contrib/hbnf/doc/en/menu1.txt
* contrib/hbnf/doc/en/menutonf.txt
* contrib/hbnf/doc/en/metaph.txt
* contrib/hbnf/doc/en/miltime.txt
* contrib/hbnf/doc/en/min2dhm.txt
* contrib/hbnf/doc/en/mkdir.txt
* contrib/hbnf/doc/en/month.txt
* contrib/hbnf/doc/en/mouse1.txt
* contrib/hbnf/doc/en/n2color.txt
* contrib/hbnf/doc/en/netpv.txt
* contrib/hbnf/doc/en/nooccur.txt
* contrib/hbnf/doc/en/ntow.txt
* contrib/hbnf/doc/en/nwlstat.txt
* contrib/hbnf/doc/en/nwsem.txt
* contrib/hbnf/doc/en/nwuid.txt
* contrib/hbnf/doc/en/origin.txt
* contrib/hbnf/doc/en/outp.txt
* contrib/hbnf/doc/en/page.txt
* contrib/hbnf/doc/en/peek.txt
* contrib/hbnf/doc/en/pickday.txt
* contrib/hbnf/doc/en/popadder.txt
* contrib/hbnf/doc/en/proper.txt
* contrib/hbnf/doc/en/putkey.txt
* contrib/hbnf/doc/en/qtr.txt
* contrib/hbnf/doc/en/rand1.txt
* contrib/hbnf/doc/en/reboot.txt
* contrib/hbnf/doc/en/rmdir.txt
* contrib/hbnf/doc/en/round.txt
* contrib/hbnf/doc/en/savearr.txt
* contrib/hbnf/doc/en/scancode.txt
* contrib/hbnf/doc/en/setdate.txt
* contrib/hbnf/doc/en/settime.txt
* contrib/hbnf/doc/en/shift.txt
* contrib/hbnf/doc/en/sinkey.txt
* contrib/hbnf/doc/en/sleep.txt
* contrib/hbnf/doc/en/sqzn.txt
* contrib/hbnf/doc/en/stod.txt
* contrib/hbnf/doc/en/sysmem.txt
* contrib/hbnf/doc/en/tbwhile.txt
* contrib/hbnf/doc/en/tempfile.txt
* contrib/hbnf/doc/en/vertmenu.txt
* contrib/hbnf/doc/en/vidcur.txt
* contrib/hbnf/doc/en/vidmode.txt
* contrib/hbnf/doc/en/wda.txt
* contrib/hbnf/doc/en/week.txt
* contrib/hbnf/doc/en/year.txt
* contrib/hbziparc/doc/en/hbziparc.txt
* contrib/rddads/doc/en/adsfuncs.txt
* contrib/rddads/doc/en/readme.txt
* doc/en/1stread.txt
* doc/en/array.txt
* doc/en/binnum.txt
* doc/en/browse.txt
* doc/en/command.txt
* doc/en/compiler.txt
* doc/en/datetime.txt
* doc/en/dbdelim.txt
* doc/en/dbsdf.txt
* doc/en/dbstrux.txt
* doc/en/dir.txt
* doc/en/diskspac.txt
* doc/en/errsys.txt
* doc/en/eval.txt
* doc/en/file.txt
* doc/en/garbage.txt
* doc/en/harbext.txt
* doc/en/hashes.txt
* doc/en/hb_set.txt
* doc/en/hbinet.txt
* doc/en/hvm.txt
* doc/en/idle.txt
* doc/en/input.txt
* doc/en/lang.txt
* doc/en/macro.txt
* doc/en/math.txt
* doc/en/memo.txt
* doc/en/memvar.txt
* doc/en/menu.txt
* doc/en/misc.txt
* doc/en/nation.txt
* doc/en/objfunc.txt
* doc/en/rdd.txt
* doc/en/rdddb.txt
* doc/en/rddmisc.txt
* doc/en/rddord.txt
* doc/en/set.txt
* doc/en/setmode.txt
* doc/en/string.txt
* doc/en/tclass.txt
* doc/en/terminal.txt
* doc/en/tgetlist.txt
* doc/en/tlabel.txt
* doc/en/treport.txt
* doc/en/var.txt
* sync with fixes/updates from 3.4 fork
2016-10-04 16:22 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* 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)
2016-10-02 23:20 UTC+0400 Phil Krylov (phil a t newstar.rinet.ru)
* config/global.mk
! Fix cross-compiler detection when only HB_CCPREFIX is passed from
environment.
2016-09-28 19:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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).
2016-09-23 11:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-09-23 09:47 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
! fixed C++ casting in MS-Windows builds
2016-09-22 15:47 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-09-20 17:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-09-05 17:04 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* 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( , [...] ) ->
to start a service by name
+ add WIN_SERVICE_CONTROL_* constants
+ add function win_ServiceControl( , ) ->
+ add 2nd parameter to win_ServiceDelete( , ) ->
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:
(5th) and (6th)
! win_ServiceInstall() do not convert an omitted
(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)
2016-08-10 20:12 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* 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).
2016-07-18 20:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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 + 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.
2016-07-04 19:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-06-29 23:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbffpt/dbffpt1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/delim1.c
* src/rdd/sdf1.c
* src/rdd/hsx/hsx.c
* src/rdd/dbcmd.c
* src/rdd/dbcmd53.c
* next SELF_INFO() and SELF_RDDINFO() cleanups
* src/rtl/gtwvt/gtwvt.c
! fixed reverted LEFT and RIGHT ALT modifiers in my last commit
2016-06-23 00:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapiitm.h
* src/vm/itemapi.c
+ added new C function:
PHB_ITEM hb_itemPutNil( PHB_ITEM pItem );
* src/rdd/dbf1.c
! fixed yet another RDDI_SETHEADER clearing in internal DBF RDD code
* clear few passed variables before internal SELF_INFO() and
SELF_RDDINFO() read calls - they were safe in current code but
potentially may badly interact with 3-rd party DBF RDD wrappers.
2016-06-22 23:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
* updated few comments
* src/rdd/dbf1.c
* src/rdd/delim1.c
! fixed dbInfo( DBI_SETHEADER ) and hb_rddInfo( RDDI_SETHEADER )
to not changer previous settings
! set DB_SETHEADER_APPENDSYNC as default update header mode
2016-06-20 21:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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( ) -> 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
2016-05-04 15:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
! fixed very bad typo which caused buffer overflow on 32bit
platforms using poll() instead of select() in hb_socketSelect()
2016-05-04 13:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-04-29 16:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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:
{ }
If someone needs them then he should add:
#define HB_VO_CONSTRUCTOR
before:
#include "hbclass.ch"
* src/compiler/harbour.y
* typo in comment
2016-04-20 18:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbstrfmt.c
! restored pointer incrementation I removed unintentionally
2016-04-20 17:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-04-20 17:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbstrfmt.c
! fixed wrongly added to output character after unclosed format strings,
i.e.
? hb_StrFormat( "%1" )
? hb_StrFormat( "%1%s", "x" )
2016-04-19 23:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-04-19 14:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
! fixed wrong translation in my previous commit
2016-04-18 18:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
! fixed stupid C&P typo in my previous modification - thanks to Lorenzo.
2016-04-18 18:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/strrepl.c
! fixed hb_strReplace() for strings longer then 1024 bytes and
array used in 3-rd parameter.
2016-04-18 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
! changed extended keycodes generated for ASCII characters
combined with ALT and/or CTRL flags. It fixes problems with
code giving the highest priority for:
! hb_keyChar( nKey ) == ""
i.e. MemoEdit()
* contrib/hbmzip/mziperr.prg
% replaced DO CASE / ENDCASE with SWITCH / ENDSWITCH
! fixed repeated error codes
2016-04-08 14:30 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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 when HB_HAS_POLL macro is set manually by user
(thanks to Teo)
* contrib/hbnetio/netiosrv.c
* minor optimization
2016-04-07 18:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ 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
2016-04-07 18:34 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-04-06 15:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbprintf.c
* pacified warnings
2016-04-06 15:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-04-06 13:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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. [DONE]
2016-04-05 21:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-04-05 16:27 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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 \\\, \\.\PIPE\*, \\.\ as
device names in DOS, OS2 and MS-Win builds.
2016-04-01 00:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-03-30 16:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
! use "ll" instead of "I64" as 64bit integer modifier in *printf()
functions in Embarcadero CLANG based compilers
2016-03-30 16:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-03-28 13:09 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* 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:
https://github.com/vszakats/harbour-core/commit/f238e5f81ff07cb07fa3a21d3c82009db79ab7de
https://github.com/vszakats/harbour-core/commit/b2c9e4a63b1aca42b462cec49d55c4b1cbd1066c
; 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.
2016-03-25 17:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-03-18 17:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/rdd/dbcmd.c
+ added new function:
hb_dbGetFilter() -> | 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
2016-03-16 14:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbclass.ch
* typo in comment
2016-03-16 14:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-03-10 12:52 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/langcomp.prg
! added missing de-AT lang mapping
2016-03-08 22:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-03-08 16:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/hbwin.ch
+ added macros with printer status errors
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* clear pointers and memory buffers passed to windows printer functions
* removed repeated definition
2016-03-08 16:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
parameter of hb_ZipFile() is not set.
2016-03-08 14:52 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/lang/Makefile
+ src/lang/l_de_at.c
* include/hblang.hbx
+ added new DE_AT German-Austria lang module by byte1one/at/gmail.com
* src/lang/l_is.c
! fixes in Icelandic lang module by Isleifur Gislason
2016-03-01 16:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
bottom/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.
2016-02-18 17:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/fileio.ch
+ added HB_VF_IONAME to hb_vcConfigure() actions
* contrib/hbbz2io/bz2io.c
* contrib/hbcomio/comio.c
* contrib/hbgzio/gzio.c
* contrib/hbmemio/memio.c
* contrib/hbnetio/netio.h
* contrib/hbnetio/netiocli.c
* contrib/hbpipeio/pipeio.c
* contrib/hbtcpio/tcpio.c
* src/rtl/filebuf.c
+ implemented HB_VF_IONAME
* contrib/hbnetio/netiosrv.c
! added protection against possible buffer overflow
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* restored CL5.[23] compatible tag selection - I had to broke
it when I was adding SIX3 compatibility functions
2016-02-16 22:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapirdd.h
* src/rdd/wacore.c
* src/rdd/workarea.c
+ added new C function which allows to register RDD redirector
which depends on used table name:
typedef LPRDDNODE ( * HB_RDDACCEPT )
( LPRDDNODE pRddNode, const char * szFileName );
void hb_rddSetFileRedirector( HB_RDDACCEPT funcAccept,
HB_BOOL fEnable );
+ added new C functions which allows to find RDD respecting
active redirectors:
const char * hb_rddFindDrv( const char * szDriver,
const char * szFileName );
LPRDDNODE hb_rddFindFileNode( LPRDDNODE pRddNode,
const char * szFileName );
* cleaned some HB_TRACE messages
* src/rdd/dbcmd.c
* src/rdd/wafunc.c
+ use functions which respect redirectors to find RDD
2016-02-16 15:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-02-11 11:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* include/hbapifs.h
* src/rtl/filesys.c
* cleaned hb_fsOpenEx() parameters order
* src/common/hbprintf.c
! typo in comment
2016-02-10 17:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* replaced hb_fsCreate() and hb_fsCreateEx() with wrappers
to hb_fsOpenEx()
2016-02-09 20:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! pacified BCC warning - thanks to Grigory
2016-02-09 18:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/hbnetio.hbx
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/readme.txt
+ added new client side function:
netio_SetPath( [, ] ) -> []
It set/get path prefix for automatic file redirection to HBNETIO.
If automatic redirection is activated then 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 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
2016-02-08 22:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/xhb-diff.txt
* updated chapter "MACROS WITH DECLARED SYMBOLS" - better description
for -km and -kd Harbour compiler switches
* updated chapter "MACRO MESSAGES" - refreshed description of xHarbour
compiler for current versions
2016-02-05 18:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/token2.c
! fixed TokenInit() after my recent modifications - many thanks to Tony
for exact information about the problem.
2016-02-04 17:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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()
2016-02-01 14:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/sdf1.c
! fixed EOL decoding in DOS, OS2 and MS-Windows builds
2016-01-29 00:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
! pacified 64bit MSC warnings
2016-01-28 15:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexprb.c
* src/common/expropt1.c
! fixed typo in macro alias push/pop operation
* disable multivalue macro expansion for macro expressions enclosed in
parenthesis, i.e.:
s := "1,2,3"
QOut( &s ) // 1, 2, 3
QOut( &(s) ) // 1, 2, 3
QOut( (&s) ) // 3
* include/hbexprop.h
* src/common/expropt1.c
* src/common/expropt2.c
* src/vm/hvm.c
* return last array item when hb_ArrayToParams() is used in
parenthesis, i.e.:
QOut( hb_ArrayToParams( { 1, 2, 3 } ) ) // 1, 2, 3
QOut( ( hb_ArrayToParams( { 1, 2, 3 } ) ) ) // 3
2016-01-28 13:20 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-01-28 13:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-01-26 15:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapierr.h
* include/hbdefs.h
* src/debug/dbgentry.c
* src/rtl/filesys.c
* src/rtl/gtcgi/gtcgi.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* src/rtl/gtxwc/gtxwc.c
* src/rtl/hbhex.c
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
* src/vm/classes.c
* src/vm/extrap.c
* src/vm/itemapi.c
* src/vm/runner.c
* src/vm/task.c
* contrib/gtalleg/gtallegd.c
* contrib/gtqtc/gtqtc1.cpp
* contrib/gtwvg/gtwgud.c
* contrib/gtwvg/gtwvgd.c
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgwing.c
* contrib/hbfbird/firebird.c
* contrib/hbwin/axcore.c
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_shellapi.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/win_misc.c
* contrib/hbxdiff/core.c
* contrib/rddads/ads1.c
* contrib/rddads/adsx.c
* contrib/xhb/cstructc.c
* contrib/xhb/freadlin.c
* extras/gtwvw/gtwvwd.c
* extras/gtwvw/wvwfuncs.c
* use HB_PTRUINT instead of HB_PTRDIFF in castings between pointers
and numbers - it makes some C compilers happy and in few cases it
also fixed bugs
2016-01-24 13:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/delim1.c
! added missing casting - it fixes problem reported by Franček Prijatelj
2016-01-23 13:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbformat/hbfmtcls.prg
* applied patch by Maurizio la Cecilia:
https://groups.google.com/forum/#!topic/harbour-devel/a8qsr8ZZy2A
thanks.
2016-01-23 13:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/xhb/hbcompat.ch
* contrib/xhb/xhb.hbp
* contrib/xhb/xhb.hbx
+ contrib/xhb/xhbbit.c
+ added xhb_bitAnd(), xhb_bitOr() and xhb_bitXor() functions which
are compatible with xHarbour &, | and ^^ operators
2016-01-23 11:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbusage.c
* src/pp/hbpp.c
* package/harb_win.mft
* package/harb_win.rc
* utils/hbi18n/hbi18n.prg
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/po/hbmk2.hu.po
* utils/hbtest/hbtest.prg
* contrib/hbformat/utils/hbformat.prg
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* bumped copyright year to 2016
2016-01-22 16:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
* src/rdd/hbsix/sxcompr.c
* src/rtl/gtxwc/gtxwc.c
! cleaned C++ casting
2016-01-21 20:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtalleg/gtallegd.c
* contrib/hbamf/amfdec.c
* contrib/hbamf/amfenc.c
* contrib/hbbz2/core.c
* contrib/hbbz2io/bz2io.c
* contrib/hbct/atrepl.c
* contrib/hbct/charrepl.c
* contrib/hbct/envparam.c
* contrib/hbct/pack.c
* contrib/hbct/token2.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* contrib/hbgs/core.c
* contrib/hbgzio/gzio.c
* contrib/hbhpdf/core.c
* contrib/hbhpdf/image.c
* contrib/hbmlzo/core.c
* contrib/hbmxml/core.c
* contrib/hbodbc/odbc.c
* contrib/hbsqlit3/core.c
* contrib/hbssl/bio.c
* contrib/hbssl/ssl.c
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsmgmnt.c
* contrib/rddads/adsx.c
* contrib/rddads/rddads.h
* contrib/sddodbc/core.c
* contrib/xhb/cstructc.c
* include/hbapi.h
* include/hbdefs.h
* src/common/expropt1.c
* src/common/expropt2.c
* src/common/hbmem.c
* src/compiler/complex.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* src/compiler/hbident.c
* src/macro/macrolex.c
* src/nortl/nortl.c
* src/pp/ppcore.c
* src/rdd/hbsix/sxcompr.c
* src/rdd/hbsix/sxfname.c
* src/rdd/usrrdd/usrrdd.c
* src/rtl/cdpapi.c
* src/rtl/filebuf.c
* src/rtl/filesys.c
* src/rtl/fslink.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtsln/mousesln.c
* src/rtl/gtxwc/gtxwc.c
* src/rtl/hbbfsock.c
* src/rtl/hbgtcore.c
* src/rtl/hbsocket.c
* src/rtl/hbzlib.c
* src/rtl/hbznet.c
* src/rtl/hbzsock.c
* src/rtl/iousr.c
* src/rtl/langapi.c
* src/vm/cmdarg.c
* src/vm/codebloc.c
* src/vm/hvm.c
* src/vm/itemapi.c
* src/vm/macro.c
* src/vm/set.c
* src/vm/strapi.c
* cleaned const qualifier dropping
! fixed few bugs I found analyzing related code
; I left untouched two places in HBSSL which IMO should be fixed yet
2016-01-21 20:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
* do not use long type names in array returned by dbStruct() if
corresponding types exist in core code and have their own name
recognized by other RDDs.
Now only one long type name can be returned: "CICHARACTER"
2016-01-19 13:03 UTC+0100 Maurilio Longo (maurilio.longo@libero.it)
- tests/longfile.prg
+ tests/largefil.prg
+ renamed to better convey what it is all about.
2016-01-19 12:58 UTC+0100 Maurilio Longo (maurilio.longo@libero.it)
! tests/longfile.prg
! use hb_fSize() instead of FileSize()
2016-01-19 11:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/cmdcheck.c
! fixed parsing some parameters taken from environment and
delimited with spaces
! fixed potential memory leak when some parameters were
repeated.
2016-01-18 12:37 UTC+0100 Maurilio Longo (maurilio.longo@libero.it)
+ tests/longfile.prg
+ create a .dbf file bigger than 2GB and test index operations on it.
2016-01-18 12:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* indenting
* config/darwin/clang.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* utils/hbmk2/hbmk2.prg
* use -no_warning_for_no_symbols in MacOSX builds - many thanks
to Lorenzo
* contrib/xhb/xhb.ch
+ added #pragma -kd+
* doc/xhb-diff.txt
! typos
2016-01-15 16:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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: switch
* config/global.mk
- removed set HARBOUR=F:100 - it's not necessary with automatic FHT
resizing
; Please test it in real OS2 environment
2016-01-15 15:20 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
% 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
2016-01-15 14:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! _A_READONLY -> _A_RDONLY
2016-01-15 11:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-01-14 19:33 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
% 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
2016-01-14 19:17 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
% 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
2016-01-14 14:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/fm.c
! declaration order
2016-01-14 14:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/fm.c
! added missing HB_STACK_TLS_PRELOAD
2016-01-14 14:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* include/hbmemory.ch
* src/vm/fm.c
* renamed HB_MEM_ISLIMIT to HB_MEM_CANLIMIT
! fixed typo
2016-01-14 11:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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 switch during Harbour compilation - please
test, i.e.:
os2-make -j3
* contrib/xhb/hbcompat.ch
! fixed pp rules for Str(,,, ) translation
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function:
HB_FHANDLE hb_fsOpenEx( const char * pszFileName, HB_USHORT uiFlags,
HB_FATTR nAttr );
* 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_CANLIMIT - return non 0 value if used memory limit is
supported
+ added new PRG function:
__fm_allocLimit( [ ] ) ->
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
2016-01-13 15:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-01-13 11:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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( [@], [, ] )
->
hb_socketNewSSL_accept( [@], [, ] )
->
* 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() ->
hb_SSL_connect_inet( , [ ], [ @ ] )
->
hb_SSL_connect_socket( , [ ], [ @ ] )
->
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
2016-01-12 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-01-11 17:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-01-10 20:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-01-09 20:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbbz2/errint.c
+ added file I forgot to add to git in one of previous commits
2016-01-09 20:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbbz2io/bz2io.c
* pacified warning
2016-01-09 20:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbbz2/core.c
* contrib/hbbz2/hbbz2.hbp
* moved bz_internal_error() definition to separate file to avoid
conflicts when more modules need it and/or define their own.
* contrib/hbplist.txt
+ contrib/hbbz2io/bz2io.c
+ contrib/hbbz2io/hbbz2io.hbc
+ contrib/hbbz2io/hbbz2io.hbp
+ contrib/hbbz2io/hbbz2io.hbx
+ added new Harbour File IO driver for BZIP2 compressed streams.
It redirects files with "bz:" and "bz[1-9]:" prefixes and can be
used with hb_vf*() functions and transfer RDDs like SDF or DELIM,
i.e.
REQUEST HB_BZ2IO, HB_MEMIO
USE test
COPY TO mem:bz:test.txt.bz DELIMITED WITH TAB
FOR EACH cLine IN ;
hb_ATokens( hb_MemoRead( "mem:bz:test.txt.bz" ), .t. )
? cLine
NEXT
or:
REQUEST HB_GZIO, HB_BZ2IO
FUNCTION GZip2Bz2( cFile )
RETURN hb_vfCopy( "GZ:" + cFile + ".gz", "BZ:" + cFile + ".bz2" )
In summary BZ2IO works like GZIO but uses BZIP2 slower though more
efficient compression BZIP2 method instead of GZIP format.
2016-01-09 20:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
* do not clear timeout when at least one byte was read or written,
it may be useful for code which was not designed to work with
partially finished file read/write operations.
2016-01-09 20:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.hbp
* contrib/hbfoxpro/hbfoxpro.hbx
+ contrib/hbfoxpro/relfunc.c
+ added FoxPro compatible functions:
Between( , , ) ->
InList( , [, ] ) ->
2016-01-09 03:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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()
2016-01-09 02:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
! fixed license text in file header - by mistake I committed wrong one,
thanks to Tamas TEVESZ for information
2016-01-08 13:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/hbdossrl/serial.h
! force pure C function declaration
2016-01-08 12:38 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* src/rdd/delim1.c
* src/rdd/sdf1.c
* scope variables
* fix indenting
2016-01-08 12:28 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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).
2016-01-08 12:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.ch
+ added new PP rules suggested by Jeff Stone for THIS., .NULL. and CD
* contrib/hbfoxpro/hbfoxpro.hbx
* contrib/hbfoxpro/misc.prg
* contrib/hbfoxpro/miscfunc.c
+ added new functions Id(), Program() and LineNo()
+ added SYS( 1 ), SYS( 11 ), SYS( 2003 )
! fixed SYS( 10 ) to return date as character string
2016-01-07 12:16 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
! Fixed ( again ) Wvt_DrawImage() and Wvg_Image() where images were not
being rendered correctly if the height of image is greater than
width of the image. The behavior is only affected when
is set to be TRUE. Thanks Sergy for reporting and providing
code to debug.
2016-01-05 10:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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.
2016-01-04 23:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
* pacified warning
2016-01-04 22:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbplist.txt
+ added HBGZIO library
2016-01-04 22:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbgzio/gzio.c
+ contrib/hbgzio/hbgzio.hbc
+ contrib/hbgzio/hbgzio.hbp
+ contrib/hbgzio/hbgzio.hbx
+ added new Harbour File IO driver for GZIP compressed streams.
It redirects files with "gz:" and "gz[0-9]:" prefixes and can be
used with hb_vf*() functions and transfer RDDs like SDF or DELIM,
i.e.
REQUEST HB_GZIO
USE test
COPY TO gz:test.txt.gz DELIMITED WITH TAB
or:
REQUEST HB_GZIO, HB_MEMIO
hb_vfCopy( "file.txt", "gz9:mem:file.txt.gz" )
USE test
APPEND FROM "gz:mem:file.txt.gz"
hb_vfErase( "mem:file.txt.gz" )
or:
REQUEST HB_GZIO
FUNCTION GZIP( cFile )
RETURN hb_vfCopy( cFile, "GZ:" + cFile + ".gz" )
Have a fun with new toy in a new year ;)
2016-01-04 22:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/gencc.c
! fixed generation of -gc3 code for 64-bit *nixes on 32-bit hosts
2016-01-04 21:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2016-01-03 09:24 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
! Fixed Wvt_DrawImage() and Wvg_Image() where images were not
being rendered correctly if the height of image is greater than
width of the image. The behavior is only affected when
is set to be TRUE. Thanks Sergy for reporting and providing
code to debug.
2015-12-29 20:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/gencc.c
! generate platform and C compiler independent C code for -gc3 output
2015-12-29 17:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/hbdossrl/Makefile
! typo in library name
2015-12-29 17:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ 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)
2015-12-24 14:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
! casting for C++ compilation
2015-12-23 18:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
! added missing HB_STACK_TLS_PRELOAD - thanks to Viktor for the info
2015-12-23 17:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/vm/hvm.c
+ added new PRG function:
__RecoverErrorBlock() -> | 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.
2015-12-16 19:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbfopen.c
! do not use _wfsopen() in MinGW-CE builds - it does not support it
(Thanks to Abe)
2015-12-15 23:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/dos/watcom.mk
* config/win/watcom.mk
* config/linux/watcom.mk
! enabled -bd OpenWatcom switch for code compiled as part of dynamic
libraries
* use CauseWay as default DOS extender for dynamic DOS builds
* config/dyn.mk
* config/lib.mk
* src/Makefile
! fixed list of libraries used to create Harbour DLL in DOS builds
* config/bin.mk
* src/vm/Makefile
* create hbmainstd library for OpenWatcom DOS shared builds
* src/vm/maindllh.c
+ added DLL entry function for CauseWay DLLs in OpenWatcom builds
* src/vm/main.c
* include maindllh.c in OpenWatcom DOS shared builds
* utils/hbmk2/hbmk2.prg
+ added support for dynamic binaries in DOS OpenWatcom builds.
Support for CauseWay DLLs is still broken in current OpenWatcom
builds so it will have to wait for the fix to be usable.
* src/vm/dynlibhb.c
+ added support for dynamic libraries to OpenWatcom DOS builds.
Now it's enabled only in harbour.dll due to problems with
CW and current OW.
* src/3rd/zlib/zconf.h
* src/3rd/zlib/zlib.dif
* use OS2 patch for exporting ZLIB symbols also in DOS builds
* src/rdd/dbf1.c
* pacified warning
2015-12-15 19:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbfopen.c
* use *fsopen() function instead of *fopen() in most of
DOS, OS2 and MS-Windows builds
2015-12-14 16:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/os2/watcom.mk
+ added -bd to Watcom C switches used to compile files for Harbour DLL.
It should fix the problem with OpenWatcom binaries using harbour.dll.
2015-12-14 14:52 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/dynlib/Makefile
! yet another fix for building harbour without MT support HB_MT=no
2015-12-14 14:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
+ protect DosExecPgm() and standard file IO redirection in OS2 builds
by GT mutex
2015-12-14 14:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
* utils/hbmk2/Makefile
* utils/hbmk2/hbmk2.hbp
! fixed build process without MT support: HB_MT=no
2015-12-10 17:24 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* added HB_OS2_NONAMEDPIPES macro for OS2 build tests
* src/rtl/hbproces.c
* formatting
2015-12-09 23:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/ssl_sock.c
+ recognize "ssl" item in hash array socket filter as alternative to
"ctx" and "key"
2015-12-09 14:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
* include/hbrdddbf.h
* src/rdd/dbf1.c
+ added new RDD switch RDDI_SETHEADER
It allows to define how DBF header is updated in tables which
will be opened later, i.e.:
// maximize performance reducing number of DBF header updating
// header is updated only when table is closed if before new
// record was added
hb_rddInfo( RDDI_SETHEADER, DB_SETHEADER_MINIMAL )
or:
// update header in the same moment as Clipper and xBase++
// and store only last two digit from the year for compatibility
// with old dBase and FoxPro versions
hb_rddInfo( RDDI_SETHEADER, ;
hb_bitOr( DB_SETHEADER_CLIPPER, DB_SETHEADER_YYEAR ) )
// DB_SETHEADER_CLIPPER
By default Harbour uses DB_SETHEADER_APPENDSYNC.
For more information look at comments for DB_SETHEADER_* switches
in dbinfo.ch
+ added new table switch DBI_SETHEADER
It has the same meaning as RDDI_SETHEADER but changes the header
updated mode of already open table by dbInfo() function.
* src/rtl/filebuf.c
! added missing redirection for Configure() method.
* src/rtl/hbproces.c
! fixed sysconf() emulation for OpenWatcom 1.9 and earlier to work with
_SC_PAGESIZE
2015-12-05 10:58 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ tests/getblock.prg
+ added test code for GET SetGet block for aliased macro variables
2015-12-05 10:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtos2/gtos2.c
! fixed GCC builds - many thanks to David Macias
2015-12-04 23:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexpra.c
! accept strings passed in 2-nd parameter of _GET_() function
with the highest priority for macro and macroalias expressions
! fixed late evaluation of macroalias expressions in GET variables.
Thanks to Volodimyr for information about the problem and self
contain code example.
* include/hbexprb.c
! fixed typo in SetGet expression LValue validation
2015-12-04 22:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
! fixed typo in previous modification
2015-12-03 22:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
! fixed wrongly set error code when last stream is closed.
It was minor problem invisible for client PRG code without any
side effects.
* lock stream mutex a little bit earlier to avoid problems with
future code extensions - i.e. streams closed asynchronously by
other server threads
* contrib/hbnetio/netiocli.c
* allow to send data to currently registered stream.
Now if server stream function sends some data to stream before it
returns then this data is not dropped be client but saved and later
can be accessed by netio_GetData() function
2015-12-03 12:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbstack.h
* src/vm/estack.c
+ added new C function:
HB_ISIZ hb_stackBaseSymbolOffset( PHB_SYMB pSymbol );
it returns offset of pSymbol function frame on HVM stack or -1
if function/procedure pointed by pSymbol is not called.
* contrib/hbnetio/readme.txt
* contrib/hbnetio/netiosrv.c
* contrib/hbnetio/hbnetio.hbx
+ added new server side function:
netio_ServedConnection() ->
It returns connection served by netio_Server() in current thread and
can be used inside executed RPC functions to access
2015-12-01 22:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* update DBF header only after modification in COMMIT and CLOSE methods.
It's Cl*pper and xBase++ compatible behavior anyhow it also means that
number of records in DBF header is not modified just after APPEND
so it cannot be used to synchronization in concurrent file access.
* src/rtl/hbproces.c
! safe and restore hb_fsError() when unused pipe handles are closed
in hb_fsProcessOpen()
! add extension (.com or .exe) in hb_fsProcessOpen()/hb_fsProcessRun()
when executed command is given with PATH part and without extension.
It's documented that DosExecPgm() needs full filename in such case.
It fixes problem with contrib/make.hb which calls hbmk2 with directory
part but without extension.
! enabled pipes instead of temporary files for stdio redirection in OS2
builds of hb_fsProcessRun() - now it should work correctly.
* src/rtl/hbprocfn.c
+ update FError() in hb_Proces*() functions
2015-11-30 14:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbjson.h
* src/rtl/hbjson.c
+ added new C function:
char * hb_jsonEncodeCP( PHB_ITEM pValue, HB_SIZE * pnLen,
HB_BOOL fHuman, PHB_CODEPAGE cdp );
It allows to pass explicitly codepage in which strings inside pValue
are encoded. If cdp parameter is not NULL then it's used to extract
unicode character values from passed strings and this values is used
to encode to encode non ASCII characters as "\uXXXX" where XXXX is
unicode character value. Data serialized in such way is 7bit clean.
If this parameter is NULL then strings are encoded in raw form just
like in hb_jsonEncode().
+ added new C function:
HB_SIZE hb_jsonDecodeCP( const char * szSource, PHB_ITEM pValue,
PHB_CODEPAGE cdp );
It allows to pass explicitly codepage used for strings decoded from
JSON data. If this parameter is NULL then strings are decoded in raw
form and unicode character with code over 255 are converted to '?'
char.
+ added optional 3-rd parameter with codepage ID to PRG functions
hb_jsonEncode() and hb_jsonDecode(). If this parameter is not given
then above functions works like before this modification:
hb_jsonEncode() uses raw string encoding and hb_jsonDecode() uses
current HVM CP to decode characters encoded as \uXXXX.
+ modified PRG function hb_jsonDecode() to return decoded data
instead of length of decoded data when second parameter is not
passed by reference.
2015-11-25 15:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/rtl/dateshb.c
+ added two new PRG functions:
hb_SecToT( ) ->
hb_MSecToT( ) ->
* include/hbset.h
* src/vm/set.c
+ added new C function:
int hb_setUpdateEpoch( int iYear );
if necessary it converts year respecting _SET_EPOCH settings
* src/rtl/dates.c
* use hb_setUpdateEpoch() instead of local code
* src/rdd/dbf1.c
! respect _SET_EPOCH decoding DBF update time from DBF HEADER
(LUpdate() function).
It's not Cl*pper compatible anyhow looks that most of tools
stores only last two digits from the year (just like in the
DBF documentation) and -1900 trick is not used so it helps
to decode correct update date.
* store 'year % 100' instead of 'year - 1900' in DBF header
when DBF table with VFP signature is used (DB_DBF_VFP).
2015-11-24 09:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapirdd.h
* src/rdd/wacore.c
* changed 4-th parameter of hb_rddRequestArea() from HB_BOOL fWait to
HB_ULONG ulMilliSec
[INCOMPATIBLE]
* src/rdd/dbdetach.c
+ accept optionally as 4-th parameter of hb_dbRequest() numeric value
with timeout in seconds. The previous version using xBase++ compatible
parameters (logical value in 4-th parameter) is still working.
; above modifications are based on request and patch sent to harbour-devel
list by Rolf (many thanks), ref:
https://groups.google.com/forum/?hl=pl#!topic/harbour-devel/Pu2b1M5VXjU
2015-11-23 23:24 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
+ reserve space for DBC name in newly created DBF files with VFP DBF
signature, Thanks to Nikos Christophi, Jeff Stone and other who
reported this problem.
+ added RTE when size of DBF header is exceed by "_NullFlags" field
* src/vm/thread.c
! typo in comment
2015-11-16 15:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/thread.c
! fixed typo in hb_threadOnceInit() - thanks to Teo
2015-11-14 13:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
! restored _SET_DEFAULT and _SET_PATH functionality
2015-11-13 14:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
* removed unused after last modification assignment
2015-11-13 10:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
! fixed file handle sharing in POSIX systems when writeonly mode is used
! fixed accessing files in writeonly mode in POSIX systems which use
fcntl() locks for DENY_* flag emulation.
! added for POSIX systems protection against potential race condition in
MT programs and file open and close operations. Now the whole low level
open and close operations are covered by mutex. It means that they are
fully serialized so in case of remote file access (i.e. NFS or SMBFS)
it may reduce the performance in applications which simultaneously open
and closes many different files in different threads but its necessary.
For local file access it should not create noticeable scalability
problems. In my Linux box Harbour can open and close in MT mode more
then 250000 files per second.
% use different mutexes for file open/close and file lock operations to
not reduce the lock performance by potentially slow open() operation
in POSIX systems.
; NOTE: please remember that DENY_* flag emulation in POSIX systems
emulates only shared and exclusive modes so if any of
FO_DENYREAD, FO_DENYWRITE or FO_EXCLUSIVE flag is used then
it effectively works like FO_EXCLUSIVE in POSIX system and
is not mandatory for other processes so it blocks only
other Harbour applications which use Harbour virtual handles
(RDD code, hb_vf*() functions)
* src/rtl/filesys.c
* do not convert exclusive lock to shared one when file is open in
readonly mode on POSIX system using flock() for DENY_* flag emulation.
Now HB_USE_BSDLOCKS is enabled only for Linux and it's documented that
this implementation allow to use shared and exclusive locks regardless of
file open mode.
% do not create file name copy in hb_fsExtOpen() when passed parameters
does not force file name modification
2015-11-05 18:20 UTC+0100 Tamas TEVESZ (ice extreme.hu)
* src/3rd/pcre/Makefile
! Fix bundled PCRE build on SunOS;
tested on Solaris 11u3 x86 with Sun C and gcc
2015-11-03 10:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
* added workaround for compilers which do not have MOUSE_HWHEELED macro
(thanks to Alexey)
* src/rtl/gtwvt/gtwvt.c
* do not use LR_DEFAULTSIZE in WinCE builds (synced with Viktor's branch)
* tests/gtkeys.prg
* casing
2015-11-02 17:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtsln/kbsln.c
* tests/inkey.prg
- removed not longer used HB_INKEY_RAW flag
* tests/inkey.prg
* test HB_INKEY_EXT keycodes when second parameter contains "E" letter
* src/rtl/gtwvt/gtwvt.c
* minor switch order modification
* accept 127 as unicode character value if system also do that
* src/rtl/gtwin/gtwin.c
+ added support for Harbour extended key codes
+ added support for mouse middle button
+ added support for some missing key combinations
! fixed mouse event processing
! fixed ALT + KeyPad NUMs processing - now it's disabled by default
because current GTWIN supports native ALT + KeyPad NUMs processing
provided by MS-Windows console. It works when NUMLOCK is ON. If
someone needs to process it also when NUMLOCK is OFF then he can
enable it by:
hb_gtInfo( HB_GTI_KBDALT, .T. )
! fixed and simplified workaround for bug in MS-Windows 95 and 98
consoles which wrongly decode SHIFT + with CAPSLOCK ON
for standard US keyboard drivers. Now enabling this workaround by:
hb_gtInfo( HB_GTI_KBDSPECIAL, .T. )
should not break input with fixed keyboard drivers.
; please test it with different windows versions and national keyboard
layouts, tests/gtkeys.prg is quite good test program.
2015-10-29 11:52 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* src/rtl/gtwin/gtwin.c
! add some HB_GTI_* setting to default GT handler
(2015-06-08 23:32 UTC+0200 Viktor Szakats)
+ add HB_GTI_WINHANDLE support to GTWIN
(2015-04-24 19:56 UTC+0200 Viktor Szakats)
% variable scopes adjusted
* minor cleanups along the way
(2015-03-30 13:57 UTC+0200 Viktor Szakats)
! move misplaced comment to its proper location
(2015-03-28 15:45 UTC+0100 Viktor Szakats)
* simplify compatibility logic around [P]CONSOLE_SCREEN_BUFFER_INFOEX
it's also an attempt to fix it for some mingw distros
(f.e. on AppVeyor CI)
(2015-03-23 03:32 UTC+0100 Viktor Szakats)
% cleanup a #define spagetti
(2015-03-23 03:27 UTC+0100 Viktor Szakats)
! fixed msvc sanitize warnings
(2014-07-16 17:37 UTC+0200 Viktor Szakats)
2015-10-29 03:12 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* src/rtl/achoice.prg
+ tests/achoice6.prg
! fix AChoice() RTE/visual glitch when certain non-integer
values are passed as top/bottom values.
Simplified and slightly corrected version of
patch/example authored by Alexey Myronenko:
https://github.com/harbour/core/pull/113
2015-10-28 17:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtkeycod.c
! fixed typo in CTRL+[UP|DOWN] mapping
- removed obsolete comment
* src/rtl/gtos2/gtos2.c
+ catch CTRL+BREAK in OpenWatcom builds
2015-10-28 16:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/cputime.c
* disabled unused variables in WinCE builds
2015-10-28 15:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
* removed unused HB_GTI_KBD_* macros
* redefined few other HB_GTI_KBD_* macros to be more HB_KF_* friendly.
[INCOMPATIBLE]
; Warning this modification is not binary compatible so if someone uses
HB_GTI_KBD_SCROLOCK, HB_GTI_KBD_NUMLOCK, HB_GTI_KBD_CAPSLOCK,
HB_GTI_KBD_LSHIFT, HB_GTI_KBD_RSHIFT,
HB_GTI_KBD_LCTRL, HB_GTI_KBD_RCTRL,
HB_GTI_KBD_LALT, HB_GTI_KBD_RALT,
HB_GTI_KBD_LWIN, HB_GTI_KBD_RWIN or
HB_GTI_KBD_MENU
then he should recompile his code with new hbgtinfo.ch header files.
* include/hbgtcore.h
* src/rtl/gtkeycod.c
* src/rtl/gtdos/gtdos.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtstd/gtstd.c
+ added support for Harbour extended keycodes
* src/rtl/gtos2/gtos2.c
+ added support for HB_GTI_KBDSHIFTS
* src/rtl/gtdos/gtdos.c
! fixed CTRL+C and CTRL+BREAK handling in OpenWatcom builds
* src/rtl/inkeyapi.c
! fixed translation for CTRL + @
* tests/gtkeys.prg
+ added raw keyboard test - it disables any additional interactions
* modified Harbour output to show more information about extended
keycodes
2015-10-22 10:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwvt/gtwvt.c
* src/rtl/gtwvt/gtwvt.h
* merged and simplified code for HB_GTI_ICONFILE and HB_GTI_ICONRES
* src/rtl/hbcom.c
* use "COM:" instead of "COM" as serial port name in WinCE
builds - it's suggested by MSDN but if some of you has different
experience then please inform me.
2015-10-21 19:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.hbx
* contrib/hbfoxpro/occurs.prg
+ added FoxPro compatible At() function with 3-rd
parameter:
fox_At( , , ) ->
* contrib/hbfoxpro/hbfoxpro.ch
+ added PP rule for At() with FoxPro like 3 parameters,
please remember that such At() extension is not compatible with
xHarbour one so do not include hbcompat.ch or xhb.ch - they
redefines At() with 3 or more parameters to xHarbour compatible
function: hb_At()
2015-10-20 15:55 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* src/rtl/hbsocket.c
! enable socket type translation for Linux/MIPS, enum order is different
there - fixes TCP/IP socket binding on such platform
2015-10-14 00:24 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* src/rtl/achoice.prg
+ tests/achoice5.prg
! AChoice(): fix visual glitch and/or RTE in certain conditions
Patch and sample by Alexey Myronenko
Ref: https://groups.google.com/d/topic/harbour-devel/G9j6WXFFwW4/discussion
2015-10-13 23:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
* src/common/hbwince.c
* src/rtl/cputime.c
* do not use GetCurrentProcess() in WinCE builds
2015-10-13 21:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
! do not access trailing 0 byte in empty strings passed to hb_MLEval()
(thanks to Abe for information and example illustrating the problem)
* respect in return value also empty line after last EOL
2015-10-13 15:08 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/memoedit.prg
* always returned reformatted string after CTRL+W even if user has not
made any modifications in edited data - Cl*pper compatible behavior.
2015-10-13 13:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiocli.c
* strip connection parameters (server name, port, password,...) from
second parameter of hb_vfRename(), hb_vfLink() and hb_vfSymLink()
functions redirected to HBNETIO if it's the same as in the first
parameter.
Now it's possible to use above functions with path containing connection
parameters in second argument. Please only remember that both parameters
have to point to the same server in above functions. If not then DOS
error 2 is set.
In case of hb_vfCopy() the parameters can point to different servers
so it's possible to copy files between different HBNETIO servers or
even different Harbour File IO redirectors.
2015-10-12 17:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* added support for hb_socketGetIFaces() in DOS wattcp/watt-32 builds
2015-10-12 13:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
* execute hb_MLEval() codeblock for last empty line if passed string
ends with EOL
2015-10-12 12:56 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
! added casting to 2-nd parameter of inet_ntop() as workaround for
wrong declaration inet_ntop() in MSVC header file
2015-10-09 13:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
! fixed typo (unnecessary parenthesis) in previous commit
* enabled getnameinfo() in MSVS 2015 builds
; thanks to Viktor for the information about above items
2015-10-09 11:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* enabled inet_pton(), inet_ntop() and getaddrinfo() in MSVS 2015 builds
2015-10-08 22:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttone.c
! fixed typo in my previous commit - thanks to Ronaldo
2015-10-08 19:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttone.c
! disabled IO port access MSVS 2015 builds
2015-10-08 14:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbzsock.c
! fixed two typos
2015-10-06 13:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/compi18n.c
* reduced variable scope
* small modification to eliminate false GCC-5.x warning
2015-10-06 12:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbbfsock.c
! typo in comment
* src/rtl/mlcfunc.c
* casting
* src/rtl/memoedit.prg
* src/rtl/teditor.prg
* formatting and few modifications to reduce some differences between
core and Viktor's branch
2015-10-02 16:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapigt.h
* src/rtl/inkeyapi.c
+ added new C function:
int hb_inkeyKeyExt( int iKey );
It extracts function/edit key code value HB_KX_* from Harbour extended
key code. If passed keycode is not valid extended keycode which points
to function/edit key then 0 is returned.
* include/harbour.hbx
* src/rtl/inkey.c
+ added new PRG function hb_keyExt() - it's wrapper to hb_inkeyKeyExt()
* include/harbour.hbx
* src/rtl/mlcfunc.c
! restored original Cl*pper behavior in memo line functions,
test shows that inside MemoEdit() Cl*pper internally uses a little
bit different rules to format text then in memo line functions,
It's Cl*pper bug but hard to fix because any differences to Cl*pper
in this area cause that someone reports them as bug. So I decided
to leave original Cl*pper behavior for compatibility and add new
function which can be used in MemoEdit() and related code.
+ added new memo line function:
hb_MLEval( , , [ =79 ],
[ =4 ], [ =.T. ],
[ ], [ @ ], [ @ ] ) ->
it formats texts using rules like in Cl*pper MemoEdit() not Cl*pper
memo lines functions. For each processed line is executed
with 2 parameters: and . It recognizes and accepts
any EOLs just like hb_ATokens( , .T. ) and strips or converts
soft CRs depending on word wrap mode.
* src/rtl/teditor.prg
* Use hb_MLEval() to format text
% minor optimization
* src/rtl/memoedit.prg
* enabled Harbour extended key codes
* small optimization
! fixed ME_BOTTOMRIGHT processing
! fixed initial line size calculation
* src/vm/thread.c
* removed dymmy code
2015-09-30 11:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
! added missing support for non MT builds in last commit
2015-09-30 10:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/vm/hvm.c
+ added internal PRG function to test number of HVM threads and stacks
__vmCountThreads( [ @ ], [ @ ] ) ->
* src/rtl/filesys.c
* contrib/gtqtc/gtqtc1.cpp
* contrib/gtwvg/gtwvgd.c
* contrib/gtwvg/wvgcore.c
* contrib/hbamf/amfdec.c
* contrib/xhb/fparse.c
* contrib/xhb/hbserv.c
* contrib/xhb/hbxml.c
* cleaned ;; usage in C code
2015-09-29 21:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
! delay locking of main HVM thread stack until HVM is initialized,
it fixes issue #107
! protect access to HB_STACK_TLS_PRELOAD by s_fHVMActive in
hb_vmLockForce()
2015-09-25 11:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
! removed unnecessary HB_EXPORT attribute
* contrib/hbwin/oleuuid.c
! added missing HB_EXPORT attrinute for OpenWatcom builds
* contrib/hbcomio/comio.c
* contrib/hbpipeio/pipeio.c
* contrib/hbtcpio/tcpio.c
* src/rtl/hbsockhb.c
! cleaned integer types and casting
2015-09-24 22:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbcom.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* added workaround for bug in some Linux kernels (i.e.
3.13.0-64-generic Ubuntu) in which select() unconditionally
accepts terminal device for reading if c_cc[ VMIN ] = 0
It's very serious problem, i.e. in GTTRM no input is possible
in such kernels without this workaround.
* src/rtl/dirscan.prg
* modified hb_DirScan() and hb_DirRemoveAll() to work with Harbour
File IO API (hb_vf*() functions)
+ added new PRG function:
hb_FileDelete( [, ] ) ->
this function removes files which match given
(it may contain path) and returns .T. if at least one file
was deleted. Optional parameter can be used to include
system ("S") and hidden ("H") files. If contains "R"
letter then before deleting READONLY attribute is removed from
files (it's necessary to remove files with READONLY attribute
in systems like DOS, MS-Windows or OS2). This function uses
Harbour File IO API (hb_vf*() functions)
* remove READONLY attribute from files in hb_DirRemoveAll()
* include/harbour.hbx
+ added hb_DirRemoveAll() and hb_FileDelete()
* contrib/hbct/files.c
! do not allow to remove empty directories by FileDelete() function
even if user explicitly sets directory attribute - CT3 compatible fix.
! remove READONLY attribute before deleting READONLY files if 2-nd
parameter of FileDelete() contains READONLY bit
* src/rtl/filesys.c
* formatting
* ChangeLog.txt
! typo
2015-09-24 14:28 UTC+0200 Tamas TEVESZ (ice extreme.hu)
* utils/hbmk2/hbmk2.prg
+ Partially merge 8f16b6731 from vszakats/harbour-core:
"refined the way pkg-config queries the package version. Now
it does it in a separate call to make some pkg-config versions
happy where version query option cannot be mixed with --cflags
and similar options (f.e. pkg-config 0.28 in current homebrew)."
2015-09-18 13:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbffind.c
+ added support for link attribute (HB_FA_LINK -> "L") passed to
Directory() and other functions using hb_fsFindFirst()/hb_fsFindNext()
When this attribute is passed then softlinks are presented "as is"
without following target.
* src/rtl/dirscan.prg
+ added new PRG function hb_DirRemoveAll( ) ->
BE CAREFUL! This function removes recursively whole directories
with it's body so hb_DirRemoveAll( hb_ps() ) can remove all
files and directories from your disk.
2015-09-17 20:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
! added protection against writing more then 4096 bytes to unblocked
pipe in MS-Windows builds of hb_fsProcessRun()
! close write side of child stdin handle if all data is sent in OS2
builds of hb_fsProcessRun()
2015-09-17 16:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
* In OS2 builds use fGentle parameter of hb_fsProcessClose() to
control if kill signal should be send only to child process or
also to its all descendant processes.
2015-09-17 15:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* pacified warnings in GCC OS2 builds
2015-09-17 15:52 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/fscopy.c
* pacified BCC warning
* src/rtl/hbproces.c
* added HB_PROCESS_USEFILES macro which enable child process
standard IO handles redirection to files instead of pipes
in hb_fsProcessRun() function. It's enabled by default in
DOS and WinCE builds
* enable HB_PROCESS_USEFILES for tests in OS2 builds
2015-09-17 12:23 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapicls.h
* src/vm/classes.c
* minor modification in variable name
* src/rtl/filebuf.c
* src/rtl/fscopy.c
* src/rtl/fslink.c
* src/rtl/vfile.c
* cleaned FError() setting. It should not be changed by C file IO
functions because they can be activated from RDD code so accessing
work area field could change the FError() result, i.e. this code
does not work when FError() is changed by C level IO operations:
AnyFunc( FSeek( hFile, 0, FS_END ), field->MEMOVAL, FError() )
Even simple field access may cause file IO operations in RDD code
when relations are set because records in child area are repositioned
only when necessary (when user tries to make some operations on this
area). In the past RDD code was full of constructions like:
uiSaveError = hb_fsFError();
// make some IO operations
hb_fsSetFerror( uiSaveError );
to eliminate such overhead I separated PRG level FError() from
C level IOError(). Please keep it.
* ChangeLog.txt
! few typos
2015-09-17 10:58 UTC+0200 Tamas TEVESZ (ice extreme.hu)
* contrib/gtqtc/gtqtc.hbp
+ Qt5 include path on FreeBSD
2015-09-16 10:20 UTC+0200 Tamas TEVESZ (ice extreme.hu)
* config/global.mk
+ Allow autodetection of Clang as system compiler on FreeBSD 10+
; Untested on, but should not affect, other BSDs or FreeBSD < 10.
2015-09-15 21:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
* minor formatting
2015-09-15 21:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
! fixed test for broken pipe when only one pipe to child process is
active in OS2 builds
2015-09-15 14:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbvmpub.h
* src/vm/hvm.c
+ added support for hb_vmAtInit(), hb_vmAtExit() and hb_vmAtQuit()
functions for dynamically loaded libraries
This modification should also fix issue #33
2015-09-14 19:30 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
* use pipes instead of temporary files in OS2 builds of hb_fsProcessRun()
; please test in real OS2 env
2015-09-14 17:36 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttrm/gttrm.c
- removed unused macros and definitions
* formatting and minor cleanup
* src/rtl/gtcrs/gtcrs.h
* src/rtl/gtcrs/gtcrs.c
+ added support for extended key codes, GTCRS does not support
unicode so it's not fully functional just like in GTTRM
2015-09-14 14:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* set HB_FF_BINARY flag in numeric and date fields stored in binary
representation - VFP also does it.
2015-09-14 12:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* clear ERROR_BROKEN_PIPE (109) in MS-Windows and OS2 builds reported
when pear closes the write end of the pipe.
Now hb_PRead() returns -1 with FError() = 0 in such case in all builds.
2015-09-11 12:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
+ added code for anonymous pipes emulation by named pipes,
now nonblocking access to pipe streams in OS2 builds should work
* src/rtl/hbproces.c
* pacified warnings in OS2 builds
2015-09-10 09:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! use CRTL eof() function only in non DJGPP DOS builds
2015-09-09 23:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
! removed obsolete memory.h
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* rediffed
* include/hbdate.h
* enabled reentrant safe version of localtime() and gmtime() in all
OpenWatcom builds
2015-09-09 16:51 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/estack.c
! protect access to HB_STACK_TLS_PRELOAD by hb_stack_ready() macro,
it's necessary for MT builds which do not use direct TLS access
but need TLS key initialization, i.e. OS2
* src/vm/hvm.c
! protect access to HB_STACK_TLS_PRELOAD by s_fHVMActive
2015-09-09 12:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbfsapi.c
* pacified OS2 warnings reported by David
2015-09-09 01:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* implemented hb_fsSetDevMode() only for DOS builds,
all other platforms always use O_BINARY mode
* utils/hbmk2/hbmk2.prg
! fixed EOL handling in stdout and stderr output
2015-09-08 20:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/nortl/nortl.c
+ added hb_fsSetError()
* include/hbapifs.h
* src/common/hbfsapi.c
+ added new C function for OS2 builds: hb_fsOS2QueryPathInfo()
Unlike DosQueryPathInfo() it uses dir entries so it does not need
to open the file what can create file sharing violation problem.
+ added new C function for OS2 builds: hb_isWSeB()
It returns true if OS2 version supports long file API
(IBM OS/2 Warp Server for e-Business)
+ added new C functions for OS2 builds:
hb_fsOS2DosOpenL(), hb_fsOS2DosSetFileLocksL(),
hb_fsOS2DosSetFilePtrL(), hb_fsOS2DosSetFileSizeL()
These are dynamically initialized wrappers to OS2 long file API
functions if such functions exists in given OS2 version.
* src/common/hbfsapi.c
* use hb_fsQueryPathInfo() in OS2 builds of hb_fsNameExists(),
hb_fsFileExists() and hb_fsDirExists()
* src/common/hbffind.c
+ added support for long files (longer then 4GB) in OS2 builds.
It also detects OS2 version to check if long file API is supported.
! fixed file error setting in OS2 builds
* src/rtl/filesys.c
* use hb_fsQueryPathInfo() in OS2 builds of hb_fsGetFileTime() and
hb_fsGetAttr()
* use hb_fsOS2*() functions for long files
* src/rtl/fssize.c
* use hb_fsQueryPathInfo() in OS2 builds of hb_fsFSize()
; please make real life tests in OS2
2015-09-07 16:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtos2/gtos2.c
* added missing modification in previous commit
2015-09-07 16:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtos2/gtos2.c
+ added support for HB_GTI_CODEPAGE
! removed code which sets CP437 at application start
Now the default codepage is the same set by system.
If someone wants to use CP437 regardless of default OS2 settings
then he should add to his code:
hb_gtInfo( HB_GTI_CODEPAGE, 437 )
2015-09-06 23:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
* use native OS2 system functions in hb_fsProcessOpen(),
hb_fsProcessValue(), hb_fsProcessClose() - please test it
; TODO: change hb_fsProcessRun() to use real assynchrous execution in
OS2 builds
2015-09-06 15:44 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/disksphb.c
* src/rtl/filesys.c
* use native system functions for disk and file IO operations in OS2
builds.
+ added support for long files (> 2GB) in OS2 builds
! fixed file IO error setting in OS2 builds
; For above modifications I had to change nearly all file IO functions
in OS2 build. I would like to OS2 users to make tests.
In next step I'll update hb_process*() functions.
2015-09-03 14:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* win-make.exe
* updated GNU make for MS-Windows to version 4.1
(the same as in Viktor's branch)
2015-09-03 14:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/sdf1.c
! use hb_fileResult() to process hb_fileRead() results - it fixes
problem reported by Viktor.
2015-09-02 22:53 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
! typos in prev ChgLog entry
* include/hbapifs.h
- empty line
2015-09-02 16:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
* changed 32-bit reference counters in Win64 builds to 64-bit ones.
It resolves problems with data alignment in memory allocated by
hb_xgrab().
* src/vm/asort.c
* removed hack for MinGW64 build from new array sort code,
after switching to 64bit reference counters it should not
be longer necessary because allocated memory has 64bit alignment
2015-09-02 15:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
* src/rtl/filebuf.c
* added new C function hb_fileLoadData() - it can be used to load data
from already opened regular files and streams
* include/harbour.hbx
* src/rtl/vfile.c
+ added new PRG function:
hb_vfLoad( , [ ] ) -> | NIL
* src/vm/runner.c
* use hb_fileLoadData()
* contrib/hbwin/win_bmp.c
* use hb_fileLoad()
2015-09-01 23:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* package/harbour.spec
+ added HBCOMIO, HBPIPEIO, HBTCPIO to RPM package
2015-09-01 22:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbplist.txt
+ added hbpipeio to list of contrib libraries
2015-09-01 17:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
* src/rtl/filebufd.c
* moved HB_FILE_ERR_UNSUPPORTED macro to header file
* include/hbapifs.h
* src/rtl/filebuf.c
* added new C function hb_fileLoad() - it can be used to load data
from regular files and streams
* src/rtl/memofile.c
* modified [hb_]Memo{Read|Writ}() to work with streams, i.e. now
this code works:
REQUEST HB_PIPEIO
cDir := hb_memoRead( "|ls -la" )
? upper( cDir )
or:
cData := hb_memoRead( "|xz -c data.gz" )
? hb_memoWrit( "data2.txt", cData )
? hb_memoWrit( "|sh -c 'xz -9 -e > data2.xz'", cData )
* src/rtl/fscopy.c
* removed not used in current code unix header files
2015-09-01 15:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
! fixed typo in ChangeLog entry. I used hb_socketNew() instead of
hb_socketSetFilter()
* include/hbapifs.h
* src/rtl/filebuf.c
+ added helper C function:
HB_SIZE hb_fileResult( HB_SIZE nSize );
It converts ( HB_SIZE ) FS_ERROR to 0 so it can be used to wrap
hb_fileRead()/hb_fileWrite() to force previous results.
* src/rdd/dbffpt/dbffpt1.c
* reduced variable scope
* src/rtl/copyfile.c
! fixed typo in last commit - thanks to Viktor.
2015-08-31 23:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
! removed unnecessary casting (c&p typo)
2015-08-31 23:43 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/mzip.c
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/netiosrv.c
* contrib/hbwin/win_prn2.c
* contrib/xhb/xhbcopyf.c
* src/rdd/dbffpt/dbffpt1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/delim1.c
* src/rdd/hbsix/sxcompr.c
* src/rdd/sdf1.c
* src/rtl/copyfile.c
* src/rtl/filesys.c
* src/rtl/fscopy.c
* src/rtl/hbmd5.c
* src/rtl/memofile.c
* src/rtl/philes.c
* src/rtl/vfile.c
* updated for possible -1 result returned by hb_fileRead()/hb_fileWrite()
2015-08-31 16:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
+ added hb_socketAutoShutdown()
* src/rtl/vfile.c
* updated for possible -1 result returned by hb_fileRead()/hb_fileWrite()
2015-08-31 13:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsockhb.c
+ added new PRG function:
hb_socketAutoShutdown( hSocket, [ lNewSetting ] ) --> lPrevSetting
it allows to enable/disable automatic shutdown when connected socket
is closed.
* contrib/hbpipeio/pipeio.c
* removed trailing space
* contrib/hbpipeio/tests/test.prg
* cleaned the code and messages
2015-08-31 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2015-08-27 17:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbpipeio/hbpipeio.hbc
+ contrib/hbpipeio/hbpipeio.hbp
+ contrib/hbpipeio/hbpipeio.hbx
+ contrib/hbpipeio/pipeio.c
+ contrib/hbpipeio/tests/hbmk.hbm
+ contrib/hbpipeio/tests/test.prg
+ added PIPEIO new Harbour FILE IO redirector
As file name prefix "PIPE:" and "|" can be used.
This redirector executes command passed as file name with its
stdin and stdout handles redirected to Harbour FILE handle, i.e.:
REQUEST HB_PIPEIO
pFile := hb_vfOpen( "PIPE:ls -la", 0 )
? upper( hb_vfReadLen( pFile, 10000 ) )
hb_vfClose( pFile )
PIPEIO has also two new PRG functions:
hb_vfFromPipes( [], [], [], ;
[] -> | NIL
hb_vfOpenProcess( , [=FO_READ], ;
[], [] ) -> | NIL
The first one can be used to create Harbour file redirector for
process created by hb_processOpen(), i.e.:
hProcess := hb_processOpen( cCommand, @hStdIn, @hStdOut )
pFile := hb_vfFromPipes( hStdOut, hStdIn, hProcess, 5000 )
The second one can be used directly:
pFile := hb_vfOpenProcess( cCommand, FO_READWRITE, 5000 )
Usually process which reads from its stdin works until its input
stream is closed by other process. If user wants to close input
stream for command redirected to Harbour PIPE FILE IO then he can
execute:
hb_vfConfig( pFile, HB_VF_SHUTDOWN, FO_WRITE )
Look at the test code for real life example. It opens 'gzip' command
in FO_READWRITE mode, sends data to gzip, reads gzip output and finally
decompress it using hb_ZUncompress() to check if result is equal to
initial data.
2015-08-27 16:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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, ) ->
can be used to change default timeout in TCP and COM Harbour File IO
handles.
2015-08-26 16:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbzsock.c
* pacified warning
2015-08-26 15:51 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
* src/rtl/hbsockhb.c
+ added socket filters to standard socket API.
At C level hb_sockex*() function with PHB_SOCKEX handler can be
used to operate on socket filters. At PRG level standard hb_socket*()
functions can be used.
The following things has been changed in PRG hb_socket*() functions:
hb_socketErorrString() can accept as 1-st or 2-nd parameter
and redirect call to socket filter errorStr() method.
hb_socketClose() executes automatically shutdown() for connected
sockets - it is important in windows only where without explicit
call to shutdown() before close transmitted data can be lost.
hb_socketSend() and hb_socketRecv() can be redirected to filter
streams if filter set such redirection. If filter does not redirect
them then they operate on raw sockets. If hb_socketSend() is
redirected then sent data is flushed automatically.
The following new PRG functions has been added:
Add/replace socket filter:
hb_socketSetFilter( , [], [] )
-> | NIL
is filter name, It's possible to set many filters
in single hb_socketSetFilter() call separating filter names
with "|" character, i.e.:
pSock := hb_socketSetFilter( pSock, "ZSOCK|BFSOCK", hParams )
is hash array with initialization parameters used by
given socket filter. The core implementation recognize the
following settings:
"readahead" - numeric value with size of read ahead buffer
"flush" - numeric value with auto flush parameter (for more
information look at hb_socketAutoFlush() below)
"redir" - logical value which can be use to enable/disable
hb_socketSend() and hb_socketRecv() redirection
to filter stream.
Return filter name used by socket:
hb_socketGetFilter( ) ->
Read from socket stream:
hb_socketRead( , @, [ = Len( cData )],
[ = FOREVER] ) ->
this function is similar to hb_socketRecv() but is always
redirected to socket stream filters.
Write to socket stream:
hb_socketWrite( , , [ = Len( cData )],
[ = FOREVER] ) ->
this function is similar to hb_socketSend() but it is always
redirected to socket stream filters. Written data is not flushed
by default and it should be flushed explicitly by hb_socketFlush().
Automatic flushing can be enabled by hb_socketAutoFlush() function.
Flush data written to socket:
hb_socketFlush( , [ = FOREVER], [] )
->
parameter is logical value which can be used to force
special synchronization method in some filters. Usually users
do not have to use it in normal code.
Enable/disable automatic flushing of written data.
hb_socketAutoFlush( , [ ] ) ->
is timeout for automatic flush operation on written
data in milliseconds. = -1 means wait forever and
= 0 disables auto flush.
automatic flushing can help in adopting existing code anyhow it
may strongly reduce the performance in some filters, i.e.
compression filters like ZSOCK have to add special data to the
stream after each flush operation so it's suggested to call
flush explicitly when we want to force delivering written data
to the peer.
* include/hbznet.h
* src/rtl/hbznet.c
+ added ZNET socket filter - compressed and encrypted streams are
compatible with hb_znet*() streams. The old hb_znet*() interface
is obsolete for pure socket communication and if not used as
hb_inet*() filter then should be replaced by hb_sockex*() in
user programs.
ZNET socket filter can be created by new PRG functions:
hb_socketNewZNet( , [], [], ;
[] ) -> | NIL
or by standard socket API with "ZNET" as filter name.
ZNET filter recognize the following settings in initialization
hash array:
"key" or "pass" - string with encryption password
"zlib" - numeric compression level (HB_ZLIB_COMPRESSION_*)
"zs" - numeric ZLIB compression strategy (HB_ZLIB_STRATEGY_*)
ZNET filter always disables any other filters and operates on raw
socket.
Please remember that it's optional module. If programmer does not
use hb_socketNewZNet() explicitly and prefers using hb_socketSetFilter()
then he should force linking this module by REQUEST hb_socketNewZNet
+ added fSync parameter to hb_znetFlush()
[INCOMPATIBLE]
* src/rtl/hbinet.c
* call flush filter function before socket is closed
* src/rtl/Makefile
+ src/rtl/hbzsock.c
+ added ZSOCK socket filter - ZLIB and GZIP compression for socket
streams.
ZSOCK socket filter can be created by new PRG functions:
hb_socketNewZSock( , [] ) -> | NIL
or by standard socket API with "ZSOCK" as filter name.
Programmers using hb_socketSetFilter() can force linking this module by
REQUEST hb_socketNewZSock
ZSOCK filter can be used with other filters.
ZSOCK filter recognize the following settings in initialization
hash array:
"zlib" - numeric compression level (HB_ZLIB_COMPRESSION_*)
"zs" - numeric ZLIB compression strategy (HB_ZLIB_STRATEGY_*)
"zin" - logical value which allow to enable/disable ZLIB
decompression on input stream (default)
"gzin" - logical value which allow to enable/disable GZIP
decompression on input stream - it's possible to
enable both ZLIB and GZIP decompression together
so both streams can be decompress
"zout" - logical value which allow to enable/disable ZLIB
compression on output stream (default)
"gzout" - logical value which allow to enable/disable GZIP
compression on output stream - if both "zout" and
"gzout" are enabled GZIP compression is used.
* src/rtl/Makefile
+ src/rtl/hbbfsock.c
+ added BFSOCK socket filter - BlowFish input and output stream
encryption in CTR mode.
BFSOCK socket filter can be created by new PRG functions:
hb_socketNewBFSock( , [] ) -> | NIL
or by standard socket API with "BFSOCK" as filter name.
Programmers using hb_socketSetFilter() can force linking this module by
REQUEST hb_socketNewBFSock
BFSOCK filter can be used with other filters, i.e. with ZSOCK.
Please only remember that good encryption algorithms have to
generate data which cannot be compressed so using "BFSOCK|ZSOCK"
only wastes resources and correct filter order is "ZSOCK|BFSOCK".
BFSOCK filter recognize the following settings in initialization
hash array:
"key" or "pass" - string with encryption password
"iv" - string with initialization vector for CTR mode
* contrib/hbssl/hbssl.ch
* contrib/hbssl/hbssl.h
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/ssl.c
* contrib/hbssl/ssl_inet.c
+ contrib/hbssl/ssl_sock.c
+ added SSL socket filter
SSL socket filter can be created by new PRG functions:
hb_socketNewSSL_connect( , [, ] )
-> | NIL
hb_socketNewSSL_accept( , [, ] )
-> | NIL
or by standard socket API with "SSL" as filter name.
Programmers using hb_socketSetFilter() can force linking this module by
REQUEST hb_socketNewSSL_connect
or
REQUEST hb_socketNewSSL_accept
SSL filter always disables any other filters and operates on raw
socket.
SSL filter recognize the following settings in initialization hash
array:
"ctx" or "key" - pointer SSL item
"timeout" - timeout (numeric)
"client" - logical value indicating client mode (SSL_connect())
"server" - logical value indicating server mode (SSL_accept())
* contrib/hbssl/tests/inetssl.prg
! cleaned typo in local function name
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/netiosrv.c
* use new Harbour extended socket API (hb_sockex*()) instead of
raw sockets and hb_znet*()
* contrib/hbtcpio/tcpio.c
* use new Harbour extended socket API (hb_sockex*()) instead of
raw sockets
+ implemented hb_fileFlush()
2015-08-17 15:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbznet.h
+ include hbsocket.h
* src/rtl/hbznet.c
* set socket error HB_SOCKET_ERR_OTHER if problems with
ZLIB decompression appear
* updated headers
2015-08-17 15:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
* src/rtl/hbsocket.c
* src/rtl/hbsockhb.c
+ added new C functions:
hb_socketAutoInit( void );
hb_socketSetError( int iError );
* contrib/hbtcpio/tcpio.c
! initialize socket subsystem - it fixes issue #105
2015-08-07 16:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
* removed dummy code left by mistake
2015-08-07 15:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
* contrib/hbtcpio/hbtcpio.hbx
+ added new PRG function
hb_vfFromSocket( ) ->
It converts socket created by socket open into TCPIP virtual file
which works just like files created by hb_vfOpen( "tcp:...", ... )
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function
HB_SIZE hb_fsPipeWrite( HB_FHANDLE hPipe, const void * buffer,
HB_SIZE nSize, HB_MAXINT nTimeOut );
+ implemented hb_fsPipeUnblock() in OS2 builds
+ set IO error in hb_fsPipeCreate(), hb_fsIsPipeOrSock() and
hb_fsPipeUnblock()
* return ( HB_SIZE ) -1 from hb_fsPipeRead() if end of stream is
reached or read error appears on non empty buffer. This modification
also change the behavior of PRG hb_PRead() function so now result -1
can be used to detect end of stream.
* src/rtl/philes.c
* include/harbour.hbx
+ added new PRG function:
hb_PWrite( , , [], [] )
->
% removed unnecessary assignment
* include/hbapiitm.h
+ added HVM internal macro hb_itemRawSwap()
* src/vm/asort.c
% use hb_itemRawSwap()
* in old code use comparison which prefers < and > operators
instead of <= and >=
2015-08-01 13:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/asort.c
* restored original loop and added different workaround which for
the problem in 64 bit MinGW we exploited. It's dummy function call
inside a loop so probably link time optimization (LTO is enabled
by -O4 in the newest GCC versions) ignore it and the problem will
reappear. Anyhow it only temporary solution which should give time
to create self contain example and report the problem to MinGW
authors - it's highly possible that also other code exploited this
problem so be careful with MinGW64.
% fixed index range checking to eliminate unnecessary index verification
2015-08-01 01:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/asort.c
* added workaround for bug in 64 bit MinGW builds
2015-07-31 17:12 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/asort.c
! fixed missing nStart checking during array items reordering
* utils/hbtest/rt_array.prg
* updated Harbour specific results - I thought that someone
invested time to exactly replicate CA-Cl*pper ASort() sorting
but in fact Harbour specific resutls where hardcoded inside
HBTEST so previous code was not Cl*pper compatible in the
same way as current one.
2015-07-31 16:42 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
* src/rtl/mlcfunc.c
* pacified new GCC C++ warnings
* src/rtl/hbsocket.c
* do not execute select() if HVM exception was generated when
socket handlers are extracted but return an error immediately
2015-07-31 16:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/asort.c
% added new code for ASort()
Warning: new sorting algorithm is stable (does not change the
order of equal items). It means is not strictly Cl*pper
compatible and it can be seen some dummy ASort() tests
in HBTEST results.
2015-07-31 14:04 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* include/hbapifs.h
* src/rtl/filebuf.c
* src/rtl/vfile.c
+ add C-level hb_fileSizeGet() function
* update HB_VFSIZE() to use hb_fileSizeGet() when passed a filename
It means now HB_VFSIZE() works for non-virtual filenames
just like HB_FSIZE() did.
2015-07-28 01:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/padx.c
! fixed typo in hb_UPad[LRC]() functions - thanks to Grigory Filatov
2015-07-27 18:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/teditor.prg
! fixed hb_ULen() wrongly used instead of Len() for arrays
% use byte oriented functions (hb_B*()) instead of character
ones (hb_U*()) to update color strings
2015-07-27 16:36 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/chruni.c
* added new functions hb_BStuff() and hb_UStuff()
* src/rtl/Makefile
- src/rtl/padc.c
- src/rtl/padl.c
- src/rtl/padr.c
+ src/rtl/padx.c
* added new functions hb_BPadL(), hb_BPadR(), hb_BPadC(),
hb_UPadL(), hb_UPadR() and hb_UPadC()
* include/harbour.hbx
* updated
* src/rtl/memoedit.prg
* src/rtl/teditor.prg
* use hb_U*() functions for string manipulation - now it works
correctly with mulitbyte encodings even if HVM CP does enabled
character indexing, i.e. "UTF8"
* src/rtl/vfile.c
* pacified BCC warnin
* src/rtl/filesys.c
* src/rtl/fssize.c
* use GetFileAttributesEx() if available in given windows version
to get file size and time
2015-07-24 18:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/vfile.c
! fixed typo in my last commit (Thanks to Viktor for verification)
2015-07-24 10:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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 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( | [, ] ) ->
The 2-nd parameter is significant only when
the 1-st one 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)
2015-07-20 17:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttrm/gttrm.c
+ added support for aixterm colors escape sequences.
It can be enabled by //GTTRM:EXCLR=4
2015-07-16 17:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttrm/gttrm.c
* gives the highest priority to terminal type specified by
in //gttrm: switch
+ added support for extended XTERM colors.
It can be enabled by EXCLR GTTRM parameter.
So far GTTRM used only standard 8 ANSI colors combined with BOLD
and BLINK attributes to highlight text and/or background.
Such functionality is supported by nearly all color terminals
so is well portable but in some cases BOLD and BLINK attributes
where interpreted differently.
Now for XTERM compatible terminals GTTRM can use also other
methods of color settings. They can be enabled by //gttrm:exclr
application command line switch, i.e.:
//GTTRM:EXCLR=0 - use 8 ANSI colors with BLINK and BOLD
attributes (current default behavior)
//GTTRM:EXCLR=1 - use XTERM 16 extended colors
//GTTRM:EXCLR=2 - use XTERM 256 extended colors
//GTTRM:EXCLR=3 - use XTERM RGB colors
(//GTTRM:EXCLR without number is the same as //GTTRM:EXCLR=1)
If terminal supports XTERM extended color escape sequences then
it's possible to enable 16 colors even if BLINK and BOLD does
not do that and if terminal support XTERM RGB color escape
sequences then also colors set by HB_GTI_PALETTE will be shown
(so far HB_GTI_PALETTE in GTTRM was working only for Linux and
PuTTY which support: ESC ] P escape sequence).
Warning: I added above modes to test different terminals.
It's possible that I'll change it after tests.
2015-07-14 17:51 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed SetMode() when HB_GTI_RESIZABLE is set to .F.
2015-07-03 11:22 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* include/harbour.hbx
* src/rtl/libnamec.c
+ rename HB_LIBPOSTFIX() to HB_LIBSUFFIX()
old name is still available, but deprecated.
2015-06-26 14:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/cdpapihb.c
! typo in parameter number
2015-06-26 14:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/rtl/cdpapihb.c
+ added new PRG function:
hb_cdpIsCharIdx( [ ] [, ] ) ->
It returns .T. when given codepage uses custom character indexes
instead of byte indexes.
If is not specified then current HVM codepage is used.
Optional logical parameter allows to enable/disable
custom character indexes in codepages which have such functionality,
i.e. UTF8, BIG5, CP950.
* src/rtl/rtlshort.c
* removed __QUITCANCEL() - this function does not exist in Cl*pper.
2015-06-25 16:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/pp/ppcore.c
! fixed compilation of initial files passed without path
(broken by mistake in recent modifications)
2015-06-25 13:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/pp/ppcore.c
! restored previous algorithm for scanning #included files when included
file is given without path
Now the following(Cl*pper compatible) file search algorithm is used
for files which are not marked as system headers (system headers are
enclosed in <>):
1) if file name contains absolute path then open the file from
the given location. If path starts with drive letter then
is always used as absolute path regardless of used path separator
after drive delimiter: ":"
2) if file name contains relative path then open then:
a) try to access included file starting from current directory
b) try to access included file starting from the path taken from
the first compiled file in list of included files
c) check INCLUDE paths (paths specified by -I compile switch and
taken from INCLUDE envvar)
3) if file name does not contain any path then open then:
a) try to access included file starting from the path taken from
the first compiled file in list of included files (if it does
not have any path then starting from current directory)
b) check INCLUDE paths (paths specified by -I compile switch and
taken from INCLUDE envvar)
For files marked as system headers in #include directive (enclosed in <>)
the file name is always used as relative path and Harbour scans only
INCLUDE paths (-I and INCLUDE envvar). It's Harbour extension, Cl*pper
does not support system headers.
; Maybe we should think about adding yet another step between (b) and (c)
in case 2 above and between (a) and (b) in case 3:
- try to access included file starting from the path taken from
the file with #include directive
It should help to create nested projects using relative paths. Maybe
it should even have the highest priority. It could be important only
in case of file name conflicts.
2015-06-24 21:09 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/mzip.c
* src/rtl/filesys.c
! initialize tm_isdst member of tm structure with -1 to force correct
local time to UTC conversion in mktime()
2015-06-24 20:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/pp/ppcore.c
! fixed directory include precedence in #included files which
are not marked as system headers (system headers are enclosed in <>)
Now the following order is used:
1) try to access included file as is starting from current directory
2) if included file has relative path then check if the first
compiled file has path and if yes try to access file using this
path as start point
3) check INCLUDE paths (envvar and -I parameter)
Previous version used: 2 for nested files or 1 for first file or when
first file was given without path then 3.
Now we are Cl*pper compatible but such version strongly depends on
current directory which has the highest priority. Personally I do no
like such behavior because it may give different results when current
directory is changed.
2015-06-24 13:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
! fix header search algorithm to handle headers specified
with _absolute paths_.
This fixed the problem reported by Sergy, here:
https://groups.google.com/d/msg/harbour-users/EYT9VQ9M7jk/SPtHIxpUB1oJ
Using absolute path to refer to a headers inside source
should be avoided and not necessary given properly setup
header paths.
; merged Viktor's patch: 2015-06-23 17:50 UTC+0200 Viktor Szakats
2015-06-24 00:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/classes.c
! fixed __objGetIVars() to correctly serialize objects without any own
and inherited instance variables
* contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
! include string.h
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* rediffed
2015-06-17 12:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! fixed FXO_TRUNCATE flag used without FXO_SHARELOCK in POSIX systems
* src/rtl/net.c
! typo in variable name
* src/vm/task.c
! variable scope
* src/compiler/compi18n.c
* minor variable type update
* ChangeLog.txt
! formatting
2015-06-02 13:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/client.prg
* eliminated hb_UserName() from initial random seed
* contrib/hbwin/win_prn2.c
! fixed memory leak and potentially wrong handle usage
fix borrowed from Viktor's branch:
2015-06-02 12:39-57 UTC+0200 Viktor Szakats
* src/rdd/dbf1.c
* variable localization
2015-05-27 13:56 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/Makefile
* src/rtl/net.c
+ src/rtl/netusr.c
* moved hb_UserName() to separate file. It uses internally getpwuid()
in *nix builds and access to this function adds additional library
dependency which may block static builds in some cases.
TODO: eliminate hb_UserName() from things like initial random seed
to not create unnecessary dependency.
* contrib/gtqtc/gtqtc1.cpp
+ enable software input panel (virtual keyboard) in iOS builds
2015-05-19 15:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbprintf.c
* removed modfl() protection with old HB_OS_IPHONE macro.
If someone will need it for some old iOS versions then please read
it protected by HB_OS_IOS and __IPHONE_OS_VERSION_MIN_REQUIRED
macros or inform me about the exact iOS version which do not support
modfl() and I'll add it.
* include/hbatomic.h
* disable GCC atomic macros for GCC <= 4.5 in OS2 builds.
They can be manually enabled by users using:
set HB_USER_CFLAGS=-DHB_USE_GCCATOMIC
2015-05-18 23:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsetup.h
* set HB_OS_IOS when __IPHONE_OS_VERSION_MIN_REQUIRED is defined
* include/hbsetup.h
* src/common/hbver.c
* detect 64bit ARM CPUs
* contrib/hbct/envparam.c
* contrib/hbnf/getenvrn.c
! disabled ENVPARAM() and FT_GETE() in iOS builds
+ added support for FT_GETE() in OS2 builds
2015-05-13 16:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/ctwin.c
! added protection against GPF in hb_ctwGetPosWindow() called before
any window is open. It's correct version of this fix.
* contrib/hbmemio/memio.c
* contrib/xhb/xhbfunc.c
! fixed size of filename buffer - it should be exactly HB_PATH_MAX
2015-05-07 13:27 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/itemseri.c
! fixed stupid typo which could cause buffer overrun during
serialization of hash items with default value.
Tanks to Abe for reporting the problem.
2015-05-05 20:06 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/disksphb.c
* added default path setting in hb_fsDiskSpace()
* src/rtl/vfile.c
* removed recent modification - it's not longer necessary
2015-05-05 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/vfile.c
! do not pass NULL pointer to hb_fileDirSpace()
2015-05-05 19:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
! fixed GPF when NULL filename is passed to Accept() method
* include/hbclass.ch
* indenting
2015-05-04 12:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmemio/memio.c
! fixed GPF in hb_VFDirectory( "mem:..." ) - many thanks to Rolf for
locating the problem and fix.
2015-04-27 17:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/workarea.c
! fixed typo in RDDI_AUTOORDER type - it should be numeric
just like in _SET_AUTORDER. Many thanks to Rolf for locating
the problem
2015-04-09 00:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
* contrib/hbtcpio/tcpio.c
* call hb_socketShutdown() before hb_socketClose() to force output
buffer flush in systems like MS-Windows.
2015-04-01 14:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
! fixed typo in my previous commit for AltD() function detection
Thanks to Franček Prijatelj for reporting the problem and Abe
for self contain example
* src/rdd/dbfcdx/dbfcdx1.c
* reverted byte order in Harbour CDX signature - by mistake I used
little endian. When existsing index is open then reverted signatures
are accepted for backward compatiblity though they will be removed
in the future.
* src/rdd/workarea.c
* move results of EVALBLOCK() RDD method from Harbour stack return item
to workarea valResult item instead of copping it.
; Warning: This modification may exploit problems in code which
wrongly looks for result of EVALBLOCK() RDD method in
HVM stack return item instead of workarea valResult item.
2015-03-27 16:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
% small optimizations
* src/rtl/gtwvt/gtwvt.c
! fixed extended keycodes generated for ASCII characters
* src/rtl/gtwin/gtwin.c
% removed meaningless code
* src/rtl/inkeyapi.c
* added translation for extended keycodes to ASCII characters
in hb_keyChar()
2015-03-24 14:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* use inet_pton() or inet_aton() if available instead of inet_addr()
2015-03-24 13:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/vm/cmdarg.c
+ added new PRG function
hb_ACmdLine() ->
borrowed from Viktor's branch (2015-03-12 03:02 UTC+0100 Viktor Szakats)
It returns array with all command line parameters. Unlike
hb_AParams( __dbgProcLevel() - 1 )
hb_ACmdLine() returns all parameters also hidden ones just like
hb_CmdLine() function and hb_argv()/hb_argc()
Please also remember that hb_AParams() returns current value of
parameters which could be changed bu user code so they can be different
then original parameters passed to given function.
* src/rtl/gtchrmap.c
* casting
* include/std.ch
* synced casing with Viktor's branch
2015-03-23 21:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsix.ch
* include/std.ch
* formatting
2015-03-23 16:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/std.ch
+ added VIA and CODEPAGE parameters to SORT TO and TOTAL TO commands
* formatting
* include/hbsix.ch
* synced SIX3 compatible SORT TO command with core SORT TO parameters
2015-03-23 15:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapirdd.h
* include/hbusrrdd.ch
+ added DBTF_RECALL flag which disables transferring record DELETED flag
* src/rdd/dbcmd.c
* src/rdd/workarea.c
! disable transferring DELETED flag to destination area in SORT TO /
__dbArrange() operations
* src/rdd/delim1.c
* src/rdd/sdf1.c
+ added dummy RECALL() methods - now RECALL() can be executed by workarea
TRANSREC() method when DBTF_RECALL flag is set
2015-03-22 17:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* pacified warnings
2015-03-21 12:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
! restored the line with initialization of allocated memory buffer
I deleted by mistake removing my private comments before commit.
Without this line sort could randomly crash on small tables (less
then 65537 sorted records)
2015-03-20 16:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/Makefile
- include/hbdbsort.h
* src/rdd/Makefile
- src/rdd/hbdbsort.c
* src/rdd/dbf1.c
- completely removed old code used in DBF* RDDs as low level backend
for SORT TO ... command and __dbArrange() function.
It was buggy and extremely inefficient in some cases, i.e. after
20 hours I killed process which was sorting table with 2'000'000
records in reverted order so I cannot even say how much time it
needed.
* src/rdd/dbf1.c
+ added new code for table sorting in DBF* RDDs
(SORT TO ... / __dbArrange() backend)
New code fixes many different problems which existed in previous one
like missing support for national collation, wrong descending orders,
wrong sorting of numeric fields with negative values, missing support
for sorting many field types, missing support for transferring MEMO
fields, missing support for transferring records to table with different
field structure or serving by different RDD, etc.
New code is also many times faster then the old one. In practice it
means is now usable for tables with more then few thousands records,
i.e. the test table with 2'000'000 records I used with old code was
copied in sorted order in 13 secs. when pure COPY TO needed 10 secs.
Now it's possible to export sorted tables to different RDDs, i.e.
using DELIM or SDF RDDs in desitnation area.
New code is written in general form without any local to DBF* RDDs
extensions so it can be adopted as base in any other RDD. Probably
I'll move it to default workarea methods so it will be inherited by
all Harbour RDDs and only if necessary authors of some RDDs may
overload it, i.e. to move the operation to the server side in remote
RDDs when source and destination tables are processed by the same
server.
This modification closes the last known for years bug or rather bag
of bugs ;-) in Harbour.
; NOTE: For large tables new sorting algorithm may access source records
more then once. It means that results may be wrongly sorted when
sorted fields in exported records are modified concurrently by
other station during exporting. This can be easy eliminated by
copping source records to temporary file anyhow it will introduce
additional overhead in all cases and user can easy eliminate the
problem by simple FLOCK before sort or making export to temporary
file and then sorting this file or he can simply ignore this
problem as unimportant in the specific situation so I decided to
not implement double copping.
I haven't tested what Cl*pper exactly does in such case so
I cannot say if current behavior is or isn't Cl*pper compatible.
2015-03-18 23:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
% small speed improvement during indexing
* casting
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* casting
2015-03-18 13:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/teditor.prg
! resize missing text on line wrapping (issue #92)
2015-03-17 13:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/workarea.c
% small simplification
2015-03-17 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbcmd.c
! fixed __dbArrange() to allow record transfer with the same conditions
as __dbTrans() just like Cl*pper does.
Low level RDD code should respect it, i.e. it should be possible to
sort using fields which exist only in source workarea, the order
and number of fields in source and destination workareas can be
completely different, etc.
Low level DBF* SORT() method is completely broken in such cases and
has to be rewritten.
2015-03-16 23:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/smtpcli.prg
! do not execute STARTTLS command if server does not report it's supported
(issue #90)
* src/rdd/dbcmd.c
* use DBI_TRANSREC in __dbTrans() and __dbArrange() (pure record copping
without sorting)
2015-03-13 18:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/win_bmp.c
! fixed copy and past typo in my last modification - thanks to
Juan Francolino for reporting the problem and to Alexander
Czjczyński for locating the reason. It closes issue #91.
* contrib/hbtip/smtpcli.prg
* be sure that server answer after HELO command (:open() method) is
fully consumed
* contrib/hbtip/sendmail.prg
! removed redundant waiting for sever answer after opening connection
without authentication - it fixes timeout delay in such case
! do not create TIPClientSMTP() object twice when it's not necessary
% small code simplification
2015-03-12 09:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/sendmail.prg
! fixed wrong login conditions - AICS it's old problem which had existed
from very long time.
* contrib/hbtip/smtpcli.prg
! eliminated redundant processing EHLO processing
2015-03-11 16:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/hbtip.hbx
* contrib/hbtip/httpcli.prg
* contrib/hbtip/log.prg
* contrib/hbtip/sessid.prg
* contrib/hbtip/smtpcli.prg
* contrib/hbtip/thtml.ch
* contrib/hbtip/tip.ch
* contrib/hbtip/url.prg
* synced with Viktor's branch.
2015-03-10 18:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/cgi.prg
* contrib/hbtip/client.prg
* contrib/hbtip/encb64.prg
* contrib/hbtip/encoder.prg
* contrib/hbtip/encqp.prg
* contrib/hbtip/mail.prg
* contrib/hbtip/sendmail.prg
* synced manually with Viktor's branch (not all things).
* doc/xhb-diff.txt
! fixed few typos
2015-03-09 19:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/smtpcli.prg
! consume whole EHLO output after STARTTLS
2015-03-09 18:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/smtpcli.prg
! added missing space after AUTH PLAIN
! resend EHLO command after STARTTLS
; Thanks to Rolf for information about both problems.
2015-03-09 18:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/client.prg
* removed trailing spaces
* contrib/hbtip/hbtip.hbp
* contrib/hbtip/encurlc.c
+ contrib/hbtip/mime.c
+ contrib/hbtip/misc.c
- contrib/hbtip/utils.c
* synced with Viktor's branch
* renamed some variables to follow rules used by Harbour
% use binary search to locate mime extension
* some minor cleanups and fixes
2015-03-09 15:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/smtpcli.prg
! fixed typo in my previous commit
2015-03-07 20:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/smtpcli.prg
* synced with Viktor's branch - it should fix the problem with
unconditional bind with HBSSL library after last Jean's patch.
2015-03-05 22:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
! do not refresh ModTime and RowVer fields just copied during transfer
operation
2015-03-05 20:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
* src/vm/garbage.c
+ added hb_gcDummyClear() function
* include/hbapirdd.h
* include/hbusrrdd.ch
+ added DBTF_CPYCTR constant value - when set in dbTransInfo.uiFlags
then after record transfer field counters should to be copied from
source to destination area
* include/hbapirdd.h
* src/rdd/wafunc.c
+ added new C functions hb_dbTransInfoPut() and hb_dbTransInfoGet()
which allow to store and retrieve pointer to DBTRANSINFO structure
into/from HB_ITEM with strict type verification.
* src/rdd/wafunc.c
* pass pointer to DBTRANSINFO structure as argument of DBI_TRANSREC
action. It allows RDD serving destination area to decide which
fields and how should be transferred updating uiFlags, uiItemCount
and lpTransItems members of DBTRANSINFO.
If RDD removes all fields from DBTRANSINFO structure (uiItemCount==0)
or does not return HB_SUCCESS for DBI_TRANSREC action (default WA
implementation returns HB_SUCCESS so it's not necessary to overload
it if RDD does not make any additional operations) then record
transfer is interrupted.
* copy field counters only when destination area asked about it setting
DBTF_CPYCTR in dbTransInfo.uiFlags in DBI_TRANSREC action.
* src/rdd/dbf1.c
* do not copy automatically updated fields when destination area
is not empty
* set DBTF_CPYCTR to indicate that counters should be copied from
source to destination area when original value of automatically
updated fields are transferred
; Now DBF* RDDs in Harbour respects the following rules for record
transfer operations (COPY TO / APPEND FROM) with automatically
updated fields:
- COPY TO transfers original values to destination table and
finally copy counters from the source table to destination one
so autoincrement fields in both tables after next append will be
initialized with the same values regardless of number of copied
records - even if only single record is copied then counters in
destination table will inherit next values for new record from
the source table. Also values of RowVer and ModTime fields are
copied from source to destination table and not updated during
transfer operation.
- APPEND FROM works like COPY TO (original field values and then
counters are copied to destination table) if the source table
supports counters and destination table is empty and FLocked()
or opened in exclusive mode.
If source table does not support counters for given fields, i.e.
it is processed by transfer RDD like DELIM or SDF (RDT_TRANSFER)
or destination table is not empty or opened in shared mode and
FLock is not set when APPEND FROM is executed then automatically
updated fields (counters, RowVer, ModTime) are not copied and
initialized with new values like for each new record added to
destination table.
* ChangeLog.txt
! typo in last ChangeLog entry
2015-03-04 11:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
! fixed HB_ISMEMO() macro, original version was accepting the same
items as HB_ISCHAR() so it was not compatible with ISMEMO() macro
in Cl*pper.
* src/rtl/valtype.c
* use HB_ISMEMO() macro
2015-03-04 09:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* src/rtl/hbinet.c
* pacified warnings (Thanks to Grigory)
* src/rdd/dbcmd.c
* src/rdd/wafunc.c
* small code simplification and cleanup
! protection against GPF when wrong parameters are passed to __dbArrange()
+ added support for transferring records using __dbArrange() to area with
different fields order (low level driver may refuse to finish such
operation but now it's possible.
2015-03-03 16:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
! use AdsSetLongLong() (if available) instead of AdsSetDouble() to not
strip less significant bits from 64bit integer number during conversion
to double
* allow ADS to decide if writing into rowver and modtime fields is legal
instead of generating our own arbitrary RTE
* include/dbinfo.ch
* src/rdd/workarea.c
+ added new dbInfo() action DBI_TRANSREC
It indicates if area is destination table of currently processed COPY TO
or APPEND FROM operation.
* include/hbapirdd.h
* src/rdd/wafunc.c
+ added new C function:
HB_ERRCODE hb_dbTransCounters( LPDBTRANSINFO lpdbTransInfo );
It copies field counters from source into destination table used
in transfer operation.
* src/rdd/dbcmd.c
* src/rdd/wafunc.c
+ call DBI_TRANSREC to inform destination area that record transfer
operation starts and stop. It allows destination RDD to change
rules used for assign to automatically updated fields, i.e. unblock
such operation.
+ call hb_dbTransCounters() to update counters in destination table
after COPY TO operation
* src/rdd/sdf1.c
* src/rdd/delim1.c
* clear AutoInc flag
* src/rdd/dbf1.c
+ allow to set get and set counter for RowVer fields using DBS_COUNTER
action
* return HB_FAILURE for DBS_COUNTER and DBS_STEP if it's not supported
by given field.
+ added support for DBI_TRANSREC - in case of DBF* RDDs it unblocks
writing to automatically updated fields
2015-03-03 15:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtalleg/gtallegd.c
* contrib/gtqtc/gtqtc1.cpp
* contrib/hbblink/blinker.prg
* contrib/hbbz2/core.c
* contrib/hbcomio/comio.c
* contrib/hbsqlit3/core.c
* contrib/hbtcpio/tcpio.c
* contrib/rddads/adsfunc.c
* synced with Viktor's branch
(formatting, macros instead of constant values, protection against
wrong paramters, use *EVALITEM macros, use HB_ERR_ARGS_BASEPARAMS, ...)
* contrib/hbsqlit3/core.c
* contrib/hbsqlit3/hbsqlit3.hbx
+ add sqlite3_load_extension( , , [], [@] )
->
(borowed from Viktor's branch 2015-02-15 19:18 UTC+0100 Viktor Szakats)
2015-03-02 18:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/ssl_inet.c
! restored comment begin token removed by mistake in my last commit
2015-03-02 16:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbinet.c
* contrib/hbssl/ssl_inet.c
! fixed unfinished code with error code translation - thanks to Abe
2015-02-26 09:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
* removed unnecessary casting
* contrib/rddads/adsx.c
! fixed to work with ACE < 6.1
2015-02-25 22:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbodbc/odbc.c
* contrib/hbodbc/sql.ch
* minor formatting to sync with Viktor's branch
+ added missing defines from Viktor's branch
* contrib/rddads/ads.ch
* contrib/rddads/adsfunc.c
+ added AdsStmtSetTableReadOnly( ) ->
(From Viktor's branch: 2015-01-21 18:43 UTC+0100 Viktor Szakats)
+ added ADS_REFRESHCOUNT constant and
AdsGetRecordCount( [], ;
[], @nCount ) ->
(From Viktor's branch: 2014-01-19 13:42 UTC+0100 Viktor Szakats)
! fixed connection handle parameter position in AdsDDRemoveTable()
It was 4-th:
AdsDDRemoveTable( , , , [ ] )
->
Now is 3-rd:
AdsDDRemoveTable( , , [ ] )
->
(From Viktor's branch: 2014-01-14 23:53 UTC+0100 Viktor Szakats)
* contrib/rddads/rddads.h
+ autodetection support for 11.10
(From Viktor's branch: 2013-12-26 01:22 UTC+0100 Viktor Szakáts)
* contrib/rddads/adsx.c
* use hb_xgrabz()
* formatting
* contrib/rddsql/hbrddsql.h
* contrib/rddsql/sqlbase.c
* added const qualifier to SDD method pointer in SQLBASEAREA
* declare default SDD method table with const qualifier
* added s_ prefix to the name of static variable with SDD methods
% optimized GOHOT() method
* use hb_xgrab() instead of hb_xalloc() to force error when out of memory
* use hb_xgrabz()
* contrib/rddsql/sqlmix.c
* use hb_xgrabz()
* contrib/sddfb/core.c
* added s_ prefix to the name of static variable with SDD methods
% removed unnecessary memset()
% optimized GOTO() method
! fixed very bad typo in record set resizing - for each record 64 dummy
items were added to array with records so finally this array was 64
times longer then necessary.
* contrib/sddmy/core.c
* added s_ prefix to the name of static variable with SDD methods
+ added new field types from from Viktor's branch
* use hb_xgrabz()
% removed redundant comparison to NULL
* contrib/sddoci/core.c
* added s_ prefix to the name of static variable with SDD methods
* check OCI_Initialize() result and generate error if fails
(synced with Viktor's branch)
* minor formatting to sync with Viktor's branch
% removed unnecessary memset()
% optimized GOTO() method
! fixed very bad typo in record set resizing - for each record 64 dummy
items were added to array with records so finally this array was 64
times longer then necessary.
* contrib/sddodbc/core.c
* replaced unnecessary hb_xgrabz() with hb_xgrab()
! fixed very bad typo in record set resizing - for each record 64 dummy
items were added to array with records so finally this array was 64
times longer then necessary.
* contrib/sddpg/core.c
* added s_ prefix to the name of static variable with SDD methods
* use hb_xgrabz()
* contrib/sddsqlt3/core.c
* added s_ prefix to the name of static variable with SDD methods
* minor formatting to sync with Viktor's branch
! fixed memory leak when RTE ESQLDD_STMTALLOC is generated
(fix from Viktor's branch)
% removed unnecessary memset()
! fixed very bad typo in record set resizing - for each record 64 dummy
items were added to array with records so finally this array was 64
times longer then necessary.
2015-02-24 17:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/sddfb/core.c
* contrib/sddmy/core.c
* contrib/sddoci/core.c
* contrib/sddodbc/core.c
* contrib/sddpg/core.c
* contrib/sddsqlt3/core.c
! clear dbFieldInfo structure before use - it resolves problems with
random field flags caused by uninitialized uiFlags member
* minor cleanup in variable names
* use hb_xgrabz()
* contrib/sddodbc/core.c
+ added support for NULLABLE, UNICODE and BINARY field flags
+ added support for SQL_BINARY fields
! fixed SQL_TIME mapping to Harbour field types.
It was mapped as HB_FT_DATE instead of HB_FT_TIME.
! fixed extracting integer values on on platforms where long int is
64 bit integer (in practice all 64bit *nixes). SQL_C_LONG should be
used with SQLINTEGER not 'long int'.
* contrib/hbodbc/odbc.c
+ add support for different data types in SQLGetData()
The original version was returning different types in their binary
representation. Current implementation is based on similar one from
Viktor's branch (2014-07-06 16:40 UTC+0200 Viktor Szakats) with
small but important fixes.
! modified hb_odbcNumSetLen() to not break 64bit integers by casting
to double value
* contrib/hbodbc/sql.ch
+ added SQL_WCHAR
* contrib/hbodbc/todbc.prg
+ use extended SQLGetData() and hb_odbcNumSetLen() functionality to
extract ODBC data
% few small optimization and casing usually based on Viktor's branch
BTW pre incrementations/decrementations used in PUSH context are
faster then post ones.
2015-02-24 11:14 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed GPF when empty window title is set and then retrieve - thanks
to Teo.
2015-02-23 17:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbodbc/odbc.c
* rewritten function SQLGetData() - new code is much simpler and
fixes few bugs
* contrib/hbodbc/todbc.prg
% eliminated unnecessary AAdd() when final array size is already known
! do not round numbers read number to default number of decimal places
2015-02-21 15:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* src/compiler/hbmain.c
* src/nortl/nortl.c
! save and restore SETs which can be modified by -fn[:[l|u]|-],
-fd[:[l|u]|-], -fp[:] and -fs[-] compiler flags.
It fixes problem with HBMK2 so now above switches can be used
with HBMK2.
2015-02-21 14:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/delim1.c
* src/rdd/sdf1.c
! disabled code which allows to delete just added record.
It was not Cl*pper compatible and caused bad side effects
in COPY TO ... DELIM | SDF - deleted records were nor
copied
2015-02-20 11:40 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/bio.c
* contrib/hbssl/err.c
* contrib/hbssl/evpciph.c
* contrib/hbssl/evpmd.c
* contrib/hbssl/hbssl.ch
* contrib/hbssl/hbssl.hbc
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/pem.c
* contrib/hbssl/rand.c
* contrib/hbssl/ssl.c
* contrib/hbssl/ssl_hb.c
* contrib/hbssl/sslctx.c
* contrib/hbssl/x509.c
; synced with Viktor's branch:
* favor openssl over libressl on darwin (2015-01-22 03:24 UTC+0100)
* build against libressl on darwin, if installed
(2015-01-22 03:24 UTC+0100)
* deleted custom openssl option 'OPENSSL_NO_SEED' on darwin.
(2015-01-22 03:24 UTC+0100)
+ AES/GCM ciphers added (couldn't make them work)
(2014-12-26 01:53 UTC+0100)
+ added BIO_GET_CONN_INT_PORT()
It's now fixed in OpenSSL, available in hbssl with OpenSSL 1.0.1 or upper
(2014-03-03 00:45 UTC+0100)
! BIO object is now GC collected, solving the leak and hopefully
some remaining memory problems around BIO_NEW_MEM_BUF()
(2014-02-26 04:54 UTC+0100)
! SSL_SET_BIO(): fixed 3rd parameter
(2014-02-26 04:54 UTC+0100)
! BIO_NEW_MEM_BUF(): fixed potential use-after-free.
(2014-02-24 16:02)
* formating and comments
2015-02-20 10:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbodbc/odbc.c
* contrib/sddodbc/core.c
* updated to compile with UnixODBC 2.2.0
I slightly changed one #if condition used to define SQLTCHAR.
If it interacts with some other old UnixODBC version then
please let me know.
2015-02-19 23:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.h
* added HB_SSL_CONST macro which can be used instead of 'const'
qualifier to pacify "discards qualifier 'const'" warnings in
OpenSSL versions prior 0.9.8
* contrib/hbssl/evp.c
* contrib/hbssl/evpciph.c
* contrib/hbssl/evpenc.c
* contrib/hbssl/evpmd.c
* contrib/hbssl/ssl.c
* contrib/hbssl/sslctx.c
* use HB_SSL_CONST macro to pacify warnings in 0.9.6 and 0.9.7
OpenSSL versions
; Now HBSSL compiles cleanly without any warnings with different
OpenSSL final versions starting with 0.9.6
2015-02-19 13:15 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/hbtop/popcli.prg
! Fixed: METHOD top( nMsgId )
::inetSendAll( ::SocketCon, "TOP " + hb_ntos( nMsgId ) + " 0 " + ::cCRLF )
=>
::inetSendAll( ::SocketCon, "TOP " + hb_ntos( nMsgId ) + " 0" + ::cCRLF )
+ Added: following convinient methods:
METHOD getTop( nMsgId, lAsArray ) -> arrayOrStringOfHeaderOF_nMsgId
METHOD getMessageRaw( nMsgId, lAsArray ) -> arrayOrStringOfEntireMessageOF_nMsgId
METHOD getBody( nMsgId, lAsArray ) -> arrayOrStringOfMessageBodyOF_nMsgId
METHOD getSubject( nMsgId ) -> cSubjectLineOF_nMsgId
2015-02-19 13:09 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/gtwvgd.c
* contrib/gtwvg/gtwgud.c
! Fixed: a bug which was causing HB_GTI_SETPOS_XY/ROWCOL returning
wrong values in case it is called as GET method.
2015-02-19 20:20 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/evpciph.c
* contrib/hbssl/hbssl.h
! added missing protection for EVP_rc5_32_12_16_cfb64()
* cleaned version macro usage to not force final versions until beta
ones is not confirmed to be broken
2015-02-19 19:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/bio.c
* contrib/hbssl/err.c
* contrib/hbssl/evpciph.c
* contrib/hbssl/evpmd.c
* contrib/hbssl/hbssl.h
* contrib/hbssl/ssl.c
* contrib/hbssl/ssl_inet.c
! fixed compilation with older OpenSSL versions.
Now minimum supported version of OpenSSL is 0.9.6.
I tested current code only with finals releases (such releases
have 'f' as last hex digit in OPENSSL_VERSION_NUMBER) so it's
possible that some beta release may need additional tunes but now
adopting the code should be quite easy job for anyone who need
to use such OpenSSL version and has same very basic C knowledge.
When older OpenSSL versions are used then warnings:
"passing arg X discards qualifier 'const' from pointer target type"
can appear. I didn't pacified them to not hide some possible bugs
in the future though it breaks C++ compilation so maybe I'll add
such casting using macro redefined only for older versions.
; [TODO] check if HB_OPENSSL_OLD_OSX_ macro is still required and
if not then remove it. Maybe also other DARWIN macros can
be removed.
2015-02-17 18:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
* use VK_MENU macro instead of direct value and do not check
VirtualScanCode in hack for ALT+ input
2015-02-17 17:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* package/harb_win.mft
* package/harb_win.rc
* bumped copyright year to 2015
* package/mpkg_win_nightly.bat
* package/winuni/mpkg_win_uni.bat
* enclosed paths in "" for names with spaces
2015-02-17 17:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* modified code which tries to detect if field flags were used in DBF
header for autoinc numeric fields
2015-02-17 16:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
+ added support for autoincrement fields with counter longer then 4 bytes
Warning: if someone created tables with such fields i.e. { "I:+", 8, 0 }
after my modification which added support for AutoInc flags in
all numeric DBF fields then he should update counters manually
using DBS_COUNTER flag. New code uses 64bit counters for such
field located in different part of DBFFIELD structure.
2015-02-17 13:28 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/cmdcheck.c
! fixed error messages when wrong parameters are passed.
When wrong parameters are taken from HARBOURCMD or CLIPPERCMD
"Bad command line option '%s'"
error is generated and
"Bad command line parameter '%s'"
when wrong parameters are from command line.
New behavior is Cl*pper compatible.
2015-02-17 12:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/tests/inetssl.prg
* contrib/rddads/ads1.c
* src/rtl/teditor.prg
* formatting of my recent modifications taken from Viktor's branch
* src/common/hbfsapi.c
* src/compiler/complex.c
* formatting
* include/hbset.h
* src/vm/set.c
* src/nortl/nortl.c
+ add new C functions to change HVM set values:
hb_setSetFileCase(), hb_setSetDirCase(), hb_setSetDirSeparator(),
hb_setSetTrimFileName()
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/cmdcheck.c
* src/compiler/hbmain.c
* src/compiler/ppcomp.c
* src/compiler/genc.c
* src/compiler/hbusage.c
* src/nortl/nortl.c
* rewritten code used to parse command line and environment parameters.
New code is covered by GPL + Harbour exception license.
All parameters are decoded by only one function and whole code is
smaller so it's much easier to modify this code.
! fixed some small bugs and incompatibilities with Cl*pper in parameter
parsing
! fixed -y undocumented (YYDEBUG) switch
- removed -x[] set symbol init function name prefix (for .c only)
compiler command line switch
* moved -fn[:[l|u]|-] -fd[:[l|u]|-] -fp[:] and -fs[-] switches
parsing to core compiler library. Now these switches are also works
with compiler library linked with HBMK2.
; TOFIX: HBMK2 ignores -fn/-fd switches and allocates temporary names
which are not compatible with names used later by harbour
compiler when above switches are activated. HBMK2 should
parse parameters and update SET FILECASE / SET DIRCASE before
it creates temporary files [fixed by compiler modification]
2015-02-15 21:31 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* slightly modified code which tries to detect if field flags were
used in DBF header
2015-02-15 20:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
! fixed rounding negative UTC offsets in MS-Windows builds.
It should fix issue #89.
2015-02-15 20:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
* added hack to process characters generated without keydown event.
It should fix issue #86.
2015-02-13 17:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
! fixed MPosToLC() results for position in last line which have to
be moved after analyzing rest of line due to word wrapping.
* src/rtl/teditor.prg
* rewritten whole internal code critical for basic functionality.
+ resolved the problem with keycode conflicts for GTs which
support extended keycodes.
+ added support missing MemoEdit() editor functionality.
; Number of bugs and mistakes was to big to try to update it.
New code is smaller and simpler. I tried to keep compatibility
with previous version and added to new version most of "helper"
methods which are not used in MemoEdit() at all anyhow I cannot
guaranty that all existing code using TEditor will work without
modifications, i.e. I had to remove :SetPos() and all logic bound
with it because it was to hard for my brain to understand this
idea and/or functionality.
If someone needs strict compatibility with previous version then
he should add to his source code copy of old code.
Current code should addressed most of MemoEdit() problems with
text formatting and editing reported in the past though probably
not all. I have no spare time for precise tests of Cl*pper's
MemoEdit().
* src/rtl/memoedit.prg
* overload :InsertState() method to show SCOREBOARD message
* changed "Abort Edit? (Y/N)" message position to be Clipper compatible
* removed redundant keycode comparison
* do not ::SetPos HBEditor method - this method has been removed
2015-02-11 19:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
! typo in issue number
2015-02-11 18:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
* modified unpadded MemoLine() mode to return last blank
character in the line
* src/rtl/teditor.prg
! fixed typo in MemoLine() parameters
+ added lSoftCR parameter to GetText() - when it's true returned
text contains SoftCRs
* src/rtl/memoedit.prg
! return text with SoftCRs - Cl*pper compatible
; Above modifications fix initial and result text formatting
in MemoEdit() (#84)
2015-02-11 13:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* package/harbour-wce.spec.in
* package/harbour-win.spec.in
* package/harbour.spec
* changed deprecated BuildPrereq tag to BuildRequires
! remove optionally created libtiff
; above modifications close issue #38
2015-02-11 12:31 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/codepage/l_fr.h
+ added 'Ç' and 'ç' characters to set of french letters
; this modification affected "FRISO" and "FRWIN" codepages.
Users using them and above characters in index field should
reindex their databases.
* include/hbcpage.hbx
* src/codepage/Makefile
* src/codepage/cpfr850.c
+ src/codepage/cpfr850c.c
* renamed "FR850" codepage to "FR850C". This is is Cl*pper ntxfre.obj
compatible codepage.
If someone uses DBF files with indexes simultaneously with Cl*pper
applications using collation order defined in ntxfre.obj the he has
to use "FR850C" codepage in Harbour.
Warning: Any users using French "FR850" codepage so far should change
the code to "FR850C".
+ added new French codepage "FR850" with all French characters and
accented equal collation rules.
; above modifications close issue #88
2015-02-11 09:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* moved AutoInc field initialization to separate function
% removed unnecessary AutoInc initialization from RowVer fields
* cleanup few static function names
2015-02-11 09:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
+ finished support for AutoInc flag (+) for all numeric fields (N, F, I, B)
in DBF* RDDs. Now user can define field like:
{ "COUNTER", "I:+", 4, 0 }
and they will work like autoincrement fields but without any assign
restrictions.
2015-02-10 17:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbznet.h
* src/rtl/hbinet.c
+ added new C function hb_znetInetTimeout()
* minor cleanup (local variables localization)
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbx
+ contrib/hbssl/ssl_inet.c
+ added support for SSL/TLS encryption in hb_inet*() sockets.
To enable SSL/TLS encryption on such socket it's enough to
call hb_inetSSL_connect() or hb_inetSSL_accept() passing as
1-st parameter hb_inet socket item with already established
connection and in in the 2-nd parameter SSL item. The peer
should call second function. In general hb_inetSSL_connect()
should be called by client and hb_inetSSL_accept() by server.
To use hb_inetSSL_accept() it's necessary to also set
certificated (at least self ;-)) encryption keys. See the
example I committed to test directory.
The exact syntax of new functions is:
hb_inetSSL_connect( , [, ] )
hb_inetSSL_accept( , [, ] )
To use hb_inet*() functions to connect with SSL/TLS server
Harbour users only have to call hb_inetSSL_connect() after
setting connection, i.e.:
IF !Empty( sock := hb_inetConnect( cServer, nPort ) )
ssl_ctx := SSL_CTX_new()
IF hb_inetSSL_connect( sock, SSL_new( ssl_ctx ) ) == 1
// SSL connection established
// now user can use all hb_inet*() functions is
// the same way as for raw TCP connections and
// all parameters like timeouts are fully supported
// but transmission is encrypted.
[...]
ENDIF
ENDIF
It's not longer necessary to use SSL_set_fd() + SSL_connect()
and then SSL_read() / SSL_write() / hb_SSL_read_line() /
hb_SSL_read_all().
BTW hb_SSL_read_line() and hb_SSL_read_all() in HBSSL library
are broken and have to be fixed.
TODO: Now HBTIP library can be nicely simplified and additional
code for SSL/TLS read/write operations removed. It's
enough to once call hb_inetSSL_connect() if SSL/TLS
encryption is needed.
+ contrib/hbssl/tests/inetssl.prg
+ added test code for hb_inet*() SSL/TLS connections.
It's client and server example which also generates self
certificated encryption keys running openssl command.
If this code is linked with non console GT then user
should generated certificates himself (see comment in
LoadCertificates() function for more information).
2015-02-10 13:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/xhb/xhberr.prg
* contrib/xhb/xhb.hbx
- removed __BreakBlock() function. The Harbour core implementation
of __BreakBlock() function fully replaces it and is more efficient
because it does not create new codeblock on each call.
2015-02-09 09:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexpra.c
* allow to use __BreakBlock() function as static initializer
2015-02-09 00:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hardcr.c
! fixed HardCR() to work with codepages using custom character encoding
in which SoftCR can be part of valid character, i.e. UTF8.
* ChangeLog.txt
* typos in prev my entry
2015-02-08 23:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/vm/hvm.c
+ added new PRG function:
__BreakBlock() -> {|e| Break( e ) }
* include/hbexprb.c
% replace {|e| Break( e ) } with __BreakBlock() function call.
__BreakBlock() returns exactly the same codeblock on each call
so using it saves memory and improves a little bit speed because
it's not necessary to allocate new GC memory block and register
it in GC block list. Additionally in MT mode it eliminates mutex
lock necessary to register new GC block.
2015-02-08 13:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/workarea.c
+ added support for field flags in dbCreate()/dbStruct().
Flags can be passed in string with field type after ":", i.e.
"C:U"
means Unicode character field.
The following flags are recognized:
"N" - column can store null values
"B" - binary column
"+" - column is autoincrementing
"Z" - column is compressed
"E" - column is encrypted
"U" - column stores Unicode strings
* src/rdd/dbf1.c
+ added support for field flags in core DBF* RDDs.
; In core DBF* RDDs "N", "B", "U" and "+" flags are supported.
When "N" flag is used then special hidden field with NULL bits
is created. Such implementation is compatible with DBF created
by VFP.
* contrib/rddads/ads1.c
+ added support for field flags in ADS* RDDs
! added missing RTE when wrong field types are passed to dbCreate()
; The old format with long field names corresponding to ADS types is
still supported but I had to rewrite this code so please make real
life test and verify me. In few cases I slightly change the code and
now it can be a little bit more restrictive, i.e. typos in "AtutoInc"
field type will be detected (previous code checked only for 1-st
letter "A").
2015-02-07 21:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/win_bmp.c
! added missing C++ casting
2015-02-06 15:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* added support MAC addreses array returned by hb_socketGetIFaces()
in BSD based systems like FreeBSD or Darwin (Mac OS X)
* src/vm/hvm.c
% small simplification i FOR EACH initial code
* contrib/hbwin/win_bmp.c
* contrib/hbwin/win_prn2.c
* use Harbour FILE IO API instead of local file access
* contrib/hbct/ctstrfil.c
* formatting
* contrib/gtqtc/gtqtc1.cpp
! fixed possible missing initialization for drawing character images
2015-01-29 23:55 UTC+0100 Jean Lefebvre (jfl/at/mafact.com)
* contrib/hbtip/sendmail.prg
* Modified hb_sendmail(...) to allow TLS on port 587
No change in parameters
* contrib/hbtip/client.prg
+ added FUNCTION ActivateSSL(Self)
* changed all actual ref to TLS to SSL for clarity with real TLS vars and methods
* contrib/hbtip/smtpcli.prg
+ Added METHOD StartTLS() to allow starting SSL crypting after receiving the STARTTLS command only
+ Added METHOD DetectSecurity() to initiate Authentification methods reading 250-xxx lines
* contrib/hbtip/tests/gmail.prg
* changed comment to explain TLS on port 587 for gmail
* changed port to 587 to allow testing
* Auto detect SSL on 465 and plain text on 587 (till STARTTLS command)
2015-01-19 13:24 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/hbwin.hbx
+ added __oleVariantNullDate()
* src/common/hbver.c
* src/rtl/tget.prg
! applied Get():end() Cl*pper compatibility fix by Rolf.
* synced with Viktor's branch
* contrib/hbhpdf/image.c
! applied fixes sent by Peter Rees
! protection against GPF when wrong parameter is passed to
HPDF_Image_GetColorSpace() (borrowed from Viktor's branch)
* README.md
* src/compiler/hbusage.c
* src/pp/hbpp.c
* utils/hbi18n/hbi18n.prg
* utils/hbtest/hbtest.prg
* contrib/hbformat/utils/hbformat.prg
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* contrib/hbnetio/utils/hbnetio/netiomgm.hb
* bumped copyright year to 2015
2015-01-14 13:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
+ added new PRG function to control empty date conversion to OLE variant:
__oleVariantNullDate( [] ) ->
This is per thread switch and by default initialized to .F. for each
new thread. When set to .T. Harbour empty dates are translated to
VT_NULL.
Warning: it's possible that this function will be removed or replaced
by other solution in the future.
* contrib/gtqtc/gtqtc1.cpp
* emulate CTRL by setting SHIFT + ALT in Android builds
(It's temporary solution - my patch with support for CTRL in
Android QT builds has been accepted so it should be included
in next Qt releases)
% set Qt::WA_NoSystemBackground
* do not change number of rows and cols in maximized and fullscreen mode
when font is changed and resize mode set to HB_GTI_RESIZEMODE_FONT.
It was creating problems when user switched to fullscreen/maximized
mode and application was not ready to dynamically update screen
dimensions.
* activate virtual keyboard on double click instead of click.
It allows to hide virtual keyboard and control program using mouse
and touch events.
* src/rtl/gtwvt/gtwvt.c
+ added support for HB_K_MENU
* src/rtl/gtxwc/gtxwc.c
* use macros instead of constant values
+ added support for HB_K_MENU
* reload font after HB_GTI_FONTSIZE (compatible with other graphic GTs)
* eliminated recursive mutex XLIB locks in HB_GTI_FONTSEL
* discard existing graphics characters and redraw console window contents
after HB_GTI_FONTATTRIBUTE
* tests/gtkeys.prg
+ added support for HB_K_MENU and HB_K_TERMINATE
2015-01-09 19:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* minor foramtting
* src/rtl/gtwvt/gtwvt.c
! do not generate K_MOUSEMOVE during marking phase
* src/rtl/gtxwc/gtxwc.c
! fixed mapping XWindow mouse buttons to Harbour buttons
(MRightDown() and MMiddleDown() were reverted)
* src/rtl/memoedit.prg
! fixed processing unicode characters
* src/rtl/teditor.prg
* synced with Viktor's branch
2014-12-31 01:45 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/memoedit.prg
! fixed repeat condition for ME_INIT initial user function call
(correctly fixes #21)
* src/rtl/mlcfunc.c
* added temporary extension to MemoLine() which will be removed and
replaced in the future
* src/rtl/teditor.prg
! use temporary MemoLine() extension to fix problem with line trailing
spaces I introduced with previous modification
* src/rtl/replic.c
% optimization for Replicate( , 1 )
2014-12-30 01:19 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* src/rtl/memoedit.prg
! Fixed: nUdfReturn value ME_UNKEY (1-31) were not being processed.
2014-12-29 20:27 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbznet.h
* src/rtl/hbinet.c
* src/rtl/hbinetz.c
* moved HB_INET_ERR_* macros to header file
+ added error and errorStr functions to hb_inet*() socket read/write
wrappers
! call close function of hb_inet*() socket read/write wrappers before
closing the socket
+ added hb_znetInetFD() C function
* src/rtl/teditor.prg
! use hb_ATokens( , .T. ) and MemoLine() to divide text into lines
to improve performance and fix TABs decoding
* src/rtl/memoedit.prg
* src/rtl/teditor.prg
* applied recent fixes and cleanups from Viktor's branch.
* src/rtl/tgetlist.prg
* applied recent fixes from Viktor's branch:
; (2014-12-19 01:00 UTC+0100 Viktor Szakats)
! HBGetList():GUIApplyKey(): fixed bug introduced with UNICODE
support in 93d3a46d843daaf6d08149d83fa5203ff910c484 (upstream).
That patch had an undocumented workaround for the problem inside
ListBox():findText(), which was not Cl*pper compatible, so
it was later removed in 6f8508ff54a3955822b36bf4a65a2775a11bab23.
This patch hopefully fixes the root cause.
Reported here: https://groups.google.com/d/msg/harbour-devel/7Cpax5TdHnY/n5XfXX8N9vMJ
2014-12-15 15:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbtoken.c
* cleaner version of recent hb_tokenPtr() fix which works correctly
also with active delimiters
2014-12-13 10:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbtoken.c
! fixed hb_tokenPtr() to work correctly with new EOLs
Thanks to Viktor for information about the problem.
2014-12-12 17:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
! use window instead of internal image to calculate new console window
dimensions after dynamic font size modification
2014-12-12 16:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbini.prg
! use hb_ATokens( , .T. ) to divide .ini file to lines
It's much faster and fixes problem existing from initial version
of this code that .ini files with mixed EOLs cannot be correctly
decoded, i.e. .ini files with LF EOLs was couldn't be decoded if
someone added even single line with CRLF.
* small .ini read code reorganization
2014-12-12 13:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcompdf.h
* include/hbexprb.c
* src/common/funcid.c
* src/vm/hvm.c
% optimize Array() function by replacing function call with HB_P_ARRAYDIM
PCODE. Because this optimization changes RTE and interacts with broken
code like
aVal := Array( 10, 0, "A" )
then it's not enabled by default. User can enable it by -ko switch.
* utils/hbtest/rt_array.prg
* use #pragma -ko- to for tests which interacts with above modification
* src/rtl/hbproces.c
% optimize memory allocation for redirected STDOUT and STDERR buffers in
hb_processRun() function.
The previous implementation was extremly inneficient when
hb_processRun() was used to extract very long output from
child process.
* src/rtl/hbtoken.c
+ added support for dividing text into lines using EOLs used by different
platform. To enable it it's enough to specify .T. as delimiter.
* src/rtl/filesys.c
* pacified MSVC warning - in fact this modification is significant only
for bugy code which changes current directory in MT programs. It's bug
on all platforms using current directory as process not thread
attribute (common behavior).
* include/inkey.ch
* src/rtl/hbgtcore.c
+ added new extended keycodes:
HB_K_TERMINATE
HB_K_MENU
* contrib/gtqtc/gtqtc1.cpp
+ center and rescale to console window dimension keeping aspect size ratio
picture passed to HB_GTI_DISPIMAGE when second parameter is .T.
+ added support for HB_K_MENU key
! fixed dynamic font size modification in fullscreen, maximized and
HB_GTI_RESIZEMODE_ROWS modes
2014-12-05 01:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbffind.c
* src/common/hbfsapi.c
* src/rtl/filebuf.c
* src/rtl/fssize.c
* contrib/hbmzip/mzip.c
* contrib/xhb/filestat.c
! typo in comment - thanks to Viktor
* include/hbexprb.c
* small code reorganization
* include/hbvmpub.h
* src/vm/hvm.c
% use HB_VM_PUSHNIL() macro
! generate RTE for code like:
LOCAL aVar[ 10, -1 ]
(Cl*pper compatible)
2014-12-05 00:13 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* src/common/hbver.c
* synced copyright with fork to be in sync with merged sources
2014-12-04 19:28 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! fixed typo in recent modification
2014-12-04 10:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* contrib/hbct/doc/en/dattime3.txt
* contrib/hbmzip/mzip.c
* contrib/xhb/filestat.c
* src/common/hbffind.c
* src/rdd/hbsix/sxcompr.c
* src/rtl/filebuf.c
* src/rtl/filesys.c
* src/rtl/fssize.c
* src/rtl/fstemp.c
! typo in comments
* src/common/hbfsapi.c
! hb_fsFNameMerge() fixed to not refer to szDrive in HB_TRACE mode
(2014-11-29 14:29 UTC+0100 Viktor Szakats)
* src/rtl/fnsplit.c
* removed szDrive setting before call to hb_fsFNameMerge() - it's not
longer necessary
2014-12-03 11:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexprb.c
! fixed GPF in compilation of this code:
DO hb_i18n_getText
* include/achoice.ch
* include/blob.ch
* include/dbinfo.ch
* include/hbapi.h
* include/hbapicdp.h
* include/hbatomic.h
* include/hbclass.ch
* include/hbinit.h
* include/hbsetup.ch
* include/hbsetup.h
* include/inkey.ch
* include/ord.ch
* include/simpleio.ch
* src/common/hbver.c
* src/rtl/hbi18n2.prg
* src/rtl/val.c
* synced with Viktor's branch (casing, formatting, comment updating,
clang support, use hb_FReadLen(), use hb_GetStdIn(), removed redundant
casting)
* include/fileio.ch
+ added HB_FLX_* constants
* include/harbour.hbx
* added __wapi_GetConsoleOutputCP()
* include/hbapi.h
* src/common/hbver.c
+ added hb_iswin*() functions borrowed from Viktor's branch
2014-12-03 00:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.ch
+ added HB_SOCKET_ERR_NONE
* src/rtl/hbsocket.c
* clear socket error when hb_socketRecv*() or hb_socketSend*() returns
value greater then 0
% removed unnecessary error code setting in MS-Windows builds
of hb_socketGetIFaces()
* src/rtl/filesys.c
! allocate dynamically buffer for current directory name if default
one is too small when current disk is checked
* src/rtl/hbzlib.c
* use hb_xalloc()/hb_xfree() to allocate/free memory during
ZLIB compression and decompression instead of ZLIB default
ones (finished code started in Viktor's branch)
* src/rtl/tlabel.prg
* src/rtl/treport.prg
% use hb_ATokens() instead of local functions ListAsArray()
* simplified reading labels and reports from files
* src/rtl/teditor.prg
* src/rtl/tget.prg
* src/rtl/tlabel.prg
* src/rtl/treport.prg
* synced with Viktor's branch:
removed explicit NIL from parameters, formatting, updated comments
and variable names, use FOR EACH and SWITCH statements,
use hb_defaultValue(), use hb_StrShrink(), formatting, few fixes
* src/rtl/langcomp.prg
* synced with Viktor's branch
* src/rtl/memoedit.prg
* synced with Viktor's branch, optimizations, formatting and fixes:
; 2014-03-28 13:09 UTC+0100 Viktor Szakats
+ MemoEdit(): allow BLOCK and SYMBOL types for user callbacks
(only in the default, non-strict mode)
! MemoEdit(): fixed to only handle certain types of events in ME_INIT
stage in harmony with Cl*pper documentation
! MemoEdit(): fixed to not get into an infinite loop on initialization
when user callback is returning unhandled value
https://github.com/harbour/core/issues/21
! MemoEdit()/HBMemoEditor():KeyboardHook(): fixed to fall back to
default handling of K_ESC if getting called recursively
https://github.com/harbour/core/issues/21
+ HBMemoEditor():HandleUserKey(): now returns whether the event was
handled (as logical value) (previously: Self) [INCOMPATIBLE]
* fixed some misleading variable names
; 2014-01-28 03:11 UTC+0100 Viktor Szakáts
! MemoEdit() fixed to pass-through without interactivity
when the user function is a boolean .F.
; 2014-01-27 15:15 UTC+0100 Viktor Szakáts
% abort key checking optimized and made unicode compatible
* src/rtl/listbox.prg
* synced with Viktor's branch, optimizations, formatting and fixes:
; 2014-07-21 08:56 UTC+0200 Viktor Szakats
! ListBox():findData(): fixed to be able to search for non-string
data, to the same extent Cl*ipper is able to.
! ListBox():findData(): fixed exact/case-insensitive regression
from 6f8508ff54a3955822b36bf4a65a2775a11bab23
; 2014-07-21 03:26 UTC+0200 Viktor Szakats
+ LISTBOX object instance area made compatible with Cl*pper
(relevant when object is accessed as array)
; 2014-07-21 01:20 UTC+0200 Viktor Szakats
* renamed variable and macro to reflect their type
+ ListBox():findData(): documented potential RTE
; 2014-07-21 01:04 UTC+0200 Viktor Szakats
% ListBox():findText(), ListBox():findData(): use hb_LeftEq[I]()
! ListBox():findText(), ListBox():findData(): fixed to not RTrim()
while searching in EXACT mode. Regression from f61409bf19731c8485aa29bae273cae090c77502
+ ListBox():findText(), ListBox():findData(): allow to search
for any type of data in HB_CLP_STRICT mode to mimic Cl*pper behavior
! ListBox():findText(): fixed to allow zero length search text,
like Cl*pper. Regression from 93d3a46d843daaf6d08149d83fa5203ff910c484
! ListBox():addItem( cText, cData ): fixed to allow any type for cData,
not just NIL and string, like Cl*pper
+ ListBox():setData(): documented a Cl*pper bug
; 2014-03-09 18:19 UTC+0100 Viktor Szakáts
! ListBox():scroll() fixed to ignore non-numeric parameter
(like Cl*pper) instead of an RTE
2014-11-29 06:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
* src/common/hbffind.c
* src/rtl/direct.c
* src/rtl/dirscan.prg
* src/rtl/filebuf.c
+ added lTime member to HB_FFIND structure
+ added 3-rd parmeter to hb_fsDirectory()
+ extended default maximum number of Harbour file IO redirecros to 128
* use hb_xgrabz()
* formatting
* include/hbcompdf.h
* include/hbpp.h
* src/compiler/cmdcheck.c
* src/compiler/genc.c
* src/compiler/hbcomp.c
* src/compiler/hbmain.c
* src/compiler/ppcomp.c
* src/pp/hbpp.c
* src/pp/ppcore.c
* src/pp/pplib.c
+ added support for -ql compiler switch - it disables displaying PRG line
numbers during compilation
+ added internal support for switch which disables PRG names from final
PCODE - it's not active by default
* src/compiler/ppcomp.c
+ allow to change -gc? switch by #pragma directives
* src/compiler/hbusage.c
* present '-' as default option separator for all platforms
* src/rdd/Makefile
+ src/rdd/rddshort.c
- src/rdd/dbfuncs.prg
* moved short function names (10 characters Cl*pper compatible) wrappers
to rddshort.c
* src/common/hbhash.c
* src/compiler/gencc.c
* src/compiler/hbcomp.c
* src/compiler/hbdbginf.c
* src/compiler/hbdead.c
* src/compiler/hbmain.c
* src/compiler/hbopt.c
* src/debug/dbgentry.c
* src/pp/ppcore.c
* src/rdd/dbf1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/delim1.c
* src/rdd/sdf1.c
* src/rdd/hsx/hsx.c
* src/rdd/usrrdd/usrrdd.c
* src/rdd/wafunc.c
* src/rdd/workarea.c
* src/vm/classes.c
* src/vm/dynsym.c
* src/vm/estack.c
* src/vm/runner.c
* src/vm/set.c
* src/vm/task.c
* src/rtl/cdpapi.c
* src/rtl/filebuf.c
* src/rtl/gtcgi/gtcgi.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtxwc/gtxwc.c
* src/rtl/hbdyn.c
* src/rtl/hbgtcore.c
* src/rtl/hbi18n1.c
* src/rtl/hblpp.c
* src/rtl/hbznet.c
* src/rtl/iousr.c
* use hb_xgrabz()
* src/common/hbprintf.c
* formatting
* reduced variable scope
* src/rdd/dblist.prg
* src/rdd/hbsix/sxini.prg
* src/rtl/hbfilehi.prg
% use new hb_FName*() functions
* src/codepage/cp_950.c
* src/codepage/cp_big5.c
* src/codepage/cp_gbk.c
* src/codepage/cp_u16le.c
* src/codepage/cp_utf8.c
* src/common/hbfopen.c
* src/common/hbstr.c
* src/common/strwild.c
* src/compiler/complex.c
* src/compiler/genc.c
* src/compiler/hbopt.c
* src/compiler/hbusage.c
* src/debug/dbghelp.prg
* src/debug/debugger.prg
* src/hbextern/hbextern.prg
* src/main/harbour.1
* src/pp/ppcore.c
* src/rdd/dbcmd.c
* src/rdd/dbcmd53.c
* src/rdd/dbf1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbjoin.prg
* src/rdd/dbnubs.c
* src/rdd/dbsort.prg
* src/rdd/dbstrux.prg
* src/rdd/dbtotal.prg
* src/rdd/dbupdat.prg
* src/rdd/hbsix/sxcompat.prg
* src/rdd/hbsix/sxcrypt.c
* src/rdd/hbsix/sxini.prg
* src/rdd/hsx/hsx.c
* src/rdd/usrrdd/usrrdd.c
* src/vm/debug.c
* src/vm/estack.c
* src/vm/set.c
* src/vm/task.c
* src/rtl/achoice.prg
* src/rtl/adir.prg
* src/rtl/alert.prg
* src/rtl/altd.prg
* src/rtl/base64d.c
* src/rtl/browse.prg
* src/rtl/cdpapi.c
* src/rtl/checkbox.prg
* src/rtl/color53.prg
* src/rtl/dbedit.prg
* src/rtl/dircmd.prg
* src/rtl/dirscan.prg
* src/rtl/errapi.c
* src/rtl/errsys.prg
* src/rtl/fnsplit.c
* src/rtl/gtchrmap.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtsln/mousesln.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* src/rtl/gtxwc/gtxwc.c
* src/rtl/gui.prg
* src/rtl/hbbfish.c
* src/rtl/hbdoc.prg
* src/rtl/hbfilehi.prg
* src/rtl/hbgtcore.c
* src/rtl/hbi18n2.prg
* src/rtl/hbini.prg
* src/rtl/hblpphb.c
* src/rtl/hbregexc.c
* src/rtl/memvarhb.prg
* src/rtl/menusys.prg
* src/rtl/menuto.prg
* src/rtl/objfunc.prg
* src/rtl/padc.c
* src/rtl/padl.c
* src/rtl/padr.c
* src/rtl/profiler.prg
* src/rtl/radiobtn.prg
* src/rtl/radiogrp.prg
* src/rtl/setcolor.c
* src/rtl/tbcolumn.prg
* src/rtl/tbrowse.prg
* src/rtl/tclass.prg
* src/rtl/tgetint.prg
* src/rtl/tgetlist.prg
* src/rtl/tmenusys.prg
* src/rtl/tobject.prg
* src/rtl/tpersist.prg
* src/rtl/tpopup.prg
* src/rtl/tpopuphb.prg
* src/rtl/treport.prg
* src/rtl/tscalar.prg
* src/rtl/tsymbol.prg
* src/rtl/ttextlin.prg
* src/rtl/typefile.prg
* formatting, casing, comment updating, removed trailing spaces, casting,
replace hb_itemType() with HB_IS_*() macros, updated variable and
function names and scopes, pacified unused result warnings, removed
redundant castings, use HB_SIZEOFARRAY() and sizeof(), removed explicit
NIL from parameters, use hb_LeftEq[I](), added supports for symbol items
used as codeblock replacements, use hb_defaultValue(), use FOR EACH
statement, use SWITCH statement, replaced SubStr() with Left() or
Right(), use hb_AScan(), use hb_FReadLen()/hb_VFReadLen(),
removed FO_READ from FOpen() parameters, use Str() instead of PadL(),
use hb_StrShrink()
* src/lang/l_el.c
* src/lang/l_es_419.c
* src/lang/l_fr.c
* src/lang/l_hu.c
* src/lang/l_pt_br.c
* src/lang/l_sk.c
* src/lang/l_tr.c
* synced with Viktor's branch
* src/rtl/achoice.prg
* src/rtl/cdpdet.prg
* synced with Viktor's branch
* src/vm/Makefile
+ src/vm/short.c
+ added short function names (10 characters Cl*pper compatible) wrappers
* src/vm/extrap.c
* synced with Viktor's branch
* src/rtl/Makefile
+ src/rtl/rtlshort.c
+ added short function names (10 characters Cl*pper compatible) wrappers
* src/rtl/cdpdetc.c
* include/harbour.hbx
+ added __wapi_GetConsoleOutputCP()
* src/rtl/datec.c
* include/harbour.hbx
+ added hb_CDay( ) ->
* src/rtl/filesys.c
! do not check for PIPEs handles in WinCE builds
! respect OS returnb code in SystemTimeToFileTime()
* src/rtl/gete.c
* covered GetE() function by HB_CLP_UNDOC macro
* src/rtl/philes53.c
* covered FSetDevMod() function by HB_CLP_UNDOC macro
* src/rtl/hbdoc.prg
* use HB_SERIALIZE_COMPRESS instead of explicit hb_ZCompress()
(incompatible, .hbd files has to be regenerated)
* src/rtl/hbjson.c
* add a newline at EOF in human readable mode
* src/rtl/hbzlibgz.c
* disabled GZIP support in MSVC WinCE builds
* src/rtl/philes.c
* include/harbour.hbx
+ added hb_FReadLen()
* src/rtl/vfile.c
* include/harbour.hbx
+ added hb_VFReadLen()
* src/rtl/strclear.c
! check hb_itemGetWriteCL() result
; above modifications borrowed from Viktor's branch with some small
modifications - many thanks
* src/rtl/hbinet.c
* extened readahead buffer from 256 to 1500 bytes
! fixed possible wrong result in hb_InetDataReady() and redirected
sockets (i.e. by hb_InetCompress())
* src/rtl/hbsocket.c
! typo in recent modification for BSD socket less builds
+ src/rtl/strutf8.c
* include/harbour.hbx
+ added hb_StrIsUTF8() - it should be compatible with similar function
from Viktor's branch
* src/rtl/tpersist.prg
* eliminated oSelf private variable and reduced macro expansion to
item values
* src/debug/dbgtmenu.prg
* src/debug/dbgtwin.prg
* src/debug/debugger.prg
! replaced SaveScreen()/RestScreen() with
__dbgSaveScreen()/__dbgRestScreen() to fix problems with unicode
characters which do not exists in HVM CP.
* src/rdd/hbsix/sxcompat.prg
+ added support for timestamp values to sxChar(), sxNum(), sxDate()
functions.
2014-11-24 22:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbrand.c
! fixed memory leak
* src/rtl/philes.c
! fixed number to handle casting
* src/rtl/version.c
! added missing break in switch statement
* src/rtl/hbsockhb.c
* formatting and protection against wrong parameter passed
to hb_socketGetHosts()
; above modifications borrowed from Viktor's branch with some small
modifications
* src/rtl/hbsocket.c
! always set pSockAddr and puiLen parameters passed to hb_socketAccept()
and hb_socketRecvFrom() functions
* formatting and comment syncing with Viktor's branch
2014-11-24 10:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiocli.c
* pacified warning
2014-11-24 09:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
* pacified warning
2014-11-21 16:31 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
! fixed detecting QT when both QT4 and GT5 versions are installed
in OSX (synced with Viktor's branch)
* src/rtl/gttrm/gttrm.c
* small modification for future usage
2014-11-21 13:40 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/replic.c
% optimized REPLICATE() function
2014-11-19 08:37 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
* small simplification
* src/rtl/hbznet.c
! fixed possible data stream corruption which could be exploited in
systems which can accept only one byte in socket write operation
when internal TCP output buffers are full. Rather seldom situation
but theoretically possible, i.e. in VPN.
2014-11-18 14:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
+ added new rddInfo() action: RDDI_DECIMALS
* include/hbrdddbf.h
* src/rdd/dbf1.c
+ added support for RDDI_DECIMALS - when set it's used as default number
of decimal places in conversions to string for fields type "B" and "8"
with 0 number of decimal places in DBF header.
2014-11-14 18:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* clear socket error after successful connect
* src/rtl/hbznet.c
! fixed possible connection interrupting when data incomes fragmented
in very small peaces
2014-11-12 18:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
+ added HB_GTI_MINIMIZED
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
+ added support for HB_GTI_MINIMIZED
* src/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_MINIMIZED and HB_GTI_MAXIMIZED
; All above modifications created by Rolf - thanks
* contrib/hbnetio/netiocli.c
* updated some RTEs to be a little bit more precise
* contrib/hbblat/hbblat.hbp
* disabled unconditional dynamic library build
2014-11-04 01:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* doc/xhb-diff.txt
! typos
* doc/clipper.txt
! removed completely false information about 'LIST &cMacro'
* updated information about FOR EACH
; in general information in this file are outdated and does not
correctly describe current Harbour behavior. I strongly suggest
to not use it in any other documentation. In some spare time
I'll update this file or remove.
* doc/cmpopt.txt
+ added information about unsupported by Clipper syntax extension:
iif( , , ) =
* include/hbrddnsx.h
* minor modification in comment
* src/macro/macrolex.c
* accept unconditionally hash 'key => value' operator
* src/rdd/dbfnsx/dbfnsx1.c
! fixed very bad bug in leaf key compression. This problem could be
exploited by keys containing containing CHR( 255 ) in encoded keys
just before trailing empty key characters.
This bug could cause index corruption.
* use hb_xgrabz()
* formatting
2014-10-28 16:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/xhb-diff.txt
* updated information about extended CDX format and defined by user
index page size in section "NATIVE RDDs"
2014-10-24 15:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddntx.h
* src/rdd/workarea.c
* src/rdd/dbf1.c
* src/rdd/delim1.c
* src/rdd/sdf1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbffpt/dbffpt1.c
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsx.c
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
* contrib/sddfb/core.c
* contrib/sddmy/core.c
* contrib/sddoci/core.c
* contrib/sddodbc/core.c
* contrib/sddpg/core.c
* contrib/sddsqlt3/core.c
* cleaned AREAP casting
* unified some variable names
* cleaned some DBOI_* actions
* allow to call ORDERINFO() method without itmResult item.
* few other cleanups
2014-10-24 04:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/rddads.h
+ added support for RDDI_INDEXPAGESIZE in ADI indexes
* src/rdd/dbf1.c
* minor cleanup
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
+ added support for long index keys when bigger pages are used.
Now maximum index key size is 4082 for 8192 bytes length index pages.
Indexes are critical for database applications so please make
tests with current code and report problems if you find any.
2014-10-23 17:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* renamed CDX_TYPE_TEMPORARY to CDX_TYPE_PARTIAL
* eliminated Temporary member from CDXTAG structure
* cleaned tag signature flag setting to strictly follow
CL5.2 (SIx3) and CL5.3 (COMIX)
2014-10-23 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
* pacified warning
2014-10-23 13:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
; minor comment update
* utils/hbmk2/hbmk2.prg
! fixed error/waring messages after recent modifications for -stop
switch
2014-10-23 13:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
! check if AE_VALUE_OVERFLOW macro exists before use
! fixed memory leak
% use char* instead of UNSIGNED8* to eliminate unnecessary casting
* use HB_IT_EVALITEM instead of HB_IT_BLOCK
* formatting and minor cleanups
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* modifications for longer index keys when bigger pages are used
(work in progress)
2014-10-22 10:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* modifications for longer index keys when bigger pages are used
(work in progress)
2014-10-22 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* force default index page size when CDX header does not contain
Harbour signature
* added RTE when index expression returns item with unsupported
type during indexing
* modifications for longer index keys when bigger pages are used
(work in progress)
* formatting
2014-10-21 16:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbmk2/hbmk2.prg
! yet another -stop fix borrowed from Viktor's branch
2014-10-21 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* added support for user defined index page size in DBFCDX.
To change page size for newly created index it's enough to call:
hb_rddInfo( RDDI_INDEXPAGESIZE, , "DBFCDX" )
DBFCDX accepts page sizes which are power of 2 in from 512 to 8192.
The upper range is my personal decision and can be easy changed
in Harbour source code. 512 is default CDX index page size and
only such indexes can be read by other RDDs.
In some cases bigger pages can increase performance and reduce
index size. In local networks probably 1024 should give optimal
performance because can be transferred in single ethernet frame.
Just make a tests.
; In next step I plan to add support for longer index keys when
bigger pages are used.
* utils/hbmk2/hbmk2.prg
! added -stop fix borrowed from Viktor's branch
2014-10-20 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/lang2po.hb
! fixed negative UTC offsets to string conversion
* include/dbinfo.ch
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
+ added DBOI_INDEXPAGESIZE - get index page size
* include/dbinfo.ch
* include/hbrdddbf.h
* src/rdd/dbf1.c
+ added RDDI_INDEXPAGESIZE - get/set default index page size
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* modification for user defined index page size (work in progress)
2014-10-19 14:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwvt/gtwvt.c
* small cleanup in HB_GTI_UNITRANS
2014-10-17 14:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
+ added support for large index files over 4GB length.
These are slightly modified CDX indexes which stores index page numbers
instead of index page offsets inside index file. This trick increase
maximum index files size from 2^32 (4GB) to 2^41 (2TB). This index
format is enabled automatically when DB_DBFLOCK_HB64 is used. This is
the same behavior as in DBFNTX and DBFNSX for which I added support
for large indexes (up to 4TB) few years ago.
Warning: new CDX indexes are not backward compatible and cannot be
read by other systems or older [x]Harbour versions.
If you try to open new indexes using older [x]Harbour RDDs
then RTE "DBFCDX/1012 Corruption detected" is generated.
When current Harbour *DBFCDX/SIXCDX RDD open index file
then it automatically recognize type of index file so it
will work correctly with both versions without any problem.
In short words: People using DB_DBFLOCK_HB64 should remember
that after reindexing with new Harbour applications old ones
cannot read new CDX indexes.
; In next step I plan to add support for user defined page size in CDX
index files.
* doc/xhb-diff.txt
* added information about extended CDX format to section "NATIVE RDDs"
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* disable record readahead buffer used during indexing when only
one record can be stored inside
! generate RTE when data cannot be read into record readahead buffer
during indexing
2014-10-14 14:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed size of picture shown by HB_GTI_DISPIMAGE
! fixed indexes used to restore text data after
hb_gtInfo( HB_GTI_DISPIMAGE, "" )
2014-10-13 18:53 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed recent modification (force character redrawing)
2014-10-13 17:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/Makefile
! fixed to only include compilable GTs in Harbour dynlib
(borrowed from Viktor's fork)
* src/rtl/gtxwc/gtxwc.c
+ redraw screen area when empty string is passed as image body
to HB_GTI_DISPIMAGE, i.e.:
hb_gtInfo( HB_GTI_DISPIMAGE, "" [, ] )
If is not given then whole screen is refreshed.
2014-10-08 18:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/arrays.c
! added protection against internal error when ACOPY() is executed
with the same array passed as source and target without any indexes
which can force item move. Now ACOPY() works like in Cl*pper.
2014-10-08 11:06 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbamf/amfdec.c
! simplified and fixed datetime decoding.
Please verify what is the correct time base value.
Used by current and commented previous wrong code:
1970-01-01 00:00:00 => 210866803200000
or:
1969/12/31 12:00:00 => 210866760000000
Testing please remember about UTC offset.
* contrib/hbbz2/core.c
! fixed declaration for bz_internal_error()
2014-10-08 02:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
* minor fix in recently added casting
2014-10-08 02:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
* src/rtl/gtpca/gtpca.c
* pacified warnings
* src/rtl/hbjson.c
! include hbjson.h
2014-10-07 22:52 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbjson.h
* exported hb_jsonEncode() and hb_jsonDecode() functions
2014-10-07 10:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/win/msvc.mk
* utils/hbmk2/hbmk2.prg
* disabled -nologo option used with resource compiler in MSVC builds.
Compiler version is not enough to detect supported parameters when
Platform SDK rc.exe is used.
2014-10-07 10:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
* src/rtl/gtxwc/gtxwc.c
* src/rtl/langapi.c
* pacified warnings
* contrib/hbmlzo/3rd/minilzo/minilzo.hbp
! disabled dynamic library
2014-10-07 01:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbhpdf/3rd/libhpdf/hpdfpago.c
* pacified warning
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* rediffed
2014-10-07 00:56 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtinymt/3rd/tinymt/tinymt32.h
* pacified warning
* contrib/hbtinymt/3rd/tinymt/tinymt.dif
* rediffed
2014-10-07 00:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
* use strict aliasing friendly conversions in MSC builds which support
intrinsic version of _byteswap_*() functions.
It should also pacify some of MSC warnings.
* include/hbdefs.h
* src/rdd/dbffpt/dbffpt1.c
* minor formatting
* contrib/gtwvg/wvgcore.c
! fixed HANDLE to LONG casting - it's bug in 64 bit builds
2014-10-06 22:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/hbmain.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* replaced 'char' type holder with 'HB_BYTE' - this is part of never
finished code which is completely dummy in current compiler and above
modification is only to pacify warnings which are real bugs in existing
implementation. I do not plan to modify or fix this code. I'll remove
it working on fully functional strong typing implementation.
2014-10-06 22:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
* src/macro/macro.y
* disabled 4244 and 4702 warnings in MSVC builds - this warnings are
from code generated by bison and they are out of our direct control
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* src/macro/macro.yyc
* src/macro/macro.yyh
* regenerated
2014-10-06 21:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed multiple input context initialization in HB_GTI_FONTSEL.
Thanks to Rolf for the information.
* contrib/hbnetio/netiocli.c
* contrib/hbwin/wapi_winbase.c
* src/rtl/iousr.c
* src/vm/cmdarg.c
* pacified MSVC warnings
2014-10-05 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/tiff/tiff.dif
* src/3rd/tiff/tiffconf.h
* do not redefine O_* macros in all *nix builds
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* src/macro/macro.yyc
* src/macro/macro.yyh
* regenerated with bison 3.0.2.
* src/rtl/hbcom.c
! fixed compilation with OpenWatcom for Linux
* src/rtl/hbsocket.c
* pacified warning in OpenWatcom Linux builds
* src/rtl/hbjson.c
* own code for conversion integer numbers
2014-10-05 11:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
* src/macro/macro.y
* update declaration depreciated in new bison version
* src/macro/macro.yyc
* src/macro/macro.yyh
* regenerated
2014-10-04 21:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
+ added support for decoded image data passed to HB_GTI_DISPIMAGE like
in GTXWC. Supported formats are RGB32, RGB16 and MONO bitmap.
Unlike GTXWC GTQTC rescales bitmap to passed cords.
* src/rdd/wafunc.c
! fixed very bad bug introduced in previous modification - in fact
potential problem existed from the beginning anyhow recent modification
allow to exploit it in all complex index expressions.
2014-10-03 19:06 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
! fixed typo reported by Rolf
2014-10-03 16:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/wafunc.c
% use dynamic symbol pointer to find field index
* src/rdd/workarea.c
* set default maximum field size to HB_SYMBOL_NAME_LEN characters
(by default in Harbour builds HB_SYMBOL_NAME_LEN is 63)
Some RDDs may set longer names but it will be respected only by
FieldName() function and in all other cases only HB_SYMBOL_NAME_LEN
characters is significant for Harbour so such decision should be
well thought by RDD authors because it may confuse users.
Warning: all 3-rd party RDDs which need to force shorter names
should update uiMaxFieldNameLength in their NEW() method
just after SUPER_NEW() call, i.e. like in core DBF RDD.
! respect uiMaxFieldNameLength when new fields are added
* src/rdd/dbf1.c
* set maximum field size to 10 characters
* contrib/rddsql/sqlbase.c
- removed code used to set uiMaxFieldNameLength to HB_SYMBOL_NAME_LEN.
Now it's default field length value for each RDD unless it does not
change it.
* contrib/rddads/ads1.c
* minor modification in adsFieldName()
* contrib/hbwin/wapi_winbase.c
+ added support for FORMAT_MESSAGE_ALLOCATE_BUFFER and 6-th
parameter to wapi_FormatMessage() function. The 6-th parameter
has higher priority than size of string passed in the 5-th parameter.
! fixed potential memory leak
2014-10-02 22:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/win_prn2.c
+ save LastError value in win_PrintDataRaw() and win_PrintFileRaw()
so user can access it using wapi_GetLastError()
2014-10-02 22:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/sddsqlt3/core.c
* decalre default size for numeric, blob and any fields
larger enough to store data after COPY TO
* decalre default size for string fields to at least 10
* some simplifications
2014-10-02 22:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/sddsqlt3/core.c
* set default number of decimal places in float SQLITE3 values
to _SET_DECIMAL. If user needs different number of decimal places
when he converts number to strings then he can set it explicitly.
Harbour does not change values of float point number retrieved
from SQLITE3 and always returns original data.
* do not set default length of numeric values for to string conversions.
2014-10-02 16:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/sddsqlt3/core.c
* removed dummy break statements
* contrib/xhb/xhbmvinf.c
! store memvar values instead of references to memvar variables in
array returned by __mvSymbolInfo()
2014-10-01 22:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
* src/common/hbstr.c
+ added new function hb_strAtI() - it works like hb_strAt() but it
ignores the case of the ASCII characters
* src/rtl/ati.c
* renamed local static function hb_strAtI() to s_strAtI() to avoid
conflict with new public hb_strAtI() function.
* contrib/xhb/xhbat.c
- removed local static function hb_strAtI() - current public hb_strAtI()
is compatible with it.
* contrib/sddsqlt3/core.c
+ added new code to set column type giving the highest priority SQLITE3
declared column types.
Please test - I haven't made any.
! do not cast floating point values to integer
* contrib/hbwin/hbwin.hbx
* contrib/hbwin/win_prn2.c
! fixed win_printerGetDefault() in Win9x builds - fix and some
formatting and casting borrowed from Viktor's fork.
+ added new PRG function:
win_PrintDataRaw( , [, ] )
->
It's similar to win_PrintFileRaw() but sends to given printer passed
in 2-nd parameter instead of file body.
On error it returns negative value.
* cleaned casting and minor formatting
* src/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_DISPIMAGE. It's slightly modified code sent
by Rolf to Harbour devel list. In comparison to original version it
supports as 4-th item of array with bitmap description to use
with some other GTs which can support different color depths or can
make conversion. It also supports bitmaps passed as strings.
% slightly improved HB_GFX_GETPIXEL
2014-09-26 15:34 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* contrib/rddads/ads1.c
! extended and fixed CANDEFAULT error processing for data width error
* contrib/rddads/adsx.c
! fixed typo in index creation code related to subindexing
2014-09-25 00:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/sddsqlt3/core.c
+ map columns with SQLITE_NULL values as HB_FT_ANY fields
2014-09-23 13:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbcurl/core.c
! added protection against operation on NULL pointers borrowed from
Viktor's branch.
2014-09-23 11:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvgd.c
* use hb_vmRequestQuit() instead of hb_vmRequestCancel() when
close event is received - it is GTXWC compatible behavior and
allows to execute user EXIT PROCEDUREs.
Please also remember that all ALWAYS sections are executed too
regardles of requested event (QUIT, BREAK, CANCEL)
* src/rtl/gtwvt/gtwvt.c
! fixed processing WM_QUERYENDSESSION and WM_ENDSESSION messages.
Now GTWVT applications do not interrupt system shutdown process
and do not close application if other process interrupted it.
In the future we can also add support for blocking system shutdown
operation, i.e. using HB_GTI_CLOSEMODE as bitfield, anyhow before
we begin to change it we should agree final version.
! applied Rolf's patch which fixes circle and ellipse cords.
I haven't tested it and I hope that they were verified visually
on the screen - some of Windows GUI functions do not access
border points.
2014-09-23 10:47 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddsql/sqlbase.c
! set maximum field size to HB_SYMBOL_NAME_LEN
* ChangeLog.txt
* removed TABs and format some of recent entries
2014-09-20 17:01 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/hbgtwvg.ch
! Fixed: overlapping HB_GRI_* constants which were added in GTWVT
later that these were defined in GTWVG.
* contrib/gtwvg/gtwvg.h
+ Borrowed some structure members from GTWVT.
* contrib/gtwvg/gtwvgd.c
+ Added: GTWVT specific HB_GTI_CLOSEMODE implementation.
+ Added: to respect array to hb_gtInfo( HB_GTI_SETPOS_XY ) call.
% Synchronized: 'X' button behavior as per GTWVT.
; Note: 'X' button behavior differs from GTWVT if HB_GTI_CLOSEMODE == 0.
For other mode it is identical to GTWVT.
2014-09-19 15:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_MOUSEPOS_XY and HB_GFX_GETPIXEL.
Modifciations created by Rolf.
2014-09-19 15:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
! fixed typo in hb_timeUTCOffset() - this code was used in POSIX
systems which do not support gmtime_r()/localtime_r() - many
thanks to Teo.
* src/debug/dbgentry.c
* src/debug/debugger.prg
* prepare the code to return error object when evaluated expression
fails as proposed by Teo. This functionality is not enabled yet.
I'm waiting for information about current public debugger API used
in 3-rd party projects before I decide to change it.
2014-09-18 00:23 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/gtwgud.c
+ Added: hb_gtInfo( HB_GTI_SETPOS_XY, { nRow|nX, nCol|nY } )
in addition to previous implementation.
2014-09-17 14:50 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/gtwvg/wvtwin.ch
+ Added: more WAPI constants.
2014-09-17 16:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdebug.ch
+ added HB_DBG_* constant values for arrays returned by __dbg*()
functions
* include/hbset.h
* src/vm/set.c
+ added new C function: hb_setGetItem();
* src/debug/dbgentry.c
* use HB_DBG_* constant values
+ added new debugger function: __dbgGetSETs() - it returns array with
all HVM SETs: { { ,