From cadd7af4b3e952becbf721ccb55c8e6046ae1b78 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 21 Mar 2000 00:58:45 +0000 Subject: [PATCH] 20000321-02:00 GMT+1 Victor Szakats --- harbour/ChangeLog | 30 +++ harbour/makefile.bc | 53 ++--- harbour/makefile.vc | 35 +-- harbour/source/Makefile | 1 - harbour/source/rtl/Makefile | 5 +- harbour/source/rtl/filesys.c | 159 +------------- harbour/source/rtl/{getenv.c => gete.c} | 0 harbour/source/rtl/{stris.c => is.c} | 0 harbour/source/rtl/philes.c | 206 ++++++++++++++++++ harbour/source/runner/Makefile | 16 -- harbour/source/vm/Makefile | 1 + .../source/{runner/runlib.c => vm/runner.c} | 0 harbour/utils/Makefile | 1 + .../runner/stdalone => utils/hbrun}/Makefile | 2 +- .../runner/stdalone => utils/hbrun}/hbrun.prg | 0 15 files changed, 272 insertions(+), 237 deletions(-) rename harbour/source/rtl/{getenv.c => gete.c} (100%) rename harbour/source/rtl/{stris.c => is.c} (100%) create mode 100644 harbour/source/rtl/philes.c delete mode 100644 harbour/source/runner/Makefile rename harbour/source/{runner/runlib.c => vm/runner.c} (100%) rename harbour/{source/runner/stdalone => utils/hbrun}/Makefile (94%) rename harbour/{source/runner/stdalone => utils/hbrun}/hbrun.prg (100%) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 49f19e0d9b..1dabb4c204 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,33 @@ +20000321-02:00 GMT+1 Victor Szakats + + + source/vm/runner.c + - source/runner/runlib.c + - source/runner/Makefile + - source/runner/stdalone/Makefile + - source/runner/stdalone/hbrun.prg + + utils/hbrun/Makefile + + utils/hbrun/hbrun.prg + * source/Makefile + source/vm/Makefile + utils/Makefile + makefile.bc + makefile.vc + * Runner library code moved to SOURCE/VM + * Runner standalone utility moved to UTILS/HBRUN + + * source/rtl/filesys.c + + source/rtl/philes.c + - source/rtl/getenv.c + + source/rtl/gete.c + - source/rtl/stris.c + + source/rtl/is.c + source/rtl/Makefile + makefile.bc + makefile.vc + + Harbour callable low-level file handling routines moved to a separate + source file. + * Two files renamed to match Clipper. + 20000321-01:10 GMT+1 Victor Szakats * source/rtl/gtapi.c diff --git a/harbour/makefile.bc b/harbour/makefile.bc index b0eed2691b..f997523e35 100644 --- a/harbour/makefile.bc +++ b/harbour/makefile.bc @@ -49,9 +49,9 @@ MACRO_DIR = source\macro PP_DIR = source\pp RDD_DIR = source\rdd RTL_DIR = source\rtl -RUNNER_DIR = source\runner TOOLS_DIR = source\tools VM_DIR = source\vm +HBRUN_DIR = utils\hbrun HBTEST_DIR = utils\hbtest HBDOC_DIR = utils\hbdoc @@ -77,7 +77,6 @@ NULSYS_LIB = $(LIB_DIR)\nulsys.lib PP_LIB = $(LIB_DIR)\pp.lib RDD_LIB = $(LIB_DIR)\rdd.lib RTL_LIB = $(LIB_DIR)\rtl.lib -RUNNER_LIB = $(LIB_DIR)\runner.lib TOOLS_LIB = $(LIB_DIR)\tools.lib VM_LIB = $(LIB_DIR)\vm.lib @@ -161,12 +160,13 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\fnsplit.obj \ $(OBJ_DIR)\fssize.obj \ $(OBJ_DIR)\fstemp.obj \ - $(OBJ_DIR)\getenv.obj \ + $(OBJ_DIR)\gete.obj \ $(OBJ_DIR)\gt.obj \ $(OBJ_DIR)\gtapi.obj \ $(OBJ_DIR)\gx.obj \ $(OBJ_DIR)\hardcr.obj \ $(OBJ_DIR)\inkey.obj \ + $(OBJ_DIR)\is.obj \ $(OBJ_DIR)\isprint.obj \ $(OBJ_DIR)\langapi.obj \ $(OBJ_DIR)\left.obj \ @@ -188,6 +188,7 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\oldbox.obj \ $(OBJ_DIR)\oldclear.obj \ $(OBJ_DIR)\pad.obj \ + $(OBJ_DIR)\philes.obj \ $(OBJ_DIR)\philes53.obj \ $(OBJ_DIR)\philesx.obj \ $(OBJ_DIR)\rat.obj \ @@ -209,7 +210,6 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\str.obj \ $(OBJ_DIR)\strcase.obj \ $(OBJ_DIR)\strings.obj \ - $(OBJ_DIR)\stris.obj \ $(OBJ_DIR)\strmatch.obj \ $(OBJ_DIR)\strtran.obj \ $(OBJ_DIR)\strzero.obj \ @@ -349,13 +349,6 @@ DBFCDX_LIB_OBJS = \ \ $(OBJ_DIR)\dbfcdx0.obj -# -# RUNNER.LIB rules -# - -RUNNER_LIB_OBJS = \ - $(OBJ_DIR)\runlib.obj - # # PP.LIB rules # @@ -413,6 +406,7 @@ VM_LIB_OBJS = \ $(OBJ_DIR)\pcount.obj \ $(OBJ_DIR)\proc.obj \ $(OBJ_DIR)\pvalue.obj \ + $(OBJ_DIR)\runner.obj \ \ $(OBJ_DIR)\symbols.obj \ \ @@ -519,7 +513,6 @@ all: \ $(NULSYS_LIB) \ $(DBFNTX_LIB) \ $(DBFCDX_LIB) \ - $(RUNNER_LIB) \ $(HB_GT_LIBS) \ $(HBRUN_EXE) \ $(HBPP_EXE) \ @@ -539,7 +532,6 @@ $(NULSYS_LIB) : $(NULSYS_LIB_OBJS) $(PP_LIB) : $(PP_LIB_OBJS) $(RDD_LIB) : $(RDD_LIB_OBJS) $(RTL_LIB) : $(RTL_LIB_OBJS) -$(RUNNER_LIB) : $(RUNNER_LIB_OBJS) $(TOOLS_LIB) : $(TOOLS_LIB_OBJS) $(VM_LIB) : $(VM_LIB_OBJS) $(GTDOS_LIB) : $(GTDOS_LIB_OBJS) @@ -842,6 +834,10 @@ $(OBJ_DIR)\pvalue.obj : $(VM_DIR)\pvalue.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(VM_LIB) -+$@,, +$(OBJ_DIR)\runner.obj : $(VM_DIR)\runner.c + $(CC) $(CLIBFLAGS) -o$@ $** + tlib $(VM_LIB) -+$@,, + $(OBJ_DIR)\symbols.obj : $(VM_DIR)\symbols.asm $(AS) $**, $@ tlib $(VM_LIB) -+$@,, @@ -1065,7 +1061,7 @@ $(OBJ_DIR)\fstemp.obj : $(RTL_DIR)\fstemp.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, -$(OBJ_DIR)\getenv.obj : $(RTL_DIR)\getenv.c +$(OBJ_DIR)\gete.obj : $(RTL_DIR)\gete.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, @@ -1096,6 +1092,10 @@ $(OBJ_DIR)\input.obj : $(OBJ_DIR)\input.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, +$(OBJ_DIR)\is.obj : $(RTL_DIR)\is.c + $(CC) $(CLIBFLAGS) -o$@ $** + tlib $(RTL_LIB) -+$@,, + $(OBJ_DIR)\isprint.obj : $(RTL_DIR)\isprint.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, @@ -1205,6 +1205,10 @@ $(OBJ_DIR)\pad.obj : $(RTL_DIR)\pad.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, +$(OBJ_DIR)\philes.obj : $(RTL_DIR)\philes.c + $(CC) $(CLIBFLAGS) -o$@ $** + tlib $(RTL_LIB) -+$@,, + $(OBJ_DIR)\philes53.obj : $(RTL_DIR)\philes53.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, @@ -1317,10 +1321,6 @@ $(OBJ_DIR)\strings.obj : $(RTL_DIR)\strings.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, -$(OBJ_DIR)\stris.obj : $(RTL_DIR)\stris.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(RTL_LIB) -+$@,, - $(OBJ_DIR)\strmatch.obj : $(RTL_DIR)\strmatch.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(RTL_LIB) -+$@,, @@ -1722,14 +1722,6 @@ $(OBJ_DIR)\dbfcdx1.obj : $(RDD_DIR)\dbfcdx\dbfcdx1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(DBFCDX_LIB) -+$@,, -# -# RUNNER.LIB dependencies -# - -$(OBJ_DIR)\runlib.obj : $(RUNNER_DIR)\runlib.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(RUNNER_LIB) -+$@,, - # # DEBUG.LIB dependencies # @@ -1823,11 +1815,9 @@ $(HBPP_EXE) : \ # # HBRUN.EXE dependencies # -$(HBRUN_EXE) : \ - $(RUNNER_DIR)\stdalone\hbrun.prg \ - $(RUNNER_LIB) +$(HBRUN_EXE) : $(HBRUN_DIR)\hbrun.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $(RUNNER_DIR)\stdalone\hbrun.prg + $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $(HBRUN_DIR)\hbrun.prg $(CC) $(CLIBFLAGS) -o$(OBJ_DIR)\hbrun.obj $(OBJ_DIR)\hbrun.c echo. $(CFLAGS) > make.tmp @@ -1842,7 +1832,6 @@ $(HBRUN_EXE) : \ echo. $(RDD_LIB) >> make.tmp echo. $(MACRO_LIB) >> make.tmp echo. $(TOOLS_LIB) >> make.tmp - echo. $(RUNNER_LIB) >> make.tmp echo. $(DBFNTX_LIB) >> make.tmp echo. $(DBFCDX_LIB) >> make.tmp $(CC) @make.tmp @@ -1872,7 +1861,6 @@ $(HBTEST_EXE) : $(HBTEST_EXE_OBJS) echo. $(HB_GT_LIB) >> make.tmp echo. $(RDD_LIB) >> make.tmp echo. $(MACRO_LIB) >> make.tmp - echo. $(RUNNER_LIB) >> make.tmp echo. $(DBFNTX_LIB) >> make.tmp echo. $(DBFCDX_LIB) >> make.tmp $(CC) @make.tmp @@ -1956,7 +1944,6 @@ $(HBDOC_EXE) : $(HBDOC_EXE_OBJS) echo. $(RDD_LIB) >> make.tmp echo. $(MACRO_LIB) >> make.tmp echo. $(TOOLS_LIB) >> make.tmp - echo. $(RUNNER_LIB) >> make.tmp echo. $(DBFNTX_LIB) >> make.tmp echo. $(DBFCDX_LIB) >> make.tmp $(CC) @make.tmp diff --git a/harbour/makefile.vc b/harbour/makefile.vc index ab64474173..d5946f00ce 100644 --- a/harbour/makefile.vc +++ b/harbour/makefile.vc @@ -50,9 +50,9 @@ MACRO_DIR = source\macro PP_DIR = source\pp RDD_DIR = source\rdd RTL_DIR = source\rtl -RUNNER_DIR = source\runner TOOLS_DIR = source\tools VM_DIR = source\vm +HBRUN_DIR = utils\hbrun HBTEST_DIR = utils\hbtest HBDOC_DIR = utils\hbdoc @@ -79,7 +79,6 @@ NULSYS_LIB = $(LIB_DIR)\nulsys.lib PP_LIB = $(LIB_DIR)\pp.lib RDD_LIB = $(LIB_DIR)\rdd.lib RTL_LIB = $(LIB_DIR)\rtl.lib -RUNNER_LIB = $(LIB_DIR)\runner.lib TOOLS_LIB = $(LIB_DIR)\tools.lib VM_LIB = $(LIB_DIR)\vm.lib @@ -126,7 +125,6 @@ LIBLIST = \ $(DBFCDX_LIB) \ $(DBFNTX_LIB) \ $(NULSYS_LIB) \ - $(RUNNER_LIB) \ $(TOOLS_LIB) \ $(VM_LIB) \ $(HB_GT_LIB) @@ -202,12 +200,13 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\fnsplit.obj \ $(OBJ_DIR)\fssize.obj \ $(OBJ_DIR)\fstemp.obj \ - $(OBJ_DIR)\getenv.obj \ + $(OBJ_DIR)\gete.obj \ $(OBJ_DIR)\gt.obj \ $(OBJ_DIR)\gtapi.obj \ $(OBJ_DIR)\gx.obj \ $(OBJ_DIR)\hardcr.obj \ $(OBJ_DIR)\inkey.obj \ + $(OBJ_DIR)\is.obj \ $(OBJ_DIR)\isprint.obj \ $(OBJ_DIR)\langapi.obj \ $(OBJ_DIR)\left.obj \ @@ -229,6 +228,7 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\oldbox.obj \ $(OBJ_DIR)\oldclear.obj \ $(OBJ_DIR)\pad.obj \ + $(OBJ_DIR)\philes.obj \ $(OBJ_DIR)\philes53.obj \ $(OBJ_DIR)\philesx.obj \ $(OBJ_DIR)\rat.obj \ @@ -250,7 +250,6 @@ RTL_LIB_OBJS = \ $(OBJ_DIR)\str.obj \ $(OBJ_DIR)\strcase.obj \ $(OBJ_DIR)\strings.obj \ - $(OBJ_DIR)\stris.obj \ $(OBJ_DIR)\strmatch.obj \ $(OBJ_DIR)\strtran.obj \ $(OBJ_DIR)\strzero.obj \ @@ -442,16 +441,6 @@ DBFCDX_LIB_OBJS = \ \ $(OBJ_DIR)\dbfcdx0.obj -# -# RUNNER.LIB rules -# - -{$(RUNNER_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -RUNNER_LIB_OBJS = \ - $(OBJ_DIR)\runlib.obj - # # PP.LIB rules # @@ -532,6 +521,7 @@ VM_LIB_OBJS = \ $(OBJ_DIR)\pcount.obj \ $(OBJ_DIR)\proc.obj \ $(OBJ_DIR)\pvalue.obj \ + $(OBJ_DIR)\runner.obj \ \ $(OBJ_DIR)\symbols.obj \ \ @@ -590,7 +580,6 @@ all: zot \ $(NULSYS_LIB) \ $(DBFNTX_LIB) \ $(DBFCDX_LIB) \ - $(RUNNER_LIB) \ $(GTPCA_LIB) \ $(GTSTD_LIB) \ $(GTWIN_LIB) \ @@ -627,7 +616,6 @@ all: \ $(NULSYS_LIB) \ $(DBFNTX_LIB) \ $(DBFCDX_LIB) \ - $(RUNNER_LIB) \ $(GTPCA_LIB) \ $(GTSTD_LIB) \ $(GTWIN_LIB) \ @@ -646,11 +634,10 @@ $(HBPP_EXE) : \ $(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $** -o $(HBPP_EXE) /link $(PP_LIB) $(COMMON_LIB) # -# Runner +# HBRUN.EXE rules # -$(HBRUN_EXE) : \ - $(RUNNER_DIR)\stdalone\hbrun.prg +$(HBRUN_EXE) : $(HBRUN_DIR)\hbrun.prg $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $** $(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\hbrun.c -o $(BIN_DIR)\hbrun /link $(LIBS2) @@ -659,8 +646,8 @@ $(HBRUN_EXE) : \ # # To compile this you must have a JDK installed # -$(HBRUNJAV_DLL) : $(RUNNER_DIR)\runjava.c - $(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(RUNNER_DIR)\runjava.c -o $(BIN_DIR)\runjava.dll /link-dll $(LIBS) +$(HBRUNJAV_DLL) : $(HBRUN_DIR)\runjava.c + $(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(HBRUN_DIR)\runjava.c -o $(BIN_DIR)\runjava.dll /link-dll $(LIBS) -del $(BIN_DIR)\runjava.exp -del $(BIN_DIR)\runjava.lib @@ -757,9 +744,6 @@ $(DBFNTX_LIB) : $(DBFNTX_LIB_OBJS) $(NULSYS_LIB) : $(NULSYS_LIB_OBJS) lib /out:$@ $** -$(RUNNER_LIB) : $(RUNNER_LIB_OBJS) - lib /out:$@ $** - $(TOOLS_LIB) : $(TOOLS_LIB_OBJS) lib /out:$@ $** @@ -815,7 +799,6 @@ $(RDD_LIB)2 : $(RDD_LIB_OBJS) $(DBFCDX_LIB)2 : $(DBFCDX_LIB_OBJS) $(DBFNTX_LIB)2 : $(DBFNTX_LIB_OBJS) $(NULSYS_LIB)2 : $(NULSYS_LIB_OBJS) -$(RUNNER_LIB)2 : $(RUNNER_LIB_OBJS) $(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) $(VM_LIB)2 : $(VM_LIB_OBJS) $(GTPCA_LIB)2 : $(GTPCA_LIB_OBJS) diff --git a/harbour/source/Makefile b/harbour/source/Makefile index 7fe7a41a0a..29ca7f3396 100644 --- a/harbour/source/Makefile +++ b/harbour/source/Makefile @@ -14,6 +14,5 @@ DIRS=\ macro \ debug \ tools \ - runner \ include $(ROOT)config/dir.cf diff --git a/harbour/source/rtl/Makefile b/harbour/source/rtl/Makefile index c3e58d4d4b..518debf283 100644 --- a/harbour/source/rtl/Makefile +++ b/harbour/source/rtl/Makefile @@ -35,12 +35,13 @@ C_SOURCES=\ fnsplit.c \ fssize.c \ fstemp.c \ - getenv.c \ + gete.c \ gt.c \ gtapi.c \ gx.c \ hardcr.c \ inkey.c \ + is.c \ isprint.c \ langapi.c \ left.c \ @@ -62,6 +63,7 @@ C_SOURCES=\ oldbox.c \ oldclear.c \ pad.c \ + philes.c \ philes53.c \ philesx.c \ rat.c \ @@ -83,7 +85,6 @@ C_SOURCES=\ str.c \ strcase.c \ strings.c \ - stris.c \ strmatch.c \ strtran.c \ strzero.c \ diff --git a/harbour/source/rtl/filesys.c b/harbour/source/rtl/filesys.c index f3ef48a0c2..169d770eb5 100644 --- a/harbour/source/rtl/filesys.c +++ b/harbour/source/rtl/filesys.c @@ -4,7 +4,7 @@ /* * Harbour Project source code: - * The FileSys API + * The FileSys API (C level) * * Copyright 1999 {list of individual authors and e-mail addresses} * www - http://www.harbour-project.org @@ -43,7 +43,6 @@ * hb_fsReadLarge() * hb_fsWriteLarge() * hb_fsCurDirBuff() - * HB_CURDIR() * * Copyright 1999 Jose Lalin * hb_fsChDrv() @@ -67,9 +66,7 @@ #include #include "hbapi.h" -#include "hbapiitm.h" #include "hbapifs.h" -#include "hbapierr.h" #if defined(__GNUC__) && !defined(__MINGW32__) #include @@ -1287,110 +1284,6 @@ FHANDLE hb_fsExtOpen( BYTE * pFilename, BYTE * pDefExt, return s_uiErrorLast; } -HARBOUR HB_FOPEN( void ) -{ - if( ISCHAR( 1 ) ) - hb_retni( hb_fsOpen( ( BYTE * ) hb_parc( 1 ), - ISNUM( 2 ) ? hb_parni( 2 ) : FO_READ | FO_COMPAT ) ); - else - hb_errRT_BASE( EG_ARG, 2021, NULL, "FOPEN" ); /* NOTE: Undocumented but existing Clipper Run-time error */ -} - -HARBOUR HB_FCREATE( void ) -{ - if( ISCHAR( 1 ) ) - hb_retni( hb_fsCreate( ( BYTE * ) hb_parc( 1 ), - ISNUM( 2 ) ? hb_parni( 2 ) : FC_NORMAL ) ); - else - hb_retni( FS_ERROR ); -} - -HARBOUR HB_FREAD( void ) -{ - ULONG ulRead; - - if( ISNUM( 1 ) && ISCHAR( 2 ) && ISBYREF( 2 ) && ISNUM( 3 ) ) - { - ulRead = hb_parnl( 3 ); - - /* NOTE: CA-Clipper determines the maximum size by calling _parcsiz() - instead of _parclen(), this means that the maximum read length - will be one more than the length of the passed buffer, because - the terminating zero could be used if needed. [vszakats] */ - - if( ulRead <= hb_parcsiz( 2 ) ) - /* NOTE: Warning, the read buffer will be directly modified, - this is normal here ! [vszakats] */ - ulRead = hb_fsReadLarge( hb_parni( 1 ), - ( BYTE * ) hb_parc( 2 ), - ulRead ); - else - ulRead = 0; - } - else - ulRead = 0; - - hb_retnl( ulRead ); -} - -HARBOUR HB_FWRITE( void ) -{ - if( ISNUM( 1 ) && ISCHAR( 2 ) ) - hb_retnl( hb_fsWriteLarge( hb_parni( 1 ), - ( BYTE * ) hb_parc( 2 ), - ISNUM( 3 ) ? hb_parnl( 3 ) : hb_parclen( 2 ) ) ); - else - hb_retnl( 0 ); -} - -HARBOUR HB_FERROR( void ) -{ - hb_retni( hb_fsError() ); -} - -HARBOUR HB_FCLOSE( void ) -{ - s_uiErrorLast = 0; - - if( ISNUM( 1 ) ) - { - hb_fsClose( hb_parni( 1 ) ); - hb_retl( s_uiErrorLast == 0 ); - } - else - hb_retl( FALSE ); -} - -HARBOUR HB_FERASE( void ) -{ - s_uiErrorLast = 3; - - if( ISCHAR( 1 ) ) - hb_retni( hb_fsDelete( ( BYTE * ) hb_parc( 1 ) ) ); - else - hb_retni( -1 ); -} - -HARBOUR HB_FRENAME( void ) -{ - s_uiErrorLast = 2; - - if( ISCHAR( 1 ) && ISCHAR( 2 ) ) - hb_retni( hb_fsRename( ( BYTE * ) hb_parc( 1 ), ( BYTE * ) hb_parc( 2 ) ) ); - else - hb_retni( -1 ); -} - -HARBOUR HB_FSEEK( void ) -{ - if( ISNUM( 1 ) && ISNUM( 2 ) ) - hb_retnl( hb_fsSeek( hb_parni( 1 ), - hb_parnl( 2 ), - ISNUM( 3 ) ? hb_parni( 3 ) : FS_SET ) ); - else - hb_retnl( 0 ); -} - BOOL hb_fsFile( BYTE * pFilename ) { BOOL bIsFile; @@ -1423,53 +1316,3 @@ BOOL hb_fsFile( BYTE * pFilename ) return bIsFile; } -HARBOUR HB_FILE( void ) -{ - hb_retl( ISCHAR( 1 ) ? hb_fsFile( ( BYTE * ) hb_parc( 1 ) ) : FALSE ); -} - -HARBOUR HB_FREADSTR( void ) -{ - if( ISNUM( 1 ) && ISNUM( 2 ) ) - { - ULONG ulToRead = ( ULONG ) hb_parnl( 2 ); - - if( ulToRead > 0 ) - { - FHANDLE fhnd = ( FHANDLE ) hb_parni( 1 ); - BYTE * buffer = ( BYTE * ) hb_xgrab( ulToRead + 1 ); - ULONG ulRead; - - ulRead = hb_fsReadLarge( fhnd, buffer, ulToRead ); - buffer[ ulRead ] = '\0'; - - /* NOTE: Clipper will not return zero chars from this functions. */ - - hb_retc( ( char * ) buffer ); - - hb_xfree( buffer ); - } - else - hb_retc( "" ); - } - else - hb_retc( "" ); -} - -/* NOTE: This function should not return the leading and trailing */ -/* (back)slashes. */ - -HARBOUR HB_CURDIR( void ) -{ - USHORT uiErrorOld = s_uiErrorLast; - BYTE * pbyBuffer = ( BYTE * ) hb_xgrab( _POSIX_PATH_MAX + 1 ); - - hb_fsCurDirBuff( ( ISCHAR( 1 ) && hb_parclen( 1 ) > 0 ) ? - ( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) : 0, pbyBuffer, _POSIX_PATH_MAX + 1 ); - - hb_retc( ( char * ) pbyBuffer ); - hb_xfree( pbyBuffer ); - - s_uiErrorLast = uiErrorOld; -} - diff --git a/harbour/source/rtl/getenv.c b/harbour/source/rtl/gete.c similarity index 100% rename from harbour/source/rtl/getenv.c rename to harbour/source/rtl/gete.c diff --git a/harbour/source/rtl/stris.c b/harbour/source/rtl/is.c similarity index 100% rename from harbour/source/rtl/stris.c rename to harbour/source/rtl/is.c diff --git a/harbour/source/rtl/philes.c b/harbour/source/rtl/philes.c new file mode 100644 index 0000000000..cb4914b60b --- /dev/null +++ b/harbour/source/rtl/philes.c @@ -0,0 +1,206 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * The FileSys API (Harbour level) + * + * Copyright 1999 {list of individual authors and e-mail addresses} + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version, with one exception: + * + * The exception is that if you link the Harbour Runtime Library (HRL) + * and/or the Harbour Virtual Machine (HVM) with other files to produce + * an executable, this does not by itself cause the resulting executable + * to be covered by the GNU General Public License. Your use of that + * executable is in no way restricted on account of linking the HRL + * and/or HVM code into it. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit + * their web site at http://www.gnu.org/). + * + */ + +/* + * The following parts are Copyright of the individual authors. + * www - http://www.harbour-project.org + * + * Copyright 1999 Victor Szakats + * HB_CURDIR() + * + * See doc/license.txt for licensing terms. + * + */ + +#include + +#include "hbapi.h" +#include "hbapifs.h" +#include "hbapierr.h" + +HARBOUR HB_FOPEN( void ) +{ + if( ISCHAR( 1 ) ) + hb_retni( hb_fsOpen( ( BYTE * ) hb_parc( 1 ), + ISNUM( 2 ) ? hb_parni( 2 ) : FO_READ | FO_COMPAT ) ); + else + hb_errRT_BASE( EG_ARG, 2021, NULL, "FOPEN" ); /* NOTE: Undocumented but existing Clipper Run-time error */ +} + +HARBOUR HB_FCREATE( void ) +{ + if( ISCHAR( 1 ) ) + hb_retni( hb_fsCreate( ( BYTE * ) hb_parc( 1 ), + ISNUM( 2 ) ? hb_parni( 2 ) : FC_NORMAL ) ); + else + hb_retni( FS_ERROR ); +} + +HARBOUR HB_FREAD( void ) +{ + ULONG ulRead; + + if( ISNUM( 1 ) && ISCHAR( 2 ) && ISBYREF( 2 ) && ISNUM( 3 ) ) + { + ulRead = hb_parnl( 3 ); + + /* NOTE: CA-Clipper determines the maximum size by calling _parcsiz() + instead of _parclen(), this means that the maximum read length + will be one more than the length of the passed buffer, because + the terminating zero could be used if needed. [vszakats] */ + + if( ulRead <= hb_parcsiz( 2 ) ) + /* NOTE: Warning, the read buffer will be directly modified, + this is normal here ! [vszakats] */ + ulRead = hb_fsReadLarge( hb_parni( 1 ), + ( BYTE * ) hb_parc( 2 ), + ulRead ); + else + ulRead = 0; + } + else + ulRead = 0; + + hb_retnl( ulRead ); +} + +HARBOUR HB_FWRITE( void ) +{ + if( ISNUM( 1 ) && ISCHAR( 2 ) ) + hb_retnl( hb_fsWriteLarge( hb_parni( 1 ), + ( BYTE * ) hb_parc( 2 ), + ISNUM( 3 ) ? hb_parnl( 3 ) : hb_parclen( 2 ) ) ); + else + hb_retnl( 0 ); +} + +HARBOUR HB_FERROR( void ) +{ + hb_retni( hb_fsError() ); +} + +HARBOUR HB_FCLOSE( void ) +{ + hb_fsSetError( 0 ); + + if( ISNUM( 1 ) ) + { + hb_fsClose( hb_parni( 1 ) ); + hb_retl( hb_fsError() == 0 ); + } + else + hb_retl( FALSE ); +} + +HARBOUR HB_FERASE( void ) +{ + hb_fsSetError( 3 ); + + if( ISCHAR( 1 ) ) + hb_retni( hb_fsDelete( ( BYTE * ) hb_parc( 1 ) ) ); + else + hb_retni( -1 ); +} + +HARBOUR HB_FRENAME( void ) +{ + hb_fsSetError( 2 ); + + if( ISCHAR( 1 ) && ISCHAR( 2 ) ) + hb_retni( hb_fsRename( ( BYTE * ) hb_parc( 1 ), ( BYTE * ) hb_parc( 2 ) ) ); + else + hb_retni( -1 ); +} + +HARBOUR HB_FSEEK( void ) +{ + if( ISNUM( 1 ) && ISNUM( 2 ) ) + hb_retnl( hb_fsSeek( hb_parni( 1 ), + hb_parnl( 2 ), + ISNUM( 3 ) ? hb_parni( 3 ) : FS_SET ) ); + else + hb_retnl( 0 ); +} + +HARBOUR HB_FILE( void ) +{ + hb_retl( ISCHAR( 1 ) ? hb_fsFile( ( BYTE * ) hb_parc( 1 ) ) : FALSE ); +} + +HARBOUR HB_FREADSTR( void ) +{ + if( ISNUM( 1 ) && ISNUM( 2 ) ) + { + ULONG ulToRead = ( ULONG ) hb_parnl( 2 ); + + if( ulToRead > 0 ) + { + FHANDLE fhnd = ( FHANDLE ) hb_parni( 1 ); + BYTE * buffer = ( BYTE * ) hb_xgrab( ulToRead + 1 ); + ULONG ulRead; + + ulRead = hb_fsReadLarge( fhnd, buffer, ulToRead ); + buffer[ ulRead ] = '\0'; + + /* NOTE: Clipper will not return zero chars from this functions. */ + + hb_retc( ( char * ) buffer ); + + hb_xfree( buffer ); + } + else + hb_retc( "" ); + } + else + hb_retc( "" ); +} + +/* NOTE: This function should not return the leading and trailing */ +/* (back)slashes. [vszakats] */ + +HARBOUR HB_CURDIR( void ) +{ + USHORT uiErrorOld = hb_fsError(); + BYTE * pbyBuffer = ( BYTE * ) hb_xgrab( _POSIX_PATH_MAX + 1 ); + + hb_fsCurDirBuff( ( ISCHAR( 1 ) && hb_parclen( 1 ) > 0 ) ? + ( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) : 0, pbyBuffer, _POSIX_PATH_MAX + 1 ); + + hb_retc( ( char * ) pbyBuffer ); + hb_xfree( pbyBuffer ); + + hb_fsSetError( uiErrorOld ); +} + diff --git a/harbour/source/runner/Makefile b/harbour/source/runner/Makefile deleted file mode 100644 index 7837744d22..0000000000 --- a/harbour/source/runner/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -# $Id$ -# - -ROOT = ../../ - -C_SOURCES=\ - runlib.c \ - -LIBNAME=runner - -DIRS=\ - stdalone \ - -include $(TOP)$(ROOT)config/lib.cf -include $(TOP)$(ROOT)config/dir.cf diff --git a/harbour/source/vm/Makefile b/harbour/source/vm/Makefile index 2601e7f1e4..f2f7ccec06 100644 --- a/harbour/source/vm/Makefile +++ b/harbour/source/vm/Makefile @@ -24,6 +24,7 @@ C_SOURCES=\ pcount.c \ proc.c \ pvalue.c \ + runner.c \ PRG_SOURCES=\ harbinit.prg \ diff --git a/harbour/source/runner/runlib.c b/harbour/source/vm/runner.c similarity index 100% rename from harbour/source/runner/runlib.c rename to harbour/source/vm/runner.c diff --git a/harbour/utils/Makefile b/harbour/utils/Makefile index a340f7f493..c5157a4bdf 100644 --- a/harbour/utils/Makefile +++ b/harbour/utils/Makefile @@ -5,6 +5,7 @@ ROOT = ../ DIRS=\ + hbrun \ hbdoc \ hbtest \ # hbextern \ diff --git a/harbour/source/runner/stdalone/Makefile b/harbour/utils/hbrun/Makefile similarity index 94% rename from harbour/source/runner/stdalone/Makefile rename to harbour/utils/hbrun/Makefile index 4b01c16139..7c38174ebe 100644 --- a/harbour/source/runner/stdalone/Makefile +++ b/harbour/utils/hbrun/Makefile @@ -6,7 +6,7 @@ ifeq ($(HB_MAIN),) HB_MAIN = std endif -ROOT = ../../../ +ROOT = ../../ PRG_SOURCES=\ hbrun.prg \ diff --git a/harbour/source/runner/stdalone/hbrun.prg b/harbour/utils/hbrun/hbrun.prg similarity index 100% rename from harbour/source/runner/stdalone/hbrun.prg rename to harbour/utils/hbrun/hbrun.prg