|
|
1.1 root 1: /* this function will open the file and read the appropriate record,
2: * then display it on the window in the approp. positions.
3: */
4:
5: #include <stdio.h>
6: #include <curses.h>
7: #include "contents.h"
8:
9:
10:
11: void display_record (win2, row, col, screen_num)
12: WINDOW *win2;
13: int row, col, screen_num;
14:
15: {
16: WINDOW *win3;
17: char choice;
18: FILE *infp;
19: int x;
20:
21:
22: if ((infp = fopen(workfile,"r")) == NULL)
23: {
24: printf("\007ERROR opening file for input!\n");
25: exit(1);
26: }
27:
28: fseek(infp,REC_FORMULA, 0l);
29: fread(&record, sizeof (struct entry),1,infp);
30: fclose (infp);
31:
32: wstandout(win2);
33:
34: wmove(win2,NAMEHI);
35: waddstr(win2,record.filename);
36:
37: wmove(win2,DESCHI);
38: waddstr(win2,record.description);
39:
40: wmove(win2,DATEHI);
41: waddch(win2,record.date[0]);
42: waddch(win2,record.date[1]);
43: waddch(win2,'/');
44: waddch(win2,record.date[2]);
45: waddch(win2,record.date[3]);
46: waddch(win2,'/');
47: waddch(win2,record.date[4]);
48: waddch(win2,record.date[5]);
49:
50:
51: wmove(win2,SIZEHI);
52: waddstr(win2,record.filesize);
53:
54: wmove(win2,REQHI);
55: waddstr(win2,record.requires);
56:
57: wmove(win2,NOTEHI);
58: waddstr(win2,record.notes);
59:
60: wrefresh(win2);
61: wstandend(win2);
62:
63:
64: /* allocate another window as a message area */
65:
66: if ( (win3=newwin(2,40,20,0)) == NULL)
67: {
68: noraw();
69: endwin();
70: printf("Memory allocation for win3 failed!\n");
71: exit(1);
72: }
73:
74: wclear(win3);
75: wmove(win3,0,0);
76: waddstr(win3,"Press <RETURN> for next screen.");
77: wrefresh(win3);
78: while(13 != wgetch(win3))
79: ;
80: wclear(win2);
81: wmove(win2,1,0);
82: waddstr(win2,"Size of file is: ");
83: wmove(win2,1,40);
84: waddstr(win2,"Number of parts to download: ");
85: wstandout(win2);
86: wmove(win2,1,18);
87: waddstr(win2,record.filesize);
88: wmove(win2,1,69);
89: record.noparts = (record.noparts == 0) ? 1 : record.noparts;
90: wprintw(win2,"%d",record.noparts);
91: wstandend(win2);
92: wmove(win2,3,5);
93: wprintw(win2,"The following commands will be needed to download ");
94: wstandout(win2);
95: waddstr(win2,record.filename);
96: wstandend(win2);
97:
98: /* if there is more than one part to download, call a function to generate
99: * the multiple uucp requests necessary to grab each piece from mwcbbs.
100: */
101:
102: if (record.noparts >1)
103: {
104: build_uucp(record);
105: for (x=0;x<record.noparts;x++)
106: {
107:
108: /* limit ourselves to 10 displayed commands */
109: if (x==10)
110: {
111: wmove(win2,16,0);
112: wprintw(win2,"There are %d more parts to download which do not appear on ths screen.", (record.noparts - x));
113: break;
114: }
115:
116: wmove(win2,5+x,0);
117: waddstr(win2,getfiles[x]);
118: }
119: }
120: else
121: {
122: strcpy(getfiles[0],HOST);
123: strcat(getfiles[0],record.pathname);
124: strcat(getfiles[0],recdir);
125: wmove(win2,5,0);
126: waddstr(win2,getfiles);
127: wrefresh(win2);
128: }
129: wclear(win3);
130: wmove(win3,0,0);
131: waddstr(win3,"Do you wish to download this file?");
132: wmove(win3,1,0);
133: waddstr(win3,"[y] yes or any other key to abort.");
134: wrefresh(win2);
135: wrefresh(win3);
136: choice = '\0';
137: while(choice == '\0')
138: choice = wgetch(win3);
139:
140: wclear(win3);
141: wrefresh(win3);
142:
143: if(choice == 'y' || choice == 'Y')
144: {
145: wclear(win3);
146: wmove(win3,0,0);
147: waddstr(win3,"Processing requests...");
148: wrefresh(win3);
149:
150: for(x = 0; x < record.noparts; x++)
151: system(getfiles[x]);
152: }
153:
154: wclear(win3);
155: wmove(win3,0,0);
156: waddstr(win3,"Press <RETURN> to continue.");
157: wrefresh(win3);
158: while(13 != wgetch(win3))
159: ;
160:
161: wclear(win3);
162: wrefresh(win3);
163:
164: delwin(win3);
165: }
166:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.