From owner-FreeBSD-users-jp@jp.FreeBSD.org Sat Sep  1 23:43:37 2012
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id q81EhbM33999;
	Sat, 1 Sep 2012 23:43:37 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from smtp.chive.ocn.ne.jp (chive.ocn.ne.jp [60.37.40.170])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id q81EhaG33989
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sat, 1 Sep 2012 23:43:36 +0900 (JST)
	(envelope-from typer_jp@yahoo.co.jp)
Received: from pen4.private (p12205-ipngn100106matsue.shimane.ocn.ne.jp [153.130.149.205])
	by smtp.chive.ocn.ne.jp (Postfix) with SMTP id 94DFD2959
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sat,  1 Sep 2012 23:43:36 +0900 (JST)
From: "N.Katoh" <typer_jp@yahoo.co.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
In-Reply-To: <20120901082808.A4A5C2ED3@smtp.chive.ocn.ne.jp>
References: <26446.1346380666@pf2.ed.niigata-u.ac.jp>
	<20120831.191722.432845525.satosi.kimura@nifty.com>
	<86a9xbi9yv.wl%md440@luna.wak2.jp>
	<20120831.212231.465788726.satosi.kimura@nifty.com>
	<20120831160917.761A82FE8@smtp.chive.ocn.ne.jp>
	<20120901082808.A4A5C2ED3@smtp.chive.ocn.ne.jp>
X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.6; i386-portbld-freebsd8.3)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Message-Id: <20120901144336.94DFD2959@smtp.chive.ocn.ne.jp>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Sat, 1 Sep 2012 23:43:23 +0900
X-Sequence: FreeBSD-users-jp 94022
Subject: [FreeBSD-users-jp 94022] Re: xf86-input-mouse
 =?ISO-2022-JP?B?GyRCJEcbKEI=?= moused
 =?ISO-2022-JP?B?GyRCJE44IUNOGyhC?=
 =?ISO-2022-JP?B?GyRCJEs8OkdUJDkkaxsoQg==?= 
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: typer_jp@yahoo.co.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

$B$3$s$K$A$O!#2CF#$G$9!#(B
$B<+?.$J$$$G$9$,!"0l1~!"%Q%C%A:n$C$F8+$^$7$?!#(B

$B$3$l$O(B hal $B$r;H$o$:%^%&%9@_Dj$r%^%K%e%"%k$G9T$&>l9g$N!"(B
$B%G%P%$%9%U%!%$%k$N@_Dj!J(BOption "Device"$B!K$,$J$$>l9g$N!"(B
$B<+F0@_Dj$,<:GT$9$k$N$r2sHr$9$k$b$N$G$9!#(B

$B85!9$N%Q%C%A$H(B2$B=E$KEv$F$k$3$H$K$J$j$^$9$,!"(B
x11-drivers/xf86-input-mouse/files
$B$K(B patch-src-bsd_mouse.c.2 $B$H$7$FJ]B8$7$F$/$@$5$$!#(B

$B!t$G!"$3$l$I$&$7$?$iNI$$$N$G$7$g$&!)(B
$B!t(Bsend-pr$B$H$+$7$?$3$H$J$/$F(B...


$B0J2<%Q%C%AK\BN(B

--- src/bsd_mouse.c.orig	2012-09-01 21:01:35.568237536 +0900
+++ src/bsd_mouse.c	2012-09-01 21:26:39.917208187 +0900
@@ -302,17 +302,27 @@
     char cmd[128];
     FILE *f = NULL;
     unsigned int i;
+    int ret, j;
 
     if (dev)
 	sprintf(cmd, "sh -c 'fstat %s | grep -c moused' 2>/dev/null", dev);
     else
 	sprintf(cmd, "sh -c 'pgrep -nx moused' 2>/dev/null");
     if ((f = popen(cmd, "r")) != NULL) {
-	if (fscanf(f, "%u", &i) == 1 && i > 0) {
-	    pclose(f);
-	    return TRUE;
+	for (j = 3; j > 0; j--) {
+	    if ((ret = fscanf(f, "%u", &i)) == -1 && ferror(f)) {
+		if (errno == EINTR) {
+		    sleep(1);
+		    continue;
+		}
+		xf86MsgVerb(X_WARNING, 3, "MousedRunning(\"%s\"): Error fscanf: %s\n",
+		    dev, strerror(errno));
+	    }
+	    break;
 	}
 	pclose(f);
+	if (ret == 1 && i > 0)
+	    return TRUE;
     }
     return FALSE;
 }
