* 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.
* INSTALL
* Minor.
* config/global.cf
+ Added screen dump of build settings. Initial version,
only settings having standard names are being shown.
+ Added some new links to comment.
! Fixed $(info ...) usage protection.
* Makefile
% Using ':=' assignments where possible.
! Fixed to choose OS/2 postinst script based on shell, not
HB_ARCHITECTURE.
* Indentation.
* make_gnu.bat
+ Added alternative GNU Make executable names in comment.
* source/compiler/cmdcheck.c
+ Added support for --help cmdline option.
* config/dir.cf
* Indentation.
* config/global.cf
% Some more opt. Rules are very clean and simple now without
redundancy. In fact only one line has be changed to move
away bin/lib/obj workdirs. There are no more hidden
dependencies on the dir names or layout.
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/global.cf
+ Little bit changed the meaning of HB_BUILD_NAME. It's now
simply appended to <arch>/<comp> value. So, to create
'<arch>/<comp>.<bld>' style names HB_BUILD_NAME=.dbg can be
used. This will result in the flattest dir structure.
To create a subdir, this can be used:
HB_BUILD_NAME=/dbg. To create a dir structure:
HB_BUILD_NAME=/dbg/cpp
+ GRANDP variable is now automatically calculated.
* config/sunos/sunpro.cf
! Minor typo.
* harbour/include/hbsetup.h
* harbour/include/hbthread.h
* harbour/include/hbatomic.h
* harbour/source/vm/thread.c
* added support for MT mode in WinCE builds using raw MS-Windows API
instead of CRTL wrappers. It's possible that it may badly interact
with some CRTLs functions we are using in our code so I do not know
it will work. Please test.
* config/global.cf
* Changed HB_BUILD_SUBDIR to HB_BUILD_NAME.
! HB_BUILD_NAME fixes after initial testing. Should be okay now.
* INSTALL
+ Documented new HB_BUILD_NAME setting.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
+ Added support for -build= option. This is similar to HB_BUILD_NAME
when building Harbour. Also added ${hb_build} macro.
* INSTALL
* bin/postinst.sh
* source/vm/fm.c
* source/common/hbver.c
+ config/sunos/sunpro64.cf
* config/sunos/sunpro.cf
* ChangeLog
+ Applied second SunPro patch sent by Tamas Tevesz.
Addressed these former TODOs:
+ Added sunpro64 target.
+ Finalized C compiler options (including warning level settings).
+ Added compiler identification code to hbver.c.
+ dynamic lib creation.
* utils/hbmk2/hbmk2.prg
! Fixed RTE when run on sunos. Needs further work to discover how
it could run onto that codepath, normally it shouldn't.
* bin/postinst.sh
% Cleaned a few remaining 'gpp' HB_COMPILER value checks.
* config/global.cf
* config/lib.cf
* config/bin.cf
* config/globsh.cf
* config/instsh.cf
* config/none.cf
* config/dirsh.cf
! Using embedded GNU Tools on OS/2. This fixes the install dir
creation problems (at least makes it work like on other platforms).
Fixes HB_BUILD_SUBDIR support. It also allowed to remove all
remaining hacks to try to create dirs for platforms where 'mkdir -p'
equivalent isn't available.
Probably it would be better to solve this using some GNU Make
tricks, but couldn't find one yet.
% Using native DOS commands for RM and MD. (MD is not used currently)
* EXE_DIR, LIB_DIR moved to global.cf
% Deleted (I hope) unnecessary $(CMDPREF) variables.
If someone knows what was the purpose of them, we can readd them, but
we should then readd them to all shell types and all commands consistently.
! Fixed nt dir walking rule for old GNU Make versions.
+ config/os2-rm.exe
+ Added OS/2 GNU rm binary.
* config/global.cf
+ Minor improvements.
; NOTE:
I was experimenting how to return HB_COMPILER
and HB_ARCHITECTURE values from GNU Make to caller batch/script.
So far no success.
Help/ideas would be much appreciated. This would be needed
to fully switch to GNU Make level arch/comp detection, since
these values are also needed by make_gnu*.*, mpkg_gnu.* scripts.
* source/rtl/hbinet.c
* Renamed iErrorCode to iError.
* config/header.cf
* config/rules.cf
* config/none.cf
* config/global.cf
* config/doc.cf
* config/lib.cf
* config/bin.cf
* config/dir.cf
* config/test.cf
+ Added HB_COMPILER and HB_ARCHITECTURE autodetection.
It's experimental yet.
+ Added support for HB_BUILD_SUBDIR envvar which can
extend the <arch>/<comp> path by arbitrary subdir(s).
Useful to keep custom binary builds in parallel, f.e.
release/debug, cpp/c, cpu targets. Notice that hbmk2
will not be able to use such customized directory
structure yet, but there'll probably be a cmdline option
for that in the future (it won't/can't be automatic).
Notice, this feature doesn't work yet on OS/2 because
the shell doesn't support 'mkdir -p' equivalent.
* Cleaned internal ARCH_COMP var usage.
% Deleted SOURCE_DIR usage, it was a no-op.
* make_gnu.bat
! Fixed autodetection of mingwarm.
; Autodetection code will have to be deleted from here anyway.
+ config/os2-mkdir.exe
+ Added OS/2 GNU mkdir executable. (not yet used)
* examples/superlib/superlib.dif
+ Added 'const'.
* source/rtl/hbinet.c
! Fixed to use hb_retc() to return hb_socketErrorStr() value.
* source/rtl/hbinet.c
% Cleaned old error description handling logic. Now the error
desc is dynamically retrieved instead of being stored along
the error code.
* harbour/source/rtl/hbinet.c
! modified hb_inetRecv[All]() to always return number
of bytes read if at least one byte was successfully read
just like in documentation so it's not longer necessary to
use hb_inetCount() to check real number of read bytes.
On error they return -1 and 0 when foreign host closed connection.
! modified hb_inetSend[All]() to always return number of written
bytes if at least one byte was successfully written so it's not
longer necessary to use hb_inetCount() to check real number of
written bytes. On error they return -1.
! modified hb_inetRecvLine() to return "" on errors and always
set numeric value with error code or number of bytes read
in 2-nd parameter passed by reference
! modified hb_inetDataReady() to return -1 instead of .F. to
indicate errors when socket is not open socket
! modified hb_inetRecvLine() and hb_inetRecvEndBlock() to work
like in documentation and set in 2-nd parameter passed by
reference the size of read line with line terminator, -1
or error and 0 when foreign host closed connection.
! modified hb_inetRecvEndBlock() to always use default EOL when
there is no not empty string in passed string parameter or
passed array with line terminators
! fixed some small differences between hb_inetRecvLine() and
hb_inetRecvEndBlock()
! fixed returned values in hb_InetDGramSend() and hb_InetDGramRecv()
to be synced with documentation
* minor: modified hb_inetRecvEndBlock() to use as default EOL
s_inetCRLF instead of hardcoded "\r\n"
* eliminated some redundant code
+ added automatic socket initialization in windows builds
% added support for read ahead buffer in hb_inetRecvLine() and
hb_inetRecvEndBlock() and updated other functions which may
interact with it. It greatly improved the speed of code
which extensively uses above functions.
Warning!!! Above modifications may force updating other code which used
some undocumented hb_inet*() functions behavior i.e. some side
effects in previous implementation. Please update your code
if necessary.
* harbour/doc/inet.txt
! modified hb_inetAccept() documentation wrongly describing value
returned on error when it's NIL
* harbour/config/os2/watcom.cf
! fixes for real OS2 command processor - please test
* include/hbdefs.h
* include/hbsetup.h
* include/hbinit.h
* source/vm/fm.c
+ config/sunos/sunpro.cf
+ Added first round of Sun Pro (Sun Studio) compiler.
Contribution of Tamas Tevesz.
; TODO:
+ Add other Sun Pro CPU targets.
* Finalize __inline keyword usage. (currently in fm.c)
Przemek, could you take a look at it?
! Fix warning option.
+ Add compiler identification code to hbver.c.
+ hbmk2 support.
+ dynamic lib creation.
* utils/hbmk2/hbmk2.prg
* Minor rename.
* contrib/hbclipsm/gauge.c
% Minor opt, plus removed cast.
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/wce_sim.prg
* Minor formatting.
* harbour/examples/httpsrv/uhttpd.prg
* Added some hb_ToOutDebug() points garded from DEBUG_ACTIVE define
for debugging purpose
* harbour/examples/httpsrv/modules/showcounter.prg
* harbour/examples/httpsrv/modules/tableservletdb.prg
* fixed path for current directory
as now define all _SERVER variables
* harbour/examples/httpsrv/cookie.prg
* fixed error on deleting cookie
* contrib/hbwin/Makefile
+ contrib/hbwin/hbsim.ch
+ contrib/hbwin/wce_simc.c
+ contrib/hbwin/wce_smsc.c
+ contrib/hbwin/wce_sim.prg
+ contrib/hbwin/tests/testsim.prg
+ Added SIM reading and SMS sending interfaces for WinCE.
This is a contribution from Jose Luis Capel. Many thanks for it.
; NOTE:
mingwarm doesn't support these APIs unfortunately, poccarm does,
and msvcarm as well, but I couldn't try the latter.
(I've applied formatting, cleanups and some minor fixes)
Jose and all, please review and test.
* examples/httpsrv/uhttpd.prg
* examples/httpsrv/uhttpd.hbp
* examples/httpsrv/readme.txt
% Given less focus on the socket selection issue. Now the only
difference is .prg level API and local API is fully portable.
* Made the proprietary one the default on all platforms.
(it looks much more obvious/simple to use, also requires less
STATIC variables)
* contrib/hbwin/win_misc.c
! Fix for WinCE.
* ChangeLog
! Typos.