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

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

?? encoding.c

?? ReactOS是一些高手根據Windows XP的內核編寫出的類XP。內核實現機理和API函數調用幾乎相同。甚至可以兼容XP的程序。喜歡研究系統內核的人可以看一看。
?? C
?? 第 1 頁 / 共 5 頁
字號:
	    "Registered encoding handler for %s\n", name);
#endif
    return(handler);
}

/**
 * xmlInitCharEncodingHandlers:
 *
 * Initialize the char encoding support, it registers the default
 * encoding supported.
 * NOTE: while public, this function usually doesn't need to be called
 *       in normal processing.
 */
void
xmlInitCharEncodingHandlers(void) {
    unsigned short int tst = 0x1234;
    unsigned char *ptr = (unsigned char *) &tst; 

    if (handlers != NULL) return;

    handlers = (xmlCharEncodingHandlerPtr *)
        xmlMalloc(MAX_ENCODING_HANDLERS * sizeof(xmlCharEncodingHandlerPtr));

    if (*ptr == 0x12) xmlLittleEndian = 0;
    else if (*ptr == 0x34) xmlLittleEndian = 1;
    else xmlGenericError(xmlGenericErrorContext,
	    "Odd problem at endianness detection\n");

    if (handlers == NULL) {
        xmlGenericError(xmlGenericErrorContext,
		"xmlInitCharEncodingHandlers : out of memory !\n");
	return;
    }
    xmlNewCharEncodingHandler("UTF-8", UTF8ToUTF8, UTF8ToUTF8);
#ifdef LIBXML_OUTPUT_ENABLED
    xmlUTF16LEHandler = 
          xmlNewCharEncodingHandler("UTF-16LE", UTF16LEToUTF8, UTF8ToUTF16LE);
    xmlUTF16BEHandler = 
          xmlNewCharEncodingHandler("UTF-16BE", UTF16BEToUTF8, UTF8ToUTF16BE);
    xmlNewCharEncodingHandler("UTF-16", UTF16LEToUTF8, UTF8ToUTF16);
    xmlNewCharEncodingHandler("ISO-8859-1", isolat1ToUTF8, UTF8Toisolat1);
    xmlNewCharEncodingHandler("ASCII", asciiToUTF8, UTF8Toascii);
    xmlNewCharEncodingHandler("US-ASCII", asciiToUTF8, UTF8Toascii);
#ifdef LIBXML_HTML_ENABLED
    xmlNewCharEncodingHandler("HTML", NULL, UTF8ToHtml);
#endif
#else
    xmlUTF16LEHandler = 
          xmlNewCharEncodingHandler("UTF-16LE", UTF16LEToUTF8, NULL);
    xmlUTF16BEHandler = 
          xmlNewCharEncodingHandler("UTF-16BE", UTF16BEToUTF8, NULL);
    xmlNewCharEncodingHandler("UTF-16", UTF16LEToUTF8, NULL);
    xmlNewCharEncodingHandler("ISO-8859-1", isolat1ToUTF8, NULL);
    xmlNewCharEncodingHandler("ASCII", asciiToUTF8, NULL);
    xmlNewCharEncodingHandler("US-ASCII", asciiToUTF8, NULL);
#endif /* LIBXML_OUTPUT_ENABLED */
#ifndef LIBXML_ICONV_ENABLED
#ifdef LIBXML_ISO8859X_ENABLED
    xmlRegisterCharEncodingHandlersISO8859x ();
#endif
#endif

}

/**
 * xmlCleanupCharEncodingHandlers:
 *
 * Cleanup the memory allocated for the char encoding support, it
 * unregisters all the encoding handlers and the aliases.
 */
void
xmlCleanupCharEncodingHandlers(void) {
    xmlCleanupEncodingAliases();

    if (handlers == NULL) return;

    for (;nbCharEncodingHandler > 0;) {
        nbCharEncodingHandler--;
	if (handlers[nbCharEncodingHandler] != NULL) {
	    if (handlers[nbCharEncodingHandler]->name != NULL)
		xmlFree(handlers[nbCharEncodingHandler]->name);
	    xmlFree(handlers[nbCharEncodingHandler]);
	}
    }
    xmlFree(handlers);
    handlers = NULL;
    nbCharEncodingHandler = 0;
    xmlDefaultCharEncodingHandler = NULL;
}

/**
 * xmlRegisterCharEncodingHandler:
 * @handler:  the xmlCharEncodingHandlerPtr handler block
 *
 * Register the char encoding handler, surprising, isn't it ?
 */
void
xmlRegisterCharEncodingHandler(xmlCharEncodingHandlerPtr handler) {
    if (handlers == NULL) xmlInitCharEncodingHandlers();
    if (handler == NULL) {
        xmlGenericError(xmlGenericErrorContext,
		"xmlRegisterCharEncodingHandler: NULL handler !\n");
	return;
    }

    if (nbCharEncodingHandler >= MAX_ENCODING_HANDLERS) {
        xmlGenericError(xmlGenericErrorContext, 
	"xmlRegisterCharEncodingHandler: Too many handler registered\n");
        xmlGenericError(xmlGenericErrorContext,
		"\tincrease MAX_ENCODING_HANDLERS : %s\n", __FILE__);
	return;
    }
    handlers[nbCharEncodingHandler++] = handler;
}

/**
 * xmlGetCharEncodingHandler:
 * @enc:  an xmlCharEncoding value.
 *
 * Search in the registered set the handler able to read/write that encoding.
 *
 * Returns the handler or NULL if not found
 */
xmlCharEncodingHandlerPtr
xmlGetCharEncodingHandler(xmlCharEncoding enc) {
    xmlCharEncodingHandlerPtr handler;

    if (handlers == NULL) xmlInitCharEncodingHandlers();
    switch (enc) {
        case XML_CHAR_ENCODING_ERROR:
	    return(NULL);
        case XML_CHAR_ENCODING_NONE:
	    return(NULL);
        case XML_CHAR_ENCODING_UTF8:
	    return(NULL);
        case XML_CHAR_ENCODING_UTF16LE:
	    return(xmlUTF16LEHandler);
        case XML_CHAR_ENCODING_UTF16BE:
	    return(xmlUTF16BEHandler);
        case XML_CHAR_ENCODING_EBCDIC:
            handler = xmlFindCharEncodingHandler("EBCDIC");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("ebcdic");
            if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_UCS4BE:
            handler = xmlFindCharEncodingHandler("ISO-10646-UCS-4");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS-4");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS4");
            if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_UCS4LE:
            handler = xmlFindCharEncodingHandler("ISO-10646-UCS-4");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS-4");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS4");
            if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_UCS4_2143:
	    break;
        case XML_CHAR_ENCODING_UCS4_3412:
	    break;
        case XML_CHAR_ENCODING_UCS2:
            handler = xmlFindCharEncodingHandler("ISO-10646-UCS-2");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS-2");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("UCS2");
            if (handler != NULL) return(handler);
	    break;

	    /*
	     * We used to keep ISO Latin encodings native in the
	     * generated data. This led to so many problems that
	     * this has been removed. One can still change this
	     * back by registering no-ops encoders for those
	     */
        case XML_CHAR_ENCODING_8859_1:
	    handler = xmlFindCharEncodingHandler("ISO-8859-1");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_2:
	    handler = xmlFindCharEncodingHandler("ISO-8859-2");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_3:
	    handler = xmlFindCharEncodingHandler("ISO-8859-3");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_4:
	    handler = xmlFindCharEncodingHandler("ISO-8859-4");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_5:
	    handler = xmlFindCharEncodingHandler("ISO-8859-5");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_6:
	    handler = xmlFindCharEncodingHandler("ISO-8859-6");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_7:
	    handler = xmlFindCharEncodingHandler("ISO-8859-7");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_8:
	    handler = xmlFindCharEncodingHandler("ISO-8859-8");
	    if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_8859_9:
	    handler = xmlFindCharEncodingHandler("ISO-8859-9");
	    if (handler != NULL) return(handler);
	    break;


        case XML_CHAR_ENCODING_2022_JP:
            handler = xmlFindCharEncodingHandler("ISO-2022-JP");
            if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_SHIFT_JIS:
            handler = xmlFindCharEncodingHandler("SHIFT-JIS");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("SHIFT_JIS");
            if (handler != NULL) return(handler);
            handler = xmlFindCharEncodingHandler("Shift_JIS");
            if (handler != NULL) return(handler);
	    break;
        case XML_CHAR_ENCODING_EUC_JP:
            handler = xmlFindCharEncodingHandler("EUC-JP");
            if (handler != NULL) return(handler);
	    break;
	default: 
	    break;
    }
    
#ifdef DEBUG_ENCODING
    xmlGenericError(xmlGenericErrorContext,
	    "No handler found for encoding %d\n", enc);
#endif
    return(NULL);
}

/**
 * xmlFindCharEncodingHandler:
 * @name:  a string describing the char encoding.
 *
 * Search in the registered set the handler able to read/write that encoding.
 *
 * Returns the handler or NULL if not found
 */
xmlCharEncodingHandlerPtr
xmlFindCharEncodingHandler(const char *name) {
    const char *nalias;
    const char *norig;
    xmlCharEncoding alias;
#ifdef LIBXML_ICONV_ENABLED
    xmlCharEncodingHandlerPtr enc;
    iconv_t icv_in, icv_out;
#endif /* LIBXML_ICONV_ENABLED */
    char upper[100];
    int i;

    if (handlers == NULL) xmlInitCharEncodingHandlers();
    if (name == NULL) return(xmlDefaultCharEncodingHandler);
    if (name[0] == 0) return(xmlDefaultCharEncodingHandler);

    /*
     * Do the alias resolution
     */
    norig = name;
    nalias = xmlGetEncodingAlias(name);
    if (nalias != NULL)
	name = nalias;

    /*
     * Check first for directly registered encoding names
     */
    for (i = 0;i < 99;i++) {
        upper[i] = toupper(name[i]);
	if (upper[i] == 0) break;
    }
    upper[i] = 0;

    for (i = 0;i < nbCharEncodingHandler; i++)
        if (!strcmp(upper, handlers[i]->name)) {
#ifdef DEBUG_ENCODING
            xmlGenericError(xmlGenericErrorContext,
		    "Found registered handler for encoding %s\n", name);
#endif
	    return(handlers[i]);
	}

#ifdef LIBXML_ICONV_ENABLED
    /* check whether iconv can handle this */
    icv_in = iconv_open("UTF-8", name);
    icv_out = iconv_open(name, "UTF-8");
    if ((icv_in != (iconv_t) -1) && (icv_out != (iconv_t) -1)) {
	    enc = (xmlCharEncodingHandlerPtr)
	          xmlMalloc(sizeof(xmlCharEncodingHandler));
	    if (enc == NULL) {
	        iconv_close(icv_in);
	        iconv_close(icv_out);
		return(NULL);
	    }
	    enc->name = xmlMemStrdup(name);
	    enc->input = NULL;
	    enc->output = NULL;
	    enc->iconv_in = icv_in;
	    enc->iconv_out = icv_out;
#ifdef DEBUG_ENCODING
            xmlGenericError(xmlGenericErrorContext,
		    "Found iconv handler for encoding %s\n", name);
#endif
	    return enc;
    } else if ((icv_in != (iconv_t) -1) || icv_out != (iconv_t) -1) {
	    xmlGenericError(xmlGenericErrorContext,
		    "iconv : problems with filters for '%s'\n", name);
    }
#endif /* LIBXML_ICONV_ENABLED */

#ifdef DEBUG_ENCODING
    xmlGenericError(xmlGenericErrorContext,
	    "No handler found for encoding %s\n", name);
#endif

    /*
     * Fallback using the canonical names
     */
    alias = xmlParseCharEncoding(norig);
    if (alias != XML_CHAR_ENCODING_ERROR) {
        const char* canon;
        canon = xmlGetCharEncodingName(alias);
        if ((canon != NULL) && (strcmp(name, canon))) {
	    return(xmlFindCharEncodingHandler(canon));
        }
    }

    /* If "none of the above", give up */
    return(NULL);
}

/************************************************************************
 *									*
 *		ICONV based generic conversion functions		*
 *									*
 ************************************************************************/

#ifdef LIBXML_ICONV_ENABLED
/**
 * xmlIconvWrapper:
 * @cd:		iconv converter data structure
 * @out:  a pointer to an array of bytes to store the result
 * @outlen:  the length of @out
 * @in:  a pointer to an array of ISO Latin 1 chars
 * @inlen:  the length of @in
 *
 * Returns 0 if success, or 
 *     -1 by lack of space, or
 *     -2 if the transcoding fails (for *in is not valid utf8 string or
 *        the result of transformation can't fit into the encoding we want), or
 *     -3 if there the last byte can't form a single output char.
 *     
 * The value of @inlen after return is the number of octets consumed
 *     as the return value is positive, else unpredictable.
 * The value of @outlen after return is the number of ocetes consumed.
 */
static int
xmlIconvWrapper(iconv_t cd, unsigned char *out, int *outlen,
                const unsigned char *in, int *inlen) {
    size_t icv_inlen, icv_outlen;
    const char *icv_in = (const char *) in;
    char *icv_out = (char *) out;
    int ret;

    if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL)) {
        if (outlen != NULL) *outlen = 0;
        return(-1);
    }
    icv_inlen = *inlen;
    icv_outlen = *outlen;
    ret = iconv(cd, (char **) &icv_in, &icv_inlen, &icv_out, &icv_outlen);
    if (in != NULL) {
        *inlen -= icv_inlen;
        *outlen -= icv_outlen;
    } else {
        *inlen = 0;
        *outlen = 0;
    }
    if ((icv_inlen != 0) || (ret == -1)) {
#ifdef EILSEQ
        if (errno == EILSEQ) {
            return -2;
        } else
#endif
#ifdef E2BIG
        if (errno == E2BIG) {
            return -1;
        } else
#endif
#ifdef EINVAL
        if (errno == EINVAL) {
            return -3;
        } else
#endif
        {
            return -3;
        }
    }
    return 0;
}
#endif /* LIBXML_ICONV_ENABLED */

/************************************************************************
 *									*
 *		The real API used by libxml for on-the-fly conversion	*
 *									*
 ************************************************************************/

/**
 * xmlCharEncFirstLine:
 * @handler:	char enconding transformation data structure
 * @out:  an xmlBuffer for the output.
 * @in:  an xmlBuffer for the input
 *     
 * Front-end for the encoding handler input function, but handle only
 * the very first line, i.e. limit itself to 45 chars.
 *     
 * Returns the number of byte written if success, or 
 *     -1 general error

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频第一区| 亚洲欧美激情视频在线观看一区二区三区 | 国产盗摄精品一区二区三区在线| 亚洲成人资源网| 夜夜嗨av一区二区三区中文字幕| 国产精品久久久久久久久快鸭| 久久精品夜夜夜夜久久| 亚洲国产电影在线观看| 国产精品成人在线观看 | 91视频国产观看| 91在线视频播放地址| 色婷婷综合久久久中文一区二区| 91丝袜高跟美女视频| 欧美三级蜜桃2在线观看| 制服丝袜亚洲色图| 精品国产一区二区三区av性色| www国产成人| 国产精品久久毛片av大全日韩| 亚洲欧美日韩国产一区二区三区| 亚洲午夜久久久久中文字幕久| 日韩在线一区二区| 国产福利视频一区二区三区| 91在线看国产| 欧美一二三四在线| 国产精品污www在线观看| 亚洲视频一区二区在线| 日韩综合小视频| 国产不卡免费视频| 在线观看视频一区| 久久久一区二区| 亚洲欧美经典视频| 精品一区二区综合| 91丨porny丨国产入口| 91精品欧美一区二区三区综合在 | 亚洲成a人片综合在线| 裸体在线国模精品偷拍| 国产jizzjizz一区二区| 欧美日韩国产经典色站一区二区三区 | 日本丰满少妇一区二区三区| 日韩一区二区免费在线电影 | 日韩欧美www| 亚洲欧美日韩国产手机在线| 国产在线精品一区二区三区不卡 | 亚洲丝袜制服诱惑| 狠狠色综合日日| 在线观看日韩精品| 欧美国产精品久久| 麻豆一区二区99久久久久| 99久久精品国产导航| 2017欧美狠狠色| 日本欧美久久久久免费播放网| 99精品欧美一区二区三区综合在线| 日韩视频在线一区二区| 亚洲一区自拍偷拍| 国产高清亚洲一区| 欧美成人r级一区二区三区| 亚洲午夜在线电影| 在线观看亚洲精品视频| 国产精品久久看| 国产一区二区三区美女| 日韩亚洲欧美综合| 午夜精品久久久久久久99水蜜桃 | 久久伊99综合婷婷久久伊| 午夜电影一区二区三区| 91美女福利视频| 国产精品久久久久久久裸模| 国产成人精品综合在线观看| 日韩精品中午字幕| 久久精品国产一区二区三 | 欧美一级精品大片| 丝袜国产日韩另类美女| 欧美日韩精品久久久| 亚洲自拍偷拍九九九| 日本精品视频一区二区| 一区二区三区在线观看欧美| 色综合中文字幕国产| 欧美经典一区二区三区| 国产v日产∨综合v精品视频| 中文字幕二三区不卡| 成人动漫精品一区二区| 日韩一区有码在线| 91福利小视频| 亚洲成人在线免费| 91精品国产黑色紧身裤美女| 日本亚洲三级在线| 久久先锋影音av| 国产成人av一区二区三区在线| 国产婷婷精品av在线| 成人91在线观看| 一区二区三区免费在线观看| 欧美理论片在线| 黄色精品一二区| 国产精品国模大尺度视频| 色视频成人在线观看免| 日韩国产高清在线| 久久久久久97三级| 91麻豆蜜桃一区二区三区| 婷婷综合另类小说色区| 精品国内二区三区| 91啦中文在线观看| 美女视频黄频大全不卡视频在线播放| 精品久久久久久最新网址| 暴力调教一区二区三区| 三级成人在线视频| 久久精品欧美一区二区三区不卡| www.久久精品| 免费一区二区视频| 国产精品国产三级国产专播品爱网| 日本道色综合久久| 韩国v欧美v日本v亚洲v| 亚洲卡通欧美制服中文| 日韩精品一区在线| 日本乱人伦aⅴ精品| 卡一卡二国产精品 | 美腿丝袜亚洲综合| 国产精品久久久久7777按摩| 制服丝袜成人动漫| 91丨九色丨蝌蚪丨老版| 麻豆精品视频在线观看免费| 亚洲三级电影全部在线观看高清| 欧美一级二级三级乱码| 色天使久久综合网天天| 国产在线不卡一区| 首页亚洲欧美制服丝腿| 亚洲手机成人高清视频| 国产亚洲精品aa| 欧美日韩和欧美的一区二区| 成人av影视在线观看| 极品销魂美女一区二区三区| 一二三四社区欧美黄| 亚洲欧洲韩国日本视频| 久久亚洲私人国产精品va媚药| 欧美人体做爰大胆视频| 91亚洲精品一区二区乱码| 国产成人8x视频一区二区| 蜜臀av一区二区| 日韩精品一级中文字幕精品视频免费观看 | 538在线一区二区精品国产| 91在线观看视频| av成人免费在线观看| 国产精品一区在线观看你懂的| 免费观看在线综合| 日韩经典中文字幕一区| 天堂精品中文字幕在线| 亚洲一级二级在线| 一区二区在线观看免费视频播放 | 亚洲mv在线观看| 亚洲在线中文字幕| 亚洲一区二区精品久久av| 亚洲激情图片qvod| 伊人婷婷欧美激情| 亚洲一区二区三区中文字幕| 一区二区欧美精品| 亚洲一区二区欧美激情| 五月天中文字幕一区二区| 午夜精品一区二区三区电影天堂 | 国产成人av电影在线播放| 国产乱国产乱300精品| 国产在线播放一区二区三区| 国产一区二区美女| 高清不卡一二三区| 91丨porny丨国产入口| 欧美在线看片a免费观看| 欧美视频你懂的| 91精品婷婷国产综合久久性色| 日韩你懂的在线观看| 国产偷国产偷亚洲高清人白洁| 国产精品女人毛片| 一区二区三区四区视频精品免费| 亚洲图片一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 精品一区二区三区免费观看 | 蜜臀av一级做a爰片久久| 激情伊人五月天久久综合| 粉嫩蜜臀av国产精品网站| 91成人国产精品| 日韩一区二区在线免费观看| 久久精品视频一区二区三区| 成人欧美一区二区三区视频网页 | 国产欧美日韩激情| 一区二区不卡在线播放 | 欧美成人一区二区三区在线观看 | 国产一区福利在线| gogogo免费视频观看亚洲一| 一本大道久久a久久综合婷婷| 欧美日韩www| 中文字幕欧美日韩一区| 亚洲国产精品一区二区www在线| 久久精品国产免费| 99re热这里只有精品视频| 日韩三级视频在线观看| 亚洲视频在线一区| 精彩视频一区二区三区| 91最新地址在线播放| 337p粉嫩大胆噜噜噜噜噜91av | 国产白丝网站精品污在线入口| 欧美日韩一区二区三区在线看 | 成人国产视频在线观看| 欧美色图一区二区三区| 国产欧美日韩在线|