dj(1): move prec and rec adjustment into Io_read
This commit is contained in:
		
							parent
							
								
									4004a4a006
								
							
						
					
					
						commit
						f49a2d2eb8
					
				
							
								
								
									
										22
									
								
								src/dj.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								src/dj.c
									
									
									
									
									
								
							| @ -65,13 +65,24 @@ static int write_flags = O_WRONLY | O_CREAT; | |||||||
| #define fdisstd(fd) ((fd) == STDIN_FILENO || (fd) == STDOUT_FILENO) | #define fdisstd(fd) ((fd) == STDIN_FILENO || (fd) == STDOUT_FILENO) | ||||||
| 
 | 
 | ||||||
| /* Reads io->bs bytes from *io's file descriptor into io->buf, storing the
 | /* Reads io->bs bytes from *io's file descriptor into io->buf, storing the
 | ||||||
|  * number of read bytes in io->bufuse and updating io->bytes. If io->bufuse is |  * number of read bytes in io->bufuse and updating io->bytes. If the buf isn't | ||||||
|  * 0, errno will probably be set. Returns io. */ |  * saturated but is still read into, io->prec will be incremented. If the buf | ||||||
|  |  * is saturated, io->rec will be incremented. If io->bufuse is 0, errno will | ||||||
|  |  * probably be set. Returns io. */ | ||||||
| static struct Io * | static struct Io * | ||||||
| Io_read(struct Io *io){ | Io_read(struct Io *io){ | ||||||
| 
 | 
 | ||||||
| 	io->bytes += (io->bufuse = read(io->fd, io->buf, io->bs)); | 	io->bytes += (io->bufuse = read(io->fd, io->buf, io->bs)); | ||||||
| 
 | 
 | ||||||
|  | 	assert(io->bufuse <= io->bs); | ||||||
|  | 
 | ||||||
|  | 	if(io->bufuse != 0){ | ||||||
|  | 		if(io->bufuse < io->bs) | ||||||
|  | 			++io->prec; | ||||||
|  | 		else /* if(io->bufuse == io->bs) */ | ||||||
|  | 			++io->rec; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	return io; | 	return io; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -267,8 +278,8 @@ int main(int argc, char *argv[]){ | |||||||
| 			Io_read(&io[0]); /* second chance */ | 			Io_read(&io[0]); /* second chance */ | ||||||
| 		if(io[0].bufuse == 0) /* that's all she wrote */ | 		if(io[0].bufuse == 0) /* that's all she wrote */ | ||||||
| 			break; | 			break; | ||||||
| 		else if(io[0].bufuse < io[0].bs){ | 
 | ||||||
| 			++io[0].prec; | 		if(io[0].bufuse < io[0].bs){ | ||||||
| 			fprintf(stderr, "%s: Partial read:\n\t", program_name); | 			fprintf(stderr, "%s: Partial read:\n\t", program_name); | ||||||
| 			printio(fmt, io); | 			printio(fmt, io); | ||||||
| 			if(!noerror) | 			if(!noerror) | ||||||
| @ -279,8 +290,7 @@ int main(int argc, char *argv[]){ | |||||||
| 					io[0].bs - io[0].bufuse); | 					io[0].bs - io[0].bufuse); | ||||||
| 				io->bufuse = io->bs; | 				io->bufuse = io->bs; | ||||||
| 			} | 			} | ||||||
| 		}else | 		} | ||||||
| 			++io[0].rec; |  | ||||||
| 
 | 
 | ||||||
| 		/* write */ | 		/* write */ | ||||||
| 		do{ | 		do{ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user