From: Jim Meyering Date: Sun, 21 Jul 1996 17:13:41 +0000 (+0000) Subject: (yesno) [HAVE_RPMATCH]: New rpmatch-based version of the function. X-Git-Tag: cvs-readonly~8511 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=a82735af45d968291389c816f5c2a8c999da0e9c;p=gnulib.git (yesno) [HAVE_RPMATCH]: New rpmatch-based version of the function. --- diff --git a/lib/yesno.c b/lib/yesno.c index 74cbcb742..f69954d1d 100644 --- a/lib/yesno.c +++ b/lib/yesno.c @@ -19,12 +19,37 @@ #include #endif +#include +#ifdef HAVE_STDLIB_H +# include +#endif #include /* Read one line from standard input and return nonzero if that line begins with y or Y, otherwise return 0. */ +#ifdef HAVE_RPMATCH +int +yesno () +{ + /* We make some assumptions here: + a) leading white space in the response are not vital + b) the first 128 characters of the answer are enough (the rest can + be ignored) + I cannot think for a situation where this is not ok. --drepper@gnu */ + char buf[128]; + int len = 0; + int c; + + while ((c = getchar ()) != EOF && c != '\n') + if ((len > 0 && len < 127) || (len == 0 && !isspace (c))) + buf[len++] = c; + buf[len] = '\0'; + + return rpmatch (buf) == 1; +} +#else int yesno () { @@ -39,3 +64,4 @@ yesno () return rv; } +#endif