summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>2013-09-18 16:27:35 +0800
committerChris Mason <chris.mason@fusionio.com>2013-10-16 08:22:26 -0400
commit39813fb7ac3e622b25f27dcd78e98242e121011e (patch)
tree88a5099b7c8b89bbab9f1a3c09e0308d69a920b8 /utils.c
parent77801d34d02e04ea4d5344415015a2ce84e0b653 (diff)
Btrfs-progs: move ask_user() to utils.c
Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index d365380e..5fa193b4 100644
--- a/utils.c
+++ b/utils.c
@@ -1957,3 +1957,21 @@ int is_vol_small(char *file)
return 0;
}
}
+
+/*
+ * This reads a line from the stdin and only returns non-zero if the
+ * first whitespace delimited token is a case insensitive match with yes
+ * or y.
+ */
+int ask_user(char *question)
+{
+ char buf[30] = {0,};
+ char *saveptr = NULL;
+ char *answer;
+
+ printf("%s [y/N]: ", question);
+
+ return fgets(buf, sizeof(buf) - 1, stdin) &&
+ (answer = strtok_r(buf, " \t\n\r", &saveptr)) &&
+ (!strcasecmp(answer, "yes") || !strcasecmp(answer, "y"));
+}