diff options
author | James Meyer <James.meyer@operamail.com> | 2008-10-02 03:19:12 (GMT) |
---|---|---|
committer | James Meyer <James.meyer@operamail.com> | 2008-10-02 03:19:12 (GMT) |
commit | 0e2532d4e8f4eed5e047f1db54d5c03ba849ec0a (patch) | |
tree | c0aa2c0b53c317be87eacfcb77b63f53f1f415e7 /abs/core-testing/xf86-input-keyboard/new-server.patch | |
download | linhes_pkgbuild-0e2532d4e8f4eed5e047f1db54d5c03ba849ec0a.zip linhes_pkgbuild-0e2532d4e8f4eed5e047f1db54d5c03ba849ec0a.tar.gz linhes_pkgbuild-0e2532d4e8f4eed5e047f1db54d5c03ba849ec0a.tar.bz2 |
initial import
Diffstat (limited to 'abs/core-testing/xf86-input-keyboard/new-server.patch')
-rw-r--r-- | abs/core-testing/xf86-input-keyboard/new-server.patch | 5087 |
1 files changed, 5087 insertions, 0 deletions
diff --git a/abs/core-testing/xf86-input-keyboard/new-server.patch b/abs/core-testing/xf86-input-keyboard/new-server.patch new file mode 100644 index 0000000..0d50466 --- /dev/null +++ b/abs/core-testing/xf86-input-keyboard/new-server.patch @@ -0,0 +1,5087 @@ +diff -ruN xf86-input-keyboard-1.2.0/Makefile.in xf86-input-keyboard/Makefile.in +--- xf86-input-keyboard-1.2.0/Makefile.in 2006-11-01 22:19:32.000000000 +0000 ++++ xf86-input-keyboard/Makefile.in 2007-09-03 10:36:18.000000000 +0000 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.6 from Makefile.am. ++# Makefile.in generated by automake 1.10 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -33,15 +33,11 @@ + # ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-srcdir = @srcdir@ +-top_srcdir = @top_srcdir@ + VPATH = @srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ + pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ +-top_builddir = . + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +-INSTALL = @INSTALL@ + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c + install_sh_SCRIPT = $(install_sh) -c +@@ -55,17 +51,17 @@ + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ ++subdir = . + DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING ChangeLog config.guess \ + config.sub depcomp install-sh ltmain.sh missing +-subdir = . + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ +- configure.lineno configure.status.lineno ++ configure.lineno config.status.lineno + mkinstalldirs = $(install_sh) -d + CONFIG_HEADER = config.h + CONFIG_CLEAN_FILES = +@@ -73,10 +69,13 @@ + DIST_SOURCES = + RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ +- install-exec-recursive install-info-recursive \ +- install-recursive installcheck-recursive installdirs-recursive \ +- pdf-recursive ps-recursive uninstall-info-recursive \ +- uninstall-recursive ++ install-dvi-recursive install-exec-recursive \ ++ install-html-recursive install-info-recursive \ ++ install-pdf-recursive install-ps-recursive install-recursive \ ++ installcheck-recursive installdirs-recursive pdf-recursive \ ++ ps-recursive uninstall-recursive ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive + ETAGS = etags + CTAGS = ctags + DIST_SUBDIRS = $(SUBDIRS) +@@ -94,8 +93,6 @@ + ACLOCAL = @ACLOCAL@ + ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ + ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +-AMDEP_FALSE = @AMDEP_FALSE@ +-AMDEP_TRUE = @AMDEP_TRUE@ + AMTAR = @AMTAR@ + APP_MAN_DIR = @APP_MAN_DIR@ + APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +@@ -104,8 +101,6 @@ + AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ +-BSD_FALSE = @BSD_FALSE@ +-BSD_TRUE = @BSD_TRUE@ + CC = @CC@ + CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ +@@ -132,8 +127,7 @@ + FILE_MAN_DIR = @FILE_MAN_DIR@ + FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ + GREP = @GREP@ +-HURD_FALSE = @HURD_FALSE@ +-HURD_TRUE = @HURD_TRUE@ ++INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +@@ -144,16 +138,13 @@ + LIBTOOL = @LIBTOOL@ + LIB_MAN_DIR = @LIB_MAN_DIR@ + LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +-LINUX_FALSE = @LINUX_FALSE@ +-LINUX_TRUE = @LINUX_TRUE@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ +-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ + MAKEINFO = @MAKEINFO@ + MISC_MAN_DIR = @MISC_MAN_DIR@ + MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ ++MKDIR_P = @MKDIR_P@ + OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +@@ -164,23 +155,20 @@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + PKG_CONFIG = @PKG_CONFIG@ + RANLIB = @RANLIB@ +-SCO_FALSE = @SCO_FALSE@ +-SCO_TRUE = @SCO_TRUE@ ++SED = @SED@ + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ +-SOLARIS_FALSE = @SOLARIS_FALSE@ +-SOLARIS_TRUE = @SOLARIS_TRUE@ + STRIP = @STRIP@ + VERSION = @VERSION@ + XORG_CFLAGS = @XORG_CFLAGS@ + XORG_LIBS = @XORG_LIBS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ + ac_ct_CC = @ac_ct_CC@ + ac_ct_CXX = @ac_ct_CXX@ + ac_ct_F77 = @ac_ct_F77@ +-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -192,6 +180,7 @@ + build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ ++builddir = @builddir@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -220,8 +209,11 @@ + psdir = @psdir@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ + AUTOMAKE_OPTIONS = foreign + SUBDIRS = src man + all: config.h +@@ -265,7 +257,7 @@ + config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ +- $(MAKE) stamp-h1; \ ++ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + + stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status +@@ -287,7 +279,6 @@ + + distclean-libtool: + -rm -f libtool +-uninstall-info-am: + + # This directory's subdirectories are mostly independent; you can cd + # into them and run `make' without going through this Makefile. +@@ -320,8 +311,7 @@ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +-mostlyclean-recursive clean-recursive distclean-recursive \ +-maintainer-clean-recursive: ++$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ +@@ -423,23 +413,22 @@ + + distdir: $(DISTFILES) + $(am__remove_distdir) +- mkdir $(distdir) +- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ +- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ +- list='$(DISTFILES)'; for file in $$list; do \ +- case $$file in \ +- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ +- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ +- esac; \ ++ test -d $(distdir) || mkdir $(distdir) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ +- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ +- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ +- dir="/$$dir"; \ +- $(mkdir_p) "$(distdir)$$dir"; \ +- else \ +- dir=''; \ +- fi; \ + if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ +@@ -453,7 +442,7 @@ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ +- || $(mkdir_p) "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ +@@ -461,6 +450,8 @@ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ +@@ -468,7 +459,7 @@ + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ +- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ ++ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) + dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz +@@ -543,7 +534,7 @@ + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ +- sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' ++ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' + distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ +@@ -613,12 +604,20 @@ + + install-data-am: + ++install-dvi: install-dvi-recursive ++ + install-exec-am: + ++install-html: install-html-recursive ++ + install-info: install-info-recursive + + install-man: + ++install-pdf: install-pdf-recursive ++ ++install-ps: install-ps-recursive ++ + installcheck-am: + + maintainer-clean: maintainer-clean-recursive +@@ -639,24 +638,26 @@ + + ps-am: + +-uninstall-am: uninstall-info-am ++uninstall-am: + +-uninstall-info: uninstall-info-recursive ++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ ++ install-strip + +-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ +- check-am clean clean-generic clean-libtool clean-recursive \ +- ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ +- dist-shar dist-tarZ dist-zip distcheck distclean \ ++.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ ++ all all-am am--refresh check check-am clean clean-generic \ ++ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ ++ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ +- distclean-recursive distclean-tags distcleancheck distdir \ +- distuninstallcheck dvi dvi-am html html-am info info-am \ +- install install-am install-data install-data-am install-exec \ +- install-exec-am install-info install-info-am install-man \ +- install-strip installcheck installcheck-am installdirs \ +- installdirs-am maintainer-clean maintainer-clean-generic \ +- maintainer-clean-recursive mostlyclean mostlyclean-generic \ +- mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ +- tags tags-recursive uninstall uninstall-am uninstall-info-am ++ distclean-tags distcleancheck distdir distuninstallcheck dvi \ ++ dvi-am html html-am info info-am install install-am \ ++ install-data install-data-am install-dvi install-dvi-am \ ++ install-exec install-exec-am install-html install-html-am \ ++ install-info install-info-am install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs installdirs-am \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags tags-recursive uninstall uninstall-am + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. +diff -ruN xf86-input-keyboard-1.2.0/configure.ac xf86-input-keyboard/configure.ac +--- xf86-input-keyboard-1.2.0/configure.ac 2006-11-01 22:16:54.000000000 +0000 ++++ xf86-input-keyboard/configure.ac 2007-09-03 10:34:00.000000000 +0000 +@@ -22,7 +22,7 @@ + + AC_PREREQ(2.57) + AC_INIT([xf86-input-keyboard], +- 1.2.0, ++ 1.2.1, + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], + xf86-input-keyboard) + +diff -ruN xf86-input-keyboard-1.2.0/depcomp xf86-input-keyboard/depcomp +--- xf86-input-keyboard-1.2.0/depcomp 2006-11-01 22:19:31.000000000 +0000 ++++ xf86-input-keyboard/depcomp 2007-09-03 10:36:18.000000000 +0000 +@@ -1,9 +1,10 @@ + #! /bin/sh + # depcomp - compile a program generating dependencies as side-effects + +-scriptversion=2005-07-09.11 ++scriptversion=2006-10-15.18 + +-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. ++# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software ++# Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -91,7 +92,20 @@ + ## gcc 3 implements dependency tracking that does exactly what + ## we want. Yay! Note: for some reason libtool 1.4 doesn't like + ## it if -MD -MP comes after the -MF stuff. Hmm. +- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" ++## Unfortunately, FreeBSD c89 acceptance of flags depends upon ++## the command line argument order; so add the flags where they ++## appear in depend2.am. Note that the slowdown incurred here ++## affects only configure: in makefiles, %FASTDEP% shortcuts this. ++ for arg ++ do ++ case $arg in ++ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; ++ *) set fnord "$@" "$arg" ;; ++ esac ++ shift # fnord ++ shift # $arg ++ done ++ "$@" + stat=$? + if test $stat -eq 0; then : + else +@@ -276,6 +290,46 @@ + rm -f "$tmpdepfile" + ;; + ++hp2) ++ # The "hp" stanza above does not work with aCC (C++) and HP's ia64 ++ # compilers, which have integrated preprocessors. The correct option ++ # to use with these is +Maked; it writes dependencies to a file named ++ # 'foo.d', which lands next to the object file, wherever that ++ # happens to be. ++ # Much of this is similar to the tru64 case; see comments there. ++ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` ++ test "x$dir" = "x$object" && dir= ++ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` ++ if test "$libtool" = yes; then ++ tmpdepfile1=$dir$base.d ++ tmpdepfile2=$dir.libs/$base.d ++ "$@" -Wc,+Maked ++ else ++ tmpdepfile1=$dir$base.d ++ tmpdepfile2=$dir$base.d ++ "$@" +Maked ++ fi ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile1" "$tmpdepfile2" ++ exit $stat ++ fi ++ ++ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" ++ do ++ test -f "$tmpdepfile" && break ++ done ++ if test -f "$tmpdepfile"; then ++ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" ++ # Add `dependent.h:' lines. ++ sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" ++ else ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" "$tmpdepfile2" ++ ;; ++ + tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. +@@ -288,13 +342,13 @@ + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a +- # static library. This mecanism is used in libtool 1.4 series to ++ # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two +- # compilations output dependencies in in $dir.libs/$base.o.d and ++ # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is +diff -ruN xf86-input-keyboard-1.2.0/install-sh xf86-input-keyboard/install-sh +--- xf86-input-keyboard-1.2.0/install-sh 2006-11-01 22:19:31.000000000 +0000 ++++ xf86-input-keyboard/install-sh 2007-09-03 10:36:18.000000000 +0000 +@@ -1,7 +1,7 @@ + #!/bin/sh + # install - install a program, script, or datafile + +-scriptversion=2005-05-14.22 ++scriptversion=2006-10-14.15 + + # This originates from X11R5 (mit/util/scripts/install.sh), which was + # later released in X11R6 (xc/config/util/install.sh) with the +@@ -39,15 +39,24 @@ + # when there is no Makefile. + # + # This script is compatible with the BSD install script, but was written +-# from scratch. It can only install one file at a time, a restriction +-# shared with many OS's install programs. ++# from scratch. ++ ++nl=' ++' ++IFS=" "" $nl" + + # set DOITPROG to echo to test this script + + # Don't use :- since 4.3BSD and earlier shells don't like it. + doit="${DOITPROG-}" ++if test -z "$doit"; then ++ doit_exec=exec ++else ++ doit_exec=$doit ++fi + +-# put in absolute paths if you don't have them in your path; or use env. vars. ++# Put in absolute file names if you don't have them in your path; ++# or use environment vars. + + mvprog="${MVPROG-mv}" + cpprog="${CPPROG-cp}" +@@ -58,7 +67,13 @@ + rmprog="${RMPROG-rm}" + mkdirprog="${MKDIRPROG-mkdir}" + +-chmodcmd="$chmodprog 0755" ++posix_glob= ++posix_mkdir= ++ ++# Desired mode of installed file. ++mode=0755 ++ ++chmodcmd=$chmodprog + chowncmd= + chgrpcmd= + stripcmd= +@@ -95,7 +110,7 @@ + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + " + +-while test -n "$1"; do ++while test $# -ne 0; do + case $1 in + -c) shift + continue;; +@@ -111,9 +126,15 @@ + + --help) echo "$usage"; exit $?;; + +- -m) chmodcmd="$chmodprog $2" ++ -m) mode=$2 + shift + shift ++ case $mode in ++ *' '* | *' '* | *' ++'* | *'*'* | *'?'* | *'['*) ++ echo "$0: invalid mode: $mode" >&2 ++ exit 1;; ++ esac + continue;; + + -o) chowncmd="$chownprog $2" +@@ -136,25 +157,33 @@ + + --version) echo "$0 $scriptversion"; exit $?;; + +- *) # When -d is used, all remaining arguments are directories to create. +- # When -t is used, the destination is already specified. +- test -n "$dir_arg$dstarg" && break +- # Otherwise, the last argument is the destination. Remove it from $@. +- for arg +- do +- if test -n "$dstarg"; then +- # $@ is not empty: it contains at least $arg. +- set fnord "$@" "$dstarg" +- shift # fnord +- fi +- shift # arg +- dstarg=$arg +- done ++ --) shift + break;; ++ ++ -*) echo "$0: invalid option: $1" >&2 ++ exit 1;; ++ ++ *) break;; + esac + done + +-if test -z "$1"; then ++if test $# -ne 0 && test -z "$dir_arg$dstarg"; then ++ # When -d is used, all remaining arguments are directories to create. ++ # When -t is used, the destination is already specified. ++ # Otherwise, the last argument is the destination. Remove it from $@. ++ for arg ++ do ++ if test -n "$dstarg"; then ++ # $@ is not empty: it contains at least $arg. ++ set fnord "$@" "$dstarg" ++ shift # fnord ++ fi ++ shift # arg ++ dstarg=$arg ++ done ++fi ++ ++if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 +@@ -164,6 +193,33 @@ + exit 0 + fi + ++if test -z "$dir_arg"; then ++ trap '(exit $?); exit' 1 2 13 15 ++ ++ # Set umask so as not to create temps with too-generous modes. ++ # However, 'strip' requires both read and write access to temps. ++ case $mode in ++ # Optimize common cases. ++ *644) cp_umask=133;; ++ *755) cp_umask=22;; ++ ++ *[0-7]) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw='% 200' ++ fi ++ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; ++ *) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw=,u+rw ++ fi ++ cp_umask=$mode$u_plus_rw;; ++ esac ++fi ++ + for src + do + # Protect names starting with `-'. +@@ -173,15 +229,11 @@ + + if test -n "$dir_arg"; then + dst=$src +- src= +- +- if test -d "$dst"; then +- mkdircmd=: +- chmodcmd= +- else +- mkdircmd=$mkdirprog +- fi ++ dstdir=$dst ++ test -d "$dstdir" ++ dstdir_status=$? + else ++ + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. +@@ -208,53 +260,188 @@ + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi +- dst=$dst/`basename "$src"` ++ dstdir=$dst ++ dst=$dstdir/`basename "$src"` ++ dstdir_status=0 ++ else ++ # Prefer dirname, but fall back on a substitute if dirname fails. ++ dstdir=` ++ (dirname "$dst") 2>/dev/null || ++ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$dst" : 'X\(//\)[^/]' \| \ ++ X"$dst" : 'X\(//\)$' \| \ ++ X"$dst" : 'X\(/\)' \| . 2>/dev/null || ++ echo X"$dst" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q' ++ ` ++ ++ test -d "$dstdir" ++ dstdir_status=$? + fi + fi + +- # This sed command emulates the dirname command. +- dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` +- +- # Make sure that the destination directory exists. ++ obsolete_mkdir_used=false + +- # Skip lots of stat calls in the usual case. +- if test ! -d "$dstdir"; then +- defaultIFS=' +- ' +- IFS="${IFS-$defaultIFS}" +- +- oIFS=$IFS +- # Some sh's can't handle IFS=/ for some reason. +- IFS='%' +- set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` +- shift +- IFS=$oIFS ++ if test $dstdir_status != 0; then ++ case $posix_mkdir in ++ '') ++ # Create intermediate dirs using mode 755 as modified by the umask. ++ # This is like FreeBSD 'install' as of 1997-10-28. ++ umask=`umask` ++ case $stripcmd.$umask in ++ # Optimize common cases. ++ *[2367][2367]) mkdir_umask=$umask;; ++ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; ++ ++ *[0-7]) ++ mkdir_umask=`expr $umask + 22 \ ++ - $umask % 100 % 40 + $umask % 20 \ ++ - $umask % 10 % 4 + $umask % 2 ++ `;; ++ *) mkdir_umask=$umask,go-w;; ++ esac ++ ++ # With -d, create the new directory with the user-specified mode. ++ # Otherwise, rely on $mkdir_umask. ++ if test -n "$dir_arg"; then ++ mkdir_mode=-m$mode ++ else ++ mkdir_mode= ++ fi ++ ++ posix_mkdir=false ++ case $umask in ++ *[123567][0-7][0-7]) ++ # POSIX mkdir -p sets u+wx bits regardless of umask, which ++ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ++ ;; ++ *) ++ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ ++ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 ++ ++ if (umask $mkdir_umask && ++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 ++ then ++ if test -z "$dir_arg" || { ++ # Check for POSIX incompatibilities with -m. ++ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or ++ # other-writeable bit of parent directory when it shouldn't. ++ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ++ ls_ld_tmpdir=`ls -ld "$tmpdir"` ++ case $ls_ld_tmpdir in ++ d????-?r-*) different_mode=700;; ++ d????-?--*) different_mode=755;; ++ *) false;; ++ esac && ++ $mkdirprog -m$different_mode -p -- "$tmpdir" && { ++ ls_ld_tmpdir_1=`ls -ld "$tmpdir"` ++ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" ++ } ++ } ++ then posix_mkdir=: ++ fi ++ rmdir "$tmpdir/d" "$tmpdir" ++ else ++ # Remove any dirs left behind by ancient mkdir implementations. ++ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null ++ fi ++ trap '' 0;; ++ esac;; ++ esac + +- pathcomp= ++ if ++ $posix_mkdir && ( ++ umask $mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ++ ) ++ then : ++ else + +- while test $# -ne 0 ; do +- pathcomp=$pathcomp$1 ++ # The umask is ridiculous, or mkdir does not conform to POSIX, ++ # or it failed possibly due to a race condition. Create the ++ # directory the slow way, step by step, checking for races as we go. ++ ++ case $dstdir in ++ /*) prefix=/ ;; ++ -*) prefix=./ ;; ++ *) prefix= ;; ++ esac ++ ++ case $posix_glob in ++ '') ++ if (set -f) 2>/dev/null; then ++ posix_glob=true ++ else ++ posix_glob=false ++ fi ;; ++ esac ++ ++ oIFS=$IFS ++ IFS=/ ++ $posix_glob && set -f ++ set fnord $dstdir + shift +- if test ! -d "$pathcomp"; then +- $mkdirprog "$pathcomp" +- # mkdir can fail with a `File exist' error in case several +- # install-sh are creating the directory concurrently. This +- # is OK. +- test -d "$pathcomp" || exit ++ $posix_glob && set +f ++ IFS=$oIFS ++ ++ prefixes= ++ ++ for d ++ do ++ test -z "$d" && continue ++ ++ prefix=$prefix$d ++ if test -d "$prefix"; then ++ prefixes= ++ else ++ if $posix_mkdir; then ++ (umask=$mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break ++ # Don't fail if two instances are running concurrently. ++ test -d "$prefix" || exit 1 ++ else ++ case $prefix in ++ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; ++ *) qprefix=$prefix;; ++ esac ++ prefixes="$prefixes '$qprefix'" ++ fi ++ fi ++ prefix=$prefix/ ++ done ++ ++ if test -n "$prefixes"; then ++ # Don't fail if two instances are running concurrently. ++ (umask $mkdir_umask && ++ eval "\$doit_exec \$mkdirprog $prefixes") || ++ test -d "$dstdir" || exit 1 ++ obsolete_mkdir_used=true + fi +- pathcomp=$pathcomp/ +- done ++ fi + fi + + if test -n "$dir_arg"; then +- $doit $mkdircmd "$dst" \ +- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ +- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ +- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ +- && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } +- ++ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && ++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && ++ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || ++ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else +- dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ +@@ -262,10 +449,9 @@ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 +- trap '(exit $?); exit' 1 2 13 15 + + # Copy the file name to the temp name. +- $doit $cpprog "$src" "$dsttmp" && ++ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # +@@ -276,10 +462,10 @@ + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ +- && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && ++ && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # Now rename the file to the real destination. +- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ ++ { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not +@@ -291,11 +477,12 @@ + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { +- if test -f "$dstdir/$dstfile"; then +- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ +- || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ ++ if test -f "$dst"; then ++ $doit $rmcmd -f "$dst" 2>/dev/null \ ++ || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ ++ && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ + || { +- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 ++ echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + else +@@ -304,16 +491,13 @@ + } && + + # Now rename the file to the real destination. +- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" ++ $doit $mvcmd "$dsttmp" "$dst" + } +- } +- fi || { (exit 1); exit 1; } +-done ++ } || exit 1 + +-# The final little trick to "correctly" pass the exit status to the exit trap. +-{ +- (exit 0); exit 0 +-} ++ trap '' 0 ++ fi ++done + + # Local variables: + # eval: (add-hook 'write-file-hooks 'time-stamp) +diff -ruN xf86-input-keyboard-1.2.0/ltmain.sh xf86-input-keyboard/ltmain.sh +--- xf86-input-keyboard-1.2.0/ltmain.sh 2006-06-19 18:36:49.000000000 +0000 ++++ xf86-input-keyboard/ltmain.sh 2007-06-26 19:45:46.000000000 +0000 +@@ -1,8 +1,8 @@ + # ltmain.sh - Provide generalized library-building support services. + # NOTE: Changing this file will not affect anything until you rerun configure. + # +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +-# Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ++# 2007 Free Software Foundation, Inc. + # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + # + # This program is free software; you can redistribute it and/or modify +@@ -43,14 +43,22 @@ + + PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION="1.5.22 Debian 1.5.22-4" +-TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" ++VERSION=1.5.24 ++TIMESTAMP=" (1.1220.2.455 2007/06/24 02:13:29)" + +-# See if we are running on zsh, and set the options which allow our +-# commands through without removal of \ escapes. +-if test -n "${ZSH_VERSION+set}" ; then ++# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + fi ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh + + # Check that we have a working $echo. + if test "X$1" = X--no-reexec; then +@@ -105,12 +113,14 @@ + # These must not be set unconditionally because not all systems understand + # e.g. LANG=C (notably SCO). + # We save the old values to restore during execute mode. +-if test "${LC_ALL+set}" = set; then +- save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL +-fi +-if test "${LANG+set}" = set; then +- save_LANG="$LANG"; LANG=C; export LANG +-fi ++for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++do ++ eval "if test \"\${$lt_var+set}\" = set; then ++ save_$lt_var=\$$lt_var ++ $lt_var=C ++ export $lt_var ++ fi" ++done + + # Make sure IFS has a sensible default + lt_nl=' +@@ -136,6 +146,8 @@ + preserve_args= + lo2o="s/\\.lo\$/.${objext}/" + o2lo="s/\\.${objext}\$/.lo/" ++extracted_archives= ++extracted_serial=0 + + ##################################### + # Shell function definitions: +@@ -196,7 +208,13 @@ + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ +- $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` ++ $SED -n -e '1,100{ ++ / I /{ ++ s,.*,import, ++ p ++ q ++ } ++ }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; +@@ -327,7 +345,17 @@ + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` +- my_xdir="$my_gentop/$my_xlib" ++ my_xlib_u=$my_xlib ++ while :; do ++ case " $extracted_archives " in ++ *" $my_xlib_u "*) ++ extracted_serial=`expr $extracted_serial + 1` ++ my_xlib_u=lt$extracted_serial-$my_xlib ;; ++ *) break ;; ++ esac ++ done ++ extracted_archives="$extracted_archives $my_xlib_u" ++ my_xdir="$my_gentop/$my_xlib_u" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" +@@ -454,11 +482,12 @@ + ;; + + --version) +- $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" +- $echo +- $echo "Copyright (C) 2005 Free Software Foundation, Inc." +- $echo "This is free software; see the source for copying conditions. There is NO" +- $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ echo "\ ++$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP ++ ++Copyright (C) 2007 Free Software Foundation, Inc. ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + +@@ -755,9 +784,10 @@ + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; +- *.f90) xform=f90 ;; ++ *.[fF][09]?) xform=[fF][09]. ;; + *.for) xform=for ;; + *.java) xform=java ;; ++ *.obj) xform=obj ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` +@@ -1138,8 +1168,9 @@ + for arg + do + case $arg in +- -all-static | -static) +- if test "X$arg" = "X-all-static"; then ++ -all-static | -static | -static-libtool-libs) ++ case $arg in ++ -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 + fi +@@ -1147,12 +1178,20 @@ + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes +- else ++ ;; ++ -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built +- fi ++ ;; ++ -static-libtool-libs) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ esac + build_libtool_libs=no + build_old_libs=yes + break +@@ -1600,7 +1639,7 @@ + continue + ;; + +- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" +@@ -1620,10 +1659,11 @@ + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC +- # -pg pass through profiling flag for GCC ++ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC ++ # -F/path gives path to uninstalled frameworks, gcc on darwin + # @file GCC response files +- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ +- -t[45]*|-txscale*|@*) ++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. +@@ -1651,9 +1691,9 @@ + + -no-install) + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) + # The PATH hackery in wrapper scripts is required on Windows +- # in order for the loader to find any dlls it needs. ++ # and Darwin in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no +@@ -1712,7 +1752,7 @@ + continue + ;; + +- -static) ++ -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects +@@ -2082,10 +2122,7 @@ + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; +- link) +- libs="$deplibs %DEPLIBS%" +- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" +- ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then +@@ -2097,7 +2134,7 @@ + lib= + found=no + case $deplib in +- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" +@@ -2493,7 +2530,9 @@ + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && +- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ { { test "$prefer_static_libs" = no || ++ test "$prefer_static_libs,$installed" = "built,yes"; } || ++ test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. +@@ -3189,7 +3228,7 @@ + # which has an extra 1 added just for fun + # + case $version_type in +- darwin|linux|osf|windows) ++ darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" +@@ -3200,14 +3239,10 @@ + age="0" + ;; + irix|nonstopux) +- current=`expr $number_major + $number_minor - 1` ++ current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_minor" +- ;; +- *) +- $echo "$modename: unknown library version type \`$version_type'" 1>&2 +- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit $EXIT_FAILURE ++ lt_irix_increment=no + ;; + esac + ;; +@@ -3266,7 +3301,8 @@ + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` +- verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ++ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) +@@ -3280,8 +3316,11 @@ + ;; + + irix | nonstopux) +- major=`expr $current - $age + 1` +- ++ if test "X$lt_irix_increment" = "Xno"; then ++ major=`expr $current - $age` ++ else ++ major=`expr $current - $age + 1` ++ fi + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; +@@ -3418,11 +3457,11 @@ + fi + + # Eliminate all temporary directories. +- for path in $notinst_path; do +- lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` +- deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` +- dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` +- done ++ #for path in $notinst_path; do ++ # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` ++ # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` ++ # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` ++ #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. +@@ -3523,13 +3562,12 @@ + int main() { return 0; } + EOF + $rm conftest +- $LTCC $LTCFLAGS -o conftest conftest.c $deplibs +- if test "$?" -eq 0 ; then ++ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + name=`expr $i : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" && test "$name" -ne "0"; then ++ if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +@@ -3568,9 +3606,7 @@ + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then + $rm conftest +- $LTCC $LTCFLAGS -o conftest conftest.c $i +- # Did it work? +- if test "$?" -eq 0 ; then ++ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in +@@ -3602,7 +3638,7 @@ + droppeddeps=yes + $echo + $echo "*** Warning! Library $i is needed by this library but I was not able to" +- $echo "*** make it link in! You will probably need to install it or some" ++ $echo "*** make it link in! You will probably need to install it or some" + $echo "*** library that it depends on before this library will be fully" + $echo "*** functional. Installing it before continuing would be even better." + fi +@@ -3888,7 +3924,10 @@ + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then +- eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ++ case $archive_cmds in ++ *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; ++ *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; ++ esac + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi +@@ -4247,12 +4286,14 @@ + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of +- # -Wl from whole_archive_flag_spec ++ # -Wl from whole_archive_flag_spec and hope we can get by with ++ # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then +- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" ++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ++ reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" +@@ -4700,16 +4741,16 @@ + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then +- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else +- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) +- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac + ;; +@@ -4724,13 +4765,13 @@ + # really was required. + + # Nullify the symbol file. +- compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + fi + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. +- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. +@@ -4817,7 +4858,7 @@ + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then +- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` + else + # fast_install is set to needless + relink_command= +@@ -4854,7 +4895,7 @@ + fi + done + relink_command="(cd `pwd`; $relink_command)" +- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + fi + + # Quote $echo for shipping. +@@ -5261,6 +5302,20 @@ + Xsed='${SED} -e 1s/^X//' + sed_quote_subst='$sed_quote_subst' + ++# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). ++if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '\${1+\"\$@\"}'='\"\$@\"' ++ setopt NO_GLOB_SUBST ++else ++ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac ++fi ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh ++ + # The HP-UX ksh and POSIX shell print the target directory to stdout + # if CDPATH is set. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +@@ -5403,7 +5458,7 @@ + ;; + esac + $echo >> $output "\ +- \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ++ \$echo \"\$0: cannot exec \$program \$*\" + exit $EXIT_FAILURE + fi + else +@@ -5589,7 +5644,7 @@ + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" +- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi +@@ -5934,9 +5989,9 @@ + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` + else +- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 +@@ -6145,7 +6200,7 @@ + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. +- relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` + + $show "$relink_command" + if $run eval "$relink_command"; then : +@@ -6356,8 +6411,10 @@ + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else +- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 +- exit $EXIT_FAILURE ++ if test ! -f "$dir/$dlname"; then ++ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ++ exit $EXIT_FAILURE ++ fi + fi + ;; + +@@ -6421,12 +6478,12 @@ + fi + + # Restore saved environment variables +- if test "${save_LC_ALL+set}" = set; then +- LC_ALL="$save_LC_ALL"; export LC_ALL +- fi +- if test "${save_LANG+set}" = set; then +- LANG="$save_LANG"; export LANG +- fi ++ for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++ do ++ eval "if test \"\${save_$lt_var+set}\" = set; then ++ $lt_var=\$save_$lt_var; export $lt_var ++ fi" ++ done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" +@@ -6783,9 +6840,9 @@ + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE +- try to export only the symbols listed in SYMFILE ++ try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX +- try to export only the symbols matching REGEX ++ try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened +@@ -6799,9 +6856,11 @@ + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries +- -static do not do any dynamic linking of libtool libraries ++ -static do not do any dynamic linking of uninstalled libtool libraries ++ -static-libtool-libs ++ do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] +- specify library version info [each variable defaults to 0] ++ specify library version info [each variable defaults to 0] + + All other options (arguments beginning with \`-') are ignored. + +diff -ruN xf86-input-keyboard-1.2.0/man/.cvsignore xf86-input-keyboard/man/.cvsignore +--- xf86-input-keyboard-1.2.0/man/.cvsignore 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/man/.cvsignore 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,2 @@ ++Makefile ++Makefile.in +diff -ruN xf86-input-keyboard-1.2.0/man/Makefile.in xf86-input-keyboard/man/Makefile.in +--- xf86-input-keyboard-1.2.0/man/Makefile.in 2006-11-01 22:19:31.000000000 +0000 ++++ xf86-input-keyboard/man/Makefile.in 2007-09-03 10:36:18.000000000 +0000 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.6 from Makefile.am. ++# Makefile.in generated by automake 1.10 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -41,15 +41,11 @@ + # from the copyright holders. + # + +-srcdir = @srcdir@ +-top_srcdir = @top_srcdir@ + VPATH = @srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ + pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ +-top_builddir = .. + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +-INSTALL = @INSTALL@ + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c + install_sh_SCRIPT = $(install_sh) -c +@@ -87,8 +83,6 @@ + ACLOCAL = @ACLOCAL@ + ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ + ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +-AMDEP_FALSE = @AMDEP_FALSE@ +-AMDEP_TRUE = @AMDEP_TRUE@ + AMTAR = @AMTAR@ + APP_MAN_DIR = @APP_MAN_DIR@ + APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +@@ -97,8 +91,6 @@ + AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ +-BSD_FALSE = @BSD_FALSE@ +-BSD_TRUE = @BSD_TRUE@ + CC = @CC@ + CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ +@@ -125,8 +117,7 @@ + FILE_MAN_DIR = @FILE_MAN_DIR@ + FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ + GREP = @GREP@ +-HURD_FALSE = @HURD_FALSE@ +-HURD_TRUE = @HURD_TRUE@ ++INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +@@ -137,16 +128,13 @@ + LIBTOOL = @LIBTOOL@ + LIB_MAN_DIR = @LIB_MAN_DIR@ + LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +-LINUX_FALSE = @LINUX_FALSE@ +-LINUX_TRUE = @LINUX_TRUE@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ +-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ + MAKEINFO = @MAKEINFO@ + MISC_MAN_DIR = @MISC_MAN_DIR@ + MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ ++MKDIR_P = @MKDIR_P@ + OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +@@ -157,23 +145,20 @@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + PKG_CONFIG = @PKG_CONFIG@ + RANLIB = @RANLIB@ +-SCO_FALSE = @SCO_FALSE@ +-SCO_TRUE = @SCO_TRUE@ ++SED = sed + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ +-SOLARIS_FALSE = @SOLARIS_FALSE@ +-SOLARIS_TRUE = @SOLARIS_TRUE@ + STRIP = @STRIP@ + VERSION = @VERSION@ + XORG_CFLAGS = @XORG_CFLAGS@ + XORG_LIBS = @XORG_LIBS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ + ac_ct_CC = @ac_ct_CC@ + ac_ct_CXX = @ac_ct_CXX@ + ac_ct_F77 = @ac_ct_F77@ +-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -185,6 +170,7 @@ + build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ ++builddir = @builddir@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -213,14 +199,16 @@ + psdir = @psdir@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ + drivermandir = $(DRIVER_MAN_DIR) + driverman_PRE = @DRIVER_NAME@.man + driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@) + EXTRA_DIST = @DRIVER_NAME@.man + CLEANFILES = $(driverman_DATA) +-SED = sed + + # Strings to replace in man pages + XORGRELSTRING = @PACKAGE_STRING@ +@@ -277,13 +265,9 @@ + + clean-libtool: + -rm -rf .libs _libs +- +-distclean-libtool: +- -rm -f libtool +-uninstall-info-am: + install-drivermanDATA: $(driverman_DATA) + @$(NORMAL_INSTALL) +- test -z "$(drivermandir)" || $(mkdir_p) "$(DESTDIR)$(drivermandir)" ++ test -z "$(drivermandir)" || $(MKDIR_P) "$(DESTDIR)$(drivermandir)" + @list='$(driverman_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ +@@ -306,22 +290,21 @@ + + + distdir: $(DISTFILES) +- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ +- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ +- list='$(DISTFILES)'; for file in $$list; do \ +- case $$file in \ +- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ +- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ +- esac; \ ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ +- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ +- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ +- dir="/$$dir"; \ +- $(mkdir_p) "$(distdir)$$dir"; \ +- else \ +- dir=''; \ +- fi; \ + if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ +@@ -337,7 +320,7 @@ + all-am: Makefile $(DATA) + installdirs: + for dir in "$(DESTDIR)$(drivermandir)"; do \ +- test -z "$$dir" || $(mkdir_p) "$$dir"; \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + install: install-am + install-exec: install-exec-am +@@ -370,7 +353,7 @@ + + distclean: distclean-am + -rm -f Makefile +-distclean-am: clean-am distclean-generic distclean-libtool ++distclean-am: clean-am distclean-generic + + dvi: dvi-am + +@@ -384,12 +367,20 @@ + + install-data-am: install-drivermanDATA + ++install-dvi: install-dvi-am ++ + install-exec-am: + ++install-html: install-html-am ++ + install-info: install-info-am + + install-man: + ++install-pdf: install-pdf-am ++ ++install-ps: install-ps-am ++ + installcheck-am: + + maintainer-clean: maintainer-clean-am +@@ -408,18 +399,21 @@ + + ps-am: + +-uninstall-am: uninstall-drivermanDATA uninstall-info-am ++uninstall-am: uninstall-drivermanDATA ++ ++.MAKE: install-am install-strip + + .PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ +- install-data install-data-am install-drivermanDATA \ +- install-exec install-exec-am install-info install-info-am \ +- install-man install-strip installcheck installcheck-am \ +- installdirs maintainer-clean maintainer-clean-generic \ +- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ +- ps ps-am uninstall uninstall-am uninstall-drivermanDATA \ +- uninstall-info-am ++ install-data install-data-am install-drivermanDATA install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am installdirs \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ uninstall uninstall-am uninstall-drivermanDATA + + + .man.$(DRIVER_MAN_SUFFIX): +diff -ruN xf86-input-keyboard-1.2.0/man/keyboard.man xf86-input-keyboard/man/keyboard.man +--- xf86-input-keyboard-1.2.0/man/keyboard.man 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/man/keyboard.man 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,108 @@ ++.\" $XdotOrg: $ ++.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.man,v 1.2 2001/01/27 18:20:57 dawes Exp $ ++.\" shorthand for double quote that works everywhere. ++.ds q \N'34' ++.TH KEYBOARD __drivermansuffix__ __vendorversion__ ++.SH NAME ++keyboard \- Keyboard input driver ++.SH SYNOPSIS ++.nf ++.B "Section \*qInputDevice\*q" ++.BI " Identifier \*q" idevname \*q ++.B " Driver \*qkeyboard\*q" ++\ \ ... ++.B EndSection ++.fi ++.SH DESCRIPTION ++.B keyboard ++is an __xservername__ input driver for keyboards. The driver supports the standard ++OS-provided keyboard interface. ++.PP ++The ++.B keyboard ++driver functions as a keyboard input device, and may be used as the ++X server's core keyboard. ++.PP ++This driver is built-in to the core X server, and multiple instances are not ++supported. A loadable driver, ++.BR kbd , ++is available, and is planned to replace the ++.B keyboard ++driver in a future release of the __xservername__ server. ++.SH CONFIGURATION DETAILS ++Please refer to __xconfigfile__(__filemansuffix__) for general configuration ++details and for options that can be used with all input drivers. This ++section only covers configuration details specific to this driver. ++.PP ++The following driver ++.B Options ++are supported: ++.TP 7 ++.BI "Option \*qProtocol\*q \*q" string \*q ++Specify the keyboard protocol. Valid protocol types include: ++.PP ++.RS 12 ++Standard, Xqueue. ++.RE ++.PP ++.RS 7 ++Not all protocols are supported on all platforms. Default: "Standard". ++.RE ++.TP 7 ++.BI "Option \*qAutoRepeat\*q \*q" "delay rate" \*q ++sets the auto repeat behaviour for the keyboard. This is not implemented ++on all platforms. ++.I delay ++is the time in milliseconds before a key starts repeating. ++.I rate ++is the number of times a key repeats per second. Default: "500 30". ++.TP 7 ++.BI "Option \*qXLeds\*q \*q" ledlist \*q ++makes the keyboard LEDs specified in ++.I ledlist ++available for client use instead of their traditional function ++(Scroll Lock, Caps Lock and Num Lock). The numbers in the list are ++in the range 1 to 3. Default: empty list. ++.TP 7 ++.BI "Option \*qXkbDisable\*q \*q" boolean \*q ++disable/enable the XKEYBOARD extension. The \-kb command line ++option overrides this config file option. Default: XKB is enabled. ++.PP ++.RS 7 ++NOTE: This option should be specified in the ++.B ServerFlags ++section rather than here. It's use here is deprecated. ++.RE ++.TP 7 ++.BI "Option \*qXkbRules\*q \*q" rules \*q ++specifies which XKB rules file to use for interpreting the ++.BR XkbModel , ++.BR XkbLayout , ++.BR XkbVariant , ++and ++.B XkbOptions ++settings. Default: "xorg" for most platforms, but "xfree98" for the ++Japanese PC-98 platforms. ++.TP 7 ++.BI "Option \*qXkbModel\*q \*q" modelname \*q ++specifies the XKB keyboard model name. Default: "pc105" for most platforms, ++but "pc98" for the Japanese PC-98 platforms. ++.TP 7 ++.BI "Option \*qXkbLayout\*q \*q" layoutname \*q ++specifies the XKB keyboard layout name. This is usually the country or ++language type of the keyboard. Default: "us" for most platforms, but ++"nec/jp" for the Japanese PC-98 platforms. ++.TP 7 ++.BI "Option \*qXkbVariant\*q \*q" variants \*q ++specifies the XKB keyboard variant components. These can be used to ++enhance the keyboard layout details. Default: not set. ++.TP 7 ++.BI "Option \*qXkbOptions\*q \*q" options \*q ++specifies the XKB keyboard option components. These can be used to ++enhance the keyboard behaviour. Default: not set. ++.PP ++Some other XKB-related options are available, but they are incompatible ++with the ones listed above and are not recommended, so they are not ++documented here. ++.SH "SEE ALSO" ++kbd(__drivermansuffix__), __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__). +diff -ruN xf86-input-keyboard-1.2.0/missing xf86-input-keyboard/missing +--- xf86-input-keyboard-1.2.0/missing 2006-11-01 22:19:31.000000000 +0000 ++++ xf86-input-keyboard/missing 2007-09-03 10:36:18.000000000 +0000 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Common stub for a few missing GNU programs while installing. + +-scriptversion=2005-06-08.21 ++scriptversion=2006-05-10.23 + +-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 ++# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 + # Free Software Foundation, Inc. + # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +@@ -33,6 +33,8 @@ + fi + + run=: ++sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' ++sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + + # In the cases where this matters, `missing' is being run in the + # srcdir already. +@@ -44,7 +46,7 @@ + + msg="missing on your system" + +-case "$1" in ++case $1 in + --run) + # Try to run requested program, and just exit if it succeeds. + run= +@@ -77,6 +79,7 @@ + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' ++ autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c +@@ -106,7 +109,7 @@ + # Now exit if we have it, but it failed. Also exit now if we + # don't have it and --version was passed (most likely to detect + # the program). +-case "$1" in ++case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; +@@ -135,7 +138,7 @@ + + # If it does not exist, or fails to run (possibly an outdated version), + # try to emulate it. +-case "$1" in ++case $1 in + aclocal*) + echo 1>&2 "\ + WARNING: \`$1' is $msg. You should only need it if +@@ -164,7 +167,7 @@ + test -z "$files" && files="config.h" + touch_files= + for f in $files; do +- case "$f" in ++ case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; +@@ -192,8 +195,8 @@ + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + +- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` +- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` ++ file=`echo "$*" | sed -n "$sed_output"` ++ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else +@@ -214,25 +217,25 @@ + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h +- if [ $# -ne 1 ]; then ++ if test $# -ne 1; then + eval LASTARG="\${$#}" +- case "$LASTARG" in ++ case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` +- if [ -f "$SRCFILE" ]; then ++ if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` +- if [ -f "$SRCFILE" ]; then ++ if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi +- if [ ! -f y.tab.h ]; then ++ if test ! -f y.tab.h; then + echo >y.tab.h + fi +- if [ ! -f y.tab.c ]; then ++ if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; +@@ -244,18 +247,18 @@ + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c +- if [ $# -ne 1 ]; then ++ if test $# -ne 1; then + eval LASTARG="\${$#}" +- case "$LASTARG" in ++ case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` +- if [ -f "$SRCFILE" ]; then ++ if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi +- if [ ! -f lex.yy.c ]; then ++ if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; +@@ -267,11 +270,9 @@ + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + +- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` +- if test -z "$file"; then +- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` +- fi +- if [ -f "$file" ]; then ++ file=`echo "$*" | sed -n "$sed_output"` ++ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` ++ if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file +@@ -289,11 +290,17 @@ + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... +- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` ++ file=`echo "$*" | sed -n "$sed_output"` ++ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` +- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` ++ file=`sed -n ' ++ /^@setfilename/{ ++ s/.* \([^ ]*\) *$/\1/ ++ p ++ q ++ }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi +@@ -317,13 +324,13 @@ + fi + firstarg="$1" + if shift; then +- case "$firstarg" in ++ case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac +- case "$firstarg" in ++ case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 +diff -ruN xf86-input-keyboard-1.2.0/src/.cvsignore xf86-input-keyboard/src/.cvsignore +--- xf86-input-keyboard-1.2.0/src/.cvsignore 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/src/.cvsignore 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,6 @@ ++.deps ++.libs ++Makefile ++Makefile.in ++*.la ++*.lo +diff -ruN xf86-input-keyboard-1.2.0/src/Makefile.am xf86-input-keyboard/src/Makefile.am +--- xf86-input-keyboard-1.2.0/src/Makefile.am 2006-11-01 22:16:43.000000000 +0000 ++++ xf86-input-keyboard/src/Makefile.am 2007-09-03 10:34:00.000000000 +0000 +@@ -21,33 +21,32 @@ + driverdir = @inputdir@ + driver_LTLIBRARIES = kbd_drv.la + kbd_drv_la_LDFLAGS = -avoid-version -module +-kbd_drv_la_SOURCES = kbd.c ++kbd_drv_la_SOURCES = kbd.c xf86OSKbd.h xf86Keymap.h + +-BSD_SOURCES = bsd_KbdMap.c bsd_kbd.c bsd_kbd.h at_scancode.c +-HURD_SOURCES = hurd_kbd.c at_scancode.c +-LINUX_SOURCES = lnx_KbdMap.c lnx_kbd.c lnx_kbd.h at_scancode.c +-SCO_SOURCES = sco_KbdMap.c sco_kbd.c sco_kbd.h +-SOLARIS_SOURCES = sun_kbd.c sun_kbd.h sun_kbdEv.c ++BSD_SRCS = bsd_KbdMap.c bsd_kbd.c bsd_kbd.h at_scancode.c ++HURD_SRCS = hurd_kbd.c at_scancode.c ++LINUX_SRCS = lnx_KbdMap.c lnx_kbd.c lnx_kbd.h at_scancode.c ++SCO_SRCS = sco_KbdMap.c sco_kbd.c sco_kbd.h ++SOLARIS_SRCS = sun_kbd.c sun_kbd.h sun_kbdMap.c + + if BSD +-kbd_drv_la_SOURCES += $(BSD_SOURCES) ++kbd_drv_la_SOURCES += $(BSD_SRCS) + endif + + if SOLARIS +-kbd_drv_la_SOURCES += $(SOLARIS_SOURCES) ++kbd_drv_la_SOURCES += $(SOLARIS_SRCS) + endif + + if LINUX +-kbd_drv_la_SOURCES += $(LINUX_SOURCES) ++kbd_drv_la_SOURCES += $(LINUX_SRCS) + endif + + if SCO +-kbd_drv_la_SOURCES += $(SCO_SOURCES) ++kbd_drv_la_SOURCES += $(SCO_SRCS) + endif + + if HURD +-kbd_drv_la_SOURCES += $(HURD_SOURCES) ++kbd_drv_la_SOURCES += $(HURD_SRCS) + endif + +-EXTRA_DIST = $(BSD_SOURCES) $(HURD_SOURCES) $(LINUX_SOURCES) $(SCO_SOURCES) \ +- $(SOLARIS_SOURCES) ++EXTRA_DIST = $(BSD_SRCS) $(HURD_SRCS) $(LINUX_SRCS) $(SCO_SRCS) $(SOLARIS_SRCS) +diff -ruN xf86-input-keyboard-1.2.0/src/Makefile.in xf86-input-keyboard/src/Makefile.in +--- xf86-input-keyboard-1.2.0/src/Makefile.in 2006-11-01 22:19:32.000000000 +0000 ++++ xf86-input-keyboard/src/Makefile.in 2007-09-03 10:36:18.000000000 +0000 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.6 from Makefile.am. ++# Makefile.in generated by automake 1.10 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -34,15 +34,11 @@ + # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-srcdir = @srcdir@ +-top_srcdir = @top_srcdir@ + VPATH = @srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ + pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ +-top_builddir = .. + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +-INSTALL = @INSTALL@ + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c + install_sh_SCRIPT = $(install_sh) -c +@@ -56,11 +52,11 @@ + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@BSD_TRUE@am__append_1 = $(BSD_SOURCES) +-@SOLARIS_TRUE@am__append_2 = $(SOLARIS_SOURCES) +-@LINUX_TRUE@am__append_3 = $(LINUX_SOURCES) +-@SCO_TRUE@am__append_4 = $(SCO_SOURCES) +-@HURD_TRUE@am__append_5 = $(HURD_SOURCES) ++@BSD_TRUE@am__append_1 = $(BSD_SRCS) ++@SOLARIS_TRUE@am__append_2 = $(SOLARIS_SRCS) ++@LINUX_TRUE@am__append_3 = $(LINUX_SRCS) ++@SCO_TRUE@am__append_4 = $(SCO_SRCS) ++@HURD_TRUE@am__append_5 = $(HURD_SRCS) + subdir = src + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -80,13 +76,13 @@ + driverLTLIBRARIES_INSTALL = $(INSTALL) + LTLIBRARIES = $(driver_LTLIBRARIES) + kbd_drv_la_LIBADD = +-am__kbd_drv_la_SOURCES_DIST = kbd.c bsd_KbdMap.c bsd_kbd.c bsd_kbd.h \ +- at_scancode.c sun_kbd.c sun_kbd.h sun_kbdEv.c lnx_KbdMap.c \ +- lnx_kbd.c lnx_kbd.h sco_KbdMap.c sco_kbd.c sco_kbd.h \ +- hurd_kbd.c ++am__kbd_drv_la_SOURCES_DIST = kbd.c xf86OSKbd.h xf86Keymap.h \ ++ bsd_KbdMap.c bsd_kbd.c bsd_kbd.h at_scancode.c sun_kbd.c \ ++ sun_kbd.h sun_kbdMap.c lnx_KbdMap.c lnx_kbd.c lnx_kbd.h \ ++ sco_KbdMap.c sco_kbd.c sco_kbd.h hurd_kbd.c + am__objects_1 = bsd_KbdMap.lo bsd_kbd.lo at_scancode.lo + @BSD_TRUE@am__objects_2 = $(am__objects_1) +-am__objects_3 = sun_kbd.lo sun_kbdEv.lo ++am__objects_3 = sun_kbd.lo sun_kbdMap.lo + @SOLARIS_TRUE@am__objects_4 = $(am__objects_3) + am__objects_5 = lnx_KbdMap.lo lnx_kbd.lo at_scancode.lo + @LINUX_TRUE@am__objects_6 = $(am__objects_5) +@@ -97,17 +93,21 @@ + am_kbd_drv_la_OBJECTS = kbd.lo $(am__objects_2) $(am__objects_4) \ + $(am__objects_6) $(am__objects_8) $(am__objects_10) + kbd_drv_la_OBJECTS = $(am_kbd_drv_la_OBJECTS) +-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) ++kbd_drv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(kbd_drv_la_LDFLAGS) $(LDFLAGS) -o $@ ++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +-LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ +- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + CCLD = $(CC) +-LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +- $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ + SOURCES = $(kbd_drv_la_SOURCES) + DIST_SOURCES = $(am__kbd_drv_la_SOURCES_DIST) + ETAGS = etags +@@ -116,8 +116,6 @@ + ACLOCAL = @ACLOCAL@ + ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ + ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +-AMDEP_FALSE = @AMDEP_FALSE@ +-AMDEP_TRUE = @AMDEP_TRUE@ + AMTAR = @AMTAR@ + APP_MAN_DIR = @APP_MAN_DIR@ + APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +@@ -126,8 +124,6 @@ + AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ +-BSD_FALSE = @BSD_FALSE@ +-BSD_TRUE = @BSD_TRUE@ + CC = @CC@ + CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ +@@ -154,8 +150,7 @@ + FILE_MAN_DIR = @FILE_MAN_DIR@ + FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ + GREP = @GREP@ +-HURD_FALSE = @HURD_FALSE@ +-HURD_TRUE = @HURD_TRUE@ ++INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +@@ -166,16 +161,13 @@ + LIBTOOL = @LIBTOOL@ + LIB_MAN_DIR = @LIB_MAN_DIR@ + LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +-LINUX_FALSE = @LINUX_FALSE@ +-LINUX_TRUE = @LINUX_TRUE@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ +-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ + MAKEINFO = @MAKEINFO@ + MISC_MAN_DIR = @MISC_MAN_DIR@ + MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ ++MKDIR_P = @MKDIR_P@ + OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +@@ -186,23 +178,20 @@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + PKG_CONFIG = @PKG_CONFIG@ + RANLIB = @RANLIB@ +-SCO_FALSE = @SCO_FALSE@ +-SCO_TRUE = @SCO_TRUE@ ++SED = @SED@ + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ +-SOLARIS_FALSE = @SOLARIS_FALSE@ +-SOLARIS_TRUE = @SOLARIS_TRUE@ + STRIP = @STRIP@ + VERSION = @VERSION@ + XORG_CFLAGS = @XORG_CFLAGS@ + XORG_LIBS = @XORG_LIBS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ + ac_ct_CC = @ac_ct_CC@ + ac_ct_CXX = @ac_ct_CXX@ + ac_ct_F77 = @ac_ct_F77@ +-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -214,6 +203,7 @@ + build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ ++builddir = @builddir@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -242,21 +232,23 @@ + psdir = @psdir@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ + driverdir = @inputdir@ + driver_LTLIBRARIES = kbd_drv.la + kbd_drv_la_LDFLAGS = -avoid-version -module +-kbd_drv_la_SOURCES = kbd.c $(am__append_1) $(am__append_2) \ +- $(am__append_3) $(am__append_4) $(am__append_5) +-BSD_SOURCES = bsd_KbdMap.c bsd_kbd.c bsd_kbd.h at_scancode.c +-HURD_SOURCES = hurd_kbd.c at_scancode.c +-LINUX_SOURCES = lnx_KbdMap.c lnx_kbd.c lnx_kbd.h at_scancode.c +-SCO_SOURCES = sco_KbdMap.c sco_kbd.c sco_kbd.h +-SOLARIS_SOURCES = sun_kbd.c sun_kbd.h sun_kbdEv.c +-EXTRA_DIST = $(BSD_SOURCES) $(HURD_SOURCES) $(LINUX_SOURCES) $(SCO_SOURCES) \ +- $(SOLARIS_SOURCES) +- ++kbd_drv_la_SOURCES = kbd.c xf86OSKbd.h xf86Keymap.h $(am__append_1) \ ++ $(am__append_2) $(am__append_3) $(am__append_4) \ ++ $(am__append_5) ++BSD_SRCS = bsd_KbdMap.c bsd_kbd.c bsd_kbd.h at_scancode.c ++HURD_SRCS = hurd_kbd.c at_scancode.c ++LINUX_SRCS = lnx_KbdMap.c lnx_kbd.c lnx_kbd.h at_scancode.c ++SCO_SRCS = sco_KbdMap.c sco_kbd.c sco_kbd.h ++SOLARIS_SRCS = sun_kbd.c sun_kbd.h sun_kbdMap.c ++EXTRA_DIST = $(BSD_SRCS) $(HURD_SRCS) $(LINUX_SRCS) $(SCO_SRCS) $(SOLARIS_SRCS) + all: all-am + + .SUFFIXES: +@@ -292,7 +284,7 @@ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + install-driverLTLIBRARIES: $(driver_LTLIBRARIES) + @$(NORMAL_INSTALL) +- test -z "$(driverdir)" || $(mkdir_p) "$(DESTDIR)$(driverdir)" ++ test -z "$(driverdir)" || $(MKDIR_P) "$(DESTDIR)$(driverdir)" + @list='$(driver_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ +@@ -303,7 +295,7 @@ + + uninstall-driverLTLIBRARIES: + @$(NORMAL_UNINSTALL) +- @set -x; list='$(driver_LTLIBRARIES)'; for p in $$list; do \ ++ @list='$(driver_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(driverdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(driverdir)/$$p"; \ +@@ -318,7 +310,7 @@ + rm -f "$${dir}/so_locations"; \ + done + kbd_drv.la: $(kbd_drv_la_OBJECTS) $(kbd_drv_la_DEPENDENCIES) +- $(LINK) -rpath $(driverdir) $(kbd_drv_la_LDFLAGS) $(kbd_drv_la_OBJECTS) $(kbd_drv_la_LIBADD) $(LIBS) ++ $(kbd_drv_la_LINK) -rpath $(driverdir) $(kbd_drv_la_OBJECTS) $(kbd_drv_la_LIBADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) +@@ -336,25 +328,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sco_KbdMap.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sco_kbd.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sun_kbd.Plo@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sun_kbdEv.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sun_kbdMap.Plo@am__quote@ + + .c.o: +-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c $< + + .c.obj: +-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + + .c.lo: +-@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi ++@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@@ -365,10 +357,6 @@ + clean-libtool: + -rm -rf .libs _libs + +-distclean-libtool: +- -rm -f libtool +-uninstall-info-am: +- + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ +@@ -418,22 +406,21 @@ + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + + distdir: $(DISTFILES) +- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ +- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ +- list='$(DISTFILES)'; for file in $$list; do \ +- case $$file in \ +- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ +- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ +- esac; \ ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ +- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ +- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ +- dir="/$$dir"; \ +- $(mkdir_p) "$(distdir)$$dir"; \ +- else \ +- dir=''; \ +- fi; \ + if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ +@@ -449,7 +436,7 @@ + all-am: Makefile $(LTLIBRARIES) + installdirs: + for dir in "$(DESTDIR)$(driverdir)"; do \ +- test -z "$$dir" || $(mkdir_p) "$$dir"; \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + install: install-am + install-exec: install-exec-am +@@ -484,7 +471,7 @@ + -rm -rf ./$(DEPDIR) + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ +- distclean-libtool distclean-tags ++ distclean-tags + + dvi: dvi-am + +@@ -498,12 +485,20 @@ + + install-data-am: install-driverLTLIBRARIES + ++install-dvi: install-dvi-am ++ + install-exec-am: + ++install-html: install-html-am ++ + install-info: install-info-am + + install-man: + ++install-pdf: install-pdf-am ++ ++install-ps: install-ps-am ++ + installcheck-am: + + maintainer-clean: maintainer-clean-am +@@ -524,20 +519,24 @@ + + ps-am: + +-uninstall-am: uninstall-driverLTLIBRARIES uninstall-info-am ++uninstall-am: uninstall-driverLTLIBRARIES ++ ++.MAKE: install-am install-strip + + .PHONY: CTAGS GTAGS all all-am check check-am clean \ + clean-driverLTLIBRARIES clean-generic clean-libtool ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ +- install-data-am install-driverLTLIBRARIES install-exec \ +- install-exec-am install-info install-info-am install-man \ ++ install-data-am install-driverLTLIBRARIES install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ +- uninstall-driverLTLIBRARIES uninstall-info-am ++ uninstall-driverLTLIBRARIES + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. +diff -ruN xf86-input-keyboard-1.2.0/src/kbd.c xf86-input-keyboard/src/kbd.c +--- xf86-input-keyboard-1.2.0/src/kbd.c 2006-11-01 22:16:43.000000000 +0000 ++++ xf86-input-keyboard/src/kbd.c 2007-09-03 10:34:00.000000000 +0000 +@@ -383,7 +383,22 @@ + InputInfoPtr pInfo = (InputInfoPtr) device->public.devicePrivate; + KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; + +- if ( ctrl->leds & XCOMP ) { ++ if ( ctrl->leds & XLED1) { ++ pKbd->keyLeds |= CAPSFLAG; ++ } else { ++ pKbd->keyLeds &= ~CAPSFLAG; ++ } ++ if ( ctrl->leds & XLED2) { ++ pKbd->keyLeds |= NUMFLAG; ++ } else { ++ pKbd->keyLeds &= ~NUMFLAG; ++ } ++ if ( ctrl->leds & XLED3) { ++ pKbd->keyLeds |= SCROLLFLAG; ++ } else { ++ pKbd->keyLeds &= ~SCROLLFLAG; ++ } ++ if ( ctrl->leds & (XCOMP|XLED4) ) { + pKbd->keyLeds |= COMPOSEFLAG; + } else { + pKbd->keyLeds &= ~COMPOSEFLAG; +@@ -419,6 +434,8 @@ + kevent.u.keyButtonPointer.rootX = 0; + kevent.u.keyButtonPointer.rootY = 0; + ++/* The server does this for us with i-h. */ ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 1 + /* + * Hmm... here is the biggest hack of every time ! + * It may be possible that a switch-vt procedure has finished BEFORE +@@ -448,6 +465,8 @@ + (* pKeyboard->public.processInputProc)(&kevent, pKeyboard, 1); + } + } ++#endif ++ + pKbd->scanPrefix = 0; + + if (init) { +@@ -830,7 +849,7 @@ + MODINFOSTRING1, + MODINFOSTRING2, + XORG_VERSION_CURRENT, +- 1, 1, 0, ++ PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, + ABI_CLASS_XINPUT, + ABI_XINPUT_VERSION, + MOD_CLASS_XINPUT, +diff -ruN xf86-input-keyboard-1.2.0/src/lnx_kbd.c xf86-input-keyboard/src/lnx_kbd.c +--- xf86-input-keyboard-1.2.0/src/lnx_kbd.c 2006-11-01 22:18:25.000000000 +0000 ++++ xf86-input-keyboard/src/lnx_kbd.c 2007-09-03 10:34:00.000000000 +0000 +@@ -6,6 +6,10 @@ + * Based on the code from lnx_io.c which is + * Copyright 1992 by Orest Zborowski <obz@Kodak.com> + * Copyright 1993 by David Dawes <dawes@xfree86.org> ++ * ++ * Portions based on kbdrate.c from util-linux 2.9t, which is ++ * Copyright 1992 Rickard E. Faith. Distributed under the GPL. ++ * This program comes with ABSOLUTELY NO WARRANTY. + */ + + #define NEED_EVENTS +diff -ruN xf86-input-keyboard-1.2.0/src/sun_kbd.c xf86-input-keyboard/src/sun_kbd.c +--- xf86-input-keyboard-1.2.0/src/sun_kbd.c 2006-11-01 22:18:26.000000000 +0000 ++++ xf86-input-keyboard/src/sun_kbd.c 2007-09-03 10:34:00.000000000 +0000 +@@ -22,7 +22,7 @@ + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +-/* Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. ++/* Copyright 2004-2007 Sun Microsystems, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the +@@ -59,42 +59,36 @@ + #include "xf86_OSlib.h" + #include "xf86OSKbd.h" + #include "sun_kbd.h" +- +-/*************************************************************************** +- * Common implementation of routines shared by "keyboard" driver in sun_io.c +- * and "kbd" driver (later on in this file) +- */ ++#include "atKeynames.h" + + #include <sys/stropts.h> + #include <sys/vuid_event.h> + #include <sys/kbd.h> + +-_X_HIDDEN int +-sunKbdOpen(const char *devName, pointer options) ++static void ++sunKbdSetLeds(InputInfoPtr pInfo, int leds) + { +- int kbdFD; +- const char *kbdPath = NULL; +- const char *defaultKbd = "/dev/kbd"; ++ int i; + +- if (options != NULL) { +- kbdPath = xf86SetStrOption(options, "Device", NULL); +- } +- if (kbdPath == NULL) { +- kbdPath = defaultKbd; ++ SYSCALL(i = ioctl(pInfo->fd, KIOCSLED, &leds)); ++ if (i < 0) { ++ xf86Msg(X_ERROR, "%s: Failed to set keyboard LED's: %s\n", ++ pInfo->name, strerror(errno)); + } ++} + +- kbdFD = open(kbdPath, O_RDONLY | O_NONBLOCK); +- +- if (kbdFD == -1) { +- xf86Msg(X_ERROR, "%s: cannot open \"%s\"\n", devName, kbdPath); +- } else { +- xf86MsgVerb(X_INFO, 3, "%s: Opened device \"%s\"\n", devName, kbdPath); +- } +- +- if ((kbdPath != NULL) && (kbdPath != defaultKbd)) { +- xfree(kbdPath); ++ ++static int ++sunKbdGetLeds(InputInfoPtr pInfo) ++{ ++ int i, leds = 0; ++ ++ SYSCALL(i = ioctl(pInfo->fd, KIOCGLED, &leds)); ++ if (i < 0) { ++ xf86Msg(X_ERROR, "%s: Failed to get keyboard LED's: %s\n", ++ pInfo->name, strerror(errno)); + } +- return kbdFD; ++ return leds; + } + + +@@ -102,15 +96,16 @@ + * Save initial keyboard state. This is called at the start of each server + * generation. + */ +- +-_X_HIDDEN int +-sunKbdInit(sunKbdPrivPtr priv, int kbdFD, const char *devName, pointer options) ++static int ++KbdInit(InputInfoPtr pInfo, int what) + { ++ KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; ++ sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; ++ pointer options = pInfo->options; ++ + int ktype, klayout, i; + const char *ktype_name; + +- priv->kbdFD = kbdFD; +- priv->devName = devName; + priv->otranslation = -1; + priv->odirect = -1; + +@@ -121,25 +116,25 @@ + } + + if (priv->strmod) { +- SYSCALL(i = ioctl(priv->kbdFD, I_PUSH, priv->strmod)); ++ SYSCALL(i = ioctl(pInfo->fd, I_PUSH, priv->strmod)); + if (i < 0) { + xf86Msg(X_ERROR, + "%s: cannot push module '%s' onto keyboard device: %s\n", +- priv->devName, priv->strmod, strerror(errno)); ++ pInfo->name, priv->strmod, strerror(errno)); + } + } + +- SYSCALL(i = ioctl(kbdFD, KIOCTYPE, &ktype)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCTYPE, &ktype)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Unable to determine keyboard type: %s\n", +- devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + +- SYSCALL(i = ioctl(kbdFD, KIOCLAYOUT, &klayout)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCLAYOUT, &klayout)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Unable to determine keyboard layout: %s\n", +- devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + +@@ -157,213 +152,181 @@ + } + + xf86Msg(X_PROBED, "%s: Keyboard type: %s (%d)\n", +- devName, ktype_name, ktype); +- xf86Msg(X_PROBED, "%s: Keyboard layout: %d\n", devName, klayout); ++ pInfo->name, ktype_name, ktype); ++ xf86Msg(X_PROBED, "%s: Keyboard layout: %d\n", pInfo->name, klayout); + + priv->ktype = ktype; +- priv->keyMap = sunGetKbdMapping(ktype); +- priv->oleds = sunKbdGetLeds(priv); ++ priv->oleds = sunKbdGetLeds(pInfo); + + return Success; + } + +-_X_HIDDEN int +-sunKbdOn(sunKbdPrivPtr priv) ++ ++static int ++KbdOn(InputInfoPtr pInfo, int what) + { ++ KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; ++ sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; ++ + int ktrans, kdirect, i; + +- SYSCALL(i = ioctl(priv->kbdFD, KIOCGDIRECT, &kdirect)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCGDIRECT, &kdirect)); + if (i < 0) { + xf86Msg(X_ERROR, + "%s: Unable to determine keyboard direct setting: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + + priv->odirect = kdirect; + kdirect = 1; + +- SYSCALL(i = ioctl(priv->kbdFD, KIOCSDIRECT, &kdirect)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCSDIRECT, &kdirect)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Failed turning keyboard direct mode on: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + + /* Setup translation */ + +- SYSCALL(i = ioctl(priv->kbdFD, KIOCGTRANS, &ktrans)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCGTRANS, &ktrans)); + if (i < 0) { + xf86Msg(X_ERROR, + "%s: Unable to determine keyboard translation mode: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + + priv->otranslation = ktrans; + ktrans = TR_UNTRANS_EVENT; + +- SYSCALL(i = ioctl(priv->kbdFD, KIOCTRANS, &ktrans)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCTRANS, &ktrans)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Failed setting keyboard translation mode: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + ++ /* If Caps Lock or Num Lock LEDs are on when server starts, ++ * send a fake key down on those keys to set the server state ++ * to match the LED's. ++ */ ++ if ( priv->oleds & (LED_CAPS_LOCK | LED_NUM_LOCK) ) { ++ int capslock = -1; ++ int numlock = -1; ++ int j; ++ TransMapPtr kmap = pKbd->scancodeMap; ++ ++ for (j = kmap->begin; j < kmap->end ; j++) { ++ switch (kmap->map[j]) { ++ case KEY_CapsLock: ++ capslock = j; ++ break; ++ case KEY_NumLock: ++ numlock = j; ++ break; ++ default: ++ /* nothing to do */ ++ break; ++ } ++ if ((capslock >= 0) && (numlock >= 0)) { ++ break; ++ } ++ } ++ if ((priv->oleds & LED_CAPS_LOCK) && (capslock > 0)) { ++ pKbd->PostEvent(pInfo, capslock, TRUE); /* Press */ ++ pKbd->PostEvent(pInfo, capslock, FALSE); /* Release */ ++ } ++ if ((priv->oleds & LED_NUM_LOCK) && (numlock > 0)) { ++ pKbd->PostEvent(pInfo, numlock, TRUE); /* Press */ ++ pKbd->PostEvent(pInfo, numlock, FALSE); /* Release */ ++ } ++ } ++ + return Success; + } + +-_X_HIDDEN int +-sunKbdOff(sunKbdPrivPtr priv) ++static int ++KbdOff(InputInfoPtr pInfo, int what) + { ++ KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; ++ sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; ++ + int i; + + /* restore original state */ + +- sunKbdSetLeds(priv, priv->oleds); ++ sunKbdSetLeds(pInfo, priv->oleds); + + if (priv->otranslation != -1) { +- SYSCALL(i = ioctl(priv->kbdFD, KIOCTRANS, &priv->otranslation)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCTRANS, &priv->otranslation)); + if (i < 0) { + xf86Msg(X_ERROR, + "%s: Unable to restore keyboard translation mode: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + priv->otranslation = -1; + } + + if (priv->odirect != -1) { +- SYSCALL(i = ioctl(priv->kbdFD, KIOCSDIRECT, &priv->odirect)); ++ SYSCALL(i = ioctl(pInfo->fd, KIOCSDIRECT, &priv->odirect)); + if (i < 0) { + xf86Msg(X_ERROR, + "%s: Unable to restore keyboard direct setting: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + return BadImplementation; + } + priv->odirect = -1; + } + + if (priv->strmod) { +- SYSCALL(i = ioctl(priv->kbdFD, I_POP, priv->strmod)); ++ SYSCALL(i = ioctl(pInfo->fd, I_POP, priv->strmod)); + if (i < 0) { + xf86Msg(X_WARNING, + "%s: cannot pop module '%s' off keyboard device: %s\n", +- priv->devName, priv->strmod, strerror(errno)); ++ pInfo->name, priv->strmod, strerror(errno)); + } + } + + return Success; + } + +-_X_HIDDEN void +-sunKbdSoundBell(sunKbdPrivPtr priv, int loudness, int pitch, int duration) ++ ++static void ++SoundKbdBell(InputInfoPtr pInfo, int loudness, int pitch, int duration) + { ++ KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; ++ sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; ++ + int kbdCmd, i; + + if (loudness && pitch) + { + kbdCmd = KBD_CMD_BELL; + +- SYSCALL(i = ioctl (priv->kbdFD, KIOCCMD, &kbdCmd)); ++ SYSCALL(i = ioctl (pInfo->fd, KIOCCMD, &kbdCmd)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Failed to activate bell: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + } + + usleep(duration * loudness * 20); + + kbdCmd = KBD_CMD_NOBELL; +- SYSCALL(i = ioctl (priv->kbdFD, KIOCCMD, &kbdCmd)); ++ SYSCALL(i = ioctl (pInfo->fd, KIOCCMD, &kbdCmd)); + if (i < 0) { + xf86Msg(X_ERROR, "%s: Failed to deactivate bell: %s\n", +- priv->devName, strerror(errno)); ++ pInfo->name, strerror(errno)); + } + } + } + +-_X_HIDDEN void +-sunKbdSetLeds(sunKbdPrivPtr priv, int leds) +-{ +- int i; +- +- SYSCALL(i = ioctl(priv->kbdFD, KIOCSLED, &leds)); +- if (i < 0) { +- xf86Msg(X_ERROR, "%s: Failed to set keyboard LED's: %s\n", +- priv->devName, strerror(errno)); +- } +-} +- +-_X_HIDDEN int +-sunKbdGetLeds(sunKbdPrivPtr priv) +-{ +- int i, leds = 0; +- +- SYSCALL(i = ioctl(priv->kbdFD, KIOCGLED, &leds)); +- if (i < 0) { +- xf86Msg(X_ERROR, "%s: Failed to get keyboard LED's: %s\n", +- priv->devName, strerror(errno)); +- } +- return leds; +-} +- +-/* ARGSUSED0 */ +-_X_HIDDEN void +-sunKbdSetRepeat(sunKbdPrivPtr priv, char rad) +-{ +- /* Nothing to do */ +-} +- +-/*************************************************************************** +- * Routines called from "kbd" driver via proc vectors filled in by +- * xf86OSKbdPreInit(). +- */ +- +- +-static int +-KbdInit(InputInfoPtr pInfo, int what) +-{ +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- +- return sunKbdInit(priv, pInfo->fd, pInfo->name, pInfo->options); +-} +- +- +-static int +-KbdOn(InputInfoPtr pInfo, int what) +-{ +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- +- return sunKbdOn(priv); +-} +- +-static int +-KbdOff(InputInfoPtr pInfo, int what) +-{ +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- +- return sunKbdOff(priv); +-} +- +- +-static void +-SoundKbdBell(InputInfoPtr pInfo, int loudness, int pitch, int duration) +-{ +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- +- sunKbdSoundBell(priv, loudness, pitch, duration); +-} +- + static void + SetKbdLeds(InputInfoPtr pInfo, int leds) + { +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- int real_leds = sunKbdGetLeds(priv); ++ int real_leds = sunKbdGetLeds(pInfo); + + real_leds &= ~(LED_CAPS_LOCK | LED_NUM_LOCK | LED_SCROLL_LOCK | LED_COMPOSE); + +@@ -372,16 +335,14 @@ + if (leds & XLED3) real_leds |= LED_SCROLL_LOCK; + if (leds & XLED4) real_leds |= LED_COMPOSE; + +- sunKbdSetLeds(priv, real_leds); ++ sunKbdSetLeds(pInfo, real_leds); + } + + static int + GetKbdLeds(InputInfoPtr pInfo) + { +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; + int leds = 0; +- int real_leds = sunKbdGetLeds(priv); ++ int real_leds = sunKbdGetLeds(pInfo); + + if (real_leds & LED_CAPS_LOCK) leds |= XLED1; + if (real_leds & LED_NUM_LOCK) leds |= XLED2; +@@ -391,27 +352,17 @@ + return leds; + } + ++/* ARGSUSED0 */ + static void + SetKbdRepeat(InputInfoPtr pInfo, char rad) + { +- KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; +- +- sunKbdSetRepeat(priv, rad); +-} +- +-static void +-KbdGetMapping (InputInfoPtr pInfo, KeySymsPtr pKeySyms, CARD8 *pModMap) +-{ +- /* Should probably do something better here */ +- xf86KbdGetMapping(pKeySyms, pModMap); ++ /* Nothing to do */ + } + + static void + ReadInput(InputInfoPtr pInfo) + { + KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; +- sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; + Firm_event event[64]; + int nBytes, i; + +@@ -420,7 +371,7 @@ + if ((nBytes = read(pInfo->fd, (char *)event, sizeof(event))) > 0) + { + for (i = 0; i < (nBytes / sizeof(Firm_event)); i++) { +- pKbd->PostEvent(pInfo, priv->keyMap[event[i].id], ++ pKbd->PostEvent(pInfo, event[i].id & 0xFF, + event[i].value == VKEY_DOWN ? TRUE : FALSE); + } + } +@@ -429,13 +380,34 @@ + static Bool + OpenKeyboard(InputInfoPtr pInfo) + { +- pInfo->fd = sunKbdOpen(pInfo->name, pInfo->options); ++ const char *kbdPath = NULL; ++ const char *defaultKbd = "/dev/kbd"; + +- if (pInfo->fd >= 0) { +- pInfo->read_input = ReadInput; +- return TRUE; ++ if (pInfo->options != NULL) { ++ kbdPath = xf86SetStrOption(pInfo->options, "Device", NULL); ++ } ++ if (kbdPath == NULL) { ++ kbdPath = defaultKbd; ++ } ++ ++ pInfo->fd = open(kbdPath, O_RDONLY | O_NONBLOCK); ++ ++ if (pInfo->fd == -1) { ++ xf86Msg(X_ERROR, "%s: cannot open \"%s\"\n", pInfo->name, kbdPath); + } else { ++ xf86MsgVerb(X_INFO, 3, "%s: Opened device \"%s\"\n", pInfo->name, ++ kbdPath); ++ } ++ ++ if ((kbdPath != NULL) && (kbdPath != defaultKbd)) { ++ xfree(kbdPath); ++ } ++ ++ if (pInfo->fd == -1) { + return FALSE; ++ } else { ++ pInfo->read_input = ReadInput; ++ return TRUE; + } + } + +diff -ruN xf86-input-keyboard-1.2.0/src/sun_kbd.h xf86-input-keyboard/src/sun_kbd.h +--- xf86-input-keyboard-1.2.0/src/sun_kbd.h 2006-11-01 22:18:26.000000000 +0000 ++++ xf86-input-keyboard/src/sun_kbd.h 2007-09-03 10:34:00.000000000 +0000 +@@ -1,4 +1,4 @@ +-/* Copyright 2005 Sun Microsystems, Inc. All rights reserved. ++/* Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the +@@ -29,41 +29,16 @@ + #ifndef _XORG_SUN_KBD_H_ + #define _XORG_SUN_KBD_H_ + +-/* +- * Keyboard common implementation routines shared by "keyboard" driver +- * in sun_io.c and "kbd" driver in sun_kbd.c +- */ +- + typedef struct { +- int kbdFD; +- const char * devName; + int ktype; /* Keyboard type from KIOCTYPE */ + Bool kbdActive; /* Have we set kbd modes for X? */ + int otranslation; /* Original translation mode */ + int odirect; /* Original "direct" mode setting */ + unsigned char oleds; /* Original LED state */ + const char * strmod; /* Streams module pushed on kbd device */ +- const unsigned char *keyMap; + } sunKbdPrivRec, *sunKbdPrivPtr; + +-/* sun_kbd.c */ +-extern int sunKbdOpen (const char *devName, pointer options); +-extern int sunKbdInit (sunKbdPrivPtr priv, int kbdFD, +- const char *devName, pointer options); +-extern int sunKbdOn (sunKbdPrivPtr priv); +-extern int sunKbdOff (sunKbdPrivPtr priv); +- +-extern void sunKbdSoundBell (sunKbdPrivPtr priv, +- int loudness, int pitch, int duration); +- +-extern void sunKbdSetLeds (sunKbdPrivPtr priv, int leds); +-extern int sunKbdGetLeds (sunKbdPrivPtr priv); +-extern void sunKbdSetRepeat (sunKbdPrivPtr priv, char rad); +- +-/* sun_kbdEv.c */ +-#include <sys/vuid_event.h> +-extern void sunPostKbdEvent (int ktype, Firm_event *event); +- +-extern const unsigned char *sunGetKbdMapping(int ktype); +- ++/* sun_kbdMap.c */ ++extern void KbdGetMapping (InputInfoPtr pInfo, KeySymsPtr pKeySyms, ++ CARD8 *pModMap); + #endif +diff -ruN xf86-input-keyboard-1.2.0/src/sun_kbdEv.c xf86-input-keyboard/src/sun_kbdEv.c +--- xf86-input-keyboard-1.2.0/src/sun_kbdEv.c 2006-11-01 22:18:27.000000000 +0000 ++++ xf86-input-keyboard/src/sun_kbdEv.c 1970-01-01 00:00:00.000000000 +0000 +@@ -1,855 +0,0 @@ +-/* +- * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. +- * Copyright 1993 by David Dawes <dawes@xfree86.org> +- * +- * Permission to use, copy, modify, distribute, and sell this software and its +- * documentation for any purpose is hereby granted without fee, provided that +- * the above copyright notice appear in all copies and that both that copyright +- * notice and this permission notice appear in supporting documentation, and +- * that the names of Thomas Roell and David Dawes not be used in advertising or +- * publicity pertaining to distribution of the software without specific, +- * written prior permission. Thomas Roell and David Dawes make no +- * representations about the suitability of this software for any purpose. It +- * is provided "as is" without express or implied warranty. +- * +- * THOMAS ROELL AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. +- * IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR ANY SPECIAL, +- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +- * PERFORMANCE OF THIS SOFTWARE. +- */ +- +-/* [JCH-96/01/21] Extended std reverse map to four buttons. */ +- +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif +- +-#include "xf86.h" +-#include "xf86Priv.h" +-#include "xf86_OSlib.h" +-#include "xf86OSKbd.h" +-#include "sun_kbd.h" +- +-#ifdef XINPUT +-#include <X11/extensions/XI.h> +-#include <X11/extensions/XIproto.h> +-#include "xf86Xinput.h" +-#endif +- +-#include "inputstr.h" +- +-#include <sys/kbd.h> +-#include "atKeynames.h" +- +-#ifdef XKB +-extern Bool noXkbExtension; +-#endif +- +-#define XE_POINTER 1 +-#define XE_KEYBOARD 2 +- +-#ifdef XINPUT +-#define ENQUEUE(ev, code, direction, dev_type) \ +- (ev)->u.u.detail = (code); \ +- (ev)->u.u.type = (direction); \ +- xf86eqEnqueue((ev)) +-#else +-#define ENQUEUE(ev, code, direction, dev_type) \ +- (ev)->u.u.detail = (code); \ +- (ev)->u.u.type = (direction); \ +- mieqEnqueue((ev)) +-#endif +- +-static void startautorepeat(long keycode); +-static CARD32 processautorepeat(OsTimerPtr timer, CARD32 now, pointer arg); +- +-static OsTimerPtr sunTimer = NULL; +- +-/* Map the Solaris keycodes to the "XFree86" keycodes. */ +-/* +- * This doesn't seem right. It probably needs to be dependent on a keyboard +- * type. +- */ +- +-/* Additional Sun Japanese Keyboard Keys not defined in common/atKeynames.h */ +-#define KEY_Kanji 0x82 +-#define KEY_Execute 0x83 +- +-static unsigned char map[256] = { +-#if defined(i386) || defined(__i386) || defined(__i386__) || defined(__x86) +- KEY_NOTUSED, /* 0 */ +- KEY_Tilde, /* 1 */ +- KEY_1, /* 2 */ +- KEY_2, /* 3 */ +- KEY_3, /* 4 */ +- KEY_4, /* 5 */ +- KEY_5, /* 6 */ +- KEY_6, /* 7 */ +- KEY_7, /* 8 */ +- KEY_8, /* 9 */ +- KEY_9, /* 10 */ +- KEY_0, /* 11 */ +- KEY_Minus, /* 12 */ +- KEY_Equal, /* 13 */ +- 0x7D, /*KEY_P_YEN*/ /* 14 */ +- KEY_BackSpace, /* 15 */ +- KEY_Tab, /* 16 */ +- KEY_Q, /* 17 */ +- KEY_W, /* 18 */ +- KEY_E, /* 19 */ +- KEY_R, /* 20 */ +- KEY_T, /* 21 */ +- KEY_Y, /* 22 */ +- KEY_U, /* 23 */ +- KEY_I, /* 24 */ +- KEY_O, /* 25 */ +- KEY_P, /* 26 */ +- KEY_LBrace, /* 27 */ +- KEY_RBrace, /* 28 */ +- KEY_BSlash, /* 29 */ +- KEY_CapsLock, /* 30 */ +- KEY_A, /* 31 */ +- KEY_S, /* 32 */ +- KEY_D, /* 33 */ +- KEY_F, /* 34 */ +- KEY_G, /* 35 */ +- KEY_H, /* 36 */ +- KEY_J, /* 37 */ +- KEY_K, /* 38 */ +- KEY_L, /* 39 */ +- KEY_SemiColon, /* 40 */ +- KEY_Quote, /* 41 */ +- KEY_UNKNOWN, /* 42 */ +- KEY_Enter, /* 43 */ +- KEY_ShiftL, /* 44 */ +- KEY_Less, /* 45 */ +- KEY_Z, /* 46 */ +- KEY_X, /* 47 */ +- KEY_C, /* 48 */ +- KEY_V, /* 49 */ +- KEY_B, /* 50 */ +- KEY_N, /* 51 */ +- KEY_M, /* 52 */ +- KEY_Comma, /* 53 */ +- KEY_Period, /* 54 */ +- KEY_Slash, /* 55 */ +- KEY_BSlash2, /* 56 */ +- KEY_ShiftR, /* 57 */ +- KEY_LCtrl, /* 58 */ +- KEY_LMeta, /* 59 */ +- KEY_Alt, /* 60 */ +- KEY_Space, /* 61 */ +- KEY_AltLang, /* 62 */ +- KEY_RMeta, /* 63 */ +- KEY_RCtrl, /* 64 */ +- KEY_Menu, /* 65 */ +- KEY_UNKNOWN, /* 66 */ +- KEY_UNKNOWN, /* 67 */ +- KEY_UNKNOWN, /* 68 */ +- KEY_UNKNOWN, /* 69 */ +- KEY_UNKNOWN, /* 70 */ +- KEY_UNKNOWN, /* 71 */ +- KEY_UNKNOWN, /* 72 */ +- KEY_UNKNOWN, /* 73 */ +- KEY_UNKNOWN, /* 74 */ +- KEY_Insert, /* 75 */ +- KEY_Delete, /* 76 */ +- KEY_UNKNOWN, /* 77 */ +- KEY_UNKNOWN, /* 78 */ +- KEY_Left, /* 79 */ +- KEY_Home, /* 80 */ +- KEY_End, /* 81 */ +- KEY_UNKNOWN, /* 82 */ +- KEY_Up, /* 83 */ +- KEY_Down, /* 84 */ +- KEY_PgUp, /* 85 */ +- KEY_PgDown, /* 86 */ +- KEY_UNKNOWN, /* 87 */ +- KEY_UNKNOWN, /* 88 */ +- KEY_Right, /* 89 */ +- KEY_NumLock, /* 90 */ +- KEY_KP_7, /* 91 */ +- KEY_KP_4, /* 92 */ +- KEY_KP_1, /* 93 */ +- KEY_UNKNOWN, /* 94 */ +- KEY_KP_Divide, /* 95 */ +- KEY_KP_8, /* 96 */ +- KEY_KP_5, /* 97 */ +- KEY_KP_2, /* 98 */ +- KEY_KP_0, /* 99 */ +- KEY_KP_Multiply, /* 100 */ +- KEY_KP_9, /* 101 */ +- KEY_KP_6, /* 102 */ +- KEY_KP_3, /* 103 */ +- KEY_KP_Decimal, /* 104 */ +- KEY_KP_Minus, /* 105 */ +- KEY_KP_Plus, /* 106 */ +- KEY_UNKNOWN, /* 107 */ +- KEY_KP_Enter, /* 108 */ +- KEY_UNKNOWN, /* 109 */ +- KEY_Escape, /* 110 */ +- KEY_UNKNOWN, /* 111 */ +- KEY_F1, /* 112 */ +- KEY_F2, /* 113 */ +- KEY_F3, /* 114 */ +- KEY_F4, /* 115 */ +- KEY_F5, /* 116 */ +- KEY_F6, /* 117 */ +- KEY_F7, /* 118 */ +- KEY_F8, /* 119 */ +- KEY_F9, /* 120 */ +- KEY_F10, /* 121 */ +- KEY_F11, /* 122 */ +- KEY_F12, /* 123 */ +- KEY_Print, /* 124 */ +- KEY_ScrollLock, /* 125 */ +- KEY_Pause, /* 126 */ +- KEY_UNKNOWN, /* 127 */ +- KEY_UNKNOWN, /* 128 */ +- KEY_UNKNOWN, /* 129 */ +- KEY_UNKNOWN, /* 130 */ +- KEY_NFER, /* 131 */ +- KEY_XFER, /* 132 */ +- KEY_HKTG, /* 133 */ +- KEY_UNKNOWN, /* 134 */ +-#elif defined(sparc) || defined(__sparc__) +- KEY_UNKNOWN, /* 0x00 */ +- KEY_UNKNOWN, /* 0x01 */ +- KEY_UNKNOWN, /* 0x02 */ +- KEY_UNKNOWN, /* 0x03 */ +- KEY_UNKNOWN, /* 0x04 */ +- KEY_F1, /* 0x05 */ +- KEY_F2, /* 0x06 */ +- KEY_F10, /* 0x07 */ +- KEY_F3, /* 0x08 */ +- KEY_F11, /* 0x09 */ +- KEY_F4, /* 0x0A */ +- KEY_F12, /* 0x0B */ +- KEY_F5, /* 0x0C */ +- KEY_UNKNOWN, /* 0x0D */ +- KEY_F6, /* 0x0E */ +- KEY_UNKNOWN, /* 0x0F */ +- KEY_F7, /* 0x10 */ +- KEY_F8, /* 0x11 */ +- KEY_F9, /* 0x12 */ +- KEY_Alt, /* 0x13 */ +- KEY_Up, /* 0x14 */ +- KEY_Pause, /* 0x15 */ +- KEY_SysReqest, /* 0x16 */ +- KEY_ScrollLock, /* 0x17 */ +- KEY_Left, /* 0x18 */ +- KEY_UNKNOWN, /* 0x19 */ +- KEY_UNKNOWN, /* 0x1A */ +- KEY_Down, /* 0x1B */ +- KEY_Right, /* 0x1C */ +- KEY_Escape, /* 0x1D */ +- KEY_1, /* 0x1E */ +- KEY_2, /* 0x1F */ +- KEY_3, /* 0x20 */ +- KEY_4, /* 0x21 */ +- KEY_5, /* 0x22 */ +- KEY_6, /* 0x23 */ +- KEY_7, /* 0x24 */ +- KEY_8, /* 0x25 */ +- KEY_9, /* 0x26 */ +- KEY_0, /* 0x27 */ +- KEY_Minus, /* 0x28 */ +- KEY_Equal, /* 0x29 */ +- KEY_Tilde, /* 0x2A */ +- KEY_BackSpace, /* 0x2B */ +- KEY_Insert, /* 0x2C */ +- KEY_UNKNOWN, /* 0x2D */ +- KEY_KP_Divide, /* 0x2E */ +- KEY_KP_Multiply, /* 0x2F */ +- KEY_UNKNOWN, /* 0x30 */ +- KEY_UNKNOWN, /* 0x31 */ +- KEY_KP_Decimal, /* 0x32 */ +- KEY_UNKNOWN, /* 0x33 */ +- KEY_Home, /* 0x34 */ +- KEY_Tab, /* 0x35 */ +- KEY_Q, /* 0x36 */ +- KEY_W, /* 0x37 */ +- KEY_E, /* 0x38 */ +- KEY_R, /* 0x39 */ +- KEY_T, /* 0x3A */ +- KEY_Y, /* 0x3B */ +- KEY_U, /* 0x3C */ +- KEY_I, /* 0x3D */ +- KEY_O, /* 0x3E */ +- KEY_P, /* 0x3F */ +- KEY_LBrace, /* 0x40 */ +- KEY_RBrace, /* 0x41 */ +- KEY_Delete, /* 0x42 */ +- KEY_UNKNOWN, /* 0x43 */ +- KEY_KP_7, /* 0x44 */ +- KEY_KP_8, /* 0x45 */ +- KEY_KP_9, /* 0x46 */ +- KEY_KP_Minus, /* 0x47 */ +- KEY_UNKNOWN, /* 0x48 */ +- KEY_UNKNOWN, /* 0x49 */ +- KEY_End, /* 0x4A */ +- KEY_UNKNOWN, /* 0x4B */ +- KEY_LCtrl, /* 0x4C */ +- KEY_A, /* 0x4D */ +- KEY_S, /* 0x4E */ +- KEY_D, /* 0x4F */ +- KEY_F, /* 0x50 */ +- KEY_G, /* 0x51 */ +- KEY_H, /* 0x52 */ +- KEY_J, /* 0x53 */ +- KEY_K, /* 0x54 */ +- KEY_L, /* 0x55 */ +- KEY_SemiColon, /* 0x56 */ +- KEY_Quote, /* 0x57 */ +- KEY_BSlash, /* 0x58 */ +- KEY_Enter, /* 0x59 */ +- KEY_KP_Enter, /* 0x5A */ +- KEY_KP_4, /* 0x5B */ +- KEY_KP_5, /* 0x5C */ +- KEY_KP_6, /* 0x5D */ +- KEY_KP_0, /* 0x5E */ +- KEY_UNKNOWN, /* 0x5F */ +- KEY_PgUp, /* 0x60 */ +- KEY_UNKNOWN, /* 0x61 */ +- KEY_NumLock, /* 0x62 */ +- KEY_ShiftL, /* 0x63 */ +- KEY_Z, /* 0x64 */ +- KEY_X, /* 0x65 */ +- KEY_C, /* 0x66 */ +- KEY_V, /* 0x67 */ +- KEY_B, /* 0x68 */ +- KEY_N, /* 0x69 */ +- KEY_M, /* 0x6A */ +- KEY_Comma, /* 0x6B */ +- KEY_Period, /* 0x6C */ +- KEY_Slash, /* 0x6D */ +- KEY_ShiftR, /* 0x6E */ +- KEY_UNKNOWN, /* 0x6F */ +- KEY_KP_1, /* 0x70 */ +- KEY_KP_2, /* 0x71 */ +- KEY_KP_3, /* 0x72 */ +- KEY_UNKNOWN, /* 0x73 */ +- KEY_UNKNOWN, /* 0x74 */ +- KEY_UNKNOWN, /* 0x75 */ +- KEY_UNKNOWN, /* 0x76 */ +- KEY_CapsLock, /* 0x77 */ +- KEY_LMeta, /* 0x78 */ +- KEY_Space, /* 0x79 */ +- KEY_RMeta, /* 0x7A */ +- KEY_PgDown, /* 0x7B */ +- KEY_UNKNOWN, /* 0x7C */ +- KEY_KP_Plus, /* 0x7D */ +- KEY_UNKNOWN, /* 0x7E */ +- KEY_UNKNOWN, /* 0x7F */ +-#endif +- /* The rest default to KEY_UNKNOWN */ +-}; +- +-#if defined(KB_USB) +-static unsigned char usbmap[256] = { +-/* +- * partially taken from ../bsd/bsd_KbdMap.c +- * +- * added keycodes for Sun special keys (left function keys, audio control) +- */ +- /* 0 */ KEY_NOTUSED, +- /* 1 */ KEY_NOTUSED, +- /* 2 */ KEY_NOTUSED, +- /* 3 */ KEY_NOTUSED, +- /* 4 */ KEY_A, +- /* 5 */ KEY_B, +- /* 6 */ KEY_C, +- /* 7 */ KEY_D, +- /* 8 */ KEY_E, +- /* 9 */ KEY_F, +- /* 10 */ KEY_G, +- /* 11 */ KEY_H, +- /* 12 */ KEY_I, +- /* 13 */ KEY_J, +- /* 14 */ KEY_K, +- /* 15 */ KEY_L, +- /* 16 */ KEY_M, +- /* 17 */ KEY_N, +- /* 18 */ KEY_O, +- /* 19 */ KEY_P, +- /* 20 */ KEY_Q, +- /* 21 */ KEY_R, +- /* 22 */ KEY_S, +- /* 23 */ KEY_T, +- /* 24 */ KEY_U, +- /* 25 */ KEY_V, +- /* 26 */ KEY_W, +- /* 27 */ KEY_X, +- /* 28 */ KEY_Y, +- /* 29 */ KEY_Z, +- /* 30 */ KEY_1, /* 1 !*/ +- /* 31 */ KEY_2, /* 2 @ */ +- /* 32 */ KEY_3, /* 3 # */ +- /* 33 */ KEY_4, /* 4 $ */ +- /* 34 */ KEY_5, /* 5 % */ +- /* 35 */ KEY_6, /* 6 ^ */ +- /* 36 */ KEY_7, /* 7 & */ +- /* 37 */ KEY_8, /* 8 * */ +- /* 38 */ KEY_9, /* 9 ( */ +- /* 39 */ KEY_0, /* 0 ) */ +- /* 40 */ KEY_Enter, /* Return */ +- /* 41 */ KEY_Escape, /* Escape */ +- /* 42 */ KEY_BackSpace, /* Backspace Delete */ +- /* 43 */ KEY_Tab, /* Tab */ +- /* 44 */ KEY_Space, /* Space */ +- /* 45 */ KEY_Minus, /* - _ */ +- /* 46 */ KEY_Equal, /* = + */ +- /* 47 */ KEY_LBrace, /* [ { */ +- /* 48 */ KEY_RBrace, /* ] } */ +- /* 49 */ KEY_BSlash, /* \ | */ +- /* 50 */ KEY_BSlash, /* \ _ # ~ on some keyboards */ +- /* 51 */ KEY_SemiColon, /* ; : */ +- /* 52 */ KEY_Quote, /* ' " */ +- /* 53 */ KEY_Tilde, /* ` ~ */ +- /* 54 */ KEY_Comma, /* , < */ +- /* 55 */ KEY_Period, /* . > */ +- /* 56 */ KEY_Slash, /* / ? */ +- /* 57 */ KEY_CapsLock, /* Caps Lock */ +- /* 58 */ KEY_F1, /* F1 */ +- /* 59 */ KEY_F2, /* F2 */ +- /* 60 */ KEY_F3, /* F3 */ +- /* 61 */ KEY_F4, /* F4 */ +- /* 62 */ KEY_F5, /* F5 */ +- /* 63 */ KEY_F6, /* F6 */ +- /* 64 */ KEY_F7, /* F7 */ +- /* 65 */ KEY_F8, /* F8 */ +- /* 66 */ KEY_F9, /* F9 */ +- /* 67 */ KEY_F10, /* F10 */ +- /* 68 */ KEY_F11, /* F11 */ +- /* 69 */ KEY_F12, /* F12 */ +- /* 70 */ KEY_Print, /* PrintScrn SysReq */ +- /* 71 */ KEY_ScrollLock, /* Scroll Lock */ +- /* 72 */ KEY_Pause, /* Pause Break */ +- /* 73 */ KEY_Insert, /* Insert XXX Help on some Mac Keyboards */ +- /* 74 */ KEY_Home, /* Home */ +- /* 75 */ KEY_PgUp, /* Page Up */ +- /* 76 */ KEY_Delete, /* Delete */ +- /* 77 */ KEY_End, /* End */ +- /* 78 */ KEY_PgDown, /* Page Down */ +- /* 79 */ KEY_Right, /* Right Arrow */ +- /* 80 */ KEY_Left, /* Left Arrow */ +- /* 81 */ KEY_Down, /* Down Arrow */ +- /* 82 */ KEY_Up, /* Up Arrow */ +- /* 83 */ KEY_NumLock, /* Num Lock */ +- /* 84 */ KEY_KP_Divide, /* Keypad / */ +- /* 85 */ KEY_KP_Multiply, /* Keypad * */ +- /* 86 */ KEY_KP_Minus, /* Keypad - */ +- /* 87 */ KEY_KP_Plus, /* Keypad + */ +- /* 88 */ KEY_KP_Enter, /* Keypad Enter */ +- /* 89 */ KEY_KP_1, /* Keypad 1 End */ +- /* 90 */ KEY_KP_2, /* Keypad 2 Down */ +- /* 91 */ KEY_KP_3, /* Keypad 3 Pg Down */ +- /* 92 */ KEY_KP_4, /* Keypad 4 Left */ +- /* 93 */ KEY_KP_5, /* Keypad 5 */ +- /* 94 */ KEY_KP_6, /* Keypad 6 */ +- /* 95 */ KEY_KP_7, /* Keypad 7 Home */ +- /* 96 */ KEY_KP_8, /* Keypad 8 Up */ +- /* 97 */ KEY_KP_9, /* KEypad 9 Pg Up */ +- /* 98 */ KEY_KP_0, /* Keypad 0 Ins */ +- /* 99 */ KEY_KP_Decimal, /* Keypad . Del */ +- /* 100 */ KEY_Less, /* < > on some keyboards */ +- /* 101 */ KEY_Menu, /* Menu */ +- /* 102 */ KEY_Power, /* Sun: Power */ +- /* 103 */ KEY_KP_Equal, /* Keypad = on Mac keyboards */ +- /* 104 */ KEY_NOTUSED, +- /* 105 */ KEY_NOTUSED, +- /* 106 */ KEY_NOTUSED, +- /* 107 */ KEY_NOTUSED, +- /* 108 */ KEY_NOTUSED, +- /* 109 */ KEY_NOTUSED, +- /* 110 */ KEY_NOTUSED, +- /* 111 */ KEY_NOTUSED, +- /* 112 */ KEY_NOTUSED, +- /* 113 */ KEY_NOTUSED, +- /* 114 */ KEY_NOTUSED, +- /* 115 */ KEY_NOTUSED, +- /* 116 */ KEY_L7, /* Sun: Open */ +- /* 117 */ KEY_Help, /* Sun: Help */ +- /* 118 */ KEY_L3, /* Sun: Props */ +- /* 119 */ KEY_L5, /* Sun: Front */ +- /* 120 */ KEY_L1, /* Sun: Stop */ +- /* 121 */ KEY_L2, /* Sun: Again */ +- /* 122 */ KEY_L4, /* Sun: Undo */ +- /* 123 */ KEY_L10, /* Sun: Cut */ +- /* 124 */ KEY_L6, /* Sun: Copy */ +- /* 125 */ KEY_L8, /* Sun: Paste */ +- /* 126 */ KEY_L9, /* Sun: Find */ +- /* 127 */ KEY_Mute, /* Sun: AudioMute */ +- /* 128 */ KEY_AudioRaise, /* Sun: AudioRaise */ +- /* 129 */ KEY_AudioLower, /* Sun: AudioLower */ +- /* 130 */ KEY_NOTUSED, +- /* 131 */ KEY_NOTUSED, +- /* 132 */ KEY_NOTUSED, +- /* 133 */ KEY_NOTUSED, +- /* 134 */ KEY_NOTUSED, +- /* 135 */ KEY_BSlash2, /* Sun Japanese Kbd: Backslash / Underscore */ +- /* 136 */ KEY_XFER, /* Sun Japanese Kbd: Henkan Mode */ +- /* 137 */ KEY_Yen, /* Sun Japanese Kbd: Yen / Brokenbar */ +- /* 138 */ KEY_Kanji, /* Sun Japanese Kbd: Kanji */ +- /* 139 */ KEY_Execute, /* Sun Japanese Kbd: Execute */ +- /* 140 */ KEY_NOTUSED, +- /* 141 */ KEY_NOTUSED, +- /* 142 */ KEY_NOTUSED, +- /* 143 */ KEY_NOTUSED, +- /* 144 */ KEY_NOTUSED, +- /* 145 */ KEY_NOTUSED, +- /* 146 */ KEY_NOTUSED, +- /* 147 */ KEY_NOTUSED, +- /* 148 */ KEY_NOTUSED, +- /* 149 */ KEY_NOTUSED, +- /* 150 */ KEY_NOTUSED, +- /* 151 */ KEY_NOTUSED, +- /* 152 */ KEY_NOTUSED, +- /* 153 */ KEY_NOTUSED, +- /* 154 */ KEY_NOTUSED, +- /* 155 */ KEY_NOTUSED, +- /* 156 */ KEY_NOTUSED, +- /* 157 */ KEY_NOTUSED, +- /* 158 */ KEY_NOTUSED, +- /* 159 */ KEY_NOTUSED, +- /* 160 */ KEY_NOTUSED, +- /* 161 */ KEY_NOTUSED, +- /* 162 */ KEY_NOTUSED, +- /* 163 */ KEY_NOTUSED, +- /* 164 */ KEY_NOTUSED, +- /* 165 */ KEY_NOTUSED, +- /* 166 */ KEY_NOTUSED, +- /* 167 */ KEY_NOTUSED, +- /* 168 */ KEY_NOTUSED, +- /* 169 */ KEY_NOTUSED, +- /* 170 */ KEY_NOTUSED, +- /* 171 */ KEY_NOTUSED, +- /* 172 */ KEY_NOTUSED, +- /* 173 */ KEY_NOTUSED, +- /* 174 */ KEY_NOTUSED, +- /* 175 */ KEY_NOTUSED, +- /* 176 */ KEY_NOTUSED, +- /* 177 */ KEY_NOTUSED, +- /* 178 */ KEY_NOTUSED, +- /* 179 */ KEY_NOTUSED, +- /* 180 */ KEY_NOTUSED, +- /* 181 */ KEY_NOTUSED, +- /* 182 */ KEY_NOTUSED, +- /* 183 */ KEY_NOTUSED, +- /* 184 */ KEY_NOTUSED, +- /* 185 */ KEY_NOTUSED, +- /* 186 */ KEY_NOTUSED, +- /* 187 */ KEY_NOTUSED, +- /* 188 */ KEY_NOTUSED, +- /* 189 */ KEY_NOTUSED, +- /* 190 */ KEY_NOTUSED, +- /* 191 */ KEY_NOTUSED, +- /* 192 */ KEY_NOTUSED, +- /* 193 */ KEY_NOTUSED, +- /* 194 */ KEY_NOTUSED, +- /* 195 */ KEY_NOTUSED, +- /* 196 */ KEY_NOTUSED, +- /* 197 */ KEY_NOTUSED, +- /* 198 */ KEY_NOTUSED, +- /* 199 */ KEY_NOTUSED, +- /* 200 */ KEY_NOTUSED, +- /* 201 */ KEY_NOTUSED, +- /* 202 */ KEY_NOTUSED, +- /* 203 */ KEY_NOTUSED, +- /* 204 */ KEY_NOTUSED, +- /* 205 */ KEY_NOTUSED, +- /* 206 */ KEY_NOTUSED, +- /* 207 */ KEY_NOTUSED, +- /* 208 */ KEY_NOTUSED, +- /* 209 */ KEY_NOTUSED, +- /* 210 */ KEY_NOTUSED, +- /* 211 */ KEY_NOTUSED, +- /* 212 */ KEY_NOTUSED, +- /* 213 */ KEY_NOTUSED, +- /* 214 */ KEY_NOTUSED, +- /* 215 */ KEY_NOTUSED, +- /* 216 */ KEY_NOTUSED, +- /* 217 */ KEY_NOTUSED, +- /* 218 */ KEY_NOTUSED, +- /* 219 */ KEY_NOTUSED, +- /* 220 */ KEY_NOTUSED, +- /* 221 */ KEY_NOTUSED, +- /* 222 */ KEY_NOTUSED, +- /* 223 */ KEY_NOTUSED, +- /* 224 */ KEY_LCtrl, /* Left Control */ +- /* 225 */ KEY_ShiftL, /* Left Shift */ +- /* 226 */ KEY_Alt, /* Left Alt */ +- /* 227 */ KEY_LMeta, /* Left Meta */ +- /* 228 */ KEY_RCtrl, /* Right Control */ +- /* 229 */ KEY_ShiftR, /* Right Shift */ +- /* 230 */ KEY_AltLang, /* Right Alt, AKA AltGr */ +- /* 231 */ KEY_RMeta, /* Right Meta */ +-}; +- +-#endif /* KB_USB */ +- +-_X_HIDDEN const unsigned char * +-sunGetKbdMapping(int ktype) { +-#if defined(KB_USB) +- if (ktype == KB_USB) +- return usbmap; +- else +-#endif +- return map; +-} +- +- +-/* +- * sunPostKbdEvent -- +- * Translate the raw hardware Firm_event into an XEvent, and tell DIX +- * about it. KeyCode preprocessing and so on is done ... +- * +- * Most of the Solaris stuff has whacked Panix/PC98 support in the +- * interests of simplicity - DWH 8/30/99 +- */ +- +-_X_HIDDEN void +-sunPostKbdEvent(int sun_ktype, Firm_event *event) +-{ +- Bool down; +- KeyClassRec *keyc = ((DeviceIntPtr)xf86Info.pKeyboard)->key; +- Bool updateLeds = FALSE; +- xEvent kevent; +- KeySym *keysym; +- int keycode; +- static int lockkeys = 0; +- +- /* Give down a value */ +- if (event->value == VKEY_DOWN) +- down = TRUE; +- else +- down = FALSE; +- +- +-#if defined(KB_USB) +- if(sun_ktype == KB_USB) +- keycode = usbmap[event->id]; +- else +-#endif +- keycode = map[event->id]; +- +- /* +- * and now get some special keysequences +- */ +- +-#ifdef XKB +- if (((xf86Info.ddxSpecialKeys == SKWhenNeeded) && +- (!xf86Info.ActionKeyBindingsSet)) || +- noXkbExtension || (xf86Info.ddxSpecialKeys == SKAlways)) +-#endif +- { +- if (!(ModifierDown(ShiftMask)) && +- ((ModifierDown(ControlMask | AltMask)) || +- (ModifierDown(ControlMask | AltLangMask)))) +- { +- switch (keycode) { +- /* +- * The idea here is to pass the scancode down to a list of +- * registered routines. There should be some standard conventions +- * for processing certain keys. +- */ +- case KEY_BackSpace: +- xf86ProcessActionEvent(ACTION_TERMINATE, NULL); +- break; +- +- /* +- * Check grabs +- */ +- case KEY_KP_Divide: +- xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL); +- break; +- case KEY_KP_Multiply: +- xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL); +- break; +- +- /* +- * Video mode switches +- */ +- case KEY_KP_Minus: /* Keypad - */ +- if (down) xf86ProcessActionEvent(ACTION_PREV_MODE, NULL); +- if (!xf86Info.dontZoom) return; +- break; +- +- case KEY_KP_Plus: /* Keypad + */ +- if (down) xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL); +- if (!xf86Info.dontZoom) return; +- break; +- } +- } +- } +- +- /* +- * Now map the scancodes to real X-keycodes ... +- */ +- if (keycode == KEY_NOTUSED) { +- xf86MsgVerb(X_INFO, 0, +- "raw code %d mapped to KEY_NOTUSED -- please report\n", event->id); +- return; +- } +- if (keycode == KEY_UNKNOWN) { +- xf86MsgVerb(X_INFO, 0, +- "raw code %d mapped to KEY_UNKNOWN -- please report\n", event->id); +- return; +- } +- keycode += MIN_KEYCODE; +- keysym = keyc->curKeySyms.map + +- (keyc->curKeySyms.mapWidth * +- (keycode - keyc->curKeySyms.minKeyCode)); +- +-#ifdef XKB +- if (noXkbExtension) +-#endif +- { +- /* +- * Toggle lock keys. +- */ +-#define CAPSFLAG 0x01 +-#define NUMFLAG 0x02 +-#define SCROLLFLAG 0x04 +-#define MODEFLAG 0x08 +- +- if (down) { +- /* +- * Handle the KeyPresses of the lock keys. +- */ +- +- switch (keysym[0]) { +- +- case XK_Caps_Lock: +- if (lockkeys & CAPSFLAG) { +- lockkeys &= ~CAPSFLAG; +- return; +- } +- lockkeys |= CAPSFLAG; +- updateLeds = TRUE; +- xf86Info.capsLock = down; +- break; +- +- case XK_Num_Lock: +- if (lockkeys & NUMFLAG) { +- lockkeys &= ~NUMFLAG; +- return; +- } +- lockkeys |= NUMFLAG; +- updateLeds = TRUE; +- xf86Info.numLock = down; +- break; +- +- case XK_Scroll_Lock: +- if (lockkeys & SCROLLFLAG) { +- lockkeys &= ~SCROLLFLAG; +- return; +- } +- lockkeys |= SCROLLFLAG; +- updateLeds = TRUE; +- xf86Info.scrollLock = down; +- break; +- } +- } else { +- /* +- * Handle the releases of the lock keys. +- */ +- +- switch (keysym[0]) { +- +- case XK_Caps_Lock: +- if (lockkeys & CAPSFLAG) +- return; +- updateLeds = TRUE; +- xf86Info.capsLock = down; +- break; +- +- case XK_Num_Lock: +- if (lockkeys & NUMFLAG) +- return; +- updateLeds = TRUE; +- xf86Info.numLock = down; +- break; +- +- case XK_Scroll_Lock: +- if (lockkeys & SCROLLFLAG) +- return; +- updateLeds = TRUE; +- xf86Info.scrollLock = down; +- break; +- } +- } +- +- if (updateLeds) +- xf86KbdLeds(); +- +- /* +- * If this keycode is not a modifier key, and its down initiate the +- * autorepeate sequence. (Only necessary if not using XKB). +- * +- * If its not down, then reset the timer. +- */ +- if (!keyc->modifierMap[keycode]) { +- if (down) { +- startautorepeat(keycode); +- } else { +- TimerFree(sunTimer); +- sunTimer = NULL; +- } +- } +- } +- +- xf86Info.lastEventTime = +- kevent.u.keyButtonPointer.time = +- GetTimeInMillis(); +- +- /* +- * And now send these prefixes ... +- * NOTE: There cannot be multiple Mode_Switch keys !!!! +- */ +- +- ENQUEUE(&kevent, keycode, (down ? KeyPress : KeyRelease), XE_KEYBOARD); +-} +- +- +- +-/* +- * Autorepeat stuff +- */ +- +-void +-startautorepeat(long keycode) +-{ +- sunTimer = TimerSet(sunTimer, /* Timer */ +- 0, /* Flags */ +- xf86Info.kbdDelay, /* millis */ +- processautorepeat, /* callback */ +- (pointer) keycode); /* arg for timer */ +-} +- +-CARD32 +-processautorepeat(OsTimerPtr timer, CARD32 now, pointer arg) +-{ +- xEvent kevent; +- int keycode; +- +- keycode = (long)arg; +- +- xf86Info.lastEventTime = +- kevent.u.keyButtonPointer.time = +- GetTimeInMillis(); +- +- /* +- * Repeat a key by faking a KeyRelease, and a KeyPress event in rapid +- * succession +- */ +- +- ENQUEUE(&kevent, keycode, KeyRelease, XE_KEYBOARD); +- ENQUEUE(&kevent, keycode, KeyPress, XE_KEYBOARD); +- +- /* And return the appropriate value so we get rescheduled */ +- return xf86Info.kbdRate; +-} +diff -ruN xf86-input-keyboard-1.2.0/src/sun_kbdMap.c xf86-input-keyboard/src/sun_kbdMap.c +--- xf86-input-keyboard-1.2.0/src/sun_kbdMap.c 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/src/sun_kbdMap.c 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,671 @@ ++/* ++ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. ++ * Copyright 1993 by David Dawes <dawes@xfree86.org> ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that copyright ++ * notice and this permission notice appear in supporting documentation, and ++ * that the names of Thomas Roell and David Dawes not be used in advertising or ++ * publicity pertaining to distribution of the software without specific, ++ * written prior permission. Thomas Roell and David Dawes make no ++ * representations about the suitability of this software for any purpose. It ++ * is provided "as is" without express or implied warranty. ++ * ++ * THOMAS ROELL AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. ++ * IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR ANY SPECIAL, ++ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include <X11/Xfuncproto.h> ++#include <X11/Sunkeysym.h> ++#include "atKeynames.h" ++#include "xf86OSKbd.h" ++#include "xf86Keymap.h" ++#include "sun_kbd.h" ++ ++#include <sys/kbd.h> ++ ++/* Map the Solaris keycodes to the "XFree86" keycodes. */ ++ ++/* Additional Sun Japanese Keyboard Keys not defined in common/atKeynames.h */ ++#define KEY_Kanji 0x82 ++#define KEY_Execute 0x83 ++ ++static unsigned char sunmap[256] = { ++#if defined(i386) || defined(__i386) || defined(__i386__) || defined(__x86) ++ KEY_NOTUSED, /* 0 */ ++ KEY_Tilde, /* 1 */ ++ KEY_1, /* 2 */ ++ KEY_2, /* 3 */ ++ KEY_3, /* 4 */ ++ KEY_4, /* 5 */ ++ KEY_5, /* 6 */ ++ KEY_6, /* 7 */ ++ KEY_7, /* 8 */ ++ KEY_8, /* 9 */ ++ KEY_9, /* 10 */ ++ KEY_0, /* 11 */ ++ KEY_Minus, /* 12 */ ++ KEY_Equal, /* 13 */ ++ 0x7D, /*KEY_P_YEN*/ /* 14 */ ++ KEY_BackSpace, /* 15 */ ++ KEY_Tab, /* 16 */ ++ KEY_Q, /* 17 */ ++ KEY_W, /* 18 */ ++ KEY_E, /* 19 */ ++ KEY_R, /* 20 */ ++ KEY_T, /* 21 */ ++ KEY_Y, /* 22 */ ++ KEY_U, /* 23 */ ++ KEY_I, /* 24 */ ++ KEY_O, /* 25 */ ++ KEY_P, /* 26 */ ++ KEY_LBrace, /* 27 */ ++ KEY_RBrace, /* 28 */ ++ KEY_BSlash, /* 29 */ ++ KEY_CapsLock, /* 30 */ ++ KEY_A, /* 31 */ ++ KEY_S, /* 32 */ ++ KEY_D, /* 33 */ ++ KEY_F, /* 34 */ ++ KEY_G, /* 35 */ ++ KEY_H, /* 36 */ ++ KEY_J, /* 37 */ ++ KEY_K, /* 38 */ ++ KEY_L, /* 39 */ ++ KEY_SemiColon, /* 40 */ ++ KEY_Quote, /* 41 */ ++ KEY_UNKNOWN, /* 42 */ ++ KEY_Enter, /* 43 */ ++ KEY_ShiftL, /* 44 */ ++ KEY_Less, /* 45 */ ++ KEY_Z, /* 46 */ ++ KEY_X, /* 47 */ ++ KEY_C, /* 48 */ ++ KEY_V, /* 49 */ ++ KEY_B, /* 50 */ ++ KEY_N, /* 51 */ ++ KEY_M, /* 52 */ ++ KEY_Comma, /* 53 */ ++ KEY_Period, /* 54 */ ++ KEY_Slash, /* 55 */ ++ KEY_BSlash2, /* 56 */ ++ KEY_ShiftR, /* 57 */ ++ KEY_LCtrl, /* 58 */ ++ KEY_LMeta, /* 59 */ ++ KEY_Alt, /* 60 */ ++ KEY_Space, /* 61 */ ++ KEY_AltLang, /* 62 */ ++ KEY_RMeta, /* 63 */ ++ KEY_RCtrl, /* 64 */ ++ KEY_Menu, /* 65 */ ++ KEY_UNKNOWN, /* 66 */ ++ KEY_UNKNOWN, /* 67 */ ++ KEY_UNKNOWN, /* 68 */ ++ KEY_UNKNOWN, /* 69 */ ++ KEY_UNKNOWN, /* 70 */ ++ KEY_UNKNOWN, /* 71 */ ++ KEY_UNKNOWN, /* 72 */ ++ KEY_UNKNOWN, /* 73 */ ++ KEY_UNKNOWN, /* 74 */ ++ KEY_Insert, /* 75 */ ++ KEY_Delete, /* 76 */ ++ KEY_UNKNOWN, /* 77 */ ++ KEY_UNKNOWN, /* 78 */ ++ KEY_Left, /* 79 */ ++ KEY_Home, /* 80 */ ++ KEY_End, /* 81 */ ++ KEY_UNKNOWN, /* 82 */ ++ KEY_Up, /* 83 */ ++ KEY_Down, /* 84 */ ++ KEY_PgUp, /* 85 */ ++ KEY_PgDown, /* 86 */ ++ KEY_UNKNOWN, /* 87 */ ++ KEY_UNKNOWN, /* 88 */ ++ KEY_Right, /* 89 */ ++ KEY_NumLock, /* 90 */ ++ KEY_KP_7, /* 91 */ ++ KEY_KP_4, /* 92 */ ++ KEY_KP_1, /* 93 */ ++ KEY_UNKNOWN, /* 94 */ ++ KEY_KP_Divide, /* 95 */ ++ KEY_KP_8, /* 96 */ ++ KEY_KP_5, /* 97 */ ++ KEY_KP_2, /* 98 */ ++ KEY_KP_0, /* 99 */ ++ KEY_KP_Multiply, /* 100 */ ++ KEY_KP_9, /* 101 */ ++ KEY_KP_6, /* 102 */ ++ KEY_KP_3, /* 103 */ ++ KEY_KP_Decimal, /* 104 */ ++ KEY_KP_Minus, /* 105 */ ++ KEY_KP_Plus, /* 106 */ ++ KEY_UNKNOWN, /* 107 */ ++ KEY_KP_Enter, /* 108 */ ++ KEY_UNKNOWN, /* 109 */ ++ KEY_Escape, /* 110 */ ++ KEY_UNKNOWN, /* 111 */ ++ KEY_F1, /* 112 */ ++ KEY_F2, /* 113 */ ++ KEY_F3, /* 114 */ ++ KEY_F4, /* 115 */ ++ KEY_F5, /* 116 */ ++ KEY_F6, /* 117 */ ++ KEY_F7, /* 118 */ ++ KEY_F8, /* 119 */ ++ KEY_F9, /* 120 */ ++ KEY_F10, /* 121 */ ++ KEY_F11, /* 122 */ ++ KEY_F12, /* 123 */ ++ KEY_Print, /* 124 */ ++ KEY_ScrollLock, /* 125 */ ++ KEY_Pause, /* 126 */ ++ KEY_UNKNOWN, /* 127 */ ++ KEY_UNKNOWN, /* 128 */ ++ KEY_UNKNOWN, /* 129 */ ++ KEY_UNKNOWN, /* 130 */ ++ KEY_NFER, /* 131 */ ++ KEY_XFER, /* 132 */ ++ KEY_HKTG, /* 133 */ ++ KEY_UNKNOWN, /* 134 */ ++#elif defined(sparc) || defined(__sparc__) ++ KEY_UNKNOWN, /* 0x00 */ ++ KEY_UNKNOWN, /* 0x01 */ ++ KEY_UNKNOWN, /* 0x02 */ ++ KEY_UNKNOWN, /* 0x03 */ ++ KEY_UNKNOWN, /* 0x04 */ ++ KEY_F1, /* 0x05 */ ++ KEY_F2, /* 0x06 */ ++ KEY_F10, /* 0x07 */ ++ KEY_F3, /* 0x08 */ ++ KEY_F11, /* 0x09 */ ++ KEY_F4, /* 0x0A */ ++ KEY_F12, /* 0x0B */ ++ KEY_F5, /* 0x0C */ ++ KEY_UNKNOWN, /* 0x0D */ ++ KEY_F6, /* 0x0E */ ++ KEY_UNKNOWN, /* 0x0F */ ++ KEY_F7, /* 0x10 */ ++ KEY_F8, /* 0x11 */ ++ KEY_F9, /* 0x12 */ ++ KEY_Alt, /* 0x13 */ ++ KEY_Up, /* 0x14 */ ++ KEY_Pause, /* 0x15 */ ++ KEY_SysReqest, /* 0x16 */ ++ KEY_ScrollLock, /* 0x17 */ ++ KEY_Left, /* 0x18 */ ++ KEY_UNKNOWN, /* 0x19 */ ++ KEY_UNKNOWN, /* 0x1A */ ++ KEY_Down, /* 0x1B */ ++ KEY_Right, /* 0x1C */ ++ KEY_Escape, /* 0x1D */ ++ KEY_1, /* 0x1E */ ++ KEY_2, /* 0x1F */ ++ KEY_3, /* 0x20 */ ++ KEY_4, /* 0x21 */ ++ KEY_5, /* 0x22 */ ++ KEY_6, /* 0x23 */ ++ KEY_7, /* 0x24 */ ++ KEY_8, /* 0x25 */ ++ KEY_9, /* 0x26 */ ++ KEY_0, /* 0x27 */ ++ KEY_Minus, /* 0x28 */ ++ KEY_Equal, /* 0x29 */ ++ KEY_Tilde, /* 0x2A */ ++ KEY_BackSpace, /* 0x2B */ ++ KEY_Insert, /* 0x2C */ ++ KEY_UNKNOWN, /* 0x2D */ ++ KEY_KP_Divide, /* 0x2E */ ++ KEY_KP_Multiply, /* 0x2F */ ++ KEY_UNKNOWN, /* 0x30 */ ++ KEY_UNKNOWN, /* 0x31 */ ++ KEY_KP_Decimal, /* 0x32 */ ++ KEY_UNKNOWN, /* 0x33 */ ++ KEY_Home, /* 0x34 */ ++ KEY_Tab, /* 0x35 */ ++ KEY_Q, /* 0x36 */ ++ KEY_W, /* 0x37 */ ++ KEY_E, /* 0x38 */ ++ KEY_R, /* 0x39 */ ++ KEY_T, /* 0x3A */ ++ KEY_Y, /* 0x3B */ ++ KEY_U, /* 0x3C */ ++ KEY_I, /* 0x3D */ ++ KEY_O, /* 0x3E */ ++ KEY_P, /* 0x3F */ ++ KEY_LBrace, /* 0x40 */ ++ KEY_RBrace, /* 0x41 */ ++ KEY_Delete, /* 0x42 */ ++ KEY_UNKNOWN, /* 0x43 */ ++ KEY_KP_7, /* 0x44 */ ++ KEY_KP_8, /* 0x45 */ ++ KEY_KP_9, /* 0x46 */ ++ KEY_KP_Minus, /* 0x47 */ ++ KEY_UNKNOWN, /* 0x48 */ ++ KEY_UNKNOWN, /* 0x49 */ ++ KEY_End, /* 0x4A */ ++ KEY_UNKNOWN, /* 0x4B */ ++ KEY_LCtrl, /* 0x4C */ ++ KEY_A, /* 0x4D */ ++ KEY_S, /* 0x4E */ ++ KEY_D, /* 0x4F */ ++ KEY_F, /* 0x50 */ ++ KEY_G, /* 0x51 */ ++ KEY_H, /* 0x52 */ ++ KEY_J, /* 0x53 */ ++ KEY_K, /* 0x54 */ ++ KEY_L, /* 0x55 */ ++ KEY_SemiColon, /* 0x56 */ ++ KEY_Quote, /* 0x57 */ ++ KEY_BSlash, /* 0x58 */ ++ KEY_Enter, /* 0x59 */ ++ KEY_KP_Enter, /* 0x5A */ ++ KEY_KP_4, /* 0x5B */ ++ KEY_KP_5, /* 0x5C */ ++ KEY_KP_6, /* 0x5D */ ++ KEY_KP_0, /* 0x5E */ ++ KEY_UNKNOWN, /* 0x5F */ ++ KEY_PgUp, /* 0x60 */ ++ KEY_UNKNOWN, /* 0x61 */ ++ KEY_NumLock, /* 0x62 */ ++ KEY_ShiftL, /* 0x63 */ ++ KEY_Z, /* 0x64 */ ++ KEY_X, /* 0x65 */ ++ KEY_C, /* 0x66 */ ++ KEY_V, /* 0x67 */ ++ KEY_B, /* 0x68 */ ++ KEY_N, /* 0x69 */ ++ KEY_M, /* 0x6A */ ++ KEY_Comma, /* 0x6B */ ++ KEY_Period, /* 0x6C */ ++ KEY_Slash, /* 0x6D */ ++ KEY_ShiftR, /* 0x6E */ ++ KEY_UNKNOWN, /* 0x6F */ ++ KEY_KP_1, /* 0x70 */ ++ KEY_KP_2, /* 0x71 */ ++ KEY_KP_3, /* 0x72 */ ++ KEY_UNKNOWN, /* 0x73 */ ++ KEY_UNKNOWN, /* 0x74 */ ++ KEY_UNKNOWN, /* 0x75 */ ++ KEY_UNKNOWN, /* 0x76 */ ++ KEY_CapsLock, /* 0x77 */ ++ KEY_LMeta, /* 0x78 */ ++ KEY_Space, /* 0x79 */ ++ KEY_RMeta, /* 0x7A */ ++ KEY_PgDown, /* 0x7B */ ++ KEY_UNKNOWN, /* 0x7C */ ++ KEY_KP_Plus, /* 0x7D */ ++ KEY_UNKNOWN, /* 0x7E */ ++ KEY_UNKNOWN, /* 0x7F */ ++#endif ++ /* The rest default to KEY_UNKNOWN */ ++}; ++ ++static ++TransMapRec sunTransMap = { ++ 0, ++ (sizeof(sunmap)/sizeof(unsigned char)), ++ sunmap ++}; ++ ++#if defined(KB_USB) ++static unsigned char usbmap[256] = { ++/* ++ * partially taken from ../bsd/bsd_KbdMap.c ++ * ++ * added keycodes for Sun special keys (left function keys, audio control) ++ */ ++ /* 0 */ KEY_NOTUSED, ++ /* 1 */ KEY_NOTUSED, ++ /* 2 */ KEY_NOTUSED, ++ /* 3 */ KEY_NOTUSED, ++ /* 4 */ KEY_A, ++ /* 5 */ KEY_B, ++ /* 6 */ KEY_C, ++ /* 7 */ KEY_D, ++ /* 8 */ KEY_E, ++ /* 9 */ KEY_F, ++ /* 10 */ KEY_G, ++ /* 11 */ KEY_H, ++ /* 12 */ KEY_I, ++ /* 13 */ KEY_J, ++ /* 14 */ KEY_K, ++ /* 15 */ KEY_L, ++ /* 16 */ KEY_M, ++ /* 17 */ KEY_N, ++ /* 18 */ KEY_O, ++ /* 19 */ KEY_P, ++ /* 20 */ KEY_Q, ++ /* 21 */ KEY_R, ++ /* 22 */ KEY_S, ++ /* 23 */ KEY_T, ++ /* 24 */ KEY_U, ++ /* 25 */ KEY_V, ++ /* 26 */ KEY_W, ++ /* 27 */ KEY_X, ++ /* 28 */ KEY_Y, ++ /* 29 */ KEY_Z, ++ /* 30 */ KEY_1, /* 1 !*/ ++ /* 31 */ KEY_2, /* 2 @ */ ++ /* 32 */ KEY_3, /* 3 # */ ++ /* 33 */ KEY_4, /* 4 $ */ ++ /* 34 */ KEY_5, /* 5 % */ ++ /* 35 */ KEY_6, /* 6 ^ */ ++ /* 36 */ KEY_7, /* 7 & */ ++ /* 37 */ KEY_8, /* 8 * */ ++ /* 38 */ KEY_9, /* 9 ( */ ++ /* 39 */ KEY_0, /* 0 ) */ ++ /* 40 */ KEY_Enter, /* Return */ ++ /* 41 */ KEY_Escape, /* Escape */ ++ /* 42 */ KEY_BackSpace, /* Backspace Delete */ ++ /* 43 */ KEY_Tab, /* Tab */ ++ /* 44 */ KEY_Space, /* Space */ ++ /* 45 */ KEY_Minus, /* - _ */ ++ /* 46 */ KEY_Equal, /* = + */ ++ /* 47 */ KEY_LBrace, /* [ { */ ++ /* 48 */ KEY_RBrace, /* ] } */ ++ /* 49 */ KEY_BSlash, /* \ | */ ++ /* 50 */ KEY_BSlash, /* \ _ # ~ on some keyboards */ ++ /* 51 */ KEY_SemiColon, /* ; : */ ++ /* 52 */ KEY_Quote, /* ' " */ ++ /* 53 */ KEY_Tilde, /* ` ~ */ ++ /* 54 */ KEY_Comma, /* , < */ ++ /* 55 */ KEY_Period, /* . > */ ++ /* 56 */ KEY_Slash, /* / ? */ ++ /* 57 */ KEY_CapsLock, /* Caps Lock */ ++ /* 58 */ KEY_F1, /* F1 */ ++ /* 59 */ KEY_F2, /* F2 */ ++ /* 60 */ KEY_F3, /* F3 */ ++ /* 61 */ KEY_F4, /* F4 */ ++ /* 62 */ KEY_F5, /* F5 */ ++ /* 63 */ KEY_F6, /* F6 */ ++ /* 64 */ KEY_F7, /* F7 */ ++ /* 65 */ KEY_F8, /* F8 */ ++ /* 66 */ KEY_F9, /* F9 */ ++ /* 67 */ KEY_F10, /* F10 */ ++ /* 68 */ KEY_F11, /* F11 */ ++ /* 69 */ KEY_F12, /* F12 */ ++ /* 70 */ KEY_Print, /* PrintScrn SysReq */ ++ /* 71 */ KEY_ScrollLock, /* Scroll Lock */ ++ /* 72 */ KEY_Pause, /* Pause Break */ ++ /* 73 */ KEY_Insert, /* Insert XXX Help on some Mac Keyboards */ ++ /* 74 */ KEY_Home, /* Home */ ++ /* 75 */ KEY_PgUp, /* Page Up */ ++ /* 76 */ KEY_Delete, /* Delete */ ++ /* 77 */ KEY_End, /* End */ ++ /* 78 */ KEY_PgDown, /* Page Down */ ++ /* 79 */ KEY_Right, /* Right Arrow */ ++ /* 80 */ KEY_Left, /* Left Arrow */ ++ /* 81 */ KEY_Down, /* Down Arrow */ ++ /* 82 */ KEY_Up, /* Up Arrow */ ++ /* 83 */ KEY_NumLock, /* Num Lock */ ++ /* 84 */ KEY_KP_Divide, /* Keypad / */ ++ /* 85 */ KEY_KP_Multiply, /* Keypad * */ ++ /* 86 */ KEY_KP_Minus, /* Keypad - */ ++ /* 87 */ KEY_KP_Plus, /* Keypad + */ ++ /* 88 */ KEY_KP_Enter, /* Keypad Enter */ ++ /* 89 */ KEY_KP_1, /* Keypad 1 End */ ++ /* 90 */ KEY_KP_2, /* Keypad 2 Down */ ++ /* 91 */ KEY_KP_3, /* Keypad 3 Pg Down */ ++ /* 92 */ KEY_KP_4, /* Keypad 4 Left */ ++ /* 93 */ KEY_KP_5, /* Keypad 5 */ ++ /* 94 */ KEY_KP_6, /* Keypad 6 */ ++ /* 95 */ KEY_KP_7, /* Keypad 7 Home */ ++ /* 96 */ KEY_KP_8, /* Keypad 8 Up */ ++ /* 97 */ KEY_KP_9, /* KEypad 9 Pg Up */ ++ /* 98 */ KEY_KP_0, /* Keypad 0 Ins */ ++ /* 99 */ KEY_KP_Decimal, /* Keypad . Del */ ++ /* 100 */ KEY_Less, /* < > on some keyboards */ ++ /* 101 */ KEY_Menu, /* Menu */ ++ /* 102 */ KEY_Power, /* Sun: Power */ ++ /* 103 */ KEY_KP_Equal, /* Keypad = on Mac keyboards */ ++ /* 104 */ KEY_NOTUSED, ++ /* 105 */ KEY_NOTUSED, ++ /* 106 */ KEY_NOTUSED, ++ /* 107 */ KEY_NOTUSED, ++ /* 108 */ KEY_NOTUSED, ++ /* 109 */ KEY_NOTUSED, ++ /* 110 */ KEY_NOTUSED, ++ /* 111 */ KEY_NOTUSED, ++ /* 112 */ KEY_NOTUSED, ++ /* 113 */ KEY_NOTUSED, ++ /* 114 */ KEY_NOTUSED, ++ /* 115 */ KEY_NOTUSED, ++ /* 116 */ KEY_L7, /* Sun: Open */ ++ /* 117 */ KEY_Help, /* Sun: Help */ ++ /* 118 */ KEY_L3, /* Sun: Props */ ++ /* 119 */ KEY_L5, /* Sun: Front */ ++ /* 120 */ KEY_L1, /* Sun: Stop */ ++ /* 121 */ KEY_L2, /* Sun: Again */ ++ /* 122 */ KEY_L4, /* Sun: Undo */ ++ /* 123 */ KEY_L10, /* Sun: Cut */ ++ /* 124 */ KEY_L6, /* Sun: Copy */ ++ /* 125 */ KEY_L8, /* Sun: Paste */ ++ /* 126 */ KEY_L9, /* Sun: Find */ ++ /* 127 */ KEY_Mute, /* Sun: AudioMute */ ++ /* 128 */ KEY_AudioRaise, /* Sun: AudioRaise */ ++ /* 129 */ KEY_AudioLower, /* Sun: AudioLower */ ++ /* 130 */ KEY_NOTUSED, ++ /* 131 */ KEY_NOTUSED, ++ /* 132 */ KEY_NOTUSED, ++ /* 133 */ KEY_NOTUSED, ++ /* 134 */ KEY_NOTUSED, ++ /* 135 */ KEY_BSlash2, /* Sun Japanese Kbd: Backslash / Underscore */ ++ /* 136 */ KEY_XFER, /* Sun Japanese Kbd: Henkan Mode */ ++ /* 137 */ KEY_Yen, /* Sun Japanese Kbd: Yen / Brokenbar */ ++ /* 138 */ KEY_Kanji, /* Sun Japanese Kbd: Kanji */ ++ /* 139 */ KEY_Execute, /* Sun Japanese Kbd: Execute */ ++ /* 140 */ KEY_NOTUSED, ++ /* 141 */ KEY_NOTUSED, ++ /* 142 */ KEY_NOTUSED, ++ /* 143 */ KEY_NOTUSED, ++ /* 144 */ KEY_NOTUSED, ++ /* 145 */ KEY_NOTUSED, ++ /* 146 */ KEY_NOTUSED, ++ /* 147 */ KEY_NOTUSED, ++ /* 148 */ KEY_NOTUSED, ++ /* 149 */ KEY_NOTUSED, ++ /* 150 */ KEY_NOTUSED, ++ /* 151 */ KEY_NOTUSED, ++ /* 152 */ KEY_NOTUSED, ++ /* 153 */ KEY_NOTUSED, ++ /* 154 */ KEY_NOTUSED, ++ /* 155 */ KEY_NOTUSED, ++ /* 156 */ KEY_NOTUSED, ++ /* 157 */ KEY_NOTUSED, ++ /* 158 */ KEY_NOTUSED, ++ /* 159 */ KEY_NOTUSED, ++ /* 160 */ KEY_NOTUSED, ++ /* 161 */ KEY_NOTUSED, ++ /* 162 */ KEY_NOTUSED, ++ /* 163 */ KEY_NOTUSED, ++ /* 164 */ KEY_NOTUSED, ++ /* 165 */ KEY_NOTUSED, ++ /* 166 */ KEY_NOTUSED, ++ /* 167 */ KEY_NOTUSED, ++ /* 168 */ KEY_NOTUSED, ++ /* 169 */ KEY_NOTUSED, ++ /* 170 */ KEY_NOTUSED, ++ /* 171 */ KEY_NOTUSED, ++ /* 172 */ KEY_NOTUSED, ++ /* 173 */ KEY_NOTUSED, ++ /* 174 */ KEY_NOTUSED, ++ /* 175 */ KEY_NOTUSED, ++ /* 176 */ KEY_NOTUSED, ++ /* 177 */ KEY_NOTUSED, ++ /* 178 */ KEY_NOTUSED, ++ /* 179 */ KEY_NOTUSED, ++ /* 180 */ KEY_NOTUSED, ++ /* 181 */ KEY_NOTUSED, ++ /* 182 */ KEY_NOTUSED, ++ /* 183 */ KEY_NOTUSED, ++ /* 184 */ KEY_NOTUSED, ++ /* 185 */ KEY_NOTUSED, ++ /* 186 */ KEY_NOTUSED, ++ /* 187 */ KEY_NOTUSED, ++ /* 188 */ KEY_NOTUSED, ++ /* 189 */ KEY_NOTUSED, ++ /* 190 */ KEY_NOTUSED, ++ /* 191 */ KEY_NOTUSED, ++ /* 192 */ KEY_NOTUSED, ++ /* 193 */ KEY_NOTUSED, ++ /* 194 */ KEY_NOTUSED, ++ /* 195 */ KEY_NOTUSED, ++ /* 196 */ KEY_NOTUSED, ++ /* 197 */ KEY_NOTUSED, ++ /* 198 */ KEY_NOTUSED, ++ /* 199 */ KEY_NOTUSED, ++ /* 200 */ KEY_NOTUSED, ++ /* 201 */ KEY_NOTUSED, ++ /* 202 */ KEY_NOTUSED, ++ /* 203 */ KEY_NOTUSED, ++ /* 204 */ KEY_NOTUSED, ++ /* 205 */ KEY_NOTUSED, ++ /* 206 */ KEY_NOTUSED, ++ /* 207 */ KEY_NOTUSED, ++ /* 208 */ KEY_NOTUSED, ++ /* 209 */ KEY_NOTUSED, ++ /* 210 */ KEY_NOTUSED, ++ /* 211 */ KEY_NOTUSED, ++ /* 212 */ KEY_NOTUSED, ++ /* 213 */ KEY_NOTUSED, ++ /* 214 */ KEY_NOTUSED, ++ /* 215 */ KEY_NOTUSED, ++ /* 216 */ KEY_NOTUSED, ++ /* 217 */ KEY_NOTUSED, ++ /* 218 */ KEY_NOTUSED, ++ /* 219 */ KEY_NOTUSED, ++ /* 220 */ KEY_NOTUSED, ++ /* 221 */ KEY_NOTUSED, ++ /* 222 */ KEY_NOTUSED, ++ /* 223 */ KEY_NOTUSED, ++ /* 224 */ KEY_LCtrl, /* Left Control */ ++ /* 225 */ KEY_ShiftL, /* Left Shift */ ++ /* 226 */ KEY_Alt, /* Left Alt */ ++ /* 227 */ KEY_LMeta, /* Left Meta */ ++ /* 228 */ KEY_RCtrl, /* Right Control */ ++ /* 229 */ KEY_ShiftR, /* Right Shift */ ++ /* 230 */ KEY_AltLang, /* Right Alt, AKA AltGr */ ++ /* 231 */ KEY_RMeta, /* Right Meta */ ++}; ++ ++static ++TransMapRec usbTransMap = { ++ 0, ++ (sizeof(usbmap)/sizeof(unsigned char)), ++ usbmap ++}; ++#endif /* KB_USB */ ++ ++_X_HIDDEN void ++KbdGetMapping (InputInfoPtr pInfo, KeySymsPtr pKeySyms, CARD8 *pModMap) ++{ ++ KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; ++ sunKbdPrivPtr priv = (sunKbdPrivPtr) pKbd->private; ++ const unsigned char *keymap; ++ int i; ++ KeySym *k; ++ ++#if defined(KB_USB) ++ if (priv->ktype == KB_USB) ++ pKbd->scancodeMap = &usbTransMap; ++ else ++#endif ++ pKbd->scancodeMap = &sunTransMap; ++ ++ /* ++ * Add Sun keyboard keysyms to default map ++ */ ++#define map_for_key(k,c) map[(k * GLYPHS_PER_KEY) + c] ++ map_for_key(KEY_Kanji, 0) = XK_Kanji; ++ map_for_key(KEY_Execute, 0) = XK_Execute; ++ map_for_key(KEY_Power, 0) = SunXK_PowerSwitch; ++ map_for_key(KEY_Power, 1) = SunXK_PowerSwitchShift; ++ map_for_key(KEY_Mute, 0) = SunXK_AudioMute; ++ map_for_key(KEY_Mute, 1) = SunXK_VideoDegauss; ++ map_for_key(KEY_AudioLower, 0) = SunXK_AudioLowerVolume; ++ map_for_key(KEY_AudioLower, 1) = SunXK_VideoLowerBrightness; ++ map_for_key(KEY_AudioRaise, 0) = SunXK_AudioRaiseVolume; ++ map_for_key(KEY_AudioRaise, 1) = SunXK_VideoRaiseBrightness; ++ map_for_key(KEY_Help, 0) = XK_Help; ++ map_for_key(KEY_L1, 0) = XK_L1; ++ map_for_key(KEY_L2, 0) = XK_L2; ++ map_for_key(KEY_L3, 0) = XK_L3; ++ map_for_key(KEY_L4, 0) = XK_L4; ++ map_for_key(KEY_L5, 0) = XK_L5; ++ map_for_key(KEY_L6, 0) = XK_L6; ++ map_for_key(KEY_L7, 0) = XK_L7; ++ map_for_key(KEY_L8, 0) = XK_L8; ++ map_for_key(KEY_L9, 0) = XK_L9; ++ map_for_key(KEY_L10, 0) = XK_L10; ++ map_for_key(KEY_F11, 0) = SunXK_F36; ++ map_for_key(KEY_F12, 0) = SunXK_F37; ++ map_for_key(KEY_Menu, 0) = XK_Multi_key; ++ ++ /* ++ * compute the modifier map ++ */ ++ for (i = 0; i < MAP_LENGTH; i++) ++ pModMap[i] = NoSymbol; /* make sure it is restored */ ++ ++ for (k = map, i = MIN_KEYCODE; ++ i < (NUM_KEYCODES + MIN_KEYCODE); ++ i++, k += 4) ++ { ++ switch(*k) { ++ ++ case XK_Shift_L: ++ case XK_Shift_R: ++ pModMap[i] = ShiftMask; ++ break; ++ ++ case XK_Control_L: ++ case XK_Control_R: ++ pModMap[i] = ControlMask; ++ break; ++ ++ case XK_Caps_Lock: ++ pModMap[i] = LockMask; ++ break; ++ ++ case XK_Alt_L: ++ case XK_Alt_R: ++ pModMap[i] = AltMask; ++ break; ++ ++ case XK_Num_Lock: ++ pModMap[i] = NumLockMask; ++ break; ++ ++ case XK_Scroll_Lock: ++ pModMap[i] = ScrollLockMask; ++ break; ++ ++ /* kana support */ ++ case XK_Kana_Lock: ++ case XK_Kana_Shift: ++ pModMap[i] = KanaMask; ++ break; ++ ++ /* alternate toggle for multinational support */ ++ case XK_Mode_switch: ++ pModMap[i] = AltLangMask; ++ break; ++ ++ } ++ } ++ ++ pKeySyms->map = map; ++ pKeySyms->mapWidth = GLYPHS_PER_KEY; ++ pKeySyms->minKeyCode = MIN_KEYCODE; ++ pKeySyms->maxKeyCode = MAX_KEYCODE; ++} +diff -ruN xf86-input-keyboard-1.2.0/src/xf86Keymap.h xf86-input-keyboard/src/xf86Keymap.h +--- xf86-input-keyboard-1.2.0/src/xf86Keymap.h 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/src/xf86Keymap.h 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,308 @@ ++ ++/* ++ * Copyright (c) 1994-2002 by The XFree86 Project, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ * ++ * Except as contained in this notice, the name of the copyright holder(s) ++ * and author(s) shall not be used in advertising or otherwise to promote ++ * the sale, use or other dealings in this Software without prior written ++ * authorization from the copyright holder(s) and author(s). ++ */ ++ ++/* ++ * ++ * For Scancodes see notes in atKeynames.h !!!! ++ * ++ */ ++/* $XConsortium: xf86Keymap.h /main/14 1996/02/21 17:38:47 kaleb $ */ ++ ++#include "xorg-server.h" ++ ++static KeySym map[NUM_KEYCODES * GLYPHS_PER_KEY] = { ++ ++ /* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x01 */ XK_Escape, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x02 */ XK_1, XK_exclam, NoSymbol, NoSymbol, ++ /* 0x03 */ XK_2, XK_at, NoSymbol, NoSymbol, ++ /* 0x04 */ XK_3, XK_numbersign, NoSymbol, NoSymbol, ++ /* 0x05 */ XK_4, XK_dollar, NoSymbol, NoSymbol, ++ /* 0x06 */ XK_5, XK_percent, NoSymbol, NoSymbol, ++ /* 0x07 */ XK_6, XK_asciicircum, NoSymbol, NoSymbol, ++ /* 0x08 */ XK_7, XK_ampersand, NoSymbol, NoSymbol, ++ /* 0x09 */ XK_8, XK_asterisk, NoSymbol, NoSymbol, ++ /* 0x0a */ XK_9, XK_parenleft, NoSymbol, NoSymbol, ++ /* 0x0b */ XK_0, XK_parenright, NoSymbol, NoSymbol, ++ /* 0x0c */ XK_minus, XK_underscore, NoSymbol, NoSymbol, ++ /* 0x0d */ XK_equal, XK_plus, NoSymbol, NoSymbol, ++ /* 0x0e */ XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x0f */ XK_Tab, XK_ISO_Left_Tab,NoSymbol, NoSymbol, ++ /* 0x10 */ XK_Q, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x11 */ XK_W, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x12 */ XK_E, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x13 */ XK_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x14 */ XK_T, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x15 */ XK_Y, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x16 */ XK_U, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x17 */ XK_I, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x18 */ XK_O, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x19 */ XK_P, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1a */ XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, ++ /* 0x1b */ XK_bracketright,XK_braceright, NoSymbol, NoSymbol, ++ /* 0x1c */ XK_Return, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1d */ XK_Control_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1e */ XK_A, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1f */ XK_S, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x20 */ XK_D, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x21 */ XK_F, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x22 */ XK_G, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x23 */ XK_H, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x24 */ XK_J, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x25 */ XK_K, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x26 */ XK_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x27 */ XK_semicolon, XK_colon, NoSymbol, NoSymbol, ++ /* 0x28 */ XK_quoteright, XK_quotedbl, NoSymbol, NoSymbol, ++ /* 0x29 */ XK_quoteleft, XK_asciitilde, NoSymbol, NoSymbol, ++ /* 0x2a */ XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2b */ XK_backslash, XK_bar, NoSymbol, NoSymbol, ++ /* 0x2c */ XK_Z, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2d */ XK_X, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2e */ XK_C, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2f */ XK_V, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x30 */ XK_B, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x31 */ XK_N, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x32 */ XK_M, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x33 */ XK_comma, XK_less, NoSymbol, NoSymbol, ++ /* 0x34 */ XK_period, XK_greater, NoSymbol, NoSymbol, ++ /* 0x35 */ XK_slash, XK_question, NoSymbol, NoSymbol, ++ /* 0x36 */ XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x37 */ XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x38 */ XK_Alt_L, XK_Meta_L, NoSymbol, NoSymbol, ++ /* 0x39 */ XK_space, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3a */ XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3b */ XK_F1, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3c */ XK_F2, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3d */ XK_F3, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3e */ XK_F4, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3f */ XK_F5, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x40 */ XK_F6, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x41 */ XK_F7, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x42 */ XK_F8, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x43 */ XK_F9, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x44 */ XK_F10, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x45 */ XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x46 */ XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x47 */ XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, ++ /* 0x48 */ XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, ++ /* 0x49 */ XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, ++ /* 0x4a */ XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x4b */ XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, ++ /* 0x4c */ XK_KP_Begin, XK_KP_5, NoSymbol, NoSymbol, ++ /* 0x4d */ XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, ++ /* 0x4e */ XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x4f */ XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, ++ /* 0x50 */ XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, ++ /* 0x51 */ XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, ++ /* 0x52 */ XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, ++ /* 0x53 */ XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, ++ /* 0x54 */ XK_Sys_Req, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x55 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x56 */ XK_less, XK_greater, NoSymbol, NoSymbol, ++ /* 0x57 */ XK_F11, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x58 */ XK_F12, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x59 */ XK_Home, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5a */ XK_Up, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5b */ XK_Prior, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5c */ XK_Left, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5d */ XK_Begin, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5e */ XK_Right, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5f */ XK_End, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x60 */ XK_Down, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x61 */ XK_Next, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x62 */ XK_Insert, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x63 */ XK_Delete, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x64 */ XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x65 */ XK_Control_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x66 */ XK_Pause, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x67 */ XK_Print, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x68 */ XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x69 */ XK_Alt_R, XK_Meta_R, NoSymbol, NoSymbol, ++ /* 0x6a */ XK_Break, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6b */ XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6c */ XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6d */ XK_Menu, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6e */ XK_F13, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6f */ XK_F14, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x70 */ XK_F15, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x71 */ XK_F16, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x72 */ XK_F17, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x73 */ XK_backslash, XK_underscore, NoSymbol, NoSymbol, ++ /* 0x74 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x75 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x76 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x77 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x78 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x79 */ XK_Henkan, XK_Mode_switch, NoSymbol, NoSymbol, ++ /* 0x7a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7b */ XK_Muhenkan, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7d */ XK_backslash, XK_bar, NoSymbol, NoSymbol, ++ /* 0x7e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++}; ++ ++#if !defined(Lynx) && \ ++ !defined(__UNIXOS2__) && \ ++ !defined(__mips__) && \ ++ !defined(linux) && \ ++ !defined(CSRG_BASED) && \ ++ !defined(__CYGWIN__) && \ ++ !defined(__SOL8__) && \ ++ (!defined(sun) || defined(i386)) ++ ++static KeySym map84[NUM_KEYCODES * GLYPHS_PER_KEY] = { ++ /* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x01 */ XK_Escape, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x02 */ XK_1, XK_exclam, NoSymbol, NoSymbol, ++ /* 0x03 */ XK_2, XK_at, NoSymbol, NoSymbol, ++ /* 0x04 */ XK_3, XK_numbersign, NoSymbol, NoSymbol, ++ /* 0x05 */ XK_4, XK_dollar, NoSymbol, NoSymbol, ++ /* 0x06 */ XK_5, XK_percent, NoSymbol, NoSymbol, ++ /* 0x07 */ XK_6, XK_asciicircum, NoSymbol, NoSymbol, ++ /* 0x08 */ XK_7, XK_ampersand, NoSymbol, NoSymbol, ++ /* 0x09 */ XK_8, XK_asterisk, NoSymbol, NoSymbol, ++ /* 0x0a */ XK_9, XK_parenleft, NoSymbol, NoSymbol, ++ /* 0x0b */ XK_0, XK_parenright, NoSymbol, NoSymbol, ++ /* 0x0c */ XK_minus, XK_underscore, NoSymbol, NoSymbol, ++ /* 0x0d */ XK_equal, XK_plus, NoSymbol, NoSymbol, ++ /* 0x0e */ XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x0f */ XK_Tab, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x10 */ XK_Q, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x11 */ XK_W, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x12 */ XK_E, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x13 */ XK_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x14 */ XK_T, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x15 */ XK_Y, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x16 */ XK_U, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x17 */ XK_I, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x18 */ XK_O, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x19 */ XK_P, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1a */ XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, ++ /* 0x1b */ XK_bracketright,XK_braceright, NoSymbol, NoSymbol, ++ /* 0x1c */ XK_Return, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1d */ XK_Control_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1e */ XK_A, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x1f */ XK_S, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x20 */ XK_D, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x21 */ XK_F, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x22 */ XK_G, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x23 */ XK_H, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x24 */ XK_J, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x25 */ XK_K, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x26 */ XK_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x27 */ XK_semicolon, XK_colon, NoSymbol, NoSymbol, ++ /* 0x28 */ XK_quoteright, XK_quotedbl, NoSymbol, NoSymbol, ++ /* 0x29 */ XK_quoteleft, XK_asciitilde, NoSymbol, NoSymbol, ++ /* 0x2a */ XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2b */ XK_backslash, XK_bar, NoSymbol, NoSymbol, ++ /* 0x2c */ XK_Z, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2d */ XK_X, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2e */ XK_C, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x2f */ XK_V, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x30 */ XK_B, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x31 */ XK_N, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x32 */ XK_M, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x33 */ XK_comma, XK_less, NoSymbol, NoSymbol, ++ /* 0x34 */ XK_period, XK_greater, NoSymbol, NoSymbol, ++ /* 0x35 */ XK_slash, XK_question, NoSymbol, NoSymbol, ++ /* 0x36 */ XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x37 */ XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x38 */ XK_Alt_L, XK_Meta_L, NoSymbol, NoSymbol, ++ /* 0x39 */ XK_space, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3a */ XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3b */ XK_F1, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3c */ XK_F2, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3d */ XK_F3, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3e */ XK_F4, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x3f */ XK_F5, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x40 */ XK_F6, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x41 */ XK_F7, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x42 */ XK_F8, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x43 */ XK_F9, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x44 */ XK_F10, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x45 */ XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x46 */ XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x47 */ XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, ++ /* 0x48 */ XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, ++ /* 0x49 */ XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, ++ /* 0x4a */ XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x4b */ XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, ++ /* 0x4c */ NoSymbol, XK_KP_5, NoSymbol, NoSymbol, ++ /* 0x4d */ XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, ++ /* 0x4e */ XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x4f */ XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, ++ /* 0x50 */ XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, ++ /* 0x51 */ XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, ++ /* 0x52 */ XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, ++ /* 0x53 */ XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, ++ /* 0x54 */ XK_Sys_Req, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x55 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x56 */ XK_less, XK_greater, NoSymbol, NoSymbol, ++ /* 0x57 */ XK_F11, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x58 */ XK_F12, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x59 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x5f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x60 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x61 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x62 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x63 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x64 */ XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x65 */ XK_Control_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x66 */ XK_Pause, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x67 */ XK_Print, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x68 */ XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x69 */ XK_Alt_R, XK_Meta_R, NoSymbol, NoSymbol, ++ /* 0x6a */ XK_Break, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6b */ XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6c */ XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6d */ XK_Menu, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x6f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x70 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x71 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x72 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x73 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x74 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x75 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x76 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x77 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x78 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x79 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++ /* 0x7e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, ++}; ++#endif +diff -ruN xf86-input-keyboard-1.2.0/src/xf86OSKbd.h xf86-input-keyboard/src/xf86OSKbd.h +--- xf86-input-keyboard-1.2.0/src/xf86OSKbd.h 1970-01-01 00:00:00.000000000 +0000 ++++ xf86-input-keyboard/src/xf86OSKbd.h 2007-09-03 10:34:00.000000000 +0000 +@@ -0,0 +1,132 @@ ++/* ++ * Copyright (c) 2002-2003 by The XFree86 Project, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ * ++ * Except as contained in this notice, the name of the copyright holder(s) ++ * and author(s) shall not be used in advertising or otherwise to promote ++ * the sale, use or other dealings in this Software without prior written ++ * authorization from the copyright holder(s) and author(s). ++ * ++ * Author: Ivan Pascal. ++ */ ++ ++#include "xf86Xinput.h" ++ ++Bool ATScancode(InputInfoPtr pInfo, int *scanCode); ++ ++/* Public interface to OS-specific keyboard support. */ ++ ++typedef int (*KbdInitProc)(InputInfoPtr pInfo, int what); ++typedef int (*KbdOnProc)(InputInfoPtr pInfo, int what); ++typedef int (*KbdOffProc)(InputInfoPtr pInfo, int what); ++typedef void (*BellProc)(InputInfoPtr pInfo, ++ int loudness, int pitch, int duration); ++typedef void (*SetLedsProc)(InputInfoPtr pInfo, int leds); ++typedef int (*GetLedsProc)(InputInfoPtr pInfo); ++typedef void (*SetKbdRepeatProc)(InputInfoPtr pInfo, char rad); ++typedef void (*KbdGetMappingProc)(InputInfoPtr pInfo, ++ KeySymsPtr pKeySyms, CARD8* pModMap); ++typedef int (*GetSpecialKeyProc)(InputInfoPtr pInfo, int scanCode); ++typedef Bool (*SpecialKeyProc)(InputInfoPtr pInfo, ++ int key, Bool down, int modifiers); ++typedef int (*RemapScanCodeProc)(InputInfoPtr pInfo, int *scanCode); ++typedef Bool (*OpenKeyboardProc)(InputInfoPtr pInfo); ++typedef void (*PostEventProc)(InputInfoPtr pInfo, ++ unsigned int key, Bool down); ++typedef struct { ++ int begin; ++ int end; ++ unsigned char *map; ++} TransMapRec, *TransMapPtr; ++ ++typedef struct { ++ KbdInitProc KbdInit; ++ KbdOnProc KbdOn; ++ KbdOffProc KbdOff; ++ BellProc Bell; ++ SetLedsProc SetLeds; ++ GetLedsProc GetLeds; ++ SetKbdRepeatProc SetKbdRepeat; ++ KbdGetMappingProc KbdGetMapping; ++ RemapScanCodeProc RemapScanCode; ++ GetSpecialKeyProc GetSpecialKey; ++ SpecialKeyProc SpecialKey; ++ ++ OpenKeyboardProc OpenKeyboard; ++ PostEventProc PostEvent; ++ ++ int rate; ++ int delay; ++ int bell_pitch; ++ int bell_duration; ++ Bool autoRepeat; ++ unsigned long leds; ++ unsigned long xledsMask; ++ unsigned long keyLeds; ++ int scanPrefix; ++ Bool vtSwitchSupported; ++ Bool CustomKeycodes; ++ Bool noXkb; ++ Bool isConsole; ++ TransMapPtr scancodeMap; ++ TransMapPtr specialMap; ++ ++ /* os specific */ ++ pointer private; ++ int kbdType; ++ int consType; ++ int wsKbdType; ++ Bool sunKbd; ++ Bool Panix106; ++ ++} KbdDevRec, *KbdDevPtr; ++ ++typedef enum { ++ PROT_STD, ++ PROT_XQUEUE, ++ PROT_WSCONS, ++ PROT_USB, ++ PROT_UNKNOWN_KBD ++} KbdProtocolId; ++ ++typedef struct { ++ const char *name; ++ KbdProtocolId id; ++} KbdProtocolRec; ++ ++Bool xf86OSKbdPreInit(InputInfoPtr pInfo); ++ ++/* Adjust this when the kbd interface changes. */ ++ ++/* ++ * History: ++ * ++ * 1.0.0 - Initial version. ++ */ ++ ++#define OS_KBD_VERSION_MAJOR 1 ++#define OS_KBD_VERSION_MINOR 0 ++#define OS_KBD_VERSION_PATCH 0 ++ ++#define OS_KBD_VERSION_CURRENT \ ++ BUILTIN_INTERFACE_VERSION_NUMERIC(OS_KBD_VERSION_MAJOR, \ ++ OS_KBD_VERSION_MINOR, \ ++ OS_KBD_VERSION_PATCH) ++ |