diff options
| -rw-r--r-- | miscutils/bc.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index 45cdeae7f..0330c43e5 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -771,11 +771,12 @@ struct globals {  #define G_posix (ENABLE_BC && (option_mask32 & BC_FLAG_S))  #define G_warn  (ENABLE_BC && (option_mask32 & BC_FLAG_W))  #define G_exreg (ENABLE_DC && (option_mask32 & DC_FLAG_X)) -#define G_interrupt (ENABLE_FEATURE_BC_SIGNALS ? bb_got_signal : 0)  #if ENABLE_FEATURE_BC_SIGNALS -# define G_ttyin G.ttyin +# define G_interrupt bb_got_signal +# define G_ttyin     G.ttyin  #else -# define G_ttyin 0 +# define G_interrupt 0 +# define G_ttyin     0  #endif  #if ENABLE_FEATURE_CLEAN_UP  # define G_exiting G.exiting @@ -1262,9 +1263,9 @@ static BcStatus bc_read_line(BcVec *vec, const char *prompt)  		fflush_and_check();  #if ENABLE_FEATURE_BC_SIGNALS -		if (bb_got_signal) { // ^C was pressed +		if (G_interrupt) { // ^C was pressed   intr: -			bb_got_signal = 0; // resets G_interrupt to zero +			G_interrupt = 0;  			fputs(IS_BC  				? "\ninterrupt (type \"quit\" to exit)\n"  				: "\ninterrupt (type \"q\" to exit)\n" @@ -1299,7 +1300,7 @@ static BcStatus bc_read_line(BcVec *vec, const char *prompt)  				c = fgetc(stdin);  #if ENABLE_FEATURE_BC_SIGNALS && !ENABLE_FEATURE_EDITING  				// Both conditions appear simultaneously, check both just in case -				if (errno == EINTR || bb_got_signal) { +				if (errno == EINTR || G_interrupt) {  					// ^C was pressed  					clearerr(stdin);  					goto intr;  | 
