* config/global.mk
* config/rules.mk
* external/pcre/Makefile
+ Added HB_CFLAGS_STA variable to hold C compiler options
passed solely when compiling for static lib.
* Change PCRE setup to use HB_CFLAGS_STA instead of -U
trick at the same time silencing msvc warning.
* config/global.mk
* config/rules.mk
+ Added HB_CFLAGS_DYN variable to pass lib specific options
specially directed to compilation phase when building
to create a .dll. Currently this affects pcre and zlib since
these are included in harbour .dll.
* external/libhpdf/Makefile
* external/pcre/Makefile
* external/png/Makefile
* external/zlib/Makefile
+ Configured HB_CFLAGS_DYN for these libs to properly create
exported symbols in harbour .dll. This was a problem so far
for any non-mingw made harbour .dll.
* harbour/src/rdd/dbf1.c
* minor cleanup
* harbour/include/hbapi.h
+ added new macro HB_IS_EVALITEM() - returns true for items which can
understand EVAL message i.e. CODEBLOCK and SYMBOL items.
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/hbwinole.h
* modified hb_oleDispInvoke() function to accept as additional
parameter pointer to HVM item instead of pointer to DISPID.
Such version is more universal.
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
% Modified: to present the project location folder to
select sources in the "Project Properties" dialog.
+ contrib/hbide/qscintilla
+ contrib/hbide/qscintilla/qt
Initial port of QScintilla ( http://www.riverbankcomputing.co.uk/software/qscintilla/intro )
This port is greatly trimmed one excluding all lexer code
except CPP and FLAGSHIP which are relevant to Xbase code
at present. Also directory structure is normalized and sources
are modified to respect them. SVN properties are eol:native,
I am not sure what other properties should go inside.
QScintilla actually is divided into two libs but for sake
of convinience I have kept them as one.
It is a base commit. In the next days a Harbour wrapped
is scheduled to be built onto it and then actual application
experiments will follow. On success, current edit component
of hbIDE will be transferred.
I am poor in looking at licensing, so please feel free to
delete this commit if it does not confirm to original intent.
I have also touched the sources to suppress a lot of warnings
and library seems to be working fine after these changes. Still
some warnings are there which I could not supress, please look.
To build the lib qscintilla.hbp is there, just issue
hbmk2 qscintilla.hbp while residing in hbide/qscintilla.
* utils/hbmk2/hbmk2.prg
! Fixed to ignore .cpp files in main entry detection function.
! Fixed to strip ending pathsep in header and lib path options
passed to compiler tools.
* include/hbthread.h
! Added missing HB_EXPORT, and in some place 'extern'
qualifier to thread/atomic Harbour API declarations.
* ChangeLog
! Fixed entry header in previous commit (again).
* utils/hbmk2/hbmk2.prg
+ Added hbmk2 level support for multiple input .def files.
NOTE: Multiple .def files are only supported by gcc family
compilers (mingw/cygwin) (and maybe watcom, but I can't
tell by looking at the output), so for portable scripts,
stick to using only one .def file per .dll. bcc,
msvc, pocc will either ignore some of them, or
stop with error.
* ChangeLog
- Deleted accented (UTF8) char.
! Deleted UTF8 file marked added by subsequent committer's editor.
; --- Pls remember to use ASCII 7-bit chars in our files ---
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
% Shifted: all actions which operate on editing instance, to
the micro levels. This implies that ::IdeEdit() object can be
used independent of interface constraints and hence becomes
eligible to be included in hbXBP as a HBP class.
This also implies that hbIDEMap can be manipulated through
Keyboard Mappings macros the same way as main editing instance
with the exception that it cannot be editied. For example,
you can call ::zoom( nPointSizeORKey ) to adjust its size.
You can also use Ctrl+C to copy and can use block operations.
+ Added: <Edit><Format><Replace Spaces with Tabs> option. Tabs
are set to stop at same distance of 3 characters which
makes it possible to modify sources with/without tabs but
with same visual display.
* harbour/include/hbapi.h
* harbour/src/vm/hashes.c
+ added new C function hb_hashGetCItemPos()
* harbour/src/rtl/hbcom.c
! fixed typo located by Bisz István
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added .def file support for win|os2/watcom targets in hbmk2.
ATM it requires the special file format required by watcom,
there is no transparent conversion done by hbmk2.
+ Enabled .c stub (for -main, -gt, etc features) in -hbdynvm mode.
* Disabled linking harbour .dll in '-hbdyn -shared' mode.
NOTE: I'm not sure of this move. This way -hbdyn will now
never link any Harbour libs (neither static nor dynamic),
so at least we should renamed -hbdyn to -hbdynraw and
-hbdynvm to -hbdyn, or make some other cleanup in this
regard. Specifically I'm not sure if hbmk2 satisfies
this use-case now by default (without '-nohblib-' option):
"I can use -hbdyn and -static to create self contain DLL
which uses it's own private copy of HVM and Harbour RTL
library which can be linked statically or loaded dynamically
with/from any other applications"
* Text "VM" changed to "Harbour VM"
; NOTE 2: I've checked win/watcom -6s option, but it's still not
good because it appends '_' to exported symbols, so
watcom -shared executables stop working with mingw/msvc
Harbour .dll. Any idea how to solve that?
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: proper hbIDEMap protocol. Now you can keep open
"Source Thumbnail" dock and keep on clicking the tabs. Current
source map will be displayed inside.
hbIDEMap Features:
1. hbIDEMap carries highlighted code lines which are visible
in main editing instance window. Navigaing the editor also
changes highlighted area corresponding to main instance.
2. All keyboard mappings are active in the map also which implies
that you can exercise copy operations which can be pasted
in the current code, a very useful feature.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
! Fixed: selected text when viewed in a narrow window and
using horizontal scrollbars was showing incorrectly.
+ Implemented: current source's thumbnail view.
It is presented in a right-hand docking widget which
can be activated via <View> menu. it is almost identical with
current editor but with a significant difference that
it is loaded from the disk whenever the dock is brought to view.
It contains smaller font and is entirely idependent
of main editing instance.
It is just a quick commit. Refinement will follow.
Please submit your suggestions.
Re-compile hbQT alongwith hbIDE.
* contrib/hbide/hbide.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idetags.prg
+ Implemented: Context-menu option "Goto Function" looks
for the function/method in the current source first,
and if found, jumps to that, otherwise it rellies on
tagging. It implies that functions in current source
are always can be reached with "Goto Function" option
which operates on word under cursor.
* src/rtl/memvarhb.prg
* HB_MVSAVE(): reset to be a FUNCTION to avoid the "volatile"
return value and better imitate __MVSAVE() behavior.
% HB_MVSAVE(): deleted unnecessary UPPER().
- Deleted TODO.
* ChangeLog
* Marked TODOs as done. (Thanks Przemek)
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
+ Finalized: all the three modes of selection programatically.
::toggleStreamSelection() No Key
::toggleColumnSelection() No Key
::toggleLineSelection() == F11
::clearSelection() == Sh+F11
If a selection mode is initiated by above three methods,
it can only be exited by calling the same method again.
During such selection process all other keys than navigable
keys will remain disabled. Mouse-move will also not work.
Mouch click will work. If Column selection mode is ON,
caret will not show up. Toolbar icon will not respond to
change such action. Once exited, previous normal behavior
for stream and column selection will be available.
Please test.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Prepared to handle three modes of selections programatically.
F11 Line Selection is broken currently.
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
+ added new C function hb_vmIsActive()
* harbour/src/rtl/memvarhb.prg
! fixed procedure returning value
! store only simple variables in HB_MVSAVE() just like __MSAVE()
Possible extension: add option to store also NIL, arrays, hashes
and maybe object variables.
! restore variables in HB_MVRESTORE() as private ones just like
__MVRESTORE()
* harbour/contrib/hbwin/oleinit.c
* harbour/contrib/hbwin/olecore.c
* updated to compile and link in WinCE builds. Now code using OLE
can be linked with MinGWCE builds without any errors but I have
no idea if it works. Can someone check it?
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/idedocwriter.prg
% Guarded against inserting help if "readonly" flag is ON.
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Added: navigational methods plus methods pertaining to
line operations into public API. Naviagable methods are :
::up(), ::down(), ::pageUp(), ::pageDown(), ::goTop(),
::goBottom(), ::right(), ::left(), ::end(), ::home(),
::panEnd(), ::panHome().
//
These methods can be used in combination with selection modes.
+ Grouped: public methods list by category which is displayed
under visually distinguished colors. Now it is easy to find
a method of interest easily. Before it was a literal mess.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added experimental -hbdynvm mode.
+ Added support for .def input file in -hbdyn/-hbdynvm modes.
; TODO: Couldn't find how to pass .def files to Open Watcom wlink.
Anybody with an experience here?
* src/rtl/memvarhb.prg
+ Added one initialization to NIL.
* include/hbextern.ch
* src/rtl/Makefile
+ src/rtl/memvarhb.prg
+ Added:
HB_MVSAVE( <cFileName>, [<cMask>], [<lIncludeMask>] )
HB_MVRESTORE( <cFileName>, [<lAdditive>], [<cMask>], [<lIncludeMask>] )
They serve the same purpose with same interface
and similar behavior to __MVSAVE()/__MVRESTORE()
(and __MSAVE()/__MRESTORE(), and 'SAVE TO' command),
only that they support longer than 10 char variable names.
It is not possible to add such support in Clipper-style
.mem files, so these functions will create an incompatible
file format with default '.hbv' extension.
; TOFIX: __MVRESTORE() restores variables as PRIVATEs
while HB_MVRESTORE() as PUBLIC.
; NOTE: GETLIST exclusion is solved with simple trick,
as I couldn't find how it's solved in __MVSAVE().
; Consider this experimental solution to the problem.
* contrib/hbmysql/tmysql.prg
% STOD( "" ) -> STOD()
* contrib/hbide/ideprojmanager.prg
! -hbexec -> -hbexe
* src/rtl/typefile.prg
! __TYPEFILE(): Fixed both RTEs to be Clipper compatible.
* harbour/include/hbapi.h
* harbour/src/vm/dynsym.c
+ added to C functions:
int hb_dynsymToNum( PHB_DYNS pDynSym );
PHB_DYNS hb_dynsymFromNum( int iSymNum );
which can be used to make conversion between dynamic symbols and
numbers
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
+ Implemented: "new" source opens a file save dialog to provide
a valid name with extention. Syntax highlighting will be based on that.
+ Implemented: "new" project opens a Select Path dialog to
designate the project location. The path obtained as such is
posted in the "Project Location field of "Project Properties".
* contrib/hbide/resources/tabreadonly.png
! Changed: to reflect clearly visible readonly status.
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ Implemented: <MainMenu><Edit><Switch ReadOnly Mode> plus
file's "readonly" attribute obtained by hb_fGetAttr() == 33
( please correct me if it is not OK on all systems ).
"Switch ReadOnly Mode" toggles the readonly status of the
current source in focus only if on disk attribute is normal.
ReadOnly status is permanent if disk attribute equals 33 and
cannot be toggled.
While in readonly mode, cut/paste/alter operation are suspened,
only copy operation is supported. Copy can be performed with
mouse and keyboard both and all three modes are available.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbide/ideedit.prg
! More fluency and refinements in selection process spanning
across all three modes.
* debian/rules
- doc/man/hbmk.1
+ doc/man/hbmk2.1
! Renamed to hbmk2 to be in sync with name of the tool.
* Makefile
! Fixed to always descend into utils directory,
because (in 'install' mode) hbrun and hbmk2 needs
to be built regardless of HB_BUILD_PARTS setting.
* contrib/hbfbird/hbfbird.hbi
! Fixed to set output libname. This is needed because
we can't rely on input filename due to mingw trick.
* config/global.mk
+ Show HB_BUILD_IMPLIB setting. Now there is nothing
hackish in it, so it can be fully supported setting.
* config/postinst.prg
% Minor optimizations in hbmk2 invocation lines.
(removed unnecessary spaces, using envvar macros,
deleted unnecessary double quotes)
! Fixed (in two places) to only invoke hbmk2 if
HB_HOST_BIN_DIR envvar is set.
! NSIS invocation command made more friendly to cross
platform environment by using native pathsep.
+ Will now echo the external commands issued to stdout.
* config/postinst.prg
+ Added new experimental envvar:
HB_BUILD_ADDONS=prj1.hbp prj2.hbp prjn.hbp
Harbour build process will initiate the build of the passed
.hbp files at 'install' phase.
% Simplification to other hbmk2 invocation commands.
* contrib/hbwin/win_svc.c
! Fixed to set running status only if entry function
is valid and able to reenter HVM.
+ Added trace message when entry function cannot be found.
* contrib/hbwin/win_svc.c
! Fixed callback definitions to be the ones required by Windows.
! Fixed main service entry callback to use TCHAR rather than simple char.
+ Added support to pass service launch parameters to Harbour entry
function.
* contrib/hbwin/tests/testsvc.prg
+ Added code to demonstrate parameter passing feature.
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
! Just to recompile hbqtgui.lib
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideedit.prg
! Fixed: more artifacts about selection/copy operations.
* contrib/hbwin/win_srv.c
* Renamed more variables.
* Moved around hb_strfree() calls to fully avoid the possibility
of freeing string pointers still assigned inside Windows
structures.
! WIN_SERVICESTART() fixed to set last error.
* contrib/hbwin/tests/testsrv.prg
! Fixed to have the default action called
when started without parameter. Required
to make it start when started as service.
+ Test service changed to create a file in
a predictable place (next to .exe) and
fill that with output. Made sure that file is
readable by other processes.
* Cleaned service ID/description.
; I've made successful test with current code.
* contrib/hbwin/win_srv.c
! Fixed static variable types and usage.
! Fixed wrongly used string types.
! Fixed storing temporary pointers to static variables.
Making a copy of the strings instead.
% Deleted unnecessary function declarations.
% Using HB_SIZEOFARRAY() instead of repeating size.
! Fixed variable names to reflect type.
; These fixed previously found errors.
* contrib/hbwin/tests/testsrv.prg
* Replaced ALERT() with '?'.
! Fixed to use HB_TR_ALWAYS to avoid Harbour warning.
% FUNCTION -> PROCEDURE
* doc/howtosvn.txt
* More clearing up.
* contrib/hbwin/win_srv.c
! Fixed one TOFIX which was result of s&r on my part.
; TOFIX remaining:
---
../../../win_srv.c: In function 'hbwin_SrvFunction':
../../../win_srv.c:102:4: warning: passing argument 1 of 'RegisterServiceCtrlHandlerW' from incompatible pointer type
f:\devl\mingw-450\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winsvc.h:234:40: note: expected 'LPCWSTR' but argument is of type 'char *'
../../../win_srv.c: In function 'HB_FUN_WIN_SERVICESTART':
../../../win_srv.c:279:21: warning: assignment from incompatible pointer type
../../../win_srv.c:280:21: warning: assignment from incompatible pointer type
---
* doc/howtosvn.txt
+ Made it more clear that 'Chr(36)' should be replaced by '$'.
* ChangeLog
! Stripped accented char. Pls keep all files in 7-bit mode.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_srv.c
* contrib/hbwin/tests/testsrv.prg
! Cleanup fixes:
! Fixed missing SVN props (pls see howtosvn.txt and my e-mail today about them)
! Fixed SVN header
! Stripped accented char.
! Deleted <windows.h>.
! Tabs converted to spaces.
! Fixed indentation and formatting.
% Optimized code to have less redundancy.
! Fixed name of static vars.
% Made callbacks static.
! Fixed hbwin.ch constants to have WIN_ prefix.
! Fixed references to unknown functions in test code.
% Test code reworked to have user selectable modes via cmdline parameter.
! Fixed to define all functions also in WinCE mode, but
with dummy functionality.
! Fixed memory potential leak in WIN_SERVICEDELETE().
! Added some casts.
% Variables declarations moved to inner scopes.
; TOFIX:
- UNICODE build problem in hbwin_SrvFunction().
- possible memory corruption in WIN_SERVICESTART()?
- 'implicit declaration of function 'Sets_ServiceStatus'' in hbwin_SrvFunction().
; All the above are shown as mingw warnings.