-
Notifications
You must be signed in to change notification settings - Fork 3
/
help.c
138 lines (99 loc) · 2.1 KB
/
help.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* help.c */
#include "larncons.h"
#include "larndata.h"
#include "larnfunc.h"
static int openhelp(void);
/*
* 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)
*/
void help(void)
{
int i, j;
/* open the help file and get # pages
*/
if ((j=openhelp()) < 0)
return;
/* skip over intro message
*/
for (i=0; i<23; i++)
lgetl();
--j;
for (; j > 0; j--)
{
clear();
for (i=0; i<23; i++)
lprcat(lgetl()); /* print out each line that we read in */
if (j>1)
{
lprcat(" ---- Press "); lstandout("return");
lprcat(" to exit, "); lstandout("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();
}
/*
* function to display the welcome message and background
*/
void welcome(void)
{
int i;
/* intermediate translation buffer */
char tmbuf[128];
/* open the help file */
if (openhelp() < 0) {
return;
}
clear();
for(i = 0; i < 23; i++) {
/* intercept \33's */
tmcapcnv(tmbuf,lgetl());
lprcat(tmbuf);
}
lrclose();
/* press return to continue */
retcont();
}
/*
* function to say press return to continue and reset scroll when done
*/
void retcont(void)
{
cursor(1,24);
lprcat("Press "); lstandout("return");
lprcat(" to continue: ");
while (ttgetch() != '\n');
setscroll();
}
/*
* routine to open the help file and return the first character - '0'
*/
static int openhelp(void)
{
if (lopen(helpfile) < 0) {
lprintf("Can't open help file \"%s\" ",helpfile);
lflush();
nap(4000);
drawscreen();
setscroll();
return -1;
}
resetscroll();
return (lgetc() - '0');
}