504
533
{XtNkanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String),
505
534
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0208_0][fontMenu_fontdefault]),
506
535
XtRString, (XtPointer) NULL},
536
{XtNoldKanjiFont, XtCKanjiFont, XtRString, sizeof(String),
537
XtOffset(XtermWidget, screen._menu_font_names[F_JISC6226_0][fontMenu_fontdefault]),
538
XtRString, (XtPointer) NULL},
539
{XtNoldKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String),
540
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISC6226_0][fontMenu_fontdefault]),
541
XtRString, (XtPointer) NULL},
542
{XtNkanji90Font, XtCKanjiFont, XtRString, sizeof(String),
543
XtOffset(XtermWidget, screen._menu_font_names[F_JISX0208_1990_0][fontMenu_fontdefault]),
544
XtRString,(XtPointer) NULL},
545
{XtNkanji90BoldFont, XtCKanjiFont, XtRString, sizeof(String),
546
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0208_1990_0][fontMenu_fontdefault]),
547
XtRString, (XtPointer) NULL},
548
{XtNhojoKanjiFont, XtCKanjiFont, XtRString, sizeof(String),
549
XtOffset(XtermWidget, screen._menu_font_names[F_JISX0212_0][fontMenu_fontdefault]),
550
XtRString, (XtPointer) NULL},
551
{XtNhojoKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String),
552
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0212_0][fontMenu_fontdefault]),
553
XtRString, (XtPointer) NULL},
554
{XtNhanziFont, XtCKanjiFont, XtRString, sizeof(String),
555
XtOffset(XtermWidget, screen._menu_font_names[F_GB2312_0][fontMenu_fontdefault]),
556
XtRString, (XtPointer) NULL},
557
{XtNhanziBoldFont, XtCKanjiFont, XtRString, sizeof(String),
558
XtOffset(XtermWidget, screen._menu_bfont_names[F_GB2312_0][fontMenu_fontdefault]),
559
XtRString, (XtPointer) NULL},
560
{XtNhanglFont, XtCKanjiFont, XtRString, sizeof(String),
561
XtOffset(XtermWidget, screen._menu_font_names[F_KSC5601_0][fontMenu_fontdefault]),
562
XtRString, (XtPointer) NULL},
563
{XtNhanglBoldFont, XtCKanjiFont, XtRString, sizeof(String),
564
XtOffset(XtermWidget, screen._menu_bfont_names[F_KSC5601_0][fontMenu_fontdefault]),
565
XtRString, (XtPointer) NULL},
566
{XtNcnsOneFont, XtCKanjiFont, XtRString, sizeof(String),
567
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_1][fontMenu_fontdefault]),
568
XtRString, (XtPointer) NULL},
569
{XtNcnsOneBoldFont, XtCKanjiFont, XtRString, sizeof(String),
570
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_1][fontMenu_fontdefault]),
571
XtRString, (XtPointer) NULL},
572
{XtNcnsTwoFont, XtCKanjiFont, XtRString, sizeof(String),
573
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_2][fontMenu_fontdefault]),
574
XtRString, (XtPointer) NULL},
575
{XtNcnsTwoBoldFont, XtCKanjiFont, XtRString, sizeof(String),
576
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_2][fontMenu_fontdefault]),
577
XtRString, (XtPointer) NULL},
578
{XtNcnsThreeFont, XtCKanjiFont, XtRString, sizeof(String),
579
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_3][fontMenu_fontdefault]),
580
XtRString, (XtPointer) NULL},
581
{XtNcnsThreeBoldFont, XtCKanjiFont, XtRString, sizeof(String),
582
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_3][fontMenu_fontdefault]),
583
XtRString, (XtPointer) NULL},
584
{XtNcnsFourFont, XtCKanjiFont, XtRString, sizeof(String),
585
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_4][fontMenu_fontdefault]),
586
XtRString, (XtPointer) NULL},
587
{XtNcnsFourBoldFont, XtCKanjiFont, XtRString, sizeof(String),
588
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_4][fontMenu_fontdefault]),
589
XtRString, (XtPointer) NULL},
590
{XtNcnsFiveFont, XtCKanjiFont, XtRString, sizeof(String),
591
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_5][fontMenu_fontdefault]),
592
XtRString, (XtPointer) NULL},
593
{XtNcnsFiveBoldFont, XtCKanjiFont, XtRString, sizeof(String),
594
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_5][fontMenu_fontdefault]),
595
XtRString, (XtPointer) NULL},
596
{XtNcnsSixFont, XtCKanjiFont, XtRString, sizeof(String),
597
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_6][fontMenu_fontdefault]),
598
XtRString, (XtPointer) NULL},
599
{XtNcnsSixBoldFont, XtCKanjiFont, XtRString, sizeof(String),
600
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_6][fontMenu_fontdefault]),
601
XtRString, (XtPointer) NULL},
602
{XtNcnsSevenFont, XtCKanjiFont, XtRString, sizeof(String),
603
XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_7][fontMenu_fontdefault]),
604
XtRString, (XtPointer) NULL},
605
{XtNcnsSevenBoldFont, XtCKanjiFont, XtRString, sizeof(String),
606
XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_7][fontMenu_fontdefault]),
607
XtRString, (XtPointer) NULL},
608
{XtNextOneKanjiFont, XtCKanjiFont, XtRString, sizeof(String),
609
XtOffset(XtermWidget, screen._menu_font_names[F_JISX0213_1][fontMenu_fontdefault]),
610
XtRString, (XtPointer) NULL},
611
{XtNextOneKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String),
612
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0213_1][fontMenu_fontdefault]),
613
XtRString, (XtPointer) NULL},
614
{XtNextTwoKanjiFont, XtCKanjiFont, XtRString, sizeof(String),
615
XtOffset(XtermWidget, screen._menu_font_names[F_JISX0213_2][fontMenu_fontdefault]),
616
XtRString, (XtPointer) NULL},
617
{XtNextTwoKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String),
618
XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0213_2][fontMenu_fontdefault]),
619
XtRString, (XtPointer) NULL},
507
620
# endif /* KTERM_MBCS */
508
621
# ifdef KTERM_KANJIMODE
509
622
{XtNkanjiMode, XtCKanjiMode, XtRString, sizeof(char *),
813
926
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0201_0][fontMenu_font6]),
814
927
XtRString, (XtPointer) NULL},
815
928
# ifdef KTERM_MBCS
816
{"kanjiFont1", "KanjiFont1", XtRString, sizeof(String),
817
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font1]),
818
XtRString, (XtPointer) NULL},
819
{"kanjiFont2", "KanjiFont2", XtRString, sizeof(String),
820
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font2]),
821
XtRString, (XtPointer) NULL},
822
{"kanjiFont3", "KanjiFont3", XtRString, sizeof(String),
823
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font3]),
824
XtRString, (XtPointer) NULL},
825
{"kanjiFont4", "KanjiFont4", XtRString, sizeof(String),
826
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font4]),
827
XtRString, (XtPointer) NULL},
828
{"kanjiFont5", "KanjiFont5", XtRString, sizeof(String),
829
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font5]),
830
XtRString, (XtPointer) NULL},
831
{"kanjiFont6", "KanjiFont6", XtRString, sizeof(String),
832
XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font6]),
833
XtRString, (XtPointer) NULL},
834
{"kanjiBoldFont1", "KanjiBoldFont1", XtRString, sizeof(String),
835
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font1]),
836
XtRString, (XtPointer) NULL},
837
{"kanjiBoldFont2", "KanjiBoldFont2", XtRString, sizeof(String),
838
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font2]),
839
XtRString, (XtPointer) NULL},
840
{"kanjiBoldFont3", "KanjiBoldFont3", XtRString, sizeof(String),
841
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font3]),
842
XtRString, (XtPointer) NULL},
843
{"kanjiBoldFont4", "KanjiBoldFont4", XtRString, sizeof(String),
844
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font4]),
845
XtRString, (XtPointer) NULL},
846
{"kanjiBoldFont5", "KanjiBoldFont5", XtRString, sizeof(String),
847
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font5]),
848
XtRString, (XtPointer) NULL},
849
{"kanjiBoldFont6", "KanjiBoldFont6", XtRString, sizeof(String),
850
XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font6]),
851
XtRString, (XtPointer) NULL},
929
# include "kfontlist.c"
852
930
# endif /* KTERM_MBCS */
853
931
#else /* !KTERM */
854
932
{"font1", "Font1", XtRString, sizeof(String),
1144
1226
if (c2 <= 0x7e) c2 -= 0x1f;
1145
1227
else if (c2 <= 0x9e) c2 -= 0x20;
1146
1228
else c2 -= 0x7e, c1 += 1;
1147
/* copy to buffer */
1151
dotext(&term->screen, term->flags, GSET_KANJI, dotextbuf, dcp);
1230
if (isJISX0213_1(c1, c2)) {
1231
do_next = GSET_EXTKANJI1;
1233
} else if (isJISX0208_1990(c1, c2)) {
1234
do_next = GSET_90KANJI;
1237
/* copy to buffer */
1241
dotext(&term->screen, term->flags, GSET_KANJI, dotextbuf, dcp);
1246
dotext(&term->screen, term->flags, do_next, dotextbuf, dcp);
1254
Char dotextbuf[TEXT_BUF_SIZE];
1255
register Char c1, c2;
1256
register Char *cp = bptr;
1257
register Char *dcp = dotextbuf;
1258
register int cnt = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt;
1259
/* TEXT_BUF_SIZE must be an even number */
1261
# define SJIS3(c) (0xF0 <= c && c <= 0xFC)
1269
if (cnt == 0) { /* must be (bcnt == cp-bptr) */
1271
* Incomplete multi-byte character.
1272
* Preserve and skip its first byte.
1281
* Illegal shift-jis character. Skip it.
1288
/* SJIS to JIS code conversion */
1290
if (c2 <= 0x9e) c1 = 0x21;
1292
else if (c1 == 0xf1)
1294
else if (c1 == 0xf2)
1295
if (c2 <= 0x9e) c1 = 0x25;
1297
else if (c1 == 0xf3)
1299
else if (c1 == 0xf4)
1300
if (c2 <= 0x9e) c1 = 0x2f;
1302
else c1 = (c1 - 0xf5) * 2 + 0x6f;
1303
if (c2 <= 0x7e) c2 -= 0x1f;
1304
else if (c2 <= 0x9e) c2 -= 0x20;
1305
else c2 -= 0x7e, c1 += 1;
1307
/* copy to buffer */
1311
dotext(&term->screen, term->flags, GSET_EXTKANJI2, dotextbuf, dcp);
1318
Char dotextbuf[TEXT_BUF_SIZE];
1319
register Char c1, c2;
1320
register Char *cp = bptr;
1321
register Char *dcp = dotextbuf;
1322
register int cnt = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt;
1323
/* TEXT_BUF_SIZE must be an even number */
1326
# define EUC(c) ((0xA1 <= c && c <= 0xFE))
1344
/* check JIS X 0213 */
1345
if (isJISX0213_1(c1, c2)) {
1348
do_next = GSET_EXTKANJI1;
1350
} else if (isJISX0208_1990(c1, c2)) {
1353
do_next = GSET_90KANJI;
1359
/* copy to buffer */
1363
dotext(&term->screen, term->flags, GSET_KANJI, dotextbuf, dcp);
1374
Char dotextbuf[TEXT_BUF_SIZE];
1375
register Char c1, c2;
1376
register Char *cp = bptr;
1380
if (EUC(c1) && EUC(c2) && isJISX0213_2(c1, c2)) {
1381
doSS(GSET_EXTKANJI2);
1383
doSS(GSET_HOJOKANJI);
1155
1387
# endif /* KTERM_KANJIMODE */
1156
1388
#endif /* KTERM */