j=0; j= *loclow ) then { scmove() ; retype() ; } (*curline)++ ; } flucut() ; } ledoff(l_select) ; cut_st = 0 ; *curline = oldcurline ; scloadline() ; scmove() ; } else { cut_st = *curline ; ledon(l_select) ; } } /*+ VTPASTE insert the cut text into the file, saving it */ /* if a select range is still active. */ vtpaste() { char temp ; register int ch,i ; if ( cut_st ) then vtmark() ; rewcut() ; if ( getcut() < 0 ) then { scwarning(w_nopaste) ; return(0) ; } rewcut() ; sclinsert(CR) ; creset() ; i = 0 ; while ( (ch = getcut()) >= 0 ) { temp = ch ; if ( ch == CTRLZ ) then retype() ; else if ( ch == CR || ch == FF ) then { retype() ; i = 0 ; mvdown() ; sclinsert(ch) ; } else svinsert(i++,&temp,1) ; } creset() ; scmove() ; mvdown() ; } vtapp() { register int i ; register char *cp ; cp = workbuffer ; appcut() ; putcut(CR) ; putcut(LF) ; for ( i=0;icpnt = 0 ; /* init next free byte pointer */ pnt_cur->cblk = 0 ; /* init current virtual block */ pnt_eof->cpnt = 0 ; /* clear first free in last vbn */ pnt_eof->cblk = 0 ; /* clear eof block number */ cut_lines = 0 ; zapcut() ; /* clear the block buffer */ return(1) ; } static zapcut() { register int i ; for (i=BUFSIZ-1; i>=0 ; i--) cutbuffer[i] = 0 ; } static wricut() { register int status ; status = wricbuffer(cutbuffer,++pnt_cur->cblk,bufnumber) ; if ( status == 0 ) then erp() ; zapcut() ; pnt_cur->cpnt = 0 ; /* next byte is zero */ return( status ) ; } static reacut() { register int status ; status = reacbuffer(cutbuffer,++pnt_cur->cblk,bufnumber) ; pnt_cur->cpnt = 0 ; /* next byte is zero */ return( status ) ; } static flucut() { register int status ; status = wricut() ; pnt_eof->cblk = pnt_cur->cblk ; /* update last block pointer */ return( status ) ; } static rewcut() { register int status ; pnt_cur->cblk = 0 ; /* start at the first block */ status = reacut() ; /* load the correct block */ pnt_cur->cpnt = 0 ; /* next free byte is zero */ return( status ) ; } static appcut() { register int status ; if ( (pnt_cur->cblk = pnt_eof->cblk) != 0 || pnt_eof->cpnt != 0 ) then { pnt_cur->cblk-- ; status = reacut() ; pnt_cur->cblk-- ; pnt_cur->cpnt = pnt_eof->cpnt ; return( status ) ; } else return( inicut() ) ; } static putcut(ch) char ch ; { register int status ; status = 1 ; if ( pnt_cur->cpnt >= BUFSIZ ) then status = wricut() ; cutbuffer[pnt_cur->cpnt++] = ch ; pnt_eof->cpnt = pnt_cur->cpnt ; pnt_eof->cblk = pnt_cur->cblk ; cut_lines++ ; return( status ) ; } static getcut() { register int ch ; while ( ( ch = xgetcut() ) == LF ) ; return(ch) ; } static xgetcut() { register int status ; status = sys_normal ; if ( eofcut() ) then return(-1) ; if ( pnt_cur->cblk == 0 || pnt_cur->cpnt >= BUFSIZ ) then status=reacut(); if ( status == sys_normal) then return( cutbuffer[pnt_cur->cpnt++] ) ; else return(-2) ; } static eofcut() { if ( pnt_cur->cblk > pnt_eof->cblk ) then return(1) ; else if (pnt_cur->cblk == pnt_eof->cblk && pnt_cur->cpnt >= pnt_eof->cpnt ) then return(1) ; else return(0) ; } static erp() { char s[80] ; scwarning(w_cuterr) ; movel24() ; ceol24() ; geterror(s) ; putbin(s,0) ; goback() ; } SCCUTPC [.050036]SCCUTP.C [.050036]   X14|H [4;Ik(&'( k ߫H&P` \RrPP2PPzPP{PPPPP2P~\$\\TD 0D \~ hi) +\ ^( n ^( np\^txY\^ˀ\!kVk<\F˰<˴ˬ\VVkˤ1`@lP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<SЬTЬ UQS>