diff options
author | yokota <yokota@FreeBSD.org> | 2000-08-27 12:36:28 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 2000-08-27 12:36:28 +0000 |
commit | f317a3f7e1a71a32caef15bb01a0e5253f4bf727 (patch) | |
tree | 4f87233c2ad996b61ebbfb79d863fef1508fbfd2 /sys | |
parent | 5725601caffd99e2c7509cb246a19a5dfe5302b8 (diff) | |
download | FreeBSD-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.")
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/syscons/sysmouse.c | 7 |
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 */ |