/* goto the bottom of the file */ static void filebot( PFT_DISPC dispc ) { if( ( dispc->buffbot + dispc->buffoffset ) < dispc->fsize && dispc->fsize > dispc->buffsize ) { dispc->buffoffset = getblock( dispc, dispc->fsize + 1 ); buff_align( dispc ); } dispc->bRefresh = HB_TRUE; dispc->wintop = ( int ) dispc->buffbot - 3; dispc->winrow = dispc->eline; dispc->wincol = 0; win_align( dispc ); }
/* go to the top of the file */ static void filetop( PFT_DISPC dispc ) { if( dispc->buffoffset != 0 ) { dispc->buffoffset = getblock( dispc, 0 ); buff_align( dispc ); } dispc->bRefresh = HB_TRUE; dispc->wintop = ( int ) dispc->buffoffset; dispc->winrow = dispc->sline; dispc->wincol = 0; win_align( dispc ); }
static void windown( PFT_DISPC dispc ) { int k; HB_FOFFSET i, j; dispc->bRefresh = HB_TRUE; k = dispc->winbot; while( dispc->buffer[ k ] != CR && k <= dispc->buffbot ) k++; k += 2; if( k <= dispc->buffbot ) { dispc->winbot = k; k = dispc->wintop; while( dispc->buffer[ k ] != CR ) k++; dispc->wintop = k + 2; } else if( ( dispc->buffbot + dispc->buffoffset ) < dispc->fsize && dispc->fsize > dispc->buffsize ) { i = dispc->buffoffset + dispc->wintop; j = i; if( j > dispc->fsize ) j = dispc->fsize - dispc->buffsize; dispc->buffoffset = getblock( dispc, j ); if( i < dispc->buffoffset ) dispc->wintop = 0; else dispc->wintop = ( int ) ( i - dispc->buffoffset ); buff_align( dispc ); win_align( dispc ); } }
static void winup( PFT_DISPC dispc ) { int k; HB_FOFFSET i, j; dispc->bRefresh = HB_TRUE; k = dispc->wintop - 3; while( dispc->buffer[ k ] != CR && k > dispc->bufftop ) k--; if( k >= dispc->bufftop ) { if( dispc->buffer[ k ] == CR ) k += 2; dispc->wintop = k; k = dispc->winbot - 3; while( dispc->buffer[ k ] != CR ) k--; dispc->winbot = k + 2; } else if( dispc->bufftop + dispc->buffoffset > 0 && dispc->fsize > dispc->buffsize ) { i = dispc->buffoffset + dispc->wintop; j = dispc->buffoffset - ( dispc->buffsize / 2 ); if( j < 0 ) j = 0; dispc->buffoffset = getblock( dispc, j ); dispc->wintop = ( int ) ( i - dispc->buffoffset ); buff_align( dispc ); win_align( dispc ); } }