* contrib/gtwvg/tests/demowvg.prg
! Removed all hb_ToOutDebug() calls.
* contrib/gtwvg/tests/demoxbp.prg
! Removed all hb_ToOutDebug() calls.
* contrib/hbide/hbide.prg
! Few more artifacts fixed.
* contrib/xhb/Makefile
! Reverted back to original before my last commit.
* harbour/src/vm/garbage.c
% small improvement in HB_GC_AUTO code
* harbour/include/hbdefs.h
! reverted the hack which casted file handles to unsigned values
I added two weeks ago - it was also converting FS_ERROR value
from -1 to 4294967295. Please remember that on some platforms
negative handles can exist and are valid. Only -1 indicates an
error.
* harbour/utils/hbtest/rt_file.prg
+ added regression test for FOPEN() FS_ERROR value
* harbour/contrib/hbwin/legacycd.c
* harbour/contrib/hbwin/legacyco.c
* added missing EOL at EOF
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/qth/QLabel.qth
+ contrib/hbide/resources/tabcmodified.png
+ contrib/hbide/resources/tabmodified.PNG
+ contrib/hbide/resources/tabreadonly.png
+ contrib/hbide/resources/tabunmodified.png
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
+ Implemented "Find" functionality. CTRL_F or <Find> icon can be clicked.
Input some string in "Find what" field and keep on pressing <Enter>.
+ Implemented "Print with Preview" of current source code.
! Document Tab Image is toggled for "Modified and UnModified" states.
! Fixed some more artifacts.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.ch
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/qtcore/filelist.mk
+ contrib/hbqt/qtcore/QUiLoader.cpp
+ contrib/hbqt/qtcore/TQUiLoader.prg
+ contrib/hbqt/qth/QUiLoader.qth
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpparthandler.prg
* contrib/hbxbp/xbppushbutton.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbide/resources/finddialog.ui
+ Implemented some very basic support for "Qt Creator" designer created .ui forms.
+ Based on above implementation hbide now supports "Find" operation. It is set to
search "Harbour" at present and is scheduled to be perfected this week-end.
* harbour/include/hbapi.h
* harbour/include/hbvm.h
* harbour/include/hbvmpub.h
* harbour/include/hbstack.h
* harbour/src/vm/hvm.c
* harbour/src/vm/estack.c
* harbour/src/vm/fm.c
* harbour/src/vm/garbage.c
+ added new function hb_xclean() executed by GC just before resuming
suspended threads - it can be used by memory manager to clean
internal structures and release unused memory to OS.
% release unused memory to OS in hb_xclean() when DLMALLOC is used
% release unused memory in all mspaces to OS in hb_xclean() when
HB_FM_DLMT_ALLOC is used
% release unused memory in mspace when last thread detach it
% balance used mspaces between threads in hb_xclean() when
HB_FM_DLMT_ALLOC is used
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* added OLE error code as OS code. Changed subsystem from BASE to OLE
; NOTE: function hb_errRT_OLE() is static and defined in both modules.
I'm not sure about the future parameters of the function, so,
I do not want to make it public.
* harbour/contrib/hbwin/legacycd.c
* harbour/contrib/hbwin/legacyco.c
* moved code inside #ifndef HB_WIN_LEGACY_LEVEL_OFF
* harbour/contrib/rddads/ads1.c
* changed field type mapping of HB_FT_* define, ADS_* define,
DBCREATE()/DBSTRUCT() array type member. Now we have mapping
compatible to DBF files as much as possible.
; INCOMPATIBILITIES to old ads1.c:
* ADS_VARCHAR is mapped to HB_FT_VARLENGTH instead of old mapping
to HB_FT_MEMO. HB_FT_MEMO has a fixed size in DBF (ex., 10),
but ADS_VARCHAR is variable length field, so, HB_FT_VARLENGTH
much more correct
* fieldinfo method (DBSTRUCT() at .prg level) returns one byte
field type if possible. The exceptions are RAW, CICHARACTER,
and VARBINARY fields. So, you'll get a DBF compatible type P
instead of IMAGE, B instead of DOUBLE, T instead of TIME, etc.
Other field mappings are extension to existing code and should
not be seen as incompatibility to end used.
; Current field type mappings are:
C; Character,n HB_FT_STRING,n ADS_STRING
N; Numeric,n,d HB_FT_LONG,n,d ADS_NUMERIC
D; Date,n HB_FT_DATE,3 or 4 or 8 ADS_COMPACTDATE; ADS_DATE
ShortDate HB_FT_DATE,3 ADS_COMPACTDATE
L; Logical HB_FT_LOGICAL,1 ADS_LOGICAL
M; Memo,n HB_FT_MEMO,4 or 9 or 8 ADS_MEMO
B; Double,,d HB_FT_DOUBLE,8,d ADS_DOUBLE
I; Integer,n HB_FT_INTEGER, 2 or 4 or 8 ADS_SHORTINT; ADS_INTEGER; ADS_LONGLONG
ShortInt HB_FT_INTEGER,2 ADS_SHORTINT
Longlong HB_FT_INTEGER,8 ADS_LONGLONG
P; Image HB_FT_IMAGE,9 or 10 ADS_IMAGE
W; Binary HB_FT_BLOB,4 or 9 or 10 ADS_BINARY
Y; Money HB_FT_CURRENCY,8,4 ADS_MONEY
Z; CurDouble,,d HB_FT_CURDOUBLE,8,d ADS_CURDOUBLE
T,4; Time HB_FT_TIME,4 ADS_TIME
@; T,8; TimeStamp HB_FT_TIMESTAMP,8 ADS_TIMESTAMP
+; AutoInc HB_FT_AUTOINC,4 ADS_AUTOINC
^; RowVersion HB_FT_ROWVER,8 ADS_ROWVERSION
=; ModTime HB_FT_MODTIME,8 ADS_MODTIME
Raw,n HB_FT_STRING,n (+HB_FF_BINARY) ADS_RAW
Q; VarChar,n HB_FT_VARLENGTH,n ADS_VARCHAR; ADS_VARCHAR_FOX
VarBinary,n HB_FT_VARLENGTH,n (+HB_FF_BINARY) ADS_VARBINARY_FOX; ADS_RAW
CICharacter,n HB_FT_STRING,n ADS_CISTRING
; ADS help has many ambiguities. Here is the most important I found:
* Both ADS_VARCHAR and ADS_VARCHAR_FOX defines exists, but
VarChar filed type is documented only for VFP DBFs. Does
commom DBF support this field type?
* It is not clear what ADS_* define corresponds to VarBinary
field. Both ADS_VARBINARY_FOX and ADS_RAW does not sound
to be a good choice.
* ADS documents field types CharacterNoCPTrans, MemoNoCPTrans,
VarCharNoCPTrans available in VFP tables, but no corresponding
ADS_* defines exist. These type are not supported by RDDDADS.
* Autoincrement field type in DBF is called "Autoinc", in ADT
"Autoicrement". Test shows that both name are acceptedt by
AdsCreateTable().
* ADS_LONGLONG define exists, but LomgLong field type is not
documented at all. It is not clear how to pass field type to
AdsCreateTable(): "Integer,8" or "LongLong". Test required!
* Can extended DBF types like ShortDate and Image be used with
VFP DBF files? (Some other field typess are defined twice
both in extended DBF and VFP DBF)
* Documented field type ShortInteger generates 5012 ADS error on
AdsCreateTable(). A simple workaround used: "ShortInt" passed
instead of documented field name.
! Some ANSI <-> OEM translations moved under ADS_USE_OEM_TRANSLATION
switch (the other translations was already there)
; Please, test and report bugs.
* contrib/hbwin/Makefile
+ contrib/hbwin/legacycv.c
* contrib/hbwin/win_os.prg
* contrib/hbwin/win_osc.c
* contrib/hbwin/win_tprn.prg
+ Added new names for win version support functions:
WIN_OSISNT() <= OS_ISWINNT()
WIN_OSISNT351() <= OS_ISWINNT351()
WIN_OSISNT4() <= OS_ISWINNT4()
WIN_OSIS2000ORUPPER() <= OS_ISWIN2000_OR_LATER()
WIN_OSIS2000() <= OS_ISWIN2000()
WIN_OSISXP() <= OS_ISWINXP()
WIN_OSIS2003() <= OS_ISWIN2003()
WIN_OSISVISTA() <= OS_ISWINVISTA()
WIN_OSIS7() <= OS_ISWIN7()
WIN_OSIS9X() <= OS_ISWIN9X()
WIN_OSIS95() <= OS_ISWIN95()
WIN_OSIS98() <= OS_ISWIN98()
WIN_OSISME() <= OS_ISWINME()
WIN_OSISTSCLIENT() <= OS_ISWTSCLIENT()
WIN_OSVERSIONINFO() <= OS_VERSIONINFO()
WIN_OSNETREGOK() <= OS_NETREGOK()
WIN_OSNETVREDIROK() <= OS_NETVREDIROK()
; Old names still work, and they are guarded with HB_WIN_LEGACY_LEVEL_OFF
macro, in case someone would like to disable them.
Please use new names, old names may disappear in the future.
* contrib/hbwin/wce_simc.c
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/wce_sim.prg
+ Added new names for WinCE SMS/SIM support functions:
WCE_SIMINITIALIZE() <= SIMINITIALIZE()
WCE_SIMDEINITIALIZE() <= SIMDEINITIALIZE()
WCE_SIMPHONEBOOKSTATUS() <= SIMPHONEBOOKSTATUS()
WCE_SIMREADPHONEBOOKENTRY() <= SIMREADPHONEBOOKENTRY()
WCE_SIMWRITEPHONEBOOKENTRY() <= SIMWRITEPHONEBOOKENTRY()
WCE_SIMDELETEPHONEBOOKENTRY() <= SIMDELETEPHONEBOOKENTRY()
WCE_SMSSENDMESSAGE() <= SMSSENDMESSAGE()
; INCOMPATIBLE.
; NOTE: With these changes hbwin namespace is clean except
for legacy definitions and .dll functions. DLL functions
need a major overhaul anyway (plus there is Xbase++ and
xhb compatibility concerns there), so for now it's OK.
* contrib/hbide/hbide.prg
+ Started <Project Properties> Dialog.
Your comments are welcome. I am interested what else might be required for
peoject management property so that we are comfortable in future.
* harbour/tests/bldtest/bldtest.c
* disabled requirement for signed 'char' type - current Harbour code
should work with 'char' defined as signed and unsigned value.
* harbour/src/vm/fm.c
* enabled HB_FM_DL_ALLOC by default in OS2 OpenWatcom builds
* harbour/config/os2/watcom.mk
! enabled -bm flag (MT code) in OS2 OpenWatcom builds - now when
HB_FM_DL_ALLOC is enabled by default it should not kill the
performance. Please make tests with OS2 OpenWatcom builds.
* contrib/hbxbp/xbplistbox.prg
+ contrib/hbide/resources/zoomin.png
+ contrib/hbide/resources/zoomout.png
* contrib/hbide/ideactions.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/hbide.prg
+ Added ZoomIn, ZoomOut toolbar buttons for in-place zoom-in/out
text decoration. Very handy visualization.
+ Implemented undo/redo/cut/copy/paste/select all/to upper/to lower/invert case/ icons.
! Fixed many artifacts.
Please play with the tool and report back your experiences.
* src/rtl/fscopy.c
! Fixed to use the same file opening method as in __COPYFILE().
This should fix creating zero byte file on OS/2 when the source
and target file is the same.
; Please test.
* contrib/hbwin/win_prn3.c
* Minor.
* harbour/src/vm/dlmalloc.c
% use harbour spin locks if available by default in all builds
* harbour/include/hbatomic.h
* removed HB_SPINLOCK_SLEEP macro and enable code to always yield
the processor in spin locks
* cover double spin lock setting by HB_SPINLOCK_REPEAT
* harbour/src/vm/garbage.c
* removed unused HB_SPINLOCK_SLEEP macro
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
+ added new internal function hb_stackAllocator()
* disable hb_stackTotalItems() stack macro so this function can be
used also in internal HVM code to check if stack is initialized
* harbour/src/vm/fm.c
! use hb_stackAllocator() to access pointer to DLMALLOC mspace
It should fix GPF when DLMT was used in OS2 builds - please test.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_prn2.c
+ Added support for server name in WIN_PRINTERLIST() (GETPRINTER())
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/legacycp.c
* ChangeLog
* Some renaming, to keep all functions in the WIN_PRINT*() namespace.
Prev entry updated.
* contrib/hbwin/tests/testprn.prg
* contrib/hbwin/tests/testprn2.prg
* contrib/hbwin/tests/testprn3.prg
* contrib/hbwin/tests/testprn4.prg
* Updated tests to use new function names.
* contrib/hbwin/Makefile
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
+ contrib/hbwin/legacycp.c
+ Added new names for Windows printer support functions:
WIN_PRINTEREXISTS() (old name: PRINTEREXISTS())
WIN_PRINTERSTATUS() (old name: XISPRINTER())
WIN_PRINTERPORTTONAME() (old name: PRINTERPORTTONAME())
WIN_GETPRINTERS() (old name: GETPRINTERS())
WIN_GETDEFAULTPRINTER() (old name: GETDEFAULTPRINTER())
WIN_SETDEFAULTPRINTER() (old name: SETDEFAULTPRINTER())
WIN_PRINTFILERAW() (old name: PRINTFILERAW())
; Old names still work, and they are guarded with HB_WIN_LEGACY_LEVEL_OFF
macro, in case someone would like to disable them.
; Please use new names, old ones will be deleted enventually.
* contrib/hbwin/hbwin.ch
+ Added copy of HB_WINPRN_* constants from .c source.
(Ugly, but currently there is no way to include hbwin.ch
to .c code due to lots of colliding names)
* contrib/hbwin/Makefile
+ contrib/hbwin/win_prn3.c
+ contrib/hbwin/tests/testprn4.prg
+ Added SETDEFAULTPRINTER().
This is Microsoft sample code taken from xhb repository,
formatting, fixes and other modifications applied (like
to use Harbour memory allocation functions),
also added support for UNICODE mode.
* contrib/hbwin/tests/testprn3.prg
* Minor.
* ChangeLog
* Marked change as DONE.
* contrib/hbwin/hbwin.ch
+ Added new macros submitted by Xavi.
Formatting (tab removal/alignment) applied.
* config/detfun.mk
+ Displays "Configure with HB_WITH_*" text on non-*nix systems,
when an external component is not found.
Comments are welcome whether this is useful, it looks a bit
verbose/ugly to me.
* INSTALL
* Minor change in wording.
* harbour/src/vm/dlmalloc.c
* harbour/src/vm/hvmall.c
+ added support for DLMALLOC in OS/2 builds.
I would like to ask OS/2 users to make harbour OS/2 build tests
using WATCOM and GCC with HB_USER_CFLAGS=-DHB_FM_DL_ALLOC to
check if it works.
* utils/hbmk2/hbmk2.prg
! Fixed to use '-ofilename' to spec C compiler object
output, instead '-o filename'. Following linux/clang.mk.
(There is utter chaos with this -o option)
* config/darwin/clang.mk
+ Documented fact that '-ofilename' also works (just
like in linux/clang).
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/linux/global.mk
% Moved strip configuration to global.mk.
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/win_prn1.c
! Fixed ::SETPEN() and WIN_SETPEN() to not leak objects.
Patch submitted by Xavi.
* config/wce/poccarm.mk
* config/win/pocc.mk
% Removed some unnecessary logic, thus making it similar to all
other compiler setups.
* ChangeLog
* TODO marked as DONE.
* contrib/hbwin/win_prn2.c
! Commented buggy code dealing with Chr( 256 ) strippage in PRINTFILERAW().
While I can imagine Chr( 26 ) may cause a little inconvenience
when sent to printer, it will just be a small visual one, and it's
very easy to overcome by using HB_MEMOWRIT() instead of MEMOWRIT()
to create the disk file, if the file was created by other means,
the Chr( 26 ) won't be there anyway. Anyhow I opted to have a clear cut
behavior even if it's slightly incompatible because old implementation
was buggy, and IMO such printing function shouldn't do behind-the-scenes
alterations on the data to be printed. After all the function is called
"RAW".
INCOMPATIBLE for files which has an ending Chr( 26 ).
* contrib/hbide/hbide.prg
! Removed CURDRIVE() and CURDIR() usage.
Notice that on *nix platforms there is no such thing as
drive letter, plus some platforms don't even have the
concept of current dir. CURDRIVE() is also an XBase++
specific call, so it may not be available in Harbour core.
! Removed hard-wired Windows specific path from save dialog.
(it was a template yet)
* config/rules.mk
! Deleted CFLAGS from default link rule.
After quick scan through the make files this shouldn't cause
problems. Please test and if it does, we should add missing
options to LDFLAGS.
; TODO: Clean CPPFLAGS vs. CFLAGS usage in all .mk files.
They should all uniformly use CFLAGS now.
* contrib/hbide/hbide.prg
* contrib/hbide/idetags.prg
! Changed the way <Function List> was being populated.
! Fixed to not enter in Editing mode when double-clicked in <Function List>.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* contrib/hbwin/win_prn2.c
! Fixed to use WIDE version of dynamically called
functions in UNICODE builds.
* ChangeLog
+ TODO marked as DONE.
* contrib/hbwin/win_prn2.c
+ Added support for fifth 'share' element to GETPRINTERS()
returned array. This syncs it with xhb.
- contrib/hbide/hbide.hbm
+ contrib/hbide/hbide.hbp
* Renamed project file to have .hbp extension.
- contrib/hbide/hbmk.hbm
- Not needed anymore. Deleted.
* contrib/hbide/ideparseexpr.c
! strnicmp() -> hb_strnicmp()
* contrib/hbide/hbide.hbm
! Call hbmk2 hbid.hbm which includes all required files.
+ contrib/hbide/idestylesheets.prg
+ Added to implement Qt's powerful feature to apply style sheets to a widget.
+ contrib/hbide/idetags.prg
+ contrib/hbide/ideparseexpr.c
+ Code provided by Andy Wos almost an year back. Never thought
it will be of much use for this purpose. Big thank you Andy.
+ contrib/hbide/freadlin.c
! Pulled from contrib/xhb. There may be a better option.
* contrib/hbqt/hbqt.ch
+ Added more constants.
* contrib/hbqt/hbqt_destruct.cpp
+ New PRG level function HB_FUNC( HBQT_QTPTR_FROM_GCPOINTER ) which
returns Qt pointer sent the GC pointer as only parameter.
* contrib/hbxbp/xbptabpage.prg
! Changed the way callback slots were implemented.
* contrib/hbide/hbide.prg
+ Implemented right-hand <Functions List>.
Just click on it and editor tab will scroll to the begining of function.
It was very tricky and has the potential to improve. Please play.
! Implemented "Save" with <ESC> or via <Save> icon.
You can start real-time editing if you want to.
Open many sources, change the tabs, press <ESC>s or edit and save.
Let me know if this behavior is ok. Note: after last tab is closed, hbide.exe
terminates.