/* *** 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