1: #include "parms.h"
2: #include "structs.h"
3:
4: #ifdef RCSIDENT
5: static char rcsid[] = "$Header: prtind.c,v 1.7.0.1 85/03/18 20:56:33 notes Rel $";
6: #endif RCSIDENT
7:
8: /*
9: * print the index page for a notefile
10: *
11: * Original author: Rob Kolstad Winter, 1980.
12: * Modifications: Ray Essick June 1981.
13: *
14: */
15:
16:
17: prntind (io, firstdis, lastdis)
18: struct io_f *io;
19: int *firstdis,
20: *lastdis;
21: {
22: struct note_f note;
23: struct when_f date;
24: char buf[NAMESZ + SYSSZ + 2]; /* hold sys!author for truncation */
25: int atrow; /* printing row counter */
26: int lyr,
27: lday,
28: lmon; /* so we know if need to reprint date */
29: int i;
30:
31: erase ();
32: at (1, 2);
33: printf ("%s", io -> descr.d_title); /* dump title */
34: gettime (&date);
35: at (1, 58);
36: prdate (&date);
37:
38: if (io -> descr.d_stat & ISARCH)
39: {
40: at (2, 2);
41: #ifdef WRITEARCH /* archive writes? */
42: printf ("[ARCHIVE]");
43: #else ! WRITEARCH
44: printf ("[ARCHIVE - NO WRITES]");
45: #endif WRITEARCH
46: }
47:
48: atrow = 5; /* start printing here */
49: lyr = lday = lmon = 0; /* unknown prev date */
50: if (*firstdis > io -> descr.d_nnote - Nindex + 1)
51: *firstdis = io -> descr.d_nnote - Nindex + 1;
52: if (*firstdis < 1)
53: *firstdis = 1;
54: *lastdis = *firstdis + Nindex - 1;
55: for (i = *firstdis; (i <= *lastdis) & (i <= io -> descr.d_nnote); i++)
56: { /* which does not execute for empty file */
57: getnrec (io, i, ¬e);
58: if (note.n_stat & DELETED)
59: {
60: if (++(*lastdis) > io -> descr.d_nnote)
61: *lastdis = io -> descr.d_nnote;
62: continue; /* deleted note */
63: }
64: if (note.n_rcvd.w_year != lyr ||
65: note.n_rcvd.w_month != lmon ||
66: note.n_rcvd.w_day != lday) /* need to print date? */
67: {
68: at (atrow, 1);
69: printf ("%d/%d", lmon = note.n_rcvd.w_month, lday = note.n_rcvd.w_day);
70: if (note.n_rcvd.w_year != lyr)
71: printf ("/%02d", (lyr = note.n_rcvd.w_year) % 100);
72: }
73: at (atrow, 10);
74: printf ("%3d", i);
75: if (note.n_stat & DIRMES)
76: printf ("*");
77: else
78: printf (" ");
79: clearerr (stdout);
80: fwrite (note.ntitle, 1, strlen (note.ntitle), stdout);
81: if (note.n_nresp != 0)
82: {
83: at (atrow, 10 + 4 + TITLEN + 1);
84: printf ("%3d", note.n_nresp);
85: }
86: at (atrow, 10 + 4 + TITLEN + 1 + 3 + 1);
87: if (strcmp (Authsystem, note.n_auth.asystem) != 0 &&
88: strcmp ("Anonymous", note.n_auth.aname) != 0)
89: {
90: #ifdef USERHOST
91: sprintf (buf, "%s@%s", note.n_auth.aname, note.n_auth.asystem);
92: #else
93: sprintf (buf, "%s!%s", note.n_auth.asystem, note.n_auth.aname);
94: #endif USERHOST
95: }
96: else
97: sprintf (buf, "%s", note.n_auth.aname);
98:
99: buf[26] = '\0'; /* don't overflow line */
100: printf ("%s", buf);
101: if (isinput ())
102: return; /* he typed */
103: atrow++;
104: if (intflag) /* did he want out? */
105: {
106: *lastdis = i; /* show last displayed */
107: intflag = 0; /* don't do same one twice */
108: }
109: }
110:
111: if (*lastdis >= io -> descr.d_nnote)
112: {
113: at (++atrow, 14);
114: printf ("**** End of Notes ****");
115: }
116:
117: at (atrow + 2, 25);
118: printf ("- - - - - - - - - - - - - - -");
119:
120: }
Defined functions
Defined variables
rcsid
defined in line
5;
never used