From owner-FreeBSD-users-jp@jp.FreeBSD.org Sun Jul 13 01:49:18 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h6CGnIK42088;
	Sun, 13 Jul 2003 01:49:18 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from magician.fool (76.106.180.203.dy.iij4u.or.jp [203.180.106.76])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id h6CGnHT42083
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sun, 13 Jul 2003 01:49:17 +0900 (JST)
	(envelope-from kiyohara@kk.iij4u.or.jp)
Received: from localhost (lance@magician.fool [192.168.1.1])
	by magician.fool (8.12.9/8.12.9) with ESMTP id h6CGmoMZ021176
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sun, 13 Jul 2003 01:48:57 +0900 (JST)
Message-Id: <20030713.014849.41630306.kiyohara@kk.iij4u.or.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
From: KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
X-Mailer: Mew version 3.2 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Sun_Jul_13_01:48:49_2003_979)--"
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Sun, 13 Jul 2003 01:48:49 +0900
X-Sequence: FreeBSD-users-jp 75379
Subject: [FreeBSD-users-jp 75379] FreeBSD/pc98
 =?ISO-2022-JP?B?GyRCJE4lXiUmJTklKyE8JT0laxsoQg==?= 
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: kiyohara@kk.iij4u.or.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030702

----Next_Part(Sun_Jul_13_01:48:49_2003_979)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B@686$G$9(B


FreeBSD(98) $B$,K\2H$K%^!<%8$5$l$?(B 5.0 $B0J9_!"%^%&%9%+!<%=%k$,I=<($5$l$J$/(B
$B$J$C$F$$$?$H;W$&$N$G$9$,!"$^$@$=$N$^$^$G$9$h$M!)(B

$B!t(B $B$9$G$K$J$*$C$F$$$?$i$4$a$s$J$5$$!#!#!#(B


$B8D?ME*ET9g>e!"%^%&%9%+!<%=%k$,I=<($5$l$J$$$H:$$k$N$G!"2?$H$+$7$F$_$^$7$?!#(B
$B$H$$$C$F$b(B sys/dev/syscons/syscons.c $B$r??;w$F(B sys/pc98/pc98/syscons.c $B$r(B
$B=$@5$7$?$@$1$G$9!#(B

$BBP>]$N%=!<%9$O(B 5.1-RELEASE $B$N$b$N$r;HMQ$7$F$$$^$9!#(B
$B0J2<$N$h$&$K$7$F%Q%C%A$rEv$F$F2<$5$$!#(B

	# cd /sys
	# patch -p0 <~/syscons.c.diff

$B$3$l$G(B kernel $B$r:n$jD>$7$F:F5/F0$5$;$l$P!"%^%&%9%+!<%=%k$,I=<($5$l$k$h$&(B
$B$K$J$C$F$$$k$O$:$G$9!#(B
$B!t(B $B$b$A$m$s(B moused $B$r5/F0$5$;$F$$$k$3$H$rA0Ds$H$7$F$$$^$9!#(B

--
kiyohara


----Next_Part(Sun_Jul_13_01:48:49_2003_979)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="syscons.c.diff"

*** pc98/pc98/syscons.c.orig	Sun Jul 13 01:22:32 2003
--- pc98/pc98/syscons.c	Sun Jul 13 01:20:20 2003
***************
*** 621,632 ****
  	}
      }
  
! #ifndef SC_NO_CUTPASTE
!     if (sc->cur_scp->status & MOUSE_VISIBLE) {
! 	sc_remove_mouse_image(sc->cur_scp);
! 	sc->cur_scp->status &= ~MOUSE_VISIBLE;
!     }
! #endif /* SC_NO_CUTPASTE */
  
      return 0;
  }
--- 621,627 ----
  	}
      }
  
!     sc->cur_scp->status |= MOUSE_HIDDEN;
  
      return 0;
  }
***************
*** 1536,1541 ****
--- 1531,1537 ----
  	if (!cold
  	    && sc_console->sc->cur_scp->smode.mode == VT_AUTO
  	    && sc_console->smode.mode == VT_AUTO) {
+ 	    sc_console->sc->cur_scp->status |= MOUSE_HIDDEN;
  	    ++debugger;		/* XXX */
  #ifdef DDB
  	    /* unlock vty switching */
***************
*** 1776,1787 ****
  
  #ifndef SC_NO_CUTPASTE
      /* remove the previous mouse pointer image if necessary */
!     if ((scp->status & (MOUSE_VISIBLE | MOUSE_MOVED))
! 	== (MOUSE_VISIBLE | MOUSE_MOVED)) {
! 	/* FIXME: I don't like this... XXX */
! 	sc_remove_mouse_image(scp);
!         if (scp->end >= scp->xsize*scp->ysize)
! 	    scp->end = scp->xsize*scp->ysize - 1;
      }
  #endif /* !SC_NO_CUTPASTE */
  
--- 1772,1790 ----
  
  #ifndef SC_NO_CUTPASTE
      /* remove the previous mouse pointer image if necessary */
!     if (scp->status & MOUSE_VISIBLE) {
! 	s = scp->mouse_pos;
! 	e = scp->mouse_pos + scp->xsize + 1;
! 	if ((scp->status & (MOUSE_MOVED | MOUSE_HIDDEN))
! 	    || and_region(&s, &e, scp->start, scp->end)
! 	    || ((scp->status & CURSOR_ENABLED) && 
! 		(scp->cursor_pos != scp->cursor_oldpos) &&
! 		(and_region(&s, &e, scp->cursor_pos, scp->cursor_pos)
! 		 || and_region(&s, &e, scp->cursor_oldpos, scp->cursor_oldpos)))) {
! 	    sc_remove_mouse_image(scp);
! 	    if (scp->end >= scp->xsize*scp->ysize)
! 		scp->end = scp->xsize*scp->ysize - 1;
! 	}
      }
  #endif /* !SC_NO_CUTPASTE */
  
***************
*** 1866,1888 ****
  
  #ifndef SC_NO_CUTPASTE
      /* update "pseudo" mouse pointer image */
!     if (scp->status & MOUSE_VISIBLE) {
!         /* did mouse move since last time ? */
!         if (scp->status & MOUSE_MOVED) {
!             /* the previous pointer image has been removed, see above */
              scp->status &= ~MOUSE_MOVED;
              sc_draw_mouse_image(scp);
-         } else {
-             /* mouse didn't move, has it been overwritten ? */
-             if (scp->mouse_pos + scp->xsize + 1 >= scp->start &&
-                 scp->mouse_pos <= scp->end) {
-                 sc_draw_mouse_image(scp);
-             } else if (scp->cursor_pos == scp->mouse_pos ||
-             	scp->cursor_pos == scp->mouse_pos + 1 ||
-             	scp->cursor_pos == scp->mouse_pos + scp->xsize ||
-             	scp->cursor_pos == scp->mouse_pos + scp->xsize + 1) {
-                 sc_draw_mouse_image(scp);
- 	    }
          }
      }
  #endif /* SC_NO_CUTPASTE */
--- 1869,1878 ----
  
  #ifndef SC_NO_CUTPASTE
      /* update "pseudo" mouse pointer image */
!     if (scp->sc->flags & SC_MOUSE_ENABLED) {
!         if (!(scp->status & (MOUSE_VISIBLE | MOUSE_HIDDEN))) {
              scp->status &= ~MOUSE_MOVED;
              sc_draw_mouse_image(scp);
          }
      }
  #endif /* SC_NO_CUTPASTE */
***************
*** 2468,2473 ****
--- 2458,2464 ----
      else
  	sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, scp->xsize, scp->ysize,
  		    (void *)sc->adp->va_window, FALSE);
+     scp->status |= MOUSE_HIDDEN;
      sc_move_cursor(scp, scp->xpos, scp->ypos);
      if (!ISGRAPHSC(scp))
  	sc_set_cursor_image(scp);
***************
*** 2909,2915 ****
  	    return error;
  #endif
      }
!     scp->status &= ~MOUSE_VISIBLE;
      sc_remove_cutmarking(scp);
      return 0;
  }
--- 2900,2907 ----
  	    return error;
  #endif
      }
!     scp->status |= MOUSE_HIDDEN;
!     sc_remove_mouse_image(scp);
      sc_remove_cutmarking(scp);
      return 0;
  }
***************
*** 3037,3043 ****
      scp->bell_pitch = bios_value.bell_pitch;
      scp->bell_duration = BELL_DURATION;
      scp->status |= (bios_value.shift_state & NLKED);
!     scp->status |= CURSOR_ENABLED;
      scp->pid = 0;
      scp->proc = NULL;
      scp->smode.mode = VT_AUTO;
--- 3029,3035 ----
      scp->bell_pitch = bios_value.bell_pitch;
      scp->bell_duration = BELL_DURATION;
      scp->status |= (bios_value.shift_state & NLKED);
!     scp->status |= CURSOR_ENABLED | MOUSE_HIDDEN;
      scp->pid = 0;
      scp->proc = NULL;
      scp->smode.mode = VT_AUTO;
***************
*** 3542,3555 ****
      struct tty *tp;
      u_char *rmap;
  
!     if (scp->status & MOUSE_VISIBLE) {
! 	tp = VIRTUAL_TTY(scp->sc, scp->sc->cur_scp->index);
! 	if (!ISTTYOPEN(tp))
! 	    return;
! 	rmap = scp->sc->scr_rmap;
! 	for (; count > 0; --count)
! 	    (*linesw[tp->t_line].l_rint)(rmap[*p++], tp);
!     }
  }
  
  void
--- 3534,3545 ----
      struct tty *tp;
      u_char *rmap;
  
!     tp = VIRTUAL_TTY(scp->sc, scp->sc->cur_scp->index);
!     if (!ISTTYOPEN(tp))
! 	return;
!     rmap = scp->sc->scr_rmap;
!     for (; count > 0; --count)
! 	(*linesw[tp->t_line].l_rint)(rmap[*p++], tp);
  }
  
  void

----Next_Part(Sun_Jul_13_01:48:49_2003_979)----
