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

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

?? i18npthdr.c

?? 手寫識別Chinput源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/******************************************************************          Copyright 1994, 1995 by Sun Microsystems, Inc.         Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this softwareand its documentation for any purpose is hereby granted without fee,provided that the above copyright notice appear in all copies andthat both that copyright notice and this permission notice appearin supporting documentation, and that the name of Sun Microsystems, Inc.and Hewlett-Packard not be used in advertising or publicity pertaining todistribution of the software without specific, written prior permission.Sun Microsystems, Inc. and Hewlett-Packard make no representations aboutthe suitability of this software for any purpose.  It is provided "as is"without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALLWARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALLSUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANYSPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVERRESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OFCONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ORIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc.    This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/#include <stdlib.h>#include <sys/param.h>#include <X11/Xlib.h>#ifndef NEED_EVENTS#define NEED_EVENTS#endif#include <X11/Xproto.h>#undef NEED_EVENTS#include "FrameMgr.h"#include "IMdkit.h"#include "Xi18n.h"extern Xi18nClient *_Xi18nFindClient (Xi18n, CARD16);static void GetProtocolVersion (CARD16 client_major,                                CARD16 client_minor,                                CARD16 *server_major,                                CARD16 *server_minor){    *server_major = client_major;    *server_minor = client_minor;}static void ConnectMessageProc (XIMS ims,                                IMProtocol *call_data,                                unsigned char *p){    Xi18n i18n_core = ims->protocol;    FrameMgr fm;    extern XimFrameRec connect_fr[], connect_reply_fr[];    register int total_size;    CARD16 server_major_version, server_minor_version;    unsigned char *reply = NULL;    IMConnectStruct *imconnect =        (IMConnectStruct*) &call_data->imconnect;    CARD16 connect_id = call_data->any.connect_id;    fm = FrameMgrInit (connect_fr,                       (char *) p,                       _Xi18nNeedSwap (i18n_core, connect_id));    /* get data */    FrameMgrGetToken (fm, imconnect->byte_order);    FrameMgrGetToken (fm, imconnect->major_version);    FrameMgrGetToken (fm, imconnect->minor_version);    FrameMgrFree (fm);    GetProtocolVersion (imconnect->major_version,                        imconnect->minor_version,                        &server_major_version,                        &server_minor_version);#ifdef PROTOCOL_RICH    if (i18n_core->address.improto)    {        if (!(i18n_core->address.improto(ims, call_data)))            return;        /*endif*/    }    /*endif*/#endif  /* PROTOCOL_RICH */    fm = FrameMgrInit (connect_reply_fr,                       NULL,                       _Xi18nNeedSwap (i18n_core, connect_id));    total_size = FrameMgrGetTotalSize (fm);    reply = (unsigned char *) malloc (total_size);    if (!reply)    {        _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0);        return;    }    /*endif*/    memset (reply, 0, total_size);    FrameMgrSetBuffer (fm, reply);    FrameMgrPutToken (fm, server_major_version);    FrameMgrPutToken (fm, server_minor_version);    _Xi18nSendMessage (ims,                       connect_id,                       XIM_CONNECT_REPLY,                       0,                       reply,                       total_size);    FrameMgrFree (fm);    XFree (reply);}static void DisConnectMessageProc (XIMS ims, IMProtocol *call_data){    Xi18n i18n_core = ims->protocol;    unsigned char *reply = NULL;    CARD16 connect_id = call_data->any.connect_id;#ifdef PROTOCOL_RICH    if (i18n_core->address.improto)    {        if (!(i18n_core->address.improto (ims, call_data)))            return;        /*endif*/    }    /*endif*/#endif  /* PROTOCOL_RICH */    _Xi18nSendMessage (ims,                       connect_id,                       XIM_DISCONNECT_REPLY,                       0,                       reply,                       0);    i18n_core->methods.disconnect (ims, connect_id);}static void OpenMessageProc(XIMS ims, IMProtocol *call_data, unsigned char *p){    Xi18n i18n_core = ims->protocol;    FrameMgr fm;    extern XimFrameRec open_fr[];    extern XimFrameRec open_reply_fr[];    unsigned char *reply = NULL;    int str_size;    register int i, total_size;    CARD16 connect_id = call_data->any.connect_id;    int str_length;    char *name;    IMOpenStruct *imopen = (IMOpenStruct *) &call_data->imopen;    fm = FrameMgrInit (open_fr,                       (char *) p,                       _Xi18nNeedSwap (i18n_core, connect_id));    /* get data */    FrameMgrGetToken (fm, str_length);    FrameMgrSetSize (fm, str_length);    FrameMgrGetToken (fm, name);    imopen->lang.length = str_length;    imopen->lang.name = malloc (str_length + 1);    strncpy (imopen->lang.name, name, str_length);    imopen->lang.name[str_length] = (char) 0;    FrameMgrFree (fm);    if (i18n_core->address.improto)    {        if (!(i18n_core->address.improto(ims, call_data)))            return;        /*endif*/    }    /*endif*/    if ((i18n_core->address.imvalue_mask & I18N_ON_KEYS)        ||        (i18n_core->address.imvalue_mask & I18N_OFF_KEYS))    {        _Xi18nSendTriggerKey (ims, connect_id);    }    /*endif*/    XFree (imopen->lang.name);    fm = FrameMgrInit (open_reply_fr,                       NULL,                       _Xi18nNeedSwap (i18n_core, connect_id));    /* set iteration count for list of imattr */    FrameMgrSetIterCount (fm, i18n_core->address.im_attr_num);    /* set length of BARRAY item in ximattr_fr */    for (i = 0;  i < i18n_core->address.im_attr_num;  i++)    {        str_size = strlen (i18n_core->address.xim_attr[i].name);        FrameMgrSetSize (fm, str_size);    }    /*endfor*/    /* set iteration count for list of icattr */    FrameMgrSetIterCount (fm, i18n_core->address.ic_attr_num);    /* set length of BARRAY item in xicattr_fr */    for (i = 0;  i < i18n_core->address.ic_attr_num;  i++)    {        str_size = strlen (i18n_core->address.xic_attr[i].name);        FrameMgrSetSize (fm, str_size);    }    /*endfor*/    total_size = FrameMgrGetTotalSize (fm);    reply = (unsigned char *) malloc (total_size);    if (!reply)    {        _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0);        return;    }    /*endif*/    memset (reply, 0, total_size);    FrameMgrSetBuffer (fm, reply);    /* input input-method ID */    FrameMgrPutToken (fm, connect_id);    for (i = 0;  i < i18n_core->address.im_attr_num;  i++)    {        str_size = FrameMgrGetSize (fm);        FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].attribute_id);        FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].type);        FrameMgrPutToken (fm, str_size);        FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].name);    }    /*endfor*/    for (i = 0;  i < i18n_core->address.ic_attr_num;  i++)    {        str_size = FrameMgrGetSize (fm);        FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].attribute_id);        FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].type);        FrameMgrPutToken (fm, str_size);        FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].name);    }    /*endfor*/    _Xi18nSendMessage (ims,                       connect_id,                       XIM_OPEN_REPLY,                       0,                       reply,                       total_size);    FrameMgrFree (fm);    XFree (reply);}static void CloseMessageProc (XIMS ims,                              IMProtocol *call_data,                              unsigned char *p){    Xi18n i18n_core = ims->protocol;    FrameMgr fm;    extern XimFrameRec close_fr[];    extern XimFrameRec close_reply_fr[];    unsigned char *reply = NULL;    register int total_size;    CARD16 connect_id = call_data->any.connect_id;    CARD16 input_method_ID;    fm = FrameMgrInit (close_fr,                       (char *) p,                       _Xi18nNeedSwap (i18n_core, connect_id));    FrameMgrGetToken (fm, input_method_ID);    FrameMgrFree (fm);    if (i18n_core->address.improto)    {        if (!(i18n_core->address.improto (ims, call_data)))            return;        /*endif*/    }    /*endif*/    fm = FrameMgrInit (close_reply_fr,                       NULL,                       _Xi18nNeedSwap (i18n_core, connect_id));    total_size = FrameMgrGetTotalSize (fm);    reply = (unsigned char *) malloc (total_size);    if (!reply)    {        _Xi18nSendMessage (ims,                           connect_id,                           XIM_ERROR,                           0,                           0,                           0);        return;    }    /*endif*/    memset (reply, 0, total_size);    FrameMgrSetBuffer (fm, reply);    FrameMgrPutToken (fm, input_method_ID);    _Xi18nSendMessage (ims,                       connect_id,                       XIM_CLOSE_REPLY,                       0,                       reply,                       total_size);    FrameMgrFree (fm);    XFree (reply);}static XIMExt *MakeExtensionList (Xi18n i18n_core,                                  XIMStr *lib_extension,                                  int number,                                  int *reply_number){    XIMExt *ext_list;    XIMExt *im_ext = (XIMExt *) i18n_core->address.extension;    int im_ext_len = i18n_core->address.ext_num;    int i;    int j;    *reply_number = 0;    if (number == 0)    {        /* query all extensions */        *reply_number = im_ext_len;    }    else    {        for (i = 0;  i < im_ext_len;  i++)        {            for (j = 0;  j < (int) number;  j++)            {                if (strcmp (lib_extension[j].name, im_ext[i].name) == 0)                {                    (*reply_number)++;                    break;                }                /*endif*/            }            /*endfor*/        }        /*endfor*/    }    /*endif*/    if (!(*reply_number))        return NULL;    /*endif*/    ext_list = (XIMExt *) malloc (sizeof (XIMExt)*(*reply_number));    if (!ext_list)        return NULL;    /*endif*/    memset (ext_list, 0, sizeof (XIMExt)*(*reply_number));    if (number == 0)    {        /* query all extensions */        for (i = 0;  i < im_ext_len;  i++)        {            ext_list[i].major_opcode = im_ext[i].major_opcode;            ext_list[i].minor_opcode = im_ext[i].minor_opcode;            ext_list[i].length = im_ext[i].length;            ext_list[i].name = malloc (im_ext[i].length + 1);            strcpy (ext_list[i].name, im_ext[i].name);        }        /*endfor*/    }    else    {        int n = 0;        for (i = 0;  i < im_ext_len;  i++)        {            for (j = 0;  j < (int)number;  j++)            {                if (strcmp (lib_extension[j].name, im_ext[i].name) == 0)                {                    ext_list[n].major_opcode = im_ext[i].major_opcode;                    ext_list[n].minor_opcode = im_ext[i].minor_opcode;                    ext_list[n].length = im_ext[i].length;                    ext_list[n].name = malloc (im_ext[i].length + 1);                    strcpy (ext_list[n].name, im_ext[i].name);                    n++;                    break;                }                /*endif*/            }            /*endfor*/        }        /*endfor*/    }    /*endif*/    return ext_list;}static void QueryExtensionMessageProc (XIMS ims,                                       IMProtocol *call_data,                                       unsigned char *p){    Xi18n i18n_core = ims->protocol;    FrameMgr fm;    FmStatus status;    extern XimFrameRec query_extension_fr[];    extern XimFrameRec query_extension_reply_fr[];    unsigned char *reply = NULL;    int str_size;    register int i;    register int number;    register int total_size;    int byte_length;    int reply_number = 0;    XIMExt *ext_list;    IMQueryExtensionStruct *query_ext =        (IMQueryExtensionStruct *) &call_data->queryext;    CARD16 connect_id = call_data->any.connect_id;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕一区| 色播五月激情综合网| 精品日韩在线一区| 精品一区二区影视| 久久久久久久精| 91在线码无精品| 亚洲成人中文在线| 日韩亚洲欧美一区二区三区| 精品在线一区二区| 国产欧美一区二区精品秋霞影院| 成人美女视频在线观看18| 亚洲人123区| 欧美丰满少妇xxxbbb| 久久av资源站| 中文字幕电影一区| 欧美日韩久久久久久| 精品无人码麻豆乱码1区2区 | 精品一区二区在线视频| 国产精品久久久久久亚洲毛片 | 精品处破学生在线二十三| 成人av免费在线| 亚洲第一综合色| 国产欧美日韩三区| 欧美日韩在线观看一区二区 | 成人18视频日本| 日韩精品一卡二卡三卡四卡无卡| 久久精品欧美一区二区三区不卡 | 国产91丝袜在线播放| 亚洲成年人影院| 欧美激情在线一区二区| 欧美精品色综合| 成人精品免费网站| 免费精品视频最新在线| 亚洲精品欧美在线| 久久久亚洲精品一区二区三区| 色网综合在线观看| 国产在线播精品第三| 亚洲国产一区视频| 国产精品久久久久久久久动漫| 91精品国产入口在线| 一本一道综合狠狠老| 国产suv精品一区二区三区| 日本三级亚洲精品| 亚洲激情中文1区| 中文无字幕一区二区三区| 91精品国产综合久久精品| 91视频com| 成人app网站| 国产精品影视在线观看| 石原莉奈在线亚洲二区| 亚洲午夜视频在线| 最新久久zyz资源站| 国产婷婷色一区二区三区四区 | 99热精品国产| 国产剧情av麻豆香蕉精品| 免费亚洲电影在线| 亚洲高清三级视频| 一区二区三区视频在线看| 中文字幕亚洲不卡| 国产欧美一区二区精品婷婷| 精品日韩欧美在线| 日韩一卡二卡三卡国产欧美| 欧美日韩中字一区| 欧美色精品在线视频| 91黄视频在线| 在线视频中文字幕一区二区| av一区二区三区| 成人av小说网| aaa亚洲精品| 不卡免费追剧大全电视剧网站| 国产福利一区二区三区在线视频| 国产综合成人久久大片91| 久久99精品国产| 精品午夜一区二区三区在线观看| 精品一区二区三区免费视频| 黄色小说综合网站| 国产乱码精品一区二区三| 国产激情91久久精品导航 | thepron国产精品| 99精品黄色片免费大全| 92国产精品观看| 色拍拍在线精品视频8848| 91福利小视频| 7777精品伊人久久久大香线蕉的 | 国产精品系列在线播放| 国产成人精品亚洲777人妖| 丁香亚洲综合激情啪啪综合| 成人av网站免费| 日本久久电影网| 欧美乱熟臀69xxxxxx| 日韩精品中文字幕在线一区| 久久精品人人做人人爽人人| 国产精品色哟哟网站| 一级日本不卡的影视| 免费在线观看不卡| 从欧美一区二区三区| 91久久精品一区二区二区| 91精品国产aⅴ一区二区| 久久亚洲精品国产精品紫薇| 中文字幕在线视频一区| 亚洲国产日韩综合久久精品| 麻豆一区二区三区| 不卡一区二区中文字幕| 欧美日韩精品欧美日韩精品| 日韩精品综合一本久道在线视频| 中文成人av在线| 视频一区视频二区中文字幕| 国产精品一区一区| 色欧美日韩亚洲| 精品国产三级电影在线观看| 亚洲人妖av一区二区| 日日噜噜夜夜狠狠视频欧美人 | 亚洲在线免费播放| 国产精品一区久久久久| 欧美唯美清纯偷拍| 久久久www成人免费毛片麻豆| 亚洲日本va午夜在线电影| 琪琪一区二区三区| 99精品欧美一区| 精品久久久影院| 亚洲国产精品麻豆| 国产高清不卡一区二区| 6080yy午夜一二三区久久| 国产精品九色蝌蚪自拍| 美女尤物国产一区| 色天天综合色天天久久| 国产欧美日韩在线| 麻豆精品精品国产自在97香蕉| 91在线码无精品| 国产欧美一区二区在线观看| 日韩国产欧美三级| 在线看日韩精品电影| 国产欧美日韩麻豆91| 蜜臀av性久久久久蜜臀aⅴ流畅| 色综合久久久久综合99| 国产网站一区二区| 久久99精品久久久久| 欧美日韩国产a| 亚洲愉拍自拍另类高清精品| 99在线精品观看| 久久久精品免费网站| 日本欧美久久久久免费播放网| 99精品国产99久久久久久白柏 | 亚洲欧美一区二区三区极速播放| 国产一区二区视频在线播放| 9191久久久久久久久久久| 一区二区三区.www| 99riav久久精品riav| 欧美国产欧美亚州国产日韩mv天天看完整| 男男视频亚洲欧美| 精品视频在线免费观看| 亚洲综合色在线| 91成人免费在线| 亚洲人快播电影网| 99re热这里只有精品视频| 国产精品国产三级国产a| 成人综合在线观看| 日本一区二区动态图| 成人影视亚洲图片在线| 久久久精品国产免大香伊| 国产乱子伦视频一区二区三区 | av成人免费在线| 中文字幕在线视频一区| 99精品久久只有精品| 日韩毛片视频在线看| 91一区一区三区| 亚洲免费毛片网站| 欧美亚日韩国产aⅴ精品中极品| 一区二区在线观看不卡| 欧美亚洲日本国产| 日韩制服丝袜先锋影音| 欧美一区中文字幕| 久久成人麻豆午夜电影| 26uuu精品一区二区在线观看| 韩国成人福利片在线播放| 久久久九九九九| www.欧美.com| 亚洲图片欧美一区| 欧美一区二区精品久久911| 国内久久精品视频| 中文字幕亚洲综合久久菠萝蜜| 91麻豆福利精品推荐| 亚洲1区2区3区4区| 精品国产乱码久久久久久图片| 豆国产96在线|亚洲| 亚洲精品视频免费看| 制服丝袜激情欧洲亚洲| 国产伦精品一区二区三区视频青涩| 久久久国产精华| 色婷婷亚洲婷婷| 美女免费视频一区二区| 国产精品伦一区二区三级视频| 色噜噜狠狠成人中文综合| 天天免费综合色| 国产午夜精品福利| 欧美少妇bbb| 国产精品一区二区你懂的| 亚洲欧美视频在线观看| 日韩三级免费观看| 97se亚洲国产综合在线|