* harbour/include/hbapi.h
* harbour/source/vm/cmdarg.c
+ added const char * hb_cmdargARGVN( int argc )
* harbour/source/vm/cmdarg.c
* try to convert executable file name argument in argv[0] to
absolute path if it's relative one. Respect PATH envvar it necessary.
* harbour/source/common/hbdate.c
* formatting
* harbour/source/rtl/philes.c
* harbour/source/rtl/errorint.c
* harbour/source/rtl/filesys.c
! use hb_cmdargARGVN(n) instead of hb_cmdargARGV()[n] to avoid
possible GPF if some function will be called before argument
initialization
* removed additional logic which tries to convert relative paths
in file name from hb_fsBaseDirBuff() and HB_PROGNAME() functions
* contrib/hbssl/Makefile
+ Added new detection dir.
* source/rtl/gtwvt/gtwvt.c
+ Added support for HB_GTI_BOXCP.
(available for UNICODE builds only).
* source/rtl/filesys.c
+ Added (untested) support for *NIX system to
hb_fsBaseDirBuff() / HB_DIRBASE().
* harbour/source/vm/classes.c
* covered some old functions marked as deprecated long time ago
by HB_LEGACY_LEVEL2 macro
* harbour/source/rtl/hbgtcore.c
* harbour/contrib/hbct/ctwin.c
* harbour/contrib/hbct/keyset.c
* harbour/contrib/hbct/misc3.c
* harbour/contrib/hbnf/numlock.c
* harbour/contrib/hbnf/shift.c
* harbour/contrib/hbnf/alt.c
* harbour/contrib/hbnf/ctrl.c
* harbour/contrib/hbnf/caplock.c
* use memset( >Info, 0, sizeof( gtInfo ) ); to initialize
HB_GT_INFO structure - it also fixes possible problems with
uninitialized pNewVal2 member in few cases.
* doc/whatsnew.txt
* include/hbextern.ch
* source/vm/runner.c
* source/rdd/dbcmd.c
* __HRB*() functions marked as HB_LEGACY_LEVEL2 compatibility,
please update your code to use HB_HRB*().
* __RDDGETTEMPALIAS() marked as HB_LEGACY_LEVEL2 compatibility,
please update your code to use HB_RDDGETTEMPALIAS().
; I've permanently remove these symbols from hbextern.ch, so
regardless of the legacy setting, hbrun won't have them
anymore. This is merely technical, as it would need some
hacks in the make system to push through HB_LEGACY_OFF
to pptable.c generation. If someone wants to deal with
this, even better.
* include/hbstdgen.ch
* Added #undef __FILE__.
* include/hbsetup.ch
* Minor.
* doc/whatsnew.txt
* include/clipdefs.h
* include/filesys.api
* include/gt.api
* include/hbapi.h
* include/hbapierr.h
* include/hbapifs.h
* include/hbapigt.h
* include/hbapiitm.h
* include/hbapirdd.h
* include/hbdefs.h
* include/hbgfxdef.ch
* include/hbgtinfo.ch
* include/hbsetup.ch
* include/hbsetup.h
* include/item.api
* include/rdd.api
* source/rtl/errorapi.c
* source/rtl/filesys.c
* source/vm/cmdarg.c
* common.mak
- source/vm/debugold.c
* source/vm/Makefile
* source/vm/vmmt/Makefile
- Permanently disabled HB_LEGACY_LEVEL support.
+ Added HB_LEGACY_LEVEL2 support to protect some
recently made incompatible changes. Old methods
are supported until Harbour 1.2. Please update
your code until then. To test your code for
compatibility with recent changes, you can turn
off legacy support manually by #defining HB_LEGACY_OFF.
(HB_USER_CFLAGS=-DHB_LEGACY_OFF)
This is recommended on local systems for all
Harbour developers.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
+ Added support for Sessions
* Fixed ini file support
* harbour/contrib/examples/uhttpd/cgifunc.prg
* Fixed some functions
+ harbour/contrib/examples/uhttpd/session.prg
+ Session class
* harbour/contrib/examples/uhttpd/modules/info.prg
+ Added display of SESSION vars
+ Added a simple example of SESSIONS
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
+ Added new files
+ harbour/contrib/examples/uhttpd/sessions
+ Added folder used in samples
* 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.
* harbour/source/rdd/hsx/hsx.c
* keep HSX indexes in global table synced by mutex instead of
using thread storage data (TSD) on HVM stack. It allows to
move HSX indexes between threads, f.e. when workarea is moved
by HB_DEATCH()/HB_REQUEST()
* source/rtl/fstemp.c
! Added cast for MSVC warning. (this code part was
formerly only active for non-Windows builds)
* include/hbapifs.h
* source/rtl/fstemp.c
* source/rtl/filebuf.c
* UCHAR -> BYTE in new FS functions, for consistency.
* include/hbapifs.h
* source/rtl/spfiles.c
+ Added hb_spFileExists(). Same as hb_spFile(), but uses
the more efficient (especially on networks) hb_fsFileExists()
call to check for file exitance.
[ not very elegant solution, as I've just copied the
whole function, and changed the file existance call, maybe
a worker function + passing the check function pointer
could help, but the hb_fsFile() and hb_fsFileExists() workings
differ slightly. ]
* source/rdd/dbfntx/dbfntx1.c
* source/rdd/dbfnsx/dbfnsx1.c
* source/rdd/dbfcdx/dbfcdx1.c
* source/rdd/dbf1.c
% Using hb_spFileExists() instead of hb_spFile().
This API also works for dirs where use doesn't have file listing
rights, which may create a slight incompatibility by finding
files which weren't found by former method (and by Clipper).
C:\WINDOWS\TEMP\*.* were such when logged in as non-admin user,
but this dir is only used as a default TEMP dir for DOS programs.
Please speak up if you find this issue (or something else) to
be problem.
* source/rtl/file.c
* File naming standardized.
* doc/whatsnew.txt
* Minor updates.
* include/hbapifs.h
* include/hbextern.ch
* source/rtl/fstemp.c
* source/rtl/filebuf.c
+ Added hb_fsCreateTempEx(). Similar to hb_fsCreateTemp(),
but allows to control the extension. Note, that the
ordering of parameters ha slightly changed compared to
hb_fsCreateTemp().
+ Added hb_fileCreateTempEx(). See above.
+ Added Harbour level HB_FTEMPCREATEEX(). See above.
; Please review & test.
* harbour/include/hbdefs.h
* harbour/include/hbapi.h
* moved HB_ISSPACE(), HB_ISFIRSTIDCHAR() and HB_ISNEXTIDCHAR() from
hbapi.h to hbdefs.h
+ HB_ISXDIGIT() macro
* harbour/include/hbpp.h
* updated other HB_PP_IS*() macros definitions to internally use HB_IS*()
ones
* harbour/source/rtl/fstemp.c
! fixed unterminated ASCIIZ string
TODO: new macros HB_CHARVAL( c ), HB_CHARXVAL( c ),
HB_VALDIGIT( i ), HB_VALXDIGIT( i )
* include/hbpp.h
* Minor rearrangement of previous state.
Still referencing HB_ISDIGIT() and HB_TOUPPER(), one time
each.
* contrib/xhb/hbxml.c
* isspace() -> HB_ISSPACE(). HB_ISSPACE() should be
revised in the future if Unicode is used, but until
then this is fine here.
* ChangeLog
* Marked one TODO as [CANCELLED].
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
* Corrected to always build rddsql (not just when MYSQL
is configured).
* contrib/rddsql/make_b32.bat
* contrib/rddsql/make_vc.bat
* contrib/rddsql/make_gcc.sh
+ Added logic to build sdds.
(logic copied from contrib/make_*_all.* files)
* contrib/rddsql/sddfb/make_b32.bat
* contrib/rddsql/sddfb/make_vc.bat
* contrib/rddsql/sddfb/Makefile
* FBIRD -> FIREBIRD to be in sync with hbfbird setup.
* contrib/rddsql/sddfb/fbirddd.c
+ Added hack (from hbfbird) to make it work with latest
FB and BCC versions.
* harbour/source/rtl/philes.c
* harbour/source/rtl/dirdrive.c
* harbour/source/rtl/philesx.c
* harbour/source/rtl/filesys.c
! fixed CURDRIVE() and DISKNAME() to not return "A" in OS-es which
does not use drive letters
! eliminated toupper()
% minor cleanup and speed improvement
* harbour/config/bin.cf
* harbour/config/test.cf
* removed quoting for TOP=$(GRANDP) nested GNU make call parameters
* config/os2/dir.cf
* use $(COMSPEC) instead of calling cmd.exe directly
* config/os2/gcc.cf
* rewrote create_library rule to work with make -jn without
breaking shell environment/command line size.
* source/rtl/hbproces.c
* included sys/waith.h in OS/2 build. I think that initial
#defines can be simplified a bit.
* config/os2/install.cf
* rewrote install_rule to work with make -jn without
breaking shell environment/command line size.
* config/lib.cf
* removed unnecessary double quotes around TOP definition
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
! fixed typo in one internal function name
* harbour/include/hbapi.h
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
* harbour/source/vm/dynsym.c
* harbour/source/vm/memvars.c
% changed code used for memvars clear in MT mode - it greatly
reduce the cost of HVM thread exit
% changed code for memvars copping/sharing when thread is started
it greatly reduce the time of thread creation when existing memvars
are shared or copied
Both modifications reduced the cost of simple
hb_threadJoin( hb_threadCreate( {|| NIL } ) )
few times depending on number of symbols and memvars.
* harbour/source/rtl/gttrm/gttrm.c
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/gtsln.h
* harbour/source/rtl/gtpca/gtpca.c
% added better initial cursor position detection and eliminated sscanf()
* harbour/source/Makefile
! fixed concurrent dependencies in cross builds
* source/rtl/tget.prg
* source/rtl/tgetx.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* Reset internal name of GET(), TBROWSE(), TBCOLUMN(),
because even if Clipper doesn't have such public
symbols, Class(y) has them, and we want to maintain
compatibility.
* include/hbextern.ch
+ Added GET, TBROWSE, TBCOLUMN.
* contrib/rddado/tests/hbmk_b32.bat
* contrib/rddado/tests/hbmk_vc.bat
! hbw32.lib -> hbwin.lib
* source/vm/set.c
! Fixed HB_OS_W32 (non-existing) macro to HB_OS_WIN.
It caused that device names were not uppercased in Windows
builds, which wasn't fatal.
* include/hbextern.ch
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/tget.prg
* source/rtl/tgetx.prg
! Using new method to solve the GET()/TBROWSE()/TBCOLUMN()
symbol problem (these aren't public symbols in Clipper).
The method used is the one already implemented for other
C53 CUI classes.
This allows inheritance, doesn't mess up the class name,
and won't declare above public symbols.
* Moved Xbase++ compatible GET()/TBROWSE()/TBCOLUMN()
functionality into separate classes, all inheriting from
original Harbour classes. This means that Xbase++
compatible methods are only accessible when using the
derived classes. The separation will allow us to
move XPP (and other HB_COMPAT_*) compatible functionality
into a separate libraries in the future, allowing more
freedom to resolve clashing features, symbol names, etc..
* Xbase++ compatible classes are named: xpp_Get(),
xpp_TBrowse(), xpp_TBColumn(). This is a slight
incompatibility compared to Xbase++ and also to
previous Harbour. Technically it seems possible
to give them the names GET()/TBROWSE()/TBCOLUMN(), if
the class is defined in a different file, but let's first
discuss it.
* source/rtl/tgetint.prg
* Using GetNew() instead of Get():New().
; Finally I didn't use '( ... )' to pass parameters in GetNew(),
as it's a tiny bit less efficient with -gc3.
* include/hbusrrdd.ch
* include/hbapi.h
+ Comment.