* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* Cleaned header inclusion order after adding hbapi.h to hbqt.h.
* config/os2/gcc.mk
! Fixed to use '-Wl,' trick proposed by Przemek, to forward obj list
script filename directly to linker.
This gets around the problem where gcc tries to pass expanded
scripts to subprocesses (ld) via cmdline, thus imposing a 32K
limit also to script files.
* config/os2/gcc.mk
+ Attempt to fix direct ld usage to create Harbour .dlls.
Please make tests for all versions of gcc/gccomf targets.
* INSTALL
- Deleted TCPV4 header instructions for OS/2. (they still
works, it just got less emphasis with this)
* include/hbdefs.h
! Fixed to not #include <dos.h> unconditionally. This should
be done by specific source code, if needed. INCOMPATIBLE,
if source code relied on this behavior. From now on it,
should include dos.h manually.
* src/vm/thread.c
* src/common/hbver.c
* src/rtl/gtdos/gtdos.c
* src/rtl/isprint.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/net.c
* contrib/hbct/print.c
! Fixed to #include <dos.h> manually.
* src/rtl/fstemp.c
! Fixed recent warning for dos targets.
* contrib/hbct/video.c
! Fixed old unused variable warning for dos/watcom targets.
* INSTALL
+ Documented that OS/2 Warp 4 is supported (instead of generic OS/2).
* src/vm/extrap.c
* src/vm/dynlibhb.c
* src/common/hbgete.c
* src/common/hbffind.c
* src/common/hbver.c
* src/rtl/filesys.c
* src/rtl/diskspac.c
* src/rtl/gtos2/gtos2.c
* src/rtl/cputime.c
* src/rtl/disksphb.c
* include/hbthread.h
* contrib/hbmzip/hbmzip.c
! Fixed to setup all OS/2 INCL_* constants and
to #include os2.h by themselves, and not to rely
on Harbour headers to do this job for them.
; TODO: Do the same for dos.h.
* doc/hdr_tpl.txt
- Deleted local changelog.
! Fixes to .prg function docs
+ Update copyright year to 2010.
+ Added fact that $SEEALSO$ should be comma separated.
+ Added .c function example (far from perfect)
* examples/hbdoc2/tmplates.prg
* doc/hdr_tpl.txt
+ Added $VERSION$ tag. (pls update HBIDE. We haven't finalized
the format yet, to it's little bit premature to create
new and new parsers/generators for it yet)
* include/hbdefs.h
! Fixed to not unconditionally include OS/2 headers with
an arbitrary selection of INCL_ macros.
Now OS/2 headers will only be included if legacy types
are requested (off by default), and no INCL_ macros
are defined. This latter change may affect 3rd party
code written for OS/2, so I'm marking it INCOMPATIBLE.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt.h
* Changed to #include hbapi.h from hbqt.h. It needs it,
so this is the clean way. Changed generator to leave
out hbapi.h from each source file and refer to hbqt.h
only. (untested)
+ Added logic to #include OS/2 headers with some INCL_
macros defined, to make QT on OS/2 happy. (copied them
from the dev. list)
; TODO: Regenerate HBQT sources.
* utils/hbtest/hbtest.prg
! Cleaned old problem reported by Chen. It seems like
a feature which was never finished, and it's not even
hugely needed, so I deleted it.
* config/global.mk
+ Will now provide HB_COMP_PATH_PUB value for os2-gcc, os2-gccomf
compilers. This value can be used to manually form ld.exe
command line.
(NOTE: This may be deleted in the future, when sorting
out line-length limit problems for these compilers.
* contrib/hbide/ideharbourhelp.prg
+ Implemented: presentation of documents per "Category" field.
; QUESTION: is it worth to populate the tree with sub-category.
In my opinion, a function can belong to many categories.
If yes, what method to adopt?
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added slots for QTextBrowser()
* contrib/hbide/ideharbourhelp.prg
+ Implemented: navigation in "See Also" slot.
Functions contained in "See Also" are highlighted as a link
where single-click presents the relevant document.
;NOTE: "See Also" functions must ever be delimited with ",".
;GPF: Present at exit.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added slots covering QListWidget().
+ contrib/hbide/resources/dc_pdffile.png
* contrib/hbide/resources/docviewgenerator.ui
* contrib/hbide/resources/docviewgenerator.uic
+ Added "Export to PDF Document" icon.
* contrib/hbide/hbide.prg
* contrib/hbide/ideharbourhelp.prg
+ Implemented: printing of html document - activated via Print toolbar icon.
: export as PDF document - activated via PDF toolbar icon.
: syntax-highlighter for "Examples", "Tests" editors.
: font Courier new set for "Examples", "Tests", "Arguments" editors.
: Home, backward, forward, up navigation.
: indexed search - activated via "Index" tab on left pane.
: set to load whole tree at first invocation.
: tree navigation simplified, honors single click.
: added pages for Root, Paths, Files, nodes.
; Now usability of the hbIDE's documentation viewer has increased many folds.
I am wondering we have a lot f documentation in place but was invisible.
Today I could feel comfortable and hope in coming future almost all of you
will contribute for this noble cause.
; Basic functionality of the viewer is almost there. So I will be concentrating
on the "Generator/Writer" templates part. Goal is to provide very easy
mechanism for a writer
* to select a source,
* the function(s) within that source,
* create basic template skeletons filled with meaningful material
for selected functions,
* and slots to save them.
; The search engine follows the standard way.
* Click on "Index" left-pane tab,
* Start typing in function edit box,
* As you type, the incremental search is performed and
relevant function is brought in focus.
The search is case insensitive.
* Press enter while in edit control and have function
documentation visible in the viewer.
* Alternatively you can navigate the Functions list,
double-click on one yoy are interested in.
; GPF is still there, struggling.
; Please forward shortcomings.
* doc/hdr_tpl.txt
! Fixed to use comma (',') separator in $SEEALSO$ section.
% Deleted '*' from each line.
* Formatting. (CamelCase for functions, uppercase for
commands, .T./.F. for logical values)
+ contrib/hbide/resources/dc_delete.png
+ contrib/hbide/resources/dc_down.png
+ contrib/hbide/resources/dc_folder.png
+ contrib/hbide/resources/dc_function.png
+ contrib/hbide/resources/dc_home.png
+ contrib/hbide/resources/dc_left.png
+ contrib/hbide/resources/dc_plus.png
+ contrib/hbide/resources/dc_print.png
+ contrib/hbide/resources/dc_quit.png
+ contrib/hbide/resources/dc_refresh.png
+ contrib/hbide/resources/dc_right.png
+ contrib/hbide/resources/dc_textdoc.png
+ contrib/hbide/resources/dc_textdocument.png
+ contrib/hbide/resources/dc_up.png
+ contrib/hbide/resources/docviewgenerator.ui
+ contrib/hbide/resources/docviewgenerator.uic
* contrib/hbide/resources/help.png
+ contrib/hbide/resources/searchreplace.ui
+ contrib/hbide/resources/searchreplace.uic
+ Added few more images and redefined a prev one.
* contrib/hbqt/THbQtUI.prg
+ Added some more hbqt.ch defined constants in the engine.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ Implemented an html viewer for Harbour's documentation .txt
files with slots to make it a "writer" too if it fits the purpose.
! Reimplemented the "Search-Replace" user interface and working.
A work-in-progrss which I will explain later.
; Harbour Documentation Viewer - How to Invoke
* Close any docking pane is visible at the right panel.
* Point to <Docks> option on <Main Menu> and click on
<Document Viewer>
* A right-side "Document Viewer" window will appear.
* Provide Harbour's installation root path in
"Harbour Installation Root:" field, i.e., C:\harbour
* OR alternatively, you can choose one by clicking
"Harbour Installation Root Path" icon on the right of
field.
* Click "Refresh" icon on the toolbar of "Document Viewer"
window" only once and wait a couple of seconds.
* "Contents" tab will be populated with /doc and /doc/en
folders.
* Double-click on one to expand - you will be able to
view .txt file names.
* Double-click on some .txt node, wait a couple of seconds,
and you will be able to see "functions" nodes.
* Double-click on the function's node and you will be
presented with html display in the "View" tab on the right.
* Navigate other tabs on the right, you will understand the
contents.
* Next time hbIDE will remember Harbour's installation root path.
* :( On exit expect to receive a GPF, investigating.
Right now only "Viewer" part is ready per preliminary stages.
I have a lot of ideas on my drawing-board and would like to
hear your opinions. Basic components to write a document are
also in place, but I need to gather more info and what else
can be included.
In the next several days I will be focussing on this tool.
Bacco and Vailton, please bear with me, as this interface
is the basic requirement of hbIDE which I had kept postponed
till now. A stand alone viewer and writer has its own purpose,
space, and audience.
* harbour/ChangeLog
! fixed typo
* harbour/src/rtl/hbsocket.c
+ implemented MS-Windows version of hb_socketGetIFaces()
Thanks to Mindaugas for info about SIO_GET_INTERFACE_LIST.
Warning: support for above action in WSAIoctl() was added in Win98
so this code probably does not work in Win95.
Please test.
TODO: 1) add support for IP6
2) add support for Win95
3) add support for fNoAliases switch
4) add support for MAC address setting
I hope that MS-Windows developers/users can implement some points
from above list. I.e. 3 and 4 can be implemented using information
returned by GetAdaptersInfo() function.
* include/hbextern.ch
+ Added __CLSMSGTYPE function.
* config/os2/gcc.mk
* Changed to use 'ld' tools directly when creating
Harbour dynamic libraries.
; Please test, it's possible that some option have to be
deleted, changed, or some system/compiler libs added
manually to make it work.
* harbour/ChangeLog
! fixed typo
* harbour/src/rtl/hbsocket.c
! fixed OS2 builds using TCPV40HDRS - please test
* harbour/src/vm/classes.c
+ added new PRG function:
__clsMsgType( <nClassH>, <cMsg> | <sMsg> ) -> <nType>
<nType> is one of HB_OO_MSG_* values defined in hboo.ch or -1 if
message is not supported.
* contrib/hbwin/hbwin.ch
! Renamed HB_WIN_RGB_BROWN to HB_WIN_RGB_YELLOW to match
real RGB color.
I left old RGB_BROWN as is, even if was never really
set to brown.
* harbour/src/vm/task.c
! fixed casting for C++ builds
* harbour/src/lang/msges.c
! added hack for Solaris builds where ES is macro
TODDO: sync names of lang and corresponding code modules.
* harbour/src/vm/dynlibhb.c
* pacified warning
* harbour/contrib/xpp/xppextrn.ch
* harbour/contrib/xpp/dbcmdx.c
* harbour/include/hbextern.ch
* harbour/src/rdd/dbcmd53.c
! moved ordWildSeek() from XPP to HBRDD library.
I have no idea if XPP has such function or if it's or not
compatible with ORDWILDSEEK() functions I created for [x]Harbour
* disable ordCount() and ordWildSeek() functions when HB_CLP_STRICT
macro is set
* harbour/include/hbsocket.ch
+ added macro values interface info flags: HB_SOCKET_IFF_*
+ added macro values for interface info array indexes: HB_SOCKET_IFINFO_*
* harbour/include/hbsocket.h
* harbour/src/rtl/hbsocket.c
+ added new C function:
PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases );
it returns array with existing interfaces description.
This code was added for non MS-Windows based platforms only.
Support for MS-Windows has to be added yet.
Some platforms may not fill all fields in the returned array.
When some fields are not supported by platform or interface then
they can contain NIL value.
On some platforms this code can effectively work only with IP4
interfaces and IP6 ones will need different implementation.
TODO: add support for alternative long interface introduced in some
new systems using 'struct lifreq' with SIOCGLIF* ioctls instead
of 'struct ifreq' and SIOCGIF*
TODO: add support for extracting hardware addreses (i.e. ethernet
macaddresses) for systems which do not support SIOCGIFHWADDR.
Please test this code with OS2 using OpenWatcom and GCC (old and
new socket API). I enabled HB_HAS_SOCKADDR_SA_LEN in OS2 builds.
OpenWatocm OS2 header files have such fields but I do know if it's
also present in GCC socket API.
* harbour/include/hbextern.ch
* harbour/src/rtl/hbinet.c
+ added new PRG function:
hb_inetIfInfo( [<lNoAliases>] [, <nAddrFamily>] ) -> <aInfo>
<lNoAliases> is .F. by default so aliases are included
<nAddrFamily> is HB_SOCKET_AF_INET by default
<aInfo> is an array in which each entry is also array with the
following fields:
HB_SOCKET_IFINFO_FAMILY 1 // adress family
HB_SOCKET_IFINFO_NAME 2 // interface name
HB_SOCKET_IFINFO_FLAGS 3 // flags HB_SOCKET_IFF_*
HB_SOCKET_IFINFO_ADDR 4 // interface address
HB_SOCKET_IFINFO_NETMASK 5 // subnetmask
HB_SOCKET_IFINFO_BROADCAST 6 // broadcast address
HB_SOCKET_IFINFO_P2PADDR 7 // point-to-point address
HB_SOCKET_IFINFO_HWADDR 8 // hardware address
Please use this code on different non MS-Windows platforms:
proc main( noAlias )
local iface
? os(), version()
? "interfaces:"
for each iface in hb_inetIfInfo( !empty( noAlias ), 0 )
? hb_valToExp( iface )
next
?
return
and check if it returns correct information about available
interfaces.
* src/rtl/philes.c
* include/hbextern.ch
+ Added HB_CURDRIVE(). Similar to Xbase++ CURDRIVE(), but
always provided by Harbour core.
* utils/hbmk2/hbmk2.prg
- Deleted mapping from hb_CurDrive() to CurDrive().
* examples/httpsrv/uhttpd.prg
* examples/httpsrv/modules/tableservletdb.prg
* examples/gtwvw/tests/wvwtest9.prg
* Changed to use hb_CurDrive() which is always available in
Harbour core, instead of Xbase++ specific CurDrive().
* include/hbsetup.ch
* src/common/hbverdsp.c
- Deleted HB_COMPAT_FLAGSHIP, HB_COMPAT_FOXPRO.
* include/hbextern.ch
* src/rtl/seconds.c
+ Added HB_SECONDSCPU()
(native Harbour version of FlagShip specific SECONDSCPU())
* tests/memtst.prg
* tests/speedold.prg
* tests/speedtst.prg
* tests/vidtest.prg
* Changed to use HB_SECONDSCPU().
+ Added translation from SECONDSCPU() to HB_SECONDSCPU() when
built for FlagShip (where applicable).
* include/hbextern.ch
* src/rtl/Makefile
- src/rtl/strpeek.c
- src/rtl/secondfs.c
* contrib/Makefile
+ contrib/hbfship
+ contrib/hbfship/Makefile
+ contrib/hbfship/hbfship.hbc
+ contrib/hbfship/secondfs.c
+ contrib/hbfship/strpeek.c
- Moved FlagShip specific function from core to new hbfship lib.
* Changed SECONDSCPU() to be just a wrapper over core HB_SECONDSCPU().
; INCOMPATIBLE: If you used SECONDSCPU() function, change it to
HB_SECONDSCPU(), or add hbfship to your lib list.
If you used STRPEEK() or STRPOKE() functions,
add hbfship to your lib list.
* utils/hbmk2/examples/contribf.hbc
+ Added hbfship.
* src/common/hbverdsp.c
* include/hbsetup.ch
* contrib/xhb/xhbver.prg
- Deleted HB_COMPAT_VO, HB_COMPAT_DBASE, HB_COMPAT_CLIP as build-time
options. They were not used, and in the future these should be
implemented as addon libraries.
* INSTALL
* Minor terminogology adjustment.
* examples/hbdoc2/tmplates.prg
* examples/hbdoc2/hbdoc2.prg
- Deleted special handling of FlagShip functions.
* include/hbextern.ch
* src/rtl/browdb.prg
* src/rdd/dbcmd.c
* contrib/xpp/dbcmdx.c
* contrib/xpp/browdbx.prg
+ Cleaned the way TBrowseDB() "skipper" function is defined.
This means that from now on by default the faster, .c
implementation will be used (now called __DBSKIPPER()).
The same will be used by xpp lib (via compatibility stub
called DBSKIPPER()). The .prg implementation (now moved
in core) will be used when HB_CLP_STRICT is enabled.
* include/hbextern.ch
+ Added missing HB_DYNCALL().
* contrib/xpp/xpp.ch
* Do not #define HB_COMPAT_XPP.
+ contrib/hbziparc/doc
+ contrib/hbziparc/doc/en-EN
+ contrib/hbziparc/doc/en-EN/hbziparc.txt
* contrib/hbziparc/hbziparc.prg
+ Separated docs from source code.
* include/memoedit.ch
* Replaced "#ifdef HB_COMPAT_XPP" with "#ifndef HB_CLP_STRICT".
Which means we've endorsed these extensions in Harbour,
and they are always enabled except in strict compatibility
builds.
(one remaining occurence)
* include/hbsetup.ch
* src/common/hbverdsp.c
- Deleted HB_COMPAT_XPP option. It's no longer used in Harbour.
From this point all Xbase++ compatibility functions and core
classes are implemented in 'xpp' contrib library (name
tentative). Add it to your lib list, if you need Xbase++
compatible functions. IOW HB_COMPAT_XPP build time option
got converted to a app link time option.
* src/rtl/isprint.c
- Deleted dirty Xbase++ extension of ISPRINTER(). Now it's
purely Clipper compatible in default build.
INCOMPATIBLE. For Xbase++ version, use XPP_ISPRINTER()
(or HB_ISPRINTER() which is the exact same).
* src/rtl/tobject.prg
* src/rtl/transfrm.c
* src/rtl/memoedit.prg
* include/memoedit.ch
* Replaced "#ifdef HB_COMPAT_XPP" with "#ifndef HB_CLP_STRICT".
Which means we've endorsed these extensions in Harbour,
and they are always enabled except in strict compatibility
builds.
* src/rdd/nulsys/nulsys.c
- Deleted HB_COMPAT_XPP guarded function.
* contrib/xhb/xhbver.prg
* Always return .T. for _HB_COMPAT_XPP in version info.
* include/box.ch
* contrib/xpp/xpp.ch
+ Added Xbase++ compatibility box.ch constants from core box.ch.
INCOMPATIBLE if you use B_THIN or B_FAT box style.
* utils/hbtest/hbtest.prg
* examples/hbdoc2/tmplates.prg
* examples/hbdoc2/hbdoc2.prg
- Deleted parts dealing with HB_COMPAT_XPP option.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added support for -harbourhelp option which will result
in the same output as 'harbour --help' command.
+ Added reference to -harbourhelp option which display
Harbour compiler help.
+ Added support for -build option support in hbmk2.
It will be passed to Harbour compiler.
* contrib/hbwin/hbwin.ch
* Formatting.
* contrib/hbide/resources/help.png
+ contrib/hbide/resources/sort.png
+ contrib/hbide/resources/sortdescend.png
+ Added new images and changed one old.
* include/hbsetup.h
* Changed not to rely on _WIN32_WCE to detect WinCE.
* config/wce/global.mk
* utils/hbmk2/hbmk2.prg
% Changed to not pre-define _WIN32_WCE to any value. This should
be user choice.
* contrib/hbfimage/fi_winfu.c
! Fixed for WinCE builds. Now only non-WinCE compatible parts
are disabled and functions keep being defined on .prg level
regardless.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
% Cleaned logic that guards '_WINDOWS_' definition.
* contrib/hbwin/win_bmp.c
! Fixed to use hexadecimal notation instead of octal, because
some compilers where getting confused and tried to match these
with some codepages.
* contrib/hbwin/win_prn1.c
! Fixed for poccarm, because Pelles C (even 6.0) forgets to
map FONTENUMPROC to FONTENUMPROCW.
* contrib/hbwin/win_prn3.c
! Added some extra WinCE guards to avoid warning for this platform.
* src/debug/dbgentry.c
* Formatting.
+ contrib/hbide/resources/closetab.png
+ contrib/hbide/resources/down.png
+ contrib/hbide/resources/minus.png
+ contrib/hbide/resources/previous.png
+ contrib/hbide/resources/up.png
* contrib/hbide/resources/searchreplacepanel.ui
* contrib/hbide/resources/searchreplacepanel.uic
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idefindreplace.prg
+ Implemented ( partial ) extended search/replace panel like Qt itself.
This can be activated via <Edit><Find / Replace Ex> or Ctrl+Sh+F.
The panel is anchored beneth editor area and above status-bar,
or above any other dock-widget at the bottom area is open.
It implements incremental search with visual color differentiation.
Try typing in some text to find. Still other buttons are inactive.
It may take a day to synchronize everything.
This implementation adds another value to "Find/Replace".
Ctrl+F implementation is there as is. You can take advantage of both.
* src/vm/cmdarg.c
! Fixed formatting.
! Fixed to enclose newly added code in {} block, otherwise
it breaks with C compiler.
- Deleted OS/2 specific guard in code section which is not
anymore active to OS/2.
* examples/gtwvw/hbgtwvw.h
! Fixed to not override manually set WINVER.
! Fixed to not set _WIN32_WINNT.
* src/vm/cmdarg.c
! fixed OS/2 was displaying the path of the first .exe with name equal
to current process calling hb_DirBase() present in PATH, in my case
it was founding d:\tcpip\bin\ftpd.exe instead of current ftpd.exe
because c:\tcpip\bin was present in PATH before current dir.
* src/rtl/hbsocket.c
* OS/2 when building against latest TCP/IP stack has
HB_HAS_INET_ATON, HB_HAS_INET_PTON and HB_HAS_INET_NTOP