* 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.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/qth/QList.qth
* contrib/hbqt/qth/QObject.qth
* Re0generated: contrib/hbqt/qtgui/?.cpp
* Re-generated: contrib/hbqt/qtcore/?.cpp
+ Eliminated any occurance of hb_retptr(*) calls.
Now all objects which are created with "new" or are
returned as a method call are encapsulated in GC
pointer. This is a step closer to find-out the potential
GPFs.
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
% declare hb_stack TLS pointer in MT HVM as static when HVM is compiled
with HB_HVM_ALL=yes
* harbour/src/compiler/hbcomp.c
! added protection against multiple freeing the same expression on
some errors in compiled code. It's necessary after removing reference
counters which made such protection indirectly. It fixed bug reported
by Teo.
* harbour/include/hbsetup.h
! check GCC version for hot and cold function attribute macros
* utils/hbmk2/hbmk2.prg
+ Readded -pipe option for gcc (except djgpp) and icc/linux family
compilers in a more sophisticated way. Now -pipe option is only
used when hbmk2 controls the output filename, and in such case
the output filename will always be deleted by hbmk2 if the
C compiler returned error. This way -pipe can never leave
faulty or dummy object files on disk, confusing incremental builds
or just leaving trash behind. BTW, it'd be interesting to
know why such seemingly buggy behavior hasn't been fixed in gcc
in the last 6-7 years... (making -pipe option useless for Harbour
build process f.e.)
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
! Fixed behavior of book-marks. Now color representation
on bookmarked lines is persistent and consistent with
corresponding buttons in the statusbar.
* contrib/hbssl/evpmd.c
! Disabled md2 support for >= 1.0.0 OpenSSL versions.
Seems they dropped it.
* contrib/hbssl/ssl.c
* contrib/hbssl/x509.c
* contrib/hbssl/sslctx.c
! Disabled some code parts which didn't compile with
>= 1.0.0 OpenSSL versions. This is not the right fix,
but I just can't figure what went wrong (or what
has been changed) in OpenSSL which cases it. There
is something wrong around 'X509_NAME' symbol.
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
- Deleted '-pipe' option. Efficient, but buggy. It didn't take
too long to bump into the problem: On build error, the
.o file is generated with some dummy content, so a second
build attempt will silently make build errors ignored.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* src/rtl/filesys.c
! Fixed fs_win_get_drive() to return zero (instead of -1)
when drive letter wasn't returned by Windows API.
(it's not clear what is the proper error behavior here)
! Fixed fs_win_set_drive() to apply upper limit on input
parameter.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* contrib/rddsql/sddfb/sddfb.c
! Few cleanups in the FB RDDSQL interface (macro and type usage).
; It's not an attempt to fix recently reported bugs on the list.
* contrib/gtwvg/gtwvg.c
! Fixed the HB_GTI_PALETTE protocol uniform with other GT's.
* contrib/gtwvg/tests/demowvg.prg
! ThreadID() -> Hb_ThreadID()
BTW ThreadID() is a Xbase++ compatible function.