logstar4 LGE( string PGM *arg1, string PGM *arg2 ) { //========================================================= // Return true if arg1 >= arg2 else return false. if( LexCmp( arg1, arg2 ) >= 0 ) return( _LogValue( TRUE ) ); return( _LogValue( FALSE ) ); }
logstar4 I2BTEST( intstar2 arg1, intstar2 arg2 ) { //===================================================== short bit; bit = 1; bit <<= arg2; if( arg1 & bit ) return( _LogValue( TRUE ) ); return( _LogValue( FALSE ) ); }
static void InLog( void ) { //======================= ftnfile *fcb; logstar4 value; char *chptr; fcb = IOCB->fileinfo; chptr = &fcb->buffer[ fcb->col ]; if( toupper( *chptr ) == 'T' ) { value = _LogValue( true ); } else { value = _LogValue( false ); } for(;;) { chptr++; fcb->col++; if( fcb->col == fcb->len ) break; switch( *chptr ) { case ' ': case '\t': case '/': case ',': goto big_break; } } big_break: for(;;) { switch( IOCB->typ ) { case PT_LOG_1: *(logstar1 PGM *)(IORslt.pgm_ptr) = value; break; case PT_LOG_4: *(logstar4 PGM *)(IORslt.pgm_ptr) = value; break; default: IOErr( IO_FREE_MISMATCH ); break; } FreeIOType(); if( ( IOCB->rptnum-- <= 1 ) || ( IOCB->typ == PT_NOTYPE ) ) break; } }
void R_FILog( void ) { //================= ftnfile *fcb; uint width; char ch; fcb = IOCB->fileinfo; width = IOCB->fmtptr->fmt1.fld1; ChkBuffLen( width ); for(;;) { if( fcb->buffer[ fcb->col ] != ' ' ) break; fcb->col++; if( --width == 0 ) break; } if( fcb->buffer[ fcb->col ] == '.' ) { --width; fcb->col++; } if( width == 0 ) { IOErr( IO_BAD_CHAR ); } else { ch = toupper( fcb->buffer[ fcb->col ] ); if( ch == 'F' ) { SetLogValue( _LogValue( false ) ); } else if( ch == 'T' ) { SetLogValue( _LogValue( true ) ); } } if( __AllowCommaSep() ) { // don't flush but search for comma separator fcb->col++; width--; while( width > 0 ) { if( fcb->buffer[ fcb->col ] == ',' ) { fcb->col++; break; } fcb->col++; width--; } } else { fcb->col += width; // flush over other stuff } }