mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	[libng16] Added checksum-icc.c to contrib/libtests
This commit is contained in:
		
							parent
							
								
									f7677a348e
								
							
						
					
					
						commit
						51d1e2be1b
					
				
							
								
								
									
										5
									
								
								ANNOUNCE
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								ANNOUNCE
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Libpng 1.6.0beta20 - March 21, 2012
 | 
					Libpng 1.6.0beta20 - March 22, 2012
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is not intended to be a public release.  It will be replaced
 | 
					This is not intended to be a public release.  It will be replaced
 | 
				
			||||||
within a few weeks by a public version or by another test version.
 | 
					within a few weeks by a public version or by another test version.
 | 
				
			||||||
@ -339,10 +339,11 @@ Version 1.6.0beta19 [March 18,2012]
 | 
				
			|||||||
  Avoid the double gamma correction warning in the simplified API.
 | 
					  Avoid the double gamma correction warning in the simplified API.
 | 
				
			||||||
    This allows the --strict option to pass in the pngstest checks
 | 
					    This allows the --strict option to pass in the pngstest checks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version 1.6.0beta20 [March 21, 2012]
 | 
					Version 1.6.0beta20 [March 22, 2012]
 | 
				
			||||||
  Changed chunk handler warnings into benign errors, incrementally load iCCP
 | 
					  Changed chunk handler warnings into benign errors, incrementally load iCCP
 | 
				
			||||||
  Recognize known sRGB ICC profiles while reading and handle them as if the
 | 
					  Recognize known sRGB ICC profiles while reading and handle them as if the
 | 
				
			||||||
    sRGB chunk had appeared instead.
 | 
					    sRGB chunk had appeared instead.
 | 
				
			||||||
 | 
					  Added checksum-icc.c to contrib/libtests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 | 
					Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 | 
				
			||||||
(subscription required; visit
 | 
					(subscription required; visit
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								CHANGES
									
									
									
									
									
								
							@ -4090,10 +4090,11 @@ Version 1.6.0beta19 [March 18, 2012]
 | 
				
			|||||||
  Avoid the double gamma correction warning in the simplified API.
 | 
					  Avoid the double gamma correction warning in the simplified API.
 | 
				
			||||||
    This allows the --strict option to pass in the pngstest checks
 | 
					    This allows the --strict option to pass in the pngstest checks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version 1.6.0beta20 [March 21, 2012]
 | 
					Version 1.6.0beta20 [March 22, 2012]
 | 
				
			||||||
  Changed chunk handler warnings into benign errors, incrementally load iCCP
 | 
					  Changed chunk handler warnings into benign errors, incrementally load iCCP
 | 
				
			||||||
  Recognize known sRGB ICC profiles while reading and handle them as if the
 | 
					  Recognize known sRGB ICC profiles while reading and handle them as if the
 | 
				
			||||||
    sRGB chunk had appeared instead.
 | 
					    sRGB chunk had appeared instead.
 | 
				
			||||||
 | 
					  Added checksum-icc.c to contrib/libtests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 | 
					Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 | 
				
			||||||
(subscription required; visit
 | 
					(subscription required; visit
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										89
									
								
								contrib/libtests/checksum-icc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								contrib/libtests/checksum-icc.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					/* checksum-icc.c
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 2012 John Cunningham Bowler
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Last changed in libpng 1.6.0 [(PENDING RELEASE)]
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is released under the libpng license.
 | 
				
			||||||
 | 
					 * For conditions of distribution and use, see the disclaimer
 | 
				
			||||||
 | 
					 * and license in png.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Generate crc32 and adler32 checksums of the given input files, used to
 | 
				
			||||||
 | 
					 * generate check-codes for use when matching ICC profiles within libpng.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <zlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int
 | 
				
			||||||
 | 
					read_one_file(FILE *ip, const char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   uLong length = 0;
 | 
				
			||||||
 | 
					   uLong a32 = adler32(0, NULL, 0);
 | 
				
			||||||
 | 
					   uLong c32 = crc32(0, NULL, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   for (;;)
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					      int ch = getc(ip);
 | 
				
			||||||
 | 
					      Byte b;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (ch == EOF) break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      b = (Byte)ch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ++length;
 | 
				
			||||||
 | 
					      a32 = adler32(a32, &b, 1);
 | 
				
			||||||
 | 
					      c32 = crc32(c32, &b, 1);
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if (ferror(ip))
 | 
				
			||||||
 | 
					      return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   /* Success */
 | 
				
			||||||
 | 
					   printf("{ 0x%8.8lx, 0x%8.8lx, %lu, \"%s\" },\n", (unsigned long)a32,
 | 
				
			||||||
 | 
					      (unsigned long)c32, (unsigned long)length, name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   return 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char **argv)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   int err = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   printf("= { /* adler32   crc32   length  name */\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if (argc > 1)
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					      int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (i=1; i<argc; ++i)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					         FILE *ip = fopen(argv[i], "rb");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         if (ip == NULL || !read_one_file(ip, argv[i]))
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					            err = 1;
 | 
				
			||||||
 | 
					            perror(argv[i]);
 | 
				
			||||||
 | 
					            fprintf(stderr, "%s: read error\n", argv[i]);
 | 
				
			||||||
 | 
					            printf(" { 0, 0, 0, /* ERROR: */, \"%s\" },\n", argv[i]);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         (void)fclose(ip);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   else
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					      if (!read_one_file(stdin, "-"))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					         err = 1;
 | 
				
			||||||
 | 
					         perror("stdin");
 | 
				
			||||||
 | 
					         fprintf(stderr, "stdin: read error\n");
 | 
				
			||||||
 | 
					         printf(" { 0, 0, 0, /* ERROR: */, \"-\" },\n");
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   printf("};\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   return err;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user