|
|
1.1 ! root 1: /* getfilename() This will print the list of available files to ! 2: * stdscr and allow the user to choose one of them for further processing. ! 3: */ ! 4: ! 5: #include <stdio.h> ! 6: #include <curses.h> ! 7: #include "contents.h" ! 8: #include "maillist.h" ! 9: ! 10: void getfilename() ! 11: { ! 12: int x; ! 13: char tryfile[7][15] = {FILE0,FILE1,FILE2,FILE3,FILE4,FILE5,FILE6}; ! 14: ! 15: clear(); ! 16: refresh(); ! 17: noecho(); ! 18: ! 19: /* print our file choices. If printflag is set, then we only print ! 20: * the first 4 choices, the Contents files, since they are the only ! 21: * ones that can be printed. ! 22: */ ! 23: ! 24: for (x=8;x<15;x++) ! 25: { ! 26: if((printflag==1) && (x == 12)) ! 27: x = 14; ! 28: move(x,32); ! 29: printw("%d. %s",(x-8),tryfile[x-8]); ! 30: } ! 31: ! 32: move(23,0); ! 33: printw("Press the number corresponding to the desired file/option."); ! 34: refresh(); ! 35: ! 36: /* while the returned value of getch is less than 0 or greater ! 37: * than 6, keep getting a keystroke. This is how we will select ! 38: * our file to use for further operations. ! 39: */ ! 40: ! 41: /* if printflag is set, then we test for a more narrow ! 42: * range of files since only the Contents files (selections ! 43: * 0 thru 3) can be printed. Only these filenames should have ! 44: * been printed by the function to print selections, anyways. ! 45: */ ! 46: ! 47: if(printflag != 1) ! 48: { ! 49: x = 0; ! 50: while( x<48 || x>54 ) ! 51: x = getch(); ! 52: } ! 53: else ! 54: { ! 55: x = 0; ! 56: while ( x<48 || x>51 ) ! 57: { ! 58: x = getch(); ! 59: if (x == 54) ! 60: break; ! 61: } ! 62: } ! 63: ! 64: /* if option 5 was selected, display a menu of net maps */ ! 65: ! 66: if( (x-48)==5){ ! 67: get_net_map(); ! 68: return ; ! 69: } ! 70: ! 71: /* if option 6 (QUIT) was selected, copy that to our workfile. ! 72: * otherwise, we are going to get a real file, so append ! 73: * the directory path specified in the .mwcbbs file, if one ! 74: * was specified as DATAPATH. ! 75: */ ! 76: ! 77: if ( (x-48) == 6){ ! 78: strcpy(workfile,tryfile[x-48]); ! 79: }else{ ! 80: strcpy(workfile,find_workfile); ! 81: strcat(workfile,tryfile[x-48]); ! 82: } ! 83: ! 84: echo(); ! 85: if (strcmp(workfile,"QUIT")!= 0) ! 86: { ! 87: move(23,0); ! 88: printw("Reading file %s ...",workfile); ! 89: clrtoeol(); ! 90: refresh(); ! 91: } ! 92: clear(); ! 93: refresh(); ! 94: } ! 95: ! 96: ! 97: void get_net_map() ! 98: ! 99: { ! 100: int x; ! 101: char choice; ! 102: ! 103: clear(); ! 104: ! 105: ! 106: ! 107: for (x=11;x<15;x++) ! 108: { ! 109: move(x,32); ! 110: printw("%d. %s",(x-11),mapfile[x-11]); ! 111: } ! 112: move(23,0); ! 113: printw("Press the number of the map file to read."); ! 114: refresh(); ! 115: ! 116: choice = 0; ! 117: while( (choice > 51) || (choice <48) ) ! 118: choice = getch(); ! 119: ! 120: if ( (choice-48) == 3){ ! 121: strcpy(workfile,mapfile[choice-48]); ! 122: }else{ ! 123: strcpy(workfile,find_workfile); ! 124: strcat(workfile,mapfile[choice-48]); ! 125: } ! 126: ! 127: ! 128: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.