summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryokota <yokota@FreeBSD.org>2000-08-27 12:36:28 +0000
committeryokota <yokota@FreeBSD.org>2000-08-27 12:36:28 +0000
commitf317a3f7e1a71a32caef15bb01a0e5253f4bf727 (patch)
tree4f87233c2ad996b61ebbfb79d863fef1508fbfd2
parent5725601caffd99e2c7509cb246a19a5dfe5302b8 (diff)
downloadFreeBSD-src-f317a3f7e1a71a32caef15bb01a0e5253f4bf727.zip
FreeBSD-src-f317a3f7e1a71a32caef15bb01a0e5253f4bf727.tar.gz
Fix ioctl MOUSE_SETMODE as defined in mouse(4).
(Do not return EINVAL when -1 is specified as a new value, as it should mean "preserve the current value.")
-rw-r--r--sys/dev/syscons/sysmouse.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/syscons/sysmouse.c b/sys/dev/syscons/sysmouse.c
index 3f13de2..d793cd1 100644
--- a/sys/dev/syscons/sysmouse.c
+++ b/sys/dev/syscons/sysmouse.c
@@ -202,9 +202,12 @@ smioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
case MOUSE_SETMODE: /* set protocol/mode */
mode = (mousemode_t *)data;
- if ((mode->level < 0) || (mode->level > 1))
+ if (mode->level == -1)
+ ; /* don't change the current setting */
+ else if ((mode->level < 0) || (mode->level > 1))
return EINVAL;
- mouse_level = mode->level;
+ else
+ mouse_level = mode->level;
return 0;
case MOUSE_GETLEVEL: /* get operation level */
OpenPOWER on IntegriCloud