Linux中文化之炎黄中文平台输入法添加

在炎黄中文平台上,用户可以自行添加输入法。炎黄中文平台的输入部分的程序设计使用了一个主导模块作为和平台的接口,它和各输入法模块之间采用统一的、规范的界面。各个输入法可看作是一个个过滤,输入ASCII码,返回得到的汉字。

输入法的主导模块以动态连接库(libimpi.a)的形式存在,和各输入法模块连接成单独的可执行文件。对于每一个具体的输入法,只需要按照一定的数据结构就可以链接成为新的可执行文件,并且添加到炎黄中文平台上。这些数据结构包括外部变量和外部函数。

1、外部变量

数组extcode[]:字符串类型,表示输入的外码串;

数组candstr[]:字符串类型,表示重码的待选串;

数组result[]:字符串类型,表示得到的结果串;

数组imname[]:字符串类型,表示输入法的名称;

数组imdscrpt[]:字符串类型,表示对输入法的描述。

变量maxeclen:整型,表示外码的最大长度;

变量eclen:整型,表示外码的长度。

这些变量的定义如下所示:

extern int maxeclen; /* The maximum length of external code */
extern int eclen; /* The length of external code */
extern char extcode[]; /* External code */
extern char candstr[]; /* Candinate string */
extern char result[]; /* Result string */

2、外部函数

外部函数一共有四个,它们分别是IMInit()、IMCleanup()、IMSelect()和IMFilter()。这四个函数的定义分别如下所示:

int IMInit();
int IMClearup();
int IMSelect(int select);
int IMFilter(int ch);

其中IMInit()函数用来完成输入法的初始化工作;IMClearup()函数用来对输入法被释放时的情况进行处理; IMSelect()函数用来处理当前输入法被选中的情况;IMFilter()是输入法的核心函数,用来对接收的字符串进行过滤,得到正确的输入结果。

时间: 2024-10-06 09:44:14

Linux中文化之炎黄中文平台输入法添加的相关文章

在Linux中添加普通新用户

  在Linux中添加普通新用户 ,超级用户(也称为"root")是一个具有修改系统中任何文件权力的特别账号.在日常工作中,最好不要使用超级用户账号进入系统,因为任何错误操作都可能导致巨大的损失.由于超级用户账号是系统建立后提供的惟一一个账号,因此,您需要建立和使用一个一般用户账号进行日常工作. 超级用户可以创建新的用户账号,下面的命令将建立一个名为joe的新用户: # adduser joe # passwd joe (键入joe的口令) Linux采用了将系统管理员和一般用户分开的

硬件-求助!急!!!Linux中添加硬盘的具体操作

问题描述 求助!急!!!Linux中添加硬盘的具体操作 创建了一台虚拟机,在安装系统时分区时通过 LVM 配置了逻辑卷,系统装好后,发现 /home 空间不够用,想在虚拟机中加一块 硬件,并调整 /home 挂载点对应分区的容量,硬盘 sdb 已经成功添加至系统,容量为 4G,未进行初始化,请写出后续完整操 作步骤(/home 挂载点对应的文件系统是 /dev/mapper/vg-lv_home). 求具体操作急 解决方案 http://www.cnblogs.com/yiru/archive/

linux中的添加删除程序

问题描述 linux中的添加删除程序 我的linux是CentOS6.6,打开添加删除程序想找jdk安装,却一直显示无法获取软件包后端的互斥锁.怎么回事? 解决方案 http://soft.yesky.com/os/lin/383/2179883.shtml 解决方案二: 隐藏添加删除程序Fedora添加删除程序 解决方案三: 可能是后台有进程正在更新软件包,或其他同类操作.

arm linux中添加开机启动

微处理器:S5PV210操作系统:linux3.0.8 前言:    在产品中,基本上都要屏蔽arm开发板中linux系统的对外通信,只应该通过产品的相关APP做相关操作.    因此需要把该APP添加到linux中,使之开机启动. 1,实现    a,打开文件:/etc/init.d/rcS.    b,在该文件末尾添加要执行的APP,或是相关的 *.sh 文件. 2,参考文件    a,http://blog.csdn.net/w7849516230/article/details/6426

linux中向crontab中添加定时任务

如何在linux中向crontab中添加定时任务呢?下面就来讲解一下: 首先在命令行终端输入 # vi /etc/crontab 回车进入编辑模式 在crontab最下面增加如下: 01 3 * * * root ./home/mysql_bak.sh   每天早上的3点01分执行此任务 以上参数对应如下: 分  小时  日  月  星期  执行命令 (取值范围,0表示周日,*表任意一天,一般一行对应一个任务) # 每天早上的3点01分执行此任务 重启crontab使任务生效: # /etc/i

linux中向crontab中添加定时任务的方法

如何在linux中向crontab中添加定时任务呢?下面就来讲解一下: 首先在命令行终端输入 # vi /etc/crontab 回车进入编辑模式 在crontab最下面增加如下: 01 3 * * * root ./home/mysql_bak.sh   每天早上的3点01分执行此任务 以上参数对应如下: 分  小时  日  月  星期  执行命令 (取值范围,0表示周日,*表任意一天,一般一行对应一个任务) # 每天早上的3点01分执行此任务 重启crontab使任务生效: # /etc/i

Linux中如何安装中文输入法?

Linux中如何安装中文输入法? 以redhat8为例,xwindow及其终端下的不用说了,缺省就安装了,用ctrl-space呼出. 现在讨论纯console,请到http://sourceforge.net/projects/zhcon/下载zhcon-0.2.5.tar.gz,放在任一目录中,然后运行以下命令: tar xvfz zhcon-0.2.5.tar.gzcd zhcon-0.2.5./configuremakemake install. 安装结束后,要使用zhcon,请运行zh

Linux中添加到系统服务的一般做法

在linux中,使用chkconfig命令,加入系统服务,实现软件的自动启动. 1. 自启动脚本模板 *****************下面的是脚本模板,颜色部分是注释 #!/bin/sh #!/bin/sh 是说明该脚本调用的shell的类型 #chkconfig: 2345 80 05 其中2345是指明服务的运行等级,80表明是系统启动时要启动第80号服务(服务号可以重复).05表明是系统关闭要停止的服务号. #descrīption: service-name 这里的service-na

在linux中添加字体

第一步:将windows下喜欢的字体文件copy到一个文件夹中,例如将XP里WINDOWS/FONTS中的字体文件,然后上传到linux服务器上,在linux中命名为xpfonts. 第二步:将copy到的字体文件夹copy到系统字体文件夹中并且修改权限 cp {存放xpfonts的路径}/xpfonts   /usr/share/fonts/ chmod u+rwx /usr/share/fonts/xpfonts/* 第三步:建立字体缓存 cd /usr/share/fonts/xpfont