* harbour/src/compiler/hbmain.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* use hb_compGetFuncID() to detect reserved function names
* harbour/include/hbapi.h
* harbour/src/common/Makefile
- harbour/src/common/reserved.c
- removed not longer used hb_compReservedName() function
* contrib/hbide/resources/funclist.ui
* contrib/hbide/resources/funclist.uic
! Shifted "Projects Selection" list downwards.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
! Reworked behavior of function's prototype display as tooltip.
Now it stays there until you press ")", i.e., a function call is
made complete. If you move the cursor anywhere in the editor,
the tooltip will disappear, and will reappear when cursor
will be past the "(" opening brace. The same holds true
if you play with another widget. Tooltip has a suspended
and active behavior.
! Changed the behavior of "line numbers" display in the editor tabs.
Now it is active for all the tabs on all the panels. The icon
at the left will visualize as active or passive accordingly.
! Corrected behavior of navigation in "Editor tabs" also as
par with behavior in "Projects Tree".
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/src/common/expropt1.c
* harbour/src/compiler/hbcomp.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyc
* harbour/src/macro/macro.yyh
+ added new type of expression: SETGET
% eliminated reference counter in expressions
(this code was never fully safe because expression optimizer was not
respecting multiple references)
% replaced all HB_COMP_EXPR_DELETE() macro usage with HB_COMP_EXPR_FREE()
and deleted HB_COMP_EXPR_DELETE() macro
- removed not longer used hb_compExprClone()
Above modifications reduce a little bit total memory consumed by
compiler and macrocompiler giving also some minor speed improvement.
* harbour/ChangeLog
* marked TODO for above modification as DONE.
* src/rtl/hbini.prg
* Deleted several unnecessary empty lines at EOF.
* INSTALL
* Minor.
* include/dbinfo.ch
* Formatting.
+ include/hb.ch
* include/Makefile
+ Added Harbour header which #includes commonly used in
applications.
It also enables us to easily extend standard set of macros
and constants.
* contrib/hbide/idesaveload.prg
* "hbide.set" -> "hbidewnd.ini". At least it uses standard
extension. Still wrong solution and a remaining TOFIX.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added more slots for QTableWidget().
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Added method hbShowPrototype().
! All existing methods prefixed with "hb".
Please update your code if it relies on HBQPlaintTextEdit().
* contrib/hbqt/THbQtUI.prg
! More optimization in destructor.
* contrib/hbide/resources/environments.ui
* contrib/hbide/resources/environments.uic
* contrib/hbide/resources/selectionlist.ui
* contrib/hbide/resources/selectionlist.uic
! Simplified grid layouts.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idefindreplace.prg
+ contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ Implemented: next step of "intellisense" by way of tagging
the functions prototypes. For its realization, added one
more docking widget containing controls to execute
required actions which can be activated via right-toolbar icon.
+ Rearranged icons on the right-toolbar as per logical
distribution. The same scheme is applied in "View" menu.
+ Implemented one more panel in statusbar to show current theme.
! Simplified editor-tabs methods for more grandalurity.
This commit implements next level of intellisense.
How it works:
1. Click on "ffn" icon on the right-toolbar or select
"Projects Functions Lookup" in "View" menu.
2. In the opened dock-widget, click on "Mark Projects" button.
3. On the top of widget, a list of all projects loaded will appear.
4. Click in the little check boxes left to the project titles.
You can choose n number of combinations.
5. Click on "Re-Tag" button, if this is the first time you are
tagging project(s), or "Load Tags" if you already have tagged before.
6. Keep a watch on right-corner of "Syntax" box, it will show the
running commentary.
7. After a while the table above will be populated with function info:
Name Type Line Project Source.
8. Type some alphabets in the top-most edit control. It will
position the function matching the typed characters in the table.
9. Double-click on some function in the table, it will be opened
in the editor.
Now the "intellisense" part, above was basic mechanism to gather contents:
1. Type in the editor a function name which you think must have made up
in the exercise carried above. The moment you will type "(" a nicely
formatted tooltip, displying the prototype of this function will
appear beneth the caret position. The prototype will remain there for
10 seconds ( finding a way how it can be controlled the way I want ).
2. Position editor caret somewhere in some function characters and
activate context menu with right click. Select "Goto Function" option.
It will open the underlying source with cursor positioned on the
function proto. Siultaneously, the function will be made current
in the table in "Projects Functions Lookup" widget.
More is on the way, please forward shortcomings of above mechanism.
NOTE: A point to cheer, this commit do not produce GPF at exit.
==== It is tested with mingw 4.4.0. However, MSVC 8.0 still generates.
* harbour/src/vm/macro.c
! fixed buffer overflow caused by wrong pointer type
( 'HB_ULONG*' instead of 'int *' )
* harbour/src/vm/set.c
! fixed bug in MT mode - when new thread was created then _SET_PATH
setting was not cloned but wrongly shared with parent thread - many
thanks to Rossine for the information
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* contrib/hbwin/wapi_winbase.c
+ Added trick to make dynamic calls to WIDE API functions via
UNICOWS.DLL in UNICODE (default) builds when running on Win9x
systems. This fixes DISKSPACE(), HB_DISKSPACE() and
WAPI_GETLONGPATHNAME() in this scenario. (IOW this patch
makes these calls work in UNICOWS situations)
* src/rtl/hbsocket.c
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
+ Restored to work with ws2_32.dll. (instead of wsock32)
* INSTALL
+ Added information on Win9x/ME support.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
* src/rtl/gtwin/gtwin.c
! Added workaround for MS confirmed (but forever unfixed)
UNICOWS ReadConsoleInput() bug, which caused reported
dead keyboard when running UNICODE+UNICOWS apps on Win9x.
% Optimized to cache Win9x detection flag.
* utils/hbmk2/hbmk2.prg
+ Added trick to recognize 'unicows' lib for win targets
and always place it to its required position in the
lib list. (this trick may change in the future, I don't
really like current solution)
This fixes the unicows issues, and now it seems to work
nicely with Harbour apps built in (now default) UNICODE
mode, when executed on Win9x systems. Harbour works only
with Microsoft's UNICOWS.DLL (with OPENCOWS.DLL it doesn't).
; TOFIX: For GTWIN there is no keyboard input though, but
the mouse works. Any idea why?
* include/hbapi.h
* src/common/hbver.c
+ Added hb_iswin2k() low-level function to detect
if running under Windows 2000 or newer.
* include/hbextern.ch
* src/rtl/version.c
+ Added HB_OSISWIN2K() .prg level function.
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* examples/gtwvw/gtwvw.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
% Changed to use hb_iswin*() API instead of implementing
version detection locally.
* contrib/hbmysql/mysql.c
* contrib/hbpgsql/postgres.c
+ Added my partial copyright.
* contrib/hbpgsql/tests/tstpgrdd.prg
* Formatting.
* contrib/hbpgsql/postgres.c
! Fixed to define all .prg level functions regardless
of pgsql lib it's built against. They return
permanent failure in this case.
! Fixed PQCREATETRACE() to return NULL pointer instead
of NIL for static builds.
! PQFREECANCEL() marked with HB_LEGACY_LEVEL3.
* contrib/hbwin/win_os.prg
+ Using HB_OSISWIN2K() core API.
* contrib/hbide/ideprojmanager.prg
* Minor alignment.
* contrib/hbpgsql/tests/simple.prg
! Fixed to use ANSI date format in INSERT command.
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/test.prg
* contrib/hbpgsql/tests/cache.prg
* contrib/hbpgsql/tests/stress.prg
* contrib/hbpgsql/tests/dbf2pg.prg
! Fixed indentation.
* contrib/hbpgsql/tests/simple.prg
! Fixed date in SQL command to work regardless of mm/dd
positions in date.
I wonder what is the proper solution which uses a fully
portable date format. Anyone?
* utils/hbmk2/hbmk2.prg
! Fixed to disregard HB_FS_STATIC functions when parsing .c files
for entry function name. No idea how this wasn't causing any error
reports so far.
* contrib/hbtip/hbtipssl/Makefile
! Synced file list with non-ssl version.
* contrib/hbtip/cgi.prg
! Fixed to use hb_dirTemp() instead of hard-wired *nix '/tmp/'.
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
! More HTML tag lowercasing.
* contrib/xhb/tframe.prg
! Using IS*() macros instead of NIL checks.
% Using IS*() macros instead ValType() calls.
% Several minor optimizations.
* Changed to use standard class declaration syntax.
* contrib/xhb/tframe.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
! Fixed to generate lowercase HTML code. This is basic requirement
for HTML to validate with any newer than legacy HTML standard (f.e. XHTML).
Should be fixed in other places in Harbour.
* contrib/xhb/tframe.prg
* contrib/xhb/cgi.ch
* Formatting.
* contrib/hbtip/encmthd.c
- Deleted __TIP_QP_[ENCODE|DECODE](). Either I'm misunderstanding
their purpose or they simply didn't work (pbly because they
were not even used by hbtip code).
* contrib/hbtip/encmthd.c
* contrib/hbtip/encurl.prg
* contrib/hbtip/encb64.prg
! Cleaned this quite strange and dangerous hack which made the
exact nature of the logic fully hidden for anyone expecting
regular programming techniques. I even reimplemented QP
encoding not knowing about it.
Now the class/function interface is completely standard
without any hidden interdependencies and internal logic
to access class vars from C level function and mapping C
level functions as methods.
Now it's possible to replace these TIP specific encoder/decoder
functions with core ones, or move these ones to core.
INCOMPATIBLE: Old function names have been changed from
TIPENCODER*_[DECODE|ENCODE]() to __TIP_*_[ENCODE|DECODE]().
; TOFIX: Old C implementation of QP encoding/decoding doesn't
seem to work.
; TODO: Try eliminating redundancy in base64 encoding/decoding
between hbtip and core.
* contrib/hbtip/cgi.prg
* contrib/hbtip/url.prg
* contrib/hbtip/httpcli.prg
* Changed to use new internal function names for encoding/decoding.
* src/rdd/dbf1.c
* Minor formatting.
2010-03-07 04:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/hvm.c
* include/hbapi.h
* Marked hb_synEval public symbol with HB_LEGACY_LEVEL3
* src/rtl/gtwin/gtwin.c
! Copyright header update.
* src/rtl/objfunc.prg
* include/hboo.ch
* Minor cleanup and formatting.
* INSTALL
* Minor refinement in wording.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideprojmanager.prg
! "Codec" -> "Encoding" in a few more places.
! "..." added to some more menu items.
! Double "(.ext)" text in filetypes in open project dialog.
; Please review me.
* src/vm/hvm.c
* include/hbapi.h
* Marked hb_synEval public symbol with HB_LEGACY_LEVEL3
* src/rtl/gtwin/gtwin.c
! Copyright header update.
* src/rtl/objfunc.prg
* include/hboo.ch
* Minor cleanup and formatting.
* INSTALL
* Minor refinement in wording.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
! "Codec" -> "Encoding" in a few more places.
! "..." added to some more menu items.
! Double "(.ext)" text in filetypes in open project dialog.
; Please review me.
+ contrib/hbide/resources/fl_c.png
+ contrib/hbide/resources/fl_dll.png
+ contrib/hbide/resources/fl_exe.png
+ contrib/hbide/resources/fl_ini.png
+ contrib/hbide/resources/fl_lib.png
+ contrib/hbide/resources/fl_prg.png
+ contrib/hbide/resources/fl_res.png
+ contrib/hbide/resources/fl_txt.png
* contrib/hbide/resources/hb-16x16.png
* contrib/hbide/resources/hb-32x32.png
* contrib/hbide/resources/hbide.png
+ contrib/hbide/resources/hbidesplashwatermark.png
+ contrib/hbide/resources/panel_2.png
+ contrib/hbide/resources/panel_3.png
+ contrib/hbide/resources/panel_4.png
+ contrib/hbide/resources/panel_5.png
+ contrib/hbide/resources/panel_6.png
+ contrib/hbide/resources/panel_7.png
+ contrib/hbide/resources/source_c.png
+ contrib/hbide/resources/source_cpp.png
+ contrib/hbide/resources/source_h.png
+ contrib/hbide/resources/source_o.png
+ contrib/hbide/resources/source_prg.png
+ contrib/hbide/resources/source_res.png
+ contrib/hbide/resources/source_txt.png
+ contrib/hbide/resources/source_unknown.png
+ Added more images for user interface.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
- Removed xMate ".xhp" project loading icon.
* contrib/hbxbp/xbpwindow.prg
! Commented out "resize" event as it was hanging the
applications without any graspable reason. Will be
investigated deeply in future.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ contrib/hbide/idethemes.prg
! This commit corrects/fixes issues reported by Viktor.
Please scratch them again. I might have missed a couple
of them.
+ Implemented: A root panel called "Stats" containing,
presently, "Welcome" and "FAQ's" tabs, detailed below.
Now hbIDE has a mechanism to hold as many informative
slots as the development will demand in future.
<Welcome>: It holds the exiting "Projects" information:
Title Type Sources Last_Modified Location
The field <Title> is a link to open detailed view of its
contents which contain fields:
Source Type Size Last_Modified Location
Clicking on a <Source> opens it in the editor under "Main" panel.
<Home> icon is added in the top-toolbar next to <Exit> icon
which leads you to <Stats> panel holding <Welcome> and <FAQs> tabs.
Projects -> Detail -> Source : backward navigation is enabled
through context menu withing browser. The options within thus
context menu has <Print> option which leads to print preview
dialog and eventually to printing on the paper.
<FAQs>: This holds short questions and answers as per the
industry standards. I could put only two of them still.
Please forward the ones you consider should go to this list.
! Changed: main window icon as previous one was not giving a
strong impression to be remember for long.
! Loading/Opening a project: now offers .hbp or .xhp options.
.xhp is converted to .hbp and is written to disk and project
is loaded as usual. This should be a one-time process.
! Click on function list now position the clicked function
in the center of the editor.
! IdeSettings.ini is now hbide.set and is saved where hbide.ini
is residing. The change is name was nessary as to avoid
wrong impression of .ini nature as a text file. It is binary
by nature.
! Many more artifacts which I tend to forget, please bear it
with my age.