diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 5ee778e19d..14f405d1b9 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,21 @@ +19990802-19:45 GMT+1 Victor Szel + + include/dates.h + source/rtl/dates.c - const keyword added. + - include/ctoharb.h - extern StackShow() removed. + - include/set.h - HARBOUR externs removed. + * include/extend.h hb_item*() moved to + include/itemapi.h + source/rtl/console.c + source/rtl/transfrm.c + * source/rtl/console.c + source/rtl/strings.c + include/itemapi.h - hb_str() -> hb_itemStr() + %! source/rtl/transfrm.c - Fixed the case when no picture is passed. + Got rid of NUMDEFAULT(). Now using hb_itemStr() instead of + HARBOUR function callback to HB_STR(), some callbacks are still + left though. + * include/*.h - Some more cleanup. + 19990802-18:23 GMT+1 Victor Szel + source/tools/mathx.c - Added PI() Posted by Matteo Baccan (baccan@isanet.it) @@ -65,8 +83,8 @@ include/dates.h hb_dateStrPut(), hb_dateStrGet() added. Redundant code converted to calls for these. - * include/set.h - source/vm/hvm.c- Extern decls moved to source/rtl/set.c and to + * include/set.h - Extern decls moved to source/rtl/set.c and to + source/vm/hvm.c * source/rtl/codebloc.c - Extern decls moved to include/extend.h * source/vm/initsymb.c - Extern decl moved to include/extend.h + include/*.h - extern keyword added to all extern declarations. diff --git a/harbour/include/ctoharb.h b/harbour/include/ctoharb.h index 6743265a2a..bf9617cebd 100644 --- a/harbour/include/ctoharb.h +++ b/harbour/include/ctoharb.h @@ -44,6 +44,5 @@ extern void PushLogical( int iTrueFalse ); /* pushes a logical value onto the st extern void PushSymbol( PSYMBOL ); extern void Do( WORD wParams ); /* invokes the virtual machine */ extern void Function( WORD wParams ); /* invokes the virtual machine */ -extern void StackShow( void ); #endif /* HB_CTOHARB_H_ */ diff --git a/harbour/include/dates.h b/harbour/include/dates.h index 70c7a17818..83e70e26f7 100644 --- a/harbour/include/dates.h +++ b/harbour/include/dates.h @@ -14,6 +14,6 @@ extern char * hb_dtoc( const char * szDate, char * szFormattedDate, const char extern long hb_dateEncode( long lDay, long lMonth, long lYear ); extern void hb_dateDecode( long julian, long * plDay, long * plMonth, long * plYear ); extern void hb_dateStrPut( char * szDate, long lDay, long lMonth, long lYear ); -extern void hb_dateStrGet( char * szDate, long * plDay, long * plMonth, long * plYear ); +extern void hb_dateStrGet( const char * szDate, long * plDay, long * plMonth, long * plYear ); #endif /* HB_DATES_H_ */ diff --git a/harbour/include/errorapi.h b/harbour/include/errorapi.h index ebaa14e859..87b21ab338 100644 --- a/harbour/include/errorapi.h +++ b/harbour/include/errorapi.h @@ -71,41 +71,40 @@ /* Standard API */ -extern char * hb_errGetDescription( PHB_ITEM pError ); -extern char * hb_errGetFileName( PHB_ITEM pError ); -extern USHORT hb_errGetFlags( PHB_ITEM pError ); -extern USHORT hb_errGetGenCode( PHB_ITEM pError ); -extern char * hb_errGetOperation( PHB_ITEM pError ); -extern USHORT hb_errGetOsCode( PHB_ITEM pError ); -extern USHORT hb_errGetSeverity( PHB_ITEM pError ); -extern USHORT hb_errGetSubCode( PHB_ITEM pError ); -extern char * hb_errGetSubSystem( PHB_ITEM pError ); -extern USHORT hb_errGetTries( PHB_ITEM pError ); -extern WORD hb_errLaunch( PHB_ITEM pError ); -extern PHB_ITEM hb_errNew( void ); -extern PHB_ITEM hb_errPutDescription( PHB_ITEM pError, char * szDescription ); -extern PHB_ITEM hb_errPutFileName( PHB_ITEM pError, char * szFileName ); -extern PHB_ITEM hb_errPutFlags( PHB_ITEM pError, USHORT uiFlags ); -extern PHB_ITEM hb_errPutGenCode( PHB_ITEM pError, USHORT uiGenCode ); -extern PHB_ITEM hb_errPutOperation( PHB_ITEM pError, char * szOperation ); -extern PHB_ITEM hb_errPutOsCode( PHB_ITEM pError, USHORT uiOsCode ); -extern PHB_ITEM hb_errPutSeverity( PHB_ITEM pError, USHORT uiSeverity ); -extern PHB_ITEM hb_errPutSubCode( PHB_ITEM pError, USHORT uiSubCode ); -extern PHB_ITEM hb_errPutSubSystem( PHB_ITEM pError, char * szSubSystem ); -extern PHB_ITEM hb_errPutTries( PHB_ITEM pError, USHORT uiTries ); -extern void hb_errRelease( PHB_ITEM pError ); +extern char * hb_errGetDescription ( PHB_ITEM pError ); +extern char * hb_errGetFileName ( PHB_ITEM pError ); +extern USHORT hb_errGetFlags ( PHB_ITEM pError ); +extern USHORT hb_errGetGenCode ( PHB_ITEM pError ); +extern char * hb_errGetOperation ( PHB_ITEM pError ); +extern USHORT hb_errGetOsCode ( PHB_ITEM pError ); +extern USHORT hb_errGetSeverity ( PHB_ITEM pError ); +extern USHORT hb_errGetSubCode ( PHB_ITEM pError ); +extern char * hb_errGetSubSystem ( PHB_ITEM pError ); +extern USHORT hb_errGetTries ( PHB_ITEM pError ); +extern WORD hb_errLaunch ( PHB_ITEM pError ); +extern PHB_ITEM hb_errNew ( void ); +extern PHB_ITEM hb_errPutDescription ( PHB_ITEM pError, char * szDescription ); +extern PHB_ITEM hb_errPutFileName ( PHB_ITEM pError, char * szFileName ); +extern PHB_ITEM hb_errPutFlags ( PHB_ITEM pError, USHORT uiFlags ); +extern PHB_ITEM hb_errPutGenCode ( PHB_ITEM pError, USHORT uiGenCode ); +extern PHB_ITEM hb_errPutOperation ( PHB_ITEM pError, char * szOperation ); +extern PHB_ITEM hb_errPutOsCode ( PHB_ITEM pError, USHORT uiOsCode ); +extern PHB_ITEM hb_errPutSeverity ( PHB_ITEM pError, USHORT uiSeverity ); +extern PHB_ITEM hb_errPutSubCode ( PHB_ITEM pError, USHORT uiSubCode ); +extern PHB_ITEM hb_errPutSubSystem ( PHB_ITEM pError, char * szSubSystem ); +extern PHB_ITEM hb_errPutTries ( PHB_ITEM pError, USHORT uiTries ); +extern void hb_errRelease ( PHB_ITEM pError ); /* Error launchers */ -extern WORD hb_errorRT_BASE( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); -extern WORD hb_errorRT_TERMINAL( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); -extern WORD hb_errorRT_DBCMD( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); -extern WORD hb_errorRT_TOOLS( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); +extern WORD hb_errorRT_BASE ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); +extern WORD hb_errorRT_TERMINAL ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); +extern WORD hb_errorRT_DBCMD ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); +extern WORD hb_errorRT_TOOLS ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ); /* TODO: Enable this: -extern void hb_errorInternal( ULONG ulCode ); +extern void hb_errorInternal ( ULONG ulCode ); */ -/* Reads error description in national language */ -extern char *hb_errorNatDescription( ULONG ulGenCode ); +extern char * hb_errorNatDescription ( ULONG ulGenCode ); /* Reads error description in national language */ #endif /* HB_ERRORAPI_H_ */ diff --git a/harbour/include/extend.h b/harbour/include/extend.h index 13d7cc4ab8..c7b0ed23be 100644 --- a/harbour/include/extend.h +++ b/harbour/include/extend.h @@ -301,16 +301,10 @@ extern void hb_arrayDel( PHB_ITEM pArray, ULONG ulIndex ); extern PHB_ITEM hb_arrayClone( PHB_ITEM pArray ); extern void hb_arrayAdd( PHB_ITEM pArray, PHB_ITEM pItemValue ); -extern int hb_itemStrCmp( PHB_ITEM pFirst, PHB_ITEM pSecond, BOOL bForceExact ); /* our string compare */ -extern void hb_itemCopy( PHB_ITEM pDest, PHB_ITEM pSource ); /* copies an item to one place to another respecting its containts */ -extern void hb_itemClear( PHB_ITEM pItem ); -extern PHB_ITEM hb_itemUnRef( PHB_ITEM pItem ); /* de-references passed variable */ - #define HB_STRGREATER_EQUAL 0 #define HB_STRGREATER_LEFT 1 #define HB_STRGREATER_RIGHT 2 -extern char * hb_str( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ); /* convert number to string */ extern int hb_stricmp( const char *s1, const char *s2 ); extern BOOL hb_strempty( char * szText, ULONG ulLen ); extern WORD hb_strgreater( char * sz1, char * sz2 ); diff --git a/harbour/include/filesys.h b/harbour/include/filesys.h index 3a32af005d..b8d8f25396 100644 --- a/harbour/include/filesys.h +++ b/harbour/include/filesys.h @@ -1,4 +1,4 @@ -/* +/* * $Id$ */ @@ -54,26 +54,26 @@ typedef void * ERRORP; typedef int FHANDLE; typedef PBYTE BYTEP; -extern BOOL hb_fsChDir ( BYTEP fpDirName ); -extern USHORT hb_fsChDrv ( BYTEP nDrive ); -extern void hb_fsClose ( FHANDLE hFileHandle ); -extern void hb_fsCommit ( FHANDLE hFileHandle ); -extern FHANDLE hb_fsCreate ( BYTEP fpFilename, USHORT uiAttribute ); -extern BYTEP hb_fsCurDir ( USHORT uiDrive ); -extern BYTE hb_fsCurDrv ( void ); -extern void hb_fsDelete ( BYTEP fpFilename ); -extern USHORT hb_fsError ( void ); -extern FHANDLE hb_fsExtOpen( BYTEP fpFilename, BYTEP fpDefExt, - USHORT uiFlags, BYTEP fpPaths, ERRORP pError ); -extern USHORT hb_fsIsDrv ( BYTE nDrive ); -extern BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart, - ULONG ulLength, USHORT uiMode ); -extern BOOL hb_fsMkDir ( BYTEP fpDirName ); -extern FHANDLE hb_fsOpen ( BYTEP fpFilename, USHORT uiFlags ); -extern USHORT hb_fsRead ( FHANDLE hFileHandle, BYTEP fpBuff, USHORT uiCount ); -extern BOOL hb_fsRmDir ( BYTEP fpDirName ); -extern void hb_fsRename ( BYTEP fpOldName, BYTEP fpNewName ); -extern ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiMode ); -extern USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTEP fpBuff, USHORT uiCount ); +extern BOOL hb_fsChDir ( BYTEP fpDirName ); +extern USHORT hb_fsChDrv ( BYTEP nDrive ); +extern void hb_fsClose ( FHANDLE hFileHandle ); +extern void hb_fsCommit ( FHANDLE hFileHandle ); +extern FHANDLE hb_fsCreate ( BYTEP fpFilename, USHORT uiAttribute ); +extern BYTEP hb_fsCurDir ( USHORT uiDrive ); +extern BYTE hb_fsCurDrv ( void ); +extern void hb_fsDelete ( BYTEP fpFilename ); +extern USHORT hb_fsError ( void ); +extern FHANDLE hb_fsExtOpen ( BYTEP fpFilename, BYTEP fpDefExt, + USHORT uiFlags, BYTEP fpPaths, ERRORP pError ); +extern USHORT hb_fsIsDrv ( BYTE nDrive ); +extern BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart, + ULONG ulLength, USHORT uiMode ); +extern BOOL hb_fsMkDir ( BYTEP fpDirName ); +extern FHANDLE hb_fsOpen ( BYTEP fpFilename, USHORT uiFlags ); +extern USHORT hb_fsRead ( FHANDLE hFileHandle, BYTEP fpBuff, USHORT uiCount ); +extern BOOL hb_fsRmDir ( BYTEP fpDirName ); +extern void hb_fsRename ( BYTEP fpOldName, BYTEP fpNewName ); +extern ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiMode ); +extern USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTEP fpBuff, USHORT uiCount ); #endif /* HB_FILESYS_H_ */ diff --git a/harbour/include/hberrors.h b/harbour/include/hberrors.h index b3e9920d18..8528873ea5 100644 --- a/harbour/include/hberrors.h +++ b/harbour/include/hberrors.h @@ -39,28 +39,28 @@ /* * Errors generated by Harbour compiler */ -#define ERR_OUTSIDE 1 -#define ERR_FUNC_DUPL 2 -#define ERR_VAR_DUPL 3 -#define ERR_FOLLOWS_EXEC 4 -#define ERR_OUTER_VAR 5 -#define ERR_NUMERIC_FORMAT 6 -#define ERR_STRING_TERMINATOR 7 -#define ERR_FUNC_RESERVED 8 -#define ERR_ILLEGAL_INIT 9 -#define ERR_ENDIF 10 -#define ERR_ENDDO 11 -#define ERR_ENDCASE 12 -#define ERR_NEXTFOR 13 -#define ERR_UNMATCHED_ELSE 14 -#define ERR_UNMATCHED_ELSEIF 15 -#define ERR_SYNTAX 16 -#define ERR_UNCLOSED_STRU 17 -#define ERR_UNMATCHED_EXIT 18 -#define ERR_SYNTAX2 19 -#define ERR_INCOMPLETE_STMT 20 -#define ERR_CHECKING_ARGS 21 -#define ERR_INVALID_LVALUE 22 +#define ERR_OUTSIDE 1 +#define ERR_FUNC_DUPL 2 +#define ERR_VAR_DUPL 3 +#define ERR_FOLLOWS_EXEC 4 +#define ERR_OUTER_VAR 5 +#define ERR_NUMERIC_FORMAT 6 +#define ERR_STRING_TERMINATOR 7 +#define ERR_FUNC_RESERVED 8 +#define ERR_ILLEGAL_INIT 9 +#define ERR_ENDIF 10 +#define ERR_ENDDO 11 +#define ERR_ENDCASE 12 +#define ERR_NEXTFOR 13 +#define ERR_UNMATCHED_ELSE 14 +#define ERR_UNMATCHED_ELSEIF 15 +#define ERR_SYNTAX 16 +#define ERR_UNCLOSED_STRU 17 +#define ERR_UNMATCHED_EXIT 18 +#define ERR_SYNTAX2 19 +#define ERR_INCOMPLETE_STMT 20 +#define ERR_CHECKING_ARGS 21 +#define ERR_INVALID_LVALUE 22 #define WARN_AMBIGUOUS_VAR 1 #define WARN_MEMVAR_ASSUMED 2 @@ -71,9 +71,9 @@ #define WARN_NUMERIC_TYPE 7 #define WARN_OPERANDS_INCOMPATBLE 8 #define WARN_ASSIGN_SUSPECT 9 -#define WARN_OPERAND_SUSPECT 10 -#define WARN_LOGICAL_SUSPECT 11 -#define WARN_NUMERIC_SUSPECT 12 +#define WARN_OPERAND_SUSPECT 10 +#define WARN_LOGICAL_SUSPECT 11 +#define WARN_NUMERIC_SUSPECT 12 /* * Errors generated by Harbour preprocessor @@ -88,7 +88,7 @@ #define ERR_RECURSE 8 #define ERR_WRONG_DIRECTIVE 9 -extern void GenError( char* _szErrors[], char, int, char*, char * ); /* generic parsing error management function */ -extern void GenWarning( int, char*, char * ); /* generic parsing warning management function */ +extern void GenError( char* _szErrors[], char, int, char*, char * ); /* generic parsing error management function */ +extern void GenWarning( int, char*, char * ); /* generic parsing warning management function */ #endif /* HB_ERROR_H_ */ diff --git a/harbour/include/hbver.h b/harbour/include/hbver.h index aae4e20c4a..b3896f6877 100644 --- a/harbour/include/hbver.h +++ b/harbour/include/hbver.h @@ -1,4 +1,4 @@ -/* +/* * $Id$ */ @@ -61,21 +61,21 @@ #define HB_VER_H_ /* - extern int hb_major; - extern int hb_minor; - extern char * hb_revision; - extern int hb_build; - extern int hb_year; - extern int hb_month; - extern int hb_day; +extern int hb_major; +extern int hb_minor; +extern char * hb_revision; +extern int hb_build; +extern int hb_year; +extern int hb_month; +extern int hb_day; */ - #define hb_major 0 /* Major version number */ - #define hb_minor 0 /* Minor version number */ - #define hb_revision "" /* Revision letter */ - #define hb_build 29 /* Build number */ - #define hb_year 1999 /* Build year */ - #define hb_month 7 /* Build month */ - #define hb_day 21 /* Build day */ +#define hb_major 0 /* Major version number */ +#define hb_minor 0 /* Minor version number */ +#define hb_revision "" /* Revision letter */ +#define hb_build 29 /* Build number */ +#define hb_year 1999 /* Build year */ +#define hb_month 7 /* Build month */ +#define hb_day 21 /* Build day */ #endif /* HB_VER_H_ */ diff --git a/harbour/include/inkey.h b/harbour/include/inkey.h index e0ae2a310f..d4dff8f477 100644 --- a/harbour/include/inkey.h +++ b/harbour/include/inkey.h @@ -43,10 +43,10 @@ #include "hbdefs.h" /* Harbour keyboard support functions */ -extern int hb_inkeyGet( void ); /* Extract the next key from the Harbour keyboard buffer */ -extern int hb_inkeyLast( void ); /* Return the value of the last key that was extracted */ -extern int hb_inkeyNext( void ); /* Return the next key without extracting it */ -extern void hb_inkeyPoll( void ); /* Poll the console keyboard to stuff the Harbour buffer */ -extern void hb_inkeyReset( BOOL allocate ); /* Reset the Harbour keyboard buffer */ +extern int hb_inkeyGet( void ); /* Extract the next key from the Harbour keyboard buffer */ +extern int hb_inkeyLast( void ); /* Return the value of the last key that was extracted */ +extern int hb_inkeyNext( void ); /* Return the next key without extracting it */ +extern void hb_inkeyPoll( void ); /* Poll the console keyboard to stuff the Harbour buffer */ +extern void hb_inkeyReset( BOOL allocate ); /* Reset the Harbour keyboard buffer */ #endif diff --git a/harbour/include/itemapi.h b/harbour/include/itemapi.h index b1d61d9b60..694a10b809 100644 --- a/harbour/include/itemapi.h +++ b/harbour/include/itemapi.h @@ -36,32 +36,40 @@ typedef struct PHB_ITEM pItems[ HB_EVAL_PARAM_MAX_ + 1 ]; } EVALINFO, * PEVALINFO; -extern PHB_ITEM hb_evalLaunch( PEVALINFO pEvalInfo ); -extern BOOL hb_evalNew( PEVALINFO pEvalInfo, PHB_ITEM pItem ); -extern BOOL hb_evalPutParam( PEVALINFO pEvalInfo, PHB_ITEM pItem ); -extern BOOL hb_evalRelease( PEVALINFO pEvalInfo ); +extern PHB_ITEM hb_evalLaunch ( PEVALINFO pEvalInfo ); +extern BOOL hb_evalNew ( PEVALINFO pEvalInfo, PHB_ITEM pItem ); +extern BOOL hb_evalPutParam ( PEVALINFO pEvalInfo, PHB_ITEM pItem ); +extern BOOL hb_evalRelease ( PEVALINFO pEvalInfo ); -extern PHB_ITEM hb_itemArrayGet( PHB_ITEM pArray, ULONG ulIndex ); -extern PHB_ITEM hb_itemArrayNew( ULONG ulLen ); -extern PHB_ITEM hb_itemArrayPut( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem ); -extern ULONG hb_itemCopyC( PHB_ITEM pItem, char *szBuffer, ULONG ulLen ); -extern BOOL hb_itemFreeC( char *szText ); -extern char * hb_itemGetC( PHB_ITEM pItem ); -extern char * hb_itemGetDS( PHB_ITEM pItem, char *szDate ); -extern BOOL hb_itemGetL( PHB_ITEM pItem ); -extern double hb_itemGetND( PHB_ITEM pItem ); -extern long hb_itemGetNL( PHB_ITEM pItem ); -extern PHB_ITEM hb_itemNew( PHB_ITEM pNull ); -extern PHB_ITEM hb_itemParam( WORD wParam ); -extern PHB_ITEM hb_itemPutC( PHB_ITEM pItem, char *szText ); -extern PHB_ITEM hb_itemPutCL( PHB_ITEM pItem, char *nszText, ULONG ulLen ); -extern PHB_ITEM hb_itemPutDS( PHB_ITEM pItem, char *szDate ); -extern PHB_ITEM hb_itemPutL( PHB_ITEM pItem, BOOL bValue ); -extern PHB_ITEM hb_itemPutND( PHB_ITEM pItem, double dNumber ); -extern PHB_ITEM hb_itemPutNL( PHB_ITEM pItem, long lNumber ); -extern BOOL hb_itemRelease( PHB_ITEM pItem ); -extern PHB_ITEM hb_itemReturn( PHB_ITEM pItem ); -extern ULONG hb_itemSize( PHB_ITEM pItem ); -extern WORD hb_itemType( PHB_ITEM pItem ); +extern PHB_ITEM hb_itemArrayGet ( PHB_ITEM pArray, ULONG ulIndex ); +extern PHB_ITEM hb_itemArrayNew ( ULONG ulLen ); +extern PHB_ITEM hb_itemArrayPut ( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem ); +extern ULONG hb_itemCopyC ( PHB_ITEM pItem, char *szBuffer, ULONG ulLen ); +extern BOOL hb_itemFreeC ( char *szText ); +extern char * hb_itemGetC ( PHB_ITEM pItem ); +extern char * hb_itemGetDS ( PHB_ITEM pItem, char *szDate ); +extern BOOL hb_itemGetL ( PHB_ITEM pItem ); +extern double hb_itemGetND ( PHB_ITEM pItem ); +extern long hb_itemGetNL ( PHB_ITEM pItem ); +extern PHB_ITEM hb_itemNew ( PHB_ITEM pNull ); +extern PHB_ITEM hb_itemParam ( WORD wParam ); +extern PHB_ITEM hb_itemPutC ( PHB_ITEM pItem, char *szText ); +extern PHB_ITEM hb_itemPutCL ( PHB_ITEM pItem, char *nszText, ULONG ulLen ); +extern PHB_ITEM hb_itemPutDS ( PHB_ITEM pItem, char *szDate ); +extern PHB_ITEM hb_itemPutL ( PHB_ITEM pItem, BOOL bValue ); +extern PHB_ITEM hb_itemPutND ( PHB_ITEM pItem, double dNumber ); +extern PHB_ITEM hb_itemPutNL ( PHB_ITEM pItem, long lNumber ); +extern BOOL hb_itemRelease ( PHB_ITEM pItem ); +extern PHB_ITEM hb_itemReturn ( PHB_ITEM pItem ); +extern ULONG hb_itemSize ( PHB_ITEM pItem ); +extern WORD hb_itemType ( PHB_ITEM pItem ); + +/* Non Clipper compliant API */ + +extern int hb_itemStrCmp ( PHB_ITEM pFirst, PHB_ITEM pSecond, BOOL bForceExact ); /* our string compare */ +extern void hb_itemCopy ( PHB_ITEM pDest, PHB_ITEM pSource ); /* copies an item to one place to another respecting its containts */ +extern void hb_itemClear ( PHB_ITEM pItem ); +extern PHB_ITEM hb_itemUnRef ( PHB_ITEM pItem ); /* de-references passed variable */ +extern char * hb_itemStr ( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ); /* convert number to string */ #endif /* HB_ITEMAPI_H_ */ diff --git a/harbour/include/set.h b/harbour/include/set.h index 37e6ace17f..09789582cd 100644 --- a/harbour/include/set.h +++ b/harbour/include/set.h @@ -190,8 +190,6 @@ extern int hb_set_althan; extern int hb_set_extrahan; extern int hb_set_printhan; -extern HARBOUR HB_SET( void ); -extern HARBOUR HB_SETCENTURY( void ); extern void hb_setInitialize( void ); extern void hb_setRelease( void ); diff --git a/harbour/source/rtl/console.c b/harbour/source/rtl/console.c index 82ef0272c7..e369e5505d 100644 --- a/harbour/source/rtl/console.c +++ b/harbour/source/rtl/console.c @@ -44,6 +44,7 @@ #include "hbsetup.h" #include "extend.h" +#include "itemapi.h" #include "ctoharb.h" #include "init.h" #include "dates.h" @@ -268,7 +269,7 @@ static void hb_out( WORD wParam, hb_out_func_typedef * hb_out_func ) case IT_DOUBLE: case IT_INTEGER: case IT_LONG: - szText = hb_str( pItem, 0, 0 ); /* Let hb_str() do the hard work */ + szText = hb_itemStr( pItem, 0, 0 ); /* Let hb_itemStr() do the hard work */ if( szText ) { hb_out_func( szText, strlen( szText ) ); @@ -989,7 +990,7 @@ HARBOUR HB_SHADOW (void) uiAttr = 7; else if( hb_pcount() == 5 ) uiAttr = hb_parni(5); - + if( hb_pcount() > 3 ) hb_gt_DrawShadow(hb_parni(1)+1,hb_parni(2)+1,hb_parni(3)+1,hb_parni(4)+1,uiAttr); #endif diff --git a/harbour/source/rtl/dates.c b/harbour/source/rtl/dates.c index b60fabee73..d9fc64f70a 100644 --- a/harbour/source/rtl/dates.c +++ b/harbour/source/rtl/dates.c @@ -181,7 +181,7 @@ void hb_dateStrPut( char * szDate, long lDay, long lMonth, long lYear ) szDate[ 7 ] = ( lDay % 10 ) + '0'; } -void hb_dateStrGet( char * szDate, long * plDay, long * plMonth, long * plYear ) +void hb_dateStrGet( const char * szDate, long * plDay, long * plMonth, long * plYear ) { if( szDate && strlen( szDate ) == 8 ) { diff --git a/harbour/source/rtl/strings.c b/harbour/source/rtl/strings.c index 0be1261bfa..856a5cd387 100644 --- a/harbour/source/rtl/strings.c +++ b/harbour/source/rtl/strings.c @@ -1215,7 +1215,8 @@ HARBOUR HB_VAL( void ) Note: The caller is responsible for calling hb_xfree to free the results buffer, but ONLY if the return value is not a NULL pointer! */ -char * hb_str( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ) +/* TODO: Move it to itemapi.c */ +char * hb_itemStr( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ) { char * szResult = 0; @@ -1309,7 +1310,7 @@ char * hb_str( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ) } /* converts a numeric to a string with optional width & precision. - calls hb_str() after validating parameters + calls hb_itemStr() after validating parameters */ HARBOUR HB_STR( void ) { @@ -1339,7 +1340,7 @@ HARBOUR HB_STR( void ) } if( bValid ) { - char * szResult = hb_str( pNumber, pWidth, pDec ); + char * szResult = hb_itemStr( pNumber, pWidth, pDec ); if( szResult ) { diff --git a/harbour/source/rtl/transfrm.c b/harbour/source/rtl/transfrm.c index b833d63a96..5edd9ab8ee 100644 --- a/harbour/source/rtl/transfrm.c +++ b/harbour/source/rtl/transfrm.c @@ -34,11 +34,15 @@ * partial copyright with regards to string handling */ +/* TODO: Getting rid of calling back HARBOUR HB_STR() function */ +/* and #include "ctohard.h" */ + +#include #include "extend.h" #include "init.h" -#include "errorapi.h" #include "ctoharb.h" -#include +#include "itemapi.h" +#include "errorapi.h" #include "dates.h" #include "set.h" @@ -353,34 +357,6 @@ char *NumPicture( char *szPic, long lPic, int iPicFlags, double dValue, return(szRet); } - -/* - NumDefault -> Handle default numerics. - - dValue : Number to picture - lRetSize : The size of the returned string is passed here ! -*/ - -void StackPop( void ); /* TOFIX: Should go away */ - -PHB_ITEM NumDefault( double dValue ) -{ /* Default number */ - PushSymbol ( hb_GetDynSym( "STR" )->pSymbol ); /* Push STR function */ - PushNil (); /* Function call. No object */ - - PushDouble ( dValue, hb_set.HB_SET_DECIMALS ); - /* Push value to transform */ - Function ( 1 ); /* 1 Parameter */ - StackPop (); /* Pop return value */ - if( stack.pPos->type != IT_STRING ) /* Is it a string */ - { - printf( "\nNUMDEFAULT: STR does not return string" ); - _exit(1); - } - return( stack.pPos ); -} - - /* DatePicture -> Handle dates. @@ -409,7 +385,6 @@ HARBOUR HB_TRANSFORM( void ) { PHB_ITEM pPic = hb_param( 2, IT_STRING);/* Picture string */ PHB_ITEM pExp = hb_param( 1, IT_ANY ); /* Input parameter */ - PHB_ITEM pItem; char *szPic = pPic->item.asString.value; char *szTemp; @@ -617,24 +592,19 @@ HARBOUR HB_TRANSFORM( void ) break; } case IT_INTEGER: - { - pItem = NumDefault( (double) pExp->item.asInteger.value ); - hb_retclen( pItem->item.asString.value, pItem->item.asInteger.length ); - hb_itemClear( pItem ); - break; - } case IT_LONG: - { - pItem = NumDefault( (double) pExp->item.asLong.value ); - hb_retclen( pItem->item.asString.value, pItem->item.asLong.length ); - hb_itemClear( pItem ); - break; - } case IT_DOUBLE: { - pItem = NumDefault( (double) pExp->item.asDouble.value ); - hb_retclen( pItem->item.asString.value, pItem->item.asDouble.length ); - hb_itemClear( pItem ); + char * szStr = hb_itemStr(pExp, 0, 0); + + if (szStr) + { + hb_retc( szStr ); + hb_xfree( szStr ); + } + else + hb_retc(""); + break; } case IT_DATE: