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

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

?? avc_mbyte.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* $Id: avc_mbyte.c,v 1.3 2005/06/03 03:49:59 daniel Exp $ * * Name:     avc_mbyte.c * Project:  Arc/Info vector coverage (AVC)  E00->BIN conversion library * Language: ANSI C * Purpose:  Functions to handle multibyte character conversions. * Author:   Daniel Morissette, dmorissette@dmsolutions.ca * ********************************************************************** * Copyright (c) 1999-2005, Daniel Morissette * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: *  * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. *  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  * DEALINGS IN THE SOFTWARE. ********************************************************************** * * $Log: avc_mbyte.c,v $ * Revision 1.3  2005/06/03 03:49:59  daniel * Update email address, website url, and copyright dates * * Revision 1.2  2000/09/22 19:45:21  daniel * Switch to MIT-style license * * Revision 1.1  2000/05/29 15:31:03  daniel * Initial revision - Japanese support * **********************************************************************/#include "avc.h"#ifdef _WIN32#  include <mbctype.h>#endifstatic int _AVCDetectJapaneseEncoding(const unsigned char *pszLine);static const char *_AVCJapanese2ArcDBCS(AVCDBCSInfo *psDBCSInfo,                                        const unsigned char *pszLine,                                        int nMaxOutputLen);static const char *_AVCArcDBCS2JapaneseShiftJIS(AVCDBCSInfo *psDBCSInfo,                                                 const unsigned char *pszLine,                                                int nMaxOutputLen);/*===================================================================== * Functions to handle multibyte char conversions *====================================================================*/#define IS_ASCII(c)           ((c) < 0x80)/********************************************************************** *                          AVCAllocDBCSInfo() * * Alloc and init a new AVCDBCSInfo structure. **********************************************************************/AVCDBCSInfo *AVCAllocDBCSInfo(){    AVCDBCSInfo *psInfo;    psInfo = (AVCDBCSInfo*)CPLCalloc(1, sizeof(AVCDBCSInfo));    psInfo->nDBCSCodePage = AVCGetDBCSCodePage();    psInfo->nDBCSEncoding = AVC_CODE_UNKNOWN;    psInfo->pszDBCSBuf    = NULL;    psInfo->nDBCSBufSize  = 0;    return psInfo;}/********************************************************************** *                          AVCFreeDBCSInfo() * * Release all memory associated with a AVCDBCSInfo structure. **********************************************************************/void AVCFreeDBCSInfo(AVCDBCSInfo *psInfo){    if (psInfo)    {        CPLFree(psInfo->pszDBCSBuf);        CPLFree(psInfo);    }}/********************************************************************** *                          AVCGetDBCSCodePage() * * Fetch current multibyte codepage on the system.   * Returns a valid codepage number, or 0 if the codepage is single byte or * unsupported. **********************************************************************/int AVCGetDBCSCodePage(){#ifdef _WIN32    int nCP;    nCP = _getmbcp();    /* Check if that's a supported codepage */    if (nCP == AVC_DBCS_JAPANESE)        return nCP;#endif    return 0;}/********************************************************************** *                          AVCE00DetectEncoding() * * Try to detect the encoding used in the current file by examining lines * of input. * * Returns TRUE once the encoding is established, or FALSE if more lines * of input are required to establish the encoding. **********************************************************************/GBool AVCE00DetectEncoding(AVCDBCSInfo *psDBCSInfo, const char *pszLine){    if (psDBCSInfo == NULL || psDBCSInfo->nDBCSCodePage == 0 ||        psDBCSInfo->nDBCSEncoding != AVC_CODE_UNKNOWN)    {        /* Either single byte codepage, or encoding has already been detected         */        return TRUE;    }    switch (psDBCSInfo->nDBCSCodePage)    {      case AVC_DBCS_JAPANESE:        psDBCSInfo->nDBCSEncoding =                   _AVCDetectJapaneseEncoding((const unsigned char *)pszLine);        break;      default:        psDBCSInfo->nDBCSEncoding = AVC_CODE_UNKNOWN;        return TRUE;  /* Codepage not supported... no need to scan more lines*/    }        if (psDBCSInfo->nDBCSEncoding != AVC_CODE_UNKNOWN)        return TRUE;  /* We detected the encoding! */    return FALSE;}/********************************************************************** *                          AVCE00Convert2ArcDBCS() * * If encoding is still unknown, try to detect the encoding used in the * current file, and then convert the string to an encoding validfor output * to a coverage. * * Returns a reference to a const buffer that should not be freed by the * caller.  It can be either the original string buffer or a ref. to an * internal buffer. **********************************************************************/const char *AVCE00Convert2ArcDBCS(AVCDBCSInfo *psDBCSInfo,                                        const char *pszLine,                                       int nMaxOutputLen){    const char *pszOutBuf = NULL;    unsigned char *pszTmp;    GBool bAllAscii;    if (psDBCSInfo == NULL ||         psDBCSInfo->nDBCSCodePage == 0 || pszLine == NULL)    {        /* Single byte codepage... nothing to do         */        return pszLine;    }    /* If string is all ASCII then there is nothing to do...     */    pszTmp = (unsigned char *)pszLine;    for(bAllAscii = TRUE ; bAllAscii && pszTmp && *pszTmp; pszTmp++)    {        if ( !IS_ASCII(*pszTmp) )            bAllAscii = FALSE;    }    if (bAllAscii)        return pszLine;    /* Make sure output buffer is large enough.     * We add 2 chars to buffer size to simplify processing... no need to     * check if second byte of a pair would overflow buffer.     */    if (psDBCSInfo->pszDBCSBuf == NULL ||         psDBCSInfo->nDBCSBufSize < nMaxOutputLen+2)    {        psDBCSInfo->nDBCSBufSize = nMaxOutputLen+2;        psDBCSInfo->pszDBCSBuf =             (unsigned char *)CPLRealloc(psDBCSInfo->pszDBCSBuf,                                        psDBCSInfo->nDBCSBufSize*                                        sizeof(unsigned char));    }    /* Do the conversion according to current code page      */    switch (psDBCSInfo->nDBCSCodePage)    {      case AVC_DBCS_JAPANESE:        pszOutBuf = (char*)_AVCJapanese2ArcDBCS(psDBCSInfo,                                                (const unsigned char *)pszLine,                                                nMaxOutputLen);        break;      default:        /* We should never get here anyways, but just in case return pszLine          */        pszOutBuf = pszLine;    }        return pszOutBuf;}/********************************************************************** *                          AVCE00ConvertFromArcDBCS() * * Convert DBCS encoding in binary coverage files to E00 encoding. * * Returns a reference to a const buffer that should not be freed by the * caller.  It can be either the original string buffer or a ref. to an * internal buffer. **********************************************************************/const char *AVCE00ConvertFromArcDBCS(AVCDBCSInfo *psDBCSInfo,                                      const char *pszLine,                                     int nMaxOutputLen){    const char *pszOutBuf = NULL;    unsigned char *pszTmp;    GBool bAllAscii;    if (psDBCSInfo == NULL ||         psDBCSInfo->nDBCSCodePage == 0 || pszLine == NULL)    {        /* Single byte codepage... nothing to do         */        return pszLine;    }    /* If string is all ASCII then there is nothing to do...     */    pszTmp = (unsigned char *)pszLine;    for(bAllAscii = TRUE ; bAllAscii && pszTmp && *pszTmp; pszTmp++)    {        if ( !IS_ASCII(*pszTmp) )            bAllAscii = FALSE;    }    if (bAllAscii)        return pszLine;    /* Make sure output buffer is large enough.     * We add 2 chars to buffer size to simplify processing... no need to     * check if second byte of a pair would overflow buffer.     */    if (psDBCSInfo->pszDBCSBuf == NULL ||         psDBCSInfo->nDBCSBufSize < nMaxOutputLen+2)    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色94色欧美sute亚洲13| 99re热这里只有精品视频| 亚洲午夜羞羞片| 亚洲欧洲国产日韩| 亚洲另类一区二区| 亚洲国产综合91精品麻豆| 亚洲成人动漫精品| 免费高清在线视频一区·| 裸体一区二区三区| 国产一二精品视频| av一区二区不卡| 91久久国产综合久久| 欧美日韩一区二区三区视频| 欧美男人的天堂一二区| 日韩视频免费观看高清完整版| 精品国产1区2区3区| 国产精品国产三级国产专播品爱网 | 色噜噜狠狠色综合中国| 欧美午夜精品一区二区三区| 欧美一级在线视频| 日本一区二区三级电影在线观看| 日韩一区有码在线| 婷婷综合另类小说色区| 国产一区在线不卡| av资源网一区| 欧美一区二区视频免费观看| 国产女同性恋一区二区| 亚洲午夜激情网站| 久久精品国产一区二区三区免费看 | 精品国产免费一区二区三区四区| 国产日本欧洲亚洲| 亚洲国产成人高清精品| 国产一区二区在线观看视频| 色综合色狠狠天天综合色| 欧美一级免费大片| 亚洲人成电影网站色mp4| 激情六月婷婷久久| 91精彩视频在线观看| 久久精品一区二区三区不卡 | 国产亚洲精久久久久久| 亚洲一区二区三区美女| 国产精品一二三区在线| 欧美日韩中字一区| 国产精品天美传媒沈樵| 久久精品久久精品| 欧美日韩高清不卡| 亚洲少妇30p| 韩国成人精品a∨在线观看| 91精品办公室少妇高潮对白| 中文字幕精品三区| 美脚の诱脚舐め脚责91| 欧美三区在线观看| 亚洲精品久久久蜜桃| 成人一区在线看| 精品日产卡一卡二卡麻豆| 视频一区在线播放| 欧美亚洲综合色| 亚洲免费成人av| 91美女片黄在线观看| 欧美国产精品专区| 国产精品一区二区x88av| 欧美变态口味重另类| 日精品一区二区三区| 欧美日韩久久久| 亚洲成精国产精品女| 欧美三级中文字幕在线观看| 亚洲一区二区三区小说| 色老汉av一区二区三区| 亚洲欧美日韩小说| 欧美最猛性xxxxx直播| 中文字幕综合网| 91福利精品视频| 午夜久久电影网| 欧美精品v国产精品v日韩精品| 亚洲第一二三四区| 欧美人伦禁忌dvd放荡欲情| 日韩—二三区免费观看av| 欧美剧情电影在线观看完整版免费励志电影| 亚洲精品综合在线| 色婷婷狠狠综合| 午夜婷婷国产麻豆精品| 9191久久久久久久久久久| 蜜桃精品视频在线| 精品国产电影一区二区| 国产成人午夜精品影院观看视频| 欧美经典一区二区三区| 不卡视频一二三四| 亚洲午夜av在线| 日韩欧美卡一卡二| 国产ts人妖一区二区| 中文字幕欧美一| 欧美日韩电影一区| 国产中文一区二区三区| 国产精品短视频| 欧美日韩国产精选| 国产在线精品免费av| 17c精品麻豆一区二区免费| 欧美性xxxxxx少妇| 久久 天天综合| 亚洲另类在线一区| 精品少妇一区二区三区日产乱码| 国产黄色成人av| 亚洲一区二区三区四区的| 日韩欧美二区三区| 97久久超碰国产精品| 婷婷六月综合亚洲| 国产精品高潮久久久久无| 欧美另类videos死尸| 风间由美中文字幕在线看视频国产欧美| 国产精品国产三级国产| 日韩午夜av一区| 91亚洲精品久久久蜜桃网站| 喷白浆一区二区| 亚洲日穴在线视频| 日韩免费电影一区| 欧美日韩一区二区三区在线看| 国产麻豆精品一区二区| 肉丝袜脚交视频一区二区| 国产精品私人自拍| 日韩欧美精品在线| 欧美视频第二页| 成人午夜av在线| 开心九九激情九九欧美日韩精美视频电影 | 中文字幕在线不卡国产视频| 欧美狂野另类xxxxoooo| 99国产精品久| 国产成人av电影在线播放| 日韩在线卡一卡二| 亚洲久草在线视频| 国产精品你懂的在线| 亚洲精品一区在线观看| 欧美日韩国产不卡| 91丨国产丨九色丨pron| 国产成人午夜精品影院观看视频 | 久久综合久久鬼色中文字| 欧美日韩精品免费观看视频| 色综合天天狠狠| 成人免费视频app| 国产精品一区免费视频| 国内精品久久久久影院一蜜桃| 天天免费综合色| 亚洲国产成人av网| 亚洲网友自拍偷拍| 亚洲大尺度视频在线观看| 亚洲影院免费观看| 亚洲自拍偷拍麻豆| 亚洲一区二区在线观看视频 | 欧美电视剧在线看免费| 在线成人av影院| 91精品久久久久久蜜臀| 欧美日韩精品一区二区| 欧美丝袜丝交足nylons图片| 欧洲亚洲精品在线| 欧美日韩在线精品一区二区三区激情| 一本久道久久综合中文字幕| 色综合欧美在线| 欧美亚洲综合色| 在线电影欧美成精品| 日韩色视频在线观看| 精品国产亚洲在线| 久久免费电影网| 亚洲欧美在线视频观看| 亚洲精品视频在线| 亚洲国产毛片aaaaa无费看| 日韩激情一区二区| 激情六月婷婷久久| 成人av在线电影| 欧美午夜电影在线播放| 欧美福利视频导航| 久久久精品2019中文字幕之3| 国产精品拍天天在线| 亚洲制服丝袜av| 美国av一区二区| 99久久精品费精品国产一区二区| 91免费视频大全| 欧美日韩精品久久久| 日韩欧美国产一区二区在线播放| 久久中文娱乐网| 亚洲色欲色欲www| 日韩福利电影在线| 成人h动漫精品一区二| 欧美午夜不卡在线观看免费| 欧美精品一区二区三区蜜臀| 18成人在线视频| 久久99国产乱子伦精品免费| 福利一区二区在线| 日韩一区二区在线看| 国产精品夫妻自拍| 久久99久久99精品免视看婷婷| 成人免费视频视频在线观看免费 | 国产美女精品在线| 在线观看亚洲精品| 精品国产免费久久 | 狠狠色伊人亚洲综合成人| www.久久精品| 日韩精品在线网站| 亚洲精品老司机| 丰满白嫩尤物一区二区| 91精品国产综合久久香蕉麻豆| ...xxx性欧美|