Format source code
This commit is contained in:
parent
b6df536fe9
commit
d0be6165c0
165 changed files with 30306 additions and 33687 deletions
411
romaji.c
411
romaji.c
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 1994 Sony Corporation
|
||||
*
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
|
|
@ -8,10 +8,10 @@
|
|||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
||||
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*
|
||||
* Except as contained in this notice, the name of Sony Corporation
|
||||
* shall not be used in advertising or otherwise to promote the sale, use
|
||||
* or other dealings in this Software without prior written authorization
|
||||
|
|
@ -28,80 +28,76 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* $SonyRCSfile: romaji.c,v $
|
||||
* $SonyRevision: 1.2 $
|
||||
* $SonyRCSfile: romaji.c,v $
|
||||
* $SonyRevision: 1.2 $
|
||||
* $SonyDate: 1997/01/23 11:09:37 $
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "common.h"
|
||||
#include "rk.h"
|
||||
#include "key.h"
|
||||
|
||||
extern int rkerrbell;
|
||||
|
||||
|
||||
|
||||
exec_romaji(c)
|
||||
wchar16_t c;
|
||||
wchar16_t c;
|
||||
{
|
||||
Conversion *cv;
|
||||
wchar16_t *p;
|
||||
Conversion* cv;
|
||||
wchar16_t* p;
|
||||
unsigned short c1, cc;
|
||||
unsigned int c2;
|
||||
unsigned int c2;
|
||||
unsigned short op;
|
||||
unsigned char mode;
|
||||
int len, i;
|
||||
unsigned int rkstr[MAXLLEN], *rkp;
|
||||
extern char erase_str[];
|
||||
unsigned char mode;
|
||||
int len, i;
|
||||
unsigned int rkstr[MAXLLEN], *rkp;
|
||||
extern char erase_str[];
|
||||
|
||||
cv = GetConversion ();
|
||||
cv = GetConversion();
|
||||
op = cv->out_point;
|
||||
|
||||
if (!is_bs(c) && BuffYes()) {
|
||||
if ((unsigned int) cv->ha_point + hs_point >= BUFFLENGTH - 2 &&
|
||||
!iswcntrl(c)) {
|
||||
if(!is_bs(c) && BuffYes()) {
|
||||
if((unsigned int)cv->ha_point + hs_point >= BUFFLENGTH - 2 &&
|
||||
!iswcntrl(c)) {
|
||||
beep();
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
cv->Halpha[cv->ha_point++] = c;
|
||||
}
|
||||
|
||||
if ((mode = cv->Imode) & MODE_CONV) {
|
||||
|
||||
if((mode = cv->Imode) & MODE_CONV) {
|
||||
sj3_rkconvc(c, rkstr);
|
||||
} else if (mode == MODE_CODE) {
|
||||
} else if(mode == MODE_CODE) {
|
||||
codeconv(c, rkstr);
|
||||
} else {
|
||||
rkstr[0] = SetMojilen(1) + c;
|
||||
rkstr[1] = RKEND;
|
||||
}
|
||||
|
||||
|
||||
rkp = rkstr;
|
||||
i = 1;
|
||||
i = 1;
|
||||
while(*rkp != RKEND) {
|
||||
c1 = ((c2 = *rkp++) & RKMASK);
|
||||
if (c2 == ERRBEL) {
|
||||
if(c2 == ERRBEL) {
|
||||
beep();
|
||||
cv->ha_point--;
|
||||
break;
|
||||
}
|
||||
if (is_bs(c1)) {
|
||||
if (op <= 0) {
|
||||
if (os_point <= 0) {
|
||||
if(is_bs(c1)) {
|
||||
if(op <= 0) {
|
||||
if(os_point <= 0) {
|
||||
master_write(erase_str, 1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (WcIsZENKAKU(cv->out_buf[op - 1])) {
|
||||
if(WcIsZENKAKU(cv->out_buf[op - 1])) {
|
||||
vbackchar(2);
|
||||
op -=1;
|
||||
op -= 1;
|
||||
} else {
|
||||
vbackchar(1);
|
||||
op--;
|
||||
}
|
||||
cv->out_point = op;
|
||||
if (BuffYes() && is_bs(c)) {
|
||||
if (!(cv->out_mode[op] & OMODE_MASK))
|
||||
if(BuffYes() && is_bs(c)) {
|
||||
if(!(cv->out_mode[op] & OMODE_MASK))
|
||||
chhstr(cv->Halpha, cv->out_buf,
|
||||
cv->out_mode, op);
|
||||
cv->ha_point = getipos(op);
|
||||
|
|
@ -109,111 +105,108 @@ wchar16_t c;
|
|||
}
|
||||
continue;
|
||||
}
|
||||
if (WcIsZENKAKU(c1)) {
|
||||
if (op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
||||
if(WcIsZENKAKU(c1)) {
|
||||
if(op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
||||
c1 = cc;
|
||||
vbackchar(2);
|
||||
op -= 1;
|
||||
cv->out_point = op;
|
||||
len = cv->out_mode[op] + GetMojilen(c2);
|
||||
c2 = SetMojilen(len);
|
||||
len = cv->out_mode[op] + GetMojilen(c2);
|
||||
c2 = SetMojilen(len);
|
||||
} else {
|
||||
if (!GetMojilen(c2) && (mode == MODE_CODE))
|
||||
c2 = SetMojilen(1);
|
||||
if(!GetMojilen(c2) && (mode == MODE_CODE))
|
||||
c2 = SetMojilen(1);
|
||||
}
|
||||
if (mode == MODE_ZKATA) {
|
||||
if(mode == MODE_ZKATA) {
|
||||
c1 = sj_tokata(c1);
|
||||
} else if (mode == MODE_HKATA) {
|
||||
} else if(mode == MODE_HKATA) {
|
||||
c1 = sj_zen2han(c1);
|
||||
}
|
||||
} else {
|
||||
if ((c2 & ERRCODE) && is_bs(c))
|
||||
} else {
|
||||
if((c2 & ERRCODE) && is_bs(c))
|
||||
cv->Halpha[cv->ha_point++] = c1;
|
||||
if (WcIsKANJI(c1)) {
|
||||
if(WcIsKANJI(c1)) {
|
||||
c2 = SetMojilen(1);
|
||||
} else if (iswcntrl(c1) && !(c2 & ERRCODE)) {
|
||||
if (BuffYes())
|
||||
} else if(iswcntrl(c1) && !(c2 & ERRCODE)) {
|
||||
if(BuffYes())
|
||||
cv->ha_point--;
|
||||
sj3_rkreset();
|
||||
i = 0;
|
||||
break;
|
||||
} else if (mode & MODE_ZEN) {
|
||||
} else if(mode & MODE_ZEN) {
|
||||
c1 = sj_han2zen(c1);
|
||||
if (mode == MODE_ZKATA)
|
||||
if(mode == MODE_ZKATA)
|
||||
c1 = sj_tokata(c1);
|
||||
if (op >=1 && (cc = addten(op-1, c1)) != 0){
|
||||
if(op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
||||
c1 = cc;
|
||||
vbackchar(2);
|
||||
op --;
|
||||
op--;
|
||||
cv->out_point = op;
|
||||
len = cv->out_mode[op]
|
||||
+ GetMojilen(c2);
|
||||
c2 = SetMojilen(len);
|
||||
len = cv->out_mode[op] + GetMojilen(c2);
|
||||
c2 = SetMojilen(len);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((unsigned int)cv->out_point + os_point >= BUFFLENGTH * 2 - 2) {
|
||||
if((unsigned int)cv->out_point + os_point >= BUFFLENGTH * 2 - 2) {
|
||||
beep();
|
||||
op = cv->out_point;
|
||||
break;
|
||||
}
|
||||
if (WcIsZENKAKU(c1)) {
|
||||
cv->out_buf[op] = c1;
|
||||
cv->in_mode[op] = mode;
|
||||
if(WcIsZENKAKU(c1)) {
|
||||
cv->out_buf[op] = c1;
|
||||
cv->in_mode[op] = mode;
|
||||
cv->out_mode[op++] = GetMojilen(c2);
|
||||
if (mode == MODE_HKATA || WcIsKANA(cv->out_buf[op - 1])) {
|
||||
if(mode == MODE_HKATA || WcIsKANA(cv->out_buf[op - 1])) {
|
||||
cv->out_buf[op - 1] = c1 >> 8;
|
||||
cv->out_buf[op] = c1 &MASK;
|
||||
cv->in_mode[op] = mode;
|
||||
cv->out_mode[op++] = 0;
|
||||
cv->out_buf[op] = c1 & MASK;
|
||||
cv->in_mode[op] = mode;
|
||||
cv->out_mode[op++] = 0;
|
||||
sj3_rkreset();
|
||||
}
|
||||
} else {
|
||||
cv->out_buf[op] = c1;
|
||||
cv->in_mode[op] = mode;
|
||||
cv->out_buf[op] = c1;
|
||||
cv->in_mode[op] = mode;
|
||||
cv->out_mode[op++] = GetMojilen(c2);
|
||||
}
|
||||
if (!BuffYes() && !(c2 & ERRCODE)) {
|
||||
if(!BuffYes() && !(c2 & ERRCODE)) {
|
||||
cv->out_buf[op] = '\0';
|
||||
master_out(cv->out_buf, op);
|
||||
sj3_rkreset();
|
||||
op = 0;
|
||||
}
|
||||
}
|
||||
cv->out_buf[op] = '\0';
|
||||
cv->out_buf[op] = '\0';
|
||||
cv->Halpha[cv->ha_point] = '\0';
|
||||
if (is_bs(c) && op <= 0 && os_point <= 0) {
|
||||
if(is_bs(c) && op <= 0 && os_point <= 0) {
|
||||
ResetHenkan();
|
||||
if (BuffYes()) {
|
||||
if(BuffYes()) {
|
||||
SetCflag();
|
||||
buffers_clear();
|
||||
}
|
||||
}
|
||||
else if ((len = op - cv->out_point) > 0) {
|
||||
} else if((len = op - cv->out_point) > 0) {
|
||||
p = &cv->out_buf[cv->out_point];
|
||||
if (BuffYes() && IsCflag ()) {
|
||||
Csave ();
|
||||
ClearCflag ();
|
||||
if(BuffYes() && IsCflag()) {
|
||||
Csave();
|
||||
ClearCflag();
|
||||
}
|
||||
if (mode & MODE_ZEN) {
|
||||
if (!BuffYes() && len == 2)
|
||||
if(mode & MODE_ZEN) {
|
||||
if(!BuffYes() && len == 2)
|
||||
Csave();
|
||||
vprintU(p, 1);
|
||||
} else {
|
||||
if (!BuffYes() && len == 1)
|
||||
if(!BuffYes() && len == 1)
|
||||
Csave();
|
||||
vprintU(p, 0);
|
||||
}
|
||||
}
|
||||
cv->out_point = op;
|
||||
return(i);
|
||||
return (i);
|
||||
}
|
||||
|
||||
move_cur(kval)
|
||||
int kval;
|
||||
move_cur(kval) int kval;
|
||||
{
|
||||
Conversion *cv;
|
||||
int i;
|
||||
Conversion* cv;
|
||||
int i;
|
||||
|
||||
cv = GetConversion();
|
||||
switch(kval) {
|
||||
|
|
@ -222,112 +215,110 @@ int kval;
|
|||
break;
|
||||
case KEY_END:
|
||||
cv->out_point = cv->out_epoint;
|
||||
cv->ha_point = cv->ha_epoint;
|
||||
cv->ha_point = cv->ha_epoint;
|
||||
break;
|
||||
case KEY_LEFT:
|
||||
if ((i = cv->out_point) > 0) {
|
||||
if((i = cv->out_point) > 0) {
|
||||
i--;
|
||||
if (i > 0 && (WcIsZENKAKU(cv->out_buf[i])))
|
||||
if(i > 0 && (WcIsZENKAKU(cv->out_buf[i])))
|
||||
i--;
|
||||
cv->out_point = i;
|
||||
}
|
||||
break;
|
||||
case KEY_RIGHT:
|
||||
if ((i = cv->out_point) < cv->out_epoint) {
|
||||
if((i = cv->out_point) < cv->out_epoint) {
|
||||
i++;
|
||||
if (i < cv->out_epoint && (WcIsZENKAKU(cv->out_buf[i])))
|
||||
if(i < cv->out_epoint && (WcIsZENKAKU(cv->out_buf[i])))
|
||||
i++;
|
||||
cv->out_point = i;
|
||||
if (cv->out_point >= cv->out_epoint)
|
||||
if(cv->out_point >= cv->out_epoint)
|
||||
cv->ha_point = cv->ha_epoint;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (cv->out_point != cv->Vlen) {
|
||||
if(cv->out_point != cv->Vlen) {
|
||||
Cgoto(cv->out_point);
|
||||
if (cv->out_point == cv->out_epoint) {
|
||||
if(cv->out_point == cv->out_epoint) {
|
||||
os_point = 0;
|
||||
hs_point = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addten(pos, c)
|
||||
unsigned short pos, c;
|
||||
addten(pos, c) unsigned short pos, c;
|
||||
{
|
||||
unsigned short prefix;
|
||||
Conversion *cv;
|
||||
Conversion* cv;
|
||||
|
||||
cv = GetConversion();
|
||||
cv = GetConversion();
|
||||
prefix = cv->out_buf[pos];
|
||||
return(sj_addten(prefix, c));
|
||||
return (sj_addten(prefix, c));
|
||||
}
|
||||
|
||||
getipos(pos)
|
||||
unsigned short pos;
|
||||
getipos(pos) unsigned short pos;
|
||||
{
|
||||
Conversion *cv;
|
||||
Conversion* cv;
|
||||
|
||||
cv = GetConversion();
|
||||
return(getipos2(cv->out_mode, pos));
|
||||
return (getipos2(cv->out_mode, pos));
|
||||
}
|
||||
|
||||
getipos2(omode, pos)
|
||||
unsigned short *omode;
|
||||
getipos2(omode, pos) unsigned short* omode;
|
||||
unsigned short pos;
|
||||
{
|
||||
unsigned short ipos;
|
||||
int i;
|
||||
int i;
|
||||
|
||||
ipos = 0;
|
||||
for (i = 0; i < (unsigned int)pos; i++) {
|
||||
for(i = 0; i < (unsigned int)pos; i++) {
|
||||
ipos += omode[i] & OMODE_MASK;
|
||||
}
|
||||
return(ipos);
|
||||
return (ipos);
|
||||
}
|
||||
|
||||
sj_rkconv(s1, s2, len)
|
||||
wchar16_t *s1, *s2;
|
||||
wchar16_t* s1,
|
||||
*s2;
|
||||
int len;
|
||||
{
|
||||
int i, rlen;
|
||||
unsigned int *kp;
|
||||
int res, klen;
|
||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||
unsigned int kstr[MAXLLEN];
|
||||
int i, rlen;
|
||||
unsigned int* kp;
|
||||
int res, klen;
|
||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||
unsigned int kstr[MAXLLEN];
|
||||
|
||||
sj3_rkebell(0);
|
||||
klen = 0;
|
||||
res = 0;
|
||||
while (len > 0) {
|
||||
if (len + res > SHORTBUFFSIZE) {
|
||||
res = 0;
|
||||
while(len > 0) {
|
||||
if(len + res > SHORTBUFFSIZE) {
|
||||
i = SHORTBUFFSIZE - res;
|
||||
len -= i;
|
||||
} else {
|
||||
i = len;
|
||||
i = len;
|
||||
len = 0;
|
||||
}
|
||||
Strncpy(&roma[res], s2, i);
|
||||
s2 += i;
|
||||
roma[res + i] = '\0';
|
||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||
res = wslen(roma);
|
||||
if (rlen > 0) {
|
||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||
res = wslen(roma);
|
||||
if(rlen > 0) {
|
||||
kp = kstr;
|
||||
while (*kp != 0) {
|
||||
*s1++ = (wchar16_t) *kp++;
|
||||
while(*kp != 0) {
|
||||
*s1++ = (wchar16_t)*kp++;
|
||||
klen++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (res > 0) {
|
||||
roma[res] = 0x0a;
|
||||
if(res > 0) {
|
||||
roma[res] = 0x0a;
|
||||
roma[res + 1] = '\0';
|
||||
rlen = sj3_rkconv2(roma, kstr, res);
|
||||
if (rlen > 0) {
|
||||
rlen = sj3_rkconv2(roma, kstr, res);
|
||||
if(rlen > 0) {
|
||||
kp = kstr;
|
||||
while ((*kp & RKMASK) != 0x0a && *kp != 0) {
|
||||
*s1++ = (wchar16_t) *kp++;
|
||||
while((*kp & RKMASK) != 0x0a && *kp != 0) {
|
||||
*s1++ = (wchar16_t)*kp++;
|
||||
klen++;
|
||||
}
|
||||
} else {
|
||||
|
|
@ -339,108 +330,109 @@ int len;
|
|||
}
|
||||
*s1 = '\0';
|
||||
sj3_rkebell(rkerrbell);
|
||||
return(klen);
|
||||
return (klen);
|
||||
}
|
||||
|
||||
sj_rkconv2(s1, s2, omode, len)
|
||||
wchar16_t *s1, *s2;
|
||||
unsigned short *omode;
|
||||
int len;
|
||||
wchar16_t* s1,
|
||||
*s2;
|
||||
unsigned short* omode;
|
||||
int len;
|
||||
{
|
||||
int i, rlen;
|
||||
unsigned int *kp;
|
||||
int res, klen, mlen;
|
||||
int i, rlen;
|
||||
unsigned int* kp;
|
||||
int res, klen, mlen;
|
||||
unsigned short cc, c, prefix;
|
||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||
unsigned int kstr[BUFFLENGTH];
|
||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||
unsigned int kstr[BUFFLENGTH];
|
||||
|
||||
sj3_rkebell(0);
|
||||
klen = 0;
|
||||
res = 0;
|
||||
klen = 0;
|
||||
res = 0;
|
||||
prefix = 0;
|
||||
while (len > 0) {
|
||||
if (len + res > SHORTBUFFSIZE) {
|
||||
while(len > 0) {
|
||||
if(len + res > SHORTBUFFSIZE) {
|
||||
i = SHORTBUFFSIZE - res;
|
||||
len -= i;
|
||||
} else {
|
||||
i = len;
|
||||
i = len;
|
||||
len = 0;
|
||||
}
|
||||
Strncpy(&roma[res], s2, i);
|
||||
s2 += i;
|
||||
roma[res + i] = '\0';
|
||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||
/*
|
||||
* Remove warning.
|
||||
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
||||
*/
|
||||
res = strlen((char *)roma);
|
||||
if (rlen <= 0)
|
||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||
/*
|
||||
* Remove warning.
|
||||
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
||||
*/
|
||||
res = strlen((char*)roma);
|
||||
if(rlen <= 0)
|
||||
continue;
|
||||
kp = kstr;
|
||||
while ((c = *kp & RKMASK) != 0) {
|
||||
if (c & RKZEN) {
|
||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
||||
while((c = *kp & RKMASK) != 0) {
|
||||
if(c & RKZEN) {
|
||||
if((cc = sj_addten(prefix, c)) != 0) {
|
||||
omode -= 1;
|
||||
s1 -= 1;
|
||||
*omode += GetMojilen(*kp);
|
||||
c = cc;
|
||||
c = cc;
|
||||
prefix = 0;
|
||||
} else {
|
||||
*omode = GetMojilen(*kp);
|
||||
klen += 1;
|
||||
prefix = c;
|
||||
}
|
||||
*s1++ = (wchar16_t) c;
|
||||
*s1++ = (wchar16_t)c;
|
||||
omode++;
|
||||
kp++;
|
||||
} else {
|
||||
mlen = GetMojilen(*kp);
|
||||
*kp = sj_han2zen(c) + SetMojilen(mlen);
|
||||
*kp = sj_han2zen(c) + SetMojilen(mlen);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (res > 0) {
|
||||
roma[res] = 0x0a;
|
||||
if(res > 0) {
|
||||
roma[res] = 0x0a;
|
||||
roma[res + 1] = '\0';
|
||||
rlen = sj3_rkconv2(roma, kstr, res);
|
||||
if (rlen > 0) {
|
||||
rlen = sj3_rkconv2(roma, kstr, res);
|
||||
if(rlen > 0) {
|
||||
kp = kstr;
|
||||
while ((c = *kp & RKMASK) != 0x0a && c != 0) {
|
||||
if (*kp & RKZEN) {
|
||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
||||
while((c = *kp & RKMASK) != 0x0a && c != 0) {
|
||||
if(*kp & RKZEN) {
|
||||
if((cc = sj_addten(prefix, c)) != 0) {
|
||||
omode -= 1;
|
||||
s1 -= 1;
|
||||
*omode += GetMojilen(*kp);
|
||||
c = cc;
|
||||
c = cc;
|
||||
prefix = 0;
|
||||
} else {
|
||||
*omode = GetMojilen(*kp);
|
||||
klen += 1;
|
||||
prefix = c;
|
||||
}
|
||||
*s1++ = (wchar16_t) c;
|
||||
*s1++ = (wchar16_t)c;
|
||||
omode++;
|
||||
kp++;
|
||||
} else {
|
||||
mlen = GetMojilen(*kp);
|
||||
*kp = sj_han2zen(c) + SetMojilen(mlen);
|
||||
*kp = sj_han2zen(c) + SetMojilen(mlen);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < res; i++) {
|
||||
if (WcIsKANJI(roma[i])) {
|
||||
c = roma[i];
|
||||
for(i = 0; i < res; i++) {
|
||||
if(WcIsKANJI(roma[i])) {
|
||||
c = roma[i];
|
||||
mlen = 1;
|
||||
} else {
|
||||
c = sj_han2zen(roma[i]);
|
||||
c = sj_han2zen(roma[i]);
|
||||
mlen = 1;
|
||||
}
|
||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
||||
if((cc = sj_addten(prefix, c)) != 0) {
|
||||
s1 -= 1;
|
||||
omode -= 1;
|
||||
*omode += mlen;
|
||||
c = cc;
|
||||
c = cc;
|
||||
prefix = 0;
|
||||
} else {
|
||||
prefix = c;
|
||||
|
|
@ -454,97 +446,94 @@ int len;
|
|||
}
|
||||
*s1 = '\0';
|
||||
sj3_rkebell(rkerrbell);
|
||||
return(klen);
|
||||
return (klen);
|
||||
}
|
||||
|
||||
|
||||
|
||||
exec_romaji2(c, hbuf, kbuf, omode, cur, hcur)
|
||||
wchar16_t c, *hbuf, *kbuf;
|
||||
unsigned short *omode;
|
||||
int cur, hcur;
|
||||
wchar16_t c,
|
||||
*hbuf, *kbuf;
|
||||
unsigned short* omode;
|
||||
int cur, hcur;
|
||||
{
|
||||
unsigned short c1, cc;
|
||||
unsigned int c2;
|
||||
int i;
|
||||
int ocur, len, retv;
|
||||
unsigned int rkstr[MAXLLEN], *rkp;
|
||||
unsigned int c2;
|
||||
int i;
|
||||
int ocur, len, retv;
|
||||
unsigned int rkstr[MAXLLEN], *rkp;
|
||||
|
||||
retv = 1;
|
||||
ocur = cur;
|
||||
if (hcur >= 0 && !is_bs(c))
|
||||
if(hcur >= 0 && !is_bs(c))
|
||||
hbuf[hcur++] = c;
|
||||
sj3_rkconvc(c, rkstr);
|
||||
|
||||
|
||||
rkp = rkstr;
|
||||
while(*rkp != RKEND) {
|
||||
c1 = ((c2 = *rkp++) & RKMASK);
|
||||
if (c2 == ERRBEL) {
|
||||
if (c != 0)
|
||||
if(c2 == ERRBEL) {
|
||||
if(c != 0)
|
||||
beep();
|
||||
hcur--;
|
||||
break;
|
||||
}
|
||||
if (is_bs(c1)) {
|
||||
if (cur <= 0) {
|
||||
if(is_bs(c1)) {
|
||||
if(cur <= 0) {
|
||||
beep();
|
||||
} else {
|
||||
vbackchar(2);
|
||||
cur -= 1;
|
||||
ocur = cur;
|
||||
}
|
||||
if (hcur >= 0 && is_bs(c)) {
|
||||
for (i = cur; i > 0 ; i--){
|
||||
if (omode[i] & OMODE_MASK)
|
||||
break;
|
||||
if(hcur >= 0 && is_bs(c)) {
|
||||
for(i = cur; i > 0; i--) {
|
||||
if(omode[i] & OMODE_MASK)
|
||||
break;
|
||||
}
|
||||
hcur -= omode[i];
|
||||
while (i < cur) {
|
||||
len = sj_zentohan(&hbuf[hcur],&kbuf[i],1);
|
||||
omode[i] = len;
|
||||
hcur += len;
|
||||
i ++;
|
||||
while(i < cur) {
|
||||
len = sj_zentohan(&hbuf[hcur], &kbuf[i], 1);
|
||||
omode[i] = len;
|
||||
hcur += len;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (!WcIsZENKAKU(c1)) {
|
||||
if (hcur >= 0 && (c2 & ERRCODE) && is_bs(c))
|
||||
if(!WcIsZENKAKU(c1)) {
|
||||
if(hcur >= 0 && (c2 & ERRCODE) && is_bs(c))
|
||||
hbuf[hcur++] = c1;
|
||||
if (c1 == 0) {
|
||||
if(c1 == 0) {
|
||||
hcur--;
|
||||
break;
|
||||
} else {
|
||||
if (c2 & ERRCODE)
|
||||
if(c2 & ERRCODE)
|
||||
retv = 0;
|
||||
c1 = sj_han2zen(c1);
|
||||
}
|
||||
}
|
||||
if (cur >= 1) {
|
||||
if(cur >= 1) {
|
||||
cc = kbuf[cur - 1];
|
||||
if ((cc = sj_addten(cc, c1)) != 0){
|
||||
if((cc = sj_addten(cc, c1)) != 0) {
|
||||
c1 = cc;
|
||||
vbackchar(2);
|
||||
cur --;
|
||||
cur--;
|
||||
ocur = cur;
|
||||
if (hcur >= 0) {
|
||||
if(hcur >= 0) {
|
||||
len = omode[cur] + GetMojilen(c2);
|
||||
c2 = SetMojilen(len);
|
||||
c2 = SetMojilen(len);
|
||||
}
|
||||
}
|
||||
}
|
||||
kbuf[cur] = c1;
|
||||
if (hcur >= 0) {
|
||||
if(hcur >= 0) {
|
||||
omode[cur] = GetMojilen(c2);
|
||||
}
|
||||
cur ++;
|
||||
cur++;
|
||||
}
|
||||
kbuf[cur] = '\0';
|
||||
if (hcur >= 0)
|
||||
if(hcur >= 0)
|
||||
hbuf[hcur] = '\0';
|
||||
if (cur > ocur)
|
||||
if(cur > ocur)
|
||||
vprintU(&kbuf[ocur], 1);
|
||||
return(retv);
|
||||
return (retv);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue