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

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

?? jerror.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
字號:
/* * jerror.c * * Copyright (C) 1991-1998, Thomas G. Lane. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains simple error-reporting and trace-message routines. * These are suitable for Unix-like systems and others where writing to * stderr is the right thing to do.  Many applications will want to replace * some or all of these routines. * * If you define USE_WINDOWS_MESSAGEBOX in jconfig.h or in the makefile, * you get a Windows-specific hack to display error messages in a dialog box. * It ain't much, but it beats dropping error messages into the bit bucket, * which is what happens to output to stderr under most Windows C compilers. * * These routines are used by both the compression and decompression code. *//* this is not a core library module, so it doesn't define JPEG_INTERNALS */#include "jinclude.h"#include "jpeglib.h"#include "jversion.h"#include "jerror.h"#ifdef USE_WINDOWS_MESSAGEBOX#include <windows.h>#endif#ifndef EXIT_FAILURE		/* define exit() codes if not provided */#define EXIT_FAILURE  1#endif/* * Create the message string table. * We do this from the master message list in jerror.h by re-reading * jerror.h with a suitable definition for macro JMESSAGE. * The message table is made an external symbol just in case any applications * want to refer to it directly. */#ifdef NEED_SHORT_EXTERNAL_NAMES#define jpeg_std_message_table	jMsgTable#endif#define JMESSAGE(code,string)	string ,const char * const jpeg_std_message_table[] = {#include "jerror.h"  NULL};/* * Error exit handler: must not return to caller. * * Applications may override this if they want to get control back after * an error.  Typically one would longjmp somewhere instead of exiting. * The setjmp buffer can be made a private field within an expanded error * handler object.  Note that the info needed to generate an error message * is stored in the error object, so you can generate the message now or * later, at your convenience. * You should make sure that the JPEG object is cleaned up (with jpeg_abort * or jpeg_destroy) at some point. */METHODDEF(void)error_exit (j_common_ptr cinfo){  /* Always display the message */  (*cinfo->err->output_message) (cinfo);  /* Let the memory manager delete any temp files before we die */  jpeg_destroy(cinfo);  exit(EXIT_FAILURE);}/* * Actual output of an error or trace message. * Applications may override this method to send JPEG messages somewhere * other than stderr. * * On Windows, printing to stderr is generally completely useless, * so we provide optional code to produce an error-dialog popup. * Most Windows applications will still prefer to override this routine, * but if they don't, it'll do something at least marginally useful. * * NOTE: to use the library in an environment that doesn't support the * C stdio library, you may have to delete the call to fprintf() entirely, * not just not use this routine. */METHODDEF(void)output_message (j_common_ptr cinfo){  char buffer[JMSG_LENGTH_MAX];  /* Create the message */  (*cinfo->err->format_message) (cinfo, buffer);#ifdef USE_WINDOWS_MESSAGEBOX  /* Display it in a message dialog box */  MessageBox(GetActiveWindow(), buffer, "JPEG Library Error",	     MB_OK | MB_ICONERROR);#else  /* Send it to stderr, adding a newline */  fprintf(stderr, "%s\n", buffer);#endif}/* * Decide whether to emit a trace or warning message. * msg_level is one of: *   -1: recoverable corrupt-data warning, may want to abort. *    0: important advisory messages (always display to user). *    1: first level of tracing detail. *    2,3,...: successively more detailed tracing messages. * An application might override this method if it wanted to abort on warnings * or change the policy about which messages to display. */METHODDEF(void)emit_message (j_common_ptr cinfo, int msg_level){  struct jpeg_error_mgr * err = cinfo->err;  if (msg_level < 0) {    /* It's a warning message.  Since corrupt files may generate many warnings,     * the policy implemented here is to show only the first warning,     * unless trace_level >= 3.     */    if (err->num_warnings == 0 || err->trace_level >= 3)      (*err->output_message) (cinfo);    /* Always count warnings in num_warnings. */    err->num_warnings++;  } else {    /* It's a trace message.  Show it if trace_level >= msg_level. */    if (err->trace_level >= msg_level)      (*err->output_message) (cinfo);  }}/* * Format a message string for the most recent JPEG error or message. * The message is stored into buffer, which should be at least JMSG_LENGTH_MAX * characters.  Note that no '\n' character is added to the string. * Few applications should need to override this method. */METHODDEF(void)format_message (j_common_ptr cinfo, char * buffer){  struct jpeg_error_mgr * err = cinfo->err;  int msg_code = err->msg_code;  const char * msgtext = NULL;  const char * msgptr;  char ch;  boolean isstring;  /* Look up message string in proper table */  if (msg_code > 0 && msg_code <= err->last_jpeg_message) {    msgtext = err->jpeg_message_table[msg_code];  } else if (err->addon_message_table != NULL &&	     msg_code >= err->first_addon_message &&	     msg_code <= err->last_addon_message) {    msgtext = err->addon_message_table[msg_code - err->first_addon_message];  }  /* Defend against bogus message number */  if (msgtext == NULL) {    err->msg_parm.i[0] = msg_code;    msgtext = err->jpeg_message_table[0];  }  /* Check for string parameter, as indicated by %s in the message text */  isstring = FALSE;  msgptr = msgtext;  while ((ch = *msgptr++) != '\0') {    if (ch == '%') {      if (*msgptr == 's') isstring = TRUE;      break;    }  }  /* Format the message into the passed buffer */  if (isstring)    sprintf(buffer, msgtext, err->msg_parm.s);  else    sprintf(buffer, msgtext,	    err->msg_parm.i[0], err->msg_parm.i[1],	    err->msg_parm.i[2], err->msg_parm.i[3],	    err->msg_parm.i[4], err->msg_parm.i[5],	    err->msg_parm.i[6], err->msg_parm.i[7]);}/* * Reset error state variables at start of a new image. * This is called during compression startup to reset trace/error * processing to default state, without losing any application-specific * method pointers.  An application might possibly want to override * this method if it has additional error processing state. */METHODDEF(void)reset_error_mgr (j_common_ptr cinfo){  cinfo->err->num_warnings = 0;  /* trace_level is not reset since it is an application-supplied parameter */  cinfo->err->msg_code = 0;	/* may be useful as a flag for "no error" */}/* * Fill in the standard error-handling methods in a jpeg_error_mgr object. * Typical call is: *	struct jpeg_compress_struct cinfo; *	struct jpeg_error_mgr err; * *	cinfo.err = jpeg_std_error(&err); * after which the application may override some of the methods. */GLOBAL(struct jpeg_error_mgr *)jpeg_std_error (struct jpeg_error_mgr * err){  err->error_exit = error_exit;  err->emit_message = emit_message;  err->output_message = output_message;  err->format_message = format_message;  err->reset_error_mgr = reset_error_mgr;  err->trace_level = 0;		/* default = no tracing */  err->num_warnings = 0;	/* no warnings emitted yet */  err->msg_code = 0;		/* may be useful as a flag for "no error" */  /* Initialize message table pointers */  err->jpeg_message_table = jpeg_std_message_table;  err->last_jpeg_message = (int) JMSG_LASTMSGCODE - 1;  err->addon_message_table = NULL;  err->first_addon_message = 0;	/* for safety */  err->last_addon_message = 0;  return err;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播成人在线观看| 午夜视频在线观看一区二区| 蜜桃免费网站一区二区三区 | 日韩电影一区二区三区| 成人免费毛片片v| 国产精品天天看| 99精品视频在线播放观看| 亚洲手机成人高清视频| 色婷婷av一区| 亚洲一区二区在线观看视频| 欧美日韩在线三区| 久久er精品视频| 久久久久久久性| 丁香桃色午夜亚洲一区二区三区| 精品国产伦理网| 成人黄页在线观看| 亚洲国产综合在线| 欧美刺激午夜性久久久久久久| 国产在线精品一区二区 | 一区二区在线观看免费| 欧美丰满少妇xxxbbb| 久久精品国产一区二区| 国产女人18毛片水真多成人如厕| 国产成人免费在线观看| 亚洲欧美日韩在线不卡| 欧美一卡在线观看| 国产成人免费在线| 亚洲一区二区三区四区在线| 欧美精品777| 国产精品一区二区久激情瑜伽 | 中文字幕制服丝袜一区二区三区 | 日韩国产欧美三级| 国产丝袜美腿一区二区三区| 99久久国产免费看| 日韩黄色免费网站| 国产精品美女久久久久aⅴ| 欧美三级中文字幕| 高清不卡一二三区| 亚洲国产精品一区二区www | 国产精品美日韩| 欧美另类高清zo欧美| 51午夜精品国产| 日韩成人精品在线观看| 欧美日韩一区三区四区| 国产日韩欧美综合在线| 亚洲午夜电影在线观看| 99re这里只有精品视频首页| 99精品欧美一区二区蜜桃免费| 久久久久九九视频| 成人黄色电影在线| 亚洲午夜一区二区三区| 51午夜精品国产| 韩国三级在线一区| 亚洲国产日产av| 日韩亚洲欧美成人一区| 久久精品视频免费观看| 国产最新精品免费| 欧美亚洲综合在线| 五月天久久比比资源色| 在线一区二区三区| 日本sm残虐另类| 欧美精品一区视频| 久久精品72免费观看| 精品国产免费人成在线观看| 亚洲私人黄色宅男| 午夜久久久久久久久久一区二区| 毛片av一区二区三区| 欧美三电影在线| 亚洲伊人伊色伊影伊综合网| 成人国产视频在线观看| 一区二区三区四区高清精品免费观看 | 日韩美女在线视频| 国产在线播放一区二区三区| 日韩你懂的电影在线观看| 视频一区二区欧美| 亚洲精品写真福利| 欧美色欧美亚洲另类二区| 国产成人精品免费一区二区| 99精品桃花视频在线观看| 色综合久久88色综合天天6| 亚洲成av人影院| 国产成人免费视频一区| 美腿丝袜亚洲综合| 亚洲一区国产视频| 亚洲妇女屁股眼交7| 亚洲精品高清在线| 亚洲人成网站色在线观看| 成人欧美一区二区三区黑人麻豆 | 高清国产一区二区| 国产精品自在在线| 极品少妇一区二区三区精品视频| 丝瓜av网站精品一区二区| 午夜亚洲福利老司机| 一区二区理论电影在线观看| 亚洲精品老司机| 伊人婷婷欧美激情| 亚洲乱码一区二区三区在线观看| 亚洲欧美自拍偷拍色图| 亚洲欧洲成人精品av97| 中文字幕日韩一区| 亚洲男帅同性gay1069| 制服.丝袜.亚洲.另类.中文| 欧美探花视频资源| 欧美xxxx老人做受| 精品国产91洋老外米糕| 在线电影国产精品| 欧美xxxxxxxx| 久久男人中文字幕资源站| 精品国产1区二区| 久久综合色播五月| 欧美日韩一级二级三级| 国产精品乱码一区二区三区软件| 99久久久久久| 99国产精品久| 色欧美日韩亚洲| 欧美卡1卡2卡| 欧美精品一区二区三区在线| 中文字幕久久午夜不卡| 亚洲综合成人在线视频| 麻豆精品新av中文字幕| 国产成人在线电影| 欧美性大战久久久久久久蜜臀| 欧美日韩www| 欧美一区二区三区婷婷月色 | 亚洲人成伊人成综合网小说| 亚洲婷婷在线视频| 日本大胆欧美人术艺术动态| 国产精品一二三四| 成人综合激情网| 亚洲成av人**亚洲成av**| 69成人精品免费视频| 激情综合五月婷婷| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧洲日产国产综合网| 《视频一区视频二区| 精品美女在线观看| 不卡的av电影在线观看| 日韩欧美中文一区二区| 一区二区中文字幕在线| 麻豆专区一区二区三区四区五区| 91一区二区在线观看| 精品成人在线观看| 亚洲国产另类av| 国产在线国偷精品免费看| 欧美在线三级电影| 国产亚洲综合在线| 亚洲精选视频在线| 91精品免费在线| 欧美日韩久久久| 国产精品高清亚洲| 精品影视av免费| 在线成人高清不卡| 又紧又大又爽精品一区二区| 成人综合婷婷国产精品久久蜜臀| 91精品视频网| 婷婷中文字幕综合| 国产日韩欧美在线一区| 日韩精品一区国产麻豆| 亚洲成在人线免费| aa级大片欧美| 麻豆精品在线看| 亚洲国产成人av好男人在线观看| 91精品福利在线一区二区三区 | 日本精品一级二级| 亚洲精品在线免费播放| 午夜国产精品一区| 色综合天天综合色综合av | 丰满亚洲少妇av| 欧美大度的电影原声| 亚洲国产日韩一区二区| 91国产丝袜在线播放| 国产精品天干天干在观线| 国产高清精品久久久久| 久久综合九色综合欧美98| 久久99精品久久只有精品| 欧美一级高清片| 日本大胆欧美人术艺术动态| 日韩欧美一区二区不卡| 久久精品国产久精国产| 日韩免费一区二区三区在线播放| 老色鬼精品视频在线观看播放| 日韩欧美在线123| 国产精品系列在线观看| 欧美激情一二三区| 99精品国产99久久久久久白柏 | 亚洲bt欧美bt精品777| 欧美日韩美女一区二区| 日韩精品亚洲一区二区三区免费| 91麻豆精品国产91久久久资源速度| 五月婷婷另类国产| 26uuu成人网一区二区三区| 国产成人aaa| 亚洲激情自拍偷拍| 制服丝袜成人动漫| 国产乱人伦精品一区二区在线观看 | 一区二区在线观看视频 | 日韩av中文字幕一区二区三区| 欧美成人在线直播| 波多野结衣中文一区| 亚洲妇熟xx妇色黄|