* harbour/src/macro/macro.y
+ added support for
<alias> -> &( <exp> )
in macrocompiler
* harbour/src/macro/macro.yyc
* regenerated for new grammar rules
* bin/hb-mkimp.prg
+ Finished, tested. This version also adds pocc64 support.
It also gives proper feedback.
* INSTALL
* bin/postinst.bat
- bin/hb-mkimp.bat
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched to use hb-mkimp.prg instead of .bat.
25KB less of non-portable .bat file in Harbour SVN.
Remains only ~100 lines of .bat stuff in core parts.
+ Deleted GNU Sed requirement.
+ Lifted Windows NT requirement for implib creation.
+ Lifted NT shell requirement for implib creation.
+ bin/hb-mkimp.prg
+ Added .prg rewrite for implib generation. This highly
reduces redundancy, drops WinNT and GNU Sed tool
requirement, further lowers the amount of non-portable
batch sources in SVN. It also opens the door to add
automatic implib generation in tools like hbmk2.
Not yet tested.
* bin/postinst.bat
% Minor cleanup.
* bin/hb-mkimp.bat
* Rearrangement.
* utils/hbmk2/hbmk2.prg
! Typo on comment.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/idesaveload.prg
+ Implemented: auto-loading the last "Re-tagged" functions
prototype. It may take some time but it is done at the
background, so user will never experience the difference.
You can start working on any other aspect of hbIDE.
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
+ Implemented: auto-save the project's source(s) at "build" time,
if some are modified.
This is implemented by default, no options.
Regression is possible, please report.
* harbour/bin/postinst.bat
! fixed to not override hbrun if HB_BUILD_SHARED == "yes"
* harbour/ChangeLog
! fixed date
* harbour/contrib/hbsqlit3/hbsqlit3.c
! fixed usage hb_fsNameConv in SQLITE3_TEMP_DIRECTORY
* contrib/hbide/hbide.hbp
+ Added idewizard.prg
* contrib/hbide/hbide.prg
! Postponed destruction of QSplashScreen(),
always producing GPF on OS2, to take care of by Qt itself.
* contrib/hbide/idedocks.prg
! Fix to *nixs warning
QWidget::setLayout: Attempting to set QLayout "" on QDockWidget
"dockHelp", which already has a layout
and family.
+ contrib/hbide/idewizard.prg
+ Preparations for globalization of hbIDE for Xbase world.
* contrib/hbwin/hbwin.ch
+ Added WIN_LR_* flag constants for WAPI_LOADIMAGE().
* contrib/hbwin/win_shell.c
* contrib/hbwin/hbwin.ch
+ WIN_SHELLNOTIFYICON(): Added support for balloon notifications.
* contrib/hbwin/wapi_commctrl.c
! Fixed functions to be defined regardless of _WIN32_IE value
and to return permanent errors if not.
* harbour/contrib/hbwin/wapi_winuser.c
* cleaned some code to use wapi_par_*() and wapi_ret_*() macros
+ added WAPI_*() functions to create and manipolate menus (HMENU)
+ added WAPI_CREATEACCELERATORTABLE( <aAccels> ) -> <hAccel>
and WAPI_DESTROYACCELERATORTABLE( <hAccel> )
* harbour/contrib/hbwin/hbwin.ch
+ added new constant values for WAPI manu functions
(WIN_MF_* and WIN_TPM_*)
* harbour/contrib/hbwin/hbwapi.h
+ added few new wapi_par_*() and wapi_ret_*() macros
! fixed wapi_ret_UINT() and wapi_ret_DWORD() macros to not make
conversion which can create negative values
* bin/postinst.bat
! Fixed recent change. 'HB_BUILD_SHARED=yes' means to create
_default_ binaries (hbtest.exe, hbrun.exe, etc) in shared
mode, so the correct behavior here is to _not_ create separate
shared versions in this case.
I didn't retest every aspect of this, so it's possible even
this is wrong and the whole change has to be rethought or reverted.
! Fixed indentation after recent change.
Please do respect formatting when editing files.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
+ Reworked command-line parameters.
Now hbIDE can be invoked with either of the combination,
.ini .hbp .prg .c .cpp. Following algorithm is followed:
1 .ini has the precedance over .hbp.
2 if both are passed then .hbp will be added to the project tree,
after loading components from .ini.
3 if only .hbp is passed, then no attempt is made to save the settings.
4 if only sources are passed then all will be opened "Main" panel,
which will also be the startup panel, no project tree will be
displayed.
c:\harbour\contrib\hbide>hbide.exe hbide.hbp
c:\harbour\contrib\hbide>hbide.exe idemisc.prg idethemes.prg
c:\harbour\contrib\hbide>hbide.exe C:\dev_hbmk\hbide.ini hbide.hbp
Regression is possible, please inform any incompatibilities.
* src/common/hbverdsp.c
* Deleted an empty line in build information.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/gtwvg/wvgcore.c
- Deleted local (and unmaintained) hacks to make OLE work.
* .c source changed to use hbwinole.h instead.
* contrib/gtwvg/wvgcore.c
! Fixed to build properly in mingw C++ mode.
(build errors found with mingw64 4.5.0)
* contrib/hbide/ideskeletons.prg
! Meta concept enhanced further.
<-NAME=PROMPT> ; then NAME will be the meta and string
returned by PROMPT dialog will be assigned to <-NAME>
for next occurances. The assignment is done only with
<-PROMPT> meta.
This feature is especially useful when skeleton is built
defining a class:
--- SKELETON ---
#include "common.ch"
/*------------------------------*/
CLASS <-NAME=PROMPT> INHERIT IdeObject
DATA oUI
METHOD new( oIde )
METHOD create( oIde )
METHOD destroy()
ENDCLASS
/*------------------------------*/
METHOD <-NAME>:new( oIde )
::oIde := oIde
RETURN Self
/*------------------------------*/
METHOD <-NAME>:create( oIde )
DEFAULT oIde TO ::oIde
::oIde := oIde
RETURN Self
/*------------------------------*/
--- INSERTION ( after input "MyNewClass" in the dialog ) ---
#include "common.ch"
/*------------------------------*/
CLASS MyNewClass INHERIT IdeObject
DATA oUI
METHOD new( oIde )
METHOD create( oIde )
METHOD destroy()
ENDCLASS
/*------------------------------*/
METHOD MyNewClass:new( oIde )
::oIde := oIde
RETURN Self
/*------------------------------*/
METHOD MyNewClass:create( oIde )
DEFAULT oIde TO ::oIde
::oIde := oIde
RETURN Self
/*------------------------------*/
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
+ contrib/hbide/ideskeletons.prg
+ Reworked and greatly enhanced "snippets->skeletons" management.
How it works:
=============
1. Creating of skelton is as before with same interface.
2. In addition, the selected text in the current editor
can be saved as a skeleton via "Save as Skeleton..."
option in right-click context menu. A "Name" will be
asked via a modal input edit dialog.
3. A new "Skeletons" tree-view is implemented at the Left-hand
docking area which displays all skeletons by name.
4. Hovering cursor over the name node shows up the body of
skeleton as a tooltip, very handy.
5. Double-click on the node in tree-view will insert the
skeleton text at the current cursor position.
6. Alternatively, as before, menu can be activated via CTRL+K.
7. Skeletons body now supports meta data as follows:
---
DO WHILE .T.
IF cVar == "<-PROMPT>"
xVar := <-DtoC( Date() )>
ENDIF
<-CUR>
EXIT
ENDDO
---
You can see there are 3 occurances of <-*> token.
<-PROMPT> will execute an input dialog and the resultant
string will be inserted here.
<-DtoC( Date() )> will evaluate the expression, which in
this case, - "03/18/2010" - will be inserted. This means
any valid Harbour expression which returns a string
can be designated as meta-expression.
<-CUR> will position the cursor at this place.
This is what I thought it should behave.
Please let me know it anything else can make it more productive.
* harbour/contrib/hbwin/axcore.c
* use hb_parstr_u16() instead of hb_mbtowc(hb_parc(n))
* harbour/src/rtl/hbzlib.c
* modified HB_ZUNCOMPRESSLEN(), current syntax is:
HB_ZUNCOMPRESSLEN( <cCompressedData>, [<@nResult>] )
-> <nUnCompressedDataLen> or -1 on error
* harbour/contrib/hbbzip2/hbbzip2.c
* modified HB_BZ2_UNCOMPRESSLEN(), current syntax is:
HB_BZ2_UNCOMPRESSLEN( <cCompressedData>, [<@nResult>] )
-> <nUnCompressedDataLen> or -1 on error
* INSTALL
! Fixed Debian bzip2 package name.
* external/bzip2/Makefile
* contrib/hbbzip2/hbbzip2.hbc
* Changed local bzip2 lib name to match regular name used on *nix systems.
* external/zlib/Makefile
* Formatting.
* contrib/hbmzip/Makefile
! Minor fix.
* contrib/hbxbp/xbptreeview.prg
! Added :tooltipText instance variable to manage tooltips.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/docwriter.ui
* contrib/hbide/resources/docwriter.uic
! Reworked "Projects" and "Editors" tree.
Now the indentation is reduced, visual elements are added,
long paths are shifted inside tooltips, nodes are sorted.
! "Editors" tree now displays the panel icon on which this source
is hosted. A very handy and useful implementation.
These tree-views will remain stationary for the rest of hbIDE
development cycle, i.e., there will bo no change whatsoever
on these components.
! Many other artifacts corrected while working with the production
projects myself. Probably now you may try, at least, for real-time
use.
+ Setup a dedicated web-presence of hbIDE
http://hbide.vouch.info/
Please remain in tough with these pages as contents will keep on
posted with every available spare time.
* INSTALL
+ Added bzip2 information. (not fully complete, it also
needs to be added to .spec files like zlib)
- external/bzip2/bzip2.dif
- external/bzip2/bzip2.c
* external/bzip2/cnv_hb2o.bat
* external/bzip2/cnv_o2hb.bat
* external/bzip2/Makefile
- Deleted accindentally included bzip2 tool.
+ contrib/hbbzip2/tests
+ contrib/hbbzip2/tests/hbmk.hbm
+ contrib/hbbzip2/tests/test.prg
+ Added little test code.
+ contrib/hbbzip2/hbbzip2.hbc
+ Added .hbc file.
* contrib/hbbzip2/hbbzip2.ch
+ Added 'it's also used by C code' comment.
* contrib/hbbzip2/Makefile
+ Added bzip2 header detection and setup.
; TOFIX: Some warnings:
mingw:
hbbzip2.c: In function 'hb_bz2Compress':
hbbzip2.c:96: warning: left shift count >= width of type
hbbzip2.c: In function 'hb_bz2UncompressedSize':
hbbzip2.c:138: warning: left shift count >= width of type
hbbzip2.c: In function 'hb_bz2Uncompress':
hbbzip2.c:177: warning: left shift count >= width of type
msvc:
hbbzip2.c(96) : warning C4293: '<<' : shift count negative or too big, undefined behavior
hbbzip2.c(138) : warning C4293: '<<' : shift count negative or too big, undefined behavior
hbbzip2.c(177) : warning C4293: '<<' : shift count negative or too big, undefined behavior
+ contrib/hbide/resources/arguments.png
+ contrib/hbide/resources/description.png
* contrib/hbide/resources/docviewgenerator.ui
* contrib/hbide/resources/docviewgenerator.uic
+ contrib/hbide/resources/docwriter.png
+ contrib/hbide/resources/docwriter.ui
+ contrib/hbide/resources/docwriter.uic
+ contrib/hbide/resources/editstree.png
+ contrib/hbide/resources/example.png
+ contrib/hbide/resources/helpdoc.png
+ contrib/hbide/resources/load_1.png
+ contrib/hbide/resources/load_2.png
+ contrib/hbide/resources/load_3.png
+ contrib/hbide/resources/panel_8.png
+ contrib/hbide/resources/projtree.png
* contrib/hbide/resources/tabs.png
+ contrib/hbide/resources/tests.png
* contrib/hbide/resources/togglelinenumber.png
+ contrib/hbide/resources/unload_1.png
+ Added more images, refind few.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! More artifacts corrected.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added more slots.
* contrib/hbxbp/xbptoolbar.prg
! Provided the "objectName" TO main toolbar.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
+ contrib/hbide/idedocwriter.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
! Corrected many artifacts, so many that cannot be mensioned precisely.
+ Implemented: basic documentation writer.
Documentation Writer
--------------------
1. Click on "Documentation Writer" icon on the right-toolbar,
2. Open some source in the editor,
3. Position cursor somewhere inside a function body,
4. Click on "Load from current function" icon on the
top-toolbar of "Document Writer" widget,
5. Look at the contents, few fields will be auto filled
with various info from current function,
6. Complete the other fields with relevent information,
7.1 Click on "Save the documentation with current function",
.2 Look at the function body in the editor,
The NANFORUM compliant documentation will be inserted
at the top of function's prototype.
8.1 Click on "Save written/updated documentation" icon,
and provide the filename to save on disk,
.2 Copy such generated .txt in /harbour/doc/en,
.3 Open "Harbour Document Viewer" and you should be viweing
newly written documentation there.
.4 Such generated file is ready to be uploaded to SVN,
just send it to the list and group will decide if it needs
something extra.
It is a quick way to generate help. You can keep the documentation
in your sources or can create a tree like Harbour's. I know
there is a lot more to be done in this tool, but at least group
can start using it.
My humble request is: start writing the documentation. I will polish
this tool in coming week, so be assured that everything which need
be done will be done. You cooperation is more important than this tool.
;TODO: Loading existing doc and merging it back after edits, on disk.
Loading doc from source file and replacing old with new one.
And many more, plus, whatever you will demand.
* external/bzip2/Makefile
* external/bzip2/bzip2.dif
* external/bzip2/bzip2.c
+ Added patch to make it compile on dos and os2/watcom.
Thanks to Przemek.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
! fixed bad copy and past typo which could cause internal error when
new index using existing order (subindex) was created without ADDITIVE
clause. Bug reported by Mindaugas - many thanks for the information.
* contrib/hbct/ctnet.c
* contrib/hbtpathy/tpwin.c
* contrib/hbnf/getenvrn.c
! Fixed to disable some functionality on all WinCE platforms.
These were WinCE API functions wrongly declared in
mingwarm/poccarm headers. (thus causing link-time errors
for final apps trying to use these functions)
* contrib/hbwin/win_dlg.c
! Enabled more functionality for WinCE. mingwarm builds
will probably crash due to buggy commdlg.h header.
* src/vm/fm.c
! Fixed to redefine ABORT for all wce/msvcarm targets.
* utils/hbmk2/hbmk2.prg
! Minor typo in recently added help item.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_dlg.c
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
! Fixed to compile with -DWIN32_LEAN_AND_MEAN.
* contrib/hbxbp/xbpgra.prg
! Fixed to use HB_SYMBOL_UNUSED() instead of wrong "HBXBP_JUST"
solution, which is a real call with overhead. Std method to
suppress unused warnings in Harbour is HB_SYMBOL_UNUSED().
Or, if some function are plain dummies, it's not necessary
to delcare any parameters.
* contrib/hbxbp/gra.ch
* contrib/hbxbp/Makefile
* contrib/hbxbp/xbpgeneric.prg
+ contrib/hbxbp/xbpgra.prg
* contrib/hbxbp/xbppresspace.prg
+ Added Gra*() skeleton functions.
! Extended XbpPresSpace() class to cover next round of implementation.
; NOTE: I am not been able to find a way to execute Gra*()
functions on a widget's presentation ( device context )
space. Qt documentation clearly indicates that this is
only possible from withing method QEvent::Paint of
concerned widget. And it is correct. Windows itself also
does not allow to paint from outside of WM_PAINT message.
However my experiments have led me to the conclusion that
this is possible if every widget is subclasses and QEvent_Paint
is method is implemented. This is a very tedious and
very error prone job. If anybody come across some sparkling
idea how this can be achieved in a resonable way, please
speak out.
However on other devices, such as, printer and bitmaps these
functions will be working. In the first phase I will implement
it for printing only, later for widgets.
* src/vm/extrap.c
! Fixed to do UNICODE to "ANSI" conversion in module listing
code for WinCE platform. It'd be nice if a WinCE user
could test it.
* src/rtl/filesys.c
! Silenced warning on newer mingwarm compilers about
unused function.
* utils/hbmk2/hbmk2.prg
! Fixed autodetection of mingwarm, when Cygwin is also
in PATH (it is supposed to be there, as it is a
requirement for C compiler).
* utils/hbmk2/hbmk2.prg
+ hbmainstd/hbmainwin lib is now added for mingw family
to lib list also for static executables. It fixes the GPF
at startup with Equation Solution mingw64 build. I hope
it doesn't create any harm for other builds, it remains
to be tested.
% Disabled -fomit-frame-pointer for mingw64.
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* utils/hbrun/Makefile
* config/win/mingw.mk
% "HB_MAIN" logic eliminated from local make files and moved
to mingw.mk only.