* 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.
* 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/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
! Fixed: the artifacts reported by Mindaugas and Itamar.
! Optimized: C++ code.
! Fixed: many other artifacts, i.e., status-bar panel was wrongly
reporting selection mode.
Mindaugas, can you please test again ?
+ contrib/hbwin/win_srv.c
+ contrib/hbwin/tests/testsrv.prg
* contrib/hbwin/hbwin.ch
* contrib/hbwin/Makefile
+ Basical support for running a harbour application as a windows server.
See tests/testsrv.prg.
* harbour/contrib/hbwin/olecore.c
! added protection against possible buffer overflow when more then
32 parameters is passed by reference from foreign code - thank to
Mindaugas for locating the problem.
* harbour.spec
* contrib/Makefile
+ contrib/hbsms
+ contrib/hbsms/tests
+ contrib/hbsms/tests/send.prg
+ contrib/hbsms/tests/hbmk.hbm
+ contrib/hbsms/hbsms.prg
+ contrib/hbsms/hbsms.hbc
+ contrib/hbsms/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Readded hbsms lib.
+ Modified to use newly added core com functions
via HBCT .prg level interface. (instead of hbtpathy)
+ Added disclaimer:
EXPERIMENTAL CODE. USE AT YOUR OWN RISK. NO GUARANTEES.
The code well may be pure crap, so if you have problem
with it, supply working patches. Pls note that the
reader function uses locally implemented timeout
functionality, which may or may not work at all,
though you can fix it if you have better idea.
I've only tested it using Mac OS X 10.6 + old Nokia "S40"
phone and one bad SMS number to see it kicks off at
all and that's also the end of my testing possibilities.
* src/rtl/gtwvt/gtwvt.c
- Deleted notifierblock/fireevent support.
Light is green to add threaded screen refresh and event
handling. This could enhance performance and fix the
frozen screen refresh in Harbour app loops.
; INCOMPATIBLE: Switch to HB_INKEY_GTEVENT + HB_K_* solution.
* tests/wvtext.prg
+ Updated according to latest changes, now using simple INKEY()
method to receive special GT event.
+ Added reaction to 'lostfocus' event.
+ Added better demonstration for lost/got focus events.
- Deleted GTWVG dependent elements, to adhere to core/contrib
separation rule.
* src/rtl/gtwvt/gtwvt.c
* Changed HB_GTI_CLOSABLE to not cause any visible change on the UI.
Setting HB_GTI_CLOSABLE to .F., will now cause that a HB_K_CLOSE
event is returned to application by INKEY(), and app can decide
whether to ignore it or QUIT.
This also means that the feedback is now not an async event in
HB_GTI_CLOSABLE .F. mode, IOW if the app is in a loop without
reading keys, close button won't work, which is IMO closer to
how apps are supposed to behave. It also won't grey out the
close buttong anymore which is also a unusual thing to do
amongst apps.
; TODO: If this turns out to be good solution, sync this behavior
with HBWIN.
; TODO: Delete old "fireevent" async even handling using notifier
callback codeblock.
* include/inkey.ch
+ Added new special GT events (over existing HB_K_RESIZE):
HB_K_CLOSE
HB_K_GOTFOCUS
HB_K_LOSTFOCUS
+ Added new Harbour specific INKEY() event filter:
HB_INKEY_GTEVENT
* INKEY() codes below marked as compatibility:
K_MMLEFTDOWN, K_MMRIGHTDOWN, K_MMMIDDLEDOWN
* src/rtl/hbgtcore.c
! Fixed to only return HB_K_RESIZE/CLOSE/GOTFOCUS/LOSTFOCUS
events when allowed via HB_INKEY_GTEVENT filter.
; INCOMPATIBILITY: HB_K_RESIZE will now only be returned
by INKEY() if this filter is added.
* src/rtl/gtwvt/gtwvt.c
- Deleted code protected by __HB_GTWVT_GEN_K_MMDOWN_EVENTS guard.
+ Will now generate INKEY() event:
HB_K_LOSTFOCUS
HB_K_GOTFOCUS
and
HB_K_CLOSE.
; TOFIX: HB_K_CLOSE doesn't work yet. Probably some rearrengement
of window close control will be needed.
; The goal is to be able to keep "fireevent" feature in a Clipper/Harbour
and thread friendly manner, so it becomes possible to move OS level
UI event into separate thread.
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/olecore.c
+ added new C function hb_oleDispInvoke()
* harbour/contrib/hbwin/axcore.c
* use hb_oleDispInvoke() - please test if activex controls still work
correctly
* config/global.mk
! Fixed problem caused by $(wildcard) not matching existing
files when using '/dir//file' format (note double slash).
So f.e. it caused autodetection to fail when dir was
speficied as 'C:\mingw\bin\' (with ending backslash) in PATH.
It's good to remove such backslashes anyway, but from now
on it won't cause problem for Harbour build system.
* src/rtl/tget.prg
! Fixed "@RE" picture mask handling in GETs.
Thanks to Aleksander Czajczynski for reporting the
issue with clear example.
The fix applied is a de-hacked version of the one
sent to the list. What's simply done is 'R' being
disabled when used in conjunction with 'E'.
* contrib/hbide/ideprojmanager.prg
! Synchronized to open "Project Tree" if "Open Project..."
is selected from <MainMenu><Files>.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
% Many artifacts belonging to horizontal scroll while
text is selected. Also few aspects are optimized.
To me it appears as if selection protocol in hbIDE is OK.
Please post your experiences if something is not upto the
expectations.
* contrib/hbide/resources/curlinehilight.png
! Some refinement though not sufficient yet.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/ideedit.prg
! More optimization and behavioral changes is selected text.
Still litte more work to be done.
* contrib/hbide/idesaveload.prg
! Reintroduced "settings.ide" .ini like file, placed along
hbide.ini", to hold Qt written hbIDE settings. This reversal
is triggered by the fact that, under unknown circumstances,
Qt just mangles the hbIDE.ini contents to a level that a lot of
information it stores is lost. This has happened to me many
times after the settings info was made to be retained in
hbIDE.ini itself. Please do not change it until I come up
with the way to read and write byte arrays per Qt.
Below is the little snapshot what Qt inserts some info
inside existing other text not meant for "idesettings" keyword:
=================================
[FIND]
find_1=setselection
find_2="imagesfind_3=images/"
find_4=":/\r\nfind_5=ShowCaretAtCurrentPosition\r\nfind_6=moveExtendsSelection\r\nfind_7=oDlg\r\nfind_8[ MORE LIKE IT ] +
,,,,,\r\n \r\n[General]\r\n \r\n"
[ ALL OTHER SECTIONS BELOW MANGLED AS ABOVE ]
[General]
hbidesettings="@ByteArray( [ PLUS MORE, IT IS CORRECT ]
=================================