static void TraceInfo( char *buff ) { //======================================= traceback *tb; MsgBuffer( MS_TRACE_INFO, buff, ExCurr->line, ExCurr->name ); StdWriteNL( buff, strlen( buff ) ); for( tb = ExCurr->link; tb != NULL; tb = tb->link ) { MsgBuffer( MS_CALLED_FROM, buff, tb->line, tb->name ); StdWriteNL( buff, strlen( buff ) ); } }
void WriteErr( int errcode, va_list args ) { //============================================= // Write error message. char buffer[ERR_PREF_SIZE+ERR_BUFF_SIZE+1]; _AccessFIO(); // Before writing the error message, flush standard output files so that if // unit 6 is connected to the standard output device which has been // redirected to a file, the file gets flushed before the error message is // written. FlushStdUnit(); strcpy( buffer, ErrorPref ); BldErrCode( errcode, &buffer[ ERR_PREF_SIZE ] ); __BldErrMsg( errcode, &buffer[ERR_PREF_SIZE + ERR_CODE_SIZE], args ); if( __EnterWVIDEO( buffer ) ) { StdBuffer(); } else { StdBuffer(); StdWriteNL( buffer, strlen( buffer ) ); } ERR_HOOK( errcode, buffer ); StdFlush(); _ReleaseFIO(); }