diff options
author | nyan <nyan@FreeBSD.org> | 2000-04-30 08:40:43 +0000 |
---|---|---|
committer | nyan <nyan@FreeBSD.org> | 2000-04-30 08:40:43 +0000 |
commit | 31accf5f5a4dc2b7b0cc7944792034c2dc43f355 (patch) | |
tree | de1ab97cdf98291db5177ac4af49f96627f047bd | |
parent | ec3992b59d911eb56166cd9517891521dfd81ce8 (diff) | |
download | FreeBSD-src-31accf5f5a4dc2b7b0cc7944792034c2dc43f355.zip FreeBSD-src-31accf5f5a4dc2b7b0cc7944792034c2dc43f355.tar.gz |
Fixed to support JIS7 KANJI.
Submitted by: Nobuyuki Koganemaru <kogane@koganemaru.co.jp>
-rw-r--r-- | sys/pc98/cbus/scterm-sck.c | 40 | ||||
-rw-r--r-- | sys/pc98/pc98/scterm-sck.c | 40 |
2 files changed, 80 insertions, 0 deletions
diff --git a/sys/pc98/cbus/scterm-sck.c b/sys/pc98/cbus/scterm-sck.c index bc69200..8a05e83 100644 --- a/sys/pc98/cbus/scterm-sck.c +++ b/sys/pc98/cbus/scterm-sck.c @@ -214,6 +214,46 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) i = n = 0; sc = scp->sc; if (tcp->esc == 1) { /* seen ESC */ +#ifdef KANJI + switch (tcp->kanji_type) { + case KTYPE_KANIN: /* Kanji Invoke sequence */ + switch (c) { + case 'B': + case '@': + tcp->kanji_type = KTYPE_7JIS; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + default: + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + break; + } + break; + case KTYPE_ASCIN: /* Ascii Invoke sequence */ + switch (c) { + case 'J': + case 'B': + case 'H': + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + case 'I': + tcp->kanji_type = KTYPE_JKANA; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + default: + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + break; + } + break; + default: + break; + } +#endif switch (c) { case '7': /* Save cursor position */ diff --git a/sys/pc98/pc98/scterm-sck.c b/sys/pc98/pc98/scterm-sck.c index bc69200..8a05e83 100644 --- a/sys/pc98/pc98/scterm-sck.c +++ b/sys/pc98/pc98/scterm-sck.c @@ -214,6 +214,46 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) i = n = 0; sc = scp->sc; if (tcp->esc == 1) { /* seen ESC */ +#ifdef KANJI + switch (tcp->kanji_type) { + case KTYPE_KANIN: /* Kanji Invoke sequence */ + switch (c) { + case 'B': + case '@': + tcp->kanji_type = KTYPE_7JIS; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + default: + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + break; + } + break; + case KTYPE_ASCIN: /* Ascii Invoke sequence */ + switch (c) { + case 'J': + case 'B': + case 'H': + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + case 'I': + tcp->kanji_type = KTYPE_JKANA; + tcp->esc = 0; + tcp->kanji_1st_char = 0; + return; + default: + tcp->kanji_type = KTYPE_ASCII; + tcp->esc = 0; + break; + } + break; + default: + break; + } +#endif switch (c) { case '7': /* Save cursor position */ |