home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / tass.lzh / prompt.c < prev    next >
Text File  |  1993-01-24  |  4KB  |  156 lines

  1.  
  2. #include       <stdio.h>
  3. #include       "tass.h"
  4.  
  5.  
  6. /*
  7.  *  parse_num
  8.  *  get a number from the user
  9.  *  Return -1 if missing or bad number typed
  10.  */
  11.  
  12. parse_num(ch, prompt)
  13. char ch;
  14. char *prompt;
  15. {
  16.        char buf[40];
  17.        int len;
  18.        int i;
  19.        int num;
  20.  
  21.        MoveCursor(LINES,0);
  22.        printf("%s %c",prompt,ch);
  23.        fflush(stdout);
  24.        buf[0] = ch;
  25.        buf[1] = '\0';
  26.        len = 1;
  27.        ch = ReadCh();
  28.        while (ch != '\n'&& ch != '\r') {
  29.                if (ch >= '0' && ch <= '9' && len < 4) {
  30.                        buf[len++] = ch;
  31.                        buf[len] = '\0';
  32.                        putchar(ch);
  33.                } else if (ch == 8 || ch == 127) {
  34.                        if (len) {
  35.                                len--;
  36.                                buf[len] = '\0';
  37.                                putchar('\b');
  38.                                putchar(' ');
  39.                                putchar('\b');
  40.                        } else {
  41.                                MoveCursor(LINES, 0);
  42.                                CleartoEOLN();
  43.                                return(-1);
  44.                        }
  45.                } else if (ch == 21) {  /* control-U    */
  46.                        for (i = len;i>0;i--) {
  47.                                putchar('\b');
  48.                                putchar(' ');
  49.                                putchar('\b');
  50.                        }
  51.                        buf[0] = '\0';
  52.                        len = 0;
  53.                } else
  54.                        putchar(7);
  55.                fflush(stdout);
  56.                ch = ReadCh();
  57.        }
  58.  
  59.        MoveCursor(LINES, 0);
  60.        CleartoEOLN();
  61.  
  62.        if (len) {
  63.                num = atoi(buf);
  64.                return(num);
  65.        } else
  66.                return(-1);
  67. }
  68.  
  69.  
  70. /*
  71.  *  parse_string
  72.  *  get a string from the user
  73.  *  Return TRUE if a valid string was typed, FALSE otherwise
  74.  */
  75.  
  76. parse_string(prompt, buf)
  77. char *prompt;
  78. char *buf;
  79. {
  80. int len;
  81. int i;
  82. char ch;
  83.  
  84.        clear_message();
  85.        MoveCursor(LINES,0);
  86.        printf("%s", prompt);
  87.        fflush(stdout);
  88.        buf[0] = '\0';
  89.        len = 0;
  90.        ch = ReadCh();
  91.        while (ch != '\n' && ch != '\r') {
  92.                if (ch >= ' ' && len < 60) {
  93.                        buf[len++] = ch;
  94.                        buf[len] = '\0';
  95.                        putchar(ch);
  96.                } else if (ch == 8 || ch == 127) {
  97.                        if (len) {
  98.                                len--;
  99.                                buf[len] = '\0';
  100.                                putchar('\b');
  101.                                putchar(' ');
  102.                                putchar('\b');
  103.                        } else {
  104.                                MoveCursor(LINES, 0);
  105.                                CleartoEOLN();
  106.                                return(FALSE);
  107.                        }
  108.                } else if (ch == 21) {  /* control-U    */
  109.                        for (i = len;i>0;i--) {
  110.                                putchar('\b');
  111.                                putchar(' ');
  112.                                putchar('\b');
  113.                        }
  114.                        buf[0] = '\0';
  115.                        len = 0;
  116.                } else
  117.                        putchar(7);
  118.                fflush(stdout);
  119.                ch = ReadCh();
  120.        }
  121.        MoveCursor(LINES,0);
  122.        CleartoEOLN();
  123.  
  124.        return TRUE;
  125. }
  126.  
  127.  
  128. prompt_yn(prompt)
  129. char *prompt;
  130. {
  131.        char ch;
  132.  
  133.        clear_message();
  134.        MoveCursor(LINES,0);
  135.        printf("%s", prompt);
  136.        fflush(stdout);
  137.  
  138.        ch = ReadCh();
  139.        clear_message();
  140.  
  141.        if (ch == 'y' || ch == 'Y')
  142.                return TRUE;
  143.  
  144.        return FALSE;
  145. }
  146.  
  147.  
  148. continue_prompt() {
  149.  
  150.        printf("-Hit return to continue-");
  151.        fflush(stdout);
  152.        while (ReadCh() != '\n') ;
  153. }
  154.  
  155.  
  156.