ash: let ignoreeof only affect interactive shells
Commit fb7d6c89 from Harald van Dijk's gwsh variant of ash (https://github.com/hvdijk/gwsh): ignoreeof is documented as only having an effect for interactive shells, but is implemented as having mostly the same effect for interactive shells as for non-interactive shells. Change the implementation to match the documentation. Test case: $SHELL -o ignoreeof /dev/null function old new delta cmdloop 359 361 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 2/0) Total: 2 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						 Denys Vlasenko
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							50239a665c
						
					
				
				
					commit
					5726df5f94
				
			| @@ -13508,12 +13508,13 @@ cmdloop(int top) | ||||
| 			if (!top || numeof >= 50) | ||||
| 				break; | ||||
| 			if (!stoppedjobs()) { | ||||
| 				if (!iflag) | ||||
| 					break; | ||||
| 				if (!Iflag) { | ||||
| 					if (iflag) { | ||||
| 						newline_and_flush(stderr); | ||||
| 					} | ||||
| 					newline_and_flush(stderr); | ||||
| 					break; | ||||
| 				} | ||||
| 				/* "set -o ignoreeof" active, do not exit command loop on ^D */ | ||||
| 				out2str("\nUse \"exit\" to leave shell.\n"); | ||||
| 			} | ||||
| 			numeof++; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user