| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -823,15 +823,14 @@ ttyread(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						static char buf[BUFSIZ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						static int buflen = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int written; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int ret; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int ret, written; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* append read bytes to unprocessed bytes */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ret = read(cmdfd, buf+buflen, LEN(buf)-buflen); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						switch (ret) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						case 0: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							fputs("Found EOF in input\n", stderr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							fputs("found EOF in input\n", stderr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							exit(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						case -1: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							die("couldn't read from shell: %s\n", strerror(errno)); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -839,7 +838,7 @@ ttyread(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							buflen += ret; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							written = twrite(buf, buflen, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							buflen -= written; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							/* keep any uncomplete utf8 char for the next call */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							/* keep any incomplete UTF-8 byte sequence for the next call */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (buflen > 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								memmove(buf, buf + written, buflen); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return ret; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |