亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pngerror.c

?? linux syslinux source code
?? C
字號:
/* pngerror.c - stub functions for i/o and memory allocation * * libpng version 1.2.8 - December 3, 2004 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2004 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.) * * This file provides a location for all error handling.  Users who * need special error handling are expected to write replacement functions * and use png_set_error_fn() to use those functions.  See the instructions * at each function. */#define PNG_INTERNAL#include "png.h"static void /* PRIVATE */png_default_error PNGARG((png_structp png_ptr,  png_const_charp error_message));static void /* PRIVATE */png_default_warning PNGARG((png_structp png_ptr,  png_const_charp warning_message));/* 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. */void PNGAPIpng_error(png_structp png_ptr, png_const_charp error_message){#ifdef PNG_ERROR_NUMBERS_SUPPORTED   char msg[16];   if (png_ptr->flags&(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))   {     if (*error_message == '#')     {         int offset;         for (offset=1; offset<15; offset++)            if (*(error_message+offset) == ' ')                break;         if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)         {            int i;            for (i=0; i<offset-1; i++)               msg[i]=error_message[i+1];            msg[i]='\0';            error_message=msg;         }         else            error_message+=offset;     }     else     {         if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)         {            msg[0]='0';                    msg[1]='\0';            error_message=msg;         }     }   }#endif   if (png_ptr != NULL && png_ptr->error_fn != NULL)      (*(png_ptr->error_fn))(png_ptr, error_message);   /* If the custom handler doesn't exist, or if it returns,      use the default handler, which will not return. */   png_default_error(png_ptr, error_message);}/* 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 * png_set_error_fn() to replace the warning function at run-time. */void PNGAPIpng_warning(png_structp png_ptr, png_const_charp warning_message){   int offset = 0;#ifdef PNG_ERROR_NUMBERS_SUPPORTED   if (png_ptr->flags&(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))#endif   {     if (*warning_message == '#')     {         for (offset=1; offset<15; offset++)            if (*(warning_message+offset) == ' ')                break;     }   }   if (png_ptr != NULL && png_ptr->warning_fn != NULL)      (*(png_ptr->warning_fn))(png_ptr, warning_message+offset);   else      png_default_warning(png_ptr, warning_message+offset);}/* 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, * this is used to prefix the message.  The message is limited in length * to 63 bytes, the name characters are output as hex digits wrapped in [] * if the character is invalid. */#define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97))static PNG_CONST char png_digit[16] = {   '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',   'A', 'B', 'C', 'D', 'E', 'F'};static void /* PRIVATE */png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp   error_message){   int iout = 0, iin = 0;   while (iin < 4)   {      int c = png_ptr->chunk_name[iin++];      if (isnonalpha(c))      {         buffer[iout++] = '[';         buffer[iout++] = png_digit[(c & 0xf0) >> 4];         buffer[iout++] = png_digit[c & 0x0f];         buffer[iout++] = ']';      }      else      {         buffer[iout++] = (png_byte)c;      }   }   if (error_message == NULL)      buffer[iout] = 0;   else   {      buffer[iout++] = ':';      buffer[iout++] = ' ';      png_strncpy(buffer+iout, error_message, 63);      buffer[iout+63] = 0;   }}void PNGAPIpng_chunk_error(png_structp png_ptr, png_const_charp error_message){   char msg[18+64];   png_format_buffer(png_ptr, msg, error_message);   png_error(png_ptr, msg);}void PNGAPIpng_chunk_warning(png_structp png_ptr, png_const_charp warning_message){   char msg[18+64];   png_format_buffer(png_ptr, msg, warning_message);   png_warning(png_ptr, msg);}/* This is the default error handling function.  Note that replacements for * this function MUST NOT RETURN, or the program will likely crash.  This * function is used by default, or if the program supplies NULL for the * error function pointer in png_set_error_fn(). */static void /* PRIVATE */png_default_error(png_structp png_ptr, png_const_charp error_message){#ifndef PNG_NO_CONSOLE_IO#ifdef PNG_ERROR_NUMBERS_SUPPORTED   if (*error_message == '#')   {     int offset;     char error_number[16];     for (offset=0; offset<15; offset++)     {         error_number[offset] = *(error_message+offset+1);         if (*(error_message+offset) == ' ')             break;     }     if((offset > 1) && (offset < 15))     {       error_number[offset-1]='\0';       fprintf(stderr, "libpng error no. %s: %s\n", error_number,          error_message+offset);     }     else       fprintf(stderr, "libpng error: %s, offset=%d\n", error_message,offset);   }   else#endif   fprintf(stderr, "libpng error: %s\n", error_message);#endif#ifdef PNG_SETJMP_SUPPORTED#  ifdef USE_FAR_KEYWORD   {      jmp_buf jmpbuf;      png_memcpy(jmpbuf,png_ptr->jmpbuf,png_sizeof(jmp_buf));      longjmp(jmpbuf, 1);   }#  else   longjmp(png_ptr->jmpbuf, 1);# endif#else   /* make compiler happy */ ;   if (png_ptr)   PNG_ABORT();#endif#ifdef PNG_NO_CONSOLE_IO   /* make compiler happy */ ;   if (&error_message != NULL)      return;#endif}/* 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 * not used, but it is passed in case it may be useful. */static void /* PRIVATE */png_default_warning(png_structp png_ptr, png_const_charp warning_message){#ifndef PNG_NO_CONSOLE_IO#  ifdef PNG_ERROR_NUMBERS_SUPPORTED   if (*warning_message == '#')   {     int offset;     char warning_number[16];     for (offset=0; offset<15; offset++)     {        warning_number[offset]=*(warning_message+offset+1);        if (*(warning_message+offset) == ' ')            break;     }     if((offset > 1) && (offset < 15))     {       warning_number[offset-1]='\0';       fprintf(stderr, "libpng warning no. %s: %s\n", warning_number,          warning_message+offset);     }     else       fprintf(stderr, "libpng warning: %s\n", warning_message);   }   else#  endif     fprintf(stderr, "libpng warning: %s\n", warning_message);#else   /* make compiler happy */ ;   if (warning_message)     return;#endif   /* make compiler happy */ ;   if (png_ptr)      return;}/* This function is called when the application wants to use another method * of handling errors and warnings.  Note that the error function MUST NOT * return to the calling routine or serious problems will occur.  The return * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1) */void PNGAPIpng_set_error_fn(png_structp png_ptr, png_voidp error_ptr,   png_error_ptr error_fn, png_error_ptr warning_fn){   png_ptr->error_ptr = error_ptr;   png_ptr->error_fn = error_fn;   png_ptr->warning_fn = warning_fn;}/* This function returns a pointer to the error_ptr associated with the user * functions.  The application should free any memory associated with this * pointer before png_write_destroy and png_read_destroy are called. */png_voidp PNGAPIpng_get_error_ptr(png_structp png_ptr){   return ((png_voidp)png_ptr->error_ptr);}#ifdef PNG_ERROR_NUMBERS_SUPPORTEDvoid PNGAPIpng_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode){   if(png_ptr != NULL)   {     png_ptr->flags &=       ((~(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode);   }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看精品一区| 日韩一级片在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲精品一区二区在线观看| 91麻豆高清视频| 国产一区二区三区免费播放| 亚洲综合清纯丝袜自拍| 国产日韩精品一区二区三区在线| 欧美日韩aaa| 色欧美片视频在线观看在线视频| 精品一区二区三区的国产在线播放| 依依成人精品视频| 国产日韩影视精品| 26uuu精品一区二区在线观看| 在线视频一区二区三区| 波多野洁衣一区| 国产精品一区二区久久不卡| 日韩中文字幕不卡| 亚洲电影第三页| 国产精品久久久久永久免费观看| 69久久夜色精品国产69蝌蚪网| 国产精品亚洲成人| 久久av资源网| 亚洲成人av一区二区三区| 最好看的中文字幕久久| 337p日本欧洲亚洲大胆色噜噜| 欧美浪妇xxxx高跟鞋交| 欧美午夜一区二区| 日本精品裸体写真集在线观看| 99精品欧美一区二区三区小说| 国产精品99久久久久久似苏梦涵| 久久99久久99| 麻豆精品一区二区综合av| 日韩高清国产一区在线| 调教+趴+乳夹+国产+精品| 亚洲va欧美va天堂v国产综合| 一区二区三区中文在线观看| 亚洲视频1区2区| 亚洲欧美国产三级| 亚洲欧美电影一区二区| 亚洲视频一二三区| 亚洲男人天堂av网| 亚洲综合色自拍一区| 一区二区三区国产| 亚洲va国产天堂va久久en| 亚洲福利一区二区| 日韩精品免费视频人成| 蜜臀91精品一区二区三区| 美女视频黄 久久| 精品无码三级在线观看视频| 国产福利精品导航| 粉嫩久久99精品久久久久久夜| 国产.欧美.日韩| 色综合久久天天综合网| 欧美午夜精品一区| 欧美一级电影网站| 日本一区二区三区国色天香| 中文字幕不卡在线观看| 亚洲色图欧美激情| 亚洲电影第三页| 久久国内精品自在自线400部| 国产精品亚洲视频| 色综合久久久网| 日韩一区二区在线观看视频| 久久先锋影音av鲁色资源网| **性色生活片久久毛片| 亚洲综合一区二区精品导航| 日韩电影一区二区三区四区| 黄色资源网久久资源365| 成人精品国产免费网站| 欧美三级电影网| 久久久精品蜜桃| 亚洲久草在线视频| 美日韩一区二区| 成人18精品视频| 9191久久久久久久久久久| 国产日韩欧美精品在线| 一区二区三区.www| 国产乱子轮精品视频| 91黄色免费看| 2024国产精品| 亚洲一区在线观看免费| 国产在线精品免费| 欧美在线免费视屏| 国产午夜亚洲精品午夜鲁丝片 | 精品亚洲aⅴ乱码一区二区三区| 国产91精品露脸国语对白| 欧美三级一区二区| 国产婷婷精品av在线| 亚洲v精品v日韩v欧美v专区| 国产成人午夜片在线观看高清观看| 在线区一区二视频| 国产拍揄自揄精品视频麻豆| 亚洲成人午夜电影| 成人午夜电影小说| 欧美一区二区三区不卡| 亚洲欧美一区二区三区孕妇| 经典一区二区三区| 欧美色视频在线| 专区另类欧美日韩| 国产91色综合久久免费分享| 555夜色666亚洲国产免| 一区二区三区毛片| 成人黄页毛片网站| 精品欧美一区二区三区精品久久| 亚洲免费资源在线播放| 精品一区二区三区香蕉蜜桃| 精品婷婷伊人一区三区三| 中文字幕精品—区二区四季| 捆绑变态av一区二区三区| 欧美三级电影在线观看| 亚洲特黄一级片| 粉嫩高潮美女一区二区三区| 欧美大胆人体bbbb| 午夜私人影院久久久久| 在线视频一区二区三| 亚洲欧美日韩精品久久久久| 国产91丝袜在线观看| 久久久久免费观看| 狠狠色丁香婷婷综合| 日韩片之四级片| 蜜桃av噜噜一区| 日韩免费看网站| 日本亚洲电影天堂| 欧美一卡二卡在线观看| 亚洲mv在线观看| 欧美另类变人与禽xxxxx| 亚洲成人在线网站| 欧美日韩中文国产| 五月天视频一区| 在线不卡一区二区| 婷婷开心久久网| 欧美一区二区三区免费观看视频| 午夜精品免费在线| 欧美蜜桃一区二区三区| 日本在线播放一区二区三区| 91精品国产综合久久精品麻豆| 婷婷久久综合九色综合绿巨人| 欧美日韩另类一区| 日本中文字幕一区二区有限公司| 制服.丝袜.亚洲.中文.综合| 免费观看日韩av| 亚洲精品一区二区三区影院| 国产伦精品一区二区三区免费| 国产视频一区不卡| 99精品欧美一区二区蜜桃免费 | 久久久久9999亚洲精品| 成人在线综合网站| 日韩一区在线看| 欧美四级电影网| 久久精品国产一区二区三| 精品处破学生在线二十三| 国产黄色成人av| 亚洲精品成人少妇| 91麻豆精品国产91| 国产在线精品一区二区三区不卡| 欧美激情资源网| 91久久精品网| 麻豆精品一区二区av白丝在线| 久久先锋资源网| 色婷婷久久99综合精品jk白丝| 天天亚洲美女在线视频| 久久免费视频一区| 91视频免费观看| 麻豆国产欧美一区二区三区| 国产欧美日韩麻豆91| 欧美视频一区在线观看| 狠狠色丁香婷婷综合久久片| 国产精品污网站| 欧美老年两性高潮| 国产成人午夜高潮毛片| 亚洲一区二区三区四区不卡| 欧美一级二级三级乱码| 99精品1区2区| 麻豆91精品91久久久的内涵| 国产精品―色哟哟| 91.com在线观看| 成人av资源网站| 麻豆国产精品官网| 亚洲欧洲综合另类| 26uuu另类欧美| 欧美日本一区二区| 成人a免费在线看| 久久av资源网| 亚洲成人福利片| 自拍偷在线精品自拍偷无码专区| 欧美一区二区视频在线观看2020| 成人一区在线看| 精品一区二区三区免费观看| 一区二区在线观看视频在线观看| 2023国产精品| 在线不卡免费欧美| 色一区在线观看| 国产成人av电影免费在线观看| 首页欧美精品中文字幕| 亚洲三级在线观看| 国产日韩视频一区二区三区| 日韩一区二区在线看| 欧洲人成人精品| 91丨porny丨中文|