* harbour/include/hbcomp.h
* harbour/source/common/hbdate.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
* enabled some POSIX function added to 1.8 Linux OpenWatcom builds
and cleaned some workarounds not longer necessary
* harbour/source/rtl/hbproces.c
+ added hack with small sysconf() implementation which is still missing
in OpenWatcom 1.8. Now it's possible to build Harbour in Linux using
officially distributed OpenWatcom 1.8
* harbour/source/rtl/disksphb.c
* added TODO warning message
* harbour/source/compiler/cmdcheck.c
! fixed typo in memory freeing in repeated -p<path> options
* harbour/source/rtl/hbproces.c
* check if some define constants exists before use - it should
fix compilation in some WinCE builds, f.e. with MSVC
* harbour/source/common/hbprintf.c
* disabled _LIB_VERSION setting in DJGPP builds - if we need it
for some reasons then it should be done in different which does
not create multiple instances of this variable
* harbour/include/hbgtinfo.ch
+ added HB_GTI_FONTSEL
* harbour/source/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_FONTSEL
+ added support for HB_GTI_PALETTE
+ harbour/tests/gtxfnt.prg
+ added small demonstration/test code for HB_GTI_FONTSEL
and XWindow GTs
* harbour/source/rtl/hbproces.c
* replaced execv() with execvp() in *nix builds
* harbour/source/rtl/philes.c
* harbour/source/rtl/dirdrive.c
* harbour/source/rtl/philesx.c
* harbour/source/rtl/filesys.c
! fixed CURDRIVE() and DISKNAME() to not return "A" in OS-es which
does not use drive letters
! eliminated toupper()
% minor cleanup and speed improvement
* harbour/config/bin.cf
* harbour/config/test.cf
* removed quoting for TOP=$(GRANDP) nested GNU make call parameters
* config/os2/dir.cf
* use $(COMSPEC) instead of calling cmd.exe directly
* config/os2/gcc.cf
* rewrote create_library rule to work with make -jn without
breaking shell environment/command line size.
* source/rtl/hbproces.c
* included sys/waith.h in OS/2 build. I think that initial
#defines can be simplified a bit.
* config/os2/install.cf
* rewrote install_rule to work with make -jn without
breaking shell environment/command line size.
* config/lib.cf
* removed unnecessary double quotes around TOP definition
* harbour/include/hbdefs.h
* include stdint.h in DJGPP >= 2.4
* harbour/source/common/hbprintf.c
! fixed DJGPP <= 2.3 compilation
* harbour/source/common/hbstr.c
* force buffer ending in DJGPP <= 2.3 when vsprintf() is used
* harbour/source/rtl/hbproces.c
! fixed typo in HB_SYMBOL_UNUSED() variable name
* harbour/config/dos/global.cf
! fixed for GNU make ports which prefer COMSPEC before SHELL
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbapifs.h
* harbour/include/hbextern.ch
+ harbour/source/rtl/hbproces.c
+ harbour/source/rtl/hbprocfn.c
+ added C functions hb_fsOpenProcess(), hb_fsProcessValue(),
hb_fsCloseProcess()
+ added .prg functions HB_OPENPROCESS(), HB_PROCESSVALUE(),
HB_CLOSEPROCESS()
Based on xHarbour code by Giancarlo Niccolai.
Warning: it's possible that they will be changed in the future.
Please test current implementation. Now few notes about it.
Each handle returned by HB_OPENPROCESS() have to be closed
by HB_PROCESSVALUE(). Even if process is killed by HB_CLOSEPROCESS()
its handle is still open and HB_PROCESSVALUE() has to be executed.
Type of handle depends on OS. In *nixes it's process PID. In MS-Windows
it's HANDLE. HB_PROCESSVALUE() attach process exit result in *nixes
cleaning zombie processes and in Windows closing the HANDLE. If you
do not call this function then you will have resource leak.
HB_CLOSEPROCESS() only sends quite request to the process but does
not execute any cleanup code.
All communication handles returned in parameters by reference by
HB_OPENPROCESS() function have to be closed using FCLOSE() function.
If hStdOut and hStdErr are references to the same variables then
executing process stdout and stderr is redirected to the only one
pipe. When handles for stdout, stderr and stdin are not given then
executed process inherits them from parent process unless <lDetach>
parameter is not given. In such case they are redirected to null
device (/dev/null or NUL).
The OS2 version is not tested. Please make tests.
There is no support for DOS which is single process OS.
In WinCE builds std{out,err,in} redirecting and process detaching does
not work too.
The parameters parsing should be updated. Now MS-Windows version uses
native OS command line parsing and quoting by "" can be used for
parameters with blank characters. I do not know any escape character
which can be used to pass (") as parameter to MS-Windows application.
In all other OS-es standard bourne shell rules are used. Parameters can
be quoted by "" or '' and escape character is \. Quoting by '' disables
special meaning of escape character. In OS2 where \ is path separator
escaping and '' quoting is disabled so it works like in MS-Windows
but I do not know if parameters divided by calling process are fully
respected by low level API calls in this system.