diff options
author | svn2git <svn2git@FreeBSD.org> | 1994-07-01 00:00:00 -0800 |
---|---|---|
committer | svn2git <svn2git@FreeBSD.org> | 1994-07-01 00:00:00 -0800 |
commit | 5e0e9b99dc3fc0ecd49d929db0d57c784b66f481 (patch) | |
tree | e779b5a6edddbb949b7990751b12d6f25304ba86 /games/hack/hack.topl.c | |
parent | a16f65c7d117419bd266c28a1901ef129a337569 (diff) | |
download | src-5e0e9b99dc3fc0ecd49d929db0d57c784b66f481.tar.gz src-5e0e9b99dc3fc0ecd49d929db0d57c784b66f481.zip |
Release FreeBSD 1.1.5.1release/1.1.5.1_cvsreleng/1
This commit was manufactured to restore the state of the 1.1.5.1-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
Diffstat (limited to 'games/hack/hack.topl.c')
-rw-r--r-- | games/hack/hack.topl.c | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/games/hack/hack.topl.c b/games/hack/hack.topl.c deleted file mode 100644 index 13a033d19c5e..000000000000 --- a/games/hack/hack.topl.c +++ /dev/null @@ -1,192 +0,0 @@ -/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ -/* hack.topl.c - version 1.0.2 */ - -#include "hack.h" -#include <stdio.h> -extern char *eos(); -extern int CO; - -char toplines[BUFSZ]; -xchar tlx, tly; /* set by pline; used by addtopl */ - -struct topl { - struct topl *next_topl; - char *topl_text; -} *old_toplines, *last_redone_topl; -#define OTLMAX 20 /* max nr of old toplines remembered */ - -doredotopl(){ - if(last_redone_topl) - last_redone_topl = last_redone_topl->next_topl; - if(!last_redone_topl) - last_redone_topl = old_toplines; - if(last_redone_topl){ - (void) strcpy(toplines, last_redone_topl->topl_text); - } - redotoplin(); - return(0); -} - -redotoplin() { - home(); - if(index(toplines, '\n')) cl_end(); - putstr(toplines); - cl_end(); - tlx = curx; - tly = cury; - flags.toplin = 1; - if(tly > 1) - more(); -} - -remember_topl() { -register struct topl *tl; -register int cnt = OTLMAX; - if(last_redone_topl && - !strcmp(toplines, last_redone_topl->topl_text)) return; - if(old_toplines && - !strcmp(toplines, old_toplines->topl_text)) return; - last_redone_topl = 0; - tl = (struct topl *) - alloc((unsigned)(strlen(toplines) + sizeof(struct topl) + 1)); - tl->next_topl = old_toplines; - tl->topl_text = (char *)(tl + 1); - (void) strcpy(tl->topl_text, toplines); - old_toplines = tl; - while(cnt && tl){ - cnt--; - tl = tl->next_topl; - } - if(tl && tl->next_topl){ - free((char *) tl->next_topl); - tl->next_topl = 0; - } -} - -addtopl(s) char *s; { - curs(tlx,tly); - if(tlx + strlen(s) > CO) putsym('\n'); - putstr(s); - tlx = curx; - tly = cury; - flags.toplin = 1; -} - -xmore(s) -char *s; /* allowed chars besides space/return */ -{ - if(flags.toplin) { - curs(tlx, tly); - if(tlx + 8 > CO) putsym('\n'), tly++; - } - - if(flags.standout) - standoutbeg(); - putstr("--More--"); - if(flags.standout) - standoutend(); - - xwaitforspace(s); - if(flags.toplin && tly > 1) { - home(); - cl_end(); - docorner(1, tly-1); - } - flags.toplin = 0; -} - -more(){ - xmore(""); -} - -cmore(s) -register char *s; -{ - xmore(s); -} - -clrlin(){ - if(flags.toplin) { - home(); - cl_end(); - if(tly > 1) docorner(1, tly-1); - remember_topl(); - } - flags.toplin = 0; -} - -/*VARARGS1*/ -pline(line,arg1,arg2,arg3,arg4,arg5,arg6) -register char *line,*arg1,*arg2,*arg3,*arg4,*arg5,*arg6; -{ - char pbuf[BUFSZ]; - register char *bp = pbuf, *tl; - register int n,n0; - - if(!line || !*line) return; - if(!index(line, '%')) (void) strcpy(pbuf,line); else - (void) sprintf(pbuf,line,arg1,arg2,arg3,arg4,arg5,arg6); - if(flags.toplin == 1 && !strcmp(pbuf, toplines)) return; - nscr(); /* %% */ - - /* If there is room on the line, print message on same line */ - /* But messages like "You die..." deserve their own line */ - n0 = strlen(bp); - if(flags.toplin == 1 && tly == 1 && - n0 + strlen(toplines) + 3 < CO-8 && /* leave room for --More-- */ - strncmp(bp, "You ", 4)) { - (void) strcat(toplines, " "); - (void) strcat(toplines, bp); - tlx += 2; - addtopl(bp); - return; - } - if(flags.toplin == 1) more(); - remember_topl(); - toplines[0] = 0; - while(n0){ - if(n0 >= CO){ - /* look for appropriate cut point */ - n0 = 0; - for(n = 0; n < CO; n++) if(bp[n] == ' ') - n0 = n; - if(!n0) for(n = 0; n < CO-1; n++) - if(!letter(bp[n])) n0 = n; - if(!n0) n0 = CO-2; - } - (void) strncpy((tl = eos(toplines)), bp, n0); - tl[n0] = 0; - bp += n0; - - /* remove trailing spaces, but leave one */ - while(n0 > 1 && tl[n0-1] == ' ' && tl[n0-2] == ' ') - tl[--n0] = 0; - - n0 = strlen(bp); - if(n0 && tl[0]) (void) strcat(tl, "\n"); - } - redotoplin(); -} - -putsym(c) char c; { - switch(c) { - case '\b': - backsp(); - return; - case '\n': - curx = 1; - cury++; - if(cury > tly) tly = cury; - break; - default: - if(curx == CO) - putsym('\n'); /* 1 <= curx <= CO; avoid CO */ - else - curx++; - } - (void) putchar(c); -} - -putstr(s) register char *s; { - while(*s) putsym(*s++); -} |