* bin/hb-mkdyn.bat
+ Moving .lib and .exp (if they are generated) files
to LIB dir.
* source/vm/maindllp.c
+ Added owatcom flavour of .dll name.
* contrib/hbwin/win_misc.c
+ Added WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE().
* utils/hbmk2/hbmk2.prg
+ Added TODO to create temp .c files in temp location.
Looks this can create a few problems (-hbcc, .ppo output
location when -p is used by user).
+ '/o' flavour of -o option is now ignored on non-*nix
systems to make sure users cannot mess up the hbmk process
flow.
* -o option modified to reset any previous explicit -o settings.
* Some minor internal renames, comments.
+ Added new hbmk.cfg / .hbp option: 'shareddef='. This can
change the default state of shared/static setting, so it
can be used by installers or user to override default
behaviour. NOTE: HB_SHARED envvar can also be used.
* Changed hbmk.cfg lookup preferences to this:
1. $HOME/.harbour
2. /etc/harbour
3. <hbmkdir>/../etc/harbour
4. <hbmkdir>/../etc
5. <hbmkdir>
(NOTE: I've deleted /etc as etc/harbour seems superior
and we already store a .def file there.
I've also deleted /usr/local/etc)
* utils/hbmk/hbmk2.prg
+ Added new TODOs.
+ Now using GTCGI as the GT.
+ Added -info option to enable informational output.
(currently this is the default for testing period)
+ Added -arch=<arch> command line option. Same as HB_ARCHITECTURE.
Added -comp=<comp> command line option. Same as HB_COMPILER.
envvars are kept for compatibility.
+ Added -hblnk option to give plave for hblnk script behaviour
emulation.
* Changed -cc, -cmp options to -hbcc, -hbcmp respecitvely.
+ Changed -hbcc, -hbcmp, -hblnk switches to turn off information
output and turn on quiet mode by default.
+ Added autodetection of architecture when unique to
architecture compiler is choosen manually. IOW, when
-comp=msvc|mingw|pocc|dmc|xcc is passed the architecture will
be set to win automatically. When -comp=djgpp is used,
dos will be selected.
! Fixed ordering of compiler autodetection because f.e. owatcom
bin dir holds a 'cl.exe', which made hbmk2 falsely detect msvc.
+ Added trick which I'm not sure I like, and may cause problems
and seemingly unpredictable behaviour, but could also help
in some environments where multiple compilers are setup in
parallel (this isn't a recommended scenario for various other
reasons, so maybe we shouldn't support it further). So from
now on the compiler autodetection will first look for the
compiler used to build hbmk2.exe, and check for the rest
afterwards. This feature is turned off for msvc builds of
hbmk2.exe because it breaks owatcom autodetection.
+ Added possibility to pass a plain dir by using -odir[\|/]
switch. The final name will be determined by first input
file name, if this one also has a dir, -o option will be
ignored. Added logic to handle separator differences, this
wasn't tested to a great deal.
+ Added -Wl,--start-group support for linux/gcc|gpp, win/mingw,
dos/djgpp.
! Fixed owatcom support to setup library paths.
! Fixed linux/owatcom to use link script.
* Some adjustments to win/owatcom C compiler settings. I guess
the ones in .cf should also need a cleanup.
* Few minor indentation problems fixed.
! C compiler and linker scripts now got an extension in
the generated temp filename to make some of them happy
(owatcom in this case). .cpl is used for compiler scripts,
.lnk for linker ones.
+ Compiler autodetection now also looks in hbmk2 executable
dir before looking into the PATH.
! Link script content was wrong due to typo.
! Fixed problem with library paths being wrong (doubly
decorated) in the link command. This may also fix some
problems with double extensions and final .c file cleanup.
! Fixed to add hbdebug lib when building in shared mode.
! Fixed typo in automatically adding './' on *nix systems.
; Please test, I definitely couldn't retest all scenaros
after all these changes.
* bin/postinst.bat
* Adapted change in mode modifier switches, also
added new -hblnk one.
* utils/hbmk/examples/winapi.hbp
+ Added mapi32.
+ utils/hbmk/examples/contrib.hbp
+ Added .hbp file for popular and portable only contribs.
* config/win/owatcom.cf
- Removed unnecessary system libs.
* contrib/hbvpdf/hbvpdft.prg
* hbwhat32 -> hbwhat in comment.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! Fixed harbour-project page link in header.
* contrib/hbwin/hbwapi.h
* Formatting (indenting the whole file content inside
self-guard isn't necessary.)
* utils/hbmk/hbmk2.prg
! Fixed not recognising hbp lines if the filter was at BOL.
! Two minor fixes.
* utils/hbmk/examples/xbgtk.hbp
+ Added cflags, it was already supported, just forgot about it.
* contrib/hbblat/tests/hbblat.hbp
* contrib/hbblat/tests/blatcmd.prg
% Using WIN_GETCOMMANDLINEPARAM().
* contrib/hbwin/win_misc.c
* contrib/hbwin/tests/testreg.prg
+ Added WIN_GETCOMMANDLINEPARAM().
Similar to WAPI_GETCOMMANDLINE() but returns
only the parameter part. Handles UNICODE,
_SET_OSCODEPAGE and appnames with spaces.
* contrib/hbwin/tests/hbwin.hbp
! Fixed to include shell32 lib.
* contrib/hbwin/Makefile
* contrib/hbwin/common.mak
+ contrib/hbwin/wapi_winbase.c
* contrib/hbwin/tests/testreg.prg
+ Added WAPI_GETCOMMANDLINE().
With UNICODE and _SET_OSCODEPAGE support.
* ChangeLog
* TOFIX (hb_cmdline()) marked as POSTPONED with explanation.
* contrib/gtwvg/make_b32.bat
* contrib/gtwvg/make_vc.bat
* contrib/gtwvg/Makefile
* Trying new method to point to hbwin, so that
we're not relying on hbwin headers being installed.
; Please test.
* contrib/Makefile
+ Added hbblat.
* contrib/make_vc_all.bat
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/hbblat/Makefile
* contrib/hbblat/common.mak
* contrib/hbblat/make_b32.bat
* contrib/hbblat/make_vc.bat
* contrib/hbblat/blatwrp.c
* contrib/hbblat/tests/hbmk.bat
* contrib/hbblat/tests/blatcmd.prg
+ Added support for HB_INC_BLAT (needed for releases).
* Some EOLs added.
* Minor correction to .ch name in make files.
% Replaced command line retrieval with hb_cmdline() call.
* Cleaned some headers/#defines.
* GNU make file got protection to only compile for win,
and to install headers.
* make_gnu.bat
* contrib/hbct/Makefile
* contrib/hbwin/Makefile
* Minor formatting.
* utils/hbmk/hbmk.prg
+ Added support to pass .hbp files on the command line.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/hbwapi.h
! Remaining comments changed to ANSI.
* harbour/contrib/gtwvg/common.mak
* harbour/contrib/gtwvg/Makefile
+ Added wvgdarea.prg
* harbour/contrib/gtwvg/wvgwin.c
+ Added more functions.
+ harbour/contrib/gtwvg/wvgdarea.prg
+ Added WvgDrawingArea(), a helper class to WvgDialog().
* harbour/contrib/gtwvg/wvgdlg.prg
* harbour/contrib/gtwvg/wvgparts.ch
* harbour/contrib/gtwvg/wvgphdlr.prg
* harbour/contrib/gtwvg/wvgstatc.prg
* harbour/contrib/gtwvg/wvgtoolb.prg
* harbour/contrib/gtwvg/wvgwnd.prg
* harbour/contrib/gtwvg/wvtwin.ch
! Numerous class structure enhancements. More Xbase++ compatibility
XbpDialog:drawingArea concept implemented in greater details.
WvgToolbarButtons() now take use of WAPI_ImageList_*() functions.
* harbour/contrib/hbwin/hbwapi.h
! Defines updated to respect pointers also.
+ harbour/contrib/hbwin/wapi_commctrl.c
+ Implemented WAPI ImageList_*() family of functions.
* harbour/contrib/hbwin/Makefile
* harbour/contrib/hbwin/common.mak
+ Added wapi_commctrl.c
* harbour/contrib/gtwvg/tests/demowvg.prg
* harbour/contrib/gtwvg/tests/demoxbp.prg
! Updated TO respect new changes in class structures.
Xbase++ related components are more compatible now.
; TODO: Tooltips on Toolbar Buttons. WHILE implemeting
XbpDialog:drawingArea concept I have lost track of this
feature as buttons are now created via image lists and
Toolbar window is created with CreateWindowEx() instead of
CreateToolbarWindow().
+ harbour/contrib/hbwin/wapi_commctrl.c
+ Added WAPI_Image*() functions.
* harbour/contrib/hbwin/hbwapi.h
+ Added more _par and _ret defines.
; The idea is to encapsulate Harbour API for WINAPI
parameters and return values. Now wapi_commctrl.c
looks very clean and easy to understand code.
Also I have contained all those functions which are
either not required on normal programming level
OR I could not convert, with #if 0 / #endif blocks.
But the header definitions are pulled from MSDN and
have been kept alongwith. This ensures that whenever
someone will try to implement them, all info will be
handy.
; Please approve the above implementation so that I
include these files in the build batches.
* bin/hbmk.bat
+ Added autodetection of Harbour dirs. So this batch will
now work when called from any directories, and even if
'/bin' dir is added to the PATH. IOW, it's not anymore
necessary to supply these envvars in normal cases:
HB_INSTALL_PREFIX, HB_BIN_INSTALL, HB_LIB_INSTALL,
HB_INC_INSTALL. If someone moves this batch file away
from its original place, these envvars can still be used
to point to the Harbour tree, but support for this may
be removed in the future to keep things simple.
+ Added support for multiple .prg files on the command line.
The first will be the main program.
+ Added support to supply .c files on the command line.
[these features need Windows NT or upper]
; TODO: Test OpenWatcom. I had to remove -fo and FILE
directives from script, if this was required we
need to find a solution to support multiple
input files.
* bin/hbmk_b32.bat
* bin/hbmk_vc.bat
+ Now these files can be called from any directories and even
when '/bin' dir is added to the PATH.
+ Added support for unlimited number of command line parameters.
[these features need Windows NT or upper]
* Changed to not interfere with 'echo off' setting of the
caller.
; NOTE: After this change it's possible to get rid of all
non-customized version of hbmk_b32.bat/hbmk_vc.bat
files in the source tree. I plan to remove these in
the near future. The rest can be simplified in most
places. This will only cause some inconvenience
for developers still using Win95/98/ME.
+ bin/hbmk_gcc.bat
+ bin/hbmk_ow.bat
+ Added make batch files to MingW/GCC and OpenWatcom.
* contrib/hbwin/win_tprn.prg
! Fixed recent typo.
* include/hbstdgen.ch
- Removed #undef __FILE__. I understand this isn't needed anymore.
* include/hbapigt.h
* source/rtl/gtfunc.c
+ Extended HB_GT_INFO structure with nPCount member.
* include/hbgtinfo.ch
* include/hbgtcore.h
* source/rtl/hbgtcore.c
+ Added HB_GTI_CARGO. This can be used to store whatever
user defined value on a per GT basis.
HB_GTINFO( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue>
* source/rtl/hbgtcore.c
! hb_gt_def_Alert() fixed to also initialize pNewVal2 with NULL.
(didn't cause any real-world harm).
* contrib/hbwin/win_tprn.prg
% Minor optimizations.
* contrib/hbwin/win_prn1.c
+ Added support to pass HDCs as numeric parameters
to all Harbour level functions.
This allows them to behave as generic Windows API wrappers,
and makes WIN_MULDIV(), WIN_RECTANGLE(), WIN_SETBKMODE()
fully compatible with parallel GTWVG implementations, so
duplicated can now be removed from there.
* source/rtl/net.c
* contrib/hbziparc/hbziparc.prg
* contrib/hbct/files.c
* Minor formatting.
* source/rtl/gtxwc/gtxwc.c
! Fix to recent fix. An '!' was missing, Przemek pls check me.
* source/rtl/philes.c
+ HB_PROGNAME() now returns absolute path in *NIX systems, too.
(please test and refine)
* source/lang/msgca.c
! Fixes from xhb.
* contrib/hbziparc/hbziparc.prg
* Minor correction ( = -> := )
* source/rtl/gtwin/gtwin.c
+ Added HB_GTI_CODEPAGE support.
As per MS docs, this works only when non-raster font is used
in the console window. Notice that the accepted CP values are
different from the GTWVT ones (GTWIN being the more "logical"
one, since it's a newer API). Currently, Harbour doesn't try
to hide these interface details.
; TODO: UNICODE and BOX char support for GTWIN mode.
* source/rtl/tbrowse.prg
* Using HB_DISPOUTATBOX() to draw column/header/footer separators.
; NOTE: This may cause problems if someone wants to use native
CP (accented or other special CP specific) chars to draw
these screen elements. Maybe an option should be added,
or some sort of markings in the separator strings to
control that.
Pls REVIEW.
* include/hbextern.ch
* source/rtl/console.c
+ Added HB_DISPOUTATBOX() which is similar to HB_DISPOUTAT(),
but marks the text drawn as HB_GT_ATTR_BOX, so these chars
can be properly displayed as drawing chars, regardless of
the selected codepage. Another difference is that this
function only supports strings to be printed. Other types
don't print anything.
; NOTE: Maybe this function could use a better name, pls
review and decide.
* source/rtl/gtwvt/gtwvt.c
* source/rtl/gtwvt/gtwvt.h
! Fixed not accepting zero as a HB_GTI_CODEPAGE value.
! Fixed HB_GTI_CODEPAGE to change the codepage.
+ Added box char support in Unicode mode.
For chars marked as HB_GT_ATTR_BOX, chars will be
mapped to Unicode according to CP437.
+ Added box char support in non-Unicode mode.
For chars marked as HB_GT_ATTR_BOX, OEM_CHARSET will
always be used.
; NOTE: This way it's possible to use ISO/WIN codepages with
GTWVT, while still being able to use various drawing
chars (lines, blocks, arrows).
; NOTE: The available set of drawing chars depends on the
OS OEM_CHARSET mapping _for non-Unicode Harbour_.
For Unicode Harbour, full CP437 codepage is
always available.
; NOTE: This solution doesn't go as far as (GTWXC) to
graphically draw / emulate these chars.
; TODO: Add HB_GTI_BOXCP support to change hard-wired "EN" CP.
* include/hbapigt.h
* include/hbgtcore.h
! Moved HB_GT_ATTR_* macros to public headers, because they
are needed for public API functions.
* contrib/hbwin/win_reg.prg
+ w32_regRead(): Added second parameter to specify the default
value returned in case the reg entry doesn't exist.
If not specified, NIL will be returned, just like before.
+ GetRegistry(): Added 4th parameter with same purpose as above.
* source/rtl/hbregex.c
* Minor opt.
* contrib/hbwin/win_misc.c
* Added command line option parameter to WIN_RUNDETACHED().
* include/hbapi.h
+ HB_ERRCODE (to replace ERRCODE)
+ HB_SUCCESS (to replace SUCCESS)
+ HB_FAILURE (to replace FAILURE)
+ contrib/hbwin/win_misc.c
* contrib/hbwin/common.mak
* contrib/hbwin/Makefile
+ WIN_SHELLEXECUTE()
WIN_RUNDETACHED()
WIN_LOADRESOURCE()
Added some new Windows API wrappers.
; TODO: Add hb_osEncode() to them.
* source/rtl/diskspac.c
* source/rtl/disksphb.c
! Fixed DISKSPACE() and HB_DISKSPACE() for Darwin.
Previously they had returned erroneous values.
; TOFIX: Probably HB_DISKSPACE() should be implemented for Watcom and CEGCC,
just like DISKSPACE() is.
* source/rtl/filesys.c
! hb_fsGetAttr() to set the returned attribute to zero
in case of error.
* include/hbextern.ch
* source/rtl/philes.c
+ HB_FSETATTR( <cFileName>, @<nAttr> ) -> <lSuccess>
+ HB_FGETATTR( <cFileName>, <nAttr> ) -> <lSuccess>
+ HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>] ) -> <lSuccess>
* source/rtl/direct.c
! Fixed DIRECTORY() when called with "V" (label) parameter.
Tested under Windows. Please test/correct for other platforms.
On Windows, the dirspec should not contain a filemask in order
to work.
* contrib/hbtip/base64x.c
% HB_BASE64(): Optimized, cleaned.
! HB_BASE64(): Removed second parameter allowing to pass the length of
the string. This could cause GPF if passed incorrectly. Now length
is simply determined using hb_parclen().
; TOFIX: Input string size limit checking.
* include/hbdefs.h
+ HB_SIZEOFARRAY() macro, which does: ( sizeof( var ) / sizeof( *var ) )
To be really precise, f.e. all hb_strncpy() calls should use
'hb_strncpy( d, s, HB_SIZEOFARRAY( d ) );' instead of:
'hb_strncpy( d, s, sizeof( d ) );' (given that 'd' is allocated at compile time).
So that the code adapts to changing character sizes (like UTF-16/32).
It's useful in some other places, too.
* contrib/hbct/dattime2.c
* 0 -> FALSE for BOOL types.
* include/hbextern.ch
* source/rtl/strmatch.c
+ HB_WILDMATCHI(). Case-instenstive, exact match. First
two parameters and return value are the same as for
HB_WILDMATCH().
* include/hbextern.ch
* source/rtl/cdpapi.c
+ HB_CDPSELECT() which does the same as HB_SETCODEPAGE(), but
aligns well with function naming rules and namespace.
HB_SETCODEPAGE() still works, but usage is not recommended.
+ Added HB_CDPUNIID( <cHarbourCP> ) -> <cCPName>
This will return the std CP ID of a Harbour CP, or empty
if the Harbour CP isn't linked.
* include/hbapi.h
* source/rtl/is.c
! Fixed compile error when HB_CDP_SUPPORT_OFF is defined.
+ Added following functions:
hb_charIsDigit()
hb_charIsAlpha()
hb_charIsLower()
hb_charIsUpper()
* include/hbapi.h
- hb_strUpperCopy() removed. Implementation was missing.
* source/rtl/strcase.c
* Minor formatting.
* source/rtl/filesys.c
! hb_fsCurDirBuff() fixed potential buffer overrun by one byte.
* source/rtl/hbrunfun.c
* source/rtl/run.c
! Fixed missing header hbapiitm.h (after previous local change).
* include/hbapi.h
* include/hbset.h
* include/hbapifs.h
* include/set.ch
* source/rtl/hbffind.c
* source/rtl/gete.c
* source/rtl/filesys.c
* source/rtl/hbrunfun.c
* source/rtl/run.c
* source/rtl/philes.c
* source/vm/set.c
* source/vm/cmdarg.c
+ Added file system CP translation.
Set( _SET_FNAMECP[, <cCPID> ] ) -> <cOldCPID>
All operations passing filenames to/from the
OS will convert them to/from the host CP from/to
the FS CP specified using _SET_FNAMECP.
* hb_fsNameConv() extended to deal with CP
conversion, if requested by the app.
+ hb_fsNameConvFrom() (exported) added to deal
with CP conversions for filenames received from OS.
+ hb_fsNameConvTo() (exported) added to deal
with CP conversions for filenames/string sent to the OS.
+ Added hb_setGetFNAMECP() (exported) function.
+ Added hb_setGetFileCPTransTo(), hb_setGetFileCPTransFrom()
(non-exported) functions.
+ hb_fsCurDirBuff() and hb_fsFindNextLow() extended
to use hb_fsNameConvFrom().
+ Added hb_fsBaseDirBuff() to return the base
directory on the C level (based on argv[0]).
+ Added HB_PROGNAME() to return the executable
program name (based on argv[0]).
+ Added HB_DIRBASE() to return the executable
base directory (based on argv[0]).
* Renames done regarding OS/FS CP conversion:
hb_fsNameConvFrom() -> hb_osDecode()
hb_fsNameConvTo() -> hb_osEncode()
hb_setGetFileCPTransTo() -> -
hb_setGetFileCPTransFrom() -> -
hb_setGetFNAMECP() -> hb_setGetOSCODEPAGE()
_SET_FNAMECP -> _SET_OSCODEPAGE
* hb_osDecode()/hb_osEncode() extended to have a second
parameter BOOL * fFree.
Changed all calls to handle the case when fFree is set
to TRUE by hb_osDecode()/hb_osEncode().
+ HB_GETENV(): Added 3rd logical parameter to control wether
to convert the returned value from OS CP to Harbour CP.
The default is TRUE to be in sync with GETE[NV]() and the
rest of core.
* hb_fsNameConv() is now doing OS CP conversion using std APIs,
rather than duplicating such logic. I've traded some speed
for modularity.
* hb_osDecode/hb_osEncode() function declarations moved to hbapi.h
* hb_osDecode/hb_osEncode() function definitions moved to set.c
; NOTE: None of these were extensively tested, and I tend
to make mistakes when dealing with pointers.
It compiles cleanly with BCC, and some basic tests
worked, but bFree = TRUE codepaths are not yet
working so this needs more review.
* source/rtl/teditor.prg
* source/rtl/tpersist.prg
* utils/hbmake/hbmake.prg
* MemoRead() -> hb_MemoRead()
* contrib/hbct/files.c
; TOFIX: Many functions here are possibly not thread safe.
; TOFIX: Calling hb_fsFindClose() at app exit (and thus keeping
the FF handles open for the whole app lifetime) doesn't
play well with server side apps (as the app may run for
months or even longer), and even worse, they
will lock the passed directory so that they cannot be
removed (maybe even renamed), until the app exists.
At least on Windows.
* source/rtl/dirdrive.c
! Fixed to use F_ERROR instead of -1.
* include/hbextern.ch
! Added missing HB_GCSTEP().
* source/vm/extrap.c
+ Added CPU dump code for Windows x64.
+ Enabled module listing for Windows 64-bit platforms.
% Minor cleanup in Windows x86 CPU dump code.
+ Added TODO for Windows IA64 CPU dump.
+ Added TODO for Windows x64 stack walk, with pointers.
+ Added TOFIX regarding displaying module names in Windows x64 mode.
* source/rtl/fstemp.c
! Minor formatting.
* source/rtl/gete.c
* source/rtl/run.c
* source/rtl/hbrunfun.c
* source/vm/cmdarg.c
+ Added CP conversion to:
GETE[NV](), HB_GETENV(), __RUN(), HB_RUN(),
HB_ARGSTRING(), HB_CMDLINE().
; TODO: dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, <cDelimArg>, <nConnection> ) -> <lSuccess>
Generates and opens a new dbf with a temporary filename
in exclusive mode, deletes it automatically when closed.
All indexes created for this table, should ideally have
the temporary flag on, so those get deleted too, when closed.
; TOFIX: hb_regex*() functions will not honor Harbour CP setting,
when case insensitivity is selected.
; TOFIX: hbct / SetFDaTi() to move any local logic into Harbour core
functions and use a simple Harbour API call only.
I'm not sure what is the reason with keeping the logic
duplicated here; if this isn't by intent, this function
could be much simplified.
; TOFIX: Avoid using C level toupper()/tolower()/islower()/isupper()
; TOFIX: hb_regexMatch()'s 3rd parameter has a double meaning.
It controls case-sensitivity (in sync with the documentation),
but it also controls if hb_regexMatch() behaves like
hb_regexLike() (.T.), or hb_regexHas() (.F.). This means
that hb_regexMatch(,, .T.) == hb_regexLike(,, .T.) (case-sensitive) and
hb_regexMatch(,, .F.) == hb_regexHas(,, .F.) (case-insensitive)
Maybe this was the intent of the original developers, but
to me it looks a rather strange behaviour which was added by
accidentally forgetting about the 3rd parameter already being
utilized. This either needs to be fixed, or properly documented.
; NOTE: Noteworthy links:
http://docs.python.org/3.0/whatsnew/3.0.html
- Unicode/text section
- Removed <> (use != instead)
http://sphinx.pocoo.org/
- Documentation format
http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
- Character encoding detection
* contrib/hbcurl/common.mak
* contrib/hbcurl/Makefile
* contrib/hbcurl/hbcurl.c
+ contrib/hbcurl/hbcurlm.c
+ Some disabled (not mainstream) functions moved to
a separate file.
* contrib/hbwin/win_prn2.c
* Minor fix in comment.
* tests/longstr.prg
* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/hbgd/gdbarcod.prg
* contrib/hbgd/gdbar.prg
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* contrib/hbvpdf/hbvpdf.prg
* contrib/examples/hbsqlit2/tests/hbsqlite.prg
* contrib/examples/hbsqlit2/TODO.txt
* contrib/examples/hbsqlit2/hbsqlit2.c
* source/debug/dbgwa.prg
* source/rtl/gtwin/gtwin.c
* source/rtl/tget.prg
* source/rtl/tgetint.prg
* source/compiler/gencobj.c
! Removed high chars from comments. This usually means
copyright holders' names. I apologize for touching
them, I also have one in mine, but it's better to
not use them in source code to avoid encoding problems.
* ChangeLog
! Restored last non-UNICODE version, and readded
all entries and reapplied all changes since then.
; NOTE: Please never save any Harbour files in
UNICODE mode. Thank you.
* contrib/make_gcc_all.sh
* contrib/Makefile
- Removed hbdbgfx.
* source/pp/hbpp.c
* source/main/harbour.c
* Excluded hbwmain for __POCC__ WinCE.
; TOFIX: Warning: Not proper fix.
This way it won't link but at least it compiles.
* source/compiler/gencc.c
* Switched to hexadecimal format for high chars, because
octal was tried to be converted to Windows codepage, by
PellesC.
* config/w32/poccce.cf
- Removed -DSTRSAFE_NO_DEPRECATE switch.
* config/w32/pocc.cf
+ Added -MT switch.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_dll.c
* source/rtl/hbhex.c
* source/rdd/hbsix/sxcompat.prg
* Minor formatting.
* harbour/contrib/hbwin/win_tole.prg
! Fixed assignment to oErr:Operation from "+" to "-" in
OleValueMinus() method - fix by Luis Krause Mantilla borrowed
from xHarbour
* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* OLESHOWEXCEPTION() implemented on the .prg level, using
Alert() rather than MessageBox().
! All MessageBox()es converted to Alert()s.
+ Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION()
to hbole.
* source/vm/maindllp.c
! Changed MessageBox() call to internal error.
* contrib/gtwvg/gtwvg.c
* source/rtl/gtwvt/gtwvt.c
! Changed MessageBox() calls to internal error.
* contrib/gtwvg/gtwvg.c
* Internal error calls synced with GTWVT.
* source/rtl/hbgtcore.c
- Removed "Internal error" text from two internal error descriptions.
* make_vc.mak
- Removed reference to MessageBox() from comment.
; NOTE: No more MessageBox() calls in Harbour.
(except some wrappers for user .prg code)
* harbour/include/hbstack.h
% enable assembler inline function to access HVM thread stack pointer
without native compiler TLS support even if HB_STACK_PRELOAD is not
defined in MinGW builds. It gives some additional small speed
improvement in MT mode
* harbour/source/rtl/idle.c
* unlock HVM inside hb_releaseCPU() function
* harbour/contrib/hbwin/win_ole.c
! fixed casting and C++ compilation in some compilers
* harbour/include/Makefile
+ harbour/contrib/examples/rdddbt/hbrdddbt.h
- harbour/include/hbrdddbt.h
! moved hbrdddbt.h to correct location
* harbour/include/Makefile
! added missinf hbthread.h
* harbour/tests/rddtest/rddmktst.prg
* harbour/tests/rddtest/adscl52.prg
* harbour/tests/rddtest/adscl53.prg
* harbour/tests/rddtest/ntxcl52.prg
* harbour/tests/rddtest/ntxcl53.prg
* harbour/tests/rddtest/cdxcl52.prg
* harbour/tests/rddtest/rddtst.prg
* harbour/tests/rddtest/cdxcl53.prg
! fixed description in header I wrongly copied without updating
from other files
+ harbour/tests/hsxtest.prg
+ added test code for HiPer-SEEK indexes
* harbour/source/rtl/filesys.c
+ added new functions: hb_fsExtName(), hb_fsReadAt(), hb_fsWriteAt(),
hb_fsTruncAt() to use with shared file handles.
Please test it in other *nixes. I used pread[64]()/pwrite[64]()
POSIX functions but I do not know if they are available by default
in other supported platforms like MacOSX, BSD, HPUX, SunOS.
If not they I will have to implement some workaround.
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbapifs.h
+ harbour/source/rtl/filebuf.c
+ added set of new file functions (hb_file*()) which are designed to
use with shared file handles and locks (buffers in the future):
hb_fileExtOpen(), hb_fileCreateTemp(), hb_fileClose(), hb_fileLock(),
hb_fileReadAt(), hb_fileWriteAt(), hb_fileTruncAt(), hb_fileSize(),
hb_fileCommit(), hb_fileHandle()
These functions operate on PHB_FILE structure instead of HB_FHANDLE.
Now in POSIX systems they share file handle between aliased or
simultaneously open by other thread work areas. It resolves the
problem with releasing all process FCNTL locks by any close()
operation even on duplicated or open() separately handle.
Now DOS deny flags emulation works in single process even if
BSD locks are disabled (non Linux *nixes).
They also keep internal file lock list what allows to synchronize
threads and aliases with file locks in POSIX systems. In the future
it will be used also for internal locking to synchronize threads
without OS level locks - pseudo exclusive mode in cloned WA.
Finally these structures will be used also for file buffers
which will be shared between aliased WA and threads.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/include/hbrdddel.h
* harbour/include/hbrddsdf.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/hsx/hsx.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbbmcdx/hbbmcdx.h
* use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
to access files.
+ harbour/tests/aliaslck.prg
+ added test code for file lock synchronization between aliased
work areas
* contrib/hbfbird/firebird.c
! Added ugly hack to make it compile with Firebird 2.1.1
and BCC 5.8.2 (and upper).
This way all Win32/Win64 builds are now supporting
this newer version of Firebird. DOS still needs 2.0.4.
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
+ Added support for optional License Key.
Borrowed from xhb/Ron Pinkas.
(untested)
* harbour/include/Makefile
+ harbour/include/hbvmint.h
+ added new header file which works like hbvmopt.h but does not enable
stack macros
* harbour/contrib/xhb/xhbenum.c
* harbour/contrib/xhb/xhbqself.c
* harbour/contrib/xhb/xhbwith.c
* harbour/contrib/xhb/cstructc.c
* harbour/contrib/hbwin/win_ole.c
! use hbvmint.h instead of hbvmopt.h to eliminate direct bindings to
HVM stack structure