Annotation of coherent/d/bin/uucheck/uucheckname/interact.c, revision 1.1.1.1

1.1       root        1: /* interact.c -- routines for interacting with the user.
                      2:  * part of uucheckname.
                      3:  */
                      4: #include "uucheck.h"
                      5: #include "uucheckname.h"
                      6: 
                      7: /* Get a yes or no from the user.  Reprompt as necessary, give up after
                      8:  * PATIENCE number of tries.
                      9:  * Understands a wide variety of variations.
                     10:  * Returns TRUE on yes, FALSE on no.
                     11:  */
                     12: #define PATIENCE 10
                     13: 
                     14: boolean
                     15: get_yes_or_no()
                     16: {
                     17:        boolean have_answer = FALSE;
                     18:        boolean answer;
                     19:        unsigned int give_up_count = 0;
                     20:        
                     21:        while (!have_answer && give_up_count < PATIENCE) {
                     22:                gets(bigbuf);
                     23: 
                     24:                if (lookup(bigbuf, yes_table) != NULL) {
                     25:                        answer = TRUE;
                     26:                        have_answer = TRUE;
                     27:                } else if (lookup(bigbuf, no_table) != NULL) {
                     28:                        answer = FALSE;
                     29:                        have_answer = TRUE;
                     30:                } /* if lookup bigbuf in yes_table, else no_table */
                     31: 
                     32:                /* If we still don't have a valid answer, prompt for one.  */
                     33:                if (!have_answer && ++give_up_count < PATIENCE) {
                     34:                        printf("Please enter y or n:  ");
                     35:                } /* if (!have_answer) */
                     36: 
                     37:        } /* while (!have_answer) */
                     38: 
                     39:        if (!have_answer) {
                     40:                printf("PATIENCE exceeded; assuming \"no\" :-(.\n");
                     41:                answer = FALSE;
                     42:        } /* if (!have_answer) */
                     43: 
                     44:        return(answer);
                     45: } /* get_yes_or_no() */
                     46: 
                     47: void
                     48: recreate_uucpname()
                     49: {
                     50:        FILE *fp;
                     51: 
                     52:        MESSAGE("Recreating uucpname.\n");
                     53:        printf("Please enter a new uucpname:  ");
                     54:        gets(bigbuf);
                     55:        /* Open /etc/uucpname and write out the new name.  */
                     56:        if ((fp = fopen(NAMEFILE, "w")) == (FILE *) NULL) {
                     57:                /* Remember, we should be root here.  */
                     58:                FATAL("How strange!  I can't open %s for writing!\n", NAMEFILE);
                     59:        } /* If can not open NAMEFILE.  */
                     60:        strcat(bigbuf, "\n");
                     61:        fputs(bigbuf, fp);
                     62:        fclose(fp);
                     63:        /* Now re-check that name.  */
                     64:        error = FALSE;
                     65:        warning = FALSE;
                     66:        uucheckname();
                     67: } /* recreate_uucpname() */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.