2008-10-22 10:30 UTC+0100 Miguel Angel Marchuet <[EMAIL PROTECTED]>
* include\thread.h
+ added stackrdd at thread temporally, I'm thinking about the best way to
implement
public wa and private thread too simultaneusly. If any body can help me.
* source\rdd\hbsix\sxcompr.c
! fixed ring buffer initialization in Sx_Compress()
* source\rdd\nulsys\nulsys.c
! Added DBSELECTAREA(), DBSTRUCT(), HEADER(),
RECSIZE(), LUPDATE()
so that programs can be built with -b and
hbnulrdd.lib. hbdebug.lib/dgbwa.prg uses
symbols above.
* source\rdd\dbcmd.c
* source\rdd\dbf1.c
! added workaround for problem with EVAL block used in PACK
command
* source\rdd\sdf1.c
! fixed stupid typo (missing !) in last modification which broke
SDF RDD read mode. Thanks to Marco for information and example.
* source\vm\fm.c
* changed hb_xrealloc() to be ANSI-C realloc() compatible. it make alloc
when null pointer arrive with len parameter informed.
* source\vm\estack.c
+ added hb_stackRDD( void )
* source\vm\errorapi.c
* changed hb_errLaunch( PHB_ITEM pError ) because we need to retorn to code
to release items in some cases, or continue.
Posible we need the same at hb_errLaunchSubst( PHB_ITEM pError ) or
similar.
* source\vm\dynsym.c
- removed uneeded #include "thread.h" because is included yet at #include
"hbstack.h"
* common.mak
* compile.mak
+ 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.
* source\rdd\bmdbfcdx\bmdbfcdx1.c
* source\rdd\dbfcdx\dbfcdx1.c
* reduce header validation to not report clipper indexes as corrupted
* source\codepage\cp_tpl.c
* source\codepage\cpbg866.c
* source\codepage\cpbgiso.c
* source\codepage\cpbgmik.c
* source\codepage\cpbgwin.c
* source\codepage\cpcs852.c
* source\codepage\cpcsiso.c
* source\codepage\cpcskam.c
* source\codepage\cpcswin.c
* source\codepage\cpde850.c
* source\codepage\cpdeiso.c
* source\codepage\cpdewin.c
* source\codepage\cpel737.c
* source\codepage\cpelwin.c
* source\codepage\cpes850.c
* source\codepage\cpesmwin.c
* source\codepage\cpeswin.c
* source\codepage\cpfr850.c
* source\codepage\cphr1250.c
* source\codepage\cphr437.c
* source\codepage\cphr852.c
* source\codepage\cphu852.c
* source\codepage\cphu852s.c
* source\codepage\cphuiso.c
* source\codepage\cphuisos.c
* source\codepage\cphuwin.c
* source\codepage\cphuwins.c
* source\codepage\cpit437.c
* source\codepage\cpit850.c
* source\codepage\cpitisb.c
* source\codepage\cpitiso.c
* source\codepage\cpltwin.c
* source\codepage\cppl852.c
* source\codepage\cppliso.c
* source\codepage\cpplmaz.c
* source\codepage\cpplwin.c
* source\codepage\cppt850.c
* source\codepage\cpptiso.c
* source\codepage\cpru866.c
* source\codepage\cpruiso.c
* source\codepage\cprukoi.c
* source\codepage\cpruwin.c
* source\codepage\cpsk852.c
* source\codepage\cpskiso.c
* source\codepage\cpskkam.c
* source\codepage\cpskwin.c
* source\codepage\cpsl437.c
* source\codepage\cpsl852.c
* source\codepage\cpsliso.c
* source\codepage\cpslwin.c
* source\codepage\cpsrwin.c
* source\codepage\cpsv850.c
* source\codepage\cpsvclip.c
* source\codepage\cpsvwin.c
* source\codepage\cptr857.c
* source\codepage\cptrwin.c
* source\codepage\cpua866.c
* source\codepage\cpuakoi.c
* source\codepage\cpuawin.c
! Fix for MSVC 64-bit C mode startup procedure.
* source\common\hbstr.c
+ added HB_EXPORT char * hb_strduptrim( const char * pszText )
HB_EXPORT ULONG hb_strlentrim( const char * pszText )
* contrib\rdd_ads\ads1.c
* contrib\rdd_ads\adsfunc.c
* contrib\rdd_ads\adsmgmnt.c
* contrib\rdd_ads\rddads.h
* include\hbapi.h
* include\hbapifs.h
* include\hbapirdd.h
* include\hbcompat.ch
* include\hbdefs.h
* include\hbrddbmc.h
* include\hbrddcdx.h
* include\hbrdddbf.h
* include\hbrdddel.h
* include\hbrddntx.h
* include\hbrddsdf.h
* include\hbstack.h
* include\hbvmpub.h
* source\rdd\dbffpt\dbffpt1.c
* source\rdd\dbfntx\dbfntx1.c
* source\rdd\delim1.c
* source\rdd\hbsix\sxfname.c
* source\rdd\hbsix\sxsem.c
* source\rdd\nulsys\nulsys.c
* source\rdd\usrrdd\rdds\adordd.prg
* source\rdd\usrrdd\rdds\arrayrdd.prg
* source\rdd\usrrdd\rdds\dbtcdx.prg
* source\rdd\usrrdd\rdds\fcomma.prg
* source\rdd\usrrdd\rdds\vfpcdx.prg
* source\rdd\wacore.c
* source\rdd\wafunc.c
* source\rdd\workarea.c
* source\rtl\cdpapi.c
* source\rtl\filesys.c
+ added HB_EXPORT BOOL hb_fsTruncAt( HB_FHANDLE hFileHandle, HB_FOFFSET
llOffset )
HB_EXPORT ULONG hb_fsReadAt( HB_FHANDLE hFileHandle, BYTE * pBuff,
ULONG ulCount, HB_FOFFSET llOffset )
HB_EXPORT ULONG hb_fsWriteAt( HB_FHANDLE hFileHandle, const BYTE *
pBuff, ULONG ulCount, HB_FOFFSET llOffset )
* source\rtl\fstemp.c
* source\rtl\hbffind.c
* source\rtl\idle.c
* source\rtl\philes.c
* source\rtl\set.c
* source\rtl\space.c
* source\rtl\spfiles.c
! Fix for MSVC 64-bit C mode startup procedure.
* uiAttr to ulAttr in file operations.
* in general removes some warnnings in some compilers
* use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
to access files.
* added protection against multiple registering RDD with the same
name by *_GETFUNCTABLE() in ST/MT mode or other thread in MT mode
* minor syntax corrections.
* use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
to access files.
! added missing alias setting after attaching work area
+ added HB_NHANDLE
+ added hb_numToHandle() macro
! fixed WIN32 HANDLE to integer number conversions in Harbour file API
! fixed F_ERROR and FS_ERROR usage
* added support for optional FHANDLE mapped to pointer instead of
integer number - disable by default in hbdefs.h
Now xHarbour can be compiled with internal pointer and integer file
handles (FHANDLE)
! fixed return value after rt error.
* Added rt error as in clipper when OrdKeyVal is greater than 240, with
default
capabilities as in clipper.
code to test it:
FUNCTION MAIN()
LOCAL i
LOCAL nSec := SECONDS()
REQUEST DBFCDX
RddSetDefault( "DBFCDX" )
DBCREATE( "__MYTEST", { { "test", "C", 241, 0 } } )
USE __MYTEST
INDEX ON FIELD->Test TO __MYTEST
FOR i := 1 TO 10
APPEND BLANK
FIELD->test := Replicate( "1", 240 ) + Str( 10 - i, 1 )
NEXT
DbGoTop()
? &(OrdKey())
? "Length of &(OrdKey()) :" + Str( Len( &(OrdKey()) ) )
? OrdKeyVal()
? "Length of OrdKeyVal() :" + Str( Len(OrdKeyVal()) )
WHILE ! EOF()
? Right( FIELD->Test, 1 )
DbSkip()
ENDDO
USE
FERASE( "__MYTEST.DBF" )
FERASE( "__MYTEST.CDX" )
RETURN NIL
! fixed generation error when length of key is greater than 256 as Clipper.
instead of wait for internal error.
* Used defined errors instead of hardcoded numbers.
! fixed dirty index reading.
* minor optimizations in general.
* some things synced with harbour as possible. thanks to his developers.
Best regards
Miguel Angel Marchuet
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
xHarbour-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xharbour-developers