aboutsummaryrefslogtreecommitdiff
path: root/libbb/ask_confirmation.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/ask_confirmation.c')
-rw-r--r--libbb/ask_confirmation.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/libbb/ask_confirmation.c b/libbb/ask_confirmation.c
new file mode 100644
index 000000000..4642fa036
--- /dev/null
+++ b/libbb/ask_confirmation.c
@@ -0,0 +1,36 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * bb_ask_confirmation implementation for busybox
4 *
5 * Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8 */
9
10/* Read a line from stdin. If the first non-whitespace char is 'y' or 'Y',
11 * return 1. Otherwise return 0.
12 */
13
14#include <stdio.h>
15#include <ctype.h>
16#include "libbb.h"
17
18int bb_ask_confirmation(void)
19{
20 int retval = 0;
21 int first = 1;
22 int c;
23
24 while (((c = getchar()) != EOF) && (c != '\n')) {
25 /* Make sure we get the actual function call for isspace,
26 * as speed is not critical here. */
27 if (first && !(isspace)(c)) {
28 --first;
29 if ((c == 'y') || (c == 'Y')) {
30 ++retval;
31 }
32 }
33 }
34
35 return retval;
36}