home *** CD-ROM | disk | FTP | other *** search
- /* *** chosit.c *** */
- /* */
- /* IBM - PC microsoft "C" */
- /* */
- /* Function to display a menu, prompt for a response, and validate. */
- /* Calls function mencon to display the menu. Returns the integer */
- /* response, or -1 if invalid response or error occured. */
- /* */
- /* Written by L. Cuthbertson, April 1984. */
- /* */
- /*********************************************************************/
- /* */
-
- int chosit(menu,ans,lenans)
- char menu[],ans[];
- int lenans;
- {
- extern int rc[][2];
- extern int vrange[2];
- int i,j,ians,nfield;
-
- /* display menu */
- if (strcmp(menu,"skip") != 0) {
- nfield = mencon(menu);
- if (nfield == (-1))
- return(-1); /* error in mencon */
- }
-
- /* move cursor to entry position */
- i=0; /* position within rc array */
- if (i > (nfield-1)) {
- return(-1); /* no entry position on menu */
- }
-
- loop:
- cursor(rc[i][0],rc[i][1]);
-
- /* accept answer */
- reads(ans,lenans);
-
- /* convert answer to integer */
- sscanf(ans,"%d",&ians);
-
- /* always exit if 99 entered */
- if (ians == 99)
- exit();
-
- /* validate answer */
- if ((ians < vrange[0]) || (ians > vrange[1])) {
- cursor(25,19);
- writes("\007*** invalid response - please try again ***");
- pause(5.);
- cursor(25,19);
- eline(0);
- cursor(rc[i][0],rc[i][1]);
- for (j=1;j<lenans;j++)
- writec(' ');
- goto loop;
- }
-
- /* done */
- return(ians);
- }