always flush line-buffered output when filling an input buffer
This commit is contained in:
		
							parent
							
								
									6c5c8c980e
								
							
						
					
					
						commit
						472ee0cea4
					
				
					 1 changed files with 7 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -13,6 +13,7 @@ int
 | 
			
		|||
__fillbuf(register FILE *stream)
 | 
			
		||||
{
 | 
			
		||||
	static unsigned char ch[FOPEN_MAX];
 | 
			
		||||
	register int i;
 | 
			
		||||
 | 
			
		||||
	stream->_count = 0;
 | 
			
		||||
	if (fileno(stream) < 0) return EOF;
 | 
			
		||||
| 
						 | 
				
			
			@ -33,13 +34,12 @@ __fillbuf(register FILE *stream)
 | 
			
		|||
			stream->_bufsiz = BUFSIZ;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if (io_testflag(stream, _IONBF | _IOLBF)) {
 | 
			
		||||
		register int i;
 | 
			
		||||
		for (i = 0; i < FOPEN_MAX; i++) {
 | 
			
		||||
			if (__iotab[i] && io_testflag(__iotab[i], _IOLBF))
 | 
			
		||||
				if (io_testflag(__iotab[i], _IOWRITING))
 | 
			
		||||
					(void) fflush(__iotab[i]);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	/* flush line-buffered output when filling an input buffer */
 | 
			
		||||
	for (i = 0; i < FOPEN_MAX; i++) {
 | 
			
		||||
		if (__iotab[i] && io_testflag(__iotab[i], _IOLBF))
 | 
			
		||||
			if (io_testflag(__iotab[i], _IOWRITING))
 | 
			
		||||
				(void) fflush(__iotab[i]);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!stream->_buf) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue