|  |  | @ -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; | 
			
		
	
	
		
			
				
					|  |  | 
 |