#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: help.c,v 1.9 2012/06/19 05:30:43 dholland Exp $");
#endif
#include <unistd.h>
#include "header.h"
#include "extern.h"
static void retcont(void);
static int openhelp(void);
void
help(void)
{
int i, j;
#ifndef VT100
char tmbuf[128];
#endif
if ((j = openhelp()) < 0)
return;
for (i = 0; i < 23; i++)
lgetl();
for (; j > 0; j--) {
clear();
for (i = 0; i < 23; i++)
#ifdef VT100
lprcat(lgetl());
#else
{
tmcapcnv(tmbuf, lgetl());
lprcat(tmbuf);
}
#endif
if (j > 1) {
lprcat(" ---- Press ");
standout("return");
lprcat(" to exit, ");
standout("space");
lprcat(" for more help ---- ");
i = 0;
while ((i != ' ') && (i != '\n') && (i != '\33'))
i = ttgetch();
if ((i == '\n') || (i == '\33')) {
lrclose();
setscroll();
drawscreen();
return;
}
}
}
lrclose();
retcont();
drawscreen();
}
void
welcome(void)
{
int i;
#ifndef VT100
char tmbuf[128];
#endif
if (openhelp() < 0)
return;
clear();
for (i = 0; i < 23; i++)
#ifdef VT100
lprcat(lgetl());
#else
{
tmcapcnv(tmbuf, lgetl());
lprcat(tmbuf);
}
#endif
lrclose();
retcont();
}
static void
retcont(void)
{
cursor(1, 24);
lprcat("Press ");
standout("return");
lprcat(" to continue: ");
while (ttgetch() != '\n');
setscroll();
}
static int
openhelp(void)
{
if (lopen(helpfile) < 0) {
lprintf("Can't open help file \"%s\" ", helpfile);
lflush();
sleep(4);
drawscreen();
setscroll();
return (-1);
}
resetscroll();
return (lgetc() - '0');
}