+ package/updt_web_nightly.sh
+ added automatic nightly script to update live website from SVN.
; it's also setup now on Tamas Tevesz's server (which serves
to create nightly source packages). We will see how they
work tonight.
* website/mailing.html
! minor formatting for testing website automatic update
* package/mpkg_src_nightly.sh
* minor fix in comment
* harbour/src/compiler/harbour.yyh
* harbour/src/compiler/harbour.yyc
* harbour/src/macro/macro.yyc
* harbour/src/macro/macro.yyh
* regenerated with bison 2.5
* harbour/src/rdd/dbcmd.c
* added note about Cl*pper incompatibility in our implementation of
__dbSkipper() functions
* harbour/src/vm/hvm.c
* allow to overwrite non local function symbols from dynamic libraries
by local ones also loaded from dynamic library if they point to the
same function.
This modification resolves the problem with class defined in
multiple module dynamic libraries.
* utils/hbmk2/hbmk2.prg
+ hbstart.hb is now searched also at standard location on *nix
system (the same places where hbmk.hbc is searched.)
+ hbstart.hb is now executed as normal script code
(was line by line), so this .hb file can be just like
any other .hb file.
* harbour/src/rtl/Makefile
- harbour/src/rtl/fieldbl.prg
- removed old PRG level implementation of FIELDBLOCK() and
FIELDWBLOCK() functions
* harbour/src/vm/macro.c
+ created new implementation of FIELDBLOCK() and FIELDWBLOCK()
functions in C. This implementation is strictly Clipper compatible
and allows to create field blocks only for symbols already
registered in HVM so it does not create new symbols in HVM.
When table is open then all field symbols are registered in HVM.
It means that new functions may not create field block if table
is not open yet and field name was never used explicitly in
whole compiled application. It's possible to easy change it
and automatically register new symbols if we decide it's real
limitation and we should drop strict Cl*pper compatibility.
Anyhow it may cause that some code will register big number
of completely unnecessary symbols in HVM so it should be well
thought decision.
This implementation makes exactly the same fied name conversions
as default implementation of ADDFIELD() workarea method so exactly
the same set of symbols is accepted. It means that after opening
table which has field names with spaces or other characters
which are not accepted as PRG identifiers it's possible to create
field blocks for them.
It should be also noticable faster because macrocompiler is not
used at all and is many times faster in codeblock evaluation then
implementation like in xHarbour which uses
fieldget( fieldpos( cFieldName ) )
to support fields with embeded spaces.
* harbour/src/rtl/hbgtcore.c
% small optimization in INKEY() code
* utils/hbmk2/hbmk2.prg
+ added support for 'hbstart.hb' script that gets
executed _line by line_ on each startup. File is
looked for in current dir than in the dir of
hbrun/hbmk2 executable.
! fixed -run option on Windows for GUI executables (f.e. gtwvt)
Thanks to Klas for details and Qatan for initial report
[ It's possible similar patch is needed for OS/2. Please
test and report. ]
* contrib/hbqt/qtgui/qth/QWidget.qth
! disabled HBQT methods working differently on each platform.
meaning they can only be used in platform dependent way (ie.
they are non-portable methods) while HBQT is to be a portable
component.
- If .qth files start to support conditionals, it can
be readded as built-time option:
HB_BUILD_PRGFLAGS=-DHBQT_NON_PORTABLE
- or kept as local patch for those who need this.
- or moving HBQT/HBXBP/HBIDE to separate repository with
(http://sourceforge.net/projects/hbqt/)
Pritpal as project lead. It will be great benefit
for both project, leaving them both focusing on
their apparently different goals and development style.
- contrib/hbqt/tests/activex.hbp
- contrib/hbqt/tests/activex.prg
- contrib/hbqt/tests/activex.ui
- Deleted Windows-specific code added to the portable
HBQT component. Please readd it in separate HBQT project.
* contrib/hbqt/tests/activex.hbp
* contrib/hbqt/tests/activex.prg
* contrib/hbqt/tests/activex.ui
+ Added: a demonstration applying HbQt's controvertial
QWidget():winID() call to be used with Harbour's native
ActiveX engine. The demo is less than 70 lines of code
and blends Qt Creator, HbQt, hbWIN in a meaningful way.
+ website
+ Added Harbour website (except art, docs and stat subdirs)
; TODO: configure automatic mechanism to extract site from
here and regularly updload to sf.net web area
; TODO: Clean HTML code, remove unused picture/files, avoid JS
Any takers?
; NOTE: Please make modifications to website code only in
SVN, then upload the content to web server manually.
IOW never update on web server directly.
* contrib/hbide/actions.prg
+ Added: prompts of IdePARTS in "View" menu.
* contrib/hbide/docks.prg
- Deleted: some redundant code.
* contrib/hbide/main.prg
* contrib/hbide/parts.prg
+ Added: new part "IdeREPORTS" as a non-dock widget. It is
parallel to "IdeDBU".
- Deleted: ReportsManager relevant docking widget code.
* contrib/hbide/hbide.qrc
- Deleted: resources which are part of XbpAddOns lib.
* contrib/hbide/xbpaddons/dbu.prg
+ contrib/hbide/xbpaddons/misc.prg
* contrib/hbide/xbpaddons/reports.prg
* contrib/hbide/xbpaddons/xbp.qrc
* contrib/hbide/xbpaddons/xbpaddons.hbp
+ Transferred: resources used for IdeREPORTS.
* contrib/hbxbp/toolbar.prg
% Optimized: XbpToolbar() class.
+ contrib/hbide/xbpaddons/dbstruct.ui
+ contrib/hbide/xbpaddons/fetchdate.ui
+ contrib/hbide/xbpaddons/tables.ui
- contrib/hbide/xbpaddons/xbpdbstruct.ui
- contrib/hbide/xbpaddons/xbpfetchdate.ui
- contrib/hbide/xbpaddons/xbptables.ui
! redone the naming scheme introduced few month ago
and added to this new component yesterday, which
was since undone by Pritpal.
* contrib/hbide/xbpaddons/xbpaddons.hbp
* contrib/hbide/hbide.hbp
! deleted wrongly added -L option by Pritpal
.hbc should take care of it.
* utils/hbmk2/hbmk2.prg
! hbshell_gtInteractive() will now create new GT only when necessary
+ internal changes to support multiple initial commands
- contrib/hbide/dbstruct.ui
- contrib/hbide/tables.ui
* contrib/hbide/hbide.hbp
* contrib/hbide/misc.prg
- Deleted: two more resources which have already been moved to
xbpaddons library.
+ contrib/hbide/idedbu
+ contrib/hbide/idedbu/idedbu.hbc
+ contrib/hbide/idedbu/idedbu.hbp
+ contrib/hbide/idedbu/dbstruct.ui
+ contrib/hbide/idedbu/dbu.prg
+ contrib/hbide/idedbu/dbu.qrc
+ contrib/hbide/idedbu/fetchdate.ui
+ contrib/hbide/idedbu/resources
+ contrib/hbide/idedbu/tables.ui
- contrib/hbxbp/dbu.prg
- contrib/hbxbp/resources
- contrib/hbxbp/resources/closetab.png
- contrib/hbxbp/resources/database_accept.png
- contrib/hbxbp/resources/database_add.png
- contrib/hbxbp/resources/database_down.png
- contrib/hbxbp/resources/database_lock.png
- contrib/hbxbp/resources/database_next.png
- contrib/hbxbp/resources/database_previous.png
- contrib/hbxbp/resources/database_process.png
- contrib/hbxbp/resources/database_remove.png
- contrib/hbxbp/resources/database_search.png
- contrib/hbxbp/resources/database_up.png
- contrib/hbxbp/resources/database.png
- contrib/hbxbp/resources/dbf_p1.png
- contrib/hbxbp/resources/dbf_p10.png
- contrib/hbxbp/resources/dbf_p2.png
- contrib/hbxbp/resources/dbf_p3.png
- contrib/hbxbp/resources/dbf_p4.png
- contrib/hbxbp/resources/dbf_p5.png
- contrib/hbxbp/resources/dbf_p6.png
- contrib/hbxbp/resources/dbf_p7.png
- contrib/hbxbp/resources/dbf_p8.png
- contrib/hbxbp/resources/dbf_p9.png
- contrib/hbxbp/resources/dbstruct.png
- contrib/hbxbp/resources/dc_delete.png
- contrib/hbxbp/resources/find.png
- contrib/hbxbp/resources/form.png
- contrib/hbxbp/resources/formview.png
- contrib/hbxbp/resources/fullscreen.png
- contrib/hbxbp/resources/gotoline3.png
- contrib/hbxbp/resources/open3.png
- contrib/hbxbp/resources/panel_7.png
- contrib/hbxbp/resources/panel_8.png
- contrib/hbxbp/resources/save3.png
- contrib/hbxbp/resources/sort.png
- contrib/hbxbp/resources/table.png
- contrib/hbxbp/resources/view_cascaded.png
- contrib/hbxbp/resources/view_docks.png
- contrib/hbxbp/resources/view_horzstacked.png
- contrib/hbxbp/resources/view_organized.png
- contrib/hbxbp/resources/view_refresh.png
- contrib/hbxbp/resources/view_tabbed.png
- contrib/hbxbp/resources/view_tiled.png
- contrib/hbxbp/resources/view_vertstacked.png
- contrib/hbxbp/resources/view_zoomin.png
- contrib/hbxbp/resources/view_zoomout.png
- contrib/hbxbp/xbp.qrc
- contrib/hbxbp/xbpdbstruct.ui
- contrib/hbxbp/xbpfetchdate.ui
- contrib/hbxbp/xbptables.ui
* contrib/hbide/hbide.hbp
* contrib/hbxbp/generic.prg
* contrib/hbxbp/hbxbp.hbp
* HBIDE submodule DBU moved under HBIDE.
Such module (complete with its own UI theme, GUI resources
hard-wired texts) has nothing to do in a generic library.
I can hardly imagine what the goal was with this move.
It's also good idea to consult/ask questions before
making such code rearrangement.
Untested.
; TOFIX: Some more stuff (code) has been added to hbxbp,
I didn't deal with those.
; TOFIX: Someone please remove the duplicate resources
from hbide/resources.
Also, please make use of 'svn move' when moving
around objects inside the repository tree, otherwise
such thing will happen and history is also lost
along the way.
* contrib/hbqt/hbmk2_qt.hb
* contrib/hbqt/qtgui/qth/QWidget.qth
+ Enabled: "WId" casted calls.
WARNING: These are portable to the extent that Qt does not
throw error. But what you do with the WId is non portable.
So be careful.
* contrib/gtwvg/crt.prg
! Fixed: regression caused by redirection of "?" command.
Changed: ? " " => CLS
This fixes nasty behavior of WvgCRT() not showing up altogether.
Took roughly four hours to debug.
* contrib/gtwvg/toolbar.prg
+ Added code to pass <pBitmap> as a pointer to bitmap in memory.
+ contrib/hbxbp/resources
+ contrib/hbxbp/resources/closetab.png
+ contrib/hbxbp/resources/database.png
+ contrib/hbxbp/resources/database_accept.png
+ contrib/hbxbp/resources/database_add.png
+ contrib/hbxbp/resources/database_down.png
+ contrib/hbxbp/resources/database_lock.png
+ contrib/hbxbp/resources/database_next.png
+ contrib/hbxbp/resources/database_previous.png
+ contrib/hbxbp/resources/database_process.png
+ contrib/hbxbp/resources/database_remove.png
+ contrib/hbxbp/resources/database_search.png
+ contrib/hbxbp/resources/database_up.png
+ contrib/hbxbp/resources/dbf_p1.png
+ contrib/hbxbp/resources/dbf_p10.png
+ contrib/hbxbp/resources/dbf_p2.png
+ contrib/hbxbp/resources/dbf_p3.png
+ contrib/hbxbp/resources/dbf_p4.png
+ contrib/hbxbp/resources/dbf_p5.png
+ contrib/hbxbp/resources/dbf_p6.png
+ contrib/hbxbp/resources/dbf_p7.png
+ contrib/hbxbp/resources/dbf_p8.png
+ contrib/hbxbp/resources/dbf_p9.png
+ contrib/hbxbp/resources/dbstruct.png
+ contrib/hbxbp/resources/dc_delete.png
+ contrib/hbxbp/resources/find.png
+ contrib/hbxbp/resources/form.png
+ contrib/hbxbp/resources/formview.png
+ contrib/hbxbp/resources/fullscreen.png
+ contrib/hbxbp/resources/gotoline3.png
+ contrib/hbxbp/resources/open3.png
+ contrib/hbxbp/resources/panel_7.png
+ contrib/hbxbp/resources/panel_8.png
+ contrib/hbxbp/resources/save3.png
+ contrib/hbxbp/resources/sort.png
+ contrib/hbxbp/resources/table.png
+ contrib/hbxbp/resources/view_cascaded.png
+ contrib/hbxbp/resources/view_docks.png
+ contrib/hbxbp/resources/view_horzstacked.png
+ contrib/hbxbp/resources/view_organized.png
+ contrib/hbxbp/resources/view_refresh.png
+ contrib/hbxbp/resources/view_tabbed.png
+ contrib/hbxbp/resources/view_tiled.png
+ contrib/hbxbp/resources/view_vertstacked.png
+ contrib/hbxbp/resources/view_zoomin.png
+ contrib/hbxbp/resources/view_zoomout.png
+ contrib/hbxbp/xbp.qrc
+ Added: various images for HbpDBU() class implementation.
* contrib/hbxbp/hbxbp.hbp
+ Added: dbu.prg, xbpdbstruct.ui, xbpfethdate.ui, xbptables.ui.
* contrib/hbxbp/hbxbp.hbx
* Regenerated.
+ contrib/hbxbp/dbu.prg
* contrib/hbxbp/dialog.prg
* contrib/hbxbp/generic.prg
* contrib/hbxbp/toolbar.prg
+ contrib/hbxbp/xbpdbstruct.ui
+ contrib/hbxbp/xbpfetchdate.ui
+ contrib/hbxbp/xbptables.ui
+ Implemented: HbpDBU() class which was developed for HbIDE initially.
Now this class is self contained object like a COM object which can
be embedded into your HbQt/HbXBP based applications. The syntax to
embed in your applications is like :
oWidget := QWidget()
oLayout := QHBoxLayout( oWidget )
oWidget:setLayout( oLayout )
oDBU := HbpDBU():new()
oDBU:qtObject := oWidget
oDBU:create( , , {0,0}, {100,100}, , .T. )
And you will see the DBU will all its bells and whisles inside oWidget.
oWidget can be any container of your application, but it must have a
layout set on it. Layout can be any. But if it is QGridlayout then
row/column 0,0 is consumed with rowspan/columnsspan 1,1.
It is usable as it was usable in HbIDE, but a lot of improvements/features
are planned lurking on my drawingboard. So just for now, you can play.
* contrib/hbide/actions.prg
- Deprecated: ideDBU opening inside dock widget. Removed this action from
<Main Menu><View> and also from <Dock Widgets Toolbar>.
! Fixed: Selection Mode toggle action not working in Selected-text Toolbar.
- contrib/hbide/browse.prg
- Removed: ideDBU source.
* contrib/hbide/docks.prg
% Adjusted: toggle actions.
* contrib/hbide/hbqtoolbar.prg
% Few refinements.
* contrib/hbide/main.prg
* contrib/hbide/parts.prg
* contrib/hbide/hbide.hbp
- Removed: browse.prg.
TODO: to remove resources consumed by ideDBU.
* harbour/src/compiler/hbmain.c
! fixed bug intorduced in my last commit when - PCODE ofr empty
strings "" were not generated if -km switch was not used
! fixed possible problem with allocating variable using dynamic
buffer for variable name
* minor code cleanup
* harbour/include/hbexprb.c
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbusage.c
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.y
* harbour/src/compiler/ppcomp.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/cmdcheck.c
* harbour/doc/cmpopt.txt
* harbour/doc/xhb-diff.txt
+ added new harbour compiler switch:
-kd => accept macros with declared symbols
This switch allows to use declared symbols like LOCALs, STATICs
and FIELDs in macros and macrocodeblocks (every evaluated).
; Please do not confuse different things. Above modification
does not mean to that such variables are visible for macro
compiler. It only allows to write code like:
cbVar := {|| &cLocal + cPrivate }
or:
cbVar := {|| &cLocalPref.func&cPriv1( cPriv2 ) }
or:
? &cLocalPref.func&cPriv1( cPriv2 )
etc.
If possible then for macrocodeblocks Harbour compiler tries to
generate early eval code in which macros are expanded when codeblock
is created. Otherwise macros are expanded each time codeblocks are
evaluated.
For more information look at harbour/doc/xhb-diff.txt section:
MACROS WITH DECLARED SYMBOLS
* contrib/hbpgsql/tests/dbf2pg.prg
! avoid OEM/ANSI conversion.Will now convert from
current CP to UTF8.
+ CP can be set using '-cp <CP>' cmdline option.
* contrib/hbwin/hbwin.hbx
! updated
+ contrib/hbwin/oemansi.c
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwin.hbx
+ added WIN_OEMTOANSI() and WIN_ANSITOOEM(). These are
compatible with current core HB_OEMTOANSI()/HB_ANSITOOEM()
Usage of them is not recommended.
* contrib/hbxpp/oemansix.c
* CONVTOANSICP()/CONVTOOEMCP() changed to use local
implementation instead of relying on now deprecated
core OEM/ANSI functions
* src/rtl/oemansi.c
* HB_OEMTOANSI()/HB_ANSITOOEM() Windows-specific functions
deprecated with HB_LEGACY_LEVEL4 (meaning they will
disappear after next stable release). Either avoid
these calls completely (recommended) or change them to
hbwin or hbxbp equivalents.
* contrib/hbtip/thtml.prg
* contrib/hbtip/hbtip.hbx
* deprecated HtmlToAnsi(), HtmlToOem(), AnsiToHtml(), OemToHtml()
functions with HB_LEGACY_LEVEL4.
+ added TIP_STRTOHTML(), TIP_HTMLTOSTR() functions which cover
major above functionality, but in a portable and CP agnostic
way. Code untested, if you need it, test it and provide feedback
and/or fix.
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/olecore.c
+ added new public C functions:
VARIANT * hb_oleItemGetVariant( PHB_ITEM pItem );
PHB_ITEM hb_oleItemPutVariant( PHB_ITEM pItem, VARIANT * pVariant,
HB_BOOL fMove );
+ added new PRG functions:
create variant pointer item of given OLE type <nVariantType> and
initialize it with <xInitValue>
__oleVariant( <nVariantType> [, <xInitValue>] ) -> <pVariant>
extract Harbour value from variant pointer item
__oleVariantValue( <pVariant> ) -> <xAnyValue>
return OLE type of given variant pointer item
__oleVariantType( <pVariant> ) -> <nVariantType>
+ added support for variant pointer items passed as parameters to
OLE methods
! removed AddRef() sent to object returned by QueryInterface()
when VT_UNKNOWN Variant was updated. QueryInterface() should
already increase reference count for the returned object.
* modified default translation rule for VT_[U]I8 | VT_ARRAY variants.
Now they are converted to harbour strings items without any CP
translations. Before such variants were converted to array of
integers.
Warning! this modification is not backward compatible. If some
needs previous behavior then he should change create conversion
functions.
; Please test it. I made all this modifications in Linux without
any real tests.
* contrib/gtwvg/gtwvg.c
+ hb_gtInfo( HB_GTI_SETPOSANDSIZE ) returns the existing position
and size: { nX, nY, nWidth, nHeight } in pixels.
* contrib/hbqt/hbmk2_qt.hb
+ someObject:setHtml( cHtmlCode ) now reads the html text correctly
off a .ui file. This makes possible to draft html pages in
Qt creator itself and assigned to an relevant object, like
QLabel, QTextEdit, QTextBrowser, etc.
* utils/hbmk2/hbmk2.prg
* hbmk_OutStdRaw() and hb_OutErrRaw() hbmk2 plugin
API functions parameter list modified so that now they
expect hbmk context as first parameter.
INCOMPATIBLE.
! made sure that hbmk_OutStdRaw() and hbmk_OutErrRaw()
won't emit output in --hbinfo mode.
* contrib/hbqt/hbmk2_qt.hb
* utils/hbmk2/examples/plug_bis.hb
* updated as per above incompatible change
* contrib/make.hb
* minor
* utils/hbmk2/hbmk2.prg
! keep -trace mode turned off in --hbinfo mode, otherwise
some plugins (f.e. HBQT plugin) might litter the output
with their own messages, making the JSON output corrupt.
Thus problem might have caused that dependencies were
wrongly detected when HBQT was involved in the
dependency tree. Thanks to Lautaro for the report.
! further steps made that stray output is minimized in
--hbinfo mode. (though some raw plugin API call may
still generate output, it's yet to be done, and it will
API compatibility breakage in few calls)