See ChangeLog entry 19990604-21:50 EDT David G. Holm <dholm@jsd-llc.com>

This commit is contained in:
David G. Holm
1999-06-05 02:56:05 +00:00
parent 71b8dd0275
commit a9eed4434c
5 changed files with 129 additions and 80 deletions

View File

@@ -1,3 +1,13 @@
19990604-21:50 EDT David G. Holm <dholm@jsd-llc.com>
* makefile.icc
- Added new Harbour modules
* source/rtl/classes.c
- C++ requires functions with no arguments to be protyped as void
* source/rtl/dates.c
- C++ requires that arguments be prototyped (hb_cmonth and hb_cdow)
* source/vm/initsymb.c
- C++ needs prototypes for external initialization functions
19990604-20:20 EDT David G. Holm <dholm@jsd-llc.com>
Thanks go to Jose Lalin <dezac@corevia.com> for CDOW() and CMONTH() (and
their support functions), msggal.c, msgspa.c, and msguk.c and cdow.prg,
@@ -22,7 +32,7 @@
- National language message file for ?
+ source/rtl/natmsg/msgpor.c
- National language message file for Portugese
+ source/rtl/natmsg/msgsp.c
+ source/rtl/natmsg/msgspa.c
- National language message file for Spanish
+ source/rtl/natmsg/msguk.c
- National language message file for English

View File

@@ -2,20 +2,21 @@
.SUFFIXES : .prg .c
path_c = source\compiler;source\vm;source\rtl;source\rtl\gt;source\tools
path_c = source\compiler;source\vm;source\rtl;source\rtl\gt;source\rtl\natmsg;source\tools
path_h = include
path_l = source\compiler
path_y = source\compiler
path_exe = bin
path_lib = libs\icc
path_obj = obj
path_prg = source\rtl
path_prg = source\rtl;source\tools
c_opt = /DUSE_GTAPI /W2 /Se /Sd+ /I.\include /Ti+
all: $(path_exe)\harbour.exe $(path_lib)\harbour.lib $(path_lib)\hbtools.lib $(path_lib)\terminal.lib
$(path_lib)\harbour.lib : $(path_obj)\arrays.obj \
$(path_obj)\asort.obj \
$(path_obj)\classes.obj \
$(path_obj)\codebloc.obj \
$(path_obj)\console.obj \
@@ -31,6 +32,12 @@ $(path_lib)\harbour.lib : $(path_obj)\arrays.obj \
$(path_obj)\initsymb.obj \
$(path_obj)\itemapi.obj \
$(path_obj)\math.obj \
$(path_obj)\msgdut.obj \
$(path_obj)\msggal.obj \
$(path_obj)\msgpor.obj \
$(path_obj)\msgspa.obj \
$(path_obj)\msguk.obj \
$(path_obj)\objfunc.obj \
$(path_obj)\set.obj \
$(path_obj)\strings.obj \
$(path_obj)\strcmp.obj \
@@ -57,6 +64,7 @@ $(path_lib)\hbtools.lib: \
$(path_obj)\strcspn.obj \
$(path_obj)\strdiff.obj \
$(path_obj)\strexpan.obj \
$(path_obj)\stringp.obj \
$(path_obj)\strleft.obj \
$(path_obj)\strpbrk.obj \
$(path_obj)\strright.obj
@@ -113,29 +121,57 @@ $(path_obj)\strleft.obj : {$(path_c)}strleft.c $(path_h)\extend.h $(path_h)\t
$(path_obj)\strpbrk.obj : {$(path_c)}strpbrk.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\strright.obj : {$(path_c)}strright.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\msgdut.obj : {$(path_c)}msgdut.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\msggal.obj : {$(path_c)}msggal.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\msgpor.obj : {$(path_c)}msgpor.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\msgspa.obj : {$(path_c)}msgspa.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\msguk.obj : {$(path_c)}msguk.c $(path_h)\extend.h $(path_h)\types.h
$(path_obj)\dynsym.obj : source\vm\dynsym.c $(path_h)\extend.h $(path_h)\types.h
icc /C+ $(c_opt) /Fo$@ /Tpsource\vm\dynsym.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\error.obj : $(path_prg)\error.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour $(path_prg)\error /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tp$(path_prg)\error.c
$(path_obj)\asort.obj : {$(path_prg)}\asort.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\rtl\asort /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tpsource\rtl\asort.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\errorsys.obj : $(path_prg)\errorsys.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour $(path_prg)\errorsys /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tp$(path_prg)\errorsys.c
$(path_obj)\error.obj : {$(path_prg)}\error.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\rtl\error /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tpsource\rtl\error.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\tclass.obj : $(path_prg)\tclass.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour $(path_prg)\tclass /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tp$(path_prg)\tclass.c
$(path_obj)\errorsys.obj : {$(path_prg)}\errorsys.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\rtl\errorsys /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tp$source\rtl\errorsys.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\objfunc.obj : {$(path_prg)}\objfunc.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\rtl\objfunc /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tpsource\rtl\objfunc.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\tclass.obj : {$(path_prg)}\tclass.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\rtl\tclass /n /osource\rtl
icc /C+ $(c_opt) /Fo$@ /Tpsource\rtl\tclass.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\msguk.obj : {$(path_c)}msguk.c $(path_h)\extend.h $(path_h)\types.h
icc /C+ $(c_opt) /Fo$@ /Tpsource\rtl\natmsg\msguk.c
ilib .\libs\icc\harbour.lib -+$@,,
$(path_obj)\stringp.obj : {$(path_prg)}\stringp.prg $(path_h)\pcode.h $(path_h)\init.h $(path_h)\extend.h $(path_h)\types.h {$(path_exe)}harbour.exe
$(path_exe)\harbour source\tools\stringp /n /osource\tools
icc /C+ $(c_opt) /Fo$@ /Tpsource\tools\stringp.c
ilib .\libs\icc\hbtools.lib -+$@,,
{source\rtl}.c{$(path_obj)}.obj:
icc /C+ $(c_opt) /Fo$@ /Tp$<
ilib .\libs\icc\harbour.lib -+$@,,
{source\rtl\natmsg}.c{$(path_obj)}.obj:
icc /C+ $(c_opt) /Fo$@ /Tp$<
{source\vm}.c{$(path_obj)}.obj:
icc /C+ $(c_opt) /Fo$@ /Tp$<
ilib .\libs\icc\harbour.lib -+$@,,

View File

@@ -48,51 +48,51 @@ PDYNSYM msgClassName = 0, msgClassH = 0, msgEval = 0, msgClassSel = 0;
/* All functions contained in classes.c */
HARBOUR CLASSADD();
HARBOUR CLASSCREATE();
HARBOUR CLASSDEL();
static HARBOUR ClassH();
HARBOUR CLASSINSTANCE();
HARBOUR CLASSMOD();
static HARBOUR ClassName();
HARBOUR CLASSNAME();
static HARBOUR ClassSel();
HARBOUR CLASSADD( void );
HARBOUR CLASSCREATE( void );
HARBOUR CLASSDEL( void );
static HARBOUR ClassH( void );
HARBOUR CLASSINSTANCE( void );
HARBOUR CLASSMOD( void );
static HARBOUR ClassName( void );
HARBOUR CLASSNAME( void );
static HARBOUR ClassSel( void );
static void DictRealloc( PCLASS );
static HARBOUR EvalInline();
static HARBOUR GetClassData();
static HARBOUR GetData();
static HARBOUR EvalInline( void );
static HARBOUR GetClassData( void );
static HARBOUR GetData( void );
HARBOURFUNC GetMethod( PHB_ITEM, PSYMBOL );
ULONG hb_isMessage( PHB_ITEM, char *);
HARBOUR ISMESSAGE();
HARBOUR OCLONE();
HARBOUR OSEND();
HARBOUR ISMESSAGE( void );
HARBOUR OCLONE( void );
HARBOUR OSEND( void );
void ReleaseClass( PCLASS );
void ReleaseClasses();
static HARBOUR SelectSuper();
static HARBOUR SetClassData();
static HARBOUR SetData();
static HARBOUR Virtual();
HARBOUR __INSTSUPER();
HARBOUR __WDATAS();
HARBOUR __WDATADEC();
HARBOUR __WDATAINC();
void ReleaseClasses( void );
static HARBOUR SelectSuper( void );
static HARBOUR SetClassData( void );
static HARBOUR SetData( void );
static HARBOUR Virtual( void );
HARBOUR __INSTSUPER( void );
HARBOUR __WDATAS( void );
HARBOUR __WDATADEC( void );
HARBOUR __WDATAINC( void );
/* All function contained in matching objfunc.prg */
HARBOUR AODATA();
HARBOUR AOGET();
HARBOUR AOMETHOD();
HARBOUR AOSET();
HARBOUR ISDATA();
HARBOUR ISMETHOD();
HARBOUR OADDDATA();
HARBOUR OADDINLINE();
HARBOUR OADDMETHOD();
HARBOUR ODELDATA();
HARBOUR ODELINLINE();
HARBOUR ODELMETHOD();
HARBOUR OMODINLINE();
HARBOUR OMODMETHOD();
HARBOUR AODATA( void );
HARBOUR AOGET( void );
HARBOUR AOMETHOD( void );
HARBOUR AOSET( void );
HARBOUR ISDATA( void );
HARBOUR ISMETHOD( void );
HARBOUR OADDDATA( void );
HARBOUR OADDINLINE( void );
HARBOUR OADDMETHOD( void );
HARBOUR ODELDATA( void );
HARBOUR ODELINLINE( void );
HARBOUR ODELMETHOD( void );
HARBOUR OMODINLINE( void );
HARBOUR OMODMETHOD( void );
/* Exported symbols of both classes.c and objfunc.prg */
@@ -143,7 +143,7 @@ void Classes__InitSymbols( void )
* <nType> see MET_*
* <xInit> Optional initializer for DATA
*/
HARBOUR CLASSADD()
HARBOUR CLASSADD()
{
WORD wClass = _parnl( 1 );
WORD wType = _parni( 4 );
@@ -242,7 +242,7 @@ HARBOUR CLASSADD()
* <nDatas> Number of DATAs in the class
* <hSuper> Optional handle of superclass
*/
HARBOUR CLASSCREATE()
HARBOUR CLASSCREATE()
{
WORD wSuper = _parni( 3 ); /* Super class present */
WORD wSize;
@@ -302,7 +302,7 @@ HARBOUR CLASSCREATE()
* <oObj> Object
* <cMessage> Message
*/
HARBOUR CLASSDEL()
HARBOUR CLASSDEL()
{
PHB_ITEM pString = _param( 2, IT_STRING );
PSYMBOL pMessage = GetDynSym( pString->value.szText )->pSymbol;
@@ -369,7 +369,7 @@ static HARBOUR ClassH( void )
*
* Create a new object from class definition <hClass>
*/
HARBOUR CLASSINSTANCE()
HARBOUR CLASSINSTANCE()
{
WORD wClass = _parni( 1 );
WORD wAt, wLimit;
@@ -397,7 +397,7 @@ HARBOUR CLASSINSTANCE()
*
* Modify message (only for INLINE and METHOD)
*/
HARBOUR CLASSMOD()
HARBOUR CLASSMOD()
{
PHB_ITEM pString = _param( 2, IT_STRING );
PSYMBOL pMessage = GetDynSym( pString->value.szText )->pSymbol;
@@ -435,7 +435,7 @@ HARBOUR CLASSMOD()
_errPutDescription(pError, "CLASSMOD: Cannot modify a DATA item");
_errLaunch(pError);
_errRelease(pError);
}
}
else /* Modify METHOD */
pClass->pMethods[ wAt ].pFunction = ( HARBOURFUNC ) _parnl( 3 );
}
@@ -451,7 +451,7 @@ HARBOUR CLASSMOD()
static HARBOUR ClassName( void )
{
PHB_ITEM pItemRef;
if( IS_BYREF( stack.pBase + 1 ) ) /* Variables by reference */
pItemRef = stack.pItems + ( stack.pBase + 1 )->value.wItem;
else
@@ -466,7 +466,7 @@ static HARBOUR ClassName( void )
*
* Returns class name of <hClass>
*/
HARBOUR CLASSNAME()
HARBOUR CLASSNAME()
{
PHB_ITEM pObject = _param( 0, IT_OBJECT );
WORD wClass;
@@ -744,7 +744,7 @@ ULONG hb_isMessage( PHB_ITEM pObject, char *szString )
*
* Is <cSymbol> a valid message for the <oObj>
*/
HARBOUR ISMESSAGE()
HARBOUR ISMESSAGE()
{
PHB_ITEM pObject = _param( 1, IT_OBJECT );
PHB_ITEM pString = _param( 2, IT_STRING );
@@ -792,8 +792,8 @@ HARBOUR OCLONE( void )
*
* Send a message to an object
*/
HARBOUR OSEND()
{
HARBOUR OSEND()
{
PHB_ITEM pObject = _param( 1, IT_OBJECT );
PHB_ITEM pMessage = _param( 2, IT_STRING );
WORD w;
@@ -929,8 +929,8 @@ static HARBOUR Virtual( void )
*
* Instance super class and return class handle
*/
HARBOUR __INSTSUPER( void )
{
HARBOUR __INSTSUPER( void )
{
PHB_ITEM pString = _param( 1, IT_STRING );
PDYNSYM pDynSym;
PHB_ITEM pSuperCls;
@@ -981,7 +981,7 @@ HARBOUR __INSTSUPER( void )
*
* Return number of datas and decrease
*/
HARBOUR __WDATADEC()
HARBOUR __WDATADEC()
{
WORD wClass = _parnl( 1 );
@@ -1009,12 +1009,12 @@ HARBOUR __WDATAINC()
*
* Return number of datas
*/
HARBOUR __WDATAS()
HARBOUR __WDATAS()
{
WORD wClass = _parnl( 1 );
if( wClass )
_retni( pClasses[ wClass - 1 ].wDatas );
_retni( pClasses[ wClass - 1 ].wDatas );
}

View File

@@ -22,7 +22,7 @@ extern STACK stack;
extern char *hb_monthsname[];
extern char *hb_daysname[];
char *hb_cmonth( month )
char *hb_cmonth( int month )
{
if( month >= 1 && month <= 12 )
return hb_monthsname[ month - 1 ];
@@ -30,7 +30,7 @@ char *hb_cmonth( month )
return "";
}
char *hb_cdow( day )
char *hb_cdow( int day )
{
if( day >= 1 && day <= 7 )
return hb_daysname[ day - 1 ];
@@ -47,7 +47,7 @@ long hb_dateEncode( long lDay, long lMonth, long lYear )
if (lMonth >= 1 && lMonth <= 12 && lDay >= 1
&& lYear >= 1 && lYear <= 2999)
{
/* Month, year, and lower day limits are simple,
/* Month, year, and lower day limits are simple,
but upper day limit is dependent upon month and leap year */
BOOL bLeapYear = FALSE;
int aiDayLimit [12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
@@ -60,7 +60,7 @@ long hb_dateEncode( long lDay, long lMonth, long lYear )
if( lYear % 400 == 0) bLeapYear = TRUE; /* Leap century */
}
else bLeapYear = TRUE; /* Leap year */
if( bLeapYear ) aiDayLimit[ 1 ] = 29;
}
if( lDay <= (long)aiDayLimit[ (int)lMonth - 1 ] ) bValid = TRUE;
@@ -223,7 +223,7 @@ char * hb_dtoc (char * szDate, char * szDateFormat)
digit_count--;
}
default:
if (!used_d && format_count < size)
if (!used_d && format_count < size)
{
szDateFormat [format_count++] = szDate [7];
digit_count--;
@@ -236,25 +236,25 @@ char * hb_dtoc (char * szDate, char * szDateFormat)
switch (digit_count)
{
case 4:
if (!used_m && format_count < size)
if (!used_m && format_count < size)
{
szDateFormat [format_count++] = '0';
digit_count--;
}
case 3:
if (!used_m && format_count < size)
if (!used_m && format_count < size)
{
szDateFormat [format_count++] = '0';
digit_count--;
}
case 2:
if (!used_m && format_count < size)
if (!used_m && format_count < size)
{
szDateFormat [format_count++] = szDate [4];
digit_count--;
}
default:
if (!used_m && format_count < size)
if (!used_m && format_count < size)
{
szDateFormat [format_count++] = szDate [5];
digit_count--;
@@ -267,25 +267,25 @@ char * hb_dtoc (char * szDate, char * szDateFormat)
switch (digit_count)
{
case 4:
if (!used_y && format_count < size)
if (!used_y && format_count < size)
{
szDateFormat [format_count++] = szDate [0];
digit_count--;
}
case 3:
if (!used_y && format_count < size)
if (!used_y && format_count < size)
{
szDateFormat [format_count++] = szDate [1];
digit_count--;
}
case 2:
if (!used_y && format_count < size)
if (!used_y && format_count < size)
{
szDateFormat [format_count++] = szDate [2];
digit_count--;
}
default:
if (!used_y && format_count < size)
if (!used_y && format_count < size)
{
szDateFormat [format_count++] = szDate [3];
digit_count--;
@@ -299,7 +299,7 @@ char * hb_dtoc (char * szDate, char * szDateFormat)
}
}
}
else
else
{
/* Not a valid date string, so return a blank date with separators */
format_count = size; /* size is either 8 or 10 */

View File

@@ -6,6 +6,9 @@
#include "extend.h"
#include "types.h"
extern void Classes__InitSymbols( void ); /* Needed by C++ compilers */
extern void Descend__InitSymbols( void ); /* Needed by C++ compilers */
void ProcessSymbols( SYMBOL *, WORD );
HARBOUR AADD( void );