* Makefile
* tests/Makefile
* contrib/hbmisc/Makefile
* contrib/hbwin/Makefile
* utils/Makefile
% Started converting '=' operators to ':=' where applicable.
; TODO: Rest of Makefiles.
* contrib/hbwin/Makefile
! Including 'global.cf' directly to make HB_ARCHITECTURE/HB_COMPILER
variables work in case we're relying on autodetection.
; TOFIX: Rest of Makefiles.
* config/global.cf
+ Added self-inclusion check to allow adding this .cf file
directly to Makefiles in order to force platform detection
for cases where this information is needed for local decisions.
* config/dos/global.cf
- Deleted 'ifndef MK' construct. Purpose unknown, and not
found similar for other platforms.
* config/global.cf
* config/globsh.cf
+ Added my copyright.
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/tpos2.c
% Deleted unnecessary headers.
* contrib/hbxbp/xbpbrowse.prg
! Few more tweaks.
* contrib/hbxbp/xbptreeview.prg
- Commented out experimental CSS implementation.
+ Made public Harbour extention ::setStyleSheet( cStyleSheet ) method.
Now it is possible to fine tune widget's appearnce the way user
can imagine. The supplied style sheet will be applied on top of
existing one.
% TODO: extend ::setStyleSheet() functionality the easiest way.
* contrib/hbxbp/tests/demoxbp.prg
! Demonstrated the use of ::setStyleSheet() with XbpTreeView() class.
Play with the <Tree> tab.
* contrib/hbxbp/tests/demoxbp.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/hbtip/tests/dbtohtml.prg
! Fix to test.dbf path. hb_DirBase() was missing.
* Changed date format to ANSI.
* contrib/hbtpathy/telepath.ch
* contrib/hbtpathy/tests/testtp.prg
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/tpos2.c
* contrib/hbtpathy/tpunix.c
* contrib/hbtpathy/tpdos.c
* contrib/hbtpathy/telepath.prg
+ Added self-guards to header.
! Converted all comments to ANSI C.
+ Added note to header that it's used from C code.
! Put negative macro values into parantheses.
! Fixed bad typo in test program which broke it for all platforms.
% Minor optimization to TP_REOPEN().
! Moved internal structure macros from header to .prg.
+ Added comment for FILE() usage in TP_OPEN().
! Fixed to not use FILE() to check for port existance on non-*nix
platforms. (maybe this works on OS/2 and it can be readded there,
I don't know).
! Using manifest constants instead of literals in few places.
; After these changes, hbtpathy works on Windows platform.
(made basic test only)
* utils/hbmk2/examples/contribf.hbc
* contrib/hbtpathy/Makefile
+ contrib/hbtpathy/tpdos.c
* contrib/hbtpathy/hbtpathy.hbc
+ Added DOS stubs. This makes it possible to enable this contrib
for all existing platforms. Serial support is possible to
implement in DOS.
% Now all source files are compiled for each platform, platform
specific parts are guarded internally, no need to duplicate the
logic on the make level.
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/tpos2.c
* contrib/hbtpathy/tpunix.c
* contrib/hbtpathy/telepath.prg
* contrib/hbtpathy/tpcommon.c
+ Renamed all internal functions from P_*() to __TP_*() to
comply with rest of Harbour and lessen chance of colliding
with other code. It also makes it easier to identify them
in code. I won't list this as an incompatibility as we're
talking about internal functions, so no user code is supposed
to use these.
+ Added compatibility wrappers for Telepath(y) functions:
BIN_AND(), BIN_OR(), BIN_XOR(), BIN_NOT().
* contrib/hbtpathy/Makefile
- contrib/hbtpathy/tplinux.c
+ contrib/hbtpathy/tpunix.c
* contrib/hbtpathy/tpcommon.c
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/tpos2.c
* contrib/hbtpathy/telepath.prg
* contrib/hbtpathy/hbtpathy.hbc
+ Enabled for all *nix systems (was only linux and darwin).
I don't know if it works on all *nix systems, but it should
be our goal. We will see. Please test.
% Using HB_CRC32() in core instead of reimplementing it locally.
! P_CTRLCTS() dummy now returns proper type.
+ P_OUTFREE() implemented for Windows platforms.
+ P_ISDCD(), P_ISRI(), P_ISDSR(), P_ISCTS()
implemented for Windows platforms. (ideas taken from hbwin)
Neither of these were tested, but it's a start.
+ P_INFREE() added for Windows and OS/2.
Only clean compilation was tested.
+ TP_INFREE() added.
* Some formatting.
* contrib/hbwin/win_prt.c
+ Some extra safety.
* contrib/hbtpathy/telepath.prg
! Fixed tp_open() to not add numeric port to passed portname.
It's now only added to portname if it's not passed and default
is used. On darwin, the portname isn't necessarily ending with
a number.
* source/rtl/rat.c
! HB_RAT() fixed to not ignore nEnd parameter if it's out of bound.
In such case it will now return zero ("not found").
Mindaugas, please verify if this is what you proposed.
* contrib/gtwvg/gtwvg.hbc
! Fixed missing incpaths= line.
* contrib/gtwvg/tests/demowvg.prg
- contrib/gtwvg/tests/test.dbf
* contrib/hbtip/tests/dbtohtml.prg
- contrib/hbtip/tests/test.dbf
! Fixed to use central test.dbf instead of duplicating it.
* contrib/hbxbp/tests/demoxbp.prg
* Added hb_DirBase() to local file references, to make these
work when no run from its own directory.
! Using test.dbf in tests.
- contrib/hbxbp/tests/test.dbf
- Deleted duplicated test.dbf.
* contrib/hbtip/client.prg
* HAVE_OPENSSL -> HAS_OPENSSL
* contrib/hbwin/olecore.c
* source/rtl/cdpapi.c
* Minor formatting.
* contrib/hbxbp/xbpbrowse.prg
+ Implemented ::vScroll | ::hScroll | ::cursorMode
Xbase++ documentation suggests that changing these instance variables
required ::configure() be called explictly, but I have implemented that
the next stablization loop automatically take care of it.
Suggestions ?
* contrib/hbxbp/xbpstatic.prg
! Changed the way XBPSTATIC_TYPE_LINE* orientation is established.
Note that Xbase++ draws diagonal lines as well but in Qt it cannot be attained.
* contrib/hbxbp/tests/demoxbp.prg
+ Rearrangeements of objects in tab pages. As the need for more space was growing
tab-pages now occupy the whole ::drawingarea and rest of the controls are
now children of them.
! Demonstrated new instance variables implementation of XbpBrowse().
* contrib/hbwin/win_tprt.prg
* contrib/hbwin/win_prt.c
+ Extended max number of ports to Windows platform limit: 256 (from 32).
% Changed the way port structure is handled. Now the port name is
initalized on port opening, so the redundant static port table
initialization could be dropped. This reduces lib footprint in
executables. (could still be optimized to also address runtime
footprint)
% Merged s_PortData and s_PortData2 structures.
% Type cleanup. static vars converted to long (from int), DWORD casts
added, hb_par/hb_stor functions modified.
+ ::Init() method extended to handle 6th and 7th params.
- Deleted ::Buffer() method which was a wrapper to WIN_PORTBUFFERS().
* contrib/hbwin/win_tprt.prg
* contrib/hbwin/win_prt.c
+ ::Recv() got a new second parameter to return result code.
+ WIN_PORTFCN() now requires port number to be passed as 1st param.
+ WIN_PORTERROR() now requires port number to be passed as 1st param.
* Renamed function WIN_PORTFCN() to WIN_PORTFUNCLAST()
+ Fixed last port operation and last error to be stored per port
rather than in global vars. This makes it possible to use multiple
ports in parallel.
- Deleted WIN_PORTBUFFERS() which wasn't MT friendly.
+ WIN_PORTOPEN() function got enabled 6th and 7th inbuffer/outbuffer
parameters. This replaces WIN_PORTBUFFERS() function.
+ Added WIN_PORTRECV() function which is similar to WIN_PORTREAD()
but returns the result directly rather than putting it in a var
passed by reference. It accepts lenght parameter and return result
code by reference. It's a little bit more effient than WIN_PORTREAD().
% Some if/else branches swapped to make code a little smoother.
* contrib/hbwin/olecore.c
+ Attempt to add vars by reference support. Commented until
there is no test code to try it.
* Minor formatting.
* contrib/xhb/hbserv.h
* contrib/xhb/htmlform.ch
* contrib/xhb/inet.h
* contrib/xhb/hblognet.prg
* contrib/xhb/tfile.prg
* contrib/xhb/html.ch
* contrib/xhb/tedit.prg
* contrib/xhb/tframe.prg
* contrib/xhb/htjlist.prg
* contrib/xhb/xdbmodst.prg
* contrib/xhb/htmlclrs.ch
* contrib/xhb/thtm.prg
* contrib/xhb/hterrsys.prg
* contrib/xhb/tcgi.prg
* contrib/xhb/regexrpl.prg
* contrib/xhb/hbserv.ch
* contrib/xhb/ttable.prg
* contrib/xhb/hjwindow.prg
* contrib/xhb/hbserv.c
* contrib/xhb/htmutil.prg
* Header formatting.
; NOTE: I noticed some xhb components have pure GPL license (recently
added CGI parts), plus some other use some sort of xhb specific
modification of original Harbour + exception license. This
contains some sentence which doesn't seem to make much sense:
"This exception applies only to the code released with this xHarbour explicit exception."
FYI.
* contrib/hbtpathy/telepath.prg
* utils/hbmk2/hbmk2.prg
* Minor formatting, comments.
* contrib/hbwin/win_tprt.prg
% Simplified ::read() and ::recv().
* contrib/hbwin/win_prt.c
! Fixed functions returning values by reference to set the
values also in error cases.
! Fixed memory leak in WIN_PORTREAD() in error case.
* config/globsh.cf
! fixed OS/2 section, os2-mkdir needs forward slashes as directory
separators, not backslashes.
* config/instsh.cf
! fixed OS/2 section, work around for OS/2 shell max line lenght.
* config/os2/global.cf
* EXE_EXT set to .exe
* contrib/hbxbp/appevent.ch
* contrib/hbxbp/xbpbrowse.prg
! A thorough rewrite of XbpBrowse() class. The vertical navigation is
based on TBrowse() class and hence XbpBrowse() via Qt will probably be the
fastest GUI browser in the market in the sense that it has almost negligible
memory overhead.
* contrib/hbxbp/tests/demoxbp.prg
! Fine-tuned XbpBrowse() code confirming to latest changes.
/*
Finally I could achieve vertical navigation as per TBrowse without any
memory overhead. Horizontal navigation stll needs a lot of work but in its
simplest form it is working. Please play with vertical navigation and report
on this list any differences you might found.
XbpBrowse() truely follows Xbase++ event loop protocol. So it is possible
that you can try real-life XbpBrowse code with Harbour-Qt. I am looking forward
your support in this direction. Because it is taking my lot of time to
understand the Qt's internal behavior of model/view programming, I am
finding it hard to test all possible scenarios.
Please make experiments with array bowsers, indexed browsers, etc. and provide
feedback as much as possible.
Enjoy
*/
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-mkdyn.bat
! Fixed to handle case when HB_*_INSTALL var is empty.
Related features will be skipped in this case.
* config/global.cf
! Don't try to set HB_*_INSTALL vars if HB_INSTALL_PREFIX is empty.
* contrib/hbtip/Makefile
- contrib/hbtip/popcln.prg
+ contrib/hbtip/popcli.prg
- contrib/hbtip/httpcln.prg
+ contrib/hbtip/httpcli.prg
- contrib/hbtip/smtpcln.prg
+ contrib/hbtip/smtpcli.prg
- contrib/hbtip/ftpcln.prg
+ contrib/hbtip/ftpcli.prg
* Rename 'cln' postfix to 'cli' which much better resembles
to 'client' than old one which rather means 'clean'.
* source/rtl/filesys.c
! Fixed FO_EXCL flag on win/wce platforms. It was ignored before.
% Deleted some unnecessary casts.
* contrib/hbtip/log.prg
! Fixed to avoid infinite loops when trying to create log files
on a non-existing path.
* contrib/hbtip/Makefile
+ contrib/hbtip/log.prg
* contrib/hbtip/popcln.prg
* contrib/hbtip/sendmail.prg
* contrib/hbtip/httpcln.prg
* contrib/hbtip/client.prg
* contrib/hbtip/smtpcln.prg
* contrib/hbtip/ftpcln.prg
+ Reworked the way logging is done. Default case works similarly
to the old one, but now logging can be overridden by passing
a user defined codeblock. In fact that's what also happens in
default case with codeblock using a simple new logging class
included in hbtip which emulates old behaviour.
! Fixed race condition in log filename creation compared to
old method.
* sendmail*.log -> smtp*.log
* <name>.log without counter in filename won't be created anymore.
* contrib/hbtip/sendmail.prg
! Raised timeout to 1000 from 100.
This was the remaining error, now it should be okay.
; This means Harbour now support SMTP through SSL, which
practically means "gmail support", Google Apps for
Domain mailboxes also work.
Remember to build hbtip with HAVE_OPENSSL option and
link with hbssl lib + openssl libs. On *nixes this is
a no-brainer. On Windows, OpenSSL either needs to be
built from source, or pre-built binaries downloaded
(from this file: http://www.slproweb.com/download/Win32OpenSSL-0_9_8k.exe
from this link: http://www.slproweb.com/products/Win32OpenSSL.html)
and linked. Due to usual chaos regarding lib names
on Windows, default names in contrib\hbssl\hbssl.hbc may
need to be adjusted to local environment.
MinGW and MSVC are supported by OpenSSL on Windows for
static linking, the .dll version should work for all
compilers, I've only tested MinGW and MSVC though.
+ contrib/hbtip/tests/gmail.prg
+ Added simple test program to send mails through gmail.
* bin/hb-mkimp.bat
+ Added some more location to look for OpenSSL .dlls.
* contrib/hbssl/hbssl.hbc
+ Added support for rest of Windows compilers.
* contrib/hbtip/smtpcln.prg
! Fix to Auth() to not eat extra input in case of an error.
* utils/hbmk2/hbmk2.prg
+ Added support for windres resource compiler for os2/gcc.
(untested)
+ Minor step to support os2/gcc cross-compilation on Linux.
* utils/hbmk2/hbmk2.prg
! Fixed to ignore filtered -gt switches (like -gtxwc{unix})
without warning message.
+ Some small steps towards adding sunpro[64] support to hbmk2.
% Merged watcom compiler support code for different platforms.
(option casing also synced)
! Added "{LS}" (resources) to os2/watcom compiler cmdline.
! Added -bt=os2/nt to resource compiler cmdline for watcom.
+ Added '-p=64' option to win|os2|dos/watcom lib cmdline.
+ Added '-q' option to watcom wlib/wrc cmdlines.
! Fixed debug linker option for watcom.
* config/dos/watcom.cf
* config/win/watcom.cf
* config/linux/watcom.cf
* config/os2/watcom.cf
+ Added doc link to wlib tool.
* Synced link option casing with each other and hbmk2.
% Deleted 'export DOS4G=quiet' for win and os2.
* config/global.cf
+ Minor cosmetic.
* utils/hbmk2/hbmk2.prg
+ In incremental (-inc) mode .c and .rc stubs are now created
inside workdir and kept there for consecutive build runs.
They are only recreated if necessary. This means that
-gt, -main= and -icon options work well with -inc mode, and
won't anymore force linking on each run.
* All stubs will be recreated in -rebuild mode.
* Above stubs will be deleted in -clean mode. (except vcshead and tshead)
* utils/hbmk2/hbmk2.prg
! Deleted -MTd win/msvc compiler switch in -debug mode to not
leave it to the default settings and give users full control
of this.
* bin/postinst.sh
* make_gnu.sh
+ config/linux/sunpro64.cf
* config/linux/sunpro.cf
* config/sunos/sunpro64.cf
* config/sunos/sunpro.cf
; Applyied patch by Tamas Tevesz.
! Fixes for Sun Pro so generation.
+ Added sunpro64.cf for linux.
+ Added HB_ISAOPT variable to hold ISA selection switches.
+ Added $(HB_CCPATH)$(HB_CCPREFIX) to sunos/sunpro.cf to CC/LD.
! Typo in make_gcc.sh (== -> =)
* ChangeLog
! Typos in recent entries.
* source/common/hbver.c
* Cosmetic patch by Tamas Tevesz.
+ config/readme.txt
+ Added readme.txt to include license and links to included
binaries and sources.
; It'd be probably better to delete all these binaries
(GNU Makes are only there for convenience), but then
'mkdir -p' and 'rm -f -r' commands need to be hacked somehow
for DOS and OS/2 shells. Also a proper copy cmd is needed
for DOS. Maybe we should simple write these simple utilities
using a public domain license and include the binaries of these.
Couldn't find the source of the OS/2 tools' binary releases.
* config/mingw32-make.exe
* config/dj-rm.exe
* config/dj-cp.exe
* config/dj-mkdir.exe
* Updated to match the exact binaries referred to in readme.txt.
(no change in functionality or version numbers)
* source/pp/pplib.c
* source/compiler/hbstripl.c
+ Added HB_EXTERN_BEGIN/END plus explicit declaration of
some static functions to make SunPro C++ mode happy.
There are still *tons* of warnings messages, most of them
complaining about function declaration 'extern "C"' and
const differences, even in Harbour generated C code.
These fixes are experimental and address just the tip
of the iceberg.
Please review me.
* contrib/hbwin/wapi_winbase.c
+ Added WAPI_FORMATMESSAGE(). Unicode support implemented, but
not tested, last parameter not implemented. This should replace
limited FORMATMESSAGE() implementation found in win_prt.c.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_tprt.prg
* contrib/hbwin/tests/testprt1.prg
* contrib/hbwin/tests/testprt2.prg
* contrib/hbwin/win_prt.c
* Functions and class renamed to have "win_" prefix.
% Other minor cleanups.
+ win_portopen() returns -1 if the port number was out of
range, so MAXSERIAL constant could be elminiated.
% INVALID_HANDLE_VALUE constant is in reality an explicit
-1 used by low-level lib layer, so I've elminiated it,
and high-level lib layer also uses plain -1 now.
Could be replaces by some macros, but it shouldn't
use a Windows specific name.
- Deleted FORMATMESSAGE().
* Using WAPI_FORMATMESSAGE() instead of local FORMATMESSAGE().
(they are not compatible)
* contrib/hbwin/wce_smsc.c
! Added TOFIX for an lstrcpy() function. This is unsafe
and can easily cause buffer overrun. Until someone
fixes this properly, I've added a workaround where input
string lenght is checked to be smaller than approriate
buffer size. Only compilation was tested using poccarm,
I have no WinCE decide.
Jose, please have a look at it.
* contrib/hbwin/olecore.c
* Minor formatting.
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/ChangeLog
* contrib/hbtpathy/telepath.prg
* Formatting.
+ Added some dummy functions to at least make the win version link
properly. It didn't work for me though.
* contrib/hbwin/win_tprt.prg
* contrib/hbwin/win_prt.c
* Formatting.
* Added Hungarian notation to variables.
! Tweaked a few types.
+ Extended number of ports to 32 (from 16). F.e. on my system
the Nokia phone gets installed on COM22.
; TODO: Rename functions/class to comply with rest of lib.
* source/vm/dynlibhb.c
! Fixed to not use dl*() functions on linux/sunpro.
* config/linux/sunpro.cf
! Fixed to include gpm lib.
; TOFIX: linux/sunpro linking dies on:
../../../../../lib/linux/sunpro/libhbpcre.a(pcrecomp.o): In function `check_auto_possessive':
pcrecomp.c:(.text+0x2952): undefined reference to `.CG4A.3263'
pcrecomp.c:(.text+0x2959): undefined reference to `.CG4A.3263'
pcrecomp.c:(.text+0x2b29): undefined reference to `.CG40.3253'
pcrecomp.c:(.text+0x2b30): undefined reference to `.CG40.3253'
* contrib/hbqt/hbqt_slots.cpp
! Deleted windows.h.
* include/hbsetup.h
+ PPC CPU detection made better.
* include/hbatomic.h
* source/vm/maindllp.c
* source/rtl/gttone.c
+ Using HB_CPU_* macros to detect CPU instead of compiler
specific solutions.
Przemek, please review me.
* source/vm/maindllp.c
% Using hbver.h constants to form the version number
included in the .dll name. So it's now maintainence
free.
% Reduced redundancy when forming .dll names.
* source/vm/maindllp.c
* utils/hbmk2/hbmk2.prg
* Renamed wce .dll to harbour[mt]-20-wce-arm.dll
* Renamed non-ARM wce .dlls to harbour[mt]-20-wce.dll
* INSTALL
+ config/linux/sunpro.cf
+ Added Sun Studio compiler support for Linux platforms.
Thanks Tamas Tevesz for the tip that this port exists.
It has various problems to fix, but it's a start.
* config/sunos/sunpro.cf
! Typo in prev commit.
* include/hbdefs.h
! Further tweaked HB_STRICT_ALIGNMENT detection by using
HB_CPU_* macros.
Please review and extend/tweak if needed.
* include/hbdefs.h
* include/hbsetup.h
* include/hbinit.h
* source/vm/fm.c
* source/common/hbver.c
* config/sunos/sunpro.cf
+ Patch for Sun support by Tamas Tevesz.
- SunPro compiler C++ mode support.
- HB_STRICT_ALIGNMENT config refinement for Sun platform.
- SunPro compiler version detection will detect raw version
number for newer releases.
- SunPro optimization flag tweaks for C/C++ mode.
Trying to be Blastwave.org compatible as much as possible.
- LD_OUT -o option tweak for SunPro.
; NOTE: -o option should better be revised for all supported
[gcc] compilers to have space between it and the
filename.
* source/vm/extrap.c
+ Changed to use HB_CPU_* macros instead of using compiler
specific ones.