* contrib/hbwin/win_prn2.c
! Fixed few type mis-uses (BOOL instead of DWORD and vice versa)
% Optimized hb_isLegacyDevice().
% Marked some static strings as static.
% Marked locally used C worker functions as static.
This may cause incompatibility if someone used these via
undocumented ways. They were never officially published
through .h headers.
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/win_prn1.c
+ Added ::GetDocumentProperties() method.
+ Calling ::GetDocumentProperties() from ::New() to setup defaults.
; Patch submitted by Xavi. Thank you.
* contrib/hbwin/win_prn2.c
% Modified GETPRINTERS() code to use optimal array creation code,
use less redundancy and synced functionally similar code
parts with each other, deleted unnecessary code parts.
* Greatly cleaned GETPRINTERS() code (names, layout).
! Fixed GETPRINTERS() code. It had fatal flaw in non-NT
branch, so I seriously wonder how could it work for anyone
in the past. It seems it wasn't even tested by submitter
before commited to xhb repository in year 2005.
Someone pls test it on Win9x, I don't have any printers
installed there.
* contrib/hbwin/win_prn1.c
* contrib/hbwin/legacy.prg
* Moved WIN_GETEXEFILENAME() to legacy function collection,
at the same time rewritten to simply call HB_ARGV( 0 ).
* contrib/hbwin/win_prn1.c
% WIN_FILLRECT(), WIN_ARC(), WIN_ELLIPSE() optimized.
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
! Attempt to fix darwin dylib generation, added lib prefix
to install name parameter.
; TOFIX: Adding path to lib reference still doesn't work,
so shared binaries will still not work unless
Harbour is installed to system location.
* contrib/hbtip/smtpcli.prg
! Fixed long time SMTP protocol implementation bug reported
(with patch) by Francesco Perillo. Thank you.
The problem manifested itself only with strictly
standard compliant SMTP server (setups?) like recent
Exim versions.
+ Upped timeout from 5000 to 50000.
* utils/hbmk2/hbmk2.prg
! Fixed to make clang behave like gcc when decorating lib references.
! Fixed to include clang in 'allgcc' filter.
+ Added native header detection when using clang.
! Internal change to use detected c compiler name instead of
hard-wired 'gcc' when doing native header detection for .c files
(using -MM option).
* contrib/hbxbp/xbplistbox.prg
* contrib/hbide/hbide.prg
+ Implemented prototype of <Project Tree Structure>.
Also play with various icons. Docks at the right and at the bottom can be collapsed.
Please forward suggesstions.
* contrib/hbqt/hbqt.ch
+ Added some more constants.
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
! Further cleanup of QWebKit elimination.
* include/hbdefs.h
* Removed reliance on old type when defining some new types.
* contrib/hbcurl/hbcurl.c
* contrib/hbssl/ssl.c
* contrib/hbssl/evpmd.c
* Changed ULONG to HB_SIZE.
(HB_SIZE currently is the same as ULONG)
* contrib/hbssl/evp.c
* Changed ULONG to size_t in one place.
* harbour/src/vm/dlmalloc.c
! removed hack with overlapped structures with small chunks to not
confuse C compilers which can make strict-aliasing optimizations
* harbour/src/vm/set.c
! removed old casting left by mistake in hb_conSetCursor() calls
* contrib/rddsql/rddsql.hbc
+ Added incpaths=. so now .ch file will be automatically found.
* contrib/rddsql/sddmy/tests/test1.prg
* contrib/rddsql/sddodbc/tests/test1.prg
* contrib/rddsql/sddodbc/tests/test2.prg
- Deleted explicit paths from #include directives.
(after above .hbc change this isn't necessary)
* contrib/rddsql/Makefile
+ Added to install .ch file.
* contrib/rddsql/hbrddsql.ch
+ Added NOTE, that file is used also by C code.
! Added EOL at EOF.
+ harbour/contrib/rddsql/hbrddsql.ch
* harbour/contrib/rddsql/hbrddsql.h
* DBI_ and RDDI_ defines moved to .ch file
* harbour/contrib/rddsql/sddmy/tests/test1.prg
* harbour/contrib/rddsql/sddodbc/tests/test1.prg
* harbour/contrib/rddsql/sddodbc/tests/test2.prg
* hbrddsql.ch include used
* harbour/contrib/rddsql/sddodbc/tests/test2.prg
! fixed small error in DSN
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* implemented error processing
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* source formatting
* changed error variables type to HB_ERRCODE
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* moved unsupported (by some compiler) compile time condition
check to RDD initialisation run-time condition check
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
* implemented connection area counter. Now connection can be
closed only after all its workareas are closed.
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
* SQL error text, error number, last query, etc. Moved from
connection to static variables, because I'm unable to return
errors for a failed connect otherwise.
; TODO: MT support. Error text and code are stored in static
variable, it should be moved to thread static in the future.
But there is more problems in MT support. F.e., can we use
use the same connection for a few threads?
* src/rtl/errapi.c
* Renamed error variables to use new prefix.
* ChangeLog
! Typo.
* contrib/hbwin/win_osc.c
+ Added OS_WIN7. Borrowed from xhb / Patrick Mast.
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbxbp/xbphtmlviewer.prg
- Removed QtWebKit support. Code still resides in the files.
I plan to separate it next week. Please post if still any error is
reported related with QWebKit involved cross builds.
* harbour/src/rtl/gtcrs/gtcrs.c
* pacified warning caused by wrong tigetnum() declarations in some
curses versions
* harbour/src/rtl/gtsln/gtsln.c
! fixed non ANSI-C variable declarations
* harbour/include/hbsetup.h
+ added macros for PURE and CONST function attributes
* harbour/contrib/hbct/ctc.c
* modified variable names
* contrib/hbqt/detect.mk
+ Added more sophisticated autodetection of moc
executable. Please test on you system.
Envvar HB_QT_MOC_BIN can always be used to specify the
name of QT 'moc' executable, so if autodetection fails,
please use it and report the value that worked for you.
* src/rtl/errapi.c
* contrib/hbct/ctc.c
! Fixed printf() format strings after recent HB_ERRCODE change.
* contrib/hbqt/tests/demoqt.prg
% Deleted hb_idleSleep( 1 ) after main window creation.
Please advise if it was put there with some reason.
* contrib/hbqt/hbqt_slots.cpp
! Fixed to use hb_releaseCPU() instead of hb_idleSleep( 0.2 ).
I'm not sure whether this code part was active, but looked like
a very bad workaround if the 0.2 sec sleep was really needed there.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
! minor typo in comment
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
! small fix for include dirs in XCC builds
* contrib/gtqtc/Makefile
* contrib/gtqtc/gtqtcs/Makefile
- contrib/gtqtc/moc_gtqtc.cpp
! Fixed to generate moc file dynamically.
% Changed to use detect.mk in hbqt for QT detection.
* contrib/hbqt/hbqts/Makefile
! Fixed for HB_QT_STATIC=yes mode after latest change.
* contrib/hbqt/Makefile
* contrib/hbqt/detect.mk
* Moved MOC_BIN detection to detect.mk.
* contrib/hbqt/Makefile
- contrib/hbqt/moc_slots.cpp
+ Added dynamic generation of moc_slots.cpp by calling moc
tool.
; TODO: If this is ok, do the same in gtqtc.
* contrib/gtwvg/Makefile
+ Enabled for xcc.
* contrib/gtwvg/wvgwing.c
! Fixed warning with xcc.
* config/win/xcc.mk
! Added minor hack to make xcc work on Windows.
(can't handle header dir with ending pathsep)
* contrib/hbqt/hbqt_misc.prg
* contrib/hbxbp/xbpgeneric.prg
* Synced two similar debug functions after latest change.
% Deleted commented line. gtwvg/hbqt/hbxbp components are
literally full of commented lines, #if 0 parts
and such things. IMO these should be deleted from
final code otherwise it gives the (possibly wrong)
impression that the code is not-mature and in a
temporary development state. Remember that SVN keeps
a copy of every older version of source so in case
it's needed it can always be retreived, so there is no
need to keep old code commented "just in case".
Everyone please keep that in mind.
* contrib/gtwvg/tests/demowvg.prg
! Fixed all warnings which prevented it from being
built.
* contrib/hbxbp/xbpgeneric.prg
! Change the way HBXBP_DEBUG() shows up the values. In my scheme of things
the whole HBQT's debug system is revolving around this way.
* contrib/hbide/hbide.prg
+ More basic visual components to host different project elements.
Keep on playing with it. I am gathering all pitfalls.
* utils/hbmk2/hbmk2.prg
+ Added dependency tree to flat dependency list converter.
(no cyclic reference check here)
* contrib/gtwvg/wvgwing.c
! Fixed for Windows x64 platform.
* contrib/gtwvg/Makefile
+ Enabled for Cygwin, IA64 and mingw64 compilers.
Latest mingw64 experimental builds build it fine.
This means all win compilers are supported except xcc.
; NOTE: Now it's disabled only for xcc.
Can someone with xcc installed try gtwvg? Maybe it can
be made work so we can drop this exception.
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added autodetection of x86_64 build of mingw64.
(in hbmk2 it's recognized even if host platform isn't x64)
* INSTALL
+ Added darwin -> win/mingw64 cross-platform scenario.
Such binaries are now provided by the mingw64 project.
* harbour/src/vm/strapi.c
! fixed return value in hb_itemCopyStr()
* harbour/contrib/hbct/files.c
* harbour/contrib/hbct/disk.c
! fixed to work with HB_ERRCODE declared as unsigned int
* harbour/include/hbthread.h
* minor cleanup in comment
* harbour/src/vm/dlmalloc.c
* use harbour spinlocks in windows builds to eliminate calling
InterlockedCompareExchange[Pointer]() function
* harbour/include/hbstack.h
! disabled TLS ASM inline code which seems to not work with Win9x.
* include/hbapi.h
* Changed HB_ERRCODE to be 'insigned int' (was USHORT).
; You'll need to rebuild all sources.
* utils/hbmk2/hbmk2.prg
% Turned off line numbers (for hbmk2 itself).
* INSTALL
* Minor formatting.
* harbour/config/beos/gcc.mk
! fixed typo in AR_RULE
* harbour/config/bsd/gcc.mk
! added missing false command to force build interrupt when library cannot
be created
* contrib/hbide/hbide.prg
+ contrib/hbide/resources/builderror.png
* contrib/hbide/resources/gotomark.png
+ contrib/hbide/resources/modulelist.png
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbqt/moc_slots.cpp
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbptabpage.prg
+ Implemented first 4 icons operational.
Now, at least you can open/edit/save .prg .c .ch .h files.
I am interested in any bugs you may encounter in the process.
Few HBXBP calasses have also been updated in the process.
QUESTION: How good it will be to extend Xbase++ class framework ?
Is this the ripe time or we need more inputs ?
* harbour/include/Makefile
+ harbour/include/hbapistr.h
* harbour/src/vm/Makefile
* harbour/src/vm/hvmall.c
+ harbour/src/vm/strapi.c
+ added new C functions to extract strings in different encoding:
void * hb_itemGetStr( PHB_ITEM pItem, void * cdp,
const char ** pStrPtr, ULONG * pulLen );
void * hb_itemGetStrUTF8( PHB_ITEM pItem,
const char ** pStrPtr, ULONG * pulLen );
void * hb_itemGetStrU16( PHB_ITEM pItem, int iEndian,
const HB_WCHAR ** pStrPtr, ULONG * pulLen );
extract from given item string in requested encoding and store pointer
to this string and its size in characters in last two parameters.
These functions return handler which is used to lock memory buffer
with result or NULL if given item does not contain string. All not NULL
handles returned by above functions have to be free by hb_strfree()
function:
void hb_strfree( void * hString );
As long as they are not freed memory buffer set in pStrPtr is valid
even if other code overwrote given item.
The second parameter in hb_itemGetStr() can specify expected CP
encoding, i.e.:
hStr = hb_itemGetStr( pItem, hb_setGetOSCP(), &pszText, &ulLen );
if( hStr )
{
...
hb_strfree( hStr );
}
extracts string in encoding set by Set( _SET_OSCODEPAGE, <cCPID> )
The second parameter in hb_itemGetStrU16() define endian encoding
and can be one of the following values:
#define HB_CDP_ENDIAN_NATIVE 0
#define HB_CDP_ENDIAN_LITTLE 1
#define HB_CDP_ENDIAN_BIG 2
defined in hbapicdp.h
+ added new C functions to copy part of strings to given buffers in
different encoding:
ULONG hb_itemCopyStr( PHB_ITEM pItem, void * cdp,
char * pStrBuffer, ULONG ulSize );
ULONG hb_itemCopyStrUTF8( PHB_ITEM pItem,
char * pStrBuffer, ULONG ulSize );
ULONG hb_itemCopyStrU16( PHB_ITEM pItem, int iEndian,
HB_WCHAR * pStrBuffer, ULONG ulSize );
hb_itemCopyStr*() functions works in similar way to hb_itemGetStr*()
ones but they copy the strings to given buffer and return the number
of characters (not bytes) copied to the buffer.
+ added new C functions to store given strings in different encoding in
HVM item:
PHB_ITEM hb_itemPutStrLen( PHB_ITEM pItem, void * cdp,
const char * pStr, ULONG ulLen );
PHB_ITEM hb_itemPutStrLenUTF8( PHB_ITEM pItem,
const char * pStr, ULONG ulLen );
PHB_ITEM hb_itemPutStrLenU16( PHB_ITEM pItem, int iEndian,
const HB_WCHAR * pStr, ULONG ulLen );
These functions accepts strings in different encoding, made some
conversions (if necessary and internal string representation in HVM is
different) and then store them as HVM string items.
+ added few extended API functions to operate on strings in different
encoding:
void * hb_parstr( int iParam, void * cdp,
const char ** pStrPtr, ULONG * pulLen );
void * hb_parstr_utf8( int iParam,
const char ** pStrPtr, ULONG * pulLen );
void * hb_parstr_u16( int iParam, int iEndian,
const HB_WCHAR ** pStrPtr, ULONG * pulLen );
void hb_retstr( void * cdp, const char * szText );
void hb_retstr_utf8( const char * szText );
void hb_retstr_u16( int iEndian, const HB_WCHAR * szText );
void hb_retstrlen( void * cdp, const char * szText, ULONG ulLen );
void hb_retstrlen_utf8( const char * szText, ULONG ulLen );
void hb_retstrlen_u16( int iEndian,
const HB_WCHAR * szText, ULONG ulLen );
int hb_storstr( void * cdp, const char * szText, int iParam );
int hb_storstr_utf8( const char * szText, int iParam );
int hb_storstr_u16( int iEndian,
const HB_WCHAR * szText, int iParam );
int hb_storstrlen( void * cdp,
const char * szText, ULONG ulLen, int iParam );
int hb_storstrlen_utf8( const char * szText, ULONG ulLen, int iParam );
int hb_storstrlen_u16( int iEndian,
const HB_WCHAR * szText, ULONG ulLen, int iParam );
They can be used instead of hb_parc*()/hb_retc*()/hb_storc*() ones and
allow to easy create code which operates on strings in different
encoding, i.e.:
HB_FUNC( MY_STRTOUTF8 )
{
const char * str;
ULONG len;
void * h;
h = hb_parstr_utf8( 1, &str, &len );
if( h )
{
hb_retclen( str, len );
hb_strfree( h );
}
}
The above functions allows to create code which operates on different
string encoding, i.e. UTF8, UCS2/UTF16, some CPs and such code is
independent from internal HVM string representation so we can use
internally Unicode or not and it will not effect existing code.
* harbour/utils/hbtest/rt_str.prg
* modified code which tries to replicate Clipper behavior with ULONG
values also in 64bit systems where ULONG is not 32bit integer
* harbour/contrib/rddsql/sddodbc/tests/test2.prg
! fixed small error in DSN
* harbour/contrib/rddsql/sddodbc/odbcdd.c
+ added support of SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR
; NOTE: I get more and more complains about not working sddodbc,
because of these data types. I'm unable to get such situation
in my programming environvent. So, this addition can be buggy.
Please, report any strange behavior of string types data.
* src/rtl/errapi.c
* src/rtl/philes.c
* src/rtl/dirdrive.c
* contrib/hbnf/fttext.c
* Changed back long versions of Harbour APIs to int version.
It was an oversight.
* contrib/xhb/xhbfunc.c
+ Ported CURDIRX() function from xhb.
It's not exactly the same as xhb version uses hb_fsCurDirBuffEx()
internally, and I couldn't decipher the added feature above
hb_fsCurDirBuff().
* INSTALL
* Minor formatting.
+ Added information about some commonly used, but yet useless
environment settings. These:
set HB_PATH=<Harbour root dir>
set HRB_DIR=<Some Harbour dir>
set INCLUDE=<Harbour include dir>
set LIB=<Harbour lib dir>
* Bumped copyright year.
+ Added 'documentation' section to link section.
+ Added netiquette RFC link for a start.
+ Added hbrun to required tools for cross-builds.
* bin/hb-func.sh
* harbour.spec
+ Added hbsms lib.