From owner-ports-jp@jp.freebsd.org  Sat Mar 29 01:49:31 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id BAA20458
	Sat, 29 Mar 1997 01:49:31 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with SMTP id BAA20451
	for <ports-jp@jp.freebsd.org>; Sat, 29 Mar 1997 01:49:30 +0900 (JST)
Received: (from hosokawa@localhost) by frig.mt.cs.keio.ac.jp (8.6.12+2.4W/3.4Wbeta3) id BAA17923; Sat, 29 Mar 1997 01:49:29 +0900
Date: Sat, 29 Mar 1997 01:49:29 +0900
Message-Id: <199703281649.BAA17923@frig.mt.cs.keio.ac.jp>
To: ports-jp@jp.freebsd.org
From: hosokawa@mt.cs.keio.ac.jp (HOSOKAWA Tatsumi)
X-Mailer: mnews [version 1.20] 1996-12/08(Sun)
Reply-To: ports-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: ports-jp 807
Subject: [ports-jp 807] kon/kon2 fix for 2.2-RELEASE or later
Errors-To: owner-ports-jp@jp.freebsd.org
Sender: owner-ports-jp@jp.freebsd.org

$B$[$=$+$o(B

kon/kon2 $B$O!"(B2.2-RELEASE $B0J9_!"0J2<$N=$@5$r$7$J$$$H(B
VTY $B$N@ZBX$,$G$-$^$;$s(B (GAMMA $B$^$G$O$G$-$?(B)$B!#(B

$B$H$$$&$o$1$G!"$@$l$+(B kon $B$N(B ports $B$r=$@5$7$F2<$5$$!#(B
(2.2-RELEASE $B$H$=$l0JA0$r8+J,$1$k%^%/%m$C$F$J$s$@$C$1!)(B)

$B%Q%C%A$K$J$C$F$J$/$F$4$a$s$M!#85$N%=!<%9$H8+Hf$Y$F$M!#(B

vc.c $B$G$9!#(B

void TextMode(void)
{
    struct vt_mode vtm;

#if defined(__FreeBSD__)
    signal(SIGUSR1, SIG_IGN);
    signal(SIGUSR2, SIG_IGN);
#else   /* linux */
    signal(SIGUSR1, SIG_DFL);
    signal(SIGUSR2, SIG_DFL);
#endif
    vtm.mode = VT_AUTO;
    vtm.waitv = 0;
#if defined(__FreeBSD__)
    vtm.relsig = SIGUSR1;
    vtm.acqsig = SIGUSR2;
    vtm.frsig = SIGUSR1;
#else   /* linux */
    vtm.relsig = 0;
    vtm.acqsig = 0;
#endif
    ioctl(0, VT_SETMODE, &vtm);
#if defined(__FreeBSD__)
    ioctl(0, VT_RELDISP, 1);
#endif
    con.text_mode = TRUE;
    SetTextMode();
    ioctl(masterPty, TIOCSWINSZ, &text_win);
}

void GraphMode(void)
{
    struct winsize win;
    struct vt_mode vtm;

    con.text_mode = FALSE;
    ioctl(0, KDSETMODE, KD_GRAPHICS);
#if defined(__FreeBSD__)
    ioctl(0, VT_RELDISP, VT_ACKACQ);
#endif
    signal(SIGUSR1, LeaveVC);
    signal(SIGUSR2, EnterVC);
    vtm.mode = VT_PROCESS;
    vtm.waitv = 0;
    vtm.relsig = SIGUSR1;
    vtm.acqsig = SIGUSR2;
#if defined(__FreeBSD__)
    vtm.frsig = SIGUSR1;
#endif
    ioctl(0, VT_SETMODE, &vtm);
    vInfo.graph_mode();
    if (useHardScroll)
        vInfo.set_start_address();
    
    win.ws_row = dInfo.tymax + 1;        /* Note: con.ymax may be changed by application */
    win.ws_col = dInfo.txmax + 1;
    win.ws_xpixel = win.ws_ypixel = 0;
    ioctl(masterPty, TIOCSWINSZ, &win);
    ioctl(masterPty, TIOCCONS, NULL);
    
    llatch(flagBuff, textSize);
    textClear = TRUE;
    TextRefresh();
}
