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