mirror of
https://github.com/openbsd/src.git
synced 2025-01-10 06:47:55 -08:00
Treat quiz the same way as the other games and try to preserve the look
and feel. Revert previous and allow the pager with pledge "proc exec". Play the game with pledge "stdio rpath". Discussed with tedu@
This commit is contained in:
parent
c65da31d53
commit
da74d77a50
@ -1,4 +1,4 @@
|
||||
/* $OpenBSD: quiz.c,v 1.22 2015/10/25 09:34:49 tedu Exp $ */
|
||||
/* $OpenBSD: quiz.c,v 1.23 2015/12/06 09:55:58 tb Exp $ */
|
||||
/* $NetBSD: quiz.c,v 1.9 1995/04/22 10:16:58 cgd Exp $ */
|
||||
|
||||
/*-
|
||||
@ -66,7 +66,7 @@ main(int argc, char *argv[])
|
||||
int ch;
|
||||
const char *indexfile;
|
||||
|
||||
if (pledge("stdio rpath", NULL) == -1)
|
||||
if (pledge("stdio rpath proc exec", NULL) == -1)
|
||||
err(1, "pledge");
|
||||
|
||||
indexfile = _PATH_QUIZIDX;
|
||||
@ -91,6 +91,8 @@ main(int argc, char *argv[])
|
||||
show_index();
|
||||
break;
|
||||
case 2:
|
||||
if (pledge("stdio rpath", NULL) == -1)
|
||||
err(1, "pledge");
|
||||
get_file(indexfile);
|
||||
get_cats(argv[0], argv[1]);
|
||||
quiz();
|
||||
@ -147,21 +149,30 @@ show_index(void)
|
||||
{
|
||||
QE *qp;
|
||||
const char *p, *s;
|
||||
FILE *pf;
|
||||
const char *pager;
|
||||
|
||||
printf("Subjects:\n\n");
|
||||
if (!isatty(1))
|
||||
pager = "/bin/cat";
|
||||
else if (!(pager = getenv("PAGER")) || (*pager == 0))
|
||||
pager = _PATH_PAGER;
|
||||
if ((pf = popen(pager, "w")) == NULL)
|
||||
err(1, "%s", pager);
|
||||
(void)fprintf(pf, "Subjects:\n\n");
|
||||
for (qp = qlist.q_next; qp; qp = qp->q_next) {
|
||||
for (s = next_cat(qp->q_text); s; s = next_cat(s)) {
|
||||
if (!rxp_compile(s))
|
||||
errx(1, "%s", rxperr);
|
||||
if ((p = rxp_expand()))
|
||||
printf("%s ", p);
|
||||
(void)fprintf(pf, "%s ", p);
|
||||
}
|
||||
printf("\n");
|
||||
(void)fprintf(pf, "\n");
|
||||
}
|
||||
printf("\n%s\n%s\n%s\n",
|
||||
(void)fprintf(pf, "\n%s\n%s\n%s\n",
|
||||
"For example, \"quiz victim killer\" prints a victim's name and you reply",
|
||||
"with the killer, and \"quiz killer victim\" works the other way around.",
|
||||
"Type an empty line to get the correct answer.");
|
||||
(void)pclose(pf);
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user