* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sddfb/sddfb.c
* harbour/contrib/rddsql/sddmy/sddmy.c
* harbour/contrib/rddsql/sddoci/sddoci.c
* harbour/contrib/rddsql/sddodbc/sddodbc.c
* harbour/contrib/rddsql/sddpg/sddpg.c
* harbour/contrib/rddsql/sddsqlt3/sddsqlt3.c
* moved SDD backed specific data from SQLCONNECTION and SQLAREA
to a separate SDDCONN and SDDDATA structures. This helps to
avoid fake type casting and warinings like "break
strict-aliasing rules".
* 1 -> HB_TRUE
* formatting, style
! connection array is now array of connection pointers. This
fixes GPF if many connections are created and connection
table has to be reallocated
* utils/hbmk2/hbmk2.prg
! Fixed implib internal flag handling for msvc targets.
! Fixed path format conversion in implib parameters.
+ Added support for filters, macros for implib creation parameters.
* utils/hbmk2/hbmk2.prg
+ Added -trace support to -mkimplib option.
* Variables renamed in new code.
- examples/hbdoc
- examples/hbmsql
- Deleted two obsolete components:
- hbmsql is not available freely anymore and was not tested
or update since many years. Check hbmysql and hbsqlit3 for
alternatives.
- hbdoc was superceded by hbdoc2.
* utils/hbmk2/hbmk2.prg
+ Added undocumented '-mkimplibms' option to allow for users
to make bcc implib happy for some .dlls (translated to
-a implib.exe option). Ugly solution, needed because bcc
chose not to follow standards.
* bin/postinst.bat
+ Some adjustments to hbmk2-based implib generation cmdlines.
+ Added exception to use static ocilibs with mingw.
* bin/postinst.bat
- bin/hb-mkimp.prg
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched HB_BUILD_IMPLIB build option to use hbmk2
to create implibs instead of local solution (hb-mkimp.prg).
Note, this means that implibs will now always be
created dynamically from .dll, even when a package
offers pre-built .lib for the compiler. This will
in practice cause a change msvc and pocc compilers.
This also means that from now on it's enough to have
the .dll to create implibs.
It's also easier for users to create implibs using
hbmk2 any time, so it's possible that HB_BUILD_IMPLIB
build-time option will be deleted in the future.
; Not tested yet.
* utils/hbmk2/hbmk2.prg
+ Added experimental -mkimplib= option to "convert" .dll
files into import libraries. Syntax tentative.
; TODO: Support for idiotic -a Borland C implib option.
If anyone has an idea how to detect when to use
-a and when not, I will implement it. If not,
I will most probably drop maintaining -a option
for bcc and leave it off. This leaves implibs
working for most .dlls we currently use, but will
break some (blat, curl, cairo, pq, alleg from
contrib).
* config/win/xcc.mk
* utils/hbmk2/hbmk2.prg
! Fixed to use case-correct filenames for xcc tools.
* bin/hb-mkimp.prg
+ Added msvcia64, msvcarm, xcc support.
! Fixed few library specs for msvc*.
* FS_ERROR -> F_ERROR
! Fixed handling spaces inside dll name for msvc*.
! Fixed handling non .dll extension for msvc*.
* harbour/src/rtl/teditor.prg
! Fixing MemoEdit parameter calculation: nTextBuffRow, nWindowColumn.
Procedure Main()
Cls
// Put 5 in the 5 position and next BS to change.
? MemoEdit( "123",,, MaxRow(), MaxCol(),,,,,, 5 )
Wait
* 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.