diff options
Diffstat (limited to 'common/console.c')
| -rw-r--r-- | common/console.c | 28 | 
1 files changed, 27 insertions, 1 deletions
| diff --git a/common/console.c b/common/console.c index 2dfb788885b..5453726f693 100644 --- a/common/console.c +++ b/common/console.c @@ -537,7 +537,33 @@ int ctrlc(void)  	}  	return 0;  } - +/* Reads user's confirmation. +   Returns 1 if user's input is "y", "Y", "yes" or "YES" +*/ +int confirm_yesno(void) +{ +	int i; +	char str_input[5]; + +	/* Flush input */ +	while (tstc()) +		getc(); +	i = 0; +	while (i < sizeof(str_input)) { +		str_input[i] = getc(); +		putc(str_input[i]); +		if (str_input[i] == '\r') +			break; +		i++; +	} +	putc('\n'); +	if (strncmp(str_input, "y\r", 2) == 0 || +	    strncmp(str_input, "Y\r", 2) == 0 || +	    strncmp(str_input, "yes\r", 4) == 0 || +	    strncmp(str_input, "YES\r", 4) == 0) +		return 1; +	return 0; +}  /* pass 1 to disable ctrlc() checking, 0 to enable.   * returns previous state   */ | 
