* contrib/hbwin/Makefile
+ contrib/hbwin/wapi_winnls.c
+ Added WAPI_GETACP()
+ Added WAPI_GETOEMCP()
; NOTE: TODO? These values could be used as a base for
default HB_GTI_CODEPAGE setting and _SET_CODEPAGE
for non-UNICODE Harbour builds.
* harbour/bin/hb-func.sh
* use -n2 as default harbour compiler parameter in hb* scripts
* harbour/include/hbinit.h
* added error messages when some mixed forms of startup initialization
are defined
* harbour/include/hbinit.h
! fixed typo in section name in last commit - thanks to Tamas again
* in C++ mode encapsulate startup functions inside
'extern "C" { ... }' to eliminate reallocation problems
* harbour/include/hbinit.h
* use more portable asm() directive instead of __asm__()
* explicitly restore .text segment for compilers which do not make
it automatically
Thanks to Tamas for the information.
* harbour/include/hbinit.h
* eliminated from ASM code used in HB_INITSEG_STARTUP direct references
to public functions - it resolves the problem with non relocatable
code breaking Harbour shared library.
TODO: find portable method to mark function as used for C compiler
without using any public symbols (functions or variables)
which may cause conflicts between modules.
Compilers like modern GCC versions are clever enough to detect
cyclic references (only compile time warnings are pacified in
such case) and they strip even group of functions it they are
not accessed externally.
* harbour/include/hbinit.h
+ added new alternative form for initialization code activated
by HB_INITSEG_STARTUP macro. This method uses asm() directive
to store call to startup function in .init segment.
It's a work in progress though current code is working in Linux
static builds and probably should work also with few other
compilers. Final version should help in adding support for
native non GCC based C compilers in some *nixes.
Thanks to Tamas for his help.
* harbour/include/hbdefs.h
* modified PHB_FUNC/HB_FUNC_PTR declaration to use external 'extern "C"'
encapsulation for C++ compilers which do not accept it directly
(i.e. BORLAND or GCC 2.xx)
* contrib/hbwin/win_regc.c
* Minor cleanup to make code more robust.
* contrib/hbqt/qtgui/QTableView.cpp
* Some minor changes after regenerating it with current generator tool.
* harbour/src/rtl/hbcrc.c
! fixed hb_crcct() to work with polynomials smaller then 8 bit,
i.e. parity bit: x^1+1 => 3
% small simplification in hb_crc() function
* contrib/hbwin/win_prn2.c
+ Eliminated rest of HB_TCHAR*() calls.
Please review, and test for memory leaks.
; No more HB_TCHAR*() macros in hbwin code.
* contrib/hbwin/win_misc.c
+ Added cast.
* contrib/hbqt/hbqt_base.cpp
* Minor formatting.
* src/compiler/hbmain.c
* src/compiler/cmdcheck.c
* src/compiler/hbcomp.c
* src/compiler/hbusage.c
* include/hbcompdf.h
+ Added support for -i- and -i+ options. They will disable/enable
handling of INCLUDE envvar.
* config/rules.mk
+ Added -i- Harbour compiler switch to avoid any interference
with user set INCLUDE envvars.
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbqmainwindow.h
* contrib/hbxbp/xbpwindow.prg
+ Implemented GC collectible pointer for HBQMainWindow().
/* Please do not commit anything in HBQT/HBXBP/HBIDE as I will be cleaning
up the code. BTW how can I invoke HBXBP_DEBUG() functionality.
I was just busy with the preparations of my daughter's wedding.
*/
* contrib/hbwin/mapi.c
+ Added support for unlimited number of recipients and
attached files. Please test and review.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/open64. (Please test)
* INSTALL
+ Added open64.
* harbour/include/hbsetup.h
* harbour/include/hbdefs.h
* harbour/include/hbthread.h
* harbour/src/common/hbver.c
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
* harbour/config/linux/gcc.mk
+ harbour/config/linux/open64.mk
+ added support for Open64 C/C++ compiler in Linux builds
* harbour/src/common/hbver.c
* removed unnecessary casting compiler version number parameters
to 'short'
* extended the size of szBuf buffer as requested by Tamas
* contrib/hbwin/mapi.c
+ Added support for UNICODE.
; Untested, I don't have a mailer on any Windows systems I have
access to to try it.
Please make tests with MSVC also, to check UNICODE.
! Fixed typo in prev modification.
! Added ( ULONG ) cast to -1 value.
+ Added copyright header.
* contrib/hbwin/tests/testmapi.prg
+ Added some test data to make it work.
(couldn't test it though, all I get is msgbox that I have no
mailer)
* src/rtl/gtwin/gtwin.c
* Using HB_SIZEOFARRAY().
* include/hbapi.h
* Typo in comment.
* ChangeLog
+ Added missing item to prev.
* contrib/hbwin/tests/testmapi.prg
! Fixed missing SVN props.
! Added missing SVN ID.
* Formatting.
; TOFIX: This example expects arrays and logical value from command line,
so it won't work.
* contrib/hbwin/Makefile
* contrib/hbwin/mapi.c
+ Added to Makefile.
! Added SVN ID.
! Added License header. (pls add your name to copyright headers)
! Fixed to use simple quote to include Harbour headers.
! Fixed Windows header inclusion.
! Disabled for UNICODE.
! Fixed to not use return value on stack as temporary variable.
! Fixed to not use static variable.
! Fixed UNICODE literals (also for WinCE).
! Fixed to not create NULL "holes" in passed to Windows lists
if received arrays have wrong content.
! Fixed to check return value of GetProcAddress().
% Optimized to only do parameter processing if MAPISendMail is available.
* Cleaned string parameter defaulting to "".
* Castings added and changed.
* Optimizations.
* Formatting (indentation, deleted unnecessary {}, variable scopes, ' ;' endings)
* Variable scopes.
* Using HB_SIZE.
* Avoiding duplicating constants.
+ Added some provisions for UNICODE support. Otherwise whole
code is disabled until this gets fully implemented.
; TODO: It'd be probably beneficial to remove artificial limit of
100 recipients and file attachments.
; NOTE: I didn't make any functional tests, so please make some.
An example/test code would be nice in tests subdir.
* harbour/include/hbwinuni.h
+ added new macro HB_ITEMGETSTR()
* harbour/src/rtl/gtwin/gtwin.c
* modified to use new UNICODE API instead of HB_TCHAR_*()
* harbour/contrib/hbwin/win_misc.c
* rewritten WIN_GETCOMMANDLINEPARAM()
New version does not use old HB_TCHAR_*() API and respect multiple
quoting by "" (i.e. .\"myapp"li"cation".exe)
TOFIX: WIN_ANSITOWIDE() and WIN_WIDETOANSI() are wrong and have
to be fixed. Please remember that number of character
after conversion to/from UNICODE can be different then
original number of chars, i.e. multibyte characters
can be replaced by single Unicode character or one Unicode
character may use few bytes representation.
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* Temporarily disabled mutex for HBMainWindow.
Please report any problems and experiences, or any reason
for the mutex implemented here, it's possible that I'm
missing something.
* contrib/hbqt/qtgui/qtguis/Makefile
* contrib/hbqt/qtgui/Makefile
* contrib/hbqt/Makefile
* contrib/hbqt/detect.mk
* contrib/hbqt/hbqts/Makefile
* contrib/hbqt/qtnetwork/qtnetworks/Makefile
* contrib/hbqt/qtnetwork/Makefile
* Generalized the way QT component header dirs are enabled.
This makes it possible to use this logic with gtqtc.
* contrib/gtqtc/gtqtcs/Makefile
* contrib/gtqtc/Makefile
+ 'moc' logic synced with hbqt.
! Fixed to use QT component header inclusion.
* contrib/hbqt/hbqt_slots.cpp
* Line ending spaces.
* src/vm/dynlibhb.c
+ Using new UNICODE conversion macros in HB_LIBLOAD().
* INSTALL
* Minor.
* contrib/xhb/hbsyslog.c
+ HB_SYSLOGOPEN(): Added UNICODE support. (this bug was hidden
by explicit cast)
* Using HB_TRUE/HB_FALSE.
+ Using new UNICODE conversion macros in HB_SYSLOGMESSAGE().
(functionally not tested)
* Formatting.
* contrib/xhb/hblogdef.ch
+ Added comment that the header is used by C code.
* contrib/hbqt/detect.mk
! Fixed static build after last commit.
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/win_dll.c
* Variable renamed.
* contrib/hbwin/win_prn2.c
% Minor optimization.
* contrib/hbwin/win_osc.c
+ Using new UNICODE conversion macros in WIN_OSVERSIONINFO().
; NOTE: Remaining "problem area" is HB_TCHAR_* usage in low level
code, when conversion needs to be done from/to C buffer
instead of Harbour parameter/return value. The problem
is that I don't have a pattern for that.
* src/vm/strapi.c
% Minor optimization (using cdp variable instead of repeated hb_vmCDP() calls.)
* include/hbwinuni.h
+ Added HB_ITEMPUTSTR[LEN]() macros.
+ Added HB_STRUNSHARE() macro.
! Fixed typos in HB_ARRAYSETSTRLEN() macro values.
* contrib/hbwin/win_prn2.c
+ Using new HB_ITEMPUTSTR() macro instead of HB_TCHAR*().
* contrib/hbwin/win_misc.c
! WIN_RUNDETACHED(): Fixed to guarantee writable buffer in second
parameter of CreateProcess(). I've choosen to always pass a writable
buffer, although MS requires this only for UNICODE mode.
* contrib/hbwin/wapi_commctrl.c
+ Using new UNICODE parameter passing macros instead of HB_TCHAR*() ones.
! Fixed return values of WAPI_IMAGELIST_GETIMAGEINFO() to be empty
string instead of unset (NIL) in case of error.
+ contrib/hbqt/filelist.mk
! Missed from previous commit.
* contrib/hbwin/win_regc.c
* Removed trailing spaces (realized I used a temp instance
of 64-bit Far Manager for the last couple of days)
(there will be more)
* harbour/src/vm/strapi.c
* harbour/include/hbapistr.h
+ added new functions:
hb_itemPutStr(), hb_itemPutStrUTF8(), hb_itemPutStrU16(),
hb_arrayGetStr(), hb_arrayGetStrUTF8(), hb_arrayGetStrU16(),
hb_arraySetStrLen(), hb_arraySetStrLenUTF8(), hb_arraySetStrLenU16(),
hb_arraySetStr(), hb_arraySetStrUTF8(), hb_arraySetStrU16(),
* harbour/include/hbwinuni.h
* removed unnecessary and danger casting in UNICODE version of
HB_RETSTR(), HB_RETSTRLEN(), HB_STORSTR() and HB_STORSTRLEN() macros
* modify HB_ARRAYSETSTR() and HB_ARRAYSETSTRLEN() macros to use new
STR API functions
* harbour/external/Makefile
* modified the order of compiled libraries for better performance in
parallel compilation (-j<N>)
* contrib/hbwin/wapi_winbase.c
* Eliminated hb_parclen() call in WAPI_FORMATMESSAGE() function.
* contrib/hbwin/win_regc.c
* WIN_REGSETVALUEEX(): Adjusted casting to not drop const.
! WIN_REGSETVALUEEX(): Added support for UNICODE builds when
string types (non-binary data) are passed.
* contrib/hbwin/tests/testreg.prg
+ Extended with basic test for above.
* contrib/hbqt/Makefile
* contrib/hbqt/detect.mk
+ contrib/hbqt/moc.mk
* contrib/hbqt/hbqts/Makefile
* contrib/hbqt/qtgui/qtguis/Makefile
* contrib/hbqt/qtgui/Makefile
* contrib/hbqt/qtcore/qtcores/Makefile
* contrib/hbqt/qtcore/Makefile
* contrib/hbqt/qtnetwork/qtnetworks/Makefile
* contrib/hbqt/qtnetwork/Makefile
+ Moved 'moc' build logic to separate file.
+ Added support for MOC_HEADERS in all sub-libs.
This allows to avoid hacks to place every custom
created component in central lib. (It probably allows
to avoid central lib altogether.)
! Fixed broken static build after recent changes.
(I've readded central filelist.mk to avoid
redundancy, but the file isn't an automatically
generated one anymore)
% Optimized build to not provide all subsystem header
dirs for each QT sub-libs, only those which are needed.
Now QtCore header dir is passed to all components,
but QtGui and QtNetwork is passed only to these
subcomponents.
Central hbqt lib gets all dirs, but hopefully this
will be cleaned eventually.
% Cleaned to not use /Qt include dir. It's apparently
not needed.
* contrib/hbqt/qth/QObject.qth
* contrib/hbqt/qtcore/QObject.cpp
! Core component was referring to a GUI one, and hbqt_par_QWidget()
was used to retieve a QObject inside QObject wrappers.
Please fix me if it was intentional, but it didn't look right and
came out after cleaning header dir usage.
* contrib/hbide/hbide.hbp
+ Added MSVC link switched sent by Andi to make QT 4.6.0
libs to default Harbour build.
* include/hbwinuni.h
+ Added HB_ARRAYSETSTR*(). Based on Przemek's post.
* contrib/hbwin/wce_simc.c
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_regc.c
+ Using new UNICODE parameter passing macros instead of HB_TCHAR*() ones.
* Minor rework WIN_TEXTOUT() and WIN_GETTEXTSIZE() to not use hb_parclen()
and protect some more against wrong length parameter.
; TOFIX: HB_ARRAYSETSTR() usage crashes (tested in non-UNICODE with testprn3)
I didn't want to undo the whole thing, but can't find the err either.
; TOFIX: hb_parclen() usage.
; TOFIX: HB_ARRAYSETSTR() with NULL string parameter.
; TOFIX: HB_PARSTRDEF() to really default to empty string for non-string params.
; TODO: Remaining HB_TCHAR_*() usages.
; TODO: Peer-review what I did.
* contrib/hbwin/wapi_winbase.c
! Fixed for WinCE after recent addition of new wrappers.
This means exclusion of WAPI_WAITFORSINGLEOBJECTEX() and
WAPI_WAITFORMULTIPLEOBJECTSEX() for this platform.
! Minor fix in size of allocated buffer in WAPI_FORMATMESSAGE().
(buffer was too large in non-UNICODE).
* include/hbextern.ch
+ Added HB_THREADONCEINIT().
* contrib/hbqt/hbqt.ch
* contrib/hbxbp/xbp.ch
! Moved XBP specific macro to HBXBP header.
* contrib/hbqt/tests/demoqt.prg
! Deleted no more needed init calls.
* contrib/hbqt/hbqt_events.cpp
+ Added TOFIX about GC collected pointer stored in low level
structure. (source of GPF).
* contrib/hbwin/win_misc.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/win_regc.c
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/wapi_shellapi.c
* contrib/hbwin/legacyco.c
- Deleted now unnecessary '( LP[C]TSTR )' casts.
+ Cleaned const usage in WIN_PRINTERSETDEFAULT().
F.e. OpenPrinter() has apparently wrong winapi declaration,
so a cast must have been added.
; TOFIX: CreateProcessW() second parameter has to be a read/write
buffer. Przemek, do you have an idea how to solve that
the cleanest way?
(for now I kept a cast, assuming that a buffer is
created by Harbour conversion API, but that's not
something it guarantees in the future.)