|
|
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.