summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2000-04-30 08:40:43 +0000
committernyan <nyan@FreeBSD.org>2000-04-30 08:40:43 +0000
commit31accf5f5a4dc2b7b0cc7944792034c2dc43f355 (patch)
treede1ab97cdf98291db5177ac4af49f96627f047bd
parentec3992b59d911eb56166cd9517891521dfd81ce8 (diff)
downloadFreeBSD-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.c40
-rw-r--r--sys/pc98/pc98/scterm-sck.c40
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 */
OpenPOWER on IntegriCloud