source: trunk/third/findutils/lib/yesno.c @ 18890

Revision 18890, 1.5 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18889, which included commits to RCS files with non-trunk default branches.
Line 
1/* yesno.c -- read a yes/no response from stdin
2   Copyright (C) 1990, 1998 Free Software Foundation, Inc.
3
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 2, or (at your option)
7   any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
14   You should have received a copy of the GNU General Public License
15   along with this program; if not, write to the Free Software Foundation,
16   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17
18#if HAVE_CONFIG_H
19# include <config.h>
20#endif
21
22#include <ctype.h>
23#if HAVE_STDLIB_H
24# include <stdlib.h>
25#endif
26#include <stdio.h>
27
28/* Read one line from standard input
29   and return nonzero if that line begins with y or Y,
30   otherwise return 0. */
31
32int rpmatch ();
33
34int
35yesno ()
36{
37  /* We make some assumptions here:
38     a) leading white space in the response are not vital
39     b) the first 128 characters of the answer are enough (the rest can
40        be ignored)
41     I cannot think for a situation where this is not ok.  --drepper@gnu  */
42  char buf[128];
43  int len = 0;
44  int c;
45
46  while ((c = getchar ()) != EOF && c != '\n')
47    if ((len > 0 && len < 127) || (len == 0 && !isspace (c)))
48      buf[len++] = c;
49  buf[len] = '\0';
50
51  return rpmatch (buf) == 1;
52}
Note: See TracBrowser for help on using the repository browser.