diff options
author | Martin Schröder <martin@oneiros.de> | 2008-02-03 14:02:22 +0000 |
---|---|---|
committer | Martin Schröder <martin@oneiros.de> | 2008-02-03 14:02:22 +0000 |
commit | 8d602fb9d17450cd3195527e717053d2e1e8d651 (patch) | |
tree | b63d2d45212f1b87fc1d6e7fc29e0752f73cfed7 /Build/source/libs/libpng/pngerror.c | |
parent | a637ef3866e1d89fbb06407d83f53740ccd31dbc (diff) |
Import libpng 1.2.24 (from pdftex)
git-svn-id: svn://tug.org/texlive/trunk@6492 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/libpng/pngerror.c')
-rw-r--r-- | Build/source/libs/libpng/pngerror.c | 59 |
1 files changed, 41 insertions, 18 deletions
diff --git a/Build/source/libs/libpng/pngerror.c b/Build/source/libs/libpng/pngerror.c index f50f6534427..b364fc00af4 100644 --- a/Build/source/libs/libpng/pngerror.c +++ b/Build/source/libs/libpng/pngerror.c @@ -1,9 +1,9 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * Last changed in libpng 1.2.13 November 13, 2006 + * Last changed in libpng 1.2.22 [October 13, 2007] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2006 Glenn Randers-Pehrson + * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -20,15 +20,18 @@ static void /* PRIVATE */ png_default_error PNGARG((png_structp png_ptr, png_const_charp error_message)); +#ifndef PNG_NO_WARNINGS static void /* PRIVATE */ png_default_warning PNGARG((png_structp png_ptr, png_const_charp warning_message)); +#endif /* PNG_NO_WARNINGS */ /* This function is called whenever there is a fatal error. This function * should not be changed. If there is a need to handle errors differently, * you should supply a replacement error function and use png_set_error_fn() * to replace the error function at run-time. */ +#ifndef PNG_NO_ERROR_TEXT void PNGAPI png_error(png_structp png_ptr, png_const_charp error_message) { @@ -75,7 +78,20 @@ png_error(png_structp png_ptr, png_const_charp error_message) use the default handler, which will not return. */ png_default_error(png_ptr, error_message); } +#else +void PNGAPI +png_err(png_structp png_ptr) +{ + if (png_ptr != NULL && png_ptr->error_fn != NULL) + (*(png_ptr->error_fn))(png_ptr, '\0'); + + /* If the custom handler doesn't exist, or if it returns, + use the default handler, which will not return. */ + png_default_error(png_ptr, '\0'); +} +#endif /* PNG_NO_ERROR_TEXT */ +#ifndef PNG_NO_WARNINGS /* This function is called whenever there is a non-fatal error. This function * should not be changed. If there is a need to handle warnings differently, * you should supply a replacement warning function and use @@ -105,6 +121,8 @@ png_warning(png_structp png_ptr, png_const_charp warning_message) else png_default_warning(png_ptr, warning_message+offset); } +#endif /* PNG_NO_WARNINGS */ + /* These utilities are used internally to build an error message that relates * to the current chunk. The chunk name comes from png_ptr->chunk_name, @@ -113,11 +131,14 @@ png_warning(png_structp png_ptr, png_const_charp warning_message) * if the character is invalid. */ #define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97)) -const static PNG_CONST char png_digit[16] = { +static PNG_CONST char png_digit[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; +#define PNG_MAX_ERROR_TEXT 64 + +#if !defined(PNG_NO_WARNINGS) || !defined(PNG_NO_ERROR_TEXT) static void /* PRIVATE */ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp error_message) @@ -141,20 +162,21 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp } if (error_message == NULL) - buffer[iout] = 0; + buffer[iout] = '\0'; else { buffer[iout++] = ':'; buffer[iout++] = ' '; - png_strncpy(buffer+iout, error_message, 63); - buffer[iout+63] = 0; + png_memcpy(buffer+iout, error_message, PNG_MAX_ERROR_TEXT); + buffer[iout+PNG_MAX_ERROR_TEXT-1] = '\0'; } } +#ifdef PNG_READ_SUPPORTED void PNGAPI png_chunk_error(png_structp png_ptr, png_const_charp error_message) { - char msg[18+64]; + char msg[18+PNG_MAX_ERROR_TEXT]; if (png_ptr == NULL) png_error(png_ptr, error_message); else @@ -163,11 +185,14 @@ png_chunk_error(png_structp png_ptr, png_const_charp error_message) png_error(png_ptr, msg); } } +#endif /* PNG_READ_SUPPORTED */ +#endif /* !defined(PNG_NO_WARNINGS) || !defined(PNG_NO_ERROR_TEXT) */ +#ifndef PNG_NO_WARNINGS void PNGAPI png_chunk_warning(png_structp png_ptr, png_const_charp warning_message) { - char msg[18+64]; + char msg[18+PNG_MAX_ERROR_TEXT]; if (png_ptr == NULL) png_warning(png_ptr, warning_message); else @@ -176,6 +201,8 @@ png_chunk_warning(png_structp png_ptr, png_const_charp warning_message) png_warning(png_ptr, msg); } } +#endif /* PNG_NO_WARNINGS */ + /* This is the default error handling function. Note that replacements for * this function MUST NOT RETURN, or the program will likely crash. This @@ -217,7 +244,7 @@ png_default_error(png_structp png_ptr, png_const_charp error_message) # ifdef USE_FAR_KEYWORD { jmp_buf jmpbuf; - png_memcpy(jmpbuf,png_ptr->jmpbuf,png_sizeof(jmp_buf)); + png_memcpy(jmpbuf, png_ptr->jmpbuf, png_sizeof(jmp_buf)); longjmp(jmpbuf, 1); } # else @@ -228,12 +255,11 @@ png_default_error(png_structp png_ptr, png_const_charp error_message) PNG_ABORT(); #endif #ifdef PNG_NO_CONSOLE_IO - /* make compiler happy */ ; - if (&error_message != NULL) - return; + error_message = error_message; /* make compiler happy */ #endif } +#ifndef PNG_NO_WARNINGS /* This function is called when there is a warning, but the library thinks * it can continue anyway. Replacement functions don't have to do anything * here if you don't want them to. In the default configuration, png_ptr is @@ -267,14 +293,11 @@ png_default_warning(png_structp png_ptr, png_const_charp warning_message) # endif fprintf(stderr, "libpng warning: %s\n", warning_message); #else - /* make compiler happy */ ; - if (warning_message) - return; + warning_message = warning_message; /* make compiler happy */ #endif - /* make compiler happy */ ; - if (png_ptr) - return; + png_ptr = png_ptr; /* make compiler happy */ } +#endif /* PNG_NO_WARNINGS */ /* This function is called when the application wants to use another method * of handling errors and warnings. Note that the error function MUST NOT |