diff options
Diffstat (limited to 'tools/util.c')
-rw-r--r-- | tools/util.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/util.c b/tools/util.c new file mode 100644 index 0000000..029719e --- /dev/null +++ b/tools/util.c @@ -0,0 +1,48 @@ +/* + util.c - helper functions + Copyright (C) 2006 Jean Delvare <khali@linux-fr.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. +*/ + +#include <stdio.h> +#include "util.h" + +/* Return 1 if we should continue, 0 if we should abort */ +int user_ack(int def) +{ + char s[2]; + int ret; + + if (!fgets(s, 2, stdin)) + return 0; /* Nack by default */ + + switch (s[0]) { + case 'y': + case 'Y': + ret = 1; + break; + case 'n': + case 'N': + ret = 0; + break; + default: + ret = def; + } + + /* Flush extra characters */ + while (s[0] != '\n') { + int c = fgetc(stdin); + if (c == EOF) { + ret = 0; + break; + } + s[0] = c; + } + + return ret; +} + |