* harbour/src/rtl/filesys.c
! added protection for potentially unfinished due to signal
interrupt close() operation in *nix systems in hb_fsClose()
function
* use hb_fsClose() instead of close() to be sure that the operation
is completed in *nix systems
* return NULL for DosToWinHandle( FS_ERROR )
; TODO: add protection against signal interrupting to all hb_fs*()
functions which may need it.
* harbour/src/rtl/hbproces.c
* use hb_fsClose() instead of close() to be sure that the operation
is completed in *nix systems
! Do not inherit ends of pipe handles in MS-Windows builds of
hb_fsProcessOpen()
! Added missing CloseHandle( hProcess ) in MS-Windows builds of
hb_fsProcessRun()
; QUESTION: Does hb_fsProcessRun() work correctly in MS-Windows builds?
I've just noticed that I used WaitForMultipleObjects()
WIN API function with unnamed pipe handles and I cannot
find any information in MSDN that this is legal operation.
* harbour/include/hbgtinfo.ch
+ added HB_GTI_ONLINE - Is terminal connected?
* harbour/src/rtl/hbproces.c
! fixed MS-Windows version of hb_fsProcessRun() to unlock HVM stack
when thread is waiting for child process
* harbour/include/hbthread.h
* harbour/src/vm/thread.c
+ added internal functions hb_threadStateClone() and hb_threadStart()
* modified code to use new functions
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
+ added public function hb_vmThreadStart() which creates new thread
with HVM stack
+ added protection against executing hb_vmThreadRelease() for
not registered thread state
* contrib/hbrun/hbrun.prg
! Fixed to not crash due to corrupted .hrb leftover files next to hbrun executable.
* src/compiler/hbusage.c
! typo in e-mail address
* contrib/hbqt/hbqt_common.hbm
+ qt autodetection on beos
* config/postinst.hbs
* ld config -> linux only
; [Tamas Tevesz]
* harbour/src/rtl/hbrandom.c
! fixed double number calculation for random values by removing
some wrong trick with epsilon value. rand() function returns
numbers in range [0,RAND_MAX] (inclusive) so can give RAND_MAX+1
different results and this is the correct divisor to map rand()
results to real range [0,1) ( 0 <= n < 1 )
* harbour/src/common/hbtrace.c
! use hb_getenv_buffer() instead of hb_getenv() to not allocate
memory when trace system is activated and added protection
against recursive calls.
* harbour/src/common/hbprintf.c
! use internal function _hb_strnlen() instead of hb_strnlen()
to avoid recursive calls in Harbour trace system
* harbour/src/lang/msgbgiso.c
! fixed typo in lang module name: "BGWIN" -> "BGISO"
; TODO: sync codepage and land module names to use the same ID.
Now it's necessary to look at Harbour source code to find
corresponding modules.
* harbour/src/rtl/gtwvt/gtwvt.c
! fixed GPF when fullscreen was enabled before console window is
created.
Now it's possible to enable full screen mode before application
starts without flickering window, i.e.:
#include "hbgtinfo.ch"
REQUEST HB_GT_WVT_DEFAULT
PROC main()
hb_gtInfo( HB_GTI_ISFULLSCREEN, .T. )
? hb_datetime()
? version()
? hb_compiler()
? hb_gtVersion(), hb_gtVersion(1)
WAIT
RETURN
* src/rtl/hbzlibgz.c
! In block declaration in recent patch.
* utils/hbmk2/hbmk2.prg
! Regression in recent xhb patch.
* contrib/hbwin/axcore.c
! Format warning in trace.
* src/rtl/gtwvt/gtwvt.c
* Indenting.
* INSTALL
+ Added new ghostscript link. [Tamas Tevesz]
(left the old one as it has some information the new one doesn't)
* contrib/hbqt/hbmk2_qt.hbs
* contrib/hbqt/qtgui/qth/*.qth
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/hbqt.h
* contrib/hbqt/qtcore/qth/*.qth
* contrib/hbqt/qtnetwork/qth/*.qth
* contrib/hbqt/qscintilla/qth/*.qth
* contrib/hbqt/qtdesigner/qth/*.qth
+ Patch to move wrapper code to C++. [Francesco Perillo]
* My mods:
- Restored the way registerResource() is implemented.
(TODO: needs generic solution)
- Formatting, some cleanups.
- Minor corrections in generated code format (more TBD)
- Deleted some unused code
- Refixed strcpy() usage.
- Added C++ puller for __QT* symbol.
- Added manual version of HBQEventsFromPointer() which is still needed
by hbqtcore. (TOFIX)
Please test.
; TOFIX: Remove remaining generated .prg, holding this code:
FUNCTION QtClass( ... )
RETURN HB_QtClass():new( ... )
Any takers?
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
* added new public C function:
HB_BOOL hb_vmRequestReenterExt( void );
hb_vmRequestReenterExt() checks if given thread has registered HVM
stack and if not it creates new one otherwise it makes the same
operations as hb_vmRequestReenter(). It should be also used with
hb_vmRequestRestore() which checks if new stack was allocated and
if yes then it releases it.
For ST HVM hb_vmRequestReenterExt() works exactly like
hb_vmRequestReenter().
* harbour/include/hbthread.h
! typo in comment
* harbour/contrib/hbwin/win_svc.c
! fixed to work with MT HVM
+ accept function symbol (@func()) as 2-nd parameter of
WIN_SERVICESTART() function
* replaced one HB_TCHAR_*() function by Harbour STR API one.
(for full UNICODE support we should eliminate all HB_TCHAR_*()
functions)
* harbour/src/rtl/minmax.c
! fixed MAX() for mixed date and timestamp values
* harbour/src/rtl/strtran.c
% minor modification
* harbour/src/rtl/cdpapihb.c
* updated for signed HB_SIZE type
* harbour/src/rtl/valtype.c
* modified to work with any HB_IT_STRING flags we may add in the future
* harbour/src/rdd/dbcmd.c
* eliminated explicit hb_parinfo() usage
* harbour/src/compiler/harbour.y
* added casting which seems to be necessary for some newer bison versions
* harbour/doc/xhb-diff.txt
* typo
* harbour/src/pp/pplib.c
* updated function description
* harbour/src/pp/pplib3.c
* covered old long time obsolete functions:
__PPADDRULE(), __PREPROCESS(), __PP_FREE()
by HB_LEGACY_LEVEL3 macro
* harbour/config/win/bcc.mk
* harbour/utils/hbmk2/hbmk2.prg
* disabled W8060 warnings in BCC builds when warning level is set to low
* harbour/src/rtl/gtwin/gtwin.c
! added missing void in hb_gt_win_IsFullScreen() declaration
* harbour/src/rtl/hbjson.c
! fixed typo which caused that \uNNNN in strings were ignored
instead of being decoded
; QUESTION: why we are not using unicode strings in encoding by default?
* include/hbgtinfo.ch
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
+ HB_GTI_ISFULLSCREEN checking and setting inside GTWIN done.
! Minor fix for GTWVT, code patched to work on Windows 95 (tested).
; [Aleksander Czajczynski]
* config/beos/gcc.mk
* config/bsd/clang.mk
* config/bsd/pcc.mk
* config/linux/clang.mk
+ add soname specs to some gnu lds [Tamas Tevesz]
* harbour/utils/hbmk2/hbmk2.prg
* harbour/config/dos/watcom.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* harbour/config/os2/watcom.mk
! fixed to not use -wcd124 and -wcd136 in OpenWatcom C++ builds
* harbour/config/win/xcc.mk
! added -noexpobj as workaround for problems with creating
shared library
* removed now unnecessary $(RM) harbour*.dll
* harbour/src/rtl/base64d.c
* pacified warning
% removed unnecessary condition with RTE - decoded string has to
be shorter then the source one taken from HVM string item so for
sure it cannot exceed maximum string item size
* harbour/src/rtl/base64c.c
* generate RTE if encode string size is too big
* eliminated unnecessary INT_MAX string limit
* include/hbgtinfo.ch
* src/rtl/hbgtcore.c
* src/rtl/gtdos/gtdos.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtxwc/gtxwc.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtwvt/gtwvt.c
* contrib/hbct/ctwin.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/gtalleg/gtalleg.c
* contrib/hbrun/hbrun.prg
* tests/wvt_fs.prg
* examples/gtwvw/gtwvw.c
* Renamed HB_GTI_FULLSCREEN to HB_GTI_ISSCREENPOS
HB_GTI_FULLSCREEN is now deprecated and will be deleted in future
version of Harbour, use the new name instead.
* Renamed HB_GTI_FULLSCREEN to HB_GTI_ISFULLSCREEN
in context of GT window being fullscreen on physical display
recently added in 2011-02-26 20:07 UTC+0100 Viktor Szakats
; If someone has further name suggestions, pls tell.
* src/rtl/hbgtcore.c
* Setting defaults for HB_GTI_ISFULLSCREEN and HB_GTI_ALTENTER.
* include/hbgtinfo.ch
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
+ tests/wvt_fs.prg
+ Added ability to switch GTWVT screen into fullscreen. See example
for usage. Patch by Aleksander Czajczynski. Many thanks!
Pls test.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
! Fixed bug introed in 2011-02-24 18:03 UTC-0800 Pritpal Bedi
where char array declaration used runtime size value.
Replaced with hb_strdup(). In previous commit I've also fixed
an strcpy() usage. strcpy() is strictly forbidden in Harbour
codebase. Hopefully it fixes MSVC build failure.
* src/rtl/fscopy.c
! Use hb_fsReadLarge()/hb_fsWriteLarge().
+ Added TODO to use hb_fileExtOpen().
! Deleted FXO_DEFAULTS after carefully checking there is no
more "extra" feature of hb_fsExtOpen() enabled in this specific
scenario.
* config/postinst.hbs
* config/global.mk
* config/bin.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/linux/gcc.mk
* config/dyn.mk
* config/os2/gcc.mk
* Trying to cleanup the harbour dynlib name situation.
Here's the plan (which is similar to what's used in contrib area):
win, wce: harbour-21[-subtype][.dll/.lib]
dos, os2: harbour[.dll|.???]
darwin:
libharbour.2.1.0.dylib
libharbour.2.1.dylib -> (symlink) [compatibility level]
libharbour.dylib -> (symlink)
*nix:
# libharbour.s?.2.1.0
# libharbour.s?.2.1 -> (symlink) [soname]
# libharbour.s? -> (symlink)
; It's possible it's broken now. Pls test linux/gcc and darwin.
'install' was not tested.
; TODO: Clean variable usage, there is some redundancy, plus
some places where current solution is not generic, f.e.
using HB_VER_*, HB_DYNLIB_BASE vs. HB_DYNLIB_NAME, etc.
* harbour/src/rtl/fscopy.c
* Reverted 2011-02-22 12:27 UTC+0200 Mindaugas Kavaliauskas
which made behavior inconsistent with rest of similar
functions like FERASE(), FRENAME(), which also don't throw
RTE if bad parameter is passed, but return FERROR()
and failure instead.
Also restored _SET_DEFAULT handling to not create a special case
compared to __COPYFILE() behavior, ia. some features like
FXO_SHARELOCK are still enabled while FXO_DEFAULT is not).
Pls rewrite it using hb_fsOpen()/hb_fsCreate() if that behavior
bothers you.
* harbour/src/rtl/fscopy.c
* added runtime error for HB_FCOPY() bad param types only
* made a function HB_FCOPY() a pure file system function
does not dependent on _SET_DEFAULT setting
; File open mode is not altered a avoid any influence on OS/2
behaviour if source and destination files are the same (see
ChangeLog entry at 2009-11-24 16:57). I guess, hb_fsExpOpen()
still can be changed to hb_fsOpen() with FO_EXCLUSIVE,
FO_CREAT, and FO_TRUNC but I'm unable to test it, so, I leave
current code.
* src/rtl/fscopy.c
* Reverted my recent changes.
; Pls read past ChangeLog entries as to why this function
is implementet the way it is make changes which don't break
f.e. OS/2. Not throwing an RTE from this function is
intentional.
* Added parantheses to recent patch to hb_fsCopy().
* src/rtl/fscopy.c
! HB_FCOPY(): RTE when either of the parameters is not string.
- Deleted FXO_DEFAULTS from open flags, so HB_FCOPY() and hb_fsCopy()
don't depend on _SET_DEFAULT setting anymore.
* harbour/contrib/hbwin/axcore.c
* return NIL instead of runtime error if failed to obtain
connection point
; Please test
* harbour/src/rtl/fscopy.c
* added error check for read operation
* src/rtl/filesys.c
+ fs_win_set_drive(): Setting SEM_FAILCRITICALERRORS before
SetCurrentDirectory() call to avoid screen msg in some error
scenarios. Thanks to vbdasc (final patch has two modifications,
so pls retest it).
+ hb_fsChDir(): Applied similar logic as above.
* Using FALSE instead of 0 in both function above.
* contrib/hbssl/evppkey.c
* Comment.
* contrib/hbrun/hbrun.prg
+ Added GTWVT on win builds.
* src/rtl/gtcrs/gtcrs.c
! Typo in comment.
* src/rtl/errapi.c
! Deleted old TOFIX most pbly not relevant anymore.
* tests/testid.prg
! Deleted old TOFIX and formatting.
* src/rtl/hbrandom.c
! Typo in comment. [Tamas]
+ Enabled using DBL_EPSILON in hb_random_num() on Windows
platform, except bcc, which - according to the comment
from original author - has some problems with this value.
* package/harb_win.rc
* contrib/hbrun/hbrun.rc
* Modified manifest inclusion to be friendly with all Windows
compilers (ie. not break them with their own headers and
predefined macro definitions).
* harbour/include/hbthread.h
* harbour/src/vm/hvm.c
* harbour/src/vm/thread.c
* on main thread exit unlock all main thread PRG mutexes before other
thread terminates and EXIT functions are executed.
* wake-up all thread waiting on subscribe operation when main thread
is terminated.