Fix behaviour of keyboard under sparc64, where keycodes were off by one

(i.e., when pressing 'd' on keyboard, server would get code for 'f').

Submitted by:	marius
Approved by:	portmgr (linimon), anholt (mentor)
This commit is contained in:
Dejan Lesjak 2004-09-12 20:35:08 +00:00
parent da69dcb99d
commit 4985aab58d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=118153
6 changed files with 98 additions and 2 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= server
PORTVERSION= 6.7.0
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= x11-servers
MASTER_SITES= http://freedesktop.org/~xorg/X11R6.7.0/src/ \
${MASTER_SITE_XORG}

View File

@ -48,6 +48,7 @@ SERVER_PATCHES= ${PORTSDIR}/x11-servers/xorg-server/files/patch-Xserver-Imakefil
${PORTSDIR}/x11-servers/xorg-server/files/patch-man-Imakefile \
${PORTSDIR}/x11-servers/xorg-server/files/patch-os-Imakefile \
${PORTSDIR}/x11-servers/xorg-server/files/patch-savage-pci-id \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86Events.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86fbman.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86sym.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86drmCompat.c \

View File

@ -0,0 +1,47 @@
--- programs/Xserver/hw/xfree86/common/xf86Events.c.orig Sat Dec 6 14:24:24 2003
+++ programs/Xserver/hw/xfree86/common/xf86Events.c Tue Aug 31 00:27:37 2004
@@ -448,7 +448,7 @@
#if defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT) || defined(WSCONS_SUPPORT)
static Bool first_time = TRUE;
#endif
-#if defined(__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
static int kbdSun = -1;
#endif
/* Disable any keyboard processing while in suspend */
@@ -464,7 +464,7 @@
}
#endif
-#if defined (__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
if (kbdSun == -1) {
if ((xf86Info.xkbmodel && !strcmp(xf86Info.xkbmodel, "sun"))
|| (xf86Info.xkbrules && !strcmp(xf86Info.xkbrules, "sun")))
@@ -474,7 +474,7 @@
}
if (kbdSun)
goto special;
-#endif /* __sparc__ && __linux__ */
+#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
#ifdef __linux__
if (xf86Info.kbdCustomKeycodes) {
@@ -676,7 +676,7 @@
}
}
#endif
-#if defined (__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
special:
if (kbdSun) {
switch (scanCode) {
@@ -710,7 +710,7 @@
*/
scanCode--;
}
-#endif /* defined (__sparc__) && defined(__linux__) */
+#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
#ifdef XKB
if ((xf86Info.ddxSpecialKeys == SKWhenNeeded &&

View File

@ -7,7 +7,7 @@
PORTNAME= server
PORTVERSION= 6.7.0
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= x11-servers
MASTER_SITES= http://freedesktop.org/~xorg/X11R6.7.0/src/ \
${MASTER_SITE_XORG}

View File

@ -48,6 +48,7 @@ SERVER_PATCHES= ${PORTSDIR}/x11-servers/xorg-server/files/patch-Xserver-Imakefil
${PORTSDIR}/x11-servers/xorg-server/files/patch-man-Imakefile \
${PORTSDIR}/x11-servers/xorg-server/files/patch-os-Imakefile \
${PORTSDIR}/x11-servers/xorg-server/files/patch-savage-pci-id \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86Events.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86fbman.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86sym.c \
${PORTSDIR}/x11-servers/xorg-server/files/patch-xf86drmCompat.c \

View File

@ -0,0 +1,47 @@
--- programs/Xserver/hw/xfree86/common/xf86Events.c.orig Sat Dec 6 14:24:24 2003
+++ programs/Xserver/hw/xfree86/common/xf86Events.c Tue Aug 31 00:27:37 2004
@@ -448,7 +448,7 @@
#if defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT) || defined(WSCONS_SUPPORT)
static Bool first_time = TRUE;
#endif
-#if defined(__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
static int kbdSun = -1;
#endif
/* Disable any keyboard processing while in suspend */
@@ -464,7 +464,7 @@
}
#endif
-#if defined (__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
if (kbdSun == -1) {
if ((xf86Info.xkbmodel && !strcmp(xf86Info.xkbmodel, "sun"))
|| (xf86Info.xkbrules && !strcmp(xf86Info.xkbrules, "sun")))
@@ -474,7 +474,7 @@
}
if (kbdSun)
goto special;
-#endif /* __sparc__ && __linux__ */
+#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
#ifdef __linux__
if (xf86Info.kbdCustomKeycodes) {
@@ -676,7 +676,7 @@
}
}
#endif
-#if defined (__sparc__) && defined(__linux__)
+#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
special:
if (kbdSun) {
switch (scanCode) {
@@ -710,7 +710,7 @@
*/
scanCode--;
}
-#endif /* defined (__sparc__) && defined(__linux__) */
+#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
#ifdef XKB
if ((xf86Info.ddxSpecialKeys == SKWhenNeeded &&