See ChangeLog entry 2000-10-10 16:30 UTC-0400 David G. Holm <dholm@jsd-llc.com>

This commit is contained in:
David G. Holm
2000-10-10 20:30:21 +00:00
parent a4eb34d33a
commit 3a8bbe3486
4 changed files with 28 additions and 11 deletions

View File

@@ -1,3 +1,17 @@
2000-10-10 16:30 UTC-0400 David G. Holm <dholm@jsd-llc.com>
* include/hberrors.h
* source/pp/pplib.c
% Changed the two char * parameters for hb_compGenError()
and hb_compGenWarning() to const char *.
* source/pp/ppcore.c
% Removed the artificial nested include file limit test and
replaced it with a test for errno == EMFILE after returning
from the OpenInclude() function, which starts by clearing
errno and does not try to search the path if the standard
open attempt results in errno being set to EMFILE.
% Added displaying the C RTL error message corresponding to
errno if OpenInclude() returns an error that isn't EMFILE.
2000-10-10 16:12 GMT+3 Alexander Kresin <alex@belacy.belgorod.su>
*contrib/rdd_ads/ads1.c
* fixed bug with creating compound indexes, reported by Antonio Linares

View File

@@ -146,8 +146,8 @@ extern "C" {
#define HB_PP_WARN_DEFINE_REDEF 1
#define HB_PP_WARN_NO_DIRECTIVES 2
extern void hb_compGenError( char * szErrors[], char cPrefix, int iError, char * szError1, char * szError2 ); /* generic parsing error management function */
extern void hb_compGenWarning( char * szWarnings[], char cPrefix, int iWarning, char * szWarning1, char * szWarning2); /* generic parsing warning management function */
extern void hb_compGenError( char * szErrors[], char cPrefix, int iError, const char * szError1, const char * szError2 ); /* generic parsing error management function */
extern void hb_compGenWarning( char * szWarnings[], char cPrefix, int iWarning, const char * szWarning1, const char * szWarning2); /* generic parsing warning management function */
#if defined(HB_EXTERN_C)
}

View File

@@ -63,6 +63,7 @@
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <errno.h>
#include "hbpp.h"
#include "hbcomp.h"
@@ -158,7 +159,7 @@ char * hb_pp_STD_CH = NULL;
/* Table with parse errors */
char * hb_pp_szErrors[] =
{
"Can\'t open #include file: \'%s\'",
"Can\'t open #include file: \'%s\'; %s",
"#else does not match #ifdef",
"#endif does not match #ifdef",
"Bad filename in #include",
@@ -437,9 +438,13 @@ int hb_pp_ParseDirective( char * sLine )
hb_compGenError( hb_pp_szErrors, 'F', HB_PP_ERR_WRONG_NAME, NULL, NULL );
*(sLine+i) = '\0';
/* if((handl_i = fopen(sLine, "r")) == NULL) */
if( !OpenInclude( sLine, hb_comp_pIncludePath, hb_comp_pFileName, ( cDelimChar == '>' ), szInclude ) )
hb_compGenError( hb_pp_szErrors, 'F', HB_PP_ERR_CANNOT_OPEN, sLine, NULL );
{
if( errno == 0 || errno == EMFILE )
hb_compGenError( hb_pp_szErrors, 'F', HB_PP_ERR_TOO_MANY_INCLUDES, sLine, NULL );
else
hb_compGenError( hb_pp_szErrors, 'F', HB_PP_ERR_CANNOT_OPEN, sLine, sys_errlist[ errno ] );
}
}
else if( i >= 4 && i <= 6 && memcmp( sDirective, "DEFINE", i ) == 0 )
@@ -2942,9 +2947,7 @@ static BOOL OpenInclude( char * szFileName, PATHNAMES * pSearch, PHB_FNAME pMain
HB_TRACE(HB_TR_DEBUG, ("OpenInclude(%s, %p, %p, %p, %d)", szFileName, pSearch, pMainFileName, fptr, (int) bStandardOnly));
if( hb_comp_files.iFiles > HB_PP_MAX_INCLUDES )
hb_compGenError( hb_pp_szErrors, 'F', HB_PP_ERR_TOO_MANY_INCLUDES, szFileName, NULL );
errno = 0;
if( bStandardOnly )
{
fptr = 0;
@@ -2963,7 +2966,7 @@ static BOOL OpenInclude( char * szFileName, PATHNAMES * pSearch, PHB_FNAME pMain
hb_xfree( pFileName );
}
if( !fptr && pSearch )
if( !fptr && pSearch && errno != EMFILE )
{
pFileName = hb_fsFNameSplit( szFileName );
pFileName->szName = szFileName;

View File

@@ -121,7 +121,7 @@ HB_FUNC( __PREPROCESS )
hb_retc( "" );
}
void hb_compGenError( char * szErrors[], char cPrefix, int iError, char * szError1, char * szError2 )
void hb_compGenError( char * szErrors[], char cPrefix, int iError, const char * szError1, const char * szError2 )
{
PHB_ITEM pError;
char buffer[ 128 ];
@@ -141,7 +141,7 @@ void hb_compGenError( char * szErrors[], char cPrefix, int iError, char * szErro
longjmp( s_env, iError == 0 ? -1 : iError );
}
void hb_compGenWarning( char * szWarnings[], char cPrefix, int iWarning, char * szWarning1, char * szWarning2 )
void hb_compGenWarning( char * szWarnings[], char cPrefix, int iWarning, const char * szWarning1, const char * szWarning2 )
{
HB_TRACE(HB_TR_DEBUG, ("GenWarning(%p, %c, %d, %s, %s)", szWarnings, cPrefix, iWarning, szWarning1, szWarning2));