|  |  | @ -187,7 +187,10 @@ static void write_image(const char *filename, int width, int height) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	sprintf(size, "%dx%d+0", width, height); |  |  |  | 	sprintf(size, "%dx%d+0", width, height); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	int fd[2]; |  |  |  | 	int fd[2]; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	pipe(fd); |  |  |  | 	if (pipe(fd) != 0) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		fprintf(stderr, "cannot create pipe: %s\n", strerror(errno)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		exit(EXIT_FAILURE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	pid_t child = fork(); |  |  |  | 	pid_t child = fork(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if (child < 0) { |  |  |  | 	if (child < 0) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -195,7 +198,10 @@ static void write_image(const char *filename, int width, int height) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		exit(EXIT_FAILURE); |  |  |  | 		exit(EXIT_FAILURE); | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} else if (child != 0) { |  |  |  | 	} else if (child != 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		close(fd[0]); |  |  |  | 		close(fd[0]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		write(fd[1], data, buffer_stride * height); |  |  |  | 		if (write(fd[1], data, buffer_stride * height) < 0) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			fprintf(stderr, "write() failed: %s\n", strerror(errno)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			exit(EXIT_FAILURE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		close(fd[1]); |  |  |  | 		close(fd[1]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		free(data); |  |  |  | 		free(data); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		waitpid(child, NULL, 0); |  |  |  | 		waitpid(child, NULL, 0); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |