summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/stdio-frontend.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2000-12-16 22:03:06 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2000-12-16 22:03:06 +0000
commit2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915 (patch)
tree9e3e67b830f02fb32f528f391bb72a1deddade6c /mdk-stage1/stdio-frontend.c
parentc930e6cc7e11b72ab1786f209dffb49a11bea8f7 (diff)
downloaddrakx-backup-do-not-use-2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915.tar
drakx-backup-do-not-use-2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915.tar.gz
drakx-backup-do-not-use-2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915.tar.bz2
drakx-backup-do-not-use-2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915.tar.xz
drakx-backup-do-not-use-2766c6bb69ced7c4f33ec9d8bda56ba5b66e2915.zip
- network/nfs works
Diffstat (limited to 'mdk-stage1/stdio-frontend.c')
-rw-r--r--mdk-stage1/stdio-frontend.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/mdk-stage1/stdio-frontend.c b/mdk-stage1/stdio-frontend.c
index 6d1a64afd..ae7a57af1 100644
--- a/mdk-stage1/stdio-frontend.c
+++ b/mdk-stage1/stdio-frontend.c
@@ -61,9 +61,15 @@ static int get_int_response(void)
static char * get_string_response(void)
{
+ /* I won't use a scanf/%s since I also want the null string to be accepted */
char s[50];
+ int i = 0;
fflush(stdout);
- scanf(" %50s", s);
+ read(0, &(s[i++]), 1);
+ fcntl(0, F_SETFL, O_NONBLOCK);
+ while (read(0, &(s[i++]), 1) > 0 && i < sizeof(s));
+ fcntl(0, F_SETFL, 0);
+ s[i-2] = '\0';
return strdup(s);
}
@@ -216,10 +222,10 @@ enum return_type ask_from_entries(char *msg, char ** questions, char *** answers
{
int j, i = 0;
- printf("> %s (`-' for void answer)\n", msg);
+ printf("> %s\n", msg);
while (questions && *questions) {
- printf("(%d) %s\n", i, *questions);
+ printf("(%c) %s\n", i + 'a', *questions);
i++;
questions++;
}
@@ -229,10 +235,8 @@ enum return_type ask_from_entries(char *msg, char ** questions, char *** answers
while (1) {
int r;
for (j = 0 ; j < i ; j++) {
- printf("(%d) ? ", j);
+ printf("(%c) ? ", j + 'a');
(*answers)[j] = get_string_response();
- if (!strcmp((*answers)[j], "-"))
- (*answers)[j] = strdup("");
}
printf("(0) Cancel (1) Accept (2) Re-enter answers\n? ");
r = get_int_response();