* contrib/hbwin/win_prn1.c
* Using HB_ types.
* Minor formatting.
* Minor variable scope/usage cleanups.
% Optimized out checking of hb_xgrab() return value. It's never NULL.
* WIN_LOADBITMAPFILE() simplified.
* WIN_LOADBITMAPFILE() changed to use Harbour file I/O instead of
Windows one.
! WIN_LOADBITMAPFILE() fixed to require at least two bytes long file.
* WIN_LOADBITMAPFILE() added file size limit of 32MB. (please feel
free to modify)
* ChangeLog
* TOFIX marked as DONE.
* contrib/hbwin/win_regc.c
* Variable name prefix fixes.
* contrib/hbwin/tests/testprn.prg
! Fixed to not force uppercase on .bmp filename.
* contrib/hbtip/log.prg
* contrib/hbwin/win_osc.c
* Minor formatting.
+ contrib/hbide/hbide.ch
+ Added new header to manage hbide constants, expected to grow fast.
* contrib/hbide/ideactions.prg
+ "New Properties" icons action changed to "Toggle Project Tree".
"Properties" dialog can be accessed via right-clicking on "Projects"
tree-node of "Projects Tree" left-pane window and selecting "Properties"
option.
* contrib/hbide/hbide.prg
+ Started managing HBIDE properties via "hbide.ini".
The order of loading hbide.ini file is :
1. Supplied as first parameter to hbide.exe ( with fully qualified path ), then
2. The start-in folder from where hbide.exe is executed, last
3. The folder where hbide.exe is resident as returned by hb_DirBase().
If hbide.ini is not located as above, new file is created on exit.
Hbide.ini holds the various elements belonging to IDE operations and
is expedted to grow in contents with further development. Right now it may
look-like as:
hbide.ini
=========
[HBIDE]
MainWindowGeometry = 135,36,1099,682,
ProjectTreeVisible = YES
ProjectTreeGeometry = 0,0,88,616,
FunctionListVisible = YES
FunctionListGeometry = 0,20,150,596,
RecentTabIndex = 0
CurrentProject =
[PROJECTS]
[FILES]
C:/harbour/contrib/hbxbp/xbpradiobutton.prg
C:/harbour/contrib/hbxbp/xbprtf.prg
C:/harbour/contrib/hbxbp/xbpstatusbar.prg
.........
Next invocation of ide will retain the location and size of the windows,
files opened, last tab in focus, state of <Project Tree> and <Functions List>
per visibility. There are a lot of notes on my drawing-board to implement.
Just for now please report back your opinions.
* 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.