BBS水木清华站∶精华区
发信人: yorkwu@ms4.hinet.net (), 看板: Linux
标 题: 如何让chdrv能用倚天式的注音
发信站: DCI HiNet (Sat Mar 15 16:11:35 1997)
转信站: sobee!netnews.ntu!news.mcu!news.cs.nthu!news.cis.nctu!news-peer.nctu!n
终於成功的把chdrv的注音换倚天了...
耗时良久说... 想做的人照以下去做:
1. 抓chdrv的source,解开
2. 将phone.c里
static char phone_v[] = "1QAZ2WSXEDCRFV5TGBYHN";
static char phone_j1[] = "UJM";
static char phone_j2[] = "8IK,9OL.0P;/-";
static char phone_k[] = "7 634";
改成
static char phone_v[] = "BPMFDTNLVKHG7C,./J;'S";
static char phone_j1[] = "EXU";
static char phone_j2[] = "AORWIQZY890-=";
static char phone_k[] = "1 234";
3. 然後跑後列的程式(kc2et.c),造出phone.et.def
4. 以phone.et.def取代phone.def
5. make install
就可以试试了...应该没什麽问题才对...有的话请通知我...
--------------------------cut here!-------------------------------
/* et2kc.c -- 将chdrv的phone.def改倚天式排法 */
/* By York Wu, 1997 version 0.9 */
#include<stdio.h>
#include<stdlib.h>
struct convtbli{
char src;
char tgt;
};
struct convtbli ConvTbl[]={
{'h', '\''},
{'c', 'h'},
{'v', 'c'},
{'e', 'v'},
{'u', 'e'},
{'m', 'u'},
{'a', 'm'},
{'8', 'a'},
{'0', '8'},
{';', '0'},
{'y', ';'},
{'.', 'y'},
{'t', '.'},
{'w', 't'},
{',', 'w'},
{'5', ','},
{'-', '='},
{'/', '-'},
{'g', '/'},
{'r', 'g'},
{'k', 'r'},
{'d', 'k'},
{'2', 'd'},
{'6', '2'},
{'o', 'q'},
{'i', 'o'},
{'9', 'i'},
{'p', '9'},
{'q', 'p'},
{'7', '1'},
{'f', '7'},
{'z', 'f'},
{'l', 'z'},
{'x', 'l'},
{'j', 'x'},
{'b', 'j'},
{'1', 'b'},
{'s', 'n'},
{'n', 's'},
{'\0', '\0'}};
void tbl_xchg(char *p)
{
int i;
for(i=0;ConvTbl[i].src != '\0';i++)
if(*p==ConvTbl[i].src){
*p=ConvTbl[i].tgt;
break;
}
}
void proc_line(char *s)
{
int i;
for(i=0;i<4;i++) /* 注音最多四符 */
tbl_xchg(s+i);
}
main()
{
char srcf[]="phone.def",destf[]="phone.et.def";
char line[81];
FILE *fps,*fpd;
if((fps=fopen(srcf,"rt"))==NULL){
perror("Cannot find phone.def");
exit(1);
}
if((fpd=fopen(destf,"wt"))==NULL){
perror("Cannot create output file");
exit(1);
}
while(fgets(line,80,fps)!=NULL){
proc_line(line);
fputs(line,fpd);
}
if(!feof(fps)){
perror("There's an error:");
exit(1);
} else {
fclose(fps);
fclose(fpd);
}
}
--
o=|====> yorkwu@ms4.hinet.net
BBS水木清华站∶精华区