|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 4223 (0x107f)
Types: TextFile
Names: »c.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Empire/c.c«
#include <curses.h>
#include <ctype.h>
#include "c_common.h"
int debug = 0;
FILE *fileerr;
#undef move
move(y, x)
{
if (debug) { fprintf(fileerr, "DEBUG: move to %d, %d\n", x, y); fflush(fileerr); }
wmove(stdscr, y, x);
}
cr_()
{
if (debug) { fprintf(fileerr, "DEBUG: newline\n"); fflush(fileerr); }
addch('\n');
}
clreol_(linep, colp, eolcolp)
int *linep, *colp, *eolcolp;
{
if (debug) { fprintf(fileerr, "DEBUG: clrtoeol\n"); fflush(fileerr); }
move(*linep, *colp);
clrtoeol();
}
csleep_(secs)
int *secs;
{
sleep(*secs + 1);
}
clear_()
{
if (debug) { fprintf(fileerr, "DEBUG: clear\n"); fflush(fileerr); }
erase();
}
ttinit_()
{
if (debug)
fileerr = fopen("LOG", "w");
initscr();
noecho();
crmode();
lines_ = LINES;
cols_ = COLS;
if (lines_ > 64)
lines_ = 64;
if (cols_ > 110)
cols_ = 110;
}
cflush_()
{
if (debug) { fprintf(fileerr, "DEBUG: refresh\n"); fflush(fileerr); }
refresh();
}
caddch_(c)
char *c;
{
if (debug) { fprintf(fileerr, "DEBUG: addch - %x\n", *c); fflush(fileerr); }
addch(*c);
}
bufout_(str, countp)
char *str;
int *countp;
{
char buf[BUFSIZ];
if (debug) { fprintf(fileerr, "DEBUG: (%d) '%s'\n", *countp, str); fflush(fileerr); }
strncpy(buf, str, *countp);
buf[*countp] = '\0';
addstr(buf);
}
tpos_(yp, xp)
int *yp, *xp;
{
move(*yp - 1, *xp - 1);
}
#undef getstr
getstr_(buf, sizep, countp)
char *buf;
int *sizep, *countp;
{
if (debug) { fprintf(fileerr, "DEBUG: getstr\n"); fflush(fileerr); }
echo();
getstrq_(buf, sizep, countp);
noecho();
}
getstrq_(buf, sizep, countp)
char *buf;
int *sizep, *countp;
{
int count = 0;
if (debug) { fprintf(fileerr, "DEBUG: getstrq\n"); fflush(fileerr); }
fflush(stdout); /* because the fortran routine did */
nocrmode();
if (fgets(buf, *sizep, stdin) == NULL) {
fputs("Unexpected EOF", stderr);
exit(1);
} else {
*countp = strlen(buf) - 1;
buf[*countp] = '\0';
}
crmode();
}
encpri_(str, startp, endp)
int *str;
int *startp, *endp;
{
int i;
char buf[BUFSIZ], *bp = buf;
if (debug) { fprintf(fileerr, "DEBUG: encpri(%c, %d, %d)\n", str[*startp], *startp, *endp); fflush(fileerr); }
for (i = *startp - 1; i < *endp; i++, bp++)
*bp = str[i];
*bp = '\0';
waddstr(stdscr, buf);
}
#define NUMTOPS 3
int len[NUMTOPS];
topini_()
{
int i;
for (i = 0; i < NUMTOPS; i++) {
len[i] = 0;
move(i, 0);
clrtoeol();
}
}
topmsg_(linep, buf)
int *linep;
char *buf;
{
if (*linep < 1 || *linep > NUMTOPS)
*linep = 1;
move(*linep - 1, 0);
waddstr(stdscr, buf);
clrtoeol();
len[*linep] = strlen(buf);
}
addcnt_(linep, addp)
int *linep, *addp;
{
if (*linep < 0 || *linep > NUMTOPS)
*linep = 1;
len[*linep] += *addp;
}
addint_(nump, buf, endp)
int *nump, *endp;
char *buf;
{
sprintf(&buf[*endp], "%d", *nump);
*endp = strlen(buf);
}
/* maybe add real? */
addrel_(nump, widthp, buf, endp)
int *nump, *widthp, *endp;
char *buf;
{
/* what's the width for?? */
sprintf(&buf[*endp], "%d", *nump);
*endp = strlen(buf);
}
rndini_()
{
srand(time(0));
}
irand_(high)
int *high;
{
if (*high < 2) {
if (debug) { fprintf(fileerr, "DEBUG: irand %d\n", *high); fflush(fileerr); }
return (0);
}
return (rand() % *high);
}
rndint_(retval, minp, maxp)
int *retval, *minp, *maxp;
{
int size = *maxp - *minp + 1;
*retval = (rand() % size) + *minp;
}
addstr_(from, to, tolen)
char *from, *to;
int *tolen;
{
to[*tolen] = '\0';
strcat(to, from);
*tolen = strlen(to);
}
getchx_()
{
char c;
if (debug) { fprintf(fileerr, "DEBUG: getchx\n"); fflush(fileerr); }
if ((c = getchar()) == EOF) {
fputs("Unexpected EOF\n", stderr);
exit(1);
}
if (islower(c))
return (toupper(c));
else
return (c);
}
readi_(ip)
int *ip;
{
char buf[BUFSIZ];
int size = sizeof (buf), count = sizeof (buf);
if (debug) { fprintf(fileerr, "DEBUG: readi\n"); fflush(fileerr); }
*ip = 0;
getstr_(buf, &size, &count);
if (count != 0)
scanf("%d", ip);
}
tupper_(str, lenp)
char *str;
int *lenp;
{
int i;
for (i = 0; i < *lenp; i++)
if (islower(str[i]))
str[i] = toupper(str[i]);
}
printit_(hits)
int *hits;
{
int i;
for (i = 0; i < 15; i++)
printf("%d ", hits[i]);
}
close_disp()
{
move(LINES - 1, 0);
clrtoeol();
refresh();
endwin();
}