summaryrefslogtreecommitdiff
path: root/i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c
diff options
context:
space:
mode:
Diffstat (limited to 'i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c')
-rw-r--r--i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c b/i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c
new file mode 100644
index 0000000..4642fa0
--- /dev/null
+++ b/i/pc104/initrd/conf/busybox/libbb/ask_confirmation.c
@@ -0,0 +1,36 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * bb_ask_confirmation implementation for busybox
+ *
+ * Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ */
+
+/* Read a line from stdin. If the first non-whitespace char is 'y' or 'Y',
+ * return 1. Otherwise return 0.
+ */
+
+#include <stdio.h>
+#include <ctype.h>
+#include "libbb.h"
+
+int bb_ask_confirmation(void)
+{
+ int retval = 0;
+ int first = 1;
+ int c;
+
+ while (((c = getchar()) != EOF) && (c != '\n')) {
+ /* Make sure we get the actual function call for isspace,
+ * as speed is not critical here. */
+ if (first && !(isspace)(c)) {
+ --first;
+ if ((c == 'y') || (c == 'Y')) {
+ ++retval;
+ }
+ }
+ }
+
+ return retval;
+}