void CInclude( void ) { char in_macro; auto char buf[ 82 ]; if( PCH_FileName != NULL && CompFlags.make_precompiled_header == 0 ) { if( CompFlags.ok_to_use_precompiled_hdr ) { /* 27-jun-94 */ CompFlags.use_precompiled_header = 1; } } if( CompFlags.use_precompiled_header ) { InitBuildPreCompiledHeader(); } InitialMacroFlag = MFLAG_NONE; in_macro = 0; if( MacroPtr != NULL ) in_macro = 1; PPCTL_ENABLE_MACROS(); PPNextToken(); PPCTL_DISABLE_MACROS(); if( CurToken == T_STRING ) { OpenSrcFile( Buffer, FALSE ); #if _CPU == 370 if( !CompFlags.use_precompiled_header ) { SrcFile->colum = Column; /* do trunc and col on */ SrcFile->trunc = Trunc; /* on user source files */ } #endif } else if( CurToken == T_LT ) { if( in_macro ) { PPCTL_ENABLE_MACROS(); } buf[ 0 ] = '\0'; for( ;; ) { PPNextToken(); if( CurToken == T_GT ) { OpenSrcFile( buf, TRUE ); break; } strncat( buf, Buffer, sizeof( buf ) - 2 ); if( in_macro != 0 && MacroPtr == NULL || CurToken == T_NULL || CurToken == T_EOF ) { CErr1( ERR_INVALID_INCLUDE ); break; } } if( in_macro ) { PPCTL_DISABLE_MACROS(); } } else { CErr1( ERR_INVALID_INCLUDE ); } if( CurToken != T_EOF ) { PPNextToken(); } CompFlags.use_precompiled_header = 0; }
extern void WndFileInspect( const char *file, bool binary ) { handle filehndl; void *viewhndl; mod_handle mod; DIPHDL( cue, ch ); viewhndl = NULL; if( binary ) { filehndl = FileOpen( file, OP_READ ); if( filehndl == NIL_HANDLE ) Error( ERR_NONE, LIT_ENG( ERR_FILE_NOT_OPEN ), file ); DoWndBinOpen( file, filehndl ); } else { mod = LookupModName( NO_MOD, file, strlen( file ) ); if( mod == NO_MOD ) { mod = FindFileMod( file ); } if( FindFirstCue( mod, ch ) ) { viewhndl = OpenSrcFile( ch ); } else { viewhndl = FOpenSource( file, NO_MOD, 0 ); ch = NULL; } if( viewhndl == NULL ) Error( ERR_NONE, LIT_ENG( ERR_FILE_NOT_OPEN ), file ); DoWndFileOpen( file, viewhndl, ch, false, false, WND_FILE ); } }
bool DUIGetSourceLine( cue_handle *ch, char *buff, unsigned len ) { void *viewhndl; viewhndl = OpenSrcFile( ch ); if( viewhndl == NULL ) return( FALSE ); buff[ FReadLine( viewhndl, CueLine( ch ), 0, buff, len )] = '\0'; FDoneSource( viewhndl ); return( TRUE ); }
bool DUIGetSourceLine( cue_handle *ch, char *buff, unsigned len ) { void *viewhndl; viewhndl = OpenSrcFile( ch ); if( viewhndl == NULL ) return( false ); buff[FReadLine( viewhndl, CueLine( ch ), 0, buff, len )] = NULLCHAR; FDoneSource( viewhndl ); return( true ); }
static void FileTrack( a_window *wnd, cue_handle *ch ) { unsigned active, old_active; unsigned end_line; int slack; file_window *file = WndFile( wnd ); mod_handle mod; cue_fileid id; wnd_row curr_row; int curr_piece; if( ch == NULL ) { mod = NO_MOD; id = 0; } else { mod = CueMod( ch ); id = CueFileId( ch ); } if( file->viewhndl == NULL || file->mod != mod || file->file_id != id ) { if( file->viewhndl != NULL ) { FDoneSource( file->viewhndl ); } file->mod = mod; file->file_id = id; FileSetDotAddr( wnd, GetCodeDot() ); if( file->mod == NO_MOD ) { file->viewhndl = NULL; } else { file->viewhndl = OpenSrcFile( ch ); } FileSetTitle( wnd, mod ); SeekToTheEnd( file ); file->eof = UINT_MAX; WndZapped( wnd ); FilePosInit( wnd ); file->active = NOT_ACTIVE; FilePos( wnd, 0 ); DbgUpdate( UP_OPEN_CHANGE ); } active = ActiveLine(); if( active != file->active ) { FileSetDotAddr( wnd, GetCodeDot() ); WndGetCurrent( wnd, &curr_row, &curr_piece ); WndNoCurrent( wnd ); if( curr_row != WND_NO_ROW ) { WndRowDirty( wnd, curr_row ); } } old_active = file->active; file->active = NOT_ACTIVE; slack = WndRows( wnd ) / 4; if( slack > 2 ) slack = 2; end_line = WndTop( wnd ) + WndRows( wnd ) - 1; if( old_active == NOT_ACTIVE || active > end_line ) { WndZapped( wnd ); WndScroll( wnd, active - slack - WndTop( wnd ) ); } else if( active > end_line - slack ) { WndRowDirtyImmed( wnd, old_active ); WndScroll( wnd, WndRows( wnd ) - 2 * slack ); } else if( active < WndTop( wnd ) ) { WndRowDirtyImmed( wnd, old_active ); WndScroll( wnd, active - WndTop( wnd ) - slack ); } else { WndRowDirty( wnd, old_active ); } WndNewCurrent( wnd, active, PIECE_SOURCE ); WndRowDirty( wnd, active ); file->active = active; }