xorg-x11-server/p_bug96328.diff

52 lines
1.3 KiB
Diff

--- hw/xfree86/common/xf86Configure.c.orig 2007-09-29 15:44:40.095702000 +0200
+++ hw/xfree86/common/xf86Configure.c 2007-09-29 15:50:35.625921250 +0200
@@ -267,23 +267,36 @@
/* Crude mechanism to auto-detect mouse (os dependent) */
{
- int fd;
+ int fd = -1;
+
#ifdef WSCONS_SUPPORT
- fd = open("/dev/wsmouse", 0);
- if (fd > 0) {
- DFLT_MOUSE_DEV = "/dev/wsmouse";
- DFLT_MOUSE_PROTO = "wsmouse";
- close(fd);
- } else {
- ErrorF("cannot open /dev/wsmouse\n");
+ if (fd == -1) {
+ fd = open("/dev/wsmouse", 0);
+ if (fd != -1) {
+ DFLT_MOUSE_DEV = "/dev/wsmouse";
+ DFLT_MOUSE_PROTO = "wsmouse";
+ close(fd);
+ } else {
+ ErrorF("cannot open /dev/wsmouse\n");
+ }
}
#endif
#ifndef __SCO__
- fd = open(DFLT_MOUSE_DEV, 0);
- if (fd != -1) {
- foundMouse = TRUE;
- close(fd);
+ if (fd == -1) {
+ fd = open(DFLT_MOUSE_DEV, 0);
+# ifdef linux
+ if (fd == -1) {
+ char *name = "/dev/input/mice";
+ fd = open(name, 0);
+ if (fd != -1)
+ DFLT_MOUSE_DEV = name;
+ }
+# endif
+ if (fd != -1) {
+ foundMouse = TRUE;
+ close(fd);
+ }
}
#else
foundMouse = TRUE;