- src/codepage/l_ua.c
+ src/codepage/l_uk.c
* src/codepage/cpua1125.c
* src/codepage/cpua1251.c
* src/codepage/cpuakoi8.c
! renamed to be in sync with ISO language code
and src/lang/uk.c filename
* src/codepage/cpsviso.c
! fixed wrong conversion in prev. Turns out code 140, 156 and 159
are not part of the ISO-8859-1 CP:
[ https://en.wikipedia.org/wiki/ISO/IEC_8859-2 ]
; NOTE: To Klas: I'd appreciate if you could test both SVISO
and SVWIN if they work exactly like before.
It probably will be wrong and if it's so probably it
should be converted to raw form, or even better to
use ISO-8859-15 CP, which does contain the required
Swedish letters:
[ https://en.wikipedia.org/wiki/ISO/IEC_8859-15 ]
* src/codepage/cp_tpl.c
* updated for UTF8
* src/codepage/cphr646.c
* src/codepage/cpsl646.c
* src/codepage/cpsr646.c
! fixed escape chars wrongly converted in prev commit
* src/codepage/cpsr646c.c
+ converted to UTF-8.
; TODO: test it.
* tests/cpinfo.prg
+ generate UTF-8 CP modules when using Harbour builds.
; NOTE: Now all CPs are using UTF-8 (#define HB_CP_UTF8)
so now we may well delete the non-UTF-8 mode and
the extra flag as well.
* harbour/include/hbcdpreg.h
* harbour/include/hbapicdp.h
* harbour/src/rtl/cdpapi.c
* added to hb_cdpRegisterNew() new parameter which informs CP engine
that passed strings with upper and lower letters are in UTF8 encoding.
* harbour/src/codepage/cpplmaz.c
* defined PLMAZ codepage using UTF8 encoding - just as an example.
* harbour/utils/Makefile
* compile hbtest before hbmk2 - it alows to build HVM test tool even if
HBMK2 cannot be compiled (i.e. some compilers does not accept
resource/icon files used by HBMK2)
* src/codepage/cpcs852.c
* src/codepage/cpsk852.c
! changed to forced binary (raw) format by regenerating them from
Harbour with a patched cpinfo.prg. It resolves the clang hang
on OS X after upgrading to Xcode 4.6 with clang 'Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)'
Besides the above two, more cp sources are still generating
warnings about invalid CP used, and these are the only remaining
Harbour sources that use non-UTF-8 and non-7-bit ASCII chars
(see 2012-07-22 16:09 UTC+0200), so probably it'd be best to fix
them all either this way, or some other, f.e. by storing them
as UTF-8.
* tests/cpinfo.prg
* minor in output formatting
* contrib/hbhpdf/harupdf.ch
+ sync instruction comment for developers
* contrib/xhb/xhberr.prg
! replaced very shoddy commented code dealing with memvars
with clean code (though using internal calls)
! fixed screen dump for unicode/non-unicode
* include/fileio.ch
* replaced C-specific code in a Harbour header with
non-future-proof but cross-compatible code. untested.
* src/3rd/zlib/Makefile
! potential but untested fix for msvcarm targets
* harbour/src/vm/classes.c
+ added new PRG function:
__clsGetAncestors( <nClass> ) -> { <nSupper1>, <nSupper2>, ... }
* generate RTE if someone tries to register scalar class with instance
variables.
* updated some comments
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
+ added new C function hb_itemGetLX()
It's similar to hb_itemGetL() but returns HB_TRUE for
some non logical items to mimic Cl*pper behavior.
* harbour/src/rdd/workarea.c
* harbour/src/rdd/dbf1.c
! use hb_itemGetLX() instead of hb_itemGetL() in DBEVAL(),
COPY TO ..., APPEND FROM ..., SORT TO ... functions and
commands - Cl*pper compatible behavior.
* harbour/src/rdd/dbfntx/dbfntx1.c
* minor indenting
* harbour/include/fileio.ch
+ added HB_FA_ANY macro value - it's attribute mask for hb_fsFindFirst()
which includes all directory entries regardless of their attributes.
* harbour/contrib/hbct/files.c
! fixed FILEATTR() to accept by default directories, hidden and system
files when called with file name in first parameter - it's standard
CT3 behavior.
! limit attributes in mask used by FILE*() functions to standard DOS
ones - without it existing code is not portable to * nixes.
* src/rdd/usrrdd/rdds/arrayrdd.prg
! more formatting fix to latest patch
; TOFIX: hbformat to uppercase 'NIL' and to add
space between '!' operator and next token. Also to
format #define code (old) and to not break with inline
comments inside continued lines (old).
- contrib/hbhpdf/error.prg
+ contrib/hbhpdf/errstr.prg
* contrib/hbhpdf/hbhpdf.hbp
! renamed to not have the word 'error' in filename
* src/rdd/usrrdd/rdds/arrayrdd.prg
* patch by Quique:
! Fix '=' (comparative operator) in seek and scope
! Fix ADel()/AIns with 3 arguments
! Fix unlock records when change the pointer
+ Add locate
! my fixes: if() -> iif(), ending EOL, missing formatting,
copyright line
* harbour/src/rtl/itemseri.c
+ added support for deserialization item with cross references encoded
by HB_SERIALIZE() in xHarbour.
Now everything (except codeblocks) [hb_]serialized by xHarbour can
be decoded by HB_DESERIALIZE() in Harbour.
* utils/hbmk2/hbmk2.prg
+ links to markdown and markdown to man-page converter tool
! minor cleanup to prev
* utils/hbmk2/hbmk2.1
* some updates
* ChangeLog.txt
! typos/updates in previous entry
* extras/hbdoc/*.prg
* src/rtl/memoedit.prg
* tests/clasinh.prg
* tests/classch.prg
* tests/inhprob.prg
! updated for new ::super: syntax
* src/rtl/itemseri.c
! fixed typo in latest modification:
'warning: use of unary operator that may be intended as compound assignment (+=)'
* contrib/hbgd/tests/test_out.prg
* contrib/hbhttpd/*
* contrib/hbtip/thtml.prg
* contrib/xhb/*.prg
* extras/httpsrv/*
* extras/guestbk/*
* website/faq/*.html
* website/samples/HowToBuildOnLinux.html
* website/third-party.html
* some steps to modernize old HTML
* extras/hbdoc/*.prg
* do not use [] as string delimiter
- tests/function.cfm
- website/samples/function.cfm.html
* .gitattributes
- obsolete file deleted
* harbour/src/vm/classes.c
* updated some comments
* renamed hb_setClsHandle() to __objSetClassHandle()
old function name covered by HB_LEGACY_LEVEL5 macro
* harbour/src/rtl/itemseri.c
+ added support for deserialization xHarbour HB_SERIALIZE() output.
All types except codeblocks are supported. I haven't added support
for xHarbour serialized data with cyclic references. If it will be
really necessary then I can implement it.
I also added workaround for bug in xHarbour serialization code so
now Harbour correctly decodes data with LONGLONG numbers though
xHarbour cannot correctly decode its own stream.
Now Harbour can deserialize xHarbour data encoded by HB_SERIALIZE()
and stored somewhere. It can be important in migration process, i.e.
SQLRDD uses HB_SERIALIZE() to encode data in memos so now SQLRDD
port for Harbour should read old tables and decode xHarbour items
correctly. The same is for any other tool which saved HB_SERIALIZE()
output in xHarbour.
* harbour/ChangeLog.txt
* minor update
* utils/hbmk2/hbmk2.prg
! FindInPath(): fixed for filenames with an empty
extension on *nix systems when opening hbrun scripts.
[slight chance of regression.]
! fixed to use ".\" also on non-*nix systems when using
-run option and the target doesn't have a directory.
Previously the wrong executable might have been executed
if another one with the same name existed in path.
+ detect another variant of "multiple definitions" linker option
+ detect "multiple definitions" linker message for another C compiler
+ tests/testcom1.prg
+ added com sample code posted by Przemek earlier
* contrib/hbsms/tests/send.prg
+ added Linux device name
* src/rtl/cdpdet.prg
* cleanup to local function name
* src/rtl/teditor.prg
! fixed current color being used instead of editor's own
colorspec when scrolling the editing area using
up/down/left/right keys
* utils/hbmk2/hbmk2.prg
! -env: option being wrongly listed as command-line only in help.
Regression after 2012-06-14 12:01 UTC+0200.
* comments
* ChangeLog.txt
! adjusted recommended replacement options in previous commit msg
* harbour/src/vm/classes.c
% small speed optimization for inline methods
+ added internal list of super classes bound with each class
% use super class list for scope checking
% use list of super classes for instance area casting
% use super class list in super destructor code - it should cause
noticeable speed improvement for releasing objects with destructors.
! few security fixes like possible GPF on wrong paramas.
* harbour/src/vm/macro.c
% use HB_P_DUPLICATE instrad of HB_P_PUSHUNREF in Field[W]Block()
functions
* harbour/src/rtl/gtwvt/gtwvt.c
! do not generate HB_K_RESIZE after SetMode() if there is no active
console window.
* harbour/include/hbstack.h
* cleaned declarations of some hb_stack*() functions - moved to internal
functions: hb_stackFree(), hb_stackInit(), hb_stackIncrease() and
hb_stackRemove()
exported: hb_stackPush(), hb_stackTopOffset() and hb_stackTotalItems()
* harbour/include/hbwmain.c
! fixed typo in argv list declaration
* harbour/utils/hbtest/rt_class.prg
+ added code to test non virtual hidden messages and super casting.
* harbour/contrib/hbmzip/mzip.c
* minor modifications in casting and parameter checking to make them
compatible with other similar core operations, i.e. FWRITE()
* src/rtl/hbfilehi.prg
! hb_PathRelativize() with a lForceRelative == .T. option
might have return wrong result if the base directory had symlinks.
As a workaround/hack, now the relative path will only be returned
if it actually exists. Otherwise the non-relative variant will
be returned.
; It should fix hbmk2 on OS X when f.e. building a plain .c source
in (default) non-incremental mode.
* utils/hbmk2/hbmk2.prg
! fixed to list missing symbols once even reported multiple
times in the linker output.
! fixed to not list symbols as missing if reported in certain
different error situations (f.e. as doubly defined symbol).
Extend exceptions as needed for other errors/compilers/language translations.
* src/rtl/tget.prg
! fixed RTE in ::OverStrike()/::Insert() when a non-string
parameter was passed
! fixed Clipper incompatibility when passing certain
multichar strings to ::OverStrike()/::Insert(). (f.e. "12", "23")
Clipper always uses the first char only.
! fixed ::unTransform() missing the leading decimal
point in number picture masks (f.e. ".9", "-.9", ".-9")
* tests/rto_get.prg
+ added regression tests for cases fixed above
* tests/rto_get.prg
* tests/rto_tb.prg
* minor modification to make them work as hbrun scripts
* src/rtl/gtwin/gtwin.c
! fixed to handle Alt+numpad keyboard entry in case the scan codes
were received in a single ReadConsoleInput() call. Such behavior
was observed when using keypad/alt mode with multiple brands of
barcode scanners, but most probably it might have happened anytime.
! fixed warnings in trace printf() masks
+ printf() trace will now log all scan codes read by ReadConsoleInput(),
more scan code information in more readable way and alt+numpad handling
more comprehensibly logged.
* cleaned a few numeric types
; Review me.
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new internal C function:
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
PHB_NESTED_CLONED pClonedList );
it copies object or clone it if class overloaded clone operation.
; TODO: add support for user defined class clone operation
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
* changed returned type of hb_itemCloneTo() to void
* harbour/src/vm/itemapi.c
* use hb_objCloneTo() in hb_itemClone*() functions.
* harbour/src/vm/arrays.c
* use hb_objCloneTo() in array/hash clone code.
* harbour/src/vm/arrayshb.c
! fixed return values in AEVAL() and ACOPY() when array
is passed by reference.
* harbour/src/rtl/tclass.prg
* harbour/src/vm/classes.c
* declare :SUPER and :__SUPER messages as non virtual ones.
Now ::SUPER and ::__SUPER messages executed in object method
returns casting to 1-st super object of the class in which
executed method was defined.
* harbour/include/hbclass.ch
* removed xtranslations for SUPER(): - this workaround for
missing non virtual messages in some Clipper OOP implementations
was breaking valid code which tried to use real :SUPER message
and made SUPER reserved word, i.e. it was not possible to create
code like:
LOCAL super := ::parent2
? super:v1, super:v2
Now this hack is not longer necessary and :SUPER is non virtual
massage in Harbour.
INCOMPATIBLE: If someone has some code like:
SUPER():MSG()
SUPER( PARENT ):MSG()
then please change it to:
::SUPER:MSG()
::PARENT:MSG()
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbmysql/tsqlbrw.prg
! fixed to use ::super() instead of super()
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
+ added GOCOLD() method - this method is necessary for WAs
passed to HB_DBDETACH()
* harbour/doc/xhb-diff.txt
* small update
* harbour/contrib/*/*.hbx
* regenerated
* harbour/src/rtl/hbcom.c
+ added translation for some OS error codes
* harbour/src/rdd/dbdetach.c
! minor correction in comment
* harbour/doc/xhb-diff.txt
+ added new section:
THREAD LOCAL WORK AREAS AND CONCURRENT WORK AREA ACCESS
* src/rtl/teditor.prg
! fixed a regression from 2012-11-14 04:49 UTC+0100, caused
by an odd coding case that doesn't occure anywhere else
in codebase (verified). Thanks to Vlado for noticing.
* harbour/src/vm/classes.c
! fixed unexpected item clearing in object item assignment when
variable is passed by reference - problem reported by Quique.
Here are code examples which could exploit the problem:
o:_var( @x )
or:
o:var := { @x }[ 1 ]
or:
o:var := iif( .t., @x, )
* harbour/src/rtl/hbcom.c
* enable RTS and DTR registers by default in MS-Windows builds.
I hope it will reduce number of pseudo "error" messages sent
by people who cannot read basic flow control documentation.
% unlock HVM when break signal is sent
* harbour/src/rtl/hbcom.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rtl/filesys.c
! fixed timeval usage in repeated select() calls in systems like Linux
* harbour/contrib/hbwin/win_rpc.c
! fixed WINCE builds
* harbour/src/rtl/hbinet.c
* repeat accept operation if other thread concurently accpeted
new connection or some asynchronous network error appeared.
; TOFIX: basic hbrun functionality is broken and now it is not possible
to create scripts starting with line:
#!/usr/bin/hbrun
which do not have .hb or .prg file name extension
- doc/en/hb_api.txt
- doc/en/hb_apier.txt
- doc/en/hb_apifs.txt
- doc/en/hb_apigt.txt
- doc/en/hb_apiit.txt
- doc/en/hb_apiln.txt
- doc/en/hb_apird.txt
- doc/en/hb_compa.txt
- doc/en/hb_date.txt
- doc/en/hb_macro.txt
- doc/en/hb_vm.txt
* doc/en/hb_set.txt
- deleted 0.5MB worth of collection of very outdated 1:1 copies
of C declarations and their comments from .h headers, as they
were 12 years ago.
* include/hbapi.h
* include/hbvmpub.h
* src/vm/codebloc.c
* HB_CODEBLOCK_PTR type renamed to PHB_CODEBLOCK. Old type
remains for a while for compatibility.
; TODO: Remaining list of similar ones:
public:
HB_MACRO_PTR PHB_MACRO
HB_ERROR_HANDLER_PTR PHB_ERROR_HANDLER
HB_ERROR_INFO_PTR PHB_ERROR_INFO
HB_HASH_ITEM_PTR PHB_HASH_ITEM
HB_HASH_TABLE_PTR PHB_HASH_TABLE
internal:
HB_VOID_PTR PHB_VOID
HB_CBVAR_PTR PHB_CBVAR
HB_EXPR_PTR PHB_EXPR
HB_ENUMERATOR_PTR PHB_ENUMERATOR
HB_ELSEIF_PTR PHB_ELSEIF
HB_LOOPEXIT_PTR PHB_LOOPEXIT
HB_SWITCHCASE_PTR PHB_SWITCHCASE
HB_SWITCHCMD_PTR PHB_SWITCHCMD
HB_RTVAR_PTR PHB_RTVAR
HB_COMMON_PTR PHB_COMMON
HB_PCODE_INFO_PTR PHB_PCODE_INFO
HB_COMP_PTR PHB_COMP
* config/darwin/clang.mk
+ use 'clang++' in C++ mode
* include/hbcomp.h
* include/hbmacro.h
* include/hbsetup.h
% deleted redundant and/or unnecessary C RTL headers
+ config/win/clang.mk
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.*.po
* README.txt
+ added very experimental clang support to the build
systems. Very lightly tested.
! fixed entry function detection not being enabled with clang
! fixed .res files not being added on os2/gcc[omf] from .hbc/sources= directive
+ added recently added new filter 'allbcc' to help text
! synced compiler list per platform in help/readme to reality
* ChangeLog.txt
+ updated 2012-12-16 00:17 UTC+0100 with the first DONE item.
* src/3rd/pcre/*
- reverted to 8.31 until all the breakage in configurability
is fixed either in pcre or by redesigning our way of
configuring it. Command-line configuration -DHAVE_*=0
doesn't seem to work anymore.
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/genc.c
* src/compiler/genhrb.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/hbmain.c
* few more type renames to have std Harbour prefix
* contrib/hbpost.hbm
* utils/hbmk2/pkg_dynl.hbm
* hack to avoid contrib/addon dynamic libs being used
automatically on *nix system when building executables.
Now they will be put in bin dir, just like on win.
* utils/hbmk2/hbmk2.prg
+ hbshell_include_list() API to list loaded core headers.
+ allow loading dynamic extensions on *nix even if built
against static HVM.
* display statically linked extensions in uppercase in
dot prompt UI and dynamic ones with original (lower) case.
(was normal case and postfixed with '*' respectively)
+ do not load dynamic extension if the .hbc file is not found
+ attempt to detect if dynamic extension loads fine on
a given platform and only try loading the dynamic lib
if it does.
+ added protection to not add duplicate compiler options
when compiling dot prompt entry.
* contrib/hbrun/hbrun.hbp
+ load default contrib libs dynamically on *nix, even if
hbrun is built against static HVM.
; these make work dynamic extensions on *nix systems.
* contrib/hbtip/sessid.prg
* extras/httpsrv/cgifunc.prg
* updated HTTP date format to use preferred format:
http://tools.ietf.org/html/rfc2616#section-3.3.1
% optimized code and eliminated unnecessary _SET_DATEFORMATs
; tip_DateToGMT() and its uhttpd_DateToGMT() derivative
* src/compiler/hbusage.c
* updated contributor list
* contrib/sddoci/tests/test1.prg
* contrib/sddodbc/tests/test1.prg
* contrib/sddodbc/tests/test2.prg
* contrib/sddsqlt3/tests/test1.prg
* use std way to configure date format
* include/Makefile
- include/hbtest.ch
* src/rtl/Makefile
- src/rtl/hbtest.prg
* utils/hbmk2/hbmk2.prg
- deleted hbtest from core.
* contrib/hbct/tests/test.prg
* contrib/hbgt/tests/test.prg
* contrib/hbmisc/tests/tsstrfmt.prg
* modified regression tests to use hbtest contrib
instead of hbtest functionality in core RTL
; Thanks to Mindaugas and Przemek, now the contrib
tests will require users to manually add 'hbtest.hbc'
to their hbmk2 cmdline in case someone would like
to build exes from them. Which means that fewer
people will bother to build and run them. They still
run simply using 'hbrun <name>.prg' as scripts.
* src/rtl/hbtest.prg
! made another accidentally public function STATIC
% merged XToStr() and XToStrE()
% XToStr() modified to use hb_CStr() where it can
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_math.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_trans.prg
% synced in-string date format with src/rtl/hbtest.prg
* contrib/hbmisc/tests/tsstrfmt.prg
! fixed to not rely on current date
! fixed to set date format