summaryrefslogtreecommitdiff
path: root/chinese/oxim
diff options
context:
space:
mode:
authorRong-En Fan <rafan@FreeBSD.org>2006-09-27 05:53:23 +0000
committerRong-En Fan <rafan@FreeBSD.org>2006-09-27 05:53:23 +0000
commit66faf73a66c48dca3070d2838989a551ddc34115 (patch)
tree51ead4c738d197886d3ca3484c9a0c1d928af2be /chinese/oxim
parent- Update to 20060926 (diff)
- Update to 1.1.1
Notes
Notes: svn path=/head/; revision=173946
Diffstat (limited to 'chinese/oxim')
-rw-r--r--chinese/oxim/Makefile2
-rw-r--r--chinese/oxim/distinfo6
-rw-r--r--chinese/oxim/files/patch-src-modules-chewing-chewing.c438
3 files changed, 4 insertions, 442 deletions
diff --git a/chinese/oxim/Makefile b/chinese/oxim/Makefile
index e79640695914..335d396c0a61 100644
--- a/chinese/oxim/Makefile
+++ b/chinese/oxim/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= oxim
-PORTVERSION= 1.1.0
+PORTVERSION= 1.1.1
CATEGORIES= chinese textproc
MASTER_SITES= ftp://ftp.opendesktop.org.tw/odp/OXIM/Source/ \
ftp://apt.nc.hcc.edu.tw/pub/mirror/opendesktop.org.tw/OXIM/Source/ \
diff --git a/chinese/oxim/distinfo b/chinese/oxim/distinfo
index 56b942f71b13..5b64f4731eb5 100644
--- a/chinese/oxim/distinfo
+++ b/chinese/oxim/distinfo
@@ -1,3 +1,3 @@
-MD5 (oxim-1.1.0.tar.gz) = 9a3a9eacb3a990a99ceedf1f11438be3
-SHA256 (oxim-1.1.0.tar.gz) = 920cea2badf5dc8254fa11bbfef77c0542c3a5e976673b4d8422690856e45863
-SIZE (oxim-1.1.0.tar.gz) = 1868865
+MD5 (oxim-1.1.1.tar.gz) = fbbd3d76958d750b5a9dc865a645d540
+SHA256 (oxim-1.1.1.tar.gz) = 7b0b02bdf24439f087c21b2d4915f2a01c4702fb262acfa65dc9a13e5a9f80eb
+SIZE (oxim-1.1.1.tar.gz) = 1877585
diff --git a/chinese/oxim/files/patch-src-modules-chewing-chewing.c b/chinese/oxim/files/patch-src-modules-chewing-chewing.c
deleted file mode 100644
index f0a35f9f8856..000000000000
--- a/chinese/oxim/files/patch-src-modules-chewing-chewing.c
+++ /dev/null
@@ -1,438 +0,0 @@
---- src/modules/chewing/chewing.c.orig Mon Jun 12 00:02:39 2006
-+++ src/modules/chewing/chewing.c Thu Sep 7 17:45:14 2006
-@@ -14,7 +14,9 @@
- #include "oximtool.h"
- #include "module.h"
-
-+#if 0
- #include <iconv.h>
-+#endif
-
- /* the following keystate masks are defined by oxim */
- #define CAPS_MASK (2)
-@@ -28,17 +30,19 @@
- static int CapsLockMode = 0; /* 0:小寫, 1:大寫 */
- static char *selKey_define = "1234567890";
-
-+#if 0
- void preconvert(char *input, char *output, int n_char);
- wchar_t convert(wchar_t input);
-+#endif
-
- static int bAddPhraseForward = 0;
- static uch_t etymon_list[N_KEYCODE];
-
--int MakeInpinfo(inpinfo_t *inpinfo, ChewingOutput *pgo);
-+int MakeInpinfo(inpinfo_t *inpinfo);
-
--int CallSetConfig(inpinfo_t *inpinfo, ChewingData *pgdata)
-+int CallSetConfig(inpinfo_t *inpinfo, ChewingContext *ctx)
- {
-- ConfigData config;
-+ ChewingConfigData config;
- int i;
-
- config.selectAreaLen = 100;
-@@ -48,14 +52,14 @@
- for (i = 0; i < 10;i++)
- config.selKey[i] = selKey_define[i];
-
-- SetConfig(pgdata, &config);
-+ chewing_Configure(ctx, &config);
- return 0;
- }
-
- static int
--ChewingInit(void *conf, char *objname)
-+ChewingInit(void *context, char *objname)
- {
-- ChewingConf *cf = (ChewingConf *)conf ;
-+ ChewingContext *ctx = (ChewingContext *)context ;
-
- /* TODO : 這裡要改為偵測新酷音詞庫存放路徑 */
- char *prefix = CHEWING_DATA_DIR;
-@@ -95,14 +99,12 @@
-
- if (oxim_setting_GetInteger(im_settings, "KeyMap", &KeyMap))
- {
-- if (KeyMap < KB_DEFAULT && KeyMap > KB_HANYU_PINYING)
-+ if (KeyMap < KB_DEFAULT && KeyMap > KB_HANYU_PINYIN)
- {
- KeyMap = KB_DEFAULT;
- }
- }
-
-- cf->kb_type = KeyMap;
--
- char *pho_key = "1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/-7634";
- char *pho_name[41] = {"ㄅ","ㄆ","ㄇ","ㄈ","ㄉ","ㄊ","ㄋ","ㄌ","ㄍ","ㄎ","ㄏ","ㄐ","ㄑ","ㄒ","ㄓ","ㄔ","ㄕ","ㄖ","ㄗ","ㄘ","ㄙ","ㄧ","ㄨ","ㄩ","ㄚ","ㄛ","ㄜ","ㄝ","ㄞ","ㄟ","ㄠ","ㄡ","ㄢ","ㄣ","ㄤ","ㄥ","ㄦ","˙","ˊ","ˇ","ˋ"};
- int keylen = strlen(pho_key), i, idx;
-@@ -114,10 +116,7 @@
- }
-
- /* Initialize Chewing */
-- ReadTree(prefix);
-- InitChar(prefix);
-- InitDict(prefix);
-- ReadHash(prefix);
-+ chewing_Init(prefix, prefix);
-
- oxim_settings_destroy(im_settings);
- return True;
-@@ -127,14 +126,15 @@
- ChewingXimInit(void *conf, inpinfo_t *inpinfo)
- {
- static char cchBuffer[MAX_PHONE_SEQ_LEN];
-- ChewingConf *cf = (ChewingConf *) conf;
-+ ChewingContext *ctx = (ChewingContext *) conf;
- int i;
-
-- inpinfo->iccf = (ChewingData *) calloc(1, sizeof(ChewingData));
-- inpinfo->etymon_list = (cf->kb_type == KB_HANYU_PINYING) ? NULL : etymon_list;
-+ inpinfo->iccf = chewing_new();
-+
-+ CallSetConfig(inpinfo, (ChewingContext *) inpinfo->iccf);
-
-- InitChewing(inpinfo->iccf, cf);
-- CallSetConfig(inpinfo, (ChewingData *) inpinfo->iccf);
-+ chewing_set_KBType( inpinfo->iccf, KeyMap );
-+ inpinfo->etymon_list = (KeyMap == KB_HANYU_PINYIN) ? NULL : etymon_list;
-
- inpinfo->lcch = (uch_t *) calloc(MAX_PHONE_SEQ_LEN, sizeof(uch_t));
- inpinfo->lcch_grouping = (ubyte_t *) calloc(MAX_PHONE_SEQ_LEN, sizeof(ubyte_t));
-@@ -163,33 +163,29 @@
- return True;
- }
-
--void CommitString(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+void CommitString(inpinfo_t *inpinfo)
- {
- int i ;
- char *str;
-- char *output;
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
- bzero(inpinfo->cch, sizeof(char)*MAX_PHONE_SEQ_LEN);
- str = (char *) calloc(MAX_PHONE_SEQ_LEN,sizeof(char));
-- output = (char *) calloc(MAX_PHONE_SEQ_LEN / 2 * chewing_codeset, sizeof(char));
- for (i = 0; i < pgo->nCommitStr; i++)
- strcat(str, (const char *) pgo->commitStr[i].s);
-- preconvert(str, output, strlen(str));
-- strcpy(inpinfo->cch, output);
-+ strcpy(inpinfo->cch, str);
- free(str);
-- free(output);
- }
-
- static unsigned int
- ChewingXimEnd(void *conf, inpinfo_t *inpinfo)
- {
-- ChewingOutput gOut ;
- int rtn ;
-
- /* if preedit exists, commit the string */
-- OnKeyEnter(inpinfo->iccf, &gOut);
-+ chewing_handle_Enter(inpinfo->iccf);
-
-- rtn = MakeInpinfo(inpinfo, &gOut);
-- free(inpinfo->iccf);
-+ rtn = MakeInpinfo(inpinfo);
-+ chewing_free((ChewingContext*) inpinfo->iccf);
- free(inpinfo->s_keystroke);
- free(inpinfo->lcch);
- free(inpinfo->mcch);
-@@ -202,7 +198,7 @@
- return rtn ;
- }
-
--void ShowChoose(inpinfo_t *inpinfo, ChoiceInfo *pci, ChewingOutput *pgo)
-+void ShowChoose(inpinfo_t *inpinfo, ChoiceInfo *pci)
- {
- int i,no,k,len, kk;
- char *output;
-@@ -218,16 +214,12 @@
- // in the last page, no will exceed nTotalChoice
- if( no >= pci->nTotalChoice )
- break;
-- output = (char *) calloc(
-- strlen(pci->totalChoiceStr[no]) * chewing_codeset + 1,
-- sizeof(char));
-- preconvert(pci->totalChoiceStr[no], output, strlen(pci->totalChoiceStr[no]));
-+ output = pci->totalChoiceStr[no];
- // for each char in the phrase, copy to mcch
- for (k = 0, kk = 0; output[k] != '\0'; k += chewing_codeset, kk++)
- {
- memcpy(inpinfo->mcch[len++].s, &(output[k]), chewing_codeset) ;
- }
-- free(output);
- // set grouping to the length of the phrase
- inpinfo->mcch_grouping[i+1] = kk;
-
-@@ -251,22 +243,23 @@
- inpinfo->n_mcch = len ;
- }
-
--void ShowText(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+void ShowText(inpinfo_t *inpinfo)
- {
- int i;
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
- bzero(inpinfo->lcch, sizeof(uch_t)*MAX_PHONE_SEQ_LEN) ;
- for (i = 0; i < pgo->chiSymbolBufLen; i++)
- {
-- pgo->chiSymbolBuf[i].wch = convert(pgo->chiSymbolBuf[i].wch);
- strcpy((char *)inpinfo->lcch[i].s, (char *)pgo->chiSymbolBuf[i].s);
- }
- inpinfo->n_lcch = pgo->chiSymbolBufLen ;
- }
-
--void ShowInterval(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+void ShowInterval(inpinfo_t *inpinfo)
- {
- int i, k, begin, len, count, nGroup ;
- int label[MAX_PHONE_SEQ_LEN] ;
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
-
- if( pgo->chiSymbolBufLen == 0) {
- inpinfo->lcch_grouping[0] = 0 ;
-@@ -305,34 +298,35 @@
- inpinfo->lcch_grouping[0] = nGroup ;
- }
-
--void ShowStateAndZuin(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+void ShowStateAndZuin(inpinfo_t *inpinfo)
- {
- int i, a , len = 0;
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
-
- bzero( inpinfo->s_keystroke, sizeof(uch_t)*(3 + MAX_PHRASE_LEN));
-- ChewingData *iccf = inpinfo->iccf;
-+ ChewingContext *iccf = inpinfo->iccf;
-
- if(pgo->bShowMsg)
- {
- for(i = 0; i < pgo->showMsgLen; i++)
- {
-- inpinfo->s_keystroke[i].uch = (uchar_t)convert(pgo->showMsg[i].wch);
-+ inpinfo->s_keystroke[i].uch = (uchar_t)(pgo->showMsg[i].wch);
- }
- inpinfo->keystroke_len = pgo->showMsgLen ;
- }
- else
- {
- // 漢語拼音
-- if (iccf->zuinData.kbtype == KB_HANYU_PINYING)
-+ if (iccf->data->zuinData.kbtype == KB_HANYU_PINYIN)
- {
-- for (i=0 ; i < PINYING_SIZE; i++)
-+ for (i=0 ; i < PINYIN_SIZE; i++)
- {
-- if (iccf->zuinData.pinYingData.keySeq[i] != '\0')
-+ if (iccf->data->zuinData.pinYinData.keySeq[i] != '\0')
- {
-- inpinfo->s_keystroke[i].uch = iccf->zuinData.pinYingData.keySeq[i];
-+ inpinfo->s_keystroke[i].uch = iccf->data->zuinData.pinYinData.keySeq[i];
- }
- }
-- inpinfo->keystroke_len = strlen(iccf->zuinData.pinYingData.keySeq);
-+ inpinfo->keystroke_len = strlen(iccf->data->zuinData.pinYinData.keySeq);
- }
- else
- {
-@@ -340,7 +334,7 @@
- {
- if(pgo->zuinBuf[i].s[0] != '\0')
- {
-- inpinfo->s_keystroke[a++].uch = (uchar_t)convert(pgo->zuinBuf[i].wch);
-+ inpinfo->s_keystroke[a++].uch = (uchar_t)(pgo->zuinBuf[i].wch);
- ++ len;
- }
- }
-@@ -349,13 +343,15 @@
- }
- }
-
--void SetCursor(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+void SetCursor(inpinfo_t *inpinfo)
- {
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
- inpinfo->edit_pos = pgo->chiSymbolCursor;
- }
-
--int MakeInpinfo(inpinfo_t *inpinfo, ChewingOutput *pgo)
-+int MakeInpinfo(inpinfo_t *inpinfo)
- {
-+ ChewingOutput *pgo = ((ChewingContext *) inpinfo->iccf)->output;
- int rtnValue = 0 ;
-
- if(pgo->keystrokeRtn & KEYSTROKE_ABSORB)
-@@ -364,20 +360,20 @@
- rtnValue |= IMKEY_IGNORE;
- if(pgo->keystrokeRtn & KEYSTROKE_COMMIT) {
- rtnValue |= IMKEY_COMMIT;
-- CommitString(inpinfo, pgo);
-+ CommitString(inpinfo);
- }
-
- if(pgo->pci->nPage != 0) { // in selection mode
-- ShowChoose(inpinfo,pgo->pci,pgo);
-+ ShowChoose(inpinfo,pgo->pci);
- inpinfo->guimode &= ~GUIMOD_LISTCHAR;
- }
- else { // not in selection mode
-- ShowText(inpinfo, pgo);
-- ShowInterval(inpinfo, pgo);
-+ ShowText(inpinfo);
-+ ShowInterval(inpinfo);
- inpinfo->guimode |= GUIMOD_LISTCHAR;
- }
-- ShowStateAndZuin(inpinfo, pgo);
-- SetCursor(inpinfo, pgo);
-+ ShowStateAndZuin(inpinfo);
-+ SetCursor(inpinfo);
- return rtnValue;
- }
-
-@@ -385,7 +381,6 @@
- ChewingKeystroke(void *conf, inpinfo_t *inpinfo, keyinfo_t *keyinfo)
- {
- KeySym keysym = keyinfo->keysym;
-- ChewingOutput gOut ;
- int rtn ;
- static KeySym last_key = 0;
-
-@@ -406,61 +401,58 @@
-
- // set Chinese / English mode by keystate
- if( keyinfo->keystate & CAPS_MASK ) { // uppercase
-- SetChiEngMode( inpinfo->iccf, SYMBOL_MODE);
-+ chewing_set_ChiEngMode( inpinfo->iccf, SYMBOL_MODE);
- }
- else { // lower case
-- SetChiEngMode( inpinfo->iccf, CHINESE_MODE);
-+ chewing_set_ChiEngMode( inpinfo->iccf, CHINESE_MODE);
- }
-
- // check no ctrl key was pressed
- if(keyinfo->keystate >= 0 && !(keyinfo->keystate & CTRL_MASK ) && !(keyinfo->keystate & ShiftMask) ) {
- switch(keysym) {
- case XK_Escape:
-- OnKeyEsc(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Esc(inpinfo->iccf) ;
- inpinfo->n_mcch = 0;
- break ;
- case XK_Return:
-- OnKeyEnter(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Enter(inpinfo->iccf) ;
- inpinfo->n_mcch = 0;
- break ;
- case XK_Delete:
-- OnKeyDel(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Del(inpinfo->iccf) ;
- break ;
- case XK_BackSpace:
-- OnKeyBackspace(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Backspace(inpinfo->iccf) ;
- break ;
- case XK_Up:
-- OnKeyUp(inpinfo->iccf, &gOut);
-+ chewing_handle_Up(inpinfo->iccf);
- break ;
- case XK_Down:
-- OnKeyDown(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Down(inpinfo->iccf) ;
- break ;
- case XK_Left:
-- OnKeyLeft(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Left(inpinfo->iccf) ;
- break ;
- case XK_Right:
-- OnKeyRight(inpinfo->iccf, &gOut) ;
-+ chewing_handle_Right(inpinfo->iccf) ;
- break ;
- case XK_Home:
-- OnKeyHome(inpinfo->iccf, &gOut);
-+ chewing_handle_Home(inpinfo->iccf);
- break;
- case XK_End:
-- OnKeyEnd(inpinfo->iccf, &gOut);
-+ chewing_handle_End(inpinfo->iccf);
- break;
- case XK_Tab:
-- if (last_key == XK_Tab) // double click TAB
-- OnKeyDblTab(inpinfo->iccf, &gOut);
-- else
-- OnKeyTab(inpinfo->iccf, &gOut);
-+ chewing_handle_Tab(inpinfo->iccf);
- break;
- case XK_Caps_Lock:
-- OnKeyCapslock(inpinfo->iccf, &gOut);
-+ chewing_handle_Capslock(inpinfo->iccf);
- break;
- case ' ': /* Space */
-- OnKeySpace(inpinfo->iccf, &gOut);
-+ chewing_handle_Space(inpinfo->iccf);
- break;
- default:
-- OnKeyDefault(inpinfo->iccf, keysym, &gOut);
-+ chewing_handle_Default(inpinfo->iccf, (char) keysym );
- inpinfo->n_mcch = 0;
- break;
- }
-@@ -468,26 +460,26 @@
- else if (keyinfo->keystate & ShiftMask) {
- switch ( keysym ) {
- case XK_Left:
-- OnKeyShiftLeft(inpinfo->iccf, &gOut) ;
-+ chewing_handle_ShiftLeft(inpinfo->iccf) ;
- break ;
- case XK_Right:
-- OnKeyShiftRight(inpinfo->iccf, &gOut) ;
-+ chewing_handle_ShiftRight(inpinfo->iccf) ;
- break;
- default:
-- OnKeyDefault(inpinfo->iccf, keysym, &gOut);
-+ chewing_handle_Default(inpinfo->iccf, (char) keysym);
- inpinfo->n_mcch = 0;
- }
- }
- else if (keyinfo->keystate & CTRL_MASK) { // Ctrl-key Mask
- // We need to fill the 'gOut' variable for output.
- if (keysym <= '9' && keysym >= '0')
-- OnKeyCtrlNum(inpinfo->iccf,keysym,&gOut);
-+ chewing_handle_CtrlNum(inpinfo->iccf, (char) keysym);
- else
-- OnKeyCtrlOption(inpinfo->iccf, keysym - 'a' + 1, &gOut);
-+ chewing_handle_CtrlOption(inpinfo->iccf, keysym - 'a' + 1);
- }
-
- last_key = keysym;
-- rtn = MakeInpinfo(inpinfo, &gOut);
-+ rtn = MakeInpinfo(inpinfo);
- return rtn ;
- }
-
-@@ -498,6 +490,7 @@
- return False;
- }
-
-+#if 0
- /* UTF-8 support */
- void
- preconvert(char *input, char *output, int n_char)
-@@ -533,6 +526,7 @@
- iconv_close(cd);
- return output.wch;
- }
-+#endif
-
- static int ChewingTerminate(void *conf)
- {
-@@ -554,7 +548,7 @@
- zh_chewing_comments
- }, /* comments */
- zh_chewing_valid_objname, /* valid_objname */
-- sizeof(ChewingConf), /* conf_size */
-+ sizeof(ChewingConfigData), /* conf_size */
- ChewingInit, /* init */
- ChewingXimInit, /* xim_init */
- ChewingXimEnd, /* xim_end */