|
|
1.1 root 1: /* this function will get the input and write it to a file. This will be
2: * used to get input from a formatted window and create a new file entry
3: * in the specified workfile.
4: */
5:
6: #include <stdio.h>
7: #include <curses.h>
8: #include "contents.h"
9: #include "maillist.h"
10:
11: void add_rec(win2, row, col, screen_num)
12: WINDOW *win2;
13:
14: {
15:
16: FILE *infp;
17: WINDOW *win3;
18: int x;
19: char choice;
20:
21:
22: wrefresh(win2);
23:
24: if( (win3=newwin(4,79,20,0)) == NULL )
25: {
26: wclear(win2);
27: wmove(win2,0,0);
28: wstandout(win2);
29: waddstr(win2,"\007Error allocating memory for win3. Press <RETURN>");
30: wrefresh(win2);
31: while('\n' != getch())
32: ;
33: exit(1);
34: }
35:
36: wclear(win3);
37: wmove(win3,1,1);
38: waddstr(win3,"Enter filename or <RETURN> to exit.");
39: wrefresh(win3);
40: getstring(win2, NAMEHI);
41: strcpy(new_record.filename, workstring);
42: if(strlen(new_record.filename) == 0)
43: return;
44:
45: for(x=strlen(workstring);x < sizeof (new_record.filename) ; x++)
46: new_record.filename[x] = '\0';
47:
48:
49: wclear(win3);
50: wmove(win3,1,1);
51: waddstr(win3,"Describe the uses of this package");
52: wrefresh(win3);
53:
54: getstring(win2, DESCHI);
55: strcpy(new_record.description, workstring);
56:
57: for(x=strlen(workstring);x < sizeof (new_record.description) ; x++)
58: new_record.description[x] = '\0';
59:
60:
61:
62: wclear(win3);
63: wmove(win3,1,1);
64: waddstr(win3,"Enter the date that the file was added or last modified");
65: wmove(win3,2,1);
66: waddstr(win3,"Enter no more than 6 characters");
67: wrefresh(win3);
68:
69: getstring(win2,DATEHI);
70: strcpy(new_record.date, workstring);
71: for(x=strlen(workstring);x < sizeof (new_record.date) ; x++)
72: new_record.date[x] = '\0';
73:
74: wclear(win3);
75: wmove(win3,1,1);
76: waddstr(win3,"Enter the file size in number of bytes");
77: wrefresh(win3);
78: getstring(win2, SIZEHI);
79: strcpy(new_record.filesize, workstring);
80: for(x=strlen(workstring);x < sizeof (new_record.filesize) ; x++)
81: new_record.filesize[x] = '\0';
82:
83:
84: wclear(win3);
85: wmove(win3,3,1);
86: waddstr(win3,"Enter the number of parts that this file is divided into");
87: wrefresh(win3);
88: getstring(win2, PARTHI);
89: new_record.noparts = atoi(workstring);
90:
91:
92: /* if the number of parts is 0 (not a split file), then we can
93: * cat the filename on to the end of the pathname. We can later
94: * test the length of the pathname to determine whether or not
95: * to ask for a pathname, as would be required for a split file.
96: */
97:
98:
99: if(new_record.noparts ==0)
100: {
101: strcpy(new_record.pathname, PATHNAME);
102: strcat(new_record.pathname, new_record.filename);
103: wmove(win2,PATHHI);
104: wstandout(win2);
105: waddstr(win2, new_record.pathname);
106: wstandend(win2);
107: wrefresh(win2);
108: }
109:
110:
111: wclear(win3);
112: wmove(win3,3,1);
113: waddstr(win3,"Enter the names of any support files required");
114: wrefresh(win3);
115: getstring(win2, REQHI);
116:
117: if(strlen(workstring) == 0 )
118: {
119: wmove(win2, REQHI);
120: wstandout(win2);
121: waddstr(win2,"none");
122: wstandend(win2);
123: wrefresh(win2);
124: strcpy(new_record.requires, "none");
125: }
126: else
127: strcpy(new_record.requires, workstring);
128:
129: for(x=strlen(new_record.requires);x < sizeof (new_record.requires) ; x++)
130: record.requires[x] = '\0';
131:
132: wclear(win3);
133: wmove(win3,3,1);
134: waddstr(win3,"Enter any relevant notes about this file");
135: wrefresh(win3);
136: getstring(win2, NOTEHI);
137: if(strlen(workstring) == 0)
138: {
139: wmove(win2,NOTEHI);
140: wstandout(win2);
141: waddstr(win2,"none");
142: wstandend(win2);
143: wrefresh(win2);
144: strcpy(new_record.notes, "none");
145: }
146:
147: else
148: strcpy(new_record.notes, workstring);
149: for(x=strlen(new_record.notes);x < sizeof (new_record.notes) ; x++)
150: new_record.notes[x] = '\0';
151:
152: /* if there is more than one part to download, or number of
153: * parts is not zero, we need to complete the pathlist.
154: */
155:
156: if(new_record.noparts != 0)
157: {
158: wclear(win3);
159: wmove(win3,3,1);
160: waddstr(win3,"Complete the pathlist to this file.");
161: wrefresh(win3);
162: wmove(win2,PATHHI);
163: wstandout(win2);
164: waddstr(win2, PATHNAME);
165: wstandend(win2);
166: wrefresh(win2);
167: getstring(win2, PATHHI2);
168: strcpy(new_record.pathname, PATHNAME);
169: strcat(new_record.pathname, workstring);
170: }
171: for(x=strlen(new_record.pathname);x < sizeof (new_record.pathname) ; x++)
172: new_record.pathname[x] = '\0';
173:
174:
175: wclear(win3);
176: wmove(win3,0,0);
177: waddstr(win3,"Do you wish to write the record?");
178: wmove(win3,1,0);
179: waddstr(win3,"[y]es or any other to abort.");
180: wrefresh(win3);
181: choice ='\0';
182: while(choice == '\0')
183: choice = wgetch(win3);
184:
185: if(choice == 'y' || choice == 'Y')
186: {
187: wclear(win3);
188: wmove(win3,0,0);
189: waddstr(win3,"Updating...");
190: wrefresh(win3);
191: del_rec(win3,row,col,screen_num);
192: }
193:
194: delwin(win3);
195:
196: }
197:
198:
199: /* this function will get a string and print to the approp field
200: * on win2. This is called by add_rec.
201: */
202:
203: void getstring (win2, row, col)
204:
205: WINDOW *win2;
206: int row, col;
207:
208: {
209:
210:
211: noraw();
212: echo();
213: wmove(win2,row,col);
214: wrefresh(win2);
215: wgetstr(win2,workstring);
216: wstandout(win2);
217: wmove(win2,row,col);
218: wprintw(win2,"%s",workstring);
219: wstandend(win2);
220: wrefresh(win2);
221: noecho();
222: raw();
223: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.