|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T y
Length: 1858 (0x742) Types: TextFile Names: »yesno.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec8/mcp/src/yesno.c«
#include <stdio.h> #include "sysdep.h" #include "mem.h" #include "lists.h" #include "gpa.h" static char *yn[4] = { "yes", "no", "YES!!!", "NO!!!" }; static char *y[1] = { "yes" }; static char *n[1] = { "no" }; struct list YesNo = { 4, 4, (addr *)yn }; static struct list Yes = { 1, 1, (addr *)y }; static struct list No = { 1, 1, (addr *)n }; /* * Query for a yes or no answer. Allows carriage return to default * yes. Returns 1 if answer is yes, 0 for no. */ yes(prompt) char *prompt; { addr *argv; int argc; char **cpp; argv = get_gpa(2); cpp = (char **) argv; do { GetLine(prompt, 1, &argc, argv, &Yes); if (argc == 0 || **cpp == 'y' || **cpp == 'Y') { pop_gpa(2); return(1); } else if (**cpp == 'n' || **cpp == 'N') { pop_gpa(2); return(0); } } while (clear_gpa(argv, 2)); /* NOTREACHED */ } /* * Query for a yes or no answer. Allows carriage return to default * no. Returns 1 if answer is no, 0 for yes. */ no(prompt) char *prompt; { addr *argv; int argc; char **cpp; argv = get_gpa(2); cpp = (char **) argv; do { GetLine(prompt, 1, &argc, argv, &No); if (argc == 0 || **cpp == 'n' || **cpp == 'N') { pop_gpa(2); return(1); } else if (**cpp == 'y' || **cpp == 'Y') { pop_gpa(2); return(0); } } while (clear_gpa(argv, 2)); /* NOTREACHED */ } /* * Query for a yes or no answer. Disallows carriage return default; * answer must be specified. Returns 1 if answer is yes, 0 for no. */ yesno(prompt) char *prompt; { addr *argv; int argc; char **cpp; argv = get_gpa(2); cpp = (char **) argv; do { GetLine(prompt, 1, &argc, argv, &YesNo); if (argc == 0) continue; if (**cpp == 'y' || **cpp == 'Y') { pop_gpa(2); return(1); } else if (**cpp == 'n' || **cpp == 'N') { pop_gpa(2); return(0); } } while (clear_gpa(argv, 2)); /* NOTREACHED */ }