#include "sysdef.h" /* SCUTIL.C */ /* oft needed utility routines */ /*+ pinc() */ /*+ pdec() */ /*+ fixposition() */ /*+ newpage(linenumber) */ /*+ page() */ /*+ lposition() */ /*+ lposition() */ /*+ cnpage(linenumber) */ /*+ sclinc() */ /*+ scldec() */ /*+ rstpage(linenumber) */ /*+ lreset() */ /*+ creset() */ /*+ retype() */ /*+ goback() */ /*+ vtbell() */ /*+ gettxtsave(where) */ /*+ puttxtsave(where) */ /*+ deleoln(where) */ /*+ delboln(where) */ /*+ findeoln() */ /*+ sveoln(where) */ /*+ svboln(where) */ /*+ svlinsert(where) */ /*+ svwinsert(where) */ /*+ svcinsert(where) */ /*+ svinsert(where,s,len) */ /*+ remchar(where) */ /*+ delword() */ /*+ atcrlf() */ /*+ attabspace() */ /*+ putcrlf() */ /*+ putcr() */ /*+ redolines() */ /*+ inscheck() */ /*+ scdecout(val) */ /*+ revline() */ #include "scerrd.h" #include "scterm.h" #include "tempio.h" #define CR 015 #define LF 012 #define FF 014 #define SPACE 040 #define tab 011 #define TAB 011 #define false 0 #define true 1 #define then extern int chposition,curposition,worklength ; extern char workbuffer[] ; /* PINC adjust the cursor and line pointer */ pinc() { extern int chposition,curposition,erasef,worklength; extern char workbuffer[] ; if (chposition < worklength) then { if (workbuffer[chposition] == TAB) then erasef = true ; chposition++ ; curposition++; fixposition(); } } pdec() { extern int chposition,curposition,erasef,worklength; extern char workbuffer[] ; if (chposition > 0) then { chposition-- ; curposition--; if ( workbuffer[chposition] == TAB ) then fixposition(); } } fixposition() { extern int chposition,curposition,erasef,worklength; extern char workbuffer[] ; register char *wp ; register int temp ; register int i ; temp = 1 ; wp = workbuffer ; for (i=0;i= *maxline) then *ip = *maxline - 1 ; } if ( (temp += page_size[termtype]) >= *maxline ) then temp = *maxline-1; *lochigh = temp ; } lreset() { scunloadline() ; } creset() { extern int chposition, curposition ; curposition = 1 ; chposition = 0 ; } retype() { lposition() ; lkill() ; dumpworkbuffer() ; scmove() ; } goback() { extern int fastio ; register int save ; save = fastio ; fastio = 0 ; scmove() ; fastio = save ; } vtbell() { putbin("\07",1); } gettxtsave(where) int where; { extern struct textline txtsave ; extern int worklength ; extern char workbuffer[] ; register char *gp,*wp ; register int i ; gp = txtsave.c ; wp = workbuffer ; for (i=where; i= worklength ) then creset() ; return(count) ; } delboln(where) int where ; { extern struct deltype lastdeleted ; register int i ; register char savech ; savech = lastdeleted.lastc ; txtmod() ; for ( i=0; i= worklength) then return(true) ; ch = workbuffer[chposition] ; return ( ch== CR || ch==LF || ch==FF ) ; } attabspace() { extern int chposition, curposition, worklength ; extern char workbuffer[] ; register char ch ; ch = workbuffer[chposition] ; return ( ch==SPACE || ch ==TAB ) ; } atworddelim() { extern int chposition, curposition, worklength ; extern char workbuffer[] ; register char ch, *cp ; extern char worddelim[] ; ch = workbuffer[chposition] ; if ( ch == SPACE || ch==TAB ) then return(1) ; else { cp = worddelim ; while (*cp != 0) if (ch == *cp++) then return(1) ; return(0) ; } } scttin() { return(1) ; } putcrlf() { putbin("\015\012",2) ; } putcr() { putbin("\015",1) ; } redolines() { } inscheck() { /* extern int doiref,inmode ; if ( inmode == 0 ) then scunloadline() ; else { lreset() ; if ( doiref ) then retype() ; } */ } ckmacro() { } scdecout(val) int val ; { char s[10] ; sxprintf(s,"%7d",val) ; putbin(s,7) ; }