static char *leadingMessage( msg_type type, char *buffer ) { //********************************************************** switch( type ) { case MSG_ERROR: AsMsgGet( AS_MSG_ERROR, buffer ); break; case MSG_WARNING: AsMsgGet( AS_MSG_WARNING, buffer ); break; default: assert( 0 ); break; } return( buffer ); }
extern void ErrorReport( void ) { //******************************* if( !DoReport ) return; if( _IsOption( BE_QUIET ) ) return; AsMsgGet( AS_ERROR_REPORT, AsResBuffer ); printf( AsResBuffer, CurrFilename, CurrLineno, numWarnings, numErrors ); }
extern void AsOutMessage( FILE *fp, int resource_id, ... ) { //********************************************************** // Simply stuffs out the message. No header added. va_list arglist; va_start( arglist, resource_id ); AsMsgGet( resource_id, AsResBuffer ); vfprintf( fp, AsResBuffer, arglist ); }
extern void Usage( void ) { //************************* int ctr; for( ctr = USAGE_1; ctr <= USAGE_LAST; ++ctr ) { AsMsgGet( ctr, AsResBuffer ); puts( AsResBuffer ); } }
extern void AsWarning( int resource_id, ... ) //******************************************* { va_list arglist; char msg[ MAX_RESOURCE_SIZE ]; va_start( arglist, resource_id ); AsMsgGet( resource_id, AsResBuffer ); vsprintf( msg, AsResBuffer, arglist ); va_end( arglist ); AsmWarning( msg ); // CC provides this }
static void outMsg( FILE *fp, msg_type mtype, int resource_id, va_list *arglist ) { //********************************************************************************* fprintf( fp, "%s(%d): ", CurrFilename, CurrLineno ); fputs( leadingMessage( mtype, AsResBuffer ), fp ); AsMsgGet( resource_id, AsResBuffer ); if( arglist ) { vfprintf( fp, AsResBuffer, *arglist ); fputc( '\n', fp ); } else { fprintf( fp, "%s\n", AsResBuffer ); } }
bool AsMsgInit( void ) //******************** { #ifdef _STANDALONE_ char name[_MAX_PATH]; hInstance.status = 0; if( _cmdname( name ) != NULL && OpenResFile( &hInstance, name ) ) { msgShift = _WResLanguage() * MSG_LANG_SPACING; if( AsMsgGet( USAGE_1, AsResBuffer ) ) { return( true ); } } CloseResFile( &hInstance ); printf( NO_RES_MESSAGE ); return( false ); #else msgShift = _WResLanguage() * TXT_MSG_LANG_SPACING; if( msgShift >= TXT_MSG_SIZE ) msgShift = 0; msgShift -= AS_MSG_BASE; return( true ); #endif }