mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +00:00 
			
		
		
		
	Add FreeBSD stty workaround for pty regression tests
Apparently, on FreeBSD, the stty command does not work correctly for setting 'erase' or 'kill' on a pty pseudoterminal. I've no idea whether the bug is in FreeBSD stty or in AST pty, but in any case, a workaround is needed for the time being. src/cmd/ksh93/tests/pty.sh: - Save terminal state on init; set a trap to restore it on exit. - Issue 'stty erase ^H kill ^X' on the real terminal before entering pty pseudoterminals. Resolves #44.
This commit is contained in:
		
							parent
							
								
									66c955bc8f
								
							
						
					
					
						commit
						8ad56f90ab
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -44,6 +44,12 @@ integer Errors=0 lineno=1
 | 
			
		|||
[[ -d $tmp && -w $tmp ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; }
 | 
			
		||||
whence -q pty || { lineno=$LINENO; err\_exit "$LINENO" "pty command not found -- tests skipped"; exit 0; }
 | 
			
		||||
 | 
			
		||||
# On FreeBSD, the stty command does not appear to work correctly on a pty pseudoterminal.
 | 
			
		||||
# To avoid a couple of false regressions, we have to set 'erase' and 'kill' on the real terminal.
 | 
			
		||||
stty_restore=$(stty -g) || { lineno=$LINENO; err\_exit "$LINENO" "could not save terminal state -- tests skipped"; exit 0; }
 | 
			
		||||
trap 'stty "$stty_restore"' EXIT  # note: on ksh, the EXIT trap is also triggered for termination due to a signal
 | 
			
		||||
stty erase ^H kill ^X
 | 
			
		||||
 | 
			
		||||
bintrue=$(whence -p true)
 | 
			
		||||
 | 
			
		||||
x=$( $SHELL <<- \EOF
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue