From 52bfb16e4d105c76ca19ae5f0f8ccb49a1cb1281 Mon Sep 17 00:00:00 2001 From: Luiz Rafael Culik Date: Mon, 12 Nov 2001 23:24:38 +0000 Subject: [PATCH] See changelog 2001-11-12 21:25 GMT -3 --- harbour/ChangeLog | 13 +++++++++++++ harbour/contrib/libct/make_b32.bat | 6 +++--- harbour/contrib/libct/make_vc.bat | 6 +++--- harbour/contrib/libnf/make_b32.bat | 29 +++++++++++++++++++++++++++++ harbour/contrib/libnf/nanfor.bc | 14 +++++++------- harbour/source/vm/hvm.c | 13 ++++++++++++- harbour/utils/hbmake/hbmake.prg | 9 +++++---- 7 files changed, 72 insertions(+), 18 deletions(-) create mode 100644 harbour/contrib/libnf/make_b32.bat diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 99c6229526..bd4bc6a286 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,16 @@ +2001-11-12 21:25 GMT -3 Luiz Rafael Culik + * utils/hbmake/hbmake.prg + * Fixed an small bug that remain in previus update + The fixed Bellow was provided by Matteo Baccan + *source/rtl/hvm.c + * fixed problem in the way of variable search on harbour + *contrib/libct/make_b32.bat + contrib/libct/make_vc.bat + * Fixed the name of the library + +contrib/libnf/make_b32.bat + *contrib/libnf/nanfor.bc + * Fixed the name of the library + 2001-13-11 04:45 GMT+0700 Andi Jahja * contrib/libnf/descend.c ! added type casts for MsVC diff --git a/harbour/contrib/libct/make_b32.bat b/harbour/contrib/libct/make_b32.bat index 14baec63f7..4ceaebe653 100644 --- a/harbour/contrib/libct/make_b32.bat +++ b/harbour/contrib/libct/make_b32.bat @@ -1,7 +1,7 @@ @echo off -rem +rem rem $Id$ -rem +rem if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN @@ -13,7 +13,7 @@ if "%1" == "CLEAN" goto CLEAN :BUILD_OK - copy ..\..\lib\b32\ct3.lib ..\..\lib\*.* > nul + copy ..\..\lib\b32\libct.lib ..\..\lib\*.* > nul goto EXIT :BUILD_ERR diff --git a/harbour/contrib/libct/make_vc.bat b/harbour/contrib/libct/make_vc.bat index 127d89990b..56b9b10e6b 100644 --- a/harbour/contrib/libct/make_vc.bat +++ b/harbour/contrib/libct/make_vc.bat @@ -1,7 +1,7 @@ @echo off -rem +rem rem $Id$ -rem +rem :BUILD @@ -10,7 +10,7 @@ rem :BUILD_OK - copy ..\..\lib\vc\ct3.lib ..\..\lib\*.* >nul + copy ..\..\lib\vc\libct.lib ..\..\lib\*.* >nul goto EXIT :BUILD_ERR diff --git a/harbour/contrib/libnf/make_b32.bat b/harbour/contrib/libnf/make_b32.bat new file mode 100644 index 0000000000..b6e2ebf00a --- /dev/null +++ b/harbour/contrib/libnf/make_b32.bat @@ -0,0 +1,29 @@ +@echo off +rem +rem $Id$ +rem + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +:BUILD + + make -fnanfor.bc %1 %2 %3 > make_b32.log + if errorlevel 1 goto BUILD_ERR + +:BUILD_OK + + copy ..\..\lib\b32\nf.lib ..\..\lib\*.* > nul + goto EXIT + +:BUILD_ERR + + notepad make_b32.log + goto EXIT + +:CLEAN + + goto EXIT + +:EXIT + diff --git a/harbour/contrib/libnf/nanfor.bc b/harbour/contrib/libnf/nanfor.bc index 0f5e7a9bfb..53c9ef6c48 100644 --- a/harbour/contrib/libnf/nanfor.bc +++ b/harbour/contrib/libnf/nanfor.bc @@ -10,9 +10,9 @@ # NOTE: You can use these envvars to configure the make process: # (note that these are all optional) # -# CFLAGS - Extra C compiler options for libraries and for +# CFLAGS - Extra C compiler options for libraries and for # executables -# C_USR - Extra C compiler options for libraries and for +# C_USR - Extra C compiler options for libraries and for # executables (GNU make compatible envvar) # CLIBFLAGS - Extra C compiler options for the libraries # HARBOURFLAGS - Extra Harbour compiler options @@ -48,7 +48,7 @@ BIN_DIR = ..\..\bin\b32 OBJ_DIR = ..\..\obj\b32 LIB_DIR = ..\..\lib\b32 -# This is needed, otherwise the libs may overflow when +# This is needed, otherwise the libs may overflow when # debug info is requested with -v -y ARFLAGS = /P32 @@ -83,7 +83,7 @@ LDFLAGS = $(LDFLAGS) # -NANFOR_LIB = $(LIB_DIR)\nanfor.lib +NANFOR_LIB = $(LIB_DIR)\nf.lib NANFOR_LIB_OBJ = \ $(OBJ_DIR)\aading.obj \ $(OBJ_DIR)\aavg.obj \ @@ -197,7 +197,7 @@ NANFOR_LIB_OBJ = \ $(OBJ_DIR)\stod.obj \ $(OBJ_DIR)\kspeed.obj \ $(OBJ_DIR)\mkdir.obj \ - $(OBJ_DIR)\getver.obj + $(OBJ_DIR)\getver.obj # $(OBJ_DIR)\sysmem.obj \ @@ -261,7 +261,7 @@ $(OBJ_DIR)\byt2hex.c : byt2hex.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\byteand.c : byteand.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - + $(OBJ_DIR)\byteneg.c : byteneg.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\byteor.c : byteor.prg @@ -334,7 +334,7 @@ $(OBJ_DIR)\wda.c : wda.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ #$(OBJ_DIR)\setdate.c : setdate.prg # $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - + $(OBJ_DIR)\sqzn.c : sqzn.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\menu1.c : menu1.prg diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index 944b045c13..3372a845c1 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -1199,6 +1199,7 @@ void hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols ) case HB_P_POPVARIABLE: { USHORT uiParams; + PHB_DYNS pDyn; /* Pops a value from the eval stack and uses it to set * a new value of a variable of unknown type. @@ -1209,8 +1210,18 @@ void hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols ) * then try the memvar variable (it will create PRIVATE * variable if this variable doesn't exist) */ - if( hb_rddFieldPut( ( hb_stackItemFromTop(-1) ), pSymbols + uiParams ) == FAILURE ) + + /* memvars.c 417 */ + pDyn = ( PHB_DYNS ) (pSymbols + uiParams)->pDynSym; + if( pDyn && pDyn->hMemvar ) + { + /* If exist a memory symbol with this name use it */ hb_memvarSetValue( pSymbols + uiParams, ( hb_stackItemFromTop(-1) ) ); + } else { + /* Try with a field and after create a memvar */ + if( hb_rddFieldPut( ( hb_stackItemFromTop(-1) ), pSymbols + uiParams ) == FAILURE ) + hb_memvarSetValue( pSymbols + uiParams, ( hb_stackItemFromTop(-1) ) ); + } hb_stackDec(); hb_itemClear( ( hb_stackTopItem() ) ); HB_TRACE(HB_TR_INFO, ("(hb_vmPopVariable)")); diff --git a/harbour/utils/hbmake/hbmake.prg b/harbour/utils/hbmake/hbmake.prg index 71582f22e6..e7fcb4f238 100644 --- a/harbour/utils/hbmake/hbmake.prg +++ b/harbour/utils/hbmake/hbmake.prg @@ -809,7 +809,7 @@ For nCount := 1 To Len( aOrder ) cComm := Strtran( cComm, "o$*", "o" + aCs[ nPos ] ) cComm := Strtran( cComm, "$**", aPrgs[ nFiles ] ) if !lLinux - cComm += " > test.out" + cComm += " > test.out" else cComm += " 2>test.out" endif @@ -863,7 +863,7 @@ For nCount := 1 To Len( aOrder ) cComm := Strtran( cComm, "$**", acs[ nFiles ] ) outstd( " ") // ? cComm -outstd(cComm) + outstd(cComm) ! ( cComm ) ccomm := cold Endif @@ -1131,7 +1131,7 @@ ATTENTION( "Enviroment options", 0 ) @ 2, 64 Get lcw checkbox "Use C4W" when Cos=="Win32" @ 3, 64 Get lRddads checkbox "Use RddAds" when Cos=="Win32" Read - +set cursor on If lFwh @ 4, 1 Say "FWH path" Get cfwhpath Elseif lCw @@ -1838,6 +1838,7 @@ ATTENTION( "Enviroment options", 0 ) @ 1, 23 Say "Select C Compiler" @ 1, 40 Get cCompiler radio { "BCC", "MSVC", "GCC" } Read +set cursor on @ 4, 1 Say "Library name with our extention" Get cfwhpath pict "@s15" @ 4,55 Say "Obj Files Dir" get cObjDir ATTENTION( "Harbour Options", 5 ) @@ -1886,7 +1887,7 @@ else cTest:=cObjDir+'\' endif -aeval(amacros,{|x,y|cItem:=substr(x[2],1,len(x[2])),qout(citem),if(at(citem,cTest)>0,(amacros[y,1]:='OBJ',amacros[y,2]:=cObjDir),)}) +aeval(amacros,{|x,y|cItem:=substr(x[2],1,len(x[2])),if(at(citem,cTest)>0,(amacros[y,1]:='OBJ',amacros[y,2]:=cObjDir),)}) if lAutomemvar cDefHarOpts+=" -a "