|
|
1.1 ! root 1: /* add_port.c: add a port entry to the port file. This will get the ! 2: * info from a curses screen and write an entry to the ! 3: * port file. ! 4: */ ! 5: ! 6: #include <string.h> ! 7: #include "uuinstall.h" ! 8: ! 9: /* add_port merely calls up a template and then calls a function to ! 10: * position the cursor to get data. If the user chooses to save the ! 11: * entered data, it is saved to the port file. ! 12: */ ! 13: ! 14: add_port() ! 15: { ! 16: char z; ! 17: FILE *portfd; ! 18: ! 19: port_template(); ! 20: z = get_port_data(); ! 21: if (z == 'y'){ ! 22: if( (portfd = fopen(PORTFILE,"a")) == NULL){ ! 23: mvwaddstr(portwin,7,5,"ERROR opening file for writing! "); ! 24: wrefresh(portwin); ! 25: sleep(5); ! 26: return; ! 27: } ! 28: wclear(portwin); ! 29: mvwaddstr(portwin,12,32,"Adding entry..."); ! 30: wrefresh(portwin); ! 31: sleep(1); ! 32: ! 33: fprintf(portfd, "\n%s\n",portname); ! 34: fprintf(portfd, "%s\n", porttype); ! 35: fprintf(portfd, "%s\n",portdev); ! 36: fprintf(portfd, "%s\n",portspeed); ! 37: ! 38: if(strstr(porttype,"modem")){ ! 39: fprintf(portfd, "%s\n",portdial); ! 40: } ! 41: ! 42: fclose(portfd); ! 43: } ! 44: wclear(portwin); ! 45: wrefresh(portwin); ! 46: } ! 47: ! 48: ! 49: /* draw a template on the data entry screen */ ! 50: port_template() ! 51: { ! 52: wclear(portwin); ! 53: mvwaddstr(portwin,9,10,"port"); ! 54: mvwaddstr(portwin,10,10,"type"); ! 55: mvwaddstr(portwin,11,10,"device"); ! 56: mvwaddstr(portwin,12,10,"baud"); ! 57: mvwaddstr(portwin,13,10,"dialer"); ! 58: ! 59: wstandout(portwin); ! 60: mvwaddstr(portwin,0,29,"Port File Entry Screen"); ! 61: mvwaddstr(portwin,9,17," "); ! 62: mvwaddstr(portwin,10,17," "); ! 63: mvwaddstr(portwin,11,17,"/dev/ "); ! 64: mvwaddstr(portwin,12,17," "); ! 65: mvwaddstr(portwin,13,17," "); ! 66: wstandend(portwin); ! 67: wrefresh(portwin); ! 68: } ! 69: ! 70: ! 71: /* get the data for this port */ ! 72: get_port_data() ! 73: { ! 74: ! 75: char mdm; /* flag for modem or direct connect */ ! 76: char * workstring; ! 77: ! 78: /* initialize the fields we will fill */ ! 79: strcpy(portname,"port "); ! 80: strcpy(porttype,"type "); ! 81: strcpy(portdev,"device /dev/"); ! 82: strcpy(portspeed,"baud "); ! 83: strcpy(portdial,"dialer "); ! 84: ! 85: ! 86: /* get a port name */ ! 87: wmove(portwin,20,0); ! 88: wclrtobot(portwin); ! 89: mvwaddstr(portwin,20,0,"Enter the name that you want"); ! 90: mvwaddstr(portwin,21,0,"associated with the device"); ! 91: mvwaddstr(portwin,22,0,"that this entry will define."); ! 92: mvwaddstr(portwin,23,0,"Enter nothing to cancel."); ! 93: wrefresh(portwin); ! 94: ! 95: workstring = get_data(portwin,9,17,14,0,1); /* get port name */ ! 96: if (strlen(workstring) == 0) ! 97: return('n'); ! 98: ! 99: strcat(portname,workstring); ! 100: ! 101: /* now find out if this is a direct or modem connection */ ! 102: ! 103: wmove(portwin,20,0); ! 104: wclrtobot(portwin); ! 105: mvwaddstr(portwin,20,0,"This port must be a direct"); ! 106: mvwaddstr(portwin,21,0,"data line connection or used by"); ! 107: mvwaddstr(portwin,22,0,"a modem. You must specify this."); ! 108: wrefresh(portwin); ! 109: ! 110: strcpy(workstring,""); ! 111: mvwaddstr(portwin,15,5,"Is this a <d>irect or <m>odem connection?"); ! 112: wrefresh(portwin); ! 113: do{ ! 114: mvwaddstr(portwin,17,12,"Press 'd' or 'm'."); ! 115: wrefresh(portwin); ! 116: mdm = wgetch(portwin); ! 117: } ! 118: while ((mdm != 'd') && (mdm != 'm')); ! 119: ! 120: wmove(portwin, 10, 17); ! 121: if (mdm == 'd'){ ! 122: wstandout(portwin); ! 123: wprintw(portwin,"direct"); ! 124: wstandend(portwin); ! 125: strcat(porttype,"direct"); ! 126: }else{ ! 127: wstandout(portwin); ! 128: wprintw(portwin,"modem"); ! 129: wstandend(portwin); ! 130: strcat(porttype,"modem"); ! 131: } ! 132: ! 133: wmove(portwin,15,4); ! 134: wclrtoeol(portwin); ! 135: wmove(portwin,17,1); ! 136: wclrtoeol(portwin); ! 137: wrefresh(portwin); ! 138: strcpy(workstring,""); ! 139: ! 140: ! 141: /* Now get the device associated with this port */ ! 142: ! 143: wmove(portwin,20,0); ! 144: wclrtobot(portwin); ! 145: mvwaddstr(portwin,20,0,"Enter the name of the actual"); ! 146: mvwaddstr(portwin,21,0,"device. Examples: com2l, com1fl."); ! 147: wrefresh(portwin); ! 148: ! 149: workstring = get_data(portwin,11,22,14,1,1); ! 150: strcat(portdev,workstring); ! 151: strcpy(workstring,""); ! 152: ! 153: /* now get the speed of this port */ ! 154: ! 155: wmove(portwin,20,0); ! 156: wclrtobot(portwin); ! 157: mvwaddstr(portwin,20,0,"Enter baud rate that communications"); ! 158: mvwaddstr(portwin,21,0,"will take place with via this port."); ! 159: mvwaddstr(portwin,22,0,"Examples: 1200, 2400, 9600, 19200."); ! 160: wrefresh(portwin); ! 161: ! 162: workstring = get_data(portwin,12,17,5,1,1); ! 163: strcat(portspeed,workstring); ! 164: strcpy(workstring,""); ! 165: ! 166: /* now get a dialer name. This will only be needed if ! 167: * this is a modem connection. ! 168: */ ! 169: ! 170: if (strstr(porttype,"modem")){ ! 171: ! 172: wmove(portwin,20,0); ! 173: wclrtobot(portwin); ! 174: mvwaddstr(portwin,20,0,"Enter the name of the dialer entry"); ! 175: mvwaddstr(portwin,21,0,"from the dial file that will be"); ! 176: mvwaddstr(portwin,22,0,"used to dial this modem."); ! 177: wrefresh(portwin); ! 178: ! 179: workstring = get_data(portwin,13,17,14,1,1); ! 180: strcat(portdial, workstring); ! 181: strcpy(workstring,""); ! 182: } ! 183: ! 184: wmove(portwin,20,0); ! 185: wclrtobot(portwin); ! 186: mvwaddstr(portwin,7,5,"Do you wish to write this entry? (y/n)"); ! 187: wrefresh(portwin); ! 188: do{ ! 189: mdm = wgetch(portwin); ! 190: } ! 191: while ((mdm != 'y') && (mdm != 'n')); ! 192: ! 193: wmove(portwin,7,1); ! 194: wclrtoeol(portwin); ! 195: wrefresh(portwin); ! 196: return(mdm); ! 197: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.