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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? charset.c

?? 這是針對(duì) Linux (i386)平臺(tái)的 minigui 3.6.2 開發(fā)包(MiniGUI-Processes 運(yùn)行模式)。
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
/*** $Id: charset.c,v 1.48 2004/11/16 08:52:28 snig Exp $** ** charset.c: The charset operation set.** ** Copyright (C) 2003 Feynman Software** Copyright (C) 2000 ~ 2002 Wei Yongming.**** Current maintainer: Wei Yongming.**** Create date: 2000/06/13*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <assert.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "charset.h"/*************** Common Operations for single byte charsets ******************/static int sb_len_first_char (const unsigned char* mstr, int len){    if (len < 1) return 0;    if (*mstr != '\0')  return 1;    return 0;}static unsigned int sb_char_offset (const unsigned char* mchar){    return (int)(*mchar);}static int sb_nr_chars_in_str (const unsigned char* mstr, int mstrlen){    return mstrlen;}static int sb_len_first_substr (const unsigned char* mstr, int mstrlen){    return mstrlen;}static int sb_pos_first_char (const unsigned char* mstr, int mstrlen){    return 0;}static const unsigned char* sb_get_next_word (const unsigned char* mstr,                int mstrlen, WORDINFO* word_info){    int i;    if (mstrlen == 0) return NULL;    word_info->len = 0;    word_info->delimiter = '\0';    word_info->nr_delimiters = 0;    for (i = 0; i < mstrlen; i++) {        if (mstr[i] > 127) {            if (word_info->len > 0) {                word_info->delimiter = mstr[i];                word_info->nr_delimiters ++;            }            else {                word_info->len ++;                word_info->delimiter = ' ';                word_info->nr_delimiters ++;            }            break;        }        switch (mstr[i]) {        case ' ':        case '\t':        case '\n':        case '\r':            if (word_info->delimiter == '\0') {                word_info->delimiter = mstr[i];                word_info->nr_delimiters ++;            }            else if (word_info->delimiter == mstr[i])                word_info->nr_delimiters ++;            else                return mstr + word_info->len + word_info->nr_delimiters;        break;        default:            if (word_info->delimiter != '\0')                break;            word_info->len ++;        }    }                return mstr + word_info->len + word_info->nr_delimiters;}/************************* US-ASCII Specific Operations **********************/static int ascii_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ASCII"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short ascii_conv_to_uc16 (const unsigned char* mchar, int len){    if (*mchar < 128)        return (unsigned short) (*mchar);    else        return '?';}#endifstatic CHARSETOPS CharsetOps_ascii = {    128,    1,    1,    FONT_CHARSET_US_ASCII,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    ascii_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    ascii_conv_to_uc16#endif};/************************* ISO8859-1 Specific Operations **********************/static int iso8859_1_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ISO") && strstr (name, "8859-1"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short iso8859_1_conv_to_uc16 (const unsigned char* mchar, int len){    return (unsigned short) (*mchar);}#endifstatic CHARSETOPS CharsetOps_iso8859_1 = {    256,    1,    1,    FONT_CHARSET_ISO8859_1,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    iso8859_1_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    iso8859_1_conv_to_uc16#endif};#ifdef _LATIN2_SUPPORT/************************* ISO8859-2 Specific Operations **********************/static int iso8859_2_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ISO") && strstr (name, "8859-2"))        return 0;    if (strstr (name, "LATIN2"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short iso8859_2_unicode_map [] ={    0x0104, 0x02D8,    0x0141, 0x00A4, 0x013D,    0x015A, 0x00A7, 0x00A8,    0x0160, 0x015E, 0x0164,    0x0179, 0x00AD, 0x017D,    0x017B, 0x00B0, 0x0105,    0x02DB, 0x0142, 0x00B4,    0x013E, 0x015B, 0x02C7,    0x00B8, 0x0161, 0x015F,    0x0165, 0x017A, 0x02DD,    0x017E, 0x017C, 0x0154,    0x00C1, 0x00C2, 0x0102,    0x00C4, 0x0139, 0x0106,    0x00C7, 0x010C, 0x00C9,    0x0118, 0x00CB, 0x011A,    0x00CD, 0x00CE, 0x010E,    0x0110, 0x0143, 0x0147,    0x00D3, 0x00D4, 0x0150,    0x00D6, 0x00D7, 0x0158,    0x016E, 0x00DA, 0x0170,    0x00DC, 0x00DD, 0x0162,    0x00DF, 0x0155, 0x00E1,    0x00E2, 0x0103, 0x00E4,    0x013A, 0x0107, 0x00E7,    0x010D, 0x00E9, 0x0119,    0x00EB, 0x011B, 0x00ED,    0x00EE, 0x010F, 0x0111,    0x0144, 0x0148, 0x00F3,    0x00F4, 0x0151, 0x00F6,    0x00F7, 0x0159, 0x016F,    0x00FA, 0x0171, 0x00FC,    0x00FD, 0x0163, 0x02D9};static unsigned short iso8859_2_conv_to_uc16 (const unsigned char* mchar, int len){    if (*mchar < 0xA1)        return (unsigned short) (*mchar);    else    return iso8859_2_unicode_map [*mchar - 0xA1];   }#endifstatic CHARSETOPS CharsetOps_iso8859_2 = {    256,    1,    1,    FONT_CHARSET_ISO8859_2,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    iso8859_2_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    iso8859_2_conv_to_uc16#endif};#endif /* _LATIN2_SUPPORT */#ifdef _LATIN3_SUPPORT/************************* ISO8859-3 Specific Operations **********************/static int iso8859_3_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ISO") && strstr (name, "8859-3"))        return 0;    if (strstr (name, "LATIN3"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short iso8859_3_unicode_map [] ={    0x0126, 0x02D8, 0x00A3,    0x00A4, 0x00A5, 0x0124,    0x00A7, 0x00A8, 0x0130,    0x015E, 0x011E, 0x0134,    0x00AD, 0x00AE, 0x017B,    0x00B0, 0x0127, 0x00B2,    0x00B3, 0x00B4, 0x00B5,    0x0125, 0x00B7, 0x00B8,    0x0131, 0x015F, 0x011F,    0x0135, 0x00BD, 0x00BE,    0x017C, 0x00C0, 0x00C1,    0x00C2, 0x00C3, 0x00C4,    0x010A, 0x0108, 0x00C7,    0x00C8, 0x00C9, 0x00CA,    0x00CB, 0x00CC, 0x00CD,    0x00CE, 0x00CF, 0x00D0,    0x00D1, 0x00D2, 0x00D3,    0x00D4, 0x0120, 0x00D6,    0x00D7, 0x011C, 0x00D9,    0x00DA, 0x00DB, 0x00DC,    0x016C, 0x015C, 0x00DF,    0x00E0, 0x00E1, 0x00E2,    0x00E3, 0x00E4, 0x010B,    0x0109, 0x00E7, 0x00E8,    0x00E9, 0x00EA, 0x00EB,    0x00EC, 0x00ED, 0x00EE,    0x00EF, 0x00F0, 0x00F1,    0x00F2, 0x00F3, 0x00F4,    0x0121, 0x00F6, 0x00F7,    0x011D, 0x00F9, 0x00FA,    0x00FB, 0x00FC, 0x016D,    0x015D, 0x02D9};static unsigned short iso8859_3_conv_to_uc16 (const unsigned char* mchar, int len){    if (*mchar < 0xA1)        return (unsigned short) (*mchar);    else    return iso8859_3_unicode_map [*mchar - 0xA1];   }#endifstatic CHARSETOPS CharsetOps_iso8859_3 = {    256,    1,    1,    FONT_CHARSET_ISO8859_3,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    iso8859_3_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    iso8859_3_conv_to_uc16#endif};#endif /* _LATIN4_SUPPORT */#ifdef _LATIN4_SUPPORT/************************* ISO8859-4 Specific Operations **********************/static int iso8859_4_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ISO") && strstr (name, "8859-4"))        return 0;    if (strstr (name, "LATIN4"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short iso8859_4_unicode_map [] ={    0x0104, 0x0138, 0x0156,    0x00A4, 0x0128, 0x013B,    0x00A7, 0x00A8, 0x0160,    0x0112, 0x0122, 0x0166,    0x00AD, 0x017D, 0x00AF,    0x00B0, 0x0105, 0x02DB,    0x0157, 0x00B4, 0x0129,    0x013C, 0x02C7, 0x00B8,    0x0161, 0x0113, 0x0123,    0x0167, 0x014A, 0x017E,    0x014B, 0x0100, 0x00C1,    0x00C2, 0x00C3, 0x00C4,    0x00C5, 0x00C6, 0x012E,    0x010C, 0x00C9, 0x0118,    0x00CB, 0x0116, 0x00CD,    0x00CE, 0x012A, 0x0110,    0x0145, 0x014C, 0x0136,    0x00D4, 0x00D5, 0x00D6,    0x00D7, 0x00D8, 0x0172,    0x00DA, 0x00DB, 0x00DC,    0x0168, 0x016A, 0x00DF,    0x0101, 0x00E1, 0x00E2,    0x00E3, 0x00E4, 0x00E5,    0x00E6, 0x012F, 0x010D,    0x00E9, 0x0119, 0x00EB,    0x0117, 0x00ED, 0x00EE,    0x012B, 0x0111, 0x0146,    0x014D, 0x0137, 0x00F4,    0x00F5, 0x00F6, 0x00F7,    0x00F8, 0x0173, 0x00FA,    0x00FB, 0x00FC, 0x0169,    0x016B, 0x02D9};static unsigned short iso8859_4_conv_to_uc16 (const unsigned char* mchar, int len){    if (*mchar < 0xA1)        return (unsigned short) (*mchar);    else        return iso8859_4_unicode_map [*mchar - 0xA1];   }#endifstatic CHARSETOPS CharsetOps_iso8859_4 = {    256,    1,    1,    FONT_CHARSET_ISO8859_4,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    iso8859_4_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    iso8859_4_conv_to_uc16#endif};#endif /* _LATIN4_SUPPORT */#ifdef _CYRILLIC_SUPPORT/************************* ISO8859-5 Specific Operations **********************/static int iso8859_5_is_this_charset (const unsigned char* charset){    int i;    char name [LEN_FONT_NAME + 1];    for (i = 0; i < LEN_FONT_NAME + 1; i++) {        if (charset [i] == '\0')            break;        name [i] = toupper (charset [i]);    }    name [i] = '\0';    if (strstr (name, "ISO") && strstr (name, "8859-5"))        return 0;    if (strstr (name, "CYRILLIC"))        return 0;    return 1;}#ifdef _UNICODE_SUPPORTstatic unsigned short iso8859_5_conv_to_uc16 (const unsigned char* mchar, int len){    if (*mchar < 0xA1)        return (unsigned short) (*mchar);       if (*mchar == 0xAD)        return 0x00AD;  /* SOFT HYPHEN */    if (*mchar == 0xF0)        return 0x2116;  /* NUMERO SIGN */    if (*mchar == 0xFD)        return 0x00A7;  /* SECTION SIGN */    return *mchar + (0x0401 - 0xA1);}#endifstatic CHARSETOPS CharsetOps_iso8859_5 = {    256,    1,    1,    FONT_CHARSET_ISO8859_5,    {' '},    sb_len_first_char,    sb_char_offset,    sb_nr_chars_in_str,    iso8859_5_is_this_charset,    sb_len_first_substr,    sb_get_next_word,    sb_pos_first_char,#ifdef _UNICODE_SUPPORT    iso8859_5_conv_to_uc16#endif};#endif /* _CYRILLIC_SUPPORT */#ifdef _ARABIC_SUPPORT/************************* ISO8859-6 Specific Operations **********************/static int iso8859_6_is_this_charset (const unsigned char* charset){    int i;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂蜜桃一区二区三区| 99热精品一区二区| 美女视频网站久久| 日本女人一区二区三区| 视频一区欧美精品| 天堂蜜桃91精品| 欧美aaaaa成人免费观看视频| 日韩中文字幕麻豆| 日本不卡一区二区三区高清视频| 日韩综合小视频| 毛片av一区二区| 国产一区91精品张津瑜| 粉嫩在线一区二区三区视频| 成人激情免费视频| 日本韩国精品在线| 制服丝袜亚洲色图| 精品国产一区二区三区av性色| 2023国产精品自拍| 国产精品久久久久久久久免费桃花 | 国产精品乱码一区二三区小蝌蚪| 久久久噜噜噜久噜久久综合| 国产精品不卡在线| 亚洲国产人成综合网站| 波多野结衣在线一区| 色综合久久久久综合99| 欧美人妇做爰xxxⅹ性高电影| 欧美老人xxxx18| 欧美一级高清大全免费观看| 精品国产精品网麻豆系列| 国产日本欧美一区二区| 亚洲精品国产视频| 日韩精品福利网| 国产成人精品亚洲日本在线桃色| av在线播放不卡| 欧美日韩在线三级| 久久网站热最新地址| 最新热久久免费视频| 婷婷综合另类小说色区| 韩国av一区二区三区| 色综合久久中文字幕| 欧美电视剧免费全集观看| 国产精品久久一卡二卡| 午夜精品一区二区三区免费视频| 国产制服丝袜一区| 在线观看视频欧美| 久久久久久9999| 一级女性全黄久久生活片免费| 免播放器亚洲一区| 99久久久久久| 日韩欧美的一区| 亚洲男人的天堂在线aⅴ视频| 免费欧美高清视频| 日本精品免费观看高清观看| 精品国产乱码久久久久久浪潮| 亚洲另类中文字| 国产综合成人久久大片91| 91福利视频久久久久| 国产三级欧美三级日产三级99 | 2023国产精品自拍| 伊人开心综合网| 国产乱子轮精品视频| 欧美日本韩国一区| 中文字幕一区免费在线观看| 看片网站欧美日韩| 色婷婷精品久久二区二区蜜臂av| 欧美精品一区二区高清在线观看| 一区二区高清在线| 不卡影院免费观看| 久久免费精品国产久精品久久久久| 亚洲动漫第一页| 99久久精品免费| 2021久久国产精品不只是精品| 亚洲成人久久影院| 91影视在线播放| 中文字幕免费不卡在线| 精品系列免费在线观看| 欧美精品一二三| 洋洋av久久久久久久一区| voyeur盗摄精品| 国产午夜亚洲精品理论片色戒| 理论电影国产精品| 777色狠狠一区二区三区| 亚洲一级在线观看| 色伊人久久综合中文字幕| 国产欧美精品国产国产专区| 精品一区二区三区免费毛片爱| 欧美一区二区精品久久911| 午夜久久电影网| 欧美视频中文字幕| 色综合一个色综合亚洲| 亚洲欧美综合色| av午夜精品一区二区三区| 国产欧美日韩一区二区三区在线观看 | 亚洲国产精品久久人人爱| 一本大道综合伊人精品热热| 国产精品人成在线观看免费| 国产91综合网| 国产色爱av资源综合区| 国产超碰在线一区| 国产午夜亚洲精品理论片色戒| 国产乱人伦精品一区二区在线观看| 精品久久久久久最新网址| 韩国欧美国产1区| 久久久久99精品国产片| 国产成人午夜视频| 亚洲国产成人私人影院tom| 国产传媒日韩欧美成人| 国产精品久久夜| 91视视频在线观看入口直接观看www | 欧美大片在线观看| 国产真实精品久久二三区| 久久精品亚洲麻豆av一区二区 | 成人丝袜高跟foot| 国产精品看片你懂得| 色综合久久88色综合天天免费| av电影在线不卡| 亚洲人成电影网站色mp4| 在线观看日韩精品| 奇米一区二区三区| 久久久久久久综合| 91在线丨porny丨国产| 亚洲一区成人在线| 欧美一区二区三区四区视频| 国产乱子轮精品视频| 中文字幕在线观看一区| 91黄色激情网站| 日本一不卡视频| 国产欧美一区二区精品性| 91蝌蚪porny| 日韩电影在线一区二区三区| 精品福利一二区| 99re这里都是精品| 日韩制服丝袜先锋影音| 久久精品欧美一区二区三区不卡| 97精品电影院| 青青国产91久久久久久| 久久久久国色av免费看影院| 99re这里都是精品| 美日韩一区二区| 中文字幕在线一区二区三区| 欧美日韩三级视频| 国产美女主播视频一区| 一区二区久久久久久| 欧美mv和日韩mv的网站| 91麻豆国产福利精品| 另类小说图片综合网| 亚洲欧洲日产国码二区| 日韩午夜中文字幕| 色综合天天视频在线观看| 免费人成网站在线观看欧美高清| 国产精品久线观看视频| 91精品婷婷国产综合久久性色 | 91麻豆精品国产91久久久久久久久 | 精品电影一区二区| 一本色道**综合亚洲精品蜜桃冫| 热久久国产精品| 亚洲同性同志一二三专区| 日韩一区二区在线看片| 99久久er热在这里只有精品66| 蜜桃免费网站一区二区三区| 亚洲男人天堂av网| 久久婷婷成人综合色| 欧美日韩日本视频| 成人av网站大全| 狠狠色丁香九九婷婷综合五月| 亚洲精品成人精品456| 久久综合色播五月| 樱花影视一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 777午夜精品视频在线播放| 91在线国产观看| 国产一区二区免费看| 日精品一区二区| 一个色综合av| 国产精品久久久久久久久果冻传媒| 日韩一卡二卡三卡四卡| 欧美午夜影院一区| av动漫一区二区| 国产成人av电影免费在线观看| 麻豆国产精品视频| 亚洲成人一区在线| 亚洲美女在线国产| 国产精品每日更新| 国产欧美一区二区三区鸳鸯浴 | 久久99国产精品麻豆| 亚洲成a人在线观看| 一区二区三区国产豹纹内裤在线| 久久综合九色综合欧美就去吻| 69av一区二区三区| 欧美性大战久久久久久久蜜臀| 91天堂素人约啪| 99久久精品国产麻豆演员表| 国产mv日韩mv欧美| 国产成人aaaa| 高清国产午夜精品久久久久久| 狠狠色狠狠色综合| 韩国av一区二区三区在线观看| 看片的网站亚洲| 国内精品伊人久久久久av影院 | 国产成人啪午夜精品网站男同|