summaryrefslogtreecommitdiffstats
path: root/larn/help.c
diff options
context:
space:
mode:
authorcgd <cgd@NetBSD.org>1993-03-21 09:45:37 +0000
committercgd <cgd@NetBSD.org>1993-03-21 09:45:37 +0000
commit77e3814f0c0e3dea4d0032e25666f77e6f83bfff (patch)
tree7eddfcbf3dd12089e71dc3fafb0a106c5c5766c7 /larn/help.c
parente81d63576b2e46ab90da7d75fa155ea57ee4d32e (diff)
downloadbsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.tar.gz
bsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.tar.zst
bsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.zip
initial import of 386bsd-0.1 sources
Diffstat (limited to 'larn/help.c')
-rw-r--r--larn/help.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/larn/help.c b/larn/help.c
new file mode 100644
index 00000000..0f21367d
--- /dev/null
+++ b/larn/help.c
@@ -0,0 +1,87 @@
+/* help.c Larn is copyrighted 1986 by Noah Morgan. */
+#include "header.h"
+/*
+ * help function to display the help info
+ *
+ * format of the .larn.help file
+ *
+ * 1st character of file: # of pages of help available (ascii digit)
+ * page (23 lines) for the introductory message (not counted in above)
+ * pages of help text (23 lines per page)
+ */
+extern char helpfile[];
+help()
+ {
+ register int i,j;
+#ifndef VT100
+ char tmbuf[128]; /* intermediate translation buffer when not a VT100 */
+#endif VT100
+ if ((j=openhelp()) < 0) return; /* open the help file and get # pages */
+ for (i=0; i<23; i++) lgetl(); /* skip over intro message */
+ for (; j>0; j--)
+ {
+ clear();
+ for (i=0; i<23; i++)
+#ifdef VT100
+ lprcat(lgetl()); /* print out each line that we read in */
+#else VT100
+ { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */
+#endif VT100
+ 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=getchar();
+ if ((i=='\n') || (i=='\33'))
+ {
+ lrclose(); setscroll(); drawscreen(); return;
+ }
+ }
+ }
+ lrclose(); retcont(); drawscreen();
+ }
+
+/*
+ * function to display the welcome message and background
+ */
+welcome()
+ {
+ register int i;
+#ifndef VT100
+ char tmbuf[128]; /* intermediate translation buffer when not a VT100 */
+#endif VT100
+ if (openhelp() < 0) return; /* open the help file */
+ clear();
+ for(i=0; i<23; i++)
+#ifdef VT100
+ lprcat(lgetl()); /* print out each line that we read in */
+#else VT100
+ { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */
+#endif VT100
+ lrclose(); retcont(); /* press return to continue */
+ }
+
+/*
+ * function to say press return to continue and reset scroll when done
+ */
+retcont()
+ {
+ cursor(1,24); lprcat("Press "); standout("return");
+ lprcat(" to continue: "); while (getchar() != '\n');
+ setscroll();
+ }
+
+/*
+ * routine to open the help file and return the first character - '0'
+ */
+openhelp()
+ {
+ if (lopen(helpfile)<0)
+ {
+ lprintf("Can't open help file \"%s\" ",helpfile);
+ lflush(); sleep(4); drawscreen(); setscroll(); return(-1);
+ }
+ resetscroll(); return(lgetc() - '0');
+ }
+