* 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
* include/hbclass.ch
* include/hbcomp.ch
* include/hberrors.h
* include/hbgenerr.c
* include/hbmain.c
* include/hbopt.c
+ PCode optimizations:
1) Self := QSELF(), Self:method -> QSELF():method
2) Declared, but unused variables are removed from code
These optimizations are enabled if jump optimizations are enabled.
+ added recursive pcode tree tracer. It is capable to generate new
warning: Variable %s is assigned, but not used.
Warning is not generated in these cases:
1) unoptimal Self := QSELF() pcode [generated by preprocessor rules]
2) if variable name starts with '_nowarn_'. This allows to
suppress warning in case unoptimal pcode is generated by
preprocessor rules
3) assigned value is NIL. This let us force garbage collection
using oVar := NIL
Warning has warning level 3.
; NOTE: if you are using -w3 -es2 in makefiles, you'll need to fix your
redundant code to compile the project
* source/rtl/achoice.prg
* source/rtl/browse.prg
* source/rtl/tbrowse.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tlabel.prg
* source/rtl/tmenusys.prg
* source/rtl/tpersist.prg
* source/rtl/treport.prg
* source/debug/dbgtmenu.prg
* source/debug/debugger.prg
* source/debug/dbgtobj.prg
* fixed 'assigned but not used' warnings
* utils/hbdoc/hbdoc.prg
* utils/hbdoc/genasc.prg
* utils/hbdoc/genhpc.prg
* utils/hbdoc/genhtm.prg
* utils/hbdoc/genchm.prg
* utils/hbdoc/genng.prg
* utils/hbdoc/genos2.prg
* utils/hbdoc/genrtf.prg
* utils/hbdoc/gentrf.prg
* utils/hbdoc/ft_funcs.prg
* utils/hbmake/hbmake.prg
* #pragma -w2
; NOTE: I've been fixing warnings in utils/hbdoc/* for 2 hours,
but only fixed half of files. There are a lot of garbage code here.
I do not thing this code is working...
I used fallback method: restored original files and used -w2
; NOTE: hbmake.prg has about 140 unused assignments.
I've also fallback to -w2, because some of unused code is complex,
ex., ASCAN() with block parameters. I'm not using hbmake, and I'm
affraid to break something important.
* compiler/hbpcode.c
- removed Ron's copyright on hb_compStrongType(). We do not have this
functions in the compiler at all. I guess this text is just a result
of .c header copy-paste from xHarbour's hbstrong.c some time ago.
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/bld_vc.bat
* utils/hbdoc/bld_b32.bat
* utils/hbdoc/bld_vc.bat
* utils/hbmake/bld_b32.bat
* utils/hbmake/bld_vc.bat
* Minor cleanups.
; NOTE: Win9x support for BCC files is now dropped.
* common.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
+ Made -gc3 switch the default. This will result in
noticeably faster .prg code execution at the cost of
a slightly bigger executable. Speaking of the core,
this can result at maximum 250K of extra executable
size increase, if the final executable uses _all_
core .prg functions. Usually though it's much lower
than that, especially for GUI programs, since the
majority of core .prg code deals with CUI elements,
like TBrowse(), TGet(), 5.3 compatible CUI controls,
.frm and .lbl support, MemoEdit().
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/bld_vc.bat
* utils/hbdoc/bld_vc.bat
* utils/hbdoc/bld_b32.bat
* utils/hbmake/bld_b32.bat
* utils/hbmake/bld_vc.bat
+ Added -l Harbour switch.
* include/hbthread.h
% Disabled HB_USE_TLS for __BORLAND__ and __MINGW32__ for
best performance.
* contrib/hbwhat/whtmmcap.c
! Fixed some warnings under certain MinGW 4.3.2
installations.
TODO: hbwhat users pls finish this fix.
* utils/hbmake/hbmake.prg
! Fixed hbw32 to hbwin.
* Win32 references changed to Windows.
* make_gcc.sh
* Not accepting CFLAGS anymore as custom C flags envvar.
Pls use C_USR instead.
* make_gcc.mak
+ Added wsock32 lib to Cygwin system liblist.
! Removed setting HB_OS_* macros explicitly.
* make_b32.mak
* make_vc.mak
* Minor formatting.
* make_rpm.sh
! Attempt to detect libcurl.
[TOMERGE 1.0]
* contrib/hbziparc/hbziparc.prg
* contrib/hbwin/win_tole.prg
* contrib/hbvpdf/hbvpdf.prg
* Some STATIC vars converted to THREAD STATIC.
* aReport renamed to s_aReport.
(is it a good idea to name 'ts_name' THREAD STATIC
vars?)
* utils/hbmake/hbmake.prg
! Patch by Bill Robertson applied.
This should eliminate any messing with harbour.cfg.
* debian/changelog
* Synced with 1.0.1.
* source/pp/ppcore.c
! Minor typo in one PP error message. (sync 1.0.1)
* Cleaned ":" from all PP error/warning messages to be
friendly with Eclipse.
* source/compiler/hbgenerr.c
* Cleaned some more ":" chars from compiler error/warning
messages to be friendly with Eclipse.
; NOTE: Few more still remain. If you have an idea how to rephrase these, pls tell:
"Bound error: '%s'"
"Syntax error: '%s'"
"Syntax error: \"%s at '%s'\""
"Invalid lvalue: '%s'"
"Invalid use of '@' (pass by reference): '%s'"
"3Incompatible type in assignment to declared array element expected: '%s'"
"4Suspicious type in assignment to declared array element expected: '%s'"
* utils/hbmake/hbmake.prg
* Updated by large patch from Bill Robertson.
Adds several enhancements, fixes and optimizations
to the previous version.
* utils/hbdoc/hbdoc.prg
* utils/hbmake/hbmake.prg
* utils/hbrun/hbrun.prg
* Changed the way version number is shown.
* utils/hbmake/hbmake.prg
* Updated MT lib lists. (untested)
* make_b32.mak
* Minor sync with make_vc.mak.
* make_vc.mak
* Attempt to implement hbvmmt.lib just like in
make_b32.mak to make them synced.
2008-09-14 11:14 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtalleg/ssf.h
! Fixed to compile with Cygwin.
* contrib/hbwhat/whtsock.c
! Fixed for PellesC 4.5 where the inclusion order of
Windows headers needs to be the opposite of what 5.0 needs.
* contrib/hbwhat/whtilst.c
! Fixed to compile with Cygwin.
* contrib/hbwhat/whtinet.c
! Added missing Windows macro for Cygwin.
! Fixed three warnings with Cygwin.
* contrib/hbwhat/whtseria.c
* contrib/hbwhat/whtreg.c
* contrib/hbwhat/whtini.c
! Removed #include "tchar.h", because it's unnecessary,
and breaks Cygwin.
* contrib/hbwhat/whtsys.c
! Removed #include "htmlhelp.h", because it's unnecessary,
and breaks Cygwin.
2008-09-13 19:30 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtalleg/ssf.h
! Turned off ASM for MSVC AMD64 mode.
* contrib/gtalleg/Makefile
! Disabled for OpenWatcom. (maybe compilation could be
fixed somehow, if someone is interested pls look into it.)
* doc/whatsnew.txt
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
! Fixed for OpenWatcom.
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
! Silenced some MinGW/PelleC cast warnings.
* contrib/hbw32/win_prt.c
! Fixed GCC (MinGW/Cygwin) warnings. The solution I choose is
pretty ugly, if someone knows the right one, please help.
Warning was:
../../win_prt.c:70: warning: missing initializer
../../win_prt.c:70: warning: (near initialization for `s_PortData[0].OldDCB')
! Fixed few remaining warnings / minor bugs.
* contrib/hbwhat/whtlv.c
* contrib/hbwhat/whtcomm.c
* contrib/hbwhat/whttab.c
* contrib/hbwhat/whttree.c
! Silenced MinGW 4.12 warnings.
* contrib/hbwhat/whtdate.c
! Removed #include "tchar.h", which seems unnecessary and
fixed Cygwin compilation.
* contrib/hbwhat/whtsock.c
! Changed #include order of Windows headers to satisfy PellesC 5.
; TOFIX1: hbct / SETFDATI() has a possible bug here (shown in PelleC 64 bit):
../../files.c(264): warning #2006: [ISO] Conversion from 'void *' to 'int' is compiler dependent.
../../files.c(264): warning #2052: Conversion from 'void *' to 'int' is undefined.
Problem is with HFILE / HANDLE conversion.
; TOFIX2: Here are some remaining 64-bit problems:
../../hb_btree.c(643): warning #2006: [ISO] Conversion from 'void *' to 'unsigned long int' is compiler dependent.
../../hb_btree.c(643): warning #2052: Conversion from 'void *' to 'unsigned long int' is undefined.
../../hb_btree.c(739): warning #2006: [ISO] Conversion from 'ioBuffer_T *' to 'unsigned long int' is compiler dependent.
../../hb_btree.c(739): warning #2052: Conversion from 'ioBuffer_T *' to 'unsigned long int' is undefined.
../../win_dll.c(511): warning #2006: [ISO] Conversion from 'void *' to 'unsigned long int' is compiler dependent.
../../win_dll.c(511): warning #2052: Conversion from 'void *' to 'unsigned long int' is undefined.
../../win_ole.c(761): warning #2006: [ISO] Conversion from 'LPDISPATCH' to 'long int' is compiler dependent.
../../win_ole.c(761): warning #2052: Conversion from 'LPDISPATCH' to 'long int' is undefined.
../../win_ole.c(1091): warning #2006: [ISO] Conversion from 'LPDISPATCH' to 'long int' is compiler dependent.
../../win_ole.c(1091): warning #2052: Conversion from 'LPDISPATCH' to 'long int' is undefined.
../../win_ole.c(1425): warning #2006: [ISO] Conversion from 'void *' to 'long int' is compiler dependent.
../../win_ole.c(1425): warning #2052: Conversion from 'void *' to 'long int' is undefined.
../../win_ole.c(1478): warning #2006: [ISO] Conversion from 'void *' to 'long int' is compiler dependent.
../../win_ole.c(1478): warning #2052: Conversion from 'void *' to 'long int' is undefined.
../../win_regc.c(94): warning #2006: [ISO] Conversion from 'HKEY' to 'unsigned long int' is compiler dependent.
../../win_regc.c(94): warning #2052: Conversion from 'HKEY' to 'unsigned long int' is undefined.
../../win_regc.c(116): warning #2006: [ISO] Conversion from 'HKEY' to 'unsigned long int' is compiler dependent.
../../win_regc.c(116): warning #2052: Conversion from 'HKEY' to 'unsigned long int' is undefined.
2008-09-13 13:34 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* doc/dirstruc.txt
* Updated.
- contrib/hbgf/hbgfw32
+ contrib/hbgf/hbgfwin
* contrib/hbgf/tests/bld_b32.bat
* contrib/hbgf/tests/bld_vc.bat
* contrib/hbgf/Makefile
* contrib/hbgf/hbgfwin/common.mak
* contrib/hbgf/hbgfwin/button.prg
* contrib/hbgf/hbgfwin/winctrl.prg
* contrib/hbgf/hbgfwin/form.prg
* contrib/hbgf/hbgfwin/menuitem.prg
* contrib/hbgf/hbgfwin/menu.prg
* contrib/hbgf/hbgfwin/edit.prg
* contrib/hbgf/hbgfwin/Makefile
- contrib/hbgf/hbgfwin/win32.c
+ contrib/hbgf/hbgfwin/winapi.c
- contrib/hbgf/hbgfwin/hbgfw32.ch
+ contrib/hbgf/hbgfwin/hbgfwin.ch
* Removed some '32's.
2008-09-13 12:28 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* doc/whatsnew.txt
* Updated.
2008-09-13 12:28 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbw32/Makefile
* contrib/hbw32/common.mak
* contrib/hbw32/hbw32.ch
+ contrib/hbw32/hbwin.h
+ contrib/hbw32/win_prt.c
+ contrib/hbw32/win_tprt.prg
+ contrib/hbw32/tests/testprt1.prg
+ contrib/hbw32/tests/testprt2.prg
+ Added Windows COM port handling functions.
Contributed by Alex Strickland.
; I did some changes to clean warnings, few 64-bit issues,
changed to use safe string functions, integrated
the header into hbw32.ch, added a new general C level
header, split BEGINDUMP into separate .c function,
changed to ANSI C comments, marked statics with s_,
fixed a few trashed string buffers and leaks in some
error cases. Separated tests into distinct .prgs.
Fixed for UNICODE mode. Minor optimizations, formatting.
; TODO: Test WinCE build.
; Please test, I don't have any COM ports on my system.
2008-09-13 10:28 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgutils.c
! Fixed 64-bit problems.
; Pritpal, could you please review and test these changes?
2008-09-13 09:37 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbvpdf/hbvpdf.prg
! Generic support functions made STATIC to avoid collision
with similarly named functions in other libs (like hbct).
* contrib/hbvpdf/hbvpdf.prg
* contrib/hbvpdf/hbvpdft.prg
* Using hb_run() instead of RUN and __run().
2008-09-12 19:30 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtalleg/Makefile
* Excluded Cygwin.
* contrib/hbwhat/Makefile
* contrib/hbwhat/common.mak
- contrib/hbwhat/whtdll.c
- contrib/hbwhat/whtcall.c
- Removed DLL related stuff from hbwhat, since we're
maintaining (a better working) one already in hbw32,
and hbwhat by itself doesn't seem to need this
functionality internally. Users should migrate to
the hbw32 functions, which work mostly similarly.
2008-09-12 19:08 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* doc/whatsnew.txt
* Added some build notes.
* contrib/gtalleg/Makefile
! Fixed POCC, XCC compiler exlusions.
* Excluded DMC compiler.
* contrib/hbwhat/Makefile
* Excluded DMC compiler.
* contrib/hbwhat/wincorec.c
! Workaround for a wrong Windows API declaration in
__DMC__ headers.
2008-09-12 11:01 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/tests/bld_vc.bat
* contrib/hbw32/tests/bld_vc.bat
! Added missing system libs.
2008-09-12 04:03 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtwvg/wvgutils.c
! Fix to previous fix, so it works again in 64-bit builds.
hb_retclen( ( LPSTR ) pdlgtemplate, ( ( ULONG ) p - ( ULONG ) pdlgtemplate ) ) ; =>
hb_retclen( ( LPSTR ) pdlgtemplate, ( ( HB_PTRDIFF ) p - ( HB_PTRDIFF ) pdlgtemplate ) ) ;
; This way it's now in sync with similar function in hbwhat.
2008-09-12 01:14 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rdd/usrrdd/rdds/Makefile
+ source/rdd/usrrdd/rdds/arrayrdd.prg
+ source/rdd/usrrdd/rdds/vfpcdx.prg
+ Added two usrrdd based RDDs. Borrowed from xhb.
Works of: Francesco Saverio Giudice and
Miguel Angel Marchuet Frutos
; These were adapted to compile and link in Harbour, but
I did no tests, so some more - hopefully minor - changes
may happen to be needed.
2008-09-12 00:53 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/rddado/adordd.prg
* contrib/rddado/adordd.ch
* Merged changes from xhb.
Some hbusrrdd.ch values seem to be missing from Harbour,
related features will be automatically enabled if we
implement them in our usrrdd.
Please test.
2008-09-11 22:55 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* doc/whatsnew.txt
* source/vm/cmdarg.c
* Legacy undocumented symbols hb_hInstance and
hb_hPrevInstance reenabled for 1.0.1, when HB_LEGACY_LEVEL
is #defined. This is the default in 1.0.x. It will be
turned off in 1.1.0.
I did this to not break binary compatibility of 1.0.1
with 1.0.0 for those apps that rely on these symbols
(like gtwvg).
2008-09-11 21:29 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtwvg/tests/bld_vc.bat
! Added required list of system libs.
2008-09-11 14:08 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtpca/gtpca.c
* source/rtl/gtwin/gtwin.c
* source/rtl/gtwvt/gtwvt.c
* source/rtl/gttone.c
! Fixed some core MSVC -W4 warnings.
* contrib/hbnf/getenvrn.c
! Fixed compile problem in MSVC C++ mode surfaced after
recent UNICODE fix.
2008-09-11 13:13 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtwvg/wvgutils.c
! Fixed last MSVC -W4 warnings.
; NOTE: Only these contribs have remaining -W4 warnings:
hbbmcdx, hbbtree, hbct (in screen*.c).
Plus core.
2008-09-11 12:00 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbnf/fttext.c
* contrib/hbwhat/whtdate.c
* contrib/hbwhat/wincorec.c
* contrib/hbwhat/whtsock.c
* contrib/hbwhat/whtseria.c
* contrib/hbwhat/whtdlg.c
* contrib/hbwhat/whtsys.c
* contrib/hbwhat/whtmisc.c
* contrib/hbwhat/whtcdlg.c
! Fixed all MinGW 4.3x warnings.
! Added workaround for slightly wrong MinGW definition for
Windows DateTime_GetMonthCal() macro.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
! Fixed all MSVC -W4 warnings.
* contrib/gtwvg/gtwvg.h
! Fixed old bug, which surfaced after recently
fixing __MINGW__ to __MINGW32__.
Apparently, comctl32.h is never needed here.
* config/rules.cf
* contrib/hbbtree/tests/bld_djgp.bat
% Removed -gc0. Now default.
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* Minor formatting.
* contrib/hbgt/asciisgt.c
* utils/hbdoc/hbdoc.prg
- Removed unnecessary version strings. This was good
in CVS times, but for SVN there is not much point.
* utils/hbmake/hbmake.prg
+ Another patch session from Bill Robertson.
Besides some further cleanups, this should fix
some problems with the previous version.
* source/lang/msghuiso.c
* source/lang/msgskiso.c
* source/lang/msgrukoi.c
* source/lang/msghuwin.c
* source/lang/msgzhgb.c
* source/lang/msgskwin.c
* source/lang/msg_tpl.c
* source/lang/msgruwin.c
* source/lang/msgelwin.c
* source/lang/msgro.c
* source/lang/msgpt.c
* source/lang/msghriso.c
* source/lang/msghrwin.c
* source/lang/msgsliso.c
* source/lang/msgbe866.c
* source/lang/msgslwin.c
* source/lang/msghe862.c
* source/lang/msgcskam.c
* source/lang/msggl.c
* source/lang/msgtrwin.c
* source/lang/msgeo.c
* source/lang/msgbgiso.c
* source/lang/msgbgwin.c
* source/lang/msgskkam.c
* source/lang/msges.c
* source/lang/msguakoi.c
* source/lang/msgzhb5.c
* source/lang/msgeu.c
* source/lang/msgpl852.c
* source/lang/msgsr852.c
* source/lang/msguawin.c
* source/lang/msgde.c
* source/lang/msgtr857.c
* source/lang/msgru866.c
* source/lang/msgcs852.c
* source/lang/msgfr.c
* source/lang/msgis850.c
* source/lang/msgnl.c
* source/lang/msghu852.c
* source/lang/msgsk852.c
* source/lang/msgca.c
* source/lang/msgplmaz.c
* source/lang/msgpliso.c
* source/lang/msgplwin.c
* source/lang/msgbgmik.c
* source/lang/msgid.c
* source/lang/msgbg866.c
* source/lang/msgltwin.c
* source/lang/msgsriso.c
* source/lang/msgel.c
* source/lang/msgsrwin.c
* source/lang/msgbewin.c
* source/lang/msgdewin.c
* source/lang/msghr437.c
* source/lang/msghr852.c
* source/lang/msgko.c
* source/lang/msgua866.c
* source/lang/msghewin.c
* source/lang/msgit.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msghucwi.c
* source/lang/msgcsiso.c
* source/lang/msgcswin.c
* source/lang/msgeswin.c
* source/rtl/langapi.c
- Cleared unnecessary version strings. This was good
in CVS times, but for SVN there is not much point.
* doc/whatsnew.txt
+ Updated.
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
- contrib/hbwhat32
+ contrib/hbwhat
* Renamed to not contain '32'.
; NOTE: I plan to do this with a couple of other
names too in the future.
* contrib/hbwhat/Makefile
* contrib/hbwhat/common.mak
- contrib/hbwhat/what32.ch
+ contrib/hbwhat/hbwhat.ch
* Renamed what32.ch to not contain '32' (and added
hb for consistency if it got renamed anyway).
* utils/hbmake/hbmake.prg
* Updated by Bill Robertson to fix too many things to
mention here. (cleaned up lots of stuff, using hb_run()s
return values, cleaned to not call main() function
recursively (!), display output cleanups, etcetc)
* hbwhat32, hbziparch lib name changes.
* contrib/examples/pp/hbppcore.c
* contrib/examples/pp/hbppcomp.c
* contrib/rddads/ads1.c
* source/pp/ppcore.c
* source/vm/asort.c
* source/vm/hvm.c
* source/rtl/disksphb.c
* source/rdd/dbfntx/dbfntx1.c
* source/rdd/workarea.c
* contrib/hbct/screen2.c
* contrib/hbct/token2.c
* while( TRUE ) -> for( ;; )
* do {} while( TRUE ) -> for( ;; ) {}
; To avoid warnings about conditions being constant.
* utils/hbmake/hbmake.prg
; Applied patch by Bill Robertson:
! Fixed previously introduced (by me actually) bug. Thanks.
% Removed "non-extended" codepath, since it was never used.
! UI elements fixed to properly accomodate to any
screen dimensions.
* utils/hbmake/hbmake.prg
! Fixed to not change casing of files, plus a few other minor fixes.
! Made one filename comparison multiplatform by using hb_FileMatch()
; Added TOFIXes where filename comparison is not multiplatform.
% Removed some dead or commented code.
* contrib/hbziparch/hbziparc.h
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbziparch/hbxdirec.c
% Cleanups: Unused headers, types, one #define,
one BCC582 warning, one Linux/GCC/MinGW #ifdef oddness.
; NOTE: Need to test this on Linux.
* utils/hbmake/hbmake.prg
; Applied cleanup and fix patch from Bill Robertson:
! LIBFILES -> HBLIBS
EXTERNLIB -> CONTRIBLIB
EXTLIBFILES -> CONTRIBLIBS
* ALLLIB = $(USERLIBS) $(LIBFILES) ... ->
ALLLIB = $(USERLIBS) $(CONTRIBLIBS) $(HBLIBS) ...
% Removed CONTRIBLIB = YES from makefile output as it did nothing.
% Combined two ShowHelp() secs into one and put together
with ShowCredits() at top of program.
% Simplied Flag checks somewhat but it's still awkward. I fixed
a mingw bug where a flag was set to .t. in one place and .f.
later because of inconsistent use of letters, capitals/lower, etc.
Still lots of checking for lower(...), upper(...), etc. of the
command-line params.
* Changed Help screen to reflect current program options better.
* Made some alert message a little clearer and minor formatting.
! Initalized s_nMakeFileHandle to F_ERROR and reset it to F_ERROR
whenever the file was closed. Didn't seem to be a current problem,
just good practice.
* utils/hbmake/hbmake.prg
* Removed separate /credits switch and added content to
main help screen.
% Removed a few CLS commands from command-line orientated
places.
% Removed -elx and -ex from help screen (as these are the
same as -el and -e). They are still accepted though.
* source/compiler/hbusage.c
+ Added Bill Robertson to credits list.
* utils/hbmake/hbmake.prg
; Applied patch created by Bill Robertson:
* The following functions aren't used in hbmake and were removed:
FindCfile(), TestforPrg(), AsDll(), ExtenPrg(), GetMakeDir()
* ChangeLog
! Minor typo.
* utils/hbmake/hbmake.prg
% Minor cleanup.
* source/common/hbver.c
* Further cleanup of constant usage.
+ Changed Borland to CodeGear to BCC5.9 and above.
(borrowed from xhb / Andi Jahja)
* config/w32/gcc.cf
* config/w32/dm.cf
* contrib syslibs moved to separate lines.
* utils/hbmake/hbmake.prg
; Applied patches made by Bill Robertson. (Thanks!)
% Removed Function C( STRING ) as it was only used in the function,
Attention(), to center a line on the screen.
% Removed Static Function IsWin() since it wasn't being used.
! Replace all remaining calls to hb_OSNewLine() with s_cEOL.
! Changed some calls from OutStd() to OutErr() since they were
essentially errors mesages.
% Replaced some long series of FWrite()s with a single FWrite()
where convientent so I could see what was being written to
the makefile easier.
! Replaced some comparisons from '=' to '=='.
* source/common/hbver.c
* hb_verCompiler() buffer size cleanup.
* source/rtl/hbinet.c
* Minor formatting.
* utils/hbmake/hbmake.prg
* PRG -> .prg on some screen messages.
* config/w32/xcc.cf
* config/w32/pocc.cf
+ Added ws2_32.lib. Didn't solve the problem, but
as per MS docs of some functions we use, we should
use this instead of wsock2 (everywhere actually)
[and ws2 instead of winsock for WinCE]. Someone pls
correct me if I'm wrong, or if there is any reason
we're using both and/or the older one?
* config/w32/pocc.cf
- Removed C switch -Zx (Enable Pelles C extensions).
We don't need this.
* utils/hbmake/hbmake.prg
! Harbour executable detection cleanups and fix to look
into current dir and detect Darwin as a Unix platform.
(usable state is still very far)
* common.mak
* utils/hbmake/Makefile
* utils/hbmake/bld_b32.bat
* utils/hbmake/bld_vc.bat
* utils/hbmake/hbmake.prg
* utils/hbmake/hbmutils.prg
* utils/hbmake/tmake.prg
- utils/hbmake/ft_funcs.prg
- utils/hbmake/tmake.prg
! Applied patches sent by Bill Robertson.
ft_funcs.prg got replaced by standard file handling
functions and HB_FREADLINE(), EOL handling fixes,
typos and other fixes.
Many thanks Bill.
* Eliminated STATIC var in tmake.prg
* Merged tmake.prg into hbmake.prg. (this was the
easiest way to make the new s_aEOL variable available
to this module.)
; Please test.
* common.mak
* utils/hbdoc/Makefile
* utils/hbdoc/bld_b32.bat
* utils/hbdoc/bld_vc.bat
+ utils/hbdoc/hbdfrdln.c
+ Added HB_FREADLINE() to hbdoc, too. It's not
used, just a small help to allow using it here,
too, instead of ft_funcs.prg.
* utils/hbtest/rt_array.prg
+ Added failing test case of doing AEval()
and resizing the evaluated array in the
eval codeblock.
* utils/hbdoc/ft_funcs.prg
* utils/hbdoc/hbdoc.prg
* utils/hbmake/ft_funcs.prg
* utils/hbmake/hbmutils.prg
! Two EOL handling fixes applied.
Thanks to Bill Robertson.
; Please test.
* contrib/xhb/Makefile
* contrib/xhb/common.mak
+ contrib/xhb/arrayblk.prg
+ Added HB_ARRAYBLOCK()
* common.mak
* source/vm/debug.c
* source/vm/hvm.c
* source/vm/Makefile
+ source/vm/debugold.c
+ Added some HB_DBG_*() functions for compatibility
with certain 3rd party libs. They are marked with
HB_LEGACY_LEVEL, and will be removed (pbly at 1.1.0),
so everyone is encouraged to use __DBG*() version
for Harbour versions above 0x010000 (or not use
them at all, if this is possible). If these functions
are indeed needed for some functionality, it'd be
good to hear about it, maybe there is a solution
which doesn't require internals.
* utils/hbdoc/ft_funcs.prg
* utils/hbmake/ft_funcs.prg
* Using FS_* manifest constants.
* include/dbinfo.ch
* include/dbstruct.ch
* include/hbgtinfo.ch
* include/hblang.ch
* include/setcurs.ch
! Added "also used from C code" comments.
* utils/hbmake/ffile1.prg
! Minor cleanup.
* include/hbgfxdef.ch
* include/hbgtinfo.ch
* Marked old GTI_*, GFX_* macros with HB_LEGACY_LEVEL.
(Old macro HB_GT_NO_XHB no longer works)
* include/hbsetup.ch
+ Added HB_LEGACY_LEVEL macro. Currently turned on.
Will be turned off later, and completely removed
as a final step. Times are not defined for these
yet. Please prepare to modify your code to not
use old legacy stuff.
NOTE: C code using legacy Clipper (.api) headers are
unaffected.
* include/hbapirdd.h
* Marked HARBOUR_* macros with HB_LEGACY_LEVEL
* include/hbsetup.h
* Marked OS_UNIX_COMPATIBLE, OS_PATH_DELIMITER
macros with HB_LEGACY_LEVEL.
* include/hbapifs.h
* source/rtl/filesys.c
* Marked hb_fileNameConv() as HB_LEGACY_LEVEL.
; 3rd party and app developers should switch to
hb_fsNameConv().
* source/rtl/box.c
* source/rtl/console.c
* source/rtl/filesys.c
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* contrib/hbclipsm/gauge.c
* contrib/hbclipsm/status.c
* contrib/hbct/ctwin.c
* source/rtl/set.c
* utils/hbmake/hbmlang.c
* Updated core/contrib sources to use non-legacy names:
HB_CLRSTR_LEN, HB_EVALINFO, PHB_EVALINFO, HB_FHANDLE
; TODO: FHANDLE -> HB_FHANDLE is incomplete yet.
* include/hbdefs.h
* Minor formatting.
* include/hbmath.h
! #include <hbmath.ch> -> #include "hbmath.ch"
* contrib/hbmysql/mysql.c
+ function SQLFETCHR() updated to allow fetching binary (BLOB)
fields. [Thanks to Mitja Podgornik]
* include/hbapifs.h
* include/hbapigt.h
* include/hbapiitm.h
* include/hbdefs.h
* include/item.api
* include/filesys.api
* include/gt.api
* FHANDLE -> HB_FHANDLE
* EVALINFO -> HB_EVALINFO
* PEVALINFO -> PHB_EVALINFO
* EVALINFO_PTR -> marked as legacy
* CLR_STRLEN -> HB_CLRSTR_LEN
; Old names are still working if HB_LEGACY_LEVEL
is #defined, and by default now it is.
; It's highly recommended to change all 3rd party and
app C code to use the new #defines/types/functions.
; NOTE1: There are some more names which are still
in the legacy "namespace", and gradually
I'd like to clean some of these as well. The most
important would be the type names, as these
are currently colliding with multiple external
packages, like windows.h, and it also makes it
impossible to compile hbfimage on certain systems.
; NOTE2: I'd also like to move the *_PTR (like HB_ITEM_PTR)
names to legacy status as we don't really use
them except in a few VM files, and we have PHB_*
as a wide-spread (and shorter) replacement.
; NOTE3: We may also use HB_LEGACY_LEVEL to obolete other
legacy or unsafe functions, with better new
alternatives.
; NOTE4: Here's a more or less complete list of names
that _may_ cause such problems:
; Type related stuff
- TRUE, FALSE
- BOOL, BYTE, SCHAR, UINT, USHORT
- INT_MAX, INT_MIN
- INT16, INT16_MAX, INT16_MIN
- INT24_MAX, INT24_MIN
- INT32, INT32_MAX, INT32_MIN
- INT64, INT64_MAX, INT64_MIN
- LONG, LONG_MAX, LONG_MIN
- LONGLONG, LONGLONG_MAX, LONGLONG_MIN
- SHORT, SHRT_MAX, SHRT_MIN
- UCHAR, UCHAR_MAX
- UINT16, UINT16_MAX
- UINT24_MAX
- UINT32, UINT32_MAX
- UINT64, UINT64_MAX
- ULONG, ULONG_MAX
- ULONGLONG, ULONGLONG_MAX
- assert()
; Some hacks currently used:
- HB_DONT_DEFINE_BASIC_TYPES
- HB_DONT_DEFINE_BOOL
- HB_OS_WIN_32_USED ->
(include <windows.h> locally where needed)
; Compiler related stuff:
- VS_*, VU_*, VT_*, FUN_*
- *COMDECLARED, *COMCLASS, *COMSYMBOL
- VAR, PVAR
- _FUNC, PFUNCTION
- _INLINE, PINLINE
- _FUNCALL, PFUNCALL
- _EXTERN, PEXTERN
- AUTOOPEN, PAUTOOPEN
- FUNCTIONS
- INLINES
- FUNCALLS
- SYMBOLS
; Clipper compatibility #defines,
better be moved behind a compatibility layer:
- F_ERROR, FS_ERROR
- IS*()
- E_*, EF_*
- FL_*, FLX_*, FO_*, FXO_*
- _B_*
- FC_*, FS_*, FD_*
- INKEY_*, K_*
- ES_*, EG_*
- SC_*
- DBS_*
; + All RDD related stuff, including "dbinfo.ch" constants.
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
! Added -km switch to contribs by default.
This way it's synced with the GNU-make system, too.
* utils/hbdoc/hbdocdef.ch
* utils/hbdoc/fclass1.prg
* utils/hbdoc/ffile1.prg
* utils/hbdoc/ft_funcs.prg
* utils/hbmake/hbdocdef.ch
* utils/hbmake/fclass1.prg
* utils/hbmake/ffile1.prg
* utils/hbmake/ft_funcs.prg
* Cleanups, optimizations (in ft_funcs.prg)
! Synced these for common files to be completely
identical. In fact this is a fix, as their name
is common so they were "randomly" interchanged
along the non-GNU build process even before.
There was only one very small functional difference,
though.
; Please test.