* include/hbextern.ch
* source/lang/Makefile
+ source/lang/msguados.c
+ Added Ukrainian language module for cp1125.
(borrowed from xhb, work of Pavel Tsarenko.)
I've made a few corrections compared to xhb:
- Using the same internal name as filename for
consistency with other language modules
(UADOS instead of UA1125).
- Fixed date format which must only contain YYYY, MM, DD
regardless of the CP/language used, since it's a picture mask.
- Formatting (semicolon, spaces, deleted embedded $Id$ not
needed with SVN)
- Added to hbextern.ch.
* source/lang/msguakoi.c
* source/lang/msgua866.c
* Two corrections to internal name.
(borrowed from xhb, work of Pavel Tsarenko.)
; QUESTION: I wonder why the texts are very much different in
Harbour and xhb. Someone familiar with Ukrainian
language and encodings should check this, only one
of them can be right and all CPs should be synced
with each other the only thing being different is
the encoding.
* source/codepage/msguakoi.c
! Fixed one letter.
* source/codepage/cpuawin.c
* source/codepage/cpua1125.c
* source/codepage/cpua866.c
* source/codepage/cpuakoi.c
* Added "CYRILLIC LETTER GHE WITH UPTURN" letter.
(borrowed from xhb, work of Pavel Tsarenko.)
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
% Deleted install dir creation. Now done from GNU Make.
* make_gnu_os2.cmd
* Installs libs in lib/<arch>/<comp> by default just like
win/dos builds.
* config/instsh.cf
! Fixed missing semicolon.
* config/rules.cf
* Minor in comments.
* include/hbsetup.h
* source/common/hbprintf.c
- Removed temporary enabler logic, here testing is over.
* include/Makefile
+ include/hbextcdp.ch
* include/hbextern.ch
* utils/hbmk2/hbmk2.prg
+ Separated EXTERNAL HB_CODEPAGE_* lines to hbextcdp.ch.
These are commonly needed by apps.
* Using hbextcdp.ch in hbmk2.
; TODO: hbextern app needs to be updated to filter out
CODEPAGE symbols.
* source/vm/extend.c
! Fixed hb_parvcx() to return "" instead of NULL when dealing
with array parameters out of bound or non-string.
(Borrowed from xhb by Ron Pinkas. Although the fix is
implemented differently in Harbour)
* source/rtl/gttrm/Makefile
* CFLAGS -> HB_USER_CFLAGS
* include/hbapicdp.h
* include/hbextern.ch
* source/lang/Makefile
* source/codepage/Makefile
+ source/codepage/cpua1125.c
+ source/codepage/uc1125.c
+ Added DOS Ukrainian 1125 codepage
(Borrowed from xhb. Work of Pavel Tsarenko)
* utils/hbmk2/hbmk2.prg
* OS/2 embedded compiler autodetection order fixed.
* harbour/config/os2/watcom.cf
* harbour/config/os2/dir.cf
* harbour/config/os2/install.cf
* small cleanup for builds with *nix like shells and cross builds
* harbour/contrib/rddads/Makefile
! disabld from OS2 builds - if ADS supports OS2 then please speak-up
* harbour/include/hbthread.h
* added small hack as workaround for missing OS2 declarations
* harbour/source/rtl/filesys.c
! fixed typo in OS2 builds
* harbour/source/rtl/hbproces.c
! fixed non GCC OS2 builds
* harbour/contrib/hbtpathy/tpos2.c
! fixed casting in OS2 builds
* harbour/contrib/xhb/hbserv.c
! disabled from OS2 non GCC builds
Now I can create OS2 OpenWatcom build in my Linux box using this simple
script:
#!/bin/sh
if [ -z "${WATCOM}" ]; then
export WATCOM="/opt/lng/watcom"
export INCLUDE="${WATCOM}/h:${WATCOM}/h/os2"
export PATH="${WATCOM}/binl:$PATH"
fi
export HB_ARCHITECTURE=os2
export HB_COMPILER=watcom
export HB_INSTALL_PREFIX="$(pwd)/hb-os2/watcom"
#cross build settings
# this should be fixed and we should use HB_PPGEN_PATH as direct
# reference to hbpp binaries and HB_COMP_PATH as direct reference
# to harbour binaries in all builds. Otherwise we have to create
# some hacks to create platform specific names for above binaries
# i.e. in *nixes links with .exe extension.
export HB_PPGEN_PATH="/tmp/cros-hb"
export HB_BIN_COMPILE="/tmp/cros-hb"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -D__PLATFORM__OS2"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -undef:__PLATFORM__UNIX"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -undef:__PLATFORM__LINUX"
# eliminate libraries which scans for local host header files
export HB_XBUILD=yes
./make_gnu.sh "$@"
It should work also in Windows with MSys.
This should resolve the problem with testing OS2 builds, at least
for OpenWatcom. I do not know if GCC for OS2 is available as cross
build environment.
I think that Viktor can quite easy adopt hbmk2 for OS2 cross compilation.
* include/hbextern.ch
+ Added HB_SETCLSHANDLE().
* source/vm/evalhb.c
* source/vm/eval.c
* source/vm/dynlibhb.c
! Fixed old int <-> USHORT conversion MSVC warnings.
; TOFIX: ? There is a disagreement between different APIs
and Harbour program parts on the size and type of
number of parameters, it can be int, USHORT, ULONG,
and in some places there is also BYTE limit.
* source/common/hbver.c
* Minor formatting.
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbct/ctwfunc.c
* GetClearChar/SetClearChar changed to use USHORT for char
(was int). This resolves all remaining MSVC warnings.
* _HB_GT_BASE structure adapted to latest changes, three
vars changed from USHORT to int, one renamed to reflect
int type.
+ Added var names to a few functions declarations.
% Minor optimizations.
* hb_gtScrollEx() modified to not do parameter evaluation,
just pass them to low-level.
; Przemek, please review me, I've again encountered UCHARs
in hbct / SETCLEARB().
* source/rtl/idle.c
* SHORT -> int.
* Minor formatting.
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* changed BYTE to USHORT in few functions which expected character
for GTs with UNICODE screen buffer
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gttrm/gttrm.c
* updated for USHORT used as character holder
* harbour/source/rtl/gtwvt/gtwvt.c
% minor modification
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtalleg/gtalleg.c
* updated for BYTE to int as color holder modification
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
* harbour/contrib/hbct/ctwfunc.c
* harbour/contrib/hbnf/ftattr.c
! fixed casting changing values or added casting to force strict
translation
* modified to accept color and character values with wider ranges
* harbour/contrib/hbct/ctwin.c
! removed unnecessary stripping to BYTE in character and color values
* harbour/source/rtl/console.c
* pacified warning
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtdos/gtdos.c
* source/rtl/gtwin/gtwin.c
* source/rtl/gtxwc/gtxwc.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gttrm/gttrm.c
* source/rtl/gtcgi/gtcgi.c
* source/rtl/gtapi.c
* source/rtl/gtos2/gtos2.c
* source/rtl/hbgtcore.c
* source/rtl/gtsln/gtsln.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtwvt/gtwvt.c
* contrib/hbct/screen2.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbnf/ftattr.c
* Changed color representation to be 'int' in all places.
This means changes in high level and low level GT interfaces.
; QUESTION: In hbct UCHAR is used in a few places, I didn't want to
touch it.
; Please test and review.
; TODO: Clean char type usage (from int, UCHAR, BYTE, USHORT to what?)
; TODO: Clean attr type usage to be hbU8, or HB_ATTR, or else?
* include/hbapigt.h
* source/rtl/gtapi.c
! Fixed a few byAttr parameter names which should really be named bColor.
; TOFIX: ? hb_gtSetAttribute() and *SETATTRIBUTE interfaces
have a misleading name, as they're really setting
color, not attribute. (we called color as attr in
the beginning when no separate attr info was
implemented)
* include/hbdefs.h
+ Added HB_RESULT. This is meant to replace current USHORT used
to store result (or "error" values).
* source/rtl/console.c
* USHORT -> int (printer coordinates).
* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
* changed last parameter of hb_gtRepChar() from USHORT uiCount to
ULONG ulCount
* removed basic parameter validation from hb_gtScroll() - such
things should be done by GT driver
* minor cleanup
* harbour/source/rtl/hbgtcore.c
% moved pbyBuffer initialization outside the loop in Rest/Save methods
* minor cleanup in casting
* harbour/source/rtl/mouse53.c
% minor optimization
* harbour/source/rtl/gtdos/gtdos.c
* changed buffer type in Mouse{Save,Restore}State methods from char *
to void *
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtcrs/gtcrs.c
! fixed casting
* harbour/source/rtl/xhelp.c
* harbour/source/rtl/console.c
% use 'int' instead of 'USHORT'
* harbour/source/rtl/saverest.c
* removed explicit casting
* harbour/source/rtl/scroll.c
* harbour/source/rtl/console.c
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
! fixed casting from 'char *' items which was wrongly changing
the results.
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
% eliminated not longer necessary intermediate variables used for
passing by reference in previous version with [U]SHORT casting
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/ftattr.c
* harbour/contrib/hbnf/ftshadow.c
* changed screen coordinates from [U]SHORT to int
* include/hbgtcore.h
* include/hbapigt.h
* include/hbapi.h
* source/rtl/scroll.c
* source/rtl/maxrow.c
* source/rtl/gtapi.c
* source/rtl/saverest.c
* source/rtl/console.c
* source/rtl/oldclear.c
* source/rtl/hbgtcore.c
* source/rtl/scrrow.c
* source/rtl/shadow.c
* source/rtl/setcurs.c
* source/rtl/mouse53.c
* source/rtl/gx.c
* source/rtl/mouseapi.c
* contrib/hbct/cursor.c
* contrib/hbct/ctwfunc.c
* contrib/hbclipsm/gauge.c
* Changed all USHORT to int in high-level GT API layer which
already had an int representation on the low-level.
Please review me. It's possible that some extra checks (or else)
need to be added since signedness has changed.
* Change mouse state buffer from char * to void *.
; TODO: Review remaining BYTE/USHORT usage for attr, color
and char. Char is sometimes represented by UCHAR,
sometimes by char and sometimes by USHORT. Color is
represented by both int and BYTE. attr is BYTE, which
can be changed to hbU8.
* include/hbgtcore.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* Changed low level GT SAVE/REST method buffer parameter type
to void * from BYTE *. Some explicit casts removed.
* Few more BYTE *s to char *.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/base64c.c
+ source/rtl/base64.prg
+ Added HB_BASE64ENCODE(), HB_BASE64DECODE() to core.
They were copied from hbtip and hbvpdf and currently
the decoder is .prg code while encoding is .c code.
Latter has one TOFIX for an error situation.
* contrib/hbtip/encurl.prg
* contrib/hbtip/thtml.prg
* contrib/hbtip/sessid.prg
* contrib/hbtip/popcln.prg
* contrib/hbtip/sendmail.prg
* contrib/hbtip/tip.ch
* contrib/hbtip/cgi.prg
* contrib/hbtip/url.prg
* contrib/hbtip/encqp.prg
* contrib/hbtip/base64x.c
* contrib/hbtip/httpcln.prg
* contrib/hbtip/client.prg
* contrib/hbtip/encoder.prg
* contrib/hbtip/smtpcln.prg
* contrib/hbtip/encb64.prg
* contrib/hbtip/mail.prg
* contrib/hbtip/credent.prg
* contrib/hbtip/ftpcln.prg
+ Added TOFIXes, QUESTIONs
! Fixed to use hb_MemoRead() instead of MemoRead() in one place.
! Fixed a wrong error checks after FCreate() calls.
! Fixed to use Len( hb_inetCRLF ) instead of hardwired length.
! Using hb_ntos() instead of Str() in POP3 commands.
* Changed explicit values to manifest constants (F_ERROR)
* Changed high ASCII chars in source to Chr() representation,
now source can be edited with any editor.
! Added missing copyright header to tip.ch. Although this header
seems to be unnecessary.
! TipMail:MakeBoundary() to not add any date punctuations in the ID.
! Fixed tIPClientFTP:fileSize() to not return permantent zero.
% Heavier optimizations and cleanup in TIpClientSmtp().
% Optimizations.
* Formatting.
; Please test.
* harbour/include/hbexpra.c
% reduce macro expressions used in POP operation.
It allows to use code like: &("((M->VAR))") := 1
* harbour/include/hbexprb.c
+ added support for iif() used in macro expressions passed by references:
proc MAIN()
local s := "IIF( lVar, xVar1, xVar2 )"
M->xVar1 := 1
M->xVar2 := 2
M->lVar := .T.
? M->xVar1, M->xVar2
P( @&s )
? M->xVar1, M->xVar2
proc P(x)
x+=1000
* harbour/source/vm/hvm.c
! fixed possible assign value lost in extended references
* contrib/xhb/xhbat.c
* contrib/hbtip/utils.c
* Moved ATI() function to xhb lib.
ATI() is different from HB_ATI() since it doesn't support
national chars, but it supports negative start/end values in
xhb style.
* contrib/hbtip/thtml.prg
* Changed to use core HB_ATI() instead of xhb specific ATI().
To me it looks that negative positions aren't used by hbtip code,
also respect for national chars is fine, so this replacement is okay.
Please review me and correct it if needed.
* contrib/xhb/xhbfunc.c
* contrib/hbtip/legacy.prg
* Moved HB_EXEC() to xhb lib. Restored the C version.
* contrib/hbtip/Makefile
- contrib/hbtip/legacy.prg
- Deleted. No longer necessary.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/ati.c
+ Added HB_ATI() function. This is the same as HB_AT(), but
case-insensitive. It supports national chars.
* harbour/source/rtl/gttrm/gttrm.c
! do not catch SIGCHLD
* harbour/include/hbapifs.h
* harbour/source/rtl/hbproces.c
+ added C function: hb_fsProcessRun()
* harbour/source/rtl/hbprocfn.c
+ added .prg function:
hb_processRun( <cCommand>, [ <cStdIn> ], [ @<cStdOut> ], ;
[ @<cStdErr> ], [ <lDetach> ] ) -> <nResult>
This function is implemented for all builds also in DOS ones where
temporary files are used to simulate pipes.
TODO: in OS2 builds it should be possible to implement this function
without temporary files just like in *nixes and MS-Windows builds.
I would like to ask OS2 users to make it.
+ harbour/include/hbtask.h
+ harbour/source/vm/task.c
* harbour/include/hbthread.h
* harbour/include/hbatomic.h
* harbour/source/vm/thread.c
* harbour/source/vm/hvm.c
* harbour/source/vm/fm.c
* harbour/source/rtl/idle.c
* harbour/source/rtl/filesys.c
+ implemented OS independent task switching system - it gives PTHREAD
compatible basic API so it can be used in HVM as alternative MT support
which does not use any OS threads. As long as Harbour does not call
any blocking OS function then it's possible to create and execute
simultaneously many threads though only one CPU is used and switched
between HVM threads. It gives similar scalability to xbase++ threads
and also similar behavior in item protection at .prg level.
Now it's possible to use HVM threads in any OS.
Of course it does not mean that Harbour adds in some magic way
thread support to OS-es which does not support threads like DOS.
It only means that HVM supports threads for .prg code just like
in native MT environment as long as some C code does not block
task switching or process execution will not be frozen by sth, i.e.
executing other process (__run()) in single process OS like DOS.
In some cases it can be interesting alternative even in OS which
have native thread support.
All tests/mttest*.prg programs and speedtst --thread=<n> --scale
are executed correctly with new task switching just like with
OS native MT support.
Compilation with task switching in hbvmmt library can be forced
by HB_TASK_THREAD macro which also disable native OS threads
support.
For task context switching two alternative methods are used:
1) getcontext()/makecontext()/swapcontext() (SUSv2, POSIX.1-2001)
which is preferable because does not need any additional
hacks but not all OS-es supports these functions.
It's enabled by default in Linux builds.
2) setjmp()/longjmp() (POSIX, ISO 9899 (C99)) otherwise.
These functions are supported by most of C compilers
but there is no function to set new stack in saved context
so it's necessary to introduce for each architecure/C compiler
peace of code which makes it. Macro HB_TASK_STACK_INIT() in
task.c makes it. I defined this macro for x86@32 in DJGPP
Linux GCC and OpenWatcom builds. I tested OpenWatcom builds only
in DOS and Linux but probably it works in all x86@32 builds.
If someone is interesting in adding support for some other
platforms which does not support ucontext.h and 1-st methods
then please define above macro for them.
Have a fun with new toy ;-)
* harbour/source/vm/Makefile
* enabled hbvmmt in DJGPP and OpenWatcom DOS builds. It works well.
Viktor if possible please add support for -mt switch in hbmk2
in all builds even if we do not compile hbvmmt by default so
it can be used with DJGPP and OW and any other builds for which
someone enable hbtask.c though OS does not support threads.
* harbour/contrib/hbmzip/hbmzip.c
! fixed '[const] char|BYTE *' casting in DOS and OS2 builds
* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
% reduced INASSING definition - thanks to Xavi for information
* harbour/source/compiler/hbopt.c
! fixed stupid bug in logical expression optimization - thanks to Randy
for self contain example
* harbour/include/hbapi.h
* harbour/include/hbmacro.h
* harbour/include/hbexprb.c
* harbour/source/vm/macro.c
* harbour/source/vm/hvm.c
* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
+ added direct support for pushing references to macro expressions.
It resolves the problem with Clipper compatibility (thanks to Alex
for information and example) in code like:
m->var := {0}
&("var[1]") += 10
and also many other things, f.e. now Harbour can cleanly compile
and execute this code:
proc main
local s
m->o := errorNew()
s:="o:tries"
? m->o:tries
? &s
? &(s+"+=2")
? m->o:tries
? &(s+":=3")
? m->o:tries
?
&s := 4
? m->o:tries
&s -= 2
? m->o:tries
&s++
? m->o:tries
?
s := "o"
m->o := 1
? &s
&s := &s + 4
? &s
? &s += 5
? --&s
?
s := "o[2]"
m->o := { 1, 2 }
? &s
&s := &s + 4
? &s
? &s += 5
? --&s
return
* harbour/utils/hbtest/Makefile
* force hbtest compilation with line numbers - information about line
numbers is important part of this test.
* include/hbcomp.h
* include/hbcompdf.h
* include/hbapifs.h
* include/hbexprop.h
* include/hbmacro.h
* include/hbapi.h
* include/hbapiitm.h
* include/hbdate.h
* source/pp/ppcore.c
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
* source/common/expropt1.c
* source/rtl/philes.c
* source/rtl/empty.c
* source/rtl/minmax.c
* source/rtl/dates.c
* source/rtl/filesys.c
* source/rdd/dbfnsx/dbfnsx1.c
* source/rdd/dbfcdx/dbfcdx1.c
* source/rdd/dbf1.c
* source/rdd/dbffpt/dbffpt1.c
* source/rdd/hbsix/sxdate.c
* source/compiler/hbmain.c
* source/compiler/complex.c
* source/compiler/harbour.yyc
* source/compiler/harbour.y
* contrib/hbct/files.c
* contrib/hbct/dattime2.c
* contrib/hbct/datetime.c
* contrib/xhb/filestat.c
* contrib/hbtip/utils.c
* examples/hboleold/win_ole.c
* LONG -> long for date/time related values
(julian, date, type, millisec)
; This is an effort to clean Harbour sources from
Windows/legacy-Clipper basic types and replace
them with own or ANSI C ones.
In the above case, usage wasn't consistent,
LONG and long were mixed.
* source/main/harbour.c
* source/vm/fm.c
* LONG -> long for some stat counters.
* source/rtl/gtwvt/gtwvt.c
! Fixed maximize button state when HB_GTI_RESIZABLE is set to .T.
before the window is drawn.
Please test.
% Cleaned windows style definitions in source.
* include/hbstack.h
* include/hbapi.h
* Formatting in comment.
* harbour/contrib/rddsql/sddmy/mysqldd.c
+ added support for MySQL TIMESTAMP, DATETIME and TIME types. These
types are mapped to @,8 and T,4 field types, and native harbour
timestamp type.
* harbour/include/hbextern.ch
+ added a dozen of Harbour functions
; NOTE: about 120 functions are still not included into this .ch:
SX_*(), USRRDD_*(), __DBG*(), __CLS*(), HB_COMPILE*(), etc.
* harbour/include/hbapirdd.h
* harbour/source/rdd/workarea.c
* harbour/source/rdd/wafunc.c
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/hsx/hsx.c
* harbour/source/rdd/usrrdd/usrrdd.c
* modified RDD method declaration (DBENTRYP_*) to eliminate casting.
3-rd party RDD code have to be updated.
* modified some RDD structures to force more strict alignment.
Warning!!! AREA structured modified - all 3-rd party RDDs which
redefines AREA members instead of using AREA structure
directly have to be updated.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddnsx.h
* harbour/include/hbrdddel.h
* harbour/include/hbrddsdf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/hbdbsort.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/contrib/rddads/rddads.h
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddads/adsfunc.c
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbbmcdx/hbbmcdx.h
* updated for new method declaration
* modified RDD AREA structures definition to use supper AREA structures
directly as 1-st member instead of redefining individual AREA members.
It resolves the synchronization problem so now modification in super
AREA structures does not force modifications in source code of
descendant RDDs. It also eliminates possible typos in manual structure
synchronization.
* include/hbapifs.h
* source/rtl/filebuf.c
* source/rtl/filesys.c
* Changed file I/O buffer parameters from
'( [const] BYTE * )' to '( [const] void * )'
* utils/hbmk2/hbmk2.prg
+ Added ${hb_curdir} macro support.
+ Added ${hb_first} macro support (will return first source name
specced on cmdline)
+ Added support for 'sources=' line in .hbc files. This
will accept .prg, .c/.cpp, .po/.pot, object and resources.
For resources, also wildcards are supported. Files with
no extension will be considered .prg.
This also replaces former 'pos=' line.
This can be useful to put some central sources into all
project without using a lib (or when a lib isn't an option
for some reason).
- man
- Dir deleted.