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

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

?? ccs.c

?? 用于嵌入式Linux系統的標準C的庫函數
?? C
字號:
/*- * Copyright (c) 1999, 2000 *    Konstantin Chuguev.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *    iconv (Charset Conversion Library) v2.0 */#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <reent.h>#include <endian.h>#include <sys/param.h>#include <sys/types.h>#include "local.h"static __uint16_t __inline_DEFUN(betohs, (s), __uint16_t s){#if (BYTE_ORDER == LITTLE_ENDIAN)    return ((s << 8) & 0xFF00) | ((s >> 8) & 0x00FF);#elif (BYTE_ORDER == BIG_ENDIAN)    return s;#else#error "Unknown byte order."#endif}static __uint32_t __inline_DEFUN(betohl, (l), __uint32_t l){#if (BYTE_ORDER == LITTLE_ENDIAN)    return (((l << 24) & 0xFF000000) |            ((l <<  8) & 0x00FF0000) |            ((l >>  8) & 0x0000FF00) |            ((l >> 24) & 0x000000FF));#elif (BYTE_ORDER == BIG_ENDIAN)    return l;#else#error "Unknown byte order."#endif} static __uint16_t __inline_DEFUN(letohs, (s), __uint16_t s){#if (BYTE_ORDER == LITTLE_ENDIAN)    return s;#elif (BYTE_ORDER == BIG_ENDIAN)    return ((s << 8) & 0xFF00) | ((s >> 8) & 0x00FF);#else#error "Unknown byte order."#endif}static __uint32_t __inline_DEFUN(letohl, (s), __uint32_t l){#if (BYTE_ORDER == LITTLE_ENDIAN)    return l;#elif (BYTE_ORDER == BIG_ENDIAN)    return (((l << 24) & 0xFF000000) |            ((l <<  8) & 0x00FF0000) |            ((l >>  8) & 0x0000FF00) |            ((l >> 24) & 0x000000FF));#else#error "Unknown byte order."#endif} /* Generic coded character set conversion table */typedef struct {    unsigned char label[8];  /* CSconvT<N>; N=[0-3] */    __uint32_t tables[2];     /* offsets to 2 unidirectional tables */} iconv_ccs_convtable_t;#define ICONV_TBL_LABEL             "\003CSCT"#define ICONV_TBL_LABEL_SIZE        5#define ICONV_TBL_BYTE_ORDER(table) (((table)->label[5]) & 1)#define ICONV_TBL_NBITS(table)      ((table)->label[6])#define ICONV_TBL_VERSION(table)    ((table)->label[7])/* Indices for unidirectional conversion tables */enum { _iconv_ccs_to_ucs = 0, _iconv_ccs_from_ucs = 1 };/* Unidirectional conversion table types *//* one-level tables */typedef struct {    ucs2_t data[128];} iconv_ccs_table_7bit_t; /* 7-bit charset to Unicode */typedef struct {    ucs2_t data[256];} iconv_ccs_table_8bit_t; /* 8-bit charset to Unicode *//* two-level tables */typedef struct {    __uint32_t data[128];} iconv_ccs_table_14bit_t; /* 14-bit charset to Unicode */typedef struct {    __uint32_t data[256];} iconv_ccs_table_16bit_t; /* 16-bit charset to Unicode;                            * Unicode to any charset *//* abstract table */typedef union {    iconv_ccs_table_7bit_t  _7bit;    iconv_ccs_table_8bit_t  _8bit;    iconv_ccs_table_14bit_t _14bit;    iconv_ccs_table_16bit_t _16bit;} iconv_ccs_table_abstract_t;/* host and network byte order array element macros */#define iconv_table_elt_le(base, i, type)    \    ((type *)(((char *)(base)) + letohl(((__uint32_t *)(base))[(i)])))#define iconv_table_elt_be(base, i, type)    \    ((type *)(((char *)(base)) + betohl(((__int32_t *)(base))[(i)])))#define abstable ((_CONST iconv_ccs_table_abstract_t *)table)/* Functions for little endian byte order tables */static ucs2_t_DEFUN(cvt_7bit_le, (table, ch),                      _CONST _VOID_PTR table _AND                      ucs2_t ch){    return ch & 0x80 ? UCS_CHAR_INVALID : letohs(abstable->_7bit.data[ch]);}static ucs2_t_DEFUN(cvt_8bit_le, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    return letohs(abstable->_8bit.data[ch]);}static ucs2_t_DEFUN(cvt_14bit_le, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    _CONST iconv_ccs_table_7bit_t *sub_table;    if (ch & 0x8080)        return UCS_CHAR_INVALID;    sub_table =  iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_7bit_t);    return sub_table == &(abstable->_7bit) ? UCS_CHAR_INVALID                                           : letohs(sub_table->data[ch & 0x7F]);}static ucs2_t_DEFUN(cvt_16bit_le, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    _CONST iconv_ccs_table_8bit_t *sub_table =        iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_8bit_t);    return sub_table == &(abstable->_8bit) ? UCS_CHAR_INVALID                                           : letohs(sub_table->data[ch & 0xFF]);}static iconv_ccs_convert_t * _CONST converters_le[] = {    cvt_7bit_le, cvt_8bit_le, cvt_14bit_le, cvt_16bit_le};/* Functions for network byte order tables */static ucs2_t_DEFUN(cvt_7bit_be, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    return ch & 0x80 ? UCS_CHAR_INVALID : betohs(abstable->_7bit.data[ch]);}static ucs2_t_DEFUN(cvt_8bit_be, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    return betohs(abstable->_8bit.data[ch]);}static ucs2_t_DEFUN(cvt_14bit_be, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    _CONST iconv_ccs_table_7bit_t *sub_table;    if (ch & 0x8080)        return UCS_CHAR_INVALID;    sub_table =  iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_7bit_t);    return sub_table == &(abstable->_7bit) ? UCS_CHAR_INVALID                                           : betohs(sub_table->data[ch & 0x7F]);}static ucs2_t_DEFUN(cvt_16bit_be, (table, ch),                     _CONST _VOID_PTR table _AND                     ucs2_t ch){    _CONST iconv_ccs_table_8bit_t *sub_table =        iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_8bit_t);    return sub_table == &(abstable->_8bit) ? UCS_CHAR_INVALID                                           : betohs(sub_table->data[ch & 0xFF]);}static iconv_ccs_convert_t * _CONST converters_be[] = {    cvt_7bit_be, cvt_8bit_be, cvt_14bit_be, cvt_16bit_be};#undef abstable/* Generic coded character set initialisation function */static int_DEFUN(ccs_init, (ccs, table),                 struct iconv_ccs *ccs _AND                 _CONST iconv_ccs_convtable_t *table){    if (strncmp(table->label, ICONV_TBL_LABEL, ICONV_TBL_LABEL_SIZE))        return EINVAL;    if (ICONV_TBL_VERSION(table) > 3)        return EINVAL;    ccs->nbits = ICONV_TBL_NBITS(table);    if (ICONV_TBL_BYTE_ORDER(table) == ICONV_CCT_LE) {        /* Little Endian */        ccs->from_ucs = iconv_table_elt_le(table->tables,                                           _iconv_ccs_from_ucs,                                           _CONST iconv_ccs_convtable_t);        ccs->to_ucs = iconv_table_elt_le(table->tables,                                         _iconv_ccs_to_ucs,                                         _CONST iconv_ccs_convtable_t);        ccs->convert_from_ucs = cvt_16bit_le;        ccs->convert_to_ucs = converters_le[ICONV_TBL_VERSION(table)];    } else {        /* Big Endian (Network Byte Order) */        ccs->from_ucs = iconv_table_elt_be(table->tables,                                             _iconv_ccs_from_ucs,                                             _CONST iconv_ccs_convtable_t);        ccs->to_ucs = iconv_table_elt_be(table->tables,                                           _iconv_ccs_to_ucs,                                           _CONST iconv_ccs_convtable_t);        ccs->convert_from_ucs = cvt_16bit_be;        ccs->convert_to_ucs = converters_be[ICONV_TBL_VERSION(table)];    }    return 0;}static int_DEFUN(close_builtin, (rptr, desc),                      struct _reent *rptr _AND                      struct iconv_ccs *desc){    return 0;}static int_DEFUN(iconv_ccs_init_builtin, (ccs, name),                               struct iconv_ccs *ccs _AND                               _CONST char *name){    _CONST iconv_builtin_table_t *ccs_ptr;    for (ccs_ptr = _iconv_builtin_ccs; ccs_ptr->key != NULL; ccs_ptr ++) {        if (strcmp(ccs_ptr->key, name) == 0) {            int res = ccs_init(ccs, (_CONST iconv_ccs_convtable_t *)                                    (ccs_ptr->value));            if (res == 0)                ccs->close = close_builtin;            return res;        }    }     return EINVAL;}/* External CCS initialisation */struct external_extra {    _CONST iconv_ccs_convtable_t *ptr;    off_t size;};static int_DEFUN(close_external, (rptr, desc),                       struct _reent *rptr _AND                       struct iconv_ccs *desc){    _iconv_unload_file(rptr, (_iconv_fd_t *)desc->extra);    _free_r(rptr, desc->extra);    return 0;}static int_DEFUN(iconv_ccs_init_external, (rptr, ccs, name),                                struct _reent *rptr   _AND                                struct iconv_ccs *ccs _AND                                _CONST char *name){    char *file;    _CONST iconv_ccs_convtable_t *ccs_ptr;    _CONST char *datapath;    _iconv_fd_t *extra;    if ((datapath = _getenv_r(rptr, NLS_ENVVAR_NAME)) == NULL ||                                                  *datapath == '\0')        datapath = NLS_DEFAULT_NLSPATH;    if ((file = _malloc_r(rptr, strlen(name) + sizeof(ICONV_DATA_EXT) + 1))                                                                     == NULL)        return EINVAL;        _sprintf_r(rptr, file, "%s"ICONV_DATA_EXT, name);            name = (_CONST char *)_iconv_construct_filename(rptr, datapath, file);    _free_r(rptr, (_VOID_PTR)file);    if (name == NULL)        return EINVAL;        if ((extra = (_iconv_fd_t *)_malloc_r(rptr, sizeof(_iconv_fd_t))) == NULL) {        _free_r(rptr, (_VOID_PTR)name);        return EINVAL;    }        if (_iconv_load_file(rptr, name, extra) != 0) {        _free_r(rptr, (_VOID_PTR)name);        return EINVAL;    }    _free_r(rptr, (_VOID_PTR)name);        ccs_ptr = (_CONST iconv_ccs_convtable_t *)extra->mem;    if (ccs_init(ccs, ccs_ptr) != 0) {        _iconv_unload_file(rptr, extra);        _free_r(rptr, (_VOID_PTR)extra);        return __errno_r(rptr);    }    ccs->extra = (_VOID_PTR)extra;    ccs->close = close_external;    return 0;}int_DEFUN(_iconv_ccs_init, (rptr, ccs, name),                        struct _reent *rptr   _AND                        struct iconv_ccs *ccs _AND                        _CONST char *name){    int res = iconv_ccs_init_builtin(ccs, name);    if (res)        res = iconv_ccs_init_external(rptr, ccs, name);    if (res)        __errno_r(rptr) = res;    return res;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级做a爱片久久| 成+人+亚洲+综合天堂| 国产精品一区二区果冻传媒| 色哟哟亚洲精品| 精品国产凹凸成av人导航| 亚洲日本青草视频在线怡红院 | 日韩激情视频网站| www.欧美.com| 久久精品视频一区| 久久99久久99| 日韩一区二区麻豆国产| 一区二区免费视频| 成av人片一区二区| 欧美国产精品一区| 国产精品资源站在线| 日韩免费福利电影在线观看| 性欧美疯狂xxxxbbbb| 色94色欧美sute亚洲线路一久 | 亚洲欧美电影一区二区| 国产成人免费网站| 精品国产91乱码一区二区三区| 亚洲bdsm女犯bdsm网站| 欧美在线色视频| 亚洲精品高清在线| 色8久久人人97超碰香蕉987| 国产成人免费9x9x人网站视频| 91蜜桃网址入口| av午夜一区麻豆| 欧美—级在线免费片| 国产麻豆精品一区二区| 久久久久久久久久久久久女国产乱| 亚洲444eee在线观看| 欧美日韩另类一区| 亚洲r级在线视频| 欧美精品在线观看播放| 爽好多水快深点欧美视频| 欧美另类久久久品| 日韩av在线播放中文字幕| 日韩无一区二区| 国内精品伊人久久久久av影院| 精品国产伦一区二区三区免费| 精品一区二区三区免费播放| www国产亚洲精品久久麻豆| 岛国精品在线播放| 日韩一区欧美一区| 在线视频欧美精品| 午夜精品一区在线观看| 日韩欧美国产综合| 风间由美性色一区二区三区| 中文字幕一区二区三区四区不卡 | 国产精品全国免费观看高清| 成人午夜看片网址| 亚洲自拍偷拍图区| 欧美tk—视频vk| 99在线视频精品| 亚洲超碰97人人做人人爱| 91精品国产免费久久综合| 国产一区91精品张津瑜| 亚洲日本护士毛茸茸| 6080yy午夜一二三区久久| 国产传媒日韩欧美成人| 亚洲欧美另类久久久精品2019| 欧美日本在线视频| 国产精品一区二区久激情瑜伽| 一区二区三区在线影院| 精品久久久久久久久久久久久久久久久 | 日韩高清在线观看| 国产精品色婷婷| 欧美伦理电影网| 成人av电影在线| 日韩电影在线免费| 国产精品久久久久久福利一牛影视| 欧美主播一区二区三区美女| 国内精品不卡在线| 亚洲美女精品一区| 久久综合久久综合九色| 欧美视频在线播放| 成a人片国产精品| 国产中文字幕精品| 亚洲第一福利一区| 国产精品久久久久久久第一福利| 欧美一区二区三区四区五区| 99re视频这里只有精品| 国内成+人亚洲+欧美+综合在线| 一区二区三区毛片| 久久精品免费在线观看| 91精品国产全国免费观看| 色婷婷久久一区二区三区麻豆| 久久国产剧场电影| 天天综合网 天天综合色| 亚洲视频在线一区| 国产三区在线成人av| 日韩欧美资源站| 欧美美女一区二区在线观看| 色视频成人在线观看免| 国产成人精品亚洲日本在线桃色| 免费一级欧美片在线观看| 亚洲第四色夜色| 亚洲精品国久久99热| 自拍视频在线观看一区二区| 国产日产亚洲精品系列| 精品国产伦一区二区三区免费| 91麻豆精品国产91久久久| 欧美性色黄大片| 欧美亚洲国产一区在线观看网站| 99精品欧美一区二区三区小说| 国产成人在线观看| 国产精品自拍网站| 国产精品一区二区你懂的| 国产一区二区免费视频| 久久99精品久久久久| 免费观看久久久4p| 日本亚洲免费观看| 免费不卡在线视频| 日本不卡一二三区黄网| 视频一区欧美日韩| 午夜日韩在线电影| 午夜久久福利影院| 久久精品久久99精品久久| 美女看a上一区| 国产原创一区二区| 豆国产96在线|亚洲| 高清不卡一区二区| 一本色道久久综合亚洲精品按摩| 一本一道波多野结衣一区二区| 色婷婷狠狠综合| 8x福利精品第一导航| 欧美成人猛片aaaaaaa| 久久亚洲精精品中文字幕早川悠里| 久久婷婷色综合| 国产精品国产三级国产专播品爱网| 亚洲欧美另类图片小说| 亚洲成人激情综合网| 另类综合日韩欧美亚洲| 成人自拍视频在线| 一本大道久久精品懂色aⅴ| 欧美少妇一区二区| 精品剧情v国产在线观看在线| 国产精品午夜春色av| 亚洲第一电影网| 国精产品一区一区三区mba桃花| 成人国产精品免费网站| 欧美日韩国产片| 国产日本欧洲亚洲| 亚洲午夜久久久久久久久电影网 | 国产精品资源在线看| 91无套直看片红桃| 欧美一区在线视频| 国产精品美日韩| 日韩二区在线观看| 不卡的电影网站| 欧美一卡在线观看| 亚洲同性同志一二三专区| 日韩国产欧美视频| 91一区二区在线观看| 亚洲精品一区二区三区福利| 自拍偷拍欧美精品| 九九久久精品视频 | proumb性欧美在线观看| 在线播放欧美女士性生活| 中文字幕欧美国产| 蜜桃在线一区二区三区| 一本色道久久综合亚洲精品按摩| 日韩精品专区在线影院观看 | 国产欧美日韩麻豆91| 中文字幕一区av| 国产一区二区三区日韩| 欧美网站大全在线观看| 日韩毛片视频在线看| 激情综合色播激情啊| 6080午夜不卡| 亚洲一区二区三区不卡国产欧美| 国产精品99久久久久| 91精品国产综合久久香蕉的特点 | 91在线视频在线| 国产丝袜欧美中文另类| 看国产成人h片视频| 欧美色图一区二区三区| 亚洲欧洲精品天堂一级 | 日本午夜一区二区| 在线国产电影不卡| 国产精品嫩草影院com| 国产一区二区三区av电影| 日韩一级完整毛片| 首页欧美精品中文字幕| 欧美视频一区二区在线观看| 国产精品久久毛片| 国产成人在线影院 | 欧美一级在线视频| 午夜视频在线观看一区二区三区| 91网站在线播放| 自拍偷拍亚洲综合| 色婷婷av一区二区| 亚洲免费视频中文字幕| 色综合久久久网| 亚洲日本va午夜在线影院| 99久久精品免费精品国产| 中文字幕视频一区二区三区久| 成人av资源网站| 亚洲女厕所小便bbb|