diff -Nru libxi-1.7.9/aclocal.m4 libxi-1.7.10/aclocal.m4 --- libxi-1.7.9/aclocal.m4 2017-01-23 03:59:24.000000000 +0000 +++ libxi-1.7.10/aclocal.m4 2019-06-19 16:43:28.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1431,10 +1431,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - powerpcle-*linux*) + powerpcle-*linux*|powerpc64le-*linux*) LD="${LD-ld} -m elf64lppc" ;; - powerpc-*linux*) + powerpc-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -2680,7 +2680,14 @@ *) objformat=elf ;; esac fi - version_type=freebsd-$objformat + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' @@ -2692,6 +2699,12 @@ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in @@ -2881,9 +2894,6 @@ # before this can be enabled. hardcode_into_libs=yes - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command @@ -2892,7 +2902,7 @@ # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -9052,9 +9062,9 @@ m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29.1) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -9328,9 +9338,77 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl -dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), @@ -9367,7 +9445,7 @@ # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.19.0]) +m4_define([vers_have], [1.19.2]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, @@ -9444,6 +9522,17 @@ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_SED]) +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + AC_CHECK_FILE([/usr/share/man/man7/attributes.7], + [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true]) + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -9459,9 +9548,9 @@ fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -9469,9 +9558,9 @@ fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -9479,9 +9568,9 @@ fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -9489,9 +9578,9 @@ fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -9752,13 +9841,24 @@ fi]) # Test for the ability of xmlto to generate a text target +# +# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the +# following test for empty XML docbook files. +# For compatibility reasons use the following empty XML docbook file and if +# it fails try it again with a non-empty XML file. have_xmlto_text=no cat > conftest.xml << "EOF" EOF AS_IF([test "$have_xmlto" = yes], [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], [have_xmlto_text=yes], - [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) + [# Try it again with a non-empty XML file. + cat > conftest.xml << "EOF" + +EOF + AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], + [have_xmlto_text=yes], + [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])]) rm -f conftest.xml AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) @@ -11154,8 +11254,9 @@ macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" AC_SUBST([INSTALL_CMD]) ]) # XORG_INSTALL dnl Copyright 2005 Red Hat, Inc @@ -11216,14 +11317,15 @@ # # AC_DEFUN([XORG_CHANGELOG], [ -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" AC_SUBST([CHANGELOG_CMD]) ]) # XORG_CHANGELOG -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11235,10 +11337,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -11254,14 +11356,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11313,7 +11415,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11344,7 +11446,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11535,13 +11637,12 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file 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. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -11549,49 +11650,41 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -11600,18 +11693,17 @@ # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11698,8 +11790,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -11766,7 +11858,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -11808,7 +11900,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11829,7 +11921,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11850,7 +11942,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11858,49 +11950,42 @@ # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11939,7 +12024,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11968,7 +12053,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12015,7 +12100,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12034,7 +12119,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12115,7 +12200,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12175,7 +12260,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12203,7 +12288,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12222,7 +12307,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru libxi-1.7.9/ChangeLog libxi-1.7.10/ChangeLog --- libxi-1.7.9/ChangeLog 2019-08-24 14:27:16.000000000 +0000 +++ libxi-1.7.10/ChangeLog 2019-08-24 14:27:16.000000000 +0000 @@ -1,3 +1,114 @@ +commit e05da79a98775edb91ffe3de3b413f156bc4d6e7 +Author: Matt Turner +Date: Wed Jun 19 12:42:33 2019 -0400 + + libXi 1.7.10 + + Signed-off-by: Matt Turner + +commit dd5cedb7cd631cf4aeaadfd9cb993f0086857dbd +Author: Matt Turner +Date: Wed Jun 19 12:40:46 2019 -0400 + + Replace open-coded FP3232_TO_DOUBLE + + Signed-off-by: Matt Turner + +commit a42ee93c10bf9a63c22e0642d6e51877fba8dae5 +Author: Alexander Bersenev +Date: Mon Jun 17 22:56:43 2019 +0500 + + Fix the FIXME in XIValuatorClass case of copy_classes function in XExtInt.c + + In addition fix FP3232_TO_DOUBLE macro to correctly compute the fractional + part. + + This fixes glitchy scrolling in Qt applications when the application was + just activated or was scrolled in the backgroud. Qt uses XIQueryDevice + call to synchronize internal scroll location with an actual one. + + Bug: https://gitlab.freedesktop.org/xorg/lib/libxi/issues/10 + +commit 3e38d823a162c21492ac243924325730d4ea61bf +Author: Alan Coopersmith +Date: Fri Dec 7 19:43:13 2018 -0800 + + Update configure.ac bug URL for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit e020870b1e322e3458c1c18a456661f1951cab70 +Author: Alan Coopersmith +Date: Mon Nov 19 22:23:32 2018 -0800 + + Update README for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit e7654506717f7ff08eae7ab4c0db3fc1c2d5b7ed +Author: Raphaël Droz +Date: Sat Oct 27 22:17:31 2018 +0000 + + Update XIChangeHierarchy.txt + +commit 60ef7bab67aca3dd7c83e8726feb3c46869a74c2 +Author: Jeff Smith +Date: Thu Feb 1 01:59:56 2018 -0600 + + _XIPassiveGrabDevice needs to set time value + + When setting up a XIPassiveGrabDevice request, the time field is not + being set, leading to improper data being passed 'over the wire'. + + Accept a time value into _XIPassiveGrabDevice and use it to set the time + field in the request. Since the the functions calling + _XIPassiveGrabDevice are part of the API, and they do not accept time + values, they can just pass CurrentTime. + + Signed-off-by: Jeff Smith + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit a1c639255b7a9270fea52de3f186eb2fca9de01a +Author: Peter Hutterer +Date: Wed Jun 14 11:15:01 2017 +1000 + + man: add a bunch of missing spaces + + Signed-off-by: Peter Hutterer + +commit 8ffaac5710a9a983227454d8473604daae3f172a +Author: Mihail Konev +Date: Thu Jan 26 13:52:49 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev + +commit c6c386431e1fa6b45ff966191e68bee1150c5e87 +Author: Emil Velikov +Date: Mon Mar 9 12:00:52 2015 +0000 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit c7584066d5b06cd2bb9d99df43b741cf565820ea +Author: Peter Hutterer +Date: Tue Jan 24 10:32:07 2017 +1000 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer + Reviewed-by: Emil Velikov + commit 1bdeb431c3cc9eec7e12fdd29a83237f2f228865 Author: Peter Hutterer Date: Tue Oct 25 12:43:44 2016 +1000 diff -Nru libxi-1.7.9/compile libxi-1.7.10/compile --- libxi-1.7.9/compile 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/compile 2019-06-19 16:43:31.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libxi-1.7.9/config.guess libxi-1.7.10/config.guess --- libxi-1.7.9/config.guess 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/config.guess 2019-06-19 16:43:31.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2017-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2017 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." @@ -168,19 +168,29 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -618,13 +642,13 @@ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -663,11 +687,11 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -680,12 +704,12 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -790,14 +814,14 @@ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -879,7 +903,7 @@ exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -902,7 +926,7 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -933,6 +957,9 @@ crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -945,6 +972,9 @@ ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -970,6 +1000,9 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1002,6 +1035,9 @@ ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1021,7 +1057,18 @@ echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + eval $set_cc_for_build + X86_64_ABI= + # If there is a compiler, see if it is configured for 32-bit objects. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + X86_64_ABI=x32 + fi + fi + echo ${UNAME_MACHINE}-pc-linux-${LIBC}${X86_64_ABI} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1100,7 +1147,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1249,6 +1296,9 @@ SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1262,9 +1312,9 @@ UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1286,7 +1336,7 @@ exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1317,7 +1367,7 @@ # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1359,7 +1409,7 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1370,23 +1420,25 @@ x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff -Nru libxi-1.7.9/config.sub libxi-1.7.10/config.sub --- libxi-1.7.9/config.sub 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/config.sub 2019-06-19 16:43:31.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2017-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2017 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." @@ -117,8 +116,8 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,11 +254,12 @@ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ + | d10v | d30v | dlx | dsp16xx | dvp \ + | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ @@ -301,11 +301,12 @@ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -376,12 +377,13 @@ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -427,13 +429,15 @@ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -518,6 +522,9 @@ basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -638,6 +645,14 @@ basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -823,6 +838,24 @@ basic_machine=m68k-atari os=-mint ;; + mipsEE* | ee | ps2) + basic_machine=mips64r5900el-scei + case $os in + -linux*) + ;; + *) + os=-elf + ;; + esac + ;; + iop) + basic_machine=mipsel-scei + os=-irx + ;; + dvp) + basic_machine=dvp-scei + os=-elf + ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; @@ -1017,7 +1050,7 @@ ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1025,9 +1058,9 @@ ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1373,27 +1406,28 @@ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1525,6 +1559,8 @@ ;; -nacl*) ;; + -ios) + ;; -none) ;; *) @@ -1620,6 +1656,9 @@ sparc-* | *-sun) os=-sunos4.1.1 ;; + pru-*) + os=-elf + ;; *-be) os=-beos ;; diff -Nru libxi-1.7.9/configure libxi-1.7.10/configure --- libxi-1.7.9/configure 2017-01-23 03:59:25.000000000 +0000 +++ libxi-1.7.10/configure 2019-06-19 16:43:30.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libXi 1.7.9. +# Generated by GNU Autoconf 2.69 for libXi 1.7.10. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -275,7 +275,7 @@ $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +$0: https://gitlab.freedesktop.org/xorg/lib/libXi/issues $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do @@ -651,9 +651,9 @@ # Identity of this package. PACKAGE_NAME='libXi' PACKAGE_TARNAME='libXi' -PACKAGE_VERSION='1.7.9' -PACKAGE_STRING='libXi 1.7.9' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' +PACKAGE_VERSION='1.7.10' +PACKAGE_STRING='libXi 1.7.10' +PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libXi/issues' PACKAGE_URL='' ac_unique_file="Makefile.am" @@ -782,7 +782,6 @@ AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -865,7 +864,8 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1450,7 +1450,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libXi 1.7.9 to adapt to many kinds of systems. +\`configure' configures libXi 1.7.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1520,7 +1520,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libXi 1.7.9:";; + short | recursive ) echo "Configuration of libXi 1.7.10:";; esac cat <<\_ACEOF @@ -1598,7 +1598,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1661,7 +1661,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libXi configure 1.7.9 +libXi configure 1.7.10 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1985,7 +1985,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libXi $as_me 1.7.9, which was +It was created by libXi $as_me 1.7.10, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2338,7 +2338,7 @@ # Initialize Automake -am__api_version='1.15' +am__api_version='1.16' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2853,7 +2853,7 @@ # Define the identity of the package. PACKAGE='libXi' - VERSION='1.7.9' + VERSION='1.7.10' cat >>confdefs.h <<_ACEOF @@ -2883,8 +2883,8 @@ # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -2935,7 +2935,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3117,45 +3117,45 @@ ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -6590,10 +6590,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - powerpcle-*linux*) + powerpcle-*linux*|powerpc64le-*linux*) LD="${LD-ld} -m elf64lppc" ;; - powerpc-*linux*) + powerpc-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -10805,7 +10805,14 @@ *) objformat=elf ;; esac fi - version_type=freebsd-$objformat + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' @@ -10817,6 +10824,12 @@ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in @@ -11025,9 +11038,6 @@ # before this can be enabled. hardcode_into_libs=yes - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command @@ -11036,7 +11046,7 @@ # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -18229,10 +18239,11 @@ -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" @@ -18240,14 +18251,45 @@ macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5 +$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; } +if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then : + $as_echo_n "(cached) " >&6 +else + test "$cross_compiling" = yes && + as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 +if test -r "/usr/share/man/man7/attributes.7"; then + ac_cv_file__usr_share_man_man7_attributes_7=yes +else + ac_cv_file__usr_share_man_man7_attributes_7=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5 +$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; } +if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then : + SYSV_MAN_SECTIONS=false +else + SYSV_MAN_SECTIONS=true +fi + + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -18263,9 +18305,9 @@ fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -18273,9 +18315,9 @@ fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -18283,9 +18325,9 @@ fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -18293,9 +18335,9 @@ fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -18566,6 +18608,11 @@ fi # Test for the ability of xmlto to generate a text target +# +# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the +# following test for empty XML docbook files. +# For compatibility reasons use the following empty XML docbook file and if +# it fails try it again with a non-empty XML file. have_xmlto_text=no cat > conftest.xml << "EOF" EOF @@ -18573,10 +18620,18 @@ if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then : have_xmlto_text=yes else + # Try it again with a non-empty XML file. + cat > conftest.xml << "EOF" + +EOF + if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then : + have_xmlto_text=yes +else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmlto cannot generate text format, this format skipped" >&5 $as_echo "$as_me: WARNING: xmlto cannot generate text format, this format skipped" >&2;} fi fi +fi rm -f conftest.xml if test $have_xmlto_text = yes; then HAVE_XMLTO_TEXT_TRUE= @@ -19901,7 +19956,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libXi $as_me 1.7.9, which was +This file was extended by libXi $as_me 1.7.10, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19961,13 +20016,13 @@ Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libXi config.status 1.7.9 +libXi config.status 1.7.10 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -20086,7 +20141,7 @@ # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -20986,29 +21041,35 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -21026,53 +21087,48 @@ q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) diff -Nru libxi-1.7.9/configure.ac libxi-1.7.10/configure.ac --- libxi-1.7.9/configure.ac 2017-01-23 03:44:51.000000000 +0000 +++ libxi-1.7.10/configure.ac 2019-06-19 16:43:25.000000000 +0000 @@ -1,8 +1,8 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.7.9], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) +AC_INIT([libXi], [1.7.10], + [https://gitlab.freedesktop.org/xorg/lib/libXi/issues], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) diff -Nru libxi-1.7.9/debian/changelog libxi-1.7.10/debian/changelog --- libxi-1.7.9/debian/changelog 2019-08-24 14:27:16.000000000 +0000 +++ libxi-1.7.10/debian/changelog 2019-08-24 14:27:16.000000000 +0000 @@ -1,3 +1,9 @@ +libxi (2:1.7.10-0ubuntu1) eoan; urgency=medium + + * New upstream version + + -- Sebastien Bacher Sat, 24 Aug 2019 17:24:06 +0300 + libxi (2:1.7.9-1) unstable; urgency=medium * New upstream release. diff -Nru libxi-1.7.9/debian/control libxi-1.7.10/debian/control --- libxi-1.7.9/debian/control 2019-08-24 14:27:16.000000000 +0000 +++ libxi-1.7.10/debian/control 2019-08-24 14:27:16.000000000 +0000 @@ -1,7 +1,8 @@ Source: libxi Section: x11 Priority: optional -Maintainer: Debian X Strike Force +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force Build-Depends: debhelper (>= 10), quilt, diff -Nru libxi-1.7.9/depcomp libxi-1.7.10/depcomp --- libxi-1.7.9/depcomp 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/depcomp 2019-06-19 16:43:31.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 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 @@ -16,7 +16,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libxi-1.7.9/install-sh libxi-1.7.10/install-sh --- libxi-1.7.9/install-sh 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/install-sh 2019-06-19 16:43:31.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,34 +332,43 @@ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/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-writable 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"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_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"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; @@ -427,8 +444,8 @@ else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -493,9 +510,9 @@ done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libxi-1.7.9/ltmain.sh libxi-1.7.10/ltmain.sh --- libxi-1.7.9/ltmain.sh 2017-01-23 03:59:22.000000000 +0000 +++ libxi-1.7.10/ltmain.sh 2019-06-19 16:43:28.000000000 +0000 @@ -64,7 +64,7 @@ # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2015-10-04.22; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 @@ -1091,6 +1091,57 @@ } +# func_quote ARG +# -------------- +# Aesthetically quote one ARG, store the result into $func_quote_result. Note +# that we keep attention to performance here (so far O(N) complexity as long as +# func_append is O(1)). +func_quote () +{ + $debug_cmd + + func_quote_result=$1 + + case $func_quote_result in + *[\\\`\"\$]*) + case $func_quote_result in + *[\[\*\?]*) + func_quote_result=`$ECHO "$func_quote_result" | $SED "$sed_quote_subst"` + return 0 + ;; + esac + + func_quote_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_result=dummy"$_G_char$func_quote_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_result + do + case $1 in + quote) + func_append func_quote_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + IFS=$func_quote_old_IFS + done + ;; + *) ;; + esac +} + + # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. @@ -1107,12 +1158,8 @@ func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac + func_quote "$1" + _G_unquoted_arg=$func_quote_result if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else @@ -5258,7 +5305,8 @@ if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote "$ECHO" + qECHO=$func_quote_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -7272,10 +7320,14 @@ # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" @@ -10506,8 +10558,8 @@ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote "(cd `pwd`; $relink_command)" + relink_command=$func_quote_result fi # Only actually do things if not in dry run mode. @@ -10753,7 +10805,8 @@ 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 "$relink_command" | $SED "$sed_quote_subst"` + func_quote "$relink_command" + relink_command=$func_quote_result if test yes = "$hardcode_automatic"; then relink_command= fi diff -Nru libxi-1.7.9/Makefile.am libxi-1.7.10/Makefile.am --- libxi-1.7.9/Makefile.am 2011-12-20 00:28:44.000000000 +0000 +++ libxi-1.7.10/Makefile.am 2019-06-19 16:43:25.000000000 +0000 @@ -14,3 +14,5 @@ $(CHANGELOG_CMD) dist-hook: ChangeLog INSTALL + +EXTRA_DIST = README.md diff -Nru libxi-1.7.9/Makefile.in libxi-1.7.10/Makefile.in --- libxi-1.7.9/Makefile.in 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/Makefile.in 2019-06-19 16:43:31.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -164,7 +164,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -187,8 +187,8 @@ CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/xi.pc.in COPYING \ - ChangeLog INSTALL README compile config.guess config.sub \ - install-sh ltmain.sh missing + ChangeLog INSTALL compile config.guess config.sub install-sh \ + ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -386,6 +386,7 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = xi.pc MAINTAINERCLEANFILES = ChangeLog INSTALL +EXTRA_DIST = README.md all: all-recursive .SUFFIXES: @@ -410,8 +411,8 @@ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -561,7 +562,10 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ diff -Nru libxi-1.7.9/man/Makefile.in libxi-1.7.10/man/Makefile.in --- libxi-1.7.9/man/Makefile.in 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/man/Makefile.in 2019-06-19 16:43:31.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -460,8 +460,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -506,7 +506,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libxi-1.7.9/man/XAllowDeviceEvents.man libxi-1.7.10/man/XAllowDeviceEvents.man --- libxi-1.7.9/man/XAllowDeviceEvents.man 2013-03-09 07:49:51.000000000 +0000 +++ libxi-1.7.10/man/XAllowDeviceEvents.man 2019-06-19 16:43:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xallowdeviceevents .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XALLOWDEVICEEVENTS" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XALLOWDEVICEEVENTS" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -54,12 +54,12 @@ event_mode Specifies the event mode\&.You can pass AsyncThisDevice, SyncThisDevice, ReplayThisDevice, AsyncOtherDevices, - SyncAll,or AsyncAll\&. + SyncAll, or AsyncAll\&. .fi .sp .nf time - Specifies the time\&.You can pass either a timestamp or + Specifies the time\&. You can pass either a timestamp or CurrentTime\&. .fi .SH "DESCRIPTION" @@ -76,7 +76,7 @@ .sp -1 .IP \(bu 2.3 .\} -AsyncThisDevice \- If the specified device is frozen by the client, event processing for that device continues as usual\&. If the device is frozen multiple times by the client on behalf of multiple separate grabs, AsyncThisDevice thaws for all\&.AsyncThisDevice has no effect if the specified device is not frozen by the client, but the device need not be grabbed by the client\&. +AsyncThisDevice \- If the specified device is frozen by the client, event processing for that device continues as usual\&. If the device is frozen multiple times by the client on behalf of multiple separate grabs, AsyncThisDevice thaws for all\&. AsyncThisDevice has no effect if the specified device is not frozen by the client, but the device need not be grabbed by the client\&. .RE .sp .RS 4 @@ -134,7 +134,7 @@ AsyncAll \- If all devices are frozen by the client, event processing for all devices continues normally\&. If any device is frozen multiple times by the client on behalf of multiple separate grabs, AsyncAll thaws for all\&. AsyncAll has no effect unless all devices are frozen by the client\&. .RE .sp -AsyncThisDevice, SyncThisDevice, and ReplayThisDevice have no effect on the processing of events from the remaining devices\&.AsyncOtherDevices has no effect on the processing of events from the specified device\&. When the event_mode is SyncAll or AsyncAll, the device parameter is ignored\&. +AsyncThisDevice, SyncThisDevice, and ReplayThisDevice have no effect on the processing of events from the remaining devices\&. AsyncOtherDevices has no effect on the processing of events from the specified device\&. When the event_mode is SyncAll or AsyncAll, the device parameter is ignored\&. .sp It is possible for several grabs of different devices by the same or different clients to be active simultaneously\&. If a device is frozen on behalf of any grab, no event processing is performed for the device\&. It is possible for a single device to be frozen because of several grabs\&. In this case, the freeze must be released on behalf of each grab before events can again be processed\&. .sp diff -Nru libxi-1.7.9/man/XAllowDeviceEvents.txt libxi-1.7.10/man/XAllowDeviceEvents.txt --- libxi-1.7.9/man/XAllowDeviceEvents.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XAllowDeviceEvents.txt 2019-06-19 16:43:25.000000000 +0000 @@ -25,10 +25,10 @@ event_mode Specifies the event mode.You can pass AsyncThisDevice, SyncThisDevice, ReplayThisDevice, AsyncOtherDevices, - SyncAll,or AsyncAll. + SyncAll, or AsyncAll. time - Specifies the time.You can pass either a timestamp or + Specifies the time. You can pass either a timestamp or CurrentTime. DESCRIPTION @@ -47,7 +47,7 @@ client, event processing for that device continues as usual. If the device is frozen multiple times by the client on behalf of multiple separate grabs, AsyncThisDevice thaws for - all.AsyncThisDevice has no effect if the specified device is + all. AsyncThisDevice has no effect if the specified device is not frozen by the client, but the device need not be grabbed by the client. @@ -100,7 +100,7 @@ AsyncThisDevice, SyncThisDevice, and ReplayThisDevice have no effect on the processing of events from the remaining -devices.AsyncOtherDevices has no effect on the processing of +devices. AsyncOtherDevices has no effect on the processing of events from the specified device. When the event_mode is SyncAll or AsyncAll, the device parameter is ignored. diff -Nru libxi-1.7.9/man/XChangeDeviceControl.man libxi-1.7.10/man/XChangeDeviceControl.man --- libxi-1.7.9/man/XChangeDeviceControl.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XChangeDeviceControl.man 2019-06-19 16:43:40.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceControl.libmansuffix +.so XGetDeviceControl.libmansuffix diff -Nru libxi-1.7.9/man/XChangeDeviceDontPropagateList.man libxi-1.7.10/man/XChangeDeviceDontPropagateList.man --- libxi-1.7.9/man/XChangeDeviceDontPropagateList.man 2013-03-09 07:49:51.000000000 +0000 +++ libxi-1.7.10/man/XChangeDeviceDontPropagateList.man 2019-06-19 16:43:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xchangedevicedontpropagatelist .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XCHANGEDEVICEDONTPRO" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XCHANGEDEVICEDONTPRO" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -67,7 +67,7 @@ .sp .nf mode - Specifies the mode\&.You can pass AddToList, or + Specifies the mode\&. You can pass AddToList, or DeleteFromList\&. .fi .sp diff -Nru libxi-1.7.9/man/XChangeDeviceDontPropagateList.txt libxi-1.7.10/man/XChangeDeviceDontPropagateList.txt --- libxi-1.7.9/man/XChangeDeviceDontPropagateList.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XChangeDeviceDontPropagateList.txt 2019-06-19 16:43:25.000000000 +0000 @@ -33,7 +33,7 @@ Specifies a pointer to a list of event classes. mode - Specifies the mode.You can pass AddToList, or + Specifies the mode. You can pass AddToList, or DeleteFromList. count diff -Nru libxi-1.7.9/man/XChangeDeviceKeyMapping.man libxi-1.7.10/man/XChangeDeviceKeyMapping.man --- libxi-1.7.9/man/XChangeDeviceKeyMapping.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XChangeDeviceKeyMapping.man 2019-06-19 16:43:41.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceKeyMapping.libmansuffix +.so XGetDeviceKeyMapping.libmansuffix diff -Nru libxi-1.7.9/man/XChangeDeviceProperty.man libxi-1.7.10/man/XChangeDeviceProperty.man --- libxi-1.7.9/man/XChangeDeviceProperty.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XChangeDeviceProperty.man 2019-06-19 16:43:43.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceProperty.libmansuffix +.so XGetDeviceProperty.libmansuffix diff -Nru libxi-1.7.9/man/XChangeFeedbackControl.man libxi-1.7.10/man/XChangeFeedbackControl.man --- libxi-1.7.9/man/XChangeFeedbackControl.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XChangeFeedbackControl.man 2019-06-19 16:43:44.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetFeedbackControl.libmansuffix +.so XGetFeedbackControl.libmansuffix diff -Nru libxi-1.7.9/man/XChangeKeyboardDevice.man libxi-1.7.10/man/XChangeKeyboardDevice.man --- libxi-1.7.9/man/XChangeKeyboardDevice.man 2013-03-09 07:49:51.000000000 +0000 +++ libxi-1.7.10/man/XChangeKeyboardDevice.man 2019-06-19 16:43:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xchangekeyboarddevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XCHANGEKEYBOARDDEVIC" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XCHANGEKEYBOARDDEVIC" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XChangePointerDevice.man libxi-1.7.10/man/XChangePointerDevice.man --- libxi-1.7.9/man/XChangePointerDevice.man 2013-03-09 07:49:51.000000000 +0000 +++ libxi-1.7.10/man/XChangePointerDevice.man 2019-06-19 16:43:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xchangepointerdevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XCHANGEPOINTERDEVICE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XCHANGEPOINTERDEVICE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XCloseDevice.man libxi-1.7.10/man/XCloseDevice.man --- libxi-1.7.9/man/XCloseDevice.man 2013-03-09 07:49:58.000000000 +0000 +++ libxi-1.7.10/man/XCloseDevice.man 2019-06-19 16:43:48.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XOpenDevice.libmansuffix +.so XOpenDevice.libmansuffix diff -Nru libxi-1.7.9/man/XDeleteDeviceProperty.man libxi-1.7.10/man/XDeleteDeviceProperty.man --- libxi-1.7.9/man/XDeleteDeviceProperty.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XDeleteDeviceProperty.man 2019-06-19 16:43:43.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceProperty.libmansuffix +.so XGetDeviceProperty.libmansuffix diff -Nru libxi-1.7.9/man/XDeviceBell.man libxi-1.7.10/man/XDeviceBell.man --- libxi-1.7.9/man/XDeviceBell.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XDeviceBell.man 2019-06-19 16:43:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xdevicebell .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XDEVICEBELL" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XDEVICEBELL" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XDeviceTimeCoord.man libxi-1.7.10/man/XDeviceTimeCoord.man --- libxi-1.7.9/man/XDeviceTimeCoord.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XDeviceTimeCoord.man 2019-06-19 16:43:42.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceMotionEvents.libmansuffix +.so XGetDeviceMotionEvents.libmansuffix diff -Nru libxi-1.7.9/man/XFreeDeviceList.man libxi-1.7.10/man/XFreeDeviceList.man --- libxi-1.7.9/man/XFreeDeviceList.man 2016-10-13 03:45:12.000000000 +0000 +++ libxi-1.7.10/man/XFreeDeviceList.man 2019-06-19 16:43:48.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XListInputDevices.libmansuffix +.so XListInputDevices.libmansuffix diff -Nru libxi-1.7.9/man/XGetDeviceButtonMapping.man libxi-1.7.10/man/XGetDeviceButtonMapping.man --- libxi-1.7.9/man/XGetDeviceButtonMapping.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceButtonMapping.man 2019-06-19 16:43:51.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XSetDeviceButtonMapping.libmansuffix +.so XSetDeviceButtonMapping.libmansuffix diff -Nru libxi-1.7.9/man/XGetDeviceControl.man libxi-1.7.10/man/XGetDeviceControl.man --- libxi-1.7.9/man/XGetDeviceControl.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceControl.man 2019-06-19 16:43:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetdevicecontrol .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETDEVICECONTROL" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETDEVICECONTROL" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetDeviceDontPropagateList.man libxi-1.7.10/man/XGetDeviceDontPropagateList.man --- libxi-1.7.9/man/XGetDeviceDontPropagateList.man 2013-03-09 07:49:51.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceDontPropagateList.man 2019-06-19 16:43:38.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XChangeDeviceDontPropagateList.libmansuffix +.so XChangeDeviceDontPropagateList.libmansuffix diff -Nru libxi-1.7.9/man/XGetDeviceFocus.man libxi-1.7.10/man/XGetDeviceFocus.man --- libxi-1.7.9/man/XGetDeviceFocus.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceFocus.man 2019-06-19 16:43:52.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XSetDeviceFocus.libmansuffix +.so XSetDeviceFocus.libmansuffix diff -Nru libxi-1.7.9/man/XGetDeviceKeyMapping.man libxi-1.7.10/man/XGetDeviceKeyMapping.man --- libxi-1.7.9/man/XGetDeviceKeyMapping.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceKeyMapping.man 2019-06-19 16:43:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetdevicekeymapping .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETDEVICEKEYMAPPING" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETDEVICEKEYMAPPING" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetDeviceModifierMapping.man libxi-1.7.10/man/XGetDeviceModifierMapping.man --- libxi-1.7.9/man/XGetDeviceModifierMapping.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceModifierMapping.man 2019-06-19 16:43:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetdevicemodifiermapping .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETDEVICEMODIFIERMA" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETDEVICEMODIFIERMA" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetDeviceMotionEvents.man libxi-1.7.10/man/XGetDeviceMotionEvents.man --- libxi-1.7.9/man/XGetDeviceMotionEvents.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceMotionEvents.man 2019-06-19 16:43:42.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetdevicemotionevents .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETDEVICEMOTIONEVEN" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETDEVICEMOTIONEVEN" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -59,7 +59,7 @@ .nf start, stop Specify the time interval in which the events are - returned from the motionhistory buffer\&.You can pass a + returned from the motion history buffer\&. You can pass a timestamp or CurrentTime\&. .fi .sp diff -Nru libxi-1.7.9/man/XGetDeviceMotionEvents.txt libxi-1.7.10/man/XGetDeviceMotionEvents.txt --- libxi-1.7.9/man/XGetDeviceMotionEvents.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceMotionEvents.txt 2019-06-19 16:43:25.000000000 +0000 @@ -29,7 +29,7 @@ start, stop Specify the time interval in which the events are - returned from the motionhistory buffer.You can pass a + returned from the motion history buffer. You can pass a timestamp or CurrentTime. nevents_return diff -Nru libxi-1.7.9/man/XGetDeviceProperty.man libxi-1.7.10/man/XGetDeviceProperty.man --- libxi-1.7.9/man/XGetDeviceProperty.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XGetDeviceProperty.man 2019-06-19 16:43:43.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetdeviceproperty .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETDEVICEPROPERTY" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETDEVICEPROPERTY" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetExtensionVersion.man libxi-1.7.10/man/XGetExtensionVersion.man --- libxi-1.7.9/man/XGetExtensionVersion.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XGetExtensionVersion.man 2019-06-19 16:43:43.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetextensionversion .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETEXTENSIONVERSION" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETEXTENSIONVERSION" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetFeedbackControl.man libxi-1.7.10/man/XGetFeedbackControl.man --- libxi-1.7.9/man/XGetFeedbackControl.man 2013-03-09 07:49:55.000000000 +0000 +++ libxi-1.7.10/man/XGetFeedbackControl.man 2019-06-19 16:43:44.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgetfeedbackcontrol .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGETFEEDBACKCONTROL" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGETFEEDBACKCONTROL" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XGetSelectedExtensionEvents.man libxi-1.7.10/man/XGetSelectedExtensionEvents.man --- libxi-1.7.9/man/XGetSelectedExtensionEvents.man 2013-03-09 07:49:58.000000000 +0000 +++ libxi-1.7.10/man/XGetSelectedExtensionEvents.man 2019-06-19 16:43:50.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XSelectExtensionEvent.libmansuffix +.so XSelectExtensionEvent.libmansuffix diff -Nru libxi-1.7.9/man/XGrabDeviceButton.man libxi-1.7.10/man/XGrabDeviceButton.man --- libxi-1.7.9/man/XGrabDeviceButton.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XGrabDeviceButton.man 2019-06-19 16:43:45.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgrabdevicebutton .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGRABDEVICEBUTTON" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGRABDEVICEBUTTON" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -85,7 +85,7 @@ .nf modifier_device specifies the device whose modifiers are to be used\&. If - the modifier_devicespecified is NULL, the X keyboard + the modifier_device specified is NULL, the X keyboard will be used as the modifier_device\&. .fi .sp @@ -97,8 +97,8 @@ .nf owner_events Specifies a Boolean value that indicates whether the - deviceevents are to be reported as usual or reported - with respect to the grab windowif selected by the event + device events are to be reported as usual or reported + with respect to the grab window if selected by the event list\&. .fi .sp @@ -115,13 +115,13 @@ .nf this_device_mode Specifies further processing of events from this - device\&.You can pass GrabModeSync or GrabModeAsync\&. + device\&. You can pass GrabModeSync or GrabModeAsync\&. .fi .sp .nf other_devices_mode Specifies further processing of events from all other - devices\&.You can pass GrabModeSync or GrabModeAsync\&. + devices\&. You can pass GrabModeSync or GrabModeAsync\&. .fi .SH "DESCRIPTION" .sp diff -Nru libxi-1.7.9/man/XGrabDeviceButton.txt libxi-1.7.10/man/XGrabDeviceButton.txt --- libxi-1.7.9/man/XGrabDeviceButton.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XGrabDeviceButton.txt 2019-06-19 16:43:25.000000000 +0000 @@ -49,7 +49,7 @@ modifier_device specifies the device whose modifiers are to be used. If - the modifier_devicespecified is NULL, the X keyboard + the modifier_device specified is NULL, the X keyboard will be used as the modifier_device. grab_window @@ -57,8 +57,8 @@ owner_events Specifies a Boolean value that indicates whether the - deviceevents are to be reported as usual or reported - with respect to the grab windowif selected by the event + device events are to be reported as usual or reported + with respect to the grab window if selected by the event list. event_count @@ -69,11 +69,11 @@ this_device_mode Specifies further processing of events from this - device.You can pass GrabModeSync or GrabModeAsync. + device. You can pass GrabModeSync or GrabModeAsync. other_devices_mode Specifies further processing of events from all other - devices.You can pass GrabModeSync or GrabModeAsync. + devices. You can pass GrabModeSync or GrabModeAsync. DESCRIPTION ----------- diff -Nru libxi-1.7.9/man/XGrabDeviceKey.man libxi-1.7.10/man/XGrabDeviceKey.man --- libxi-1.7.9/man/XGrabDeviceKey.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XGrabDeviceKey.man 2019-06-19 16:43:46.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgrabdevicekey .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGRABDEVICEKEY" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGRABDEVICEKEY" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -85,7 +85,7 @@ .nf modifier_device Specifies the device whose modifiers are to be used\&. If - a modifier_device ofNULL is specified, the X keyboard + a modifier_device of NULL is specified, the X keyboard will be used as the modifier_device\&. .fi .sp @@ -97,8 +97,8 @@ .nf owner_events Specifies a Boolean value that indicates whether the - deviceevents are to be reported as usual or reported - with respect to the grab windowif selected by the event + device events are to be reported as usual or reported + with respect to the grab window if selected by the event list\&. .fi .sp @@ -116,13 +116,13 @@ .nf this_device_mode Specifies further processing of events from this - device\&.You can pass GrabModeSync or GrabModeAsync\&. + device\&. You can pass GrabModeSync or GrabModeAsync\&. .fi .sp .nf other_devices_mode Specifies further processing of events from other - devices\&.You can pass GrabModeSyncor GrabModeAsync\&. + devices\&. You can pass GrabModeSyncor GrabModeAsync\&. .fi .SH "DESCRIPTION" .sp diff -Nru libxi-1.7.9/man/XGrabDeviceKey.txt libxi-1.7.10/man/XGrabDeviceKey.txt --- libxi-1.7.9/man/XGrabDeviceKey.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XGrabDeviceKey.txt 2019-06-19 16:43:25.000000000 +0000 @@ -49,7 +49,7 @@ modifier_device Specifies the device whose modifiers are to be used. If - a modifier_device ofNULL is specified, the X keyboard + a modifier_device of NULL is specified, the X keyboard will be used as the modifier_device. grab_window @@ -57,8 +57,8 @@ owner_events Specifies a Boolean value that indicates whether the - deviceevents are to be reported as usual or reported - with respect to the grab windowif selected by the event + device events are to be reported as usual or reported + with respect to the grab window if selected by the event list. event_count @@ -70,11 +70,11 @@ this_device_mode Specifies further processing of events from this - device.You can pass GrabModeSync or GrabModeAsync. + device. You can pass GrabModeSync or GrabModeAsync. other_devices_mode Specifies further processing of events from other - devices.You can pass GrabModeSyncor GrabModeAsync. + devices. You can pass GrabModeSyncor GrabModeAsync. DESCRIPTION ----------- diff -Nru libxi-1.7.9/man/XGrabDevice.man libxi-1.7.10/man/XGrabDevice.man --- libxi-1.7.9/man/XGrabDevice.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XGrabDevice.man 2019-06-19 16:43:46.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xgrabdevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XGRABDEVICE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XGRABDEVICE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -72,8 +72,8 @@ .nf owner_events Specifies a Boolean value that indicates whether - theevents from the deviceare to be reported as usual or - reported with respect to the grab windowif selected by + the events from the device are to be reported as usual or + reported with respect to the grab window if selected by the event list\&. .fi .sp @@ -86,26 +86,26 @@ .nf event_list Specifies a pointer to a list of event classes that - indicates which eventsthe client wishes to receive\&. - These event classes must have beenobtained specifying + indicates which events the client wishes to receive\&. + These event classes must have been obtained specifying the device being grabbed\&. .fi .sp .nf this_device_mode Specifies further processing of events from this - device\&.You can pass GrabModeSyncor GrabModeAsync\&. + device\&. You can pass GrabModeSync or GrabModeAsync\&. .fi .sp .nf other_devices_mode Specifies further processing of events from other - devices\&.You can pass GrabModeSyncor GrabModeAsync\&. + devices\&.You can pass GrabModeSync or GrabModeAsync\&. .fi .sp .nf time - Specifies the time\&.You can pass either a timestamp or + Specifies the time\&. You can pass either a timestamp or CurrentTime\&. .fi .SH "DESCRIPTION" @@ -180,8 +180,8 @@ and returns GrabFrozen\&. If the specified time is earlier than the last\-device\-grab time or later than the current X server time, it fails and returns GrabInvalidTime\&. Otherwise, the -last\-device\-grab time is set to the specified time ( -CurrentTime is replaced by the current X server time)\&. +last\-device\-grab time is set to the specified time +(CurrentTime is replaced by the current X server time)\&. .fi .if n \{\ .RE diff -Nru libxi-1.7.9/man/XGrabDevice.txt libxi-1.7.10/man/XGrabDevice.txt --- libxi-1.7.9/man/XGrabDevice.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XGrabDevice.txt 2019-06-19 16:43:25.000000000 +0000 @@ -38,8 +38,8 @@ owner_events Specifies a Boolean value that indicates whether - theevents from the deviceare to be reported as usual or - reported with respect to the grab windowif selected by + the events from the device are to be reported as usual or + reported with respect to the grab window if selected by the event list. event_count @@ -48,20 +48,20 @@ event_list Specifies a pointer to a list of event classes that - indicates which eventsthe client wishes to receive. - These event classes must have beenobtained specifying + indicates which events the client wishes to receive. + These event classes must have been obtained specifying the device being grabbed. this_device_mode Specifies further processing of events from this - device.You can pass GrabModeSyncor GrabModeAsync. + device. You can pass GrabModeSync or GrabModeAsync. other_devices_mode Specifies further processing of events from other - devices.You can pass GrabModeSyncor GrabModeAsync. + devices.You can pass GrabModeSync or GrabModeAsync. time - Specifies the time.You can pass either a timestamp or + Specifies the time. You can pass either a timestamp or CurrentTime. DESCRIPTION @@ -109,8 +109,8 @@ and returns GrabFrozen. If the specified time is earlier than the last-device-grab time or later than the current X server time, it fails and returns GrabInvalidTime. Otherwise, the - last-device-grab time is set to the specified time ( - CurrentTime is replaced by the current X server time). + last-device-grab time is set to the specified time + (CurrentTime is replaced by the current X server time). If a grabbed device is closed by a client while an active grab by that client is in effect, the active grab is released. If diff -Nru libxi-1.7.9/man/XIBarrierReleasePointer.man libxi-1.7.10/man/XIBarrierReleasePointer.man --- libxi-1.7.9/man/XIBarrierReleasePointer.man 2013-05-30 04:20:41.000000000 +0000 +++ libxi-1.7.10/man/XIBarrierReleasePointer.man 2019-06-19 16:43:54.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xibarrierreleasepointer .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.78.1 -.\" Date: 05/30/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIBARRIERRELEASEPOIN" "libmansuffix" "05/30/2013" "\ \&" "\ \&" +.TH "XIBARRIERRELEASEPOIN" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIBarrierReleasePointers.man libxi-1.7.10/man/XIBarrierReleasePointers.man --- libxi-1.7.9/man/XIBarrierReleasePointers.man 2013-05-30 04:20:41.000000000 +0000 +++ libxi-1.7.10/man/XIBarrierReleasePointers.man 2019-06-19 16:43:54.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIBarrierReleasePointer.libmansuffix +.so XIBarrierReleasePointer.libmansuffix diff -Nru libxi-1.7.9/man/XIChangeHierarchy.man libxi-1.7.10/man/XIChangeHierarchy.man --- libxi-1.7.9/man/XIChangeHierarchy.man 2013-03-09 07:50:02.000000000 +0000 +++ libxi-1.7.10/man/XIChangeHierarchy.man 2019-06-19 16:43:54.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xichangehierarchy .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XICHANGEHIERARCHY" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XICHANGEHIERARCHY" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -223,7 +223,7 @@ .RS 4 .\} .nf -XIAttachSlaveInfo attaches device to newMaster\&. If the device +XIAttachSlaveInfo attaches device to new_master\&. If the device is currently attached to a master device, it is detached from the master device and attached to the new master device\&. .fi diff -Nru libxi-1.7.9/man/XIChangeHierarchy.txt libxi-1.7.10/man/XIChangeHierarchy.txt --- libxi-1.7.9/man/XIChangeHierarchy.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XIChangeHierarchy.txt 2019-06-19 16:43:25.000000000 +0000 @@ -93,7 +93,7 @@ XIRemoveMasterInfo can generate a BadValue and a BadDevice error. - XIAttachSlaveInfo attaches device to newMaster. If the device + XIAttachSlaveInfo attaches device to new_master. If the device is currently attached to a master device, it is detached from the master device and attached to the new master device. diff -Nru libxi-1.7.9/man/XIChangeProperty.man libxi-1.7.10/man/XIChangeProperty.man --- libxi-1.7.9/man/XIChangeProperty.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIChangeProperty.man 2019-06-19 16:44:03.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xichangeproperty .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XICHANGEPROPERTY" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XICHANGEPROPERTY" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIDefineCursor.man libxi-1.7.10/man/XIDefineCursor.man --- libxi-1.7.9/man/XIDefineCursor.man 2013-03-09 07:50:02.000000000 +0000 +++ libxi-1.7.10/man/XIDefineCursor.man 2019-06-19 16:43:55.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xidefinecursor .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIDEFINECURSOR" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIDEFINECURSOR" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIDeleteProperty.man libxi-1.7.10/man/XIDeleteProperty.man --- libxi-1.7.9/man/XIDeleteProperty.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIDeleteProperty.man 2019-06-19 16:44:03.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIChangeProperty.libmansuffix +.so XIChangeProperty.libmansuffix diff -Nru libxi-1.7.9/man/XIFreeDeviceInfo.man libxi-1.7.10/man/XIFreeDeviceInfo.man --- libxi-1.7.9/man/XIFreeDeviceInfo.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIFreeDeviceInfo.man 2019-06-19 16:43:58.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIQueryDevice.libmansuffix +.so XIQueryDevice.libmansuffix diff -Nru libxi-1.7.9/man/XIGetClientPointer.man libxi-1.7.10/man/XIGetClientPointer.man --- libxi-1.7.9/man/XIGetClientPointer.man 2013-03-09 07:50:06.000000000 +0000 +++ libxi-1.7.10/man/XIGetClientPointer.man 2019-06-19 16:44:01.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XISetClientPointer.libmansuffix +.so XISetClientPointer.libmansuffix diff -Nru libxi-1.7.9/man/XIGetFocus.man libxi-1.7.10/man/XIGetFocus.man --- libxi-1.7.9/man/XIGetFocus.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIGetFocus.man 2019-06-19 16:44:01.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XISetFocus.libmansuffix +.so XISetFocus.libmansuffix diff -Nru libxi-1.7.9/man/XIGetProperty.man libxi-1.7.10/man/XIGetProperty.man --- libxi-1.7.9/man/XIGetProperty.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIGetProperty.man 2019-06-19 16:44:03.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIChangeProperty.libmansuffix +.so XIChangeProperty.libmansuffix diff -Nru libxi-1.7.9/man/XIGetSelectedEvents.man libxi-1.7.10/man/XIGetSelectedEvents.man --- libxi-1.7.9/man/XIGetSelectedEvents.man 2013-03-09 07:50:06.000000000 +0000 +++ libxi-1.7.10/man/XIGetSelectedEvents.man 2019-06-19 16:44:00.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XISelectEvents.libmansuffix +.so XISelectEvents.libmansuffix diff -Nru libxi-1.7.9/man/XIGrabButton.man libxi-1.7.10/man/XIGrabButton.man --- libxi-1.7.9/man/XIGrabButton.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabButton.man 2019-06-19 16:43:56.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xigrabbutton .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIGRABBUTTON" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIGRABBUTTON" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIGrabDevice.man libxi-1.7.10/man/XIGrabDevice.man --- libxi-1.7.9/man/XIGrabDevice.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabDevice.man 2019-06-19 16:43:56.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xigrabdevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIGRABDEVICE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIGRABDEVICE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIGrabEnter.man libxi-1.7.10/man/XIGrabEnter.man --- libxi-1.7.9/man/XIGrabEnter.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabEnter.man 2019-06-19 16:43:57.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xigrabenter .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIGRABENTER" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIGRABENTER" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIGrabFocusIn.man libxi-1.7.10/man/XIGrabFocusIn.man --- libxi-1.7.9/man/XIGrabFocusIn.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabFocusIn.man 2019-06-19 16:43:57.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabEnter.libmansuffix +.so XIGrabEnter.libmansuffix diff -Nru libxi-1.7.9/man/XIGrabKeycode.man libxi-1.7.10/man/XIGrabKeycode.man --- libxi-1.7.9/man/XIGrabKeycode.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabKeycode.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabButton.libmansuffix +.so XIGrabButton.libmansuffix diff -Nru libxi-1.7.9/man/XIGrabTouchBegin.man libxi-1.7.10/man/XIGrabTouchBegin.man --- libxi-1.7.9/man/XIGrabTouchBegin.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIGrabTouchBegin.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabButton.libmansuffix +.so XIGrabButton.libmansuffix diff -Nru libxi-1.7.9/man/XIListProperties.man libxi-1.7.10/man/XIListProperties.man --- libxi-1.7.9/man/XIListProperties.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIListProperties.man 2019-06-19 16:44:02.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xilistproperties .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XILISTPROPERTIES" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XILISTPROPERTIES" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIQueryDevice.man libxi-1.7.10/man/XIQueryDevice.man --- libxi-1.7.9/man/XIQueryDevice.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIQueryDevice.man 2019-06-19 16:43:58.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xiquerydevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIQUERYDEVICE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIQUERYDEVICE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIQueryPointer.man libxi-1.7.10/man/XIQueryPointer.man --- libxi-1.7.9/man/XIQueryPointer.man 2013-03-09 07:50:06.000000000 +0000 +++ libxi-1.7.10/man/XIQueryPointer.man 2019-06-19 16:43:59.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xiquerypointer .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIQUERYPOINTER" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIQUERYPOINTER" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIQueryVersion.man libxi-1.7.10/man/XIQueryVersion.man --- libxi-1.7.9/man/XIQueryVersion.man 2013-08-07 23:50:39.000000000 +0000 +++ libxi-1.7.10/man/XIQueryVersion.man 2019-06-19 16:43:59.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xiqueryversion .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.78.1 -.\" Date: 08/08/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIQUERYVERSION" "libmansuffix" "08/08/2013" "\ \&" "\ \&" +.TH "XIQUERYVERSION" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XISelectEvents.man libxi-1.7.10/man/XISelectEvents.man --- libxi-1.7.9/man/XISelectEvents.man 2013-03-09 07:50:06.000000000 +0000 +++ libxi-1.7.10/man/XISelectEvents.man 2019-06-19 16:44:00.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xiselectevents .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XISELECTEVENTS" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XISELECTEVENTS" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XISetClientPointer.man libxi-1.7.10/man/XISetClientPointer.man --- libxi-1.7.9/man/XISetClientPointer.man 2013-03-09 07:50:06.000000000 +0000 +++ libxi-1.7.10/man/XISetClientPointer.man 2019-06-19 16:44:01.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xisetclientpointer .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XISETCLIENTPOINTER" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XISETCLIENTPOINTER" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XISetFocus.man libxi-1.7.10/man/XISetFocus.man --- libxi-1.7.9/man/XISetFocus.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XISetFocus.man 2019-06-19 16:44:01.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xisetfocus .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XISETFOCUS" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XISETFOCUS" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XIUndefineCursor.man libxi-1.7.10/man/XIUndefineCursor.man --- libxi-1.7.9/man/XIUndefineCursor.man 2013-03-09 07:50:02.000000000 +0000 +++ libxi-1.7.10/man/XIUndefineCursor.man 2019-06-19 16:43:55.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIDefineCursor.libmansuffix +.so XIDefineCursor.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabButton.man libxi-1.7.10/man/XIUngrabButton.man --- libxi-1.7.9/man/XIUngrabButton.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabButton.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabButton.libmansuffix +.so XIGrabButton.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabDevice.man libxi-1.7.10/man/XIUngrabDevice.man --- libxi-1.7.9/man/XIUngrabDevice.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabDevice.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabDevice.libmansuffix +.so XIGrabDevice.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabEnter.man libxi-1.7.10/man/XIUngrabEnter.man --- libxi-1.7.9/man/XIUngrabEnter.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabEnter.man 2019-06-19 16:43:57.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabEnter.libmansuffix +.so XIGrabEnter.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabFocusIn.man libxi-1.7.10/man/XIUngrabFocusIn.man --- libxi-1.7.9/man/XIUngrabFocusIn.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabFocusIn.man 2019-06-19 16:43:57.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabEnter.libmansuffix +.so XIGrabEnter.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabKeycode.man libxi-1.7.10/man/XIUngrabKeycode.man --- libxi-1.7.9/man/XIUngrabKeycode.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabKeycode.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabButton.libmansuffix +.so XIGrabButton.libmansuffix diff -Nru libxi-1.7.9/man/XIUngrabTouchBegin.man libxi-1.7.10/man/XIUngrabTouchBegin.man --- libxi-1.7.9/man/XIUngrabTouchBegin.man 2013-03-09 07:50:04.000000000 +0000 +++ libxi-1.7.10/man/XIUngrabTouchBegin.man 2019-06-19 16:43:56.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XIGrabButton.libmansuffix +.so XIGrabButton.libmansuffix diff -Nru libxi-1.7.9/man/XIWarpPointer.man libxi-1.7.10/man/XIWarpPointer.man --- libxi-1.7.9/man/XIWarpPointer.man 2013-03-09 07:50:08.000000000 +0000 +++ libxi-1.7.10/man/XIWarpPointer.man 2019-06-19 16:44:02.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xiwarppointer .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XIWARPPOINTER" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XIWARPPOINTER" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XListDeviceProperties.man libxi-1.7.10/man/XListDeviceProperties.man --- libxi-1.7.9/man/XListDeviceProperties.man 2013-03-09 07:49:57.000000000 +0000 +++ libxi-1.7.10/man/XListDeviceProperties.man 2019-06-19 16:43:47.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xlistdeviceproperties .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XLISTDEVICEPROPERTIE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XLISTDEVICEPROPERTIE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XListInputDevices.man libxi-1.7.10/man/XListInputDevices.man --- libxi-1.7.9/man/XListInputDevices.man 2016-10-13 03:45:12.000000000 +0000 +++ libxi-1.7.10/man/XListInputDevices.man 2019-06-19 16:43:48.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xlistinputdevices .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.78.1 -.\" Date: 10/13/2016 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XLISTINPUTDEVICES" "libmansuffix" "10/13/2016" "\ \&" "\ \&" +.TH "XLISTINPUTDEVICES" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -52,13 +52,13 @@ .nf ndevices_return Specifies a pointer to a variable where the number of - available devices canbe returned\&. + available devices can be returned\&. .fi .sp .nf list Specifies the list of devices to free\&. The - XFreeDeviceList functionfrees the list of available + XFreeDeviceList function frees the list of available extension input devices\&. .fi .SH "DESCRIPTION" diff -Nru libxi-1.7.9/man/XListInputDevices.txt libxi-1.7.10/man/XListInputDevices.txt --- libxi-1.7.9/man/XListInputDevices.txt 2016-10-13 03:44:30.000000000 +0000 +++ libxi-1.7.10/man/XListInputDevices.txt 2019-06-19 16:43:25.000000000 +0000 @@ -22,11 +22,11 @@ ndevices_return Specifies a pointer to a variable where the number of - available devices canbe returned. + available devices can be returned. list Specifies the list of devices to free. The - XFreeDeviceList functionfrees the list of available + XFreeDeviceList function frees the list of available extension input devices. DESCRIPTION diff -Nru libxi-1.7.9/man/XOpenDevice.man libxi-1.7.10/man/XOpenDevice.man --- libxi-1.7.9/man/XOpenDevice.man 2013-03-09 07:49:58.000000000 +0000 +++ libxi-1.7.10/man/XOpenDevice.man 2019-06-19 16:43:48.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xopendevice .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XOPENDEVICE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XOPENDEVICE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XQueryDeviceState.man libxi-1.7.10/man/XQueryDeviceState.man --- libxi-1.7.9/man/XQueryDeviceState.man 2013-03-09 07:49:58.000000000 +0000 +++ libxi-1.7.10/man/XQueryDeviceState.man 2019-06-19 16:43:49.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xquerydevicestate .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XQUERYDEVICESTATE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XQUERYDEVICESTATE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XSelectExtensionEvent.man libxi-1.7.10/man/XSelectExtensionEvent.man --- libxi-1.7.9/man/XSelectExtensionEvent.man 2013-03-09 07:49:58.000000000 +0000 +++ libxi-1.7.10/man/XSelectExtensionEvent.man 2019-06-19 16:43:50.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xselectextensionevent .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSELECTEXTENSIONEVEN" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSELECTEXTENSIONEVEN" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XSendExtensionEvent.man libxi-1.7.10/man/XSendExtensionEvent.man --- libxi-1.7.9/man/XSendExtensionEvent.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XSendExtensionEvent.man 2019-06-19 16:43:50.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xsendextensionevent .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSENDEXTENSIONEVENT" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSENDEXTENSIONEVENT" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XSetDeviceButtonMapping.man libxi-1.7.10/man/XSetDeviceButtonMapping.man --- libxi-1.7.9/man/XSetDeviceButtonMapping.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceButtonMapping.man 2019-06-19 16:43:51.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xsetdevicebuttonmapping .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSETDEVICEBUTTONMAPP" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSETDEVICEBUTTONMAPP" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru libxi-1.7.9/man/XSetDeviceFocus.man libxi-1.7.10/man/XSetDeviceFocus.man --- libxi-1.7.9/man/XSetDeviceFocus.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceFocus.man 2019-06-19 16:43:52.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xsetdevicefocus .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSETDEVICEFOCUS" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSETDEVICEFOCUS" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -66,28 +66,28 @@ .sp .nf focus - Specifies the window, PointerRoot, FollowKeyboard,or + Specifies the window, PointerRoot, FollowKeyboard, or None\&. .fi .sp .nf focus_return - Returns the focus window, PointerRoot, FollowKeyboard,or + Returns the focus window, PointerRoot, FollowKeyboard, or None\&. .fi .sp .nf revert_to Specifies where the input focus reverts to if the window - becomes notviewable\&.You can pass RevertToParent, - RevertToPointerRoot, RevertToFollowKeyboard,or + becomes not viewable\&. You can pass RevertToParent, + RevertToPointerRoot, RevertToFollowKeyboard, or RevertToNone\&. .fi .sp .nf revert_to_return Returns the current focus state RevertToParent, - RevertToPointerRoot, RevertToFollowKeyboard,or + RevertToPointerRoot, RevertToFollowKeyboard, or RevertToNone\&. .fi .sp @@ -98,7 +98,7 @@ .sp .nf time - Specifies the time\&.You can pass either a timestamp or + Specifies the time\&. You can pass either a timestamp or CurrentTime\&. .fi .SH "DESCRIPTION" diff -Nru libxi-1.7.9/man/XSetDeviceFocus.txt libxi-1.7.10/man/XSetDeviceFocus.txt --- libxi-1.7.9/man/XSetDeviceFocus.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceFocus.txt 2019-06-19 16:43:25.000000000 +0000 @@ -34,29 +34,29 @@ changed. focus - Specifies the window, PointerRoot, FollowKeyboard,or + Specifies the window, PointerRoot, FollowKeyboard, or None. focus_return - Returns the focus window, PointerRoot, FollowKeyboard,or + Returns the focus window, PointerRoot, FollowKeyboard, or None. revert_to Specifies where the input focus reverts to if the window - becomes notviewable.You can pass RevertToParent, - RevertToPointerRoot, RevertToFollowKeyboard,or + becomes not viewable. You can pass RevertToParent, + RevertToPointerRoot, RevertToFollowKeyboard, or RevertToNone. revert_to_return Returns the current focus state RevertToParent, - RevertToPointerRoot, RevertToFollowKeyboard,or + RevertToPointerRoot, RevertToFollowKeyboard, or RevertToNone. time_return Returns the last_focus_time for the device. time - Specifies the time.You can pass either a timestamp or + Specifies the time. You can pass either a timestamp or CurrentTime. DESCRIPTION diff -Nru libxi-1.7.9/man/XSetDeviceMode.man libxi-1.7.10/man/XSetDeviceMode.man --- libxi-1.7.9/man/XSetDeviceMode.man 2013-03-09 07:50:00.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceMode.man 2019-06-19 16:43:52.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xsetdevicemode .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSETDEVICEMODE" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSETDEVICEMODE" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -53,7 +53,7 @@ .sp .nf mode - Specifies the mode\&.You can pass Absolute,or Relative\&. + Specifies the mode\&. You can pass Absolute, or Relative\&. .fi .SH "DESCRIPTION" .sp diff -Nru libxi-1.7.9/man/XSetDeviceMode.txt libxi-1.7.10/man/XSetDeviceMode.txt --- libxi-1.7.9/man/XSetDeviceMode.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceMode.txt 2019-06-19 16:43:25.000000000 +0000 @@ -22,7 +22,7 @@ Specifies the device whose mode is to be changed. mode - Specifies the mode.You can pass Absolute,or Relative. + Specifies the mode. You can pass Absolute, or Relative. DESCRIPTION ----------- diff -Nru libxi-1.7.9/man/XSetDeviceModifierMapping.man libxi-1.7.10/man/XSetDeviceModifierMapping.man --- libxi-1.7.9/man/XSetDeviceModifierMapping.man 2013-03-09 07:49:53.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceModifierMapping.man 2019-06-19 16:43:41.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGetDeviceModifierMapping.libmansuffix +.so XGetDeviceModifierMapping.libmansuffix diff -Nru libxi-1.7.9/man/XSetDeviceValuators.man libxi-1.7.10/man/XSetDeviceValuators.man --- libxi-1.7.9/man/XSetDeviceValuators.man 2013-03-09 07:50:02.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceValuators.man 2019-06-19 16:43:53.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: xsetdevicevaluators .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] -.\" Generator: DocBook XSL Stylesheets v1.77.1 -.\" Date: 03/09/2013 +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/19/2019 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "XSETDEVICEVALUATORS" "libmansuffix" "03/09/2013" "\ \&" "\ \&" +.TH "XSETDEVICEVALUATORS" "libmansuffix" "06/19/2019" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -57,13 +57,13 @@ .nf valuators Specifies a pointer to an array of integer values to be - used to initialize thedevice valuators\&. + used to initialize the device valuators\&. .fi .sp .nf first_valuator Specifies the first valuator to be set\&. Valuators are - numbered beginning withzero\&. + numbered beginning with zero\&. .fi .sp .nf diff -Nru libxi-1.7.9/man/XSetDeviceValuators.txt libxi-1.7.10/man/XSetDeviceValuators.txt --- libxi-1.7.9/man/XSetDeviceValuators.txt 2013-02-19 01:39:40.000000000 +0000 +++ libxi-1.7.10/man/XSetDeviceValuators.txt 2019-06-19 16:43:25.000000000 +0000 @@ -26,11 +26,11 @@ valuators Specifies a pointer to an array of integer values to be - used to initialize thedevice valuators. + used to initialize the device valuators. first_valuator Specifies the first valuator to be set. Valuators are - numbered beginning withzero. + numbered beginning with zero. num_valuators Specifies the number of valuators to be set. diff -Nru libxi-1.7.9/man/XUngrabDeviceButton.man libxi-1.7.10/man/XUngrabDeviceButton.man --- libxi-1.7.9/man/XUngrabDeviceButton.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XUngrabDeviceButton.man 2019-06-19 16:43:45.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGrabDeviceButton.libmansuffix +.so XGrabDeviceButton.libmansuffix diff -Nru libxi-1.7.9/man/XUngrabDeviceKey.man libxi-1.7.10/man/XUngrabDeviceKey.man --- libxi-1.7.9/man/XUngrabDeviceKey.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XUngrabDeviceKey.man 2019-06-19 16:43:46.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGrabDeviceKey.libmansuffix +.so XGrabDeviceKey.libmansuffix diff -Nru libxi-1.7.9/man/XUngrabDevice.man libxi-1.7.10/man/XUngrabDevice.man --- libxi-1.7.9/man/XUngrabDevice.man 2013-03-09 07:49:56.000000000 +0000 +++ libxi-1.7.10/man/XUngrabDevice.man 2019-06-19 16:43:46.000000000 +0000 @@ -1 +1 @@ -.so manlibmansuffix/XGrabDevice.libmansuffix +.so XGrabDevice.libmansuffix diff -Nru libxi-1.7.9/missing libxi-1.7.10/missing --- libxi-1.7.9/missing 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/missing 2019-06-19 16:43:31.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libxi-1.7.9/.pc/0001-Documentation-Ids.patch/specs/inputlib.xml libxi-1.7.10/.pc/0001-Documentation-Ids.patch/specs/inputlib.xml --- libxi-1.7.9/.pc/0001-Documentation-Ids.patch/specs/inputlib.xml 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/0001-Documentation-Ids.patch/specs/inputlib.xml 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1,75 @@ + + %defs; +]> + + + + + X Input Device Extension Library + X Version 11, Release &fullrelvers; + Version 1.0 + + + MarkPatrick + Ardent Computer + + + GeorgeSachs + Hewlett-Packard + + + 198919901991 + Hewlett-Packard Company + Ardent Computer + + + + +Permission to use, copy, modify, and distribute this documentation for any purpose and without +fee is hereby granted, provided that the above copyright notice and this permission notice appear +in all copies. Ardent and Hewlett-Packard make no representations about the suitability for any +purpose of the information in this document. It is provided "as is" without express or implied +warranty. + + + + + +Copyright © 1989, 1990, 1991, 1992 X Consortium + + +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 X CONSORTIUM 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 X Consortium 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 X Consortium. + +X Window System is a trademark of The Open Group. + + + + + + + diff -Nru libxi-1.7.9/.pc/0001-Documentation-Ids.patch/specs/library.xml libxi-1.7.10/.pc/0001-Documentation-Ids.patch/specs/library.xml --- libxi-1.7.9/.pc/0001-Documentation-Ids.patch/specs/library.xml 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/0001-Documentation-Ids.patch/specs/library.xml 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1,8559 @@ +Input Extension + +Overview + + + + + +This document describes an extension to +the X11 server. The purpose of this extension is to support the use +of additional input devices beyond the pointer and keyboard devices +defined by the core X protocol. This first section gives an overview +of the input extension. The following sections correspond to +chapters 9, 10, and 11, ``Window and Session Manager Functions'', +``Events'', and ``Event Handling Functions'' of the +``Xlib - C Language Interface'' manual +and describe how to use the input device extension. + + +Design Approach + + + + + +The design approach of the extension is to define functions +and events analogous to the core functions and events. +This allows extension input devices and events to be individually +distinguishable from each other and from the core input devices and events. +These functions and events make use of a device identifier and support the +reporting of n-dimensional motion data as well as other data that +is not currently reportable via the core input events. + + + +Core Input Devices + + + + + +The X server core protocol supports two input devices: a pointer and a +keyboard. The pointer device has two major functions. +First, it may be used to generate motion information +that client programs can detect. Second, it may also be used to indicate the +current location and focus of the X keyboard. To accomplish this, the server +echoes a cursor at the current position of the X pointer. Unless the X +keyboard has been explicitly focused, this cursor also shows the current +location and focus of the X keyboard. + + + +The X keyboard is used to generate input that client programs can detect. + + + +The X keyboard and X pointer are referred to in this document as +the core devices, and the input +events they generate +( KeyPress , +KeyRelease , +ButtonPress , +ButtonRelease , +and +MotionNotify ) +are known as the core input events. All other +input devices are referred to as extension input devices, and the +input events they generate are referred to as extension input events. + +This input extension does not change the behavior or functionality of the +core input devices, core events, or core protocol requests, with the +exception of the core grab requests. These requests may affect the +synchronization of events from extension devices. See the explanation +in the section titled ``Event Synchronization and Core Grabs.'' + + + + +Selection of the physical devices to be initially used by the server as the +core devices is left implementation dependent. Functions are defined that +allow client programs to change which physical devices are used as the +core devices. + + + +Extension Input Devices + + + + + +The input extension controls access to input devices other than the X keyboard +and X pointer. It allows client programs to select input from these devices +independently +from each other and independently from the core devices. Input events from +these devices are of extension types +( DeviceKeyPress , +DeviceKeyRelease , +DeviceButtonPress , +DeviceButtonRelease , +DeviceMotionNotify , +and so on) and contain +a device identifier so that events of the same type coming from different +input devices can be distinguished. + + + +Extension input events are not limited in size by the size of the server +32-byte wire events. Extension input events +may be constructed by the server sending as many +wire-sized events as necessary to return the information required for +that event. +The library event reformatting routines +are responsible for combining these into one or more client XEvents. + + + +Any input device that generates key, button, or motion data may be used as +an extension input device. +Extension input devices may have zero or more keys, zero or more buttons, +and may report zero or more axes of motion. Motion may be reported +as relative movements from a previous position or as an absolute +position. All valuators reporting motion information for a given +extension input device must report the same kind of motion information +(absolute or relative). + + + +This extension is designed to accommodate new types of input devices that +may be added in the future. The protocol requests that refer to +specific characteristics of input devices organize that information +by input device classes. Server implementors may add new +classes of input devices without changing the protocol requests. + + + +All extension input +devices are treated like the core X keyboard in determining their location +and focus. The server does not track the location of these devices on an +individual basis and, therefore, +does not echo a cursor to indicate their current location. +Instead, their location is determined by the location of the core X pointer. +Like the core X keyboard, some may be explicitly focused. If they are +not explicitly focused, their focus +is determined by the location of the core X pointer. + + +Input Device Classes + + + + + +Some of the input extension requests divide input devices into classes +based on their functionality. This is intended to allow new classes of input +devices to be defined at a later time without changing the semantics of +these functions. The following input device classes are currently +defined: + + + KEY + + +The device reports key events. + + + + + BUTTON + + +The device reports button events. + + + + + VALUATOR + + +The device reports valuator data in motion events. + + + + + PROXIMITY + + +The device reports proximity events. + + + + + FOCUS + + +The device can be focused. + + + + + FEEDBACK + + +The device supports feedbacks. + + + + + + + +Additional classes may be added in the future. +Functions that support multiple input classes, such as the + +function that lists all available input devices, +organize the data they return by input class. Client programs that +use these functions should not access data unless it matches a +class defined at the time those clients were compiled. In this way, +new classes can be added without forcing existing clients that use +these functions to be recompiled. + + + + +Using Extension Input Devices + + + + + +A client that wishes to access an input device does so through the library +functions defined in the following sections. A typical sequence of requests +that a client would make is as follows: + + + + + +- lists all of the available input devices. From the +information returned by this request, determine whether the desired input +device is attached to the server. For a description of the + +request, see the section entitled ``Listing Available Devices.'' + + + + + +- requests that the server open the device for access by this client. +This request returns an +XDevice +structure that is used +by most other input extension requests to identify the specified device. +For a description of the + +request, see the section entitled ``Enabling and Disabling Extension Devices.'' + + + + +Determine the event types and event classes needed to select the desired +input extension events, and identify them when they are received. +This is done via macros whose name corresponds to the desired event, for +example, +DeviceKeyPress . +For a description of these macros, +see the section entitled ``Selecting Extension Device Events.'' + + + + + +- selects the desired events from the server. +For a description of the +XSelextExtensionEvent +request, see the section entitled ``Selecting Extension Device Events.'' + + + + +XNextEvent +- receives the next available event. This is the core +XNextEvent +function provided by the standard X libarary. + + + + + +Other requests are defined to grab and focus extension devices, to +change their key, button, or modifier mappings, to control the +propagation of input extension events, to get motion history from an +extension device, and to send input extension events to another client. +These functions are described in the following sections. + + + + +Library Extension Requests + + + + + +Extension input devices are accessed by client programs through the +use of new protocol requests. +The following requests are provided as extensions to Xlib. Constants +and structures referenced by these functions may be found in the +files <X11/extensions/XI.h> and <X11/extensions/XInput.h>, +which are attached to this document as +Appendix A. + + + +The library will return NoSuchExtension if an extension request +is made to a server that does not support the input extension. + + + +Input extension requests cannot be used to access the X keyboard and +X pointer devices. + + +Window Manager Functions + + + + + +This section discusses the following X Input Extension Window Manager topics: + + + + +Changing the core devices + + + + +Event synchronization and core grabs + + + + +Extension active grabs + + + + +Passively grabbing a key + + + + +Passively grabbing a button + + + + +Thawing a device + + + + +Controlling device focus + + + + +Controlling device feedback + + + + +Ringing a bell on an input device + + + + +Controlling device encoding + + + + +Controlling button mapping + + + + +Obtaining the state of a device + + + + +Changing the Core Devices + + + + + + +These functions are provided to change which physical device is used +as the X pointer or X keyboard. + + + +Using these functions may change the characteristics of the core devices. +The new pointer device may have a different number of buttons from the +old one, or the new keyboard device may have a different number of +keys or report a different range of keycodes. Client programs may be +running that depend on those characteristics. For example, a client +program could allocate an array based on the number of buttons on the +pointer device and then use the button numbers received in button events +as indices into that array. Changing the core devices could cause +such client programs to behave improperly or to terminate abnormally +if they ignore the +ChangeDeviceNotify +event generated by these requests. + + + + + +These functions change the X keyboard or X pointer device and generate an +XChangeDeviceNotify +event and a +MappingNotify +event. +The specified device becomes the +new X keyboard or X pointer device. The location of the core device +does not change as a result of this request. + + + +These requests fail and return +AlreadyGrabbed +if either the specified +device or the core device it would replace are grabbed by some other client. +They fail and return +GrabFrozen +if either device is frozen by the active grab of another client. + + + +These requests fail with a +BadDevice +error if the specified device is invalid, has not previously been opened via +XOpenDevice , +or is +not supported as a core device by the server implementation. + + + +Once the device has successfully replaced one of the core devices, it +is treated as a core device until it is in turn replaced by another +ChangeDevice +request or until the server terminates. The termination +of the client that changed the device will not cause it to change back. +Attempts to use the + +request to close the new core device will fail with a +BadDevice +error. + + + + +To change which physical device is used as the X keyboard, use the + +function. +The specified device must support input class +Keys +(as reported in the +ListInputDevices +request) or the request will fail with a +BadMatch +error. + + + + + + + int XChangeKeyboardDevice + Display *display + XDevice *device + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + + + +If no error occurs, + +returns +Success . +A +ChangeDeviceNotify +event with the request field set to +NewKeyboard +is sent to all clients selecting that event. +A +MappingNotify +event with the request field set to +MappingKeyboard +is sent to all clients. +The requested device becomes the X keyboard, and the old keyboard becomes +available as an extension input device. +The focus state of the new keyboard is the same as +the focus state of the old X keyboard. + + + + +can generate +AlreadyGrabbed , +BadDevice , +BadMatch , +and +GrabFrozen +errors. + + + + +To change which physical device is used as the X pointer, +use the + +function. +The specified device must support input class +Valuators +(as reported in the + +request) and report at least two axes of motion, +or the request will fail with a +BadMatch +error. +If the specified device reports more than two axes, the two specified in +the xaxis and yaxis arguments will be used. Data from other +valuators on the device will be ignored. + + + +If the specified device reports absolute positional information, and the +server implementation does not allow such a device to be used as the +X pointer, the request will fail with a +BadDevice +error. + + + + int XChangePointerDevice + Display *display + XDevice *device + int xaxis + int yaxis + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + xaxis + + + +Specifies the zero-based index of the axis to be used as the x-axis of the +pointer device. + + + + + + yaxis + + + +Specifies the zero-based index of the axis to be used as the y-axis of the +pointer device. + + + + + + + + +If no error occurs, + +returns +Success . +A +ChangeDeviceNotify +event with the request field set to +NewPointer +is sent to all clients selecting that event. +A +MappingNotify +event with the request field set to +MappingPointer +is sent to all clients. +The requested device becomes the X pointer, and the old pointer becomes +available as an extension input device. + + + + +can generate +AlreadyGrabbed , +BadDevice , +BadMatch , +and +GrabFrozen +errors. + + + +Event Synchronization and Core Grabs + + + + + +Implementation of the input extension requires an extension of the +meaning of event synchronization for the core grab requests. This is +necessary in order to allow window managers to freeze all input devices +with a single request. + + + +The core grab requests require a pointer_mode and keyboard_mode +argument. The meaning of these modes is changed by the input extension. +For the +XGrabPointer +and +XGrabButton +requests, pointer_mode controls synchronization of the pointer device, +and keyboard_mode controls the synchronization of all other input devices. +For the +XGrabKeyboard +and +XGrabKey +requests, pointer_mode controls the synchronization +of all input devices, except the X keyboard, while keyboard_mode controls +the synchronization of the keyboard. When using one of the core grab +requests, the synchronization of extension devices +is controlled by the mode specified for the device not being grabbed. + + + +Extension Active Grabs + + + + + +Active grabs of +extension devices are supported via the + +function in the same way that core devices are grabbed using the core +XGrabKeyboard +function, except that an extension input device +is passed as a function parameter. +The + +function allows a previous active grab for an extension device to be released. + + + +Passive grabs of buttons and keys on extension devices are supported +via the + +and + +functions. +These passive grabs are released via the + +and + +functions. + + + + +To grab an extension device, use the + +function. +The device must have previously been opened using the + +function. + + + + int XGrabDevice + Display *display + XDevice *device + Window grab_window + Bool owner_events + int event_count + XEventClass *event_list + int this_device_mode + int other_device_mode + Time time + + + + + + + "display" + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + grab_window + + + +Specifies the ID of a window associated with the device specified above. + + + + + + owner_events + + + +Specifies a boolean value of either +True +or +False . + + + + + + event_count + + + +Specifies the number of elements in the event_list array. + + + + + + event_list + + + +Specifies a pointer to a list of event classes that indicate which events +the client wishes to receive. +These event classes must have been obtained +using the device being grabbed. + + + + + + this_device_mode + + + +Controls further processing of events from this device. You can pass one +of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + other_device_mode + + + +Controls further processing of events from all other devices. You can pass one +of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + time + + + +Specifies the time. This may be either a timestamp expressed in +milliseconds or +CurrentTime . + + + + + + + + + +actively grabs an extension input device and generates +DeviceFocusIn +and +DeviceFocusOut +events. +Further input events from this device are reported only to the grabbing client. +This function overrides any previous active grab by this client for this device. + + + +The event_list parameter is a pointer to a list of event classes. This list +indicates which events the client wishes to receive while the grab is active. +If owner_events is +False , +input events from this device are reported with respect to +grab_window and are reported only if specified in event_list. +If owner_events is +True , +then if a generated event would normally be reported to this client, +it is reported normally. +Otherwise, the event is reported with respect to the grab_window and is only +reported if specified in event_list. + + + +The this_device_mode argument controls the further processing +of events from this device, and the other_device_mode argument controls +the further processing of input events from all other devices. + + + + +If the this_device_mode argument is +GrabModeAsync , +device event processing continues +normally; if the device is currently frozen by this client, then +processing of device events is resumed. +If the this_device_mode argument is +GrabModeSync , +the state of the grabbed device +(as seen by client applications) appears to freeze, +and no further device events are generated by the server until the +grabbing client issues a releasing + +call or until the device grab is released. +Actual device input events are not lost while the device is frozen; they are +simply queued for later processing. + + + + +If the other_device_mode is +GrabModeAsync , +event processing from other input devices is unaffected +by activation of the grab. +If other_device_mode is +GrabModeSync , +the state of all devices except the grabbed device +(as seen by client applications) appears to freeze, and no further +events are generated by the server until the grabbing client issues a +releasing +XAllowEvents +or + +call or until the device grab is released. +Actual events are not lost +while the other devices are frozen; they are simply queued for later +processing. + + + + + + +fails on the following conditions: + + + + +If the device is actively grabbed by some other client, it returns +AlreadyGrabbed . + + + + +If grab_window is not viewable, it returns +GrabNotViewable . + + + + +If the specified time is earlier +than the last-grab-time for the specified device +or later than the current X server time, it returns +GrabInvalidTime . +Otherwise, +the last-grab-time for the specified device is set +to the specified time and +CurrentTime +is replaced by the current X server time. + + + + +If the device is frozen by an active grab of another client, it returns +GrabFrozen . + + + + + +If a grabbed device is closed by a client while an active grab by that +client is in effect, that active grab will be released. +Any passive grabs established by that client will be released. +If the device is frozen only by an active grab +of the requesting client, it is thawed. + + + + +can generate +BadClass , +BadDevice , +BadValue , +and +BadWindow +errors. + + + + +To release a grab of an extension device, use the + +function. + + + + + + + int XUngrabDevice + Display *display + XDevice *device + Time time + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + time + + + +Specifies the time. This may be either a timestamp expressed in +milliseconds, or +CurrentTime . + + + + + + + + + +allows a client to release an extension input device and any +queued events if this client has it grabbed from either + +or +XGrabDeviceKey . +If any other devices are frozen by the grab, + +thaws them. +This function does not release the device and any +queued events if the specified time is earlier than the last-device-grab +time or is later than the current X server time. It also generates +DeviceFocusIn +and +DeviceFocusOut +events. The X server automatically performs an + +if the event window for an active device grab becomes not viewable +or if the client terminates without releasing the grab. + + + + +can generate +BadDevice +errors. + + + +Passively Grabbing a Key + + + + + +To passively grab a single key on an extension device, use +XGrabDeviceKey . +That device must have previously been opened using the + +function, or the request will fail with a +BadDevice +error. +If the specified device does not support input class +Keys , +the request will fail with a +BadMatch +error. + + + + int XGrabDeviceKey + Display *display + XDevice *device + int keycode + unsignedint modifiers + XDevice *modifier_device + Window grab_window + Bool owner_events + int event_count + XEventClass *event_list + int this_device_mode + int other_device_mode + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + keycode + + + +Specifies the keycode of the key that is to be grabbed. You can pass +either the keycode or +AnyKey . + + + + + + modifiers + + + +Specifies the set of keymasks. This mask is the bitwise inclusive OR +of these keymask bits: +ShiftMask , +LockMask , +ControlMask , +Mod1Mask , +Mod2Mask , +Mod3Mask , +Mod4Mask , +and +Mod5Mask . + + + + + + + + + +You can also pass +AnyModifier , +which is equivalent to issuing the grab key request +for all possible modifier combinations (including the combination +of no modifiers). + + + + + + modifier_device + + + +Specifies the device whose modifiers are to be used. If NULL is +specified, the core X keyboard is used as the modifier_device. + + + + + + grab_window + + + +Specifies the ID of a window associated with the device specified above. + + + + + + owner_events + + + +Specifies a boolean value of either +True +or +False . + + + + + + event_count + + + +Specifies the number of elements in the event_list array. + + + + + + event_list + + + +Specifies a pointer to a list of event classes that indicate which events +the client wishes to receive. + + + + + + this_device_mode + + + +Controls further processing of events from this device. +You can pass one of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + other_device_mode + + + +Controls further processing of events from all other devices. +You can pass one of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + + + + +is analogous to the core +XGrabKey +function. It creates an +explicit passive grab for a key on an extension device. +The + +function establishes a passive grab on a device. +Consequently, in the future, + + + + +IF the device is not grabbed and the specified key, +which itself can be a modifier key, is logically pressed +when the specified modifier keys logically are down on the specified +modifier device (and no other keys are down), + + + + +AND no other modifier keys logically are down, + + + + +AND EITHER the grab window is an ancestor of (or is) the focus window +or the grab window is a descendent of the focus window and contains the pointer, + + + + +AND a passive grab on the same device and key combination does not exist on any +ancestor of the grab window, + + + + +THEN the device is actively grabbed, as for +XGrabDevice , +the last-device-grab time is set to the time at which the key was pressed +(as transmitted in the +DeviceKeyPress +event), and the +DeviceKeyPress +event is reported. + + + + + +The interpretation of the remaining arguments is as for +XGrabDevice . +The active grab is terminated automatically when the logical state of the +device has the specified key released +(independent of the logical state of the modifier keys). + + + +Note that the logical state of a device (as seen by means of the X protocol) +may lag the physical state if device event processing is frozen. + + + +A modifier of +AnyModifier +is equivalent to issuing the request for all +possible modifier combinations (including the combination of no modifiers). +It is not required that all modifiers specified have +currently assigned keycodes. +A key of +AnyKey +is equivalent to issuing +the request for all possible keycodes. Otherwise, the key must be in +the range specified by min_keycode and max_keycode in the +information returned by the + +function. +If it is not within that range, + +generates a +BadValue +error. + + + + +generates a +BadAccess +error if some other client has issued a + +with the same device and key combination on the same window. +When using +AnyModifier +or +AnyKey , +the request fails completely and the X server generates a +BadAccess +error, and no grabs are established if there is a conflicting grab +for any combination. + + + + +returns +Success +upon successful completion of the request. + + + + +can generate +BadAccess , +BadClass , +BadDevice , +BadMatch , +BadValue , +and +BadWindow +errors. + + + + +To release a passive grab of a single key on an extension device, use +XUngrabDeviceKey . + + + + int XUngrabDeviceKey + Display *display + XDevice *device + int keycode + unsignedint modifiers + XDevice *modifier_device + Window ungrab_window + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + keycode + + + +Specifies the keycode of the key that is to be ungrabbed. You can pass +either the keycode or +AnyKey . + + + + + + modifiers + + + +Specifies the set of keymasks. This mask is the bitwise inclusive OR +of these keymask bits: +ShiftMask , +LockMask , +ControlMask , +Mod1Mask , +Mod2Mask , +Mod3Mask , +Mod4Mask , +and +Mod5Mask . + + + + + + + + + +You can also pass +AnyModifier , +which is equivalent to issuing the ungrab key +request for all possible modifier combinations (including the combination +of no modifiers). + + + + + + modifier_device + + + +Specifies the device whose modifiers are to be used. If NULL is +specified, the core X keyboard is used as the modifier_device. + + + + + + ungrab_window + + + +Specifies the ID of a window associated with the device specified above. + + + + + + + + + +is analogous to the core +XUngrabKey +function. It releases an explicit passive grab for a key +on an extension input device. + + + + +can generate +BadAlloc , +BadDevice , +BadMatch , +BadValue , +and +BadWindow +errors. + + + +Passively Grabbing a Button + + + + + +To establish a passive grab for a single button on an extension device, use +XGrabDeviceButton . +The specified device must have previously been opened using the + +function, or the request will fail with a +BadDevice +error. If the specified device does not support input class +Buttons , +the request will fail with a +BadMatch +error. + + + + int XGrabDeviceButton + Display *display + XDevice *device + unsignedint button + unsignedint modifiers + XDevice*modifier_device + Window grab_window + Bool owner_events + int event_count + XEventClass *event_list + int this_device_mode + int other_device_mode + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + button + + + +Specifies the code of the button that is to be grabbed. You can pass +either the button or +AnyButton . + + + + + + modifiers + + + +Specifies the set of keymasks. This mask is the bitwise inclusive OR +of these keymask bits: +ShiftMask , +LockMask , +ControlMask , +Mod1Mask , +Mod2Mask , +Mod3Mask , +Mod4Mask , +and +Mod5Mask . + + + + + + + + + +You can also pass +AnyModifier , +which is equivalent to issuing the grab request +for all possible modifier combinations (including the combination +of no modifiers). + + + + + + modifier_device + + + +Specifies the device whose modifiers are to be used. If NULL is +specified, the core X keyboard is used as the modifier_device. + + + + + + grab_window + + + +Specifies the ID of a window associated with the device specified above. + + + + + + owner_events + + + +Specifies a boolean value of either +True +or +False . + + + + + + event_count + + + +Specifies the number of elements in the event_list array. + + + + + + event_list + + + +Specifies a list of event classes that indicates which device events are to be +reported to the client. + + + + + + this_device_mode + + + +Controls further processing of events from this device. You can pass one +of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + other_device_mode + + + +Controls further processing of events from all other devices. You can pass one +of these constants: +GrabModeSync +or +GrabModeAsync . + + + + + + + + + +is analogous to the core +XGrabButton +function. +It creates an explicit passive grab for a button on an extension input device. +Because the server does not track extension devices, +no cursor is specified with this request. +For the same reason, there is no confine_to parameter. +The device must have previously been opened using the + +function. + + + +The + +function establishes a passive grab on a device. +Consequently, in the future, + + + + +IF the device is not grabbed and the specified button is logically pressed +when the specified modifier keys logically are down +(and no other buttons or modifier keys are down), + + + + +AND EITHER the grab window is an ancestor of (or is) the focus window +OR the grab window is a descendent of the focus window and contains the pointer, + + + + +AND a passive grab on the same device and button/key combination does not +exist on any ancestor of the grab window, + + + + +THEN the device is actively grabbed, as for +XGrabDevice , +the last-grab time is set to the time at which the button was pressed +(as transmitted in the +DeviceButtonPress +event), and the +DeviceButtonPress +event is reported. + + + + + +The interpretation of the remaining arguments is as for +XGrabDevice . +The active grab is terminated automatically when logical state of the +device has all buttons released (independent of the logical state of +the modifier keys). + + + +Note that the logical state of a device (as seen by means of the X protocol) +may lag the physical state if device event processing is frozen. + + + +A modifier of +AnyModifier +is equivalent to issuing the request for all +possible modifier combinations (including the combination of no +modifiers). +It is not required that all modifiers specified have +currently assigned keycodes. +A button of +AnyButton +is equivalent to issuing +the request for all possible buttons. +Otherwise, it is not required that the +specified button be assigned to a physical button. + + + + +generates a +BadAccess +error if some other client has issued a + +with the same device and button combination on the same window. +When using +AnyModifier +or +AnyButton , +the request fails completely and the X server generates a +BadAccess +error and no grabs are +established if there is a conflicting grab for any combination. + + + + +can generate +BadAccess , +BadClass , +BadDevice , +BadMatch , +BadValue , +and +BadWindow +errors. + + + + +To release a passive grab of a button on an extension device, use +XUngrabDeviceButton . + + + + int XUngrabDeviceButton + Display *display + XDevice *device + unsignedint button + unsignedint modifiers + XDevice *modifier_device + Window ungrab_window + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + button + + + +Specifies the code of the button that is to be ungrabbed. You can pass +either a button or +AnyButton . + + + + + + modifiers + + + +Specifies the set of keymasks. This mask is the bitwise inclusive OR +of these keymask bits: +ShiftMask , +LockMask , +ControlMask , +Mod1Mask , +Mod2Mask , +Mod3Mask , +Mod4Mask , +and +Mod5Mask . + + + + + + + + + +You can also pass +AnyModifier , +which is equivalent to issuing the ungrab key +request for all possible modifier combinations (including the combination +of no modifiers). + + + + + + modifier_device + + + +Specifies the device whose modifiers are to be used. If NULL is +specified, the core X keyboard is used as the modifier_device. + + + + + + ungrab_window + + + +Specifies the ID of a window associated with the device specified above. + + + + + + + + + +is analogous to the core +XUngrabButton +function. It releases an explicit passive grab for a button +on an extension device. +That device must have previously been opened using the + +function, or a +BadDevice +error will result. + + + +A modifier of +AnyModifier +is equivalent to issuing the request for all +possible modifier combinations (including the combination of no +modifiers). + + + + +can generate +BadAlloc , +BadDevice , +BadMatch , +BadValue , +and +BadWindow +errors. + + + +Thawing a Device + + + + + +To allow further events to be processed when a device has been frozen, use +XAllowDeviceEvents . + + + + int XAllowDeviceEvents + Display *display + XDevice *device + int event_mode + Time time + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + event_mode + + + +Specifies the event mode. You can pass one of these constants: +AsyncThisDevice , +SyncThisDevice , +AsyncOtherDevices , +ReplayThisDevice , +AsyncAll , +or +SyncAll . + + + + + + time + + + +Specifies the time. This may be either a timestamp expressed in +milliseconds, or +CurrentTime . + + + + + + + + + +releases some queued events if the client has caused a device to freeze. +It has no effect if the specified time is earlier than the last-grab +time of the most recent active grab for the client and device, +or if the specified time is later than the current X server time. +The following describes the processing that occurs depending on what constant +you pass to the event_mode argument: + + + + +AsyncThisDevice + + + + +If the specified device is frozen by the client, event processing for that +continues as usual. If the device is frozen multiple times by the client on +behalf of multiple separate grabs, +AsyncThisDevice +thaws for all. +AsyncThisDevice +has no effect if the specified device is not frozen by the +client, but the device need not be grabbed by the client. + + + + +SyncThisDevice + + + + +If the specified device is frozen and actively grabbed by the client, +event processing for that device continues normally until the next +key or button event is reported to the client. +At this time, +the specified device again appears to freeze. +However, if the reported event causes the grab to be released, +the specified device does not freeze. +SyncThisDevice +has no effect if the specified device is not frozen by the client +or is not grabbed by the client. + + + + +ReplayThisDevice + + + + +If the specified device is actively grabbed by the client +and is frozen as the result of an event having been sent to the client +(either from the activation of a +GrabDeviceButton +or from a previous +AllowDeviceEvents +with mode +SyncThisDevice , +but not from a +Grab ), +the grab is released and that event is completely reprocessed. +This time, however, the request ignores any passive grabs at or above +(toward the root) the grab-window of the grab just released. +The request has no effect if the specified device is not grabbed by the client +or if it is not frozen as the result of an event. + + + + +AsyncOtherDevices + + + + +If the remaining devices are frozen by the client, +event processing for them continues as usual. +If the other devices are frozen multiple times by the client on behalf of +multiple separate grabs, +AsyncOtherDevices +``thaws'' for all. +AsyncOtherDevices +has no effect if the devices are not frozen by the client, +but those devices need not be grabbed by the client. + + + + +SyncAll + + + + +If all devices are frozen by the client, +event processing (for all devices) continues normally until the next +button or key event is reported +to the client for a grabbed device, +at which time the devices again appear to +freeze. However, if the reported event causes the grab to be released, +then the devices do not freeze (but if any device is still +grabbed, then a subsequent event for it will still cause all devices +to freeze). +SyncAll +has no effect unless all devices are frozen by the client. +If any device is frozen twice +by the client on behalf of two separate grabs, +SyncAll +"thaws" for both (but a subsequent freeze for +SyncAll +will freeze each device only once). + + + + +AsyncAll + + + + +If all devices are frozen by the +client, event processing (for all devices) continues normally. +If any device is frozen multiple times by the client on behalf of multiple +separate grabs, +AsyncAll +``thaws ''for all. +If any device is frozen twice by the client on behalf of two separate grabs, +AsyncAll +``thaws'' for both. +AsyncAll +has no effect unless all devices are frozen by the client. + + + + + +AsyncThisDevice , +SyncThisDevice , +and +ReplayThisDevice +have no effect on the processing of events from the remaining devices. +AsyncOtherDevices +has no effect on the processing of events from the specified device. +When the event_mode is +SyncAll +or +AsyncAll , +the device parameter is ignored. + + + +It is possible for several grabs of different devices (by the same +or different clients) to be active simultaneously. +If a device is frozen on behalf of any grab, +no event processing is performed for the device. +It is possible for a single device to be frozen because of several grabs. +In this case, +the freeze must be released on behalf of each grab before events can +again be processed. + + + + +can generate +BadDevice +and +BadValue +errors. + + + +Controlling Device Focus + + + + + +The current focus window for an extension input device can be +determined using the + +function. +Extension devices are focused using the + +function in the same way that the keyboard is focused using the core +XSetInputFocus +function, except that a device ID is passed as +a function parameter. One additional focus state, +FollowKeyboard , +is provided for extension devices. + + + +To get the current focus state, revert state, +and focus time of an extension device, use +XGetDeviceFocus . + + + + int XGetDeviceFocus + Display *display + XDevice *device + Window *focus_return + int *revert_to_return + Time *focus_time_return + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + focus_return + + + +Specifies the address of a variable into which the server can return the ID of +the window that contains the device focus or one of the constants +None , +PointerRoot , +or +FollowKeyboard . + + + + + + revert_to_return + + + +Specifies the address of a variable into which the server can +return the current revert_to status for the device. + + + + + + focus_time_return + + + +Specifies the address of a variable into which the server can +return the focus time last set for the device. + + + + + + + + + +returns the focus state, the revert-to state, +and the last-focus-time for an extension input device. + + + + +can generate +BadDevice +and +BadMatch +errors. + + + + +To set the focus of an extension device, use +XSetDeviceFocus . + + + + int XSetDeviceFocus + Display *display + XDevice *device + Window focus + int revert_to + Time time + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + focus + + + +Specifies the ID of the window to which the device's focus should be set. +This may be a window ID, or +PointerRoot , +FollowKeyboard , +or +None . + + + + + + revert_to + + + +Specifies to which window the focus of the device should revert +if the focus window becomes not viewable. One of the following +constants may be passed: +RevertToParent , +RevertToPointerRoot , +RevertToNone , +or +RevertToFollowKeyboard . + + + + + + time + + + +Specifies the time. You can pass either a timestamp, expressed in +milliseconds, or +CurrentTime . + + + + + + + + + +changes the focus for an extension input device and the +last-focus-change-time. It has no effect if the specified +time is earlier than the last-focus-change-time or is later than the +current X server time. Otherwise, the last-focus-change-time is set to the +specified time. +This function causes the X server to generate +DeviceFocusIn +and +DeviceFocusOut +events. + + + +The action taken by the server when this function is requested depends +on the value of the focus argument: + + + + +If the focus argument is +None , +all input events from this device will be discarded until a new focus window +is set. In this case, the revert_to argument is ignored. + + + + +If the focus argument is a window ID, it becomes the focus +window of the device. If an input event from the device would normally +be reported to this window or to one of its inferiors, the event is +reported normally. Otherwise, the event is reported relative to the focus +window. + + + + +If the focus argument is +PointerRoot , +the focus window is dynamically taken to be the root window +of whatever screen the pointer is on at each input event. +In this case, the revert_to argument is ignored. + + + + +If the focus argument is +FollowKeyboard , +the focus window is dynamically taken to be the same as the focus +of the X keyboard at each input event. + + + + + +The specified focus window must be viewable at the time + +is called. Otherwise, it generates a +BadMatch +error. +If the focus window later becomes not viewable, +the X server evaluates the revert_to argument +to determine the new focus window. + + + + +If the revert_to argument is +RevertToParent , +the focus reverts to the parent (or the closest viewable ancestor), +and the new revert_to value is taken to be +RevertToNone . + + + + +If the revert_to argument is +RevertToPointerRoot , +RevertToFollowKeyboard , +or +RevertToNone , +the focus reverts to that value. + + + + + +When the focus reverts, +the X server generates +DeviceFocusIn +and +DeviceFocusOut +events, but the last-focus-change time is not affected. + + + + +can generate +BadDevice , +BadMatch , +BadValue , +and +BadWindow +errors. + + + +Controlling Device Feedback + + + + + +To determine the current feedback settings of an extension input device, use +XGetFeedbackControl . + + + + XFeedbackState * XGetFeedbackControl + Display *display + XDevice *device + int *num_feedbacks_return + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + num_feedbacks_return + + + +Returns the number of feedbacks supported by the device. + + + + + + + + + +returns a list of +FeedbackState +structures that describe the feedbacks supported by the specified device. +There is an +XFeedbackState +structure for each class of feedback. These are of +variable length, but the first three members are common to all. + + + + + + + +typedef struct { + XID class; + int length; + XID id; +} XFeedbackState; + + + + + +The common members are as follows: + + + + +The class member identifies the class of feedback. +It may be compared to constants defined in the file +< X11/extensions/XI.h >. +Currently defined feedback constants include: +KbdFeedbackClass , +PtrFeedbackClass , +StringFeedbackClass , +IntegerFeedbackClass , +LedFeedbackClass , +and +BellFeedbackClass . + + + + +The length member specifies the length of the +FeedbackState +structure and can be used by clients to traverse the list. + + + + +The id member uniquely identifies a feedback for a given device and class. +This allows a device to support more than one feedback of the same class. +Other feedbacks of other classes or devices may have the same ID. + + + + + + +Those feedbacks equivalent to those +supported by the core keyboard are reported in class +KbdFeedback +using the +XKbdFeedbackState +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int global_auto_repeat; + char auto_repeats[32]; +} XKbdFeedbackState; + + + + + +The additional members of the +XKbdFeedbackState +structure report the current state of the feedback: + + + + +The click member specifies the key-click volume and has a value in the range +0 (off) to 100 (loud). + + + + +The percent member specifies the bell volume and has a value in the range +0 (off) to 100 (loud). + + + + +The pitch member specifies the bell pitch in Hz. The range of the value is +implementation-dependent. + + + + +The duration member specifies the duration in milliseconds of the bell. + + + + +The led_mask member is a bit mask that describes the current state of up to +32 LEDs. A value of 1 in a bit indicates that the corresponding LED is on. + + + + +The global_auto_repeat member has a value of +AutoRepeatModeOn +or +AutoRepeatModeOff . + + + + +The auto_repeats member is a bit vector. Each bit set to 1 indicates +that auto-repeat is enabled for the corresponding key. The vector is +represented as 32 bytes. Byte N (from 0) contains the bits for keys +8N to 8N + 7, with the least significant bit in the byte representing +key 8N. + + + + + + +Those feedbacks equivalent to those +supported by the core pointer are reported in class +PtrFeedback +using the +XPtrFeedbackState +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackState; + + + + + +The additional members of the +XPtrFeedbackState +structure report the current state of the feedback: + + + + +The accelNum member returns the numerator for the acceleration multiplier. + + + + +The accelDenom member returns the denominator for the acceleration multiplier. + + + + +The accelDenom member returns the threshold for the acceleration. + + + + + + +Integer feedbacks are those capable of displaying integer numbers +and reported via the +XIntegerFeedbackState +structure. +The minimum and maximum values that they can display are reported. + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int resolution; + int minVal; + int maxVal; +} XIntegerFeedbackState; + + + + + +The additional members of the +XIntegerFeedbackState +structure report the capabilities of the feedback: + + + + +The resolution member specifies the number of digits that the feedback +can display. + + + + +The minVal member specifies the minimum value that the feedback can display. + + + + +The maxVal specifies the maximum value that the feedback can display. + + + + + + +String feedbacks are those that can display character information +and are reported via the +XStringFeedbackState +structure. +Clients set these feedbacks by passing a list of +KeySyms +to be displayed. +The + +function returns the +set of key symbols that the feedback can display, as well as the +maximum number of symbols that can be displayed. +The +XStringFeedbackState +structure is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int max_symbols; + int num_syms_supported; + KeySym *syms_supported; +} XStringFeedbackState; + + + + + +The additional members of the +XStringFeedbackState +structure report the capabilities of the feedback: + + + + +The max_symbols member specifies the maximum number of symbols +that can be displayed. + + + + +The syms_supported member is a pointer to the list of supported symbols. + + + + +The num_syms_supported member specifies the length of the list of supported symbols. + + + + + + +Bell feedbacks are those that can generate a sound +and are reported via the +XBellFeedbackState +structure. +Some implementations may support a bell as part of a +KbdFeedback +feedback. Class +BellFeedback +is provided for implementations that do not choose to do +so and for devices that support multiple feedbacks that can produce sound. +The meaning of the members is the same as that of the corresponding fields in +the +XKbdFeedbackState +structure. + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackState; + + + + + +Led feedbacks are those that can generate a light and are reported via the +XLedFeedbackState +structure. +Up to 32 lights per feedback are supported. +Each bit in led_mask +corresponds to one supported light, and the corresponding bit in led_values +indicates whether that light is currently on (1) or off (0). +Some implementations may support leds as part of a +KbdFeedback +feedback. +Class +LedFeedback +is provided for implementations that do not choose to do +so and for devices that support multiple led feedbacks. + + + + + + + +typedef struct { + XID class; + int length; + XID id; + Mask led_values; + Mask led_mask; +} XLedFeedbackState; + + + + + + +can generate +BadDevice +and +BadMatch +errors. + + + + +To free the information returned by the + +function, use +XFreeFeedbackList . + + + + void XFreeFeedbackList + XFeedbackState *list + + + + + + + list + + + +Specifies the pointer to the +XFeedbackState +structure returned by +a previous call to +XGetFeedbackControl . + + + + + + + + + +frees the list of feedback control information. + + + + +To change the settings of a feedback on an extension device, use +XChangeFeedbackControl . +This function modifies the current control values of the specified feedback +using information passed in the appropriate +XFeedbackControl +structure for the feedback. +Which values are modified depends on the valuemask passed. + + + + int XChangeFeedbackControl + Display *display + XDevice *device + unsignedlong valuemask + XFeedbackControl *value + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + valuemask + + + +Specifies one value for each bit in the mask (least to most significant +bit). The values are associated with the feedbacks for the specified +device. + + + + + + value + + + +Specifies a pointer to the +XFeedbackControl +structure. + + + + + + + + + +controls the device characteristics described by the +XFeedbackControl +structure. +There is an +XFeedbackControl +structure for each class of feedback. +These are of variable length, but the first +three members are common to all and are as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; +} XFeedbackControl; + + + + + +Feedback class +KbdFeedback +controls feedbacks equivalent to those provided by the core keyboard using the +KbdFeedbackControl +structure, which is defined as follows:. + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int led_value; + int key; + int auto_repeat_mode; +} XKbdFeedbackControl; + + + + + +This class controls the device characteristics described by the +XKbdFeedbackControl +structure. These include the key_click_percent, +global_auto_repeat, and individual key auto-repeat. Valid modes +are +AutoRepeatModeOn , +AutoRepeatModeOff , +and +AutoRepeatModeDefault . + + + +Valid masks are as follows: + + + + + +#define DvKeyClickPercent (1><<0) +#define DvPercent (1><<0) +#define DvPitch (1><<0) +#define DvDuration (1><<0) +#define DvLed (1><<0) +#define DvLedMode (1><<0) +#define DvKey (1><<0) +#define DvAutoRepeatMode (1><<0) + + + + +Feedback class +PtrFeedback +controls feedbacks equivalent to those provided by the core pointer using the +PtrFeedbackControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackControl; + + + + + +Which values are modified depends on the valuemask passed. + + + +Valid masks are as follows: + + + + +#define DvAccelnum (1L<<0) +#define DvAccelDenom (1L<<1) +#define DvThreshold (1L<<2) + + + + + + +The acceleration, expressed as a fraction, is a multiplier for movement. +For example, +specifying 3/1 means that the device moves three times as fast as normal. +The fraction may be rounded arbitrarily by the X server. +Acceleration takes effect only if the device moves more than threshold pixels at +once and applies only to the amount beyond the value in the threshold argument. +Setting a value to -1 restores the default. +The values of the accelNumerator and threshold fields must be nonzero for +the pointer values to be set. +Otherwise, the parameters will be unchanged. +Negative values generate a +BadValue +error, as does a zero value +for the accelDenominator field. + + + +This request fails with a +BadMatch +error if the specified device is not currently reporting relative motion. +If a device that is capable of reporting both relative and absolute motion +has its mode changed from +Relative +to +Absolute +by an + +request, valuator control values +will be ignored by the server while the device is in that mode. + + + +Feedback class +IntegerFeedback +controls integer feedbacks displayed on input devices and are +reported via the +IntegerFeedbackControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int int_to_display; +} XIntegerFeedbackControl; + + + + + +Valid masks are as follows: + + + + + +#define DvInteger (1L<<0) + + + + + +Feedback class +StringFeedback +controls string feedbacks displayed on input devices +and reported via the +StringFeedbackControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int num_keysyms; + KeySym *syms_to_display; +} XStringFeedbackControl; + + + + + +Valid masks are as follows: + + + + +#define DvString (1L<<0) + + + + + +Feedback class +BellFeedback +controls a bell on an input device and is reported via the +BellFeedbackControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackControl; + + + + + +Valid masks are as follows: + + + + + + +#define DvPercent (1L<<1) +#define DvPitch (1L<<2) +#define DvDuration (1L<<3) + + + + + +Feedback class +LedFeedback +controls lights on an input device and are reported via the +LedFeedbackControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID class; + int length; + XID id; + int led_mask; + int led_values; +} XLedFeedbackControl; + + + + + +Valid masks are as follows: + + + + + +#define DvLed (1L<<4) +#define DvLedMode (1L<<5) + + + + + + +can generate +BadDevice , +BadFeedBack , +BadMatch , +and +BadValue +errors. + + + +Ringing a Bell on an Input Device + + + + + +To ring a bell on an extension input device, use +XDeviceBell . + + + + int XDeviceBell + Display *display + XDevice *device + XIDfeedbackclass, feedbackid + int percent + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + feedbackclass + + + +Specifies the feedbackclass. Valid values are +KbdFeedbackClass +and +BellFeedbackClass . + + + + + + feedbackid + + + +Specifies the ID of the feedback that has the bell. + + + + + + percent + + + +Specifies the volume in the range -100 (quiet) to 100 percent (loud). + + + + + + + + + +is analogous to the core +XBell +function. It rings the specified bell on the specified input device feedback, +using the specified volume. +The specified volume is relative to the base volume for the feedback. +If the value for the percent argument is not in the range -100 to 100 +inclusive, a +BadValue +error results. +The volume at which the bell rings when the percent argument is nonnegative is: + + + + + base - [(base * percent) / 100] + percent + + + + +The volume at which the bell rings +when the percent argument is negative is: + + + + + base + [(base * percent) / 100] + + + + +To change the base volume of the bell, use +XChangeFeedbackControl . + + + + +can generate +BadDevice +and +BadValue +errors. + + + +Controlling Device Encoding + + + + + +To get the key mapping of an extension device that supports input class +Keys , +use +XGetDeviceKeyMapping . + + + + KeySym * XGetDeviceKeyMapping + Display *display + XDevice *device + KeyCode first_keycode_wanted + int keycode_count + int *keysyms_per_keycode_return + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + first_keycode_wanted + + + +Specifies the first keycode that is to be returned. + + + + + + keycode_count + + + +Specifies the number of keycodes that are to be returned. + + + + + + keysyms_per_keycode_return + + + +Returns the number of keysyms per keycode. + + + + + + + + + +is analogous to the core +XGetKeyboardMapping +function. +It returns the symbols for the specified number of keycodes for the +specified extension device. + + + + +returns the symbols for the +specified number of keycodes for the +specified extension device, starting with the specified keycode. +The first_keycode_wanted must be greater than or equal to +min-keycode as returned +by the + +request (else a +BadValue +error results). The following value: + +first_keycode_wanted + keycode_count - 1 + + + + +must be less than or equal to max-keycode as returned +by the + +request (else a +BadValue +error results). + + + +The number of elements in the keysyms list is as follows: + +keycode_count * keysyms_per_keycode_return + +And KEYSYM number N (counting from zero) for keycode K has an index +(counting from zero), in keysyms, of the following: + +(K - first_keycode_wanted) * keysyms_per_keycode_return + N + + + + +The keysyms_per_keycode_return value is chosen arbitrarily by the server +to be large enough to report all requested symbols. +A special KEYSYM value of +NoSymbol +is used to fill in unused elements for individual keycodes. + + + +To free the data returned by this function, use +XFree. + + + +If the specified device has not first been opened by this client via +XOpenDevice , +this request will fail with a +BadDevice +error. +If that device does not support input class +Keys , +this request will fail with a +BadMatch +error. + + + + +can generate +BadDevice , +BadMatch , +and +BadValue +errors. + + + + +To change the keyboard mapping of an extension device that supports input class +Keys , +use +XChangeDeviceKeyMapping . + + + + int XChangeDeviceKeyMapping + Display *display + XDevice *device + int first_keycode + int keysyms_per_keycode + KeySym *keysyms + int num_codes + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + first_keycode + + + +Specifies the first keycode that is to be changed. + + + + + + keysyms_per_keycode + + + +Specifies the keysyms that are to be used. + + + + + + keysyms + + + +Specifies a pointer to an array of keysyms. + + + + + + num_codes + + + +Specifies the number of keycodes that are to be changed. + + + + + + + + + +is analogous to the core +XChangeKeyboardMapping +function. +It defines the symbols for the specified number of keycodes for the +specified extension keyboard device. + + + +If the specified device has not first been opened by this client via +XOpenDevice , +this request will fail with a +BadDevice +error. +If the specified device does not support input class +Keys , +this request will fail with a +BadMatch +error. + + + +The number of elements in the keysyms list must be a multiple of +keysyms_per_keycode. Otherwise, + +generates a +BadLength +error. +The specified first_keycode must be greater than or equal to +the min_keycode value returned by the +ListInputDevices +request, or this request will fail with a +BadValue +error. In addition, if the following expression is not less than +the max_keycode value returned by the +ListInputDevices +request, the request will fail with a +BadValue +error: + + first_keycode + (num_codes / keysyms_per_keycode) - 1 + + + + + +can generate +BadAlloc , +BadDevice , +BadMatch , +and +BadValue +errors. + + + + +To obtain the keycodes that are used as modifiers on an +extension device that supports input class +Keys , +use +XGetDeviceModifierMapping . + + + + XModifierKeymap * XGetDeviceModifierMapping + Display *display + XDevice *device + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + + + + +is analogous to the core +XGetModifierMapping +function. +The + +function returns a newly created +XModifierKeymap +structure that contains the keys being used as +modifiers for the specified device. +The structure should be freed after use with +XFreeModifierMapping . +If only zero values appear in the set for any modifier, +that modifier is disabled. + + + + +can generate +BadDevice +and +BadMatch +errors. + + + + +To set which keycodes are to be used as modifiers for an extension device, use +XSetDeviceModifierMapping . + + + + int XSetDeviceModifierMapping + Display *display + XDevice *device + XModifierKeymap *modmap + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + modmap + + + +Specifies a pointer to the +XModifierKeymap +structure. + + + + + + + + + +is analogous to the core +XSetModifierMapping +function. +The + +function specifies the keycodes of the keys, if any, +that are to be used as modifiers. A zero value means +that no key should be used. No two arguments can have the same nonzero +keycode value. Otherwise, + +generates a +BadValue +error. +There are eight modifiers, and the modifiermap member of the +XModifierKeymap +structure contains eight sets of max_keypermod +keycodes, one for each modifier in the order +Shift , +Lock , +Control , +Mod1 , +Mod2 , +Mod3 , +Mod4 , +and +Mod5 . +Only nonzero keycodes have meaning in each set, and zero keycodes +are ignored. +In addition, all of the nonzero keycodes must be in the range specified by +min_keycode and max_keycode reported by the + +function. +Otherwise, +XSetModifierMapping +generates a +BadValue +error. +No keycode may appear twice in the entire map. +Otherwise, it generates a +BadValue +error. + + + +A X server can impose restrictions on how modifiers can be changed, +for example, +if certain keys do not generate up transitions in hardware or if multiple +modifier keys are not supported. +If some such restriction is violated, +the status reply is +MappingFailed , +and none of the modifiers are changed. +If the new keycodes specified for a modifier differ from those +currently defined and any (current or new) keys for that modifier are +in the logically down state, +the status reply is +MappingBusy , +and none of the modifiers are changed. +XSetModifierMapping +generates a +DeviceMappingNotify +event on a +MappingSuccess +status. + + + + +can generate +BadAlloc , +BadDevice , +BadMatch , +and +BadValue +errors. + + + +Controlling Button Mapping + + + + + +To set the mapping of the buttons on an extension device, use +XSetDeviceButtonMapping . + + + + int XSetDeviceButtonMapping + Display *display + XDevice *device + unsignedchar map[] + int nmap + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + map + + + +Specifies the mapping list. + + + + + + nmap + + + +Specifies the number of items in the mapping list. + + + + + + + + + +sets the mapping of the buttons on an extension device. +If it succeeds, the X server generates a +DeviceMappingNotify +event, and + +returns +MappingSuccess . +Elements of the list are indexed starting from one. +The length of the list must be the same as + +would return, or a +BadValue +error results. +The index is a button number, and the element of the list +defines the effective number. +A zero element disables a button, and elements are not restricted in +value by the number of physical buttons. +However, no two elements can have the same nonzero value, or a +BadValue +error results. +If any of the buttons to be altered are logically in the down state, + +returns +MappingBusy , +and the mapping is not changed. + + + + +can generate +BadDevice , +BadMatch , +and +BadValue +errors. + + + + +To get the button mapping, use +XGetDeviceButtonMapping . + + + + int XGetDeviceButtonMapping + Display *display + XDevice *device + unsignedchar map_return[] + int nmap + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + map_return + + + +Specifies the mapping list. + + + + + + nmap + + + +Specifies the number of items in the mapping list. + + + + + + + + + +returns the current mapping of the specified extension device. +Elements of the list are indexed starting from one. + +returns the number of physical buttons actually on the pointer. +The nominal mapping for the buttons is the identity mapping: map[i]=i. +The nmap argument specifies the length of the array where the button +mapping is returned, and only the first nmap elements are returned +in map_return. + + + + +can generate +BadDevice +and +BadMatch +errors. + + + +Obtaining the State of a Device + + + + + +To obtain information that describes the state of the keys, buttons, and +valuators of an extension device, use +XQueryDeviceState . + + + + XDeviceState * XQueryDeviceState + Display *display + XDevice *device + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + + + + +returns a pointer to an +XDeviceState +structure, which points to a list of +structures that describe the state of the keys, buttons, and valuators +on the device: + + + + + + + +typedef struct { + XID device_id; + int num_classes; + XInputClass *data; +} XDeviceState; + + + + + +The structures are of variable length, but the first +two members are common to all and are as follows: + + + + + + + +typedef struct { + unsigned char class; + unsigned char length; +} XInputClass; + + + + + +The class member contains a class identifier. This identifier can be +compared with constants defined in the file +< X11/extensions/XI.h >. +Currently defined constants are: +KeyClass , +ButtonClass , +and +ValuatorClass . + + + +The length member contains the length of the structure and can be used +by clients to traverse the list. + + + +The +XValuatorState +structure describes the current state of the valuators +on the device. +The num_valuators member contains the number of valuators +on the device. +The mode member is a mask whose bits report the data mode +and other state information for the device. +The following bits are currently defined: + + + + DeviceMode 1 << 0 Relative = 0, Absolute = 1 + ProximityState 1 << 1 InProximity = 0, OutOfProximity = 1 + +The valuators member contains a pointer to an array of integers that +describe the current value of the valuators. +If the mode is +Relative , +these values are undefined. + + + + + + + +typedef struct { + unsigned char class; + unsigned char length; + unsigned char num_valuators; + unsigned char mode; + int *valuators; +} XValuatorState; + + + + + +The +XKeyState +structure describes the current state of the keys +on the device. Byte N (from 0) contains the +bits for key 8N to 8N + 7 with the least significant bit in the +byte representing key 8N. + + + + + + + +typedef struct { + unsigned char class; + unsigned char length; + short num_keys; + char keys[32]; +} XKeyState; + + + + + +The +XButtonState +structure describes the current state of the buttons +on the device. Byte N (from 0) contains the bits for button 8N to 8N + 7 +with the least significant bit in the +byte representing button 8N. + + + + + + + +typedef struct { + unsigned char class; + unsigned char length; + short num_buttons; + char buttons[32]; +} XButtonState; + + + + + + +can generate +BadDevice +errors. + + + + +To free the data returned by this function, use +XFreeDeviceState . + + + + void XFreeDeviceState + XDeviceState *state + + + + + + + state + + + +Specifies the pointer to the +XDeviceState +data returned by a previous call to +XQueryDeviceState . + + + + + + + + + +frees the device state data. + + + + +Events + + + + + +The input extension creates input events analogous to the core input events. +These extension input events are generated by manipulating one of the +extension input devices. +The remainder of this section discusses the following X Input Extension +event topics: + + + + +Event types + + + + +Event classes + + + + +Event structures + + + + +Event Types + + + + + +Event types are integer numbers that a client can use to determine what +kind of event it has received. The client compares the type field of +the event structure with known event types to make this determination. + + + +The core input event types are constants and are defined in the header file +< X11/X.h >. +Extension event types are not constants. Instead, they +are dynamically allocated by the extension's request to the X server +when the extension is initialized. Because of this, extension event +types must be obtained by the client from the server. + + + +The client program determines the event type for an extension event by using +the information returned by the + +request. +This type can then be used for comparison with the type field +of events received by the client. + + + +Extension events propagate up the window hierarchy in the same manner +as core events. If a window is not interested in an extension event, +it usually propagates to the closest ancestor that is interested, +unless the dont_propagate list prohibits it. +Grabs of extension devices may alter the set of windows that receive a particular +extension event. + + + +The following table lists the event category and its associated event +type or types. + + + + + + + + + Event Category + Event Type + + + + + Device key + DeviceKeyPress + + + + DeviceKeyRelease + + + Device motion + DeviceButtonPress + + + + DeviceButtonRelease + + + + DeviceMotionNotify + + + Device input focus + DeviceFocusIn + + + + DeviceFocusOut + + + Device state notification + DeviceStateNotify + + + Device proximity + ProximityIn + + + + ProximityOut + + + Device mapping + DeviceMappingNotify + + + Device change + ChangeDeviceNotify + + + + + + + +Event Classes + + + + + +Event classes are integer numbers that are used in the same way as the +core event masks. They are used by a client program to indicate to the +server which events that client program wishes to receive. + + + +The core input event masks are constants and are defined in the header file +< X11/X.h >. +Extension event classes are not constants. Instead, they are dynamically +allocated by the extension's request to the X server +when the extension is initialized. Because of this, extension event +classes must be obtained by the client from the server. + + + +The event class for an extension event and device is obtained from +information returned by the + +function. +This class can then be used in an + +request to ask that events of that type from that device be sent to +the client program. + + + +For +DeviceButtonPress +events, the client may specify whether +or not an implicit passive grab should be done when the button is +pressed. If the client wants to guarantee that it will receive a +DeviceButtonRelease +event for each +DeviceButtonPress +event it receives, it should specify the +DeviceButtonPressGrab +class in addition to the +DeviceButtonPress +class. +This restricts the client in that only one client at a time +may request +DeviceButtonPress +events from the same device and +window if any client specifies this class. + + + +If any client has specified the +DeviceButtonPressGrab +class, any requests by any other client that specify the same device +and window and specify either +DeviceButtonPress +or +DeviceButtonPressGrab +will cause an +Access +error to be generated. + + + +If only the +DeviceButtonPress +class is specified, no implicit passive grab will be done when a button +is pressed on the device. +Multiple clients may use this class to specify the same device and +window combination. + + + +The client may also select +DeviceMotion +events only when a button is down. +It does this by specifying the event classes +DeviceButton1Motion +through +DeviceButton5Motion . +An input device will support only +as many button motion classes as it has buttons. + + + +Event Structures + + + + + +Each extension event type has a corresponding structure declared in +< X11/extensions/XInput.h >. +All event structures have the following common members: + + + + type + + + +Set to the event type number that uniquely identifies it. For example, +when the X server reports a +DeviceKeyPress +event to a client application, it sends an +XDeviceKeyPressEvent +structure. + + + + + + serial + + + +Set from the serial number reported in the protocol but expanded from the +16-bit least significant bits to a full 32-bit value. + + + + + + send_event + + + +Set to +True +if the event came from an +XSendEvent +request. + + + + + + display + + + +Set to a pointer to a structure that defines the display +on which the event was read. + + + + + + + +Extension event structures report the current position of the X pointer. +In addition, if the device reports motion data and is reporting absolute data, +the current value of any valuators the device contains is also reported. + + +Device Key Events + + + + + +Key events from extension devices contain all the information that is +contained in a key event from the X keyboard. In addition, they contain +a device ID and report the current value of any valuators on the device, +if that device is reporting absolute data. +If data for more than six valuators is being reported, more than one +key event will be sent. +The axes_count member contains the number of axes that are being +reported. The server sends as many of these events as are +needed to report the device data. Each event contains the total number +of axes reported in the axes_count member and the first axis reported +in the current event in the first_axis member. +If the device supports input class +Valuators , +but is not reporting absolute mode data, +the axes_count member contains zero (0). + + + +The location reported in +the x, y and x_root, y_root members is the location of the core X pointer. + + + +The +XDeviceKeyEvent +structure is defined as follows: + + + + + + + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed */ + Bool send_event; /* true if from SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window event occurred on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int keycode; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; +} XDeviceKeyEvent; + +typedef XDeviceKeyEvent XDeviceKeyPressedEvent; +typedef XDeviceKeyEvent XDeviceKeyReleasedEvent; + + + + + +Device Button Events + + + + + +Button events from extension devices contain all the information that is +contained in a button event from the X pointer. In addition, they contain +a device ID and report the current value of any valuators on the device +if that device is reporting absolute data. +If data for more than six valuators is being reported, more than one +button event may be sent. +The axes_count member contains the number of axes that are being +reported. The server sends as many of these events as are +needed to report the device data. Each event contains the total number +of axes reported in the axes_count member and the first axis reported +in the current event in the first_axis member. +If the device supports input class +Valuators , +but is not reporting absolute mode data, +the axes_count member contains zero (0). + + + +The location reported in +the x, y and x_root, y_root members is the location of the core X pointer. + + + + + + + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window that the event occurred on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int button; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; +} XDeviceButtonEvent; + +typedef XDeviceButtonEvent XDeviceButtonPressedEvent; +typedef XDeviceButtonEvent XDeviceButtonReleasedEvent; + + + + + +Device Motion Events + + + + + +Motion events from extension devices contain all the information that is +contained in a motion event from the X pointer. In addition, they contain +a device ID and report the current value of any valuators on the device. + + + +The location reported in +the x, y and x_root, y_root members is the location of the core X pointer, +and so is 2-dimensional. + + + +Extension motion devices may report motion data for a variable number of +axes. +The axes_count member contains the number of axes that are being +reported. The server sends as many of these events as are +needed to report the device data. Each event contains the total number +of axes reported in the axes_count member and the first axis reported +in the current event in the first_axis member. + + + + + + + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window that the event occurred on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + char is_hint; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; +} XDeviceMotionEvent; + + + + + +Device Focus Events + + + + + +These events are equivalent to the core focus events. +They contain the same information, with the addition +of a device ID to identify which device has had a focus change, +and a timestamp. + + + +DeviceFocusIn +and +DeviceFocusOut +events are generated for +focus changes of extension devices in the same manner as core focus +events are generated. + + + + + + + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window it is reported relative to */ + XID deviceid; + int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */ + int detail; + /* + * NotifyAncestor, NotifyVirtual, NotifyInferior, + * NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer, + * NotifyPointerRoot, NotifyDetailNone + */ + Time time; +} XDeviceFocusChangeEvent; + +typedef XDeviceFocusChangeEvent XDeviceFocusInEvent; +typedef XDeviceFocusChangeEvent XDeviceFocusOutEvent; + + + + + +Device StateNotify Event + + + + + +This event is analogous to the core keymap event but +reports the current state of the device for each +input class that it supports. +It is generated after every +DeviceFocusIn +event and +EnterNotify +event and is delivered to clients who have selected +XDeviceStateNotify +events. + + + +If the device supports input class +Valuators , +the mode member in the +XValuatorStatus +structure is a bitmask that reports the device mode, +proximity state, and other state information. +The following bits are currently defined: + + + + 0x01 Relative = 0, Absolute = 1 + 0x02 InProximity = 0, OutOfProximity = 1 + + + + +If the device supports more valuators than can be reported in a single +XEvent , +multiple +XDeviceStateNotify +events will be generated. + + + + + + + +typedef struct { + unsigned char class; + unsigned char length; +} XInputClass; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + XID deviceid; + Time time; + int num_classes; + char data[64]; +} XDeviceStateNotifyEvent; + +typedef struct { + unsigned char class; + unsigned char length; + unsigned char num_valuators; + unsigned char mode; + int valuators[6]; +} XValuatorStatus; + +typedef struct { + unsigned char class; + unsigned char length; + short num_keys; + char keys[32]; +} XKeyStatus; + +typedef struct { + unsigned char class; + unsigned char length; + short num_buttons; + char buttons[32]; +} XButtonStatus; + + + + + +Device Mapping Event + + + + + +This event is equivalent to the core +MappingNotify +event. +It notifies client programs when the mapping of keys, +modifiers, or buttons on an extension device has changed. + + + + + + + +typedef struct { + int type; + unsigned long serial; + Bool send_event; + Display *display; + Window window; + XID deviceid; + Time time; + int request; + int first_keycode; + int count; +} XDeviceMappingEvent; + + + + + +ChangeDeviceNotify Event + + + + + +This event has no equivalent in the core protocol. It notifies client +programs when one of the core devices has been changed. + + + + + + + +typedef struct { + int type; + unsigned long serial; + Bool send_event; + Display *display; + Window window; + XID deviceid; + Time time; + int request; +} XChangeDeviceNotifyEvent; + + + + + +Proximity Events + + + + + +These events have no equivalent in the core protocol. Some input +devices such as graphics tablets or touchscreens may send these +events to indicate that a stylus has moved into or out of contact +with a positional sensing surface. + + + +The event contains the current value of any valuators on the device +if that device is reporting absolute data. +If data for more than six valuators is being reported, more than one +proximity event may be sent. +The axes_count member contains the number of axes that are being +reported. The server sends as many of these events as are +needed to report the device data. Each event contains the total number +of axes reported in the axes_count member and the first axis reported +in the current event in the first_axis member. +If the device supports input class +Valuators , +but is not reporting absolute mode data, +the axes_count member contains zero (0). + + + + + + + +typedef struct { + int type; /* ProximityIn or ProximityOut */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + XID deviceid; + Window root; + Window subwindow; + Time time; + int x, y; + int x_root, y_root; + unsigned int state; + Bool same_screen; + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; +} XProximityNotifyEvent; + +typedef XProximityNotifyEvent XProximityInEvent; +typedef XProximityNotifyEvent XProximityOutEvent; + + + + + + + +Event Handling Functions + + + + + +This section discusses the X Input Extension +event handling functions that allow you to: + + + + +Determine the extension version + + + + +List the available devices + + + + +Enable and disable extension devices + + + + +Change the mode of a device + + + + +Initialize valuators on an input device + + + + +Get input device controls + + + + +Change input device controls + + + + +Select extension device events + + + + +Determine selected device events + + + + +Control event propogation + + + + +Send an event + + + + +Get motion history + + + + +Determining the Extension Version + + + + + + + + + XExtensionVersion * XGetExtensionVersion + Display *display + char *name + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + name + + + +Specifies the name of the desired extension. + + + + + + + + + +allows a client to determine whether a server supports +the desired version of the input extension. + + + +The +XExtensionVersion +structure returns information about the version of the extension +supported by the server and is defined as follows: + + + + + + + +typedef struct { + Bool present; + short major_version; + short minor_version; +} XExtensionVersion; + + + + + +The major and minor versions can be compared with constants defined in +the header file +< X11/extensions/XI.h >. +Each version is a superset of the previous versions. + + + +You should use +XFree. +to free the data returned by this function. + + + +Listing Available Devices + + + + + +A client program that wishes to access a specific device +must first determine whether that device is connected to the X server. This +is done through the + +function, which will return a list of all devices that can be opened +by the X server. The client program can use one +of the names defined in the +< X11/extensions/XI.h > +header file in an +XInternAtom +request to determine the device type of the desired device. This type +can then be compared with the device types returned by the + +request. + + + + + + + XDeviceInfo * XListInputDevices + Display *display + int *ndevices + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + ndevices + + + +Specifies the address of a variable into which the server +can return the number of input devices available to the X server. + + + + + + + + + +allows a client to determine which devices +are available for X input and information about those devices. +An array of +XDeviceInfo +structures is returned, with one element in the array for each device. +The number of devices is returned in the ndevices argument. + + + +The X pointer device and X keyboard device are reported, as well as +all available extension input devices. The use member of the +XDeviceInfo +structure specifies the current use of the device. +If the value of this member is +IsXPointer , +the device is the X pointer device. If the value is +IsXKeyboard , +the device is the X keyboard device. If the value is +IsXExtensionDevice , +the device is available for use as an extension input device. + + + +Each +XDeviceInfo +entry contains a pointer to a list of structures +that describe the characteristics of each class +of input supported by that device. The num_classes member +contains the number of entries in that list. + + + +If the device supports input class +Valuators , +one of the structures pointed to by the +XDeviceInfo +structure will be an +XValuatorInfo +structure. The axes member of that structure +contains the address of an array of +XAxisInfo +structures. +There is one element in this array for each axis of motion +reported by the device. The number of elements in this +array is contained in the num_axes element of the +XValuatorInfo +structure. +The size of the motion buffer for the device is +reported in the motion_buffer member of the +XValuatorInfo +structure. + + + +The +XDeviceInfo +structure is defined as follows: + + + + + + + +typedef struct _XDeviceInfo { + XID id; + Atom type; + char *name; + int num_classes; + int use; + XAnyClassPtr inputclassinfo; +} XDeviceInfo; + + + + + +The structures pointed to by the +XDeviceInfo +structure are defined as follows: + + + + + + + +typedef struct _XKeyInfo { + XID class; + int length; + unsigned short min_keycode; + unsigned short max_keycode; + unsigned short num_keys; +} XKeyInfo; + +typedef struct _XButtonInfo { + XID class; + int length; + short num_buttons; +} XButtonInfo; + +typedef struct _XValuatorInfo { + XID class; + int length; + unsigned char num_axes; + unsigned char mode; + unsigned long motion_buffer; + XAxisInfoPtr axes; +} XValuatorInfo; + + + + + +The +XAxisInfo +structure pointed to by the +XValuatorInfo +structure is defined as follows: + + + + + + + +typedef struct _XAxisInfo { + int resolution; + int min_value; + int max_value; +} XAxisInfo; + + + + + +The following atom names are defined in the +< X11/extensions/XI.h > +header file. + + + +MOUSE QUADRATURE +TABLET SPACEBALL +KEYBOARD DATAGLOVE +TOUCHSCREEN EYETRACKER +TOUCHPAD CURSORKEYS +BUTTONBOX FOOTMOUSE +BARCODE ID_MODULE +KNOB_BOX ONE_KNOB +TRACKBALL NINE_KNOB\s+1 + + + + +These names can be used in an +XInternAtom +request to return an atom that can be used for comparison +with the type member of the +XDeviceInfo +structure. + + + + +returns NULL if there are no input devices to list. + + + + +To free the data returned by +XListInputDevices , +use +XFreeDeviceList . + + + + + + + + void XFreeDeviceList + XDeviceInfo *list + + + + + + + list + + + +Specifies the pointer to the +XDeviceInfo +array returned by a previous call to +XListInputDevices . + + + + + + + + + +frees the list of input device information. + + + +Enabling and Disabling Extension Devices + + + + + +Each client program that wishes to access an extension device must request +that the server open that device by calling the + +function. + + + + XDevice * XOpenDevice + Display *display + XID device_id + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device_id + + + +Specifies the ID that uniquely identifies the device to be opened. +This ID is obtained from the + +request. + + + + + + + + + +opens the device for the requesting client and, on success, returns an +XDevice +structure, which is defined as follows: + + + + + + + +typedef struct { + XID device_id; + int num_classes; + XInputClassInfo *classes; +} XDevice; + + + + + +The +XDevice +structure contains a pointer to an array of +XInputClassInfo +structures. Each element in that array +contains information about events of a particular input class supported +by the input device. + + + +The +XInputClassInfo +structure is defined as follows: + + + + + + + +typedef struct { + unsigned char input_class; + unsigned char event_type_base; +} XInputClassInfo; + + + + + +A client program can determine the event +type and event class for a given event by using macros defined by the +input extension. The name of the macro corresponds to the desired event, +and the macro is passed the structure that describes the device from which +input is desired, for example: + + + + + + + DeviceKeyPress(XDevice *device, event_type, event_class) + + + + +The macro will fill in the values of the event class to be used in an + +request to select the event and the event type to be used in comparing +with the event types of events received via +XNextEvent. + + + + +can generate +BadDevice +errors. + + + + +Before terminating, the client program should request that the server close +the device by calling the + +function. + + + + int XCloseDevice + Display *display + XDevice *device + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device to be closed. + + + + + + + + + +closes the device for the requesting client and frees the associated +XDevice +structure. + + + +A client may open the same extension device more than once. Requests +after the first successful one return an additional +XDevice +structure +with the same information as the first, but otherwise have no effect. +A single + +request will terminate that client's access to the device. + + + +Closing a device releases any active or passive grabs the requesting client +has established. If the device is frozen only by an active grab of the +requesting client, any queued events are released. + + + +If a client program terminates without closing a device, the server will +automatically close that device on behalf of the client. This does not +affect any other clients that may be accessing that device. + + + + +can generate +BadDevice +errors. + + + +Changing the Mode of a Device + + + + + +Some devices are capable of reporting either relative or absolute motion +data. +To change the mode of a device from relative to absolute, use +XSetDeviceMode . + + + + int XSetDeviceMode + Display *display + XDevice *device + int mode + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device whose mode should be changed. + + + + + + mode + + + +Specifies the mode. You can pass +Absolute +or +Relative . + + + + + + + + + +allows a client to request the server to change the mode of a +device that is capable of reporting either absolute positional data or relative +motion data. If the device is invalid or if the client has not previously +requested that the server open the device via an + +request, this request will fail with a +BadDevice +error. +If the device does not support input class +Valuators +or if it is not capable of reporting the specified mode, +the request will fail with a +BadMatch +error. + + + +This request will fail and return +DeviceBusy +if another client has already opened the device and requested a different mode. + + + + +can generate +BadDevice , +BadMatch , +BadMode , +and +DeviceBusy +errors. + + + +Initializing Valuators on an Input Device + + + + + +Some devices that report absolute positional data can be initialized to a +starting value. Devices that are capable of reporting relative motion or +absolute positional data may require that their valuators be initialized +to a starting value after the mode of the device is changed to +Absolute . + + + + +To initialize the valuators on such a device, use +XSetDeviceValuators . + + + + Status XSetDeviceValuators + Display *display + XDevice *device + int*valuators,first_valuator, num_valuators + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device whose valuators should be initialized. + + + + + + valuators + + + +Specifies the values to which each valuator should be set. + + + + + + first_valuator + + + +Specifies the first valuator to be set. + + + + + + num_valuators + + + +Specifies the number of valuators to be set. + + + + + + + + + +initializes the specified valuators on the specified extension +input device. Valuators are numbered beginning with zero. Only the valuators +in the range specified by first_valuator and num_valuators are set. +A +BadValue +error results if the number of valuators supported by the device +is less than the following expression: + + + + first_valuator + num_valuators + + + + +If the request succeeds, +Success +is returned. If the specified device is grabbed by some other client, +the request will fail and a status of +AlreadyGrabbed +will be returned. + + + + +can generate +BadDevice , +BadLength , +BadMatch , +and +BadValue +errors. + + + +Getting Input Device Controls + + + + + +Some input devices support various configuration controls +that can be queried or changed by clients. The set of supported +controls will vary from one input device to another. Requests +to manipulate these controls will fail if either the target +X server or the target input device does not support the +requested device control. + + + +Each device control has a unique identifier. Information +passed with each device control varies in length and is mapped +by data structures unique to that device control. + + + + +To query a device control, use +XGetDeviceControl . + + + + XDeviceControl * XGetDeviceControl + Display *display + XDevice *device + int control + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device whose configuration control status is to be returned. + + + + + + control + + + +Identifies the specific device control to be queried. + + + + + + + + + +returns the current state of the specified device control. +If the target X server does not support that device control, a +BadValue +error is returned. +If the specified device does not support that device control, a +BadMatch +error +is returned. + + + +If the request is successful, a pointer to a generic +XDeviceState +structure is returned. The information returned varies according +to the specified control and is mapped by a structure appropriate +for that control. +The first two members are common to all device controls +and are defined as follows: + + + + + + + +typedef struct { + XID control; + int length; +} XDeviceState; +\fP + + + + + +The control may be compared to constants defined in the file +< X11/extensions/XI.h >. +Currently defined device controls include DEVICE_RESOLUTION. + + + +The information returned for the DEVICE_RESOLUTION control is +defined in the +XDeviceResolutionState +structure, which is defined as follows: + + + + + + + +typedef struct { + XID control; + int length; + int num_valuators; + int *resolutions; + int *min_resolutions; + int *max_resolutions; +} XDeviceResolutionState; + + + + + +This device control returns a list of valuators and the range of +valid resolutions allowed for each. Valuators are numbered +beginning with zero (0). Resolutions for all valuators on the device are +returned. For each valuator i on the device, resolutions[i] returns +the current setting of the resolution, min_resolutions[i] returns +the minimum valid setting, and max_resolutions[i] returns the +maximum valid setting. + + + +When this control is specified, + +fails with a +BadMatch +error if the specified device has no valuators. + + + + +can generate +BadMatch +and +BadValue +errors. + + + +Changing Input Device Controls + + + + + +Some input devices support various configuration controls +that can be changed by clients. Typically, this would be +done to initialize the device to a known state or configuration. +The set of supported controls will vary from one input device +to another. Requests to manipulate these controls will fail if +either the target X server or the target input device does not +support the requested device control. Setting the device control +will also fail if the target input device is grabbed by another +client or is open by another client and has been set to a conflicting +state. + + + +Each device control has a unique identifier. Information +passed with each device control varies in length and is mapped +by data structures unique to that device control. + + + + +To change a device control, use +XChangeDeviceControl . + + + + Status XChangeDeviceControl + Display *display + XDevice *device + int control + XDeviceControl *value + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device whose configuration control status is to be modified. + + + + + + control + + + +Identifies the specific device control to be changed. + + + + + + value + + + +Specifies a pointer to an +XDeviceControl +structure that describes which control is to be changed +and how it is to be changed. + + + + + + + + + +changes the current state of the specified device control. +If the target X server does not support that device control, a +BadValue +error is returned. +If the specified device does not support that device control, a +BadMatch +error is returned. +If another client has the target device grabbed, a status of +AlreadyGrabbed +is returned. +If another client has the device open and has set it to a +conflicting state, a status of +DeviceBusy +is returned. +If the request fails for any reason, the device control will not +be changed. + + + +If the request is successful, the device control will be changed +and a status of +Success +is returned. +The information passed varies according to the specified control +and is mapped by a structure appropriate for that control. +The first two members are common to all device controls: + + + + + + + +typedef struct { + XID control; + int length; +} XDeviceControl; + + + + + +The control may be set using constants defined in the +< X11/extensions/XI.h > +header file. +Currently defined device controls include DEVICE_RESOLUTION. + + + +The information that can be changed by the DEVICE_RESOLUTION +control is defined in the +XDeviceResolutionControl +structure, which is defined as follows: + + + + + + + +typedef struct { + XID control; + int length; + int first_valuator; + int num_valuators; + int *resolutions; +} XDeviceResolutionControl; + + + + + +This device control changes the resolution of the specified +valuators on the specified extension input device. Valuators +are numbered beginning with zero. Only the valuators in the range +specified by first_valuator and num_valuators are set. A value +of -1 in the resolutions list indicates that the resolution for +this valuator is not to be changed. The num_valuators member +specifies the number of valuators in the resolutions list. + + + +When this control is specified, + +fails with a +BadMatch +error if the specified device has no valuators. +If a resolution is specified that is not within the range of valid values +(as returned by +XGetDeviceControl ), + +fails with a +BadValue +error. +A +BadValue +error results if the number of valuators supported by the device +is less than the following expression: + + + + + + + first_valuator + num_valuators, + + + + + +can generate +BadMatch +and +BadValue +errors. + + + +Selecting Extension Device Events + + + + + +To select device input events, use +XSelectExtensionEvent . +The parameters passed are a pointer to +a list of classes that define the desired event types and devices, a count +of the number of elements in the list, and the ID of the window from which +events are desired. + + + + int XSelectExtensionEvent + Display *display + Window window + XEventClass *event_list + int event_count + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + window + + + +Specifies the ID of the window from which the client wishes to receive events. + + + + + + event_list + + + +Specifies a pointer to an array of event classes +that specify which events are desired. + + + + + + event_count + + + +Specifies the number of elements in the event_list. + + + + + + + + + +requests the server to send events that match the events and +devices described by the event list and that come from the requested +window. +The elements of the +XEventClass +array are the event_class values +obtained by invoking a macro with the pointer to an +XDevice +structure returned by the + +request. +For example, the +DeviceKeyPress +macro would return the +XEventClass +for +DeviceKeyPress +events from the specified device if it were invoked in the following form: + + + + DeviceKeyPress (XDevice *device, event_type, event_class) + + + + +Macros are defined for the following event classes: + +DeviceKeyPress +DeviceKeyRelease +DeviceButtonPress +DeviceButtonRelease +DeviceMotionNotify +DeviceFocusIn +DeviceFocusOut +ProximityIn +ProximityOut +DeviceStateNotify +DeviceMappingNotify +ChangeDeviceNotify +DevicePointerMotionHint +DeviceButton1Motion +DeviceButton2Motion +DeviceButton3Motion, +DeviceButton4Motion +DeviceButton5Motion +DeviceButtonMotion, +DeviceOwnerGrabButton +DeviceButtonPressGrab + + + + +To get the next available event from within a client program, use the core +XNextEvent +function. This returns the next event whether it +came from a core device or an extension device. + + + +Succeeding + +requests using event classes +for the same device as was specified on a previous request will replace +the previous set of selected events from that device with the new set. + + + + +can generate +BadAccess , +BadClass , +BadLength , +and +BadWindow +errors. + + + +Determining Selected Device Events + + + + + +To determine which extension events are currently selected from a given +window, use +XGetSelectedExtensionEvents . + + + + int XGetSelectedExtensionEvents + Display *display + Window window + int *this_client_count + XEventClass **this_client + int *all_clients_count + XEventClass **all_clients + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + window + + + +Specifies the ID of the window from which the client wishes to receive events. + + + + + + this_client_count + + + +Returns the number of elements in the this_client list. + + + + + + this_client + + + +Returns a list of +XEventClasses +that specify which events are +selected by this client. + + + + + + all_clients_count + + + +Returns the number of elements in the all_clients list. + + + + + + all_clients + + + +Returns a list of +XEventClasses +that specify which events are +selected by all clients. + + + + + + + + + +returns pointers to two event class arrays. +One lists the extension events selected by this client from +the specified window. The other lists the extension events selected by +all clients from the specified window. This information is analogous +to that returned in your_event_mask and all_event_masks of the +XWindowAttributes +structure when an +XGetWindowAttributes +request is made. +To free the two arrays returned by this function, use +XFree. + + + + +can generate +BadWindow +errors. + + + +Controlling Event Propagation + + + + + +Extension events propagate up the window hierarchy in the same manner +as core events. If a window is not interested in an extension event, +it usually propagates to the closest ancestor that is interested, +unless the dont_propagate list prohibits it. +Grabs of extension devices may alter the set of windows that receive a +particular extension event. + + + +Client programs may control event propagation through the use +of the following two functions: + +and +XGetDeviceDontPropagateList . + + + + + + + int XChangeDeviceDontPropagateList + Display *display + Window window + int event_count + XEventClass *events + int mode + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + window + + + +Specifies the desired window. + + + + + + event_count + + + +Specifies the number of elements in the events list. + + + + + + events + + + +Specifies a pointer to the list of XEventClasses. + + + + + + mode + + + +Specifies the mode. You can pass +AddToList +or +DeleteFromList . + + + + + + + + + +adds an event to or deletes an event from the do_not_propagate list +of extension events for the specified window. +There is one list per window, and the list remains for the life of the window. +The list is not altered if a client that changed the list terminates. + + + +Suppression of event propagation is not allowed for all events. If a +specified +XEventClass +is invalid because suppression of that event is not allowed, a +BadClass +error results. + + + + +can generate +BadClass , +BadMode , +and +BadWindow +errors. + + + + + + + + XEventClass * XGetDeviceDontPropagateList + Display *display + Window window + int *event_count + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + window + + + +Specifies the desired window. + + + + + + event_count + + + +Returns the number of elements in the array returned by this function. + + + + + + + + + +allows a client to determine the do_not_propagate list of extension events +for the specified window. +It returns an array of +XEventClass , +each +XEventClass +representing a device/event type pair. +To free the data returned by this function, use +XFree. + + + + +can generate +BadWindow +errors. + + + +Sending an Event + + + + + +To send an extension event to another client, use +XSendExtensionEvent . + + + + int XSendExtensionEvent + Display *display + XDevice *device + Window window + Bool propagate + int event_count + XEventClass *event_list + XEvent *event + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the device whose ID is recorded in the event. + + + + + + window + + + +Specifies the destination window ID. You can pass a window ID, +PointerWindow +or +InputFocus . + + + + + + propagate + + + +Specifies a boolean value that is either +True +or +False . + + + + + + event_count + + + +Specifies the number of elements in the event_list array. + + + + + + event_list + + + +Specifies a pointer to an array of +XEventClass . + + + + + + event + + + +Specifies a pointer to the event that is to be sent. + + + + + + + + + +identifies the destination window, determines which clients should receive +the specified event, and ignores any active grabs. +It requires a list of +XEventClass +to be specified. +These are obtained by opening an input device with the + +request. + + + + +uses the window argument to identify the destination window as follows: + + + + +If you pass +PointerWindow , +the destination window is the window that contains the pointer. + + + + +If you pass +InputFocus +and if the focus window contains the pointer, +the destination window is the window that contains the pointer. +If the focus window does not contain the pointer, +the destination window is the focus window. + + + + + +To determine which clients should receive the specified events, + +uses the propagate argument as follows: + + + + +If propagate is +False , +the event is sent to every client selecting +from the destination window +any of the events specified in the event_list array. + + + + +If propagate is +True +and no clients have selected from the destination window +any of the events specified in the event_list array, the destination is +replaced with the closest ancestor of destination for which some client +has selected one of the specified events and for which no intervening +window has that event in its do_not_propagate mask. +If no such window exists, +or if the window is an ancestor of the focus window, and +InputFocus +was originally specified as the destination, +the event is not sent to any clients. Otherwise, the event is reported to every +client selecting on the final destination any of the events specified +in event_list. + + + + + +The event in the +XEvent +structure must be one of the events defined +by the input extension, so that the X server can correctly byte swap the +contents as necessary. The contents of the event are otherwise unaltered +and unchecked by the X server except to force send_event to +True +in the forwarded event and to set the sequence number in the event correctly. + + + + +returns zero if the conversion-to-wire protocol failed; +otherwise, it returns nonzero. + + + + +can generate +BadClass , +BadDevice , +BadValue , +and +BadWindow +errors. + + + +Getting Motion History + + + + + + + + + XDeviceTimeCoord * XGetDeviceMotionEvents + axis_count_return) + Display *display + XDevice *device + Timestart, stop + int *nevents_return + int *mode_return + int *axis_count_return + + + + + + + display + + + +Specifies the connection to the X server. + + + + + + device + + + +Specifies the desired device. + + + + + + start + + + +Specifies the start time. + + + + + + stop + + + +Specifies the stop time. + + + + + + nevents_return + + + +Returns the number of positions in the motion buffer returned +for this request. + + + + + + mode_return + + + +Returns the mode of the nevents information. +The mode will be one of the following: +Absolute +or +Relative . + + + + + + axis_count_return + + + +Returns the number of axes reported in each of the positions returned. + + + + + + + + + +returns all positions in the device's motion history buffer +that fall between the specified start and stop times inclusive. +If the start time is in the future or is later than the stop time, +no positions are returned. + + + +The return type for this function is an +XDeviceTimeCoord +structure, which is defined as follows: + + + + + + + +typedef struct { + Time time; + unsigned int *data; +} XDeviceTimeCoord; + + + + + +The data member is a pointer to an array of data items. +Each item is of type int, and there is one data item +per axis of motion reported by the device. +The number of axes reported by the device is returned in the axis_count variable. + + + +The value of the data items depends on the mode of the device. +The mode is returned in the mode variable. If the +mode is +Absolute , +the data items are the raw values generated by the device. +These may be scaled by the client program using the +maximum values that the device can generate for each axis of motion +that it reports. The maximum value for each axis is reported in +the max_val member of the +XAxisInfo +structure, which is part of the information returned by the + +request. + + + +If the mode is +Relative , +the data items are the relative values generated by the device. +The client program must choose an initial +position for the device and maintain a current position by +accumulating these relative values. + + + +Consecutive calls to + +can return data of different modes, that is, if +some client program has changed the mode of the device via an + +request. + + + + +can generate +BadDevice +and +BadMatch +errors. + + + + +To free the data returned by +XGetDeviceMotionEvents , +use +XFreeDeviceMotionEvents . + + + + + + + void XFreeDeviceMotionEvents + XDeviceTimeCoord *events + + + + + + + events + + + +Specifies the pointer to the +XDeviceTimeCoord +array returned by a previous call to +XGetDeviceMotionEvents . + + + + + + + + + +frees the specified array of motion information. + + + + + + + + + +Appendix A + + + + + + +The following information is contained in the <X11/extensions/XInput.h> +and <X11/extensions/XI.h> header files: + + + + +/* Definitions used by the library and client */ + +#ifndef _XINPUT_H_ +#define _XINPUT_H_ + +#ifndef _XLIB_H_ +#include <X11/Xlib.h> +#endif + +#ifndef _XI_H_ +#include "XI.h" +#endif + +#define _deviceKeyPress 0 +#define _deviceKeyRelease 1 + +#define _deviceButtonPress 0 +#define _deviceButtonRelease 1 + +#define _deviceMotionNotify 0 + +#define _deviceFocusIn 0 +#define _deviceFocusOut 1 + +#define _proximityIn 0 +#define _proximityOut 1 + +#define _deviceStateNotify 0 +#define _deviceMappingNotify 1 +#define _changeDeviceNotify 2 + +#define FindTypeAndClass(d, type, class, classid, offset) \ + { int i; XInputClassInfo *ip; \ + type = 0; class = 0; \ + for (i=0, ip= ((XDevice *) d)->classes; \ + i< ((XDevice *) d)->num_classes; \ + i++, ip++) \ + if (ip->input_class == classid) \ + {type = ip->event_type_base + offset; \ + class = ((XDevice *) d)->device_id << 8 | type;}} + +#define DeviceKeyPress(d, type, class) \ + FindTypeAndClass(d, type, class, KeyClass, _deviceKeyPress) + +#define DeviceKeyRelease(d, type, class) \ + FindTypeAndClass(d, type, class, KeyClass, _deviceKeyRelease) + +#define DeviceButtonPress(d, type, class) \ + FindTypeAndClass(d, type, class, ButtonClass, _deviceButtonPress) + +#define DeviceButtonRelease(d, type, class) \ + FindTypeAndClass(d, type, class, ButtonClass, _deviceButtonRelease) + +#define DeviceMotionNotify(d, type, class) \ + FindTypeAndClass(d, type, class, ValuatorClass, _deviceMotionNotify) + +#define DeviceFocusIn(d, type, class) \ + FindTypeAndClass(d, type, class, FocusClass, _deviceFocusIn) + +#define DeviceFocusOut(d, type, class) \ + FindTypeAndClass(d, type, class, FocusClass, _deviceFocusOut) + +#define ProximityIn(d, type, class) \ + FindTypeAndClass(d, type, class, ProximityClass, _proximityIn) + +#define ProximityOut(d, type, class) \ + FindTypeAndClass(d, type, class, ProximityClass, _proximityOut) + +#define DeviceStateNotify(d, type, class) \ + FindTypeAndClass(d, type, class, OtherClass, _deviceStateNotify) + +#define DeviceMappingNotify(d, type, class) \ + FindTypeAndClass(d, type, class, OtherClass, _deviceMappingNotify) + +#define ChangeDeviceNotify(d, type, class) \ + FindTypeAndClass(d, type, class, OtherClass, _changeDeviceNotify) + +#define DevicePointerMotionHint(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _devicePointerMotionHint;} + +#define DeviceButton1Motion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButton1Motion;} + +#define DeviceButton2Motion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButton2Motion;} + +#define DeviceButton3Motion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButton3Motion;} + +#define DeviceButton4Motion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButton4Motion;} + +#define DeviceButton5Motion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButton5Motion;} + +#define DeviceButtonMotion(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButtonMotion;} + +#define DeviceOwnerGrabButton(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceOwnerGrabButton;} + +#define DeviceButtonPressGrab(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _deviceButtonGrab;} + +#define NoExtensionEvent(d, type, class) \ + { class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;} + +#define BadDevice(dpy, error) _xibaddevice(dpy, &error) + +#define BadClass(dpy, error) _xibadclass(dpy, &error) + +#define BadEvent(dpy, error) _xibadevent(dpy, &error) + +#define BadMode(dpy, error) _xibadmode(dpy, &error) + +#define DeviceBusy(dpy, error) _xidevicebusy(dpy, &error) + +/*************************************************************** + * + * DeviceKey events. These events are sent by input devices that + * support input class Keys. + * The location of the X pointer is reported in the coordinate + * fields of the x,y and x_root,y_root fields. + * + */ + +typedef struct + { + int type; /* of event */ + unsigned long serial; /* # of last request processed */ + Bool send_event; /* true if from SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int keycode; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; + } XDeviceKeyEvent; + +typedef XDeviceKeyEvent XDeviceKeyPressedEvent; +typedef XDeviceKeyEvent XDeviceKeyReleasedEvent; + +/******************************************************************* + * + * DeviceButton events. These events are sent by extension devices + * that support input class Buttons. + * + */ + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int button; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; + } XDeviceButtonEvent; + +typedef XDeviceButtonEvent XDeviceButtonPressedEvent; +typedef XDeviceButtonEvent XDeviceButtonReleasedEvent; + +/******************************************************************* + * + * DeviceMotionNotify event. These events are sent by extension devices + * that support input class Valuators. + * + */ + +typedef struct + { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* x, y coordinates in event window */ + int x_root; /* coordinates relative to root */ + int y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + char is_hint; /* detail */ + Bool same_screen; /* same screen flag */ + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; + } XDeviceMotionEvent; + +/******************************************************************* + * + * DeviceFocusChange events. These events are sent when the focus + * of an extension device that can be focused is changed. + * + */ + +typedef struct + { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + XID deviceid; + int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */ + int detail; + /* + * NotifyAncestor, NotifyVirtual, NotifyInferior, + * NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer, + * NotifyPointerRoot, NotifyDetailNone + */ + Time time; + } XDeviceFocusChangeEvent; + +typedef XDeviceFocusChangeEvent XDeviceFocusInEvent; +typedef XDeviceFocusChangeEvent XDeviceFocusOutEvent; + +/******************************************************************* + * + * ProximityNotify events. These events are sent by those absolute + * positioning devices that are capable of generating proximity information. + * + */ + +typedef struct + { + int type; /* ProximityIn or ProximityOut */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + XID deviceid; + Window root; + Window subwindow; + Time time; + int x, y; + int x_root, y_root; + unsigned int state; + Bool same_screen; + unsigned int device_state; /* device key or button mask */ + unsigned char axes_count; + unsigned char first_axis; + int axis_data[6]; + } XProximityNotifyEvent; +typedef XProximityNotifyEvent XProximityInEvent; +typedef XProximityNotifyEvent XProximityOutEvent; + +/******************************************************************* + * + * DeviceStateNotify events are generated on EnterWindow and FocusIn + * for those clients who have selected DeviceState. + * + */ + +typedef struct + { + unsigned char class; + unsigned char length; + } XInputClass; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + XID deviceid; + Time time; + int num_classes; + char data[64]; +} XDeviceStateNotifyEvent; + +typedef struct { + unsigned char class; + unsigned char length; + unsigned char num_valuators; + unsigned char mode; + int valuators[6]; +} XValuatorStatus; + +typedef struct { + unsigned char class; + unsigned char length; + short num_keys; + char keys[32]; +} XKeyStatus; + +typedef struct { + unsigned char class; + unsigned char length; + short num_buttons; + char buttons[32]; +} XButtonStatus; + +/******************************************************************* + * + * DeviceMappingNotify event. This event is sent when the key mapping, + * modifier mapping, or button mapping of an extension device is changed. + * + */ + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* unused */ + XID deviceid; + Time time; + int request; /* one of MappingModifier, MappingKeyboard, + MappingPointer */ + int first_keycode;/* first keycode */ + int count; /* defines range of change w. first_keycode*/ +} XDeviceMappingEvent; + +/******************************************************************* + * + * ChangeDeviceNotify event. This event is sent when an + * XChangeKeyboard or XChangePointer request is made. + * + */ + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* unused */ + XID deviceid; + Time time; + int request; /* NewPointer or NewKeyboard */ +} XChangeDeviceNotifyEvent; + +/******************************************************************* + * + * Control structures for input devices that support input class + * Feedback. These are used by the XGetFeedbackControl and + * XChangeFeedbackControl functions. + * + */ + +typedef struct { + XID class; + int length; + XID id; +} XFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int global_auto_repeat; + char auto_repeats[32]; +} XKbdFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int resolution; + int minVal; + int maxVal; +} XIntegerFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int max_symbols; + int num_syms_supported; + KeySym *syms_supported; +} XStringFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackState; + +typedef struct { + XID class; + int length; + XID id; + int led_values; + int led_mask; +} XLedFeedbackState; + +typedef struct { + XID class; + int length; + XID id; +} XFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int led_value; + int key; + int auto_repeat_mode; +} XKbdFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int num_keysyms; + KeySym *syms_to_display; +} XStringFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int int_to_display; +} XIntegerFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackControl; + +typedef struct { + XID class; + int length; + XID id; + int led_mask; + int led_values; +} XLedFeedbackControl; + +/******************************************************************* + * + * Device control structures. + * + */ + +typedef struct { + XID control; + int length; +} XDeviceControl; + +typedef struct { + XID control; + int length; + int first_valuator; + int num_valuators; + int *resolutions; +} XDeviceResolutionControl; + +typedef struct { + XID control; + int length; + int num_valuators; + int *resolutions; + int *min_resolutions; + int *max_resolutions; +} XDeviceResolutionState; + +/******************************************************************* + * + * An array of XDeviceList structures is returned by the + * XListInputDevices function. Each entry contains information + * about one input device. Among that information is an array of + * pointers to structures that describe the characteristics of + * the input device. + * + */ + +typedef struct _XAnyClassinfo *XAnyClassPtr; + +typedef struct _XAnyClassinfo { + XID class; + int length; + } XAnyClassInfo; + +typedef struct _XDeviceInfo *XDeviceInfoPtr; + +typedef struct _XDeviceInfo + { + XID id; + Atom type; + char *name; + int num_classes; + int use; + XAnyClassPtr inputclassinfo; + } XDeviceInfo; + +typedef struct _XKeyInfo *XKeyInfoPtr; + +typedef struct _XKeyInfo + { + XID class; + int length; + unsigned short min_keycode; + unsigned short max_keycode; + unsigned short num_keys; + } XKeyInfo; + +typedef struct _XButtonInfo *XButtonInfoPtr; + +typedef struct _XButtonInfo { + XID class; + int length; + short num_buttons; + } XButtonInfo; + +typedef struct _XAxisInfo *XAxisInfoPtr; + +typedef struct _XAxisInfo { + int resolution; + int min_value; + int max_value; + } XAxisInfo; + +typedef struct _XValuatorInfo *XValuatorInfoPtr; + +typedef struct _XValuatorInfo + { + XID class; + int length; + unsigned char num_axes; + unsigned char mode; + unsigned long motion_buffer; + XAxisInfoPtr axes; + } XValuatorInfo; + + +/******************************************************************* + * + * An XDevice structure is returned by the XOpenDevice function. + * It contains an array of pointers to XInputClassInfo structures. + * Each contains information about a class of input supported by the + * device, including a pointer to an array of data for each type of event + * the device reports. + * + */ + + +typedef struct { + unsigned char input_class; + unsigned char event_type_base; +} XInputClassInfo; + +typedef struct { + XID device_id; + int num_classes; + XInputClassInfo *classes; +} XDevice; + + +/******************************************************************* + * + * The following structure is used to return information for the + * XGetSelectedExtensionEvents function. + * + */ + +typedef struct { + XEventClass event_type; + XID device; +} XEventList; + +/******************************************************************* + * + * The following structure is used to return motion history data from + * an input device that supports the input class Valuators. + * This information is returned by the XGetDeviceMotionEvents function. + * + */ + +typedef struct { + Time time; + int *data; +} XDeviceTimeCoord; + + +/******************************************************************* + * + * Device state structure. + * This is returned by the XQueryDeviceState request. + * + */ + +typedef struct { + XID device_id; + int num_classes; + XInputClass *data; +} XDeviceState; + +/******************************************************************* + * + * Note that the mode field is a bitfield that reports the Proximity + * status of the device as well as the mode. The mode field should + * be OR'd with the mask DeviceMode and compared with the values + * Absolute and Relative to determine the mode, and should be OR'd + * with the mask ProximityState and compared with the values InProximity + * and OutOfProximity to determine the proximity state. + * + */ + +typedef struct { + unsigned char class; + unsigned char length; + unsigned char num_valuators; + unsigned char mode; + int *valuators; +} XValuatorState; + +typedef struct { + unsigned char class; + unsigned char length; + short num_keys; + char keys[32]; +} XKeyState; + +typedef struct { + unsigned char class; + unsigned char length; + short num_buttons; + char buttons[32]; +} XButtonState; + +/******************************************************************* + * + * Function definitions. + * + */ + +_XFUNCPROTOBEGIN + +extern int XChangeKeyboardDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */ +#endif +); + +extern int XChangePointerDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* xaxis */, + int /* yaxis */ +#endif +); + +extern int XGrabDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Window /* grab_window */, + Bool /* ownerEvents */, + int /* event count */, + XEventClass* /* event_list */, + int /* this_device_mode */, + int /* other_devices_mode */, + Time /* time */ +#endif +); + +extern int XUngrabDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Time /* time */ +#endif +); + +extern int XGrabDeviceKey( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned int /* key */, + unsigned int /* modifiers */, + XDevice* /* modifier_device */, + Window /* grab_window */, + Bool /* owner_events */, + unsigned int /* event_count */, + XEventClass* /* event_list */, + int /* this_device_mode */, + int /* other_devices_mode */ +#endif +); + +extern int XUngrabDeviceKey( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned int /* key */, + unsigned int /* modifiers */, + XDevice* /* modifier_dev */, + Window /* grab_window */ +#endif +); + +extern int XGrabDeviceButton( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned int /* button */, + unsigned int /* modifiers */, + XDevice* /* modifier_device */, + Window /* grab_window */, + Bool /* owner_events */, + unsigned int /* event_count */, + XEventClass* /* event_list */, + int /* this_device_mode */, + int /* other_devices_mode */ +#endif +); + +extern int XUngrabDeviceButton( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned int /* button */, + unsigned int /* modifiers */, + XDevice* /* modifier_dev */, + Window /* grab_window */ +#endif +); + +extern int XAllowDeviceEvents( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* event_mode */, + Time /* time */ +#endif +); + +extern int XGetDeviceFocus( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Window* /* focus */, + int* /* revert_to */, + Time* /* time */ +#endif +); + +extern int XSetDeviceFocus( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Window /* focus */, + int /* revert_to */, + Time /* time */ +#endif +); + +extern XFeedbackState *XGetFeedbackControl( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int* /* num_feedbacks */ +#endif +); + +extern int XFreeFeedbackList( +#if NeedFunctionPrototypes + XFeedbackState* /* list */ +#endif +); + +extern int XChangeFeedbackControl( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned long /* mask */, + XFeedbackControl* /* f */ +#endif +); + +extern int XDeviceBell( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + XID /* feedbackclass */, + XID /* feedbackid */, + int /* percent */ +#endif +); + +extern KeySym *XGetDeviceKeyMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, +#if NeedWidePrototypes + unsigned int /* first */, +#else + KeyCode /* first */, +#endif + int /* keycount */, + int* /* syms_per_code */ +#endif +); + +extern int XChangeDeviceKeyMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* first */, + int /* syms_per_code */, + KeySym* /* keysyms */, + int /* count */ +#endif +); + +extern XModifierKeymap *XGetDeviceModifierMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */ +#endif +); + +extern int XSetDeviceModifierMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + XModifierKeymap* /* modmap */ +#endif +); + +extern int XSetDeviceButtonMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned char* /* map[] */, + int /* nmap */ +#endif +); + +extern int XGetDeviceButtonMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + unsigned char* /* map[] */, + unsigned int /* nmap */ +#endif +); + +extern XDeviceState *XQueryDeviceState( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */ +#endif +); + +extern int XFreeDeviceState( +#if NeedFunctionPrototypes + XDeviceState* /* list */ +#endif +); + +extern XExtensionVersion *XGetExtensionVersion( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */ +#endif +); + +extern XDeviceInfo *XListInputDevices( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* ndevices */ +#endif +); + +extern int XFreeDeviceList( +#if NeedFunctionPrototypes + XDeviceInfo* /* list */ +#endif +); + +extern XDevice *XOpenDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* id */ +#endif +); + +extern int XCloseDevice( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */ +#endif +); + +extern int XSetDeviceMode( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* mode */ +#endif +); + +extern int XSetDeviceValuators( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int* /* valuators */, + int /* first_valuator */, + int /* num_valuators */ +#endif +); + +extern XDeviceControl *XGetDeviceControl( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* control */ +#endif +); + +extern int XChangeDeviceControl( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + int /* control */, + XDeviceControl* /* d */ +#endif +); + +extern int XSelectExtensionEvent( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XEventClass* /* event_list */, + int /* count */ +#endif +); + +extern int XGetSelectedExtensionEvents( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int* /* this_client_count */, + XEventClass** /* this_client_list */, + int* /* all_clients_count */, + XEventClass** /* all_clients_list */ +#endif +); + +extern int XChangeDeviceDontPropagateList( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* window */, + int /* count */, + XEventClass* /* events */, + int /* mode */ +#endif +); + +extern XEventClass *XGetDeviceDontPropagateList( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* window */, + int* /* count */ +#endif +); + +extern Status XSendExtensionEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Window /* dest */, + Bool /* prop */, + int /* count */, + XEventClass* /* list */, + XEvent* /* event */ +#endif +); + +extern XDeviceTimeCoord *XGetDeviceMotionEvents( +#if NeedFunctionPrototypes + Display* /* display */, + XDevice* /* device */, + Time /* start */, + Time /* stop */, + int* /* nEvents */, + int* /* mode */, + int* /* axis_count */ +#endif +); + +extern int XFreeDeviceMotionEvents( +#if NeedFunctionPrototypes + XDeviceTimeCoord* /* events */ +#endif +); + +extern int XFreeDeviceControl( +#if NeedFunctionPrototypes + XDeviceControl* /* control */ +#endif +); + +_XFUNCPROTOEND + +#endif /* _XINPUT_H_ */ + +/* Definitions used by the server, library and client */ + +#ifndef _XI_H_ + +#define _XI_H_ + +#define sz_xGetExtensionVersionReq 8 +#define sz_xGetExtensionVersionReply 32 +#define sz_xListInputDevicesReq 4 +#define sz_xListInputDevicesReply 32 +#define sz_xOpenDeviceReq 8 +#define sz_xOpenDeviceReply 32 +#define sz_xCloseDeviceReq 8 +#define sz_xSetDeviceModeReq 8 +#define sz_xSetDeviceModeReply 32 +#define sz_xSelectExtensionEventReq 12 +#define sz_xGetSelectedExtensionEventsReq 8 +#define sz_xGetSelectedExtensionEventsReply 32 +#define sz_xChangeDeviceDontPropagateListReq 12 +#define sz_xGetDeviceDontPropagateListReq 8 +#define sz_xGetDeviceDontPropagateListReply 32 +#define sz_xGetDeviceMotionEventsReq 16 +#define sz_xGetDeviceMotionEventsReply 32 +#define sz_xChangeKeyboardDeviceReq 8 +#define sz_xChangeKeyboardDeviceReply 32 +#define sz_xChangePointerDeviceReq 8 +#define sz_xChangePointerDeviceReply 32 +#define sz_xGrabDeviceReq 20 +#define sz_xGrabDeviceReply 32 +#define sz_xUngrabDeviceReq 12 +#define sz_xGrabDeviceKeyReq 20 +#define sz_xGrabDeviceKeyReply 32 +#define sz_xUngrabDeviceKeyReq 16 +#define sz_xGrabDeviceButtonReq 20 +#define sz_xGrabDeviceButtonReply 32 +#define sz_xUngrabDeviceButtonReq 16 +#define sz_xAllowDeviceEventsReq 12 +#define sz_xGetDeviceFocusReq 8 +#define sz_xGetDeviceFocusReply 32 +#define sz_xSetDeviceFocusReq 16 +#define sz_xGetFeedbackControlReq 8 +#define sz_xGetFeedbackControlReply 32 +#define sz_xChangeFeedbackControlReq 12 +#define sz_xGetDeviceKeyMappingReq 8 +#define sz_xGetDeviceKeyMappingReply 32 +#define sz_xChangeDeviceKeyMappingReq 8 +#define sz_xGetDeviceModifierMappingReq 8 +#define sz_xSetDeviceModifierMappingReq 8 +#define sz_xSetDeviceModifierMappingReply 32 +#define sz_xGetDeviceButtonMappingReq 8 +#define sz_xGetDeviceButtonMappingReply 32 +#define sz_xSetDeviceButtonMappingReq 8 +#define sz_xSetDeviceButtonMappingReply 32 +#define sz_xQueryDeviceStateReq 8 +#define sz_xQueryDeviceStateReply 32 +#define sz_xSendExtensionEventReq 16 +#define sz_xDeviceBellReq 8 +#define sz_xSetDeviceValuatorsReq 8 +#define sz_xSetDeviceValuatorsReply 32 +#define sz_xGetDeviceControlReq 8 +#define sz_xGetDeviceControlReply 32 +#define sz_xChangeDeviceControlReq 8 +#define sz_xChangeDeviceControlReply 32 + +#define INAME "XInputExtension" + +#define XI_KEYBOARD "KEYBOARD" +#define XI_MOUSE "MOUSE" +#define XI_TABLET "TABLET" +#define XI_TOUCHSCREEN "TOUCHSCREEN" +#define XI_TOUCHPAD "TOUCHPAD" +#define XI_BARCODE "BARCODE" +#define XI_BUTTONBOX "BUTTONBOX" +#define XI_KNOB_BOX "KNOB_BOX" +#define XI_ONE_KNOB "ONE_KNOB" +#define XI_NINE_KNOB "NINE_KNOB" +#define XI_TRACKBALL "TRACKBALL" +#define XI_QUADRATURE "QUADRATURE" +#define XI_ID_MODULE "ID_MODULE" +#define XI_SPACEBALL "SPACEBALL" +#define XI_DATAGLOVE "DATAGLOVE" +#define XI_EYETRACKER "EYETRACKER" +#define XI_CURSORKEYS "CURSORKEYS" +#define XI_FOOTMOUSE "FOOTMOUSE" + +#define Dont_Check 0 +#define XInput_Initial_Release 1 +#define XInput_Add_XDeviceBell 2 +#define XInput_Add_XSetDeviceValuators 3 +#define XInput_Add_XChangeDeviceControl 4 + +#define XI_Absent 0 +#define XI_Present 1 + +#define XI_Initial_Release_Major 1 +#define XI_Initial_Release_Minor 0 + +#define XI_Add_XDeviceBell_Major 1 +#define XI_Add_XDeviceBell_Minor 1 + +#define XI_Add_XSetDeviceValuators_Major 1 +#define XI_Add_XSetDeviceValuators_Minor 2 + +#define XI_Add_XChangeDeviceControl_Major 1 +#define XI_Add_XChangeDeviceControl_Minor 3 + +#define DEVICE_RESOLUTION 1 + +#define NoSuchExtension 1 + +#define COUNT 0 +#define CREATE 1 + +#define NewPointer 0 +#define NewKeyboard 1 + +#define XPOINTER 0 +#define XKEYBOARD 1 + +#define UseXKeyboard 0xFF + +#define IsXPointer 0 +#define IsXKeyboard 1 +#define IsXExtensionDevice 2 + +#define AsyncThisDevice 0 +#define SyncThisDevice 1 +#define ReplayThisDevice 2 +#define AsyncOtherDevices 3 +#define AsyncAll 4 +#define SyncAll 5 + +#define FollowKeyboard 3 +#define RevertToFollowKeyboard 3 + +#define DvAccelNum (1L << 0) +#define DvAccelDenom (1L << 1) +#define DvThreshold (1L << 2) + +#define DvKeyClickPercent (1L<<0) +#define DvPercent (1L<<1) +#define DvPitch (1L<<2) +#define DvDuration (1L<<3) +#define DvLed (1L<<4) +#define DvLedMode (1L<<5) +#define DvKey (1L<<6) +#define DvAutoRepeatMode (1L<<7) + +#define DvString (1L << 0) + +#define DvInteger (1L << 0) + +#define DeviceMode (1L << 0) +#define Relative 0 +#define Absolute 1 + +#define ProximityState (1L << 1) +#define InProximity (0L << 1) +#define OutOfProximity (1L << 1) + +#define AddToList 0 +#define DeleteFromList 1 + +#define KeyClass 0 +#define ButtonClass 1 +#define ValuatorClass 2 +#define FeedbackClass 3 +#define ProximityClass 4 +#define FocusClass 5 +#define OtherClass 6 + +#define KbdFeedbackClass 0 +#define PtrFeedbackClass 1 +#define StringFeedbackClass 2 +#define IntegerFeedbackClass 3 +#define LedFeedbackClass 4 +#define BellFeedbackClass 5 + +#define _devicePointerMotionHint 0 +#define _deviceButton1Motion 1 +#define _deviceButton2Motion 2 +#define _deviceButton3Motion 3 +#define _deviceButton4Motion 4 +#define _deviceButton5Motion 5 +#define _deviceButtonMotion 6 +#define _deviceButtonGrab 7 +#define _deviceOwnerGrabButton 8 +#define _noExtensionEvent 9 + +#define XI_BadDevice 0 +#define XI_BadEvent 1 +#define XI_BadMode 2 +#define XI_DeviceBusy 3 +#define XI_BadClass 4 + +typedef unsigned long XEventClass; + +/******************************************************************* + * + * Extension version structure. + * + */ + +typedef struct { + int present; + short major_version; + short minor_version; +} XExtensionVersion; + +#endif /* _XI_H_ */ + + + + + + + + + + + + + + diff -Nru libxi-1.7.9/.pc/applied-patches libxi-1.7.10/.pc/applied-patches --- libxi-1.7.9/.pc/applied-patches 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/applied-patches 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1 @@ +0001-Documentation-Ids.patch diff -Nru libxi-1.7.9/.pc/.quilt_patches libxi-1.7.10/.pc/.quilt_patches --- libxi-1.7.9/.pc/.quilt_patches 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/.quilt_patches 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1 @@ +debian/patches diff -Nru libxi-1.7.9/.pc/.quilt_series libxi-1.7.10/.pc/.quilt_series --- libxi-1.7.9/.pc/.quilt_series 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/.quilt_series 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1 @@ +series diff -Nru libxi-1.7.9/.pc/.version libxi-1.7.10/.pc/.version --- libxi-1.7.9/.pc/.version 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/.pc/.version 2019-08-24 14:27:16.000000000 +0000 @@ -0,0 +1 @@ +2 diff -Nru libxi-1.7.9/README libxi-1.7.10/README --- libxi-1.7.9/README 2010-09-07 05:21:04.000000000 +0000 +++ libxi-1.7.10/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -libXi - library for the X Input Extension - -All questions regarding this software should be directed at the -Xorg mailing list: - - http://lists.freedesktop.org/mailman/listinfo/xorg - -Please submit bug reports to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - -The master development code repository can be found at: - - git://anongit.freedesktop.org/git/xorg/lib/libXi - - http://cgit.freedesktop.org/xorg/lib/libXi - -For patch submission instructions, see: - - http://www.x.org/wiki/Development/Documentation/SubmittingPatches - -For more information on the git code manager, see: - - http://wiki.x.org/wiki/GitPage - diff -Nru libxi-1.7.9/README.md libxi-1.7.10/README.md --- libxi-1.7.9/README.md 1970-01-01 00:00:00.000000000 +0000 +++ libxi-1.7.10/README.md 2019-06-19 16:43:25.000000000 +0000 @@ -0,0 +1,18 @@ +libXi - library for the X Input Extension +----------------------------------------- + +All questions regarding this software should be directed at the +Xorg mailing list: + + https://lists.x.org/mailman/listinfo/xorg + +The master development code repository can be found at: + + https://gitlab.freedesktop.org/xorg/lib/libXi + +Please submit bug reports and requests to merge patches there. + +For patch submission instructions, see: + + https://www.x.org/wiki/Development/Documentation/SubmittingPatches + diff -Nru libxi-1.7.9/specs/inputlib.xml libxi-1.7.10/specs/inputlib.xml --- libxi-1.7.9/specs/inputlib.xml 2011-12-20 00:28:44.000000000 +0000 +++ libxi-1.7.10/specs/inputlib.xml 2019-08-24 14:27:16.000000000 +0000 @@ -26,7 +26,7 @@ Ardent Computer - + Permission to use, copy, modify, and distribute this documentation for any purpose and without fee is hereby granted, provided that the above copyright notice and this permission notice appear @@ -36,7 +36,7 @@ - + Copyright © 1989, 1990, 1991, 1992 X Consortium diff -Nru libxi-1.7.9/specs/library.xml libxi-1.7.10/specs/library.xml --- libxi-1.7.9/specs/library.xml 2011-12-20 00:28:44.000000000 +0000 +++ libxi-1.7.10/specs/library.xml 2019-08-24 14:27:16.000000000 +0000 @@ -1,4 +1,4 @@ -Input Extension +Input Extension Overview diff -Nru libxi-1.7.9/specs/Makefile.in libxi-1.7.10/specs/Makefile.in --- libxi-1.7.9/specs/Makefile.in 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/specs/Makefile.in 2019-06-19 16:43:31.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -410,8 +410,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_srcdir)/docbook.am $(am__empty): @@ -478,7 +478,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libxi-1.7.9/src/Makefile.in libxi-1.7.10/src/Makefile.in --- libxi-1.7.9/src/Makefile.in 2017-01-23 03:59:26.000000000 +0000 +++ libxi-1.7.10/src/Makefile.in 2019-06-19 16:43:31.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -167,7 +167,36 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/XAllowDv.Plo \ + ./$(DEPDIR)/XChDProp.Plo ./$(DEPDIR)/XChgDCtl.Plo \ + ./$(DEPDIR)/XChgFCtl.Plo ./$(DEPDIR)/XChgKMap.Plo \ + ./$(DEPDIR)/XChgKbd.Plo ./$(DEPDIR)/XChgPnt.Plo \ + ./$(DEPDIR)/XChgProp.Plo ./$(DEPDIR)/XCloseDev.Plo \ + ./$(DEPDIR)/XDelDProp.Plo ./$(DEPDIR)/XDevBell.Plo \ + ./$(DEPDIR)/XExtInt.Plo ./$(DEPDIR)/XExtToWire.Plo \ + ./$(DEPDIR)/XGMotion.Plo ./$(DEPDIR)/XGetBMap.Plo \ + ./$(DEPDIR)/XGetCPtr.Plo ./$(DEPDIR)/XGetDCtl.Plo \ + ./$(DEPDIR)/XGetDProp.Plo ./$(DEPDIR)/XGetFCtl.Plo \ + ./$(DEPDIR)/XGetKMap.Plo ./$(DEPDIR)/XGetMMap.Plo \ + ./$(DEPDIR)/XGetProp.Plo ./$(DEPDIR)/XGetVers.Plo \ + ./$(DEPDIR)/XGrDvBut.Plo ./$(DEPDIR)/XGrDvKey.Plo \ + ./$(DEPDIR)/XGrabDev.Plo ./$(DEPDIR)/XGtFocus.Plo \ + ./$(DEPDIR)/XGtSelect.Plo ./$(DEPDIR)/XIAllowEvents.Plo \ + ./$(DEPDIR)/XIBarrier.Plo ./$(DEPDIR)/XIDefineCursor.Plo \ + ./$(DEPDIR)/XIGetDevFocus.Plo ./$(DEPDIR)/XIGrabDevice.Plo \ + ./$(DEPDIR)/XIHierarchy.Plo ./$(DEPDIR)/XIPassiveGrab.Plo \ + ./$(DEPDIR)/XIProperties.Plo ./$(DEPDIR)/XIQueryDevice.Plo \ + ./$(DEPDIR)/XIQueryPointer.Plo ./$(DEPDIR)/XIQueryVersion.Plo \ + ./$(DEPDIR)/XISelEv.Plo ./$(DEPDIR)/XISetCPtr.Plo \ + ./$(DEPDIR)/XISetDevFocus.Plo ./$(DEPDIR)/XIWarpPointer.Plo \ + ./$(DEPDIR)/XListDProp.Plo ./$(DEPDIR)/XListDev.Plo \ + ./$(DEPDIR)/XOpenDev.Plo ./$(DEPDIR)/XQueryDv.Plo \ + ./$(DEPDIR)/XSelect.Plo ./$(DEPDIR)/XSetBMap.Plo \ + ./$(DEPDIR)/XSetDVal.Plo ./$(DEPDIR)/XSetMMap.Plo \ + ./$(DEPDIR)/XSetMode.Plo ./$(DEPDIR)/XSndExEv.Plo \ + ./$(DEPDIR)/XStFocus.Plo ./$(DEPDIR)/XUngrDev.Plo \ + ./$(DEPDIR)/XUngrDvB.Plo ./$(DEPDIR)/XUngrDvK.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -470,8 +499,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -542,63 +571,69 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XAllowDv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChDProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgDCtl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgFCtl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgKMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgKbd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgPnt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XCloseDev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XDelDProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XDevBell.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XExtInt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XExtToWire.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGMotion.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetBMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetCPtr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetDCtl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetDProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetFCtl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetKMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetMMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetVers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrDvBut.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrDvKey.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrabDev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGtFocus.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGtSelect.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIAllowEvents.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIBarrier.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIDefineCursor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIGetDevFocus.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIGrabDevice.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIHierarchy.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIPassiveGrab.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIProperties.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryDevice.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryPointer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryVersion.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISelEv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISetCPtr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISetDevFocus.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIWarpPointer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XListDProp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XListDev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XOpenDev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQueryDv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSelect.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetBMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetDVal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetMMap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetMode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSndExEv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XStFocus.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDvB.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDvK.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XAllowDv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChDProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgDCtl.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgFCtl.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgKMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgKbd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgPnt.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XChgProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XCloseDev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XDelDProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XDevBell.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XExtInt.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XExtToWire.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGMotion.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetBMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetCPtr.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetDCtl.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetDProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetFCtl.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetKMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetMMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGetVers.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrDvBut.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrDvKey.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGrabDev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGtFocus.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XGtSelect.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIAllowEvents.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIBarrier.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIDefineCursor.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIGetDevFocus.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIGrabDevice.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIHierarchy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIPassiveGrab.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIProperties.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryDevice.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryPointer.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIQueryVersion.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISelEv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISetCPtr.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XISetDevFocus.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XIWarpPointer.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XListDProp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XListDev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XOpenDev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQueryDv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSelect.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetBMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetDVal.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetMMap.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSetMode.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSndExEv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XStFocus.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDvB.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XUngrDvK.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -700,7 +735,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -773,7 +811,63 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/XAllowDv.Plo + -rm -f ./$(DEPDIR)/XChDProp.Plo + -rm -f ./$(DEPDIR)/XChgDCtl.Plo + -rm -f ./$(DEPDIR)/XChgFCtl.Plo + -rm -f ./$(DEPDIR)/XChgKMap.Plo + -rm -f ./$(DEPDIR)/XChgKbd.Plo + -rm -f ./$(DEPDIR)/XChgPnt.Plo + -rm -f ./$(DEPDIR)/XChgProp.Plo + -rm -f ./$(DEPDIR)/XCloseDev.Plo + -rm -f ./$(DEPDIR)/XDelDProp.Plo + -rm -f ./$(DEPDIR)/XDevBell.Plo + -rm -f ./$(DEPDIR)/XExtInt.Plo + -rm -f ./$(DEPDIR)/XExtToWire.Plo + -rm -f ./$(DEPDIR)/XGMotion.Plo + -rm -f ./$(DEPDIR)/XGetBMap.Plo + -rm -f ./$(DEPDIR)/XGetCPtr.Plo + -rm -f ./$(DEPDIR)/XGetDCtl.Plo + -rm -f ./$(DEPDIR)/XGetDProp.Plo + -rm -f ./$(DEPDIR)/XGetFCtl.Plo + -rm -f ./$(DEPDIR)/XGetKMap.Plo + -rm -f ./$(DEPDIR)/XGetMMap.Plo + -rm -f ./$(DEPDIR)/XGetProp.Plo + -rm -f ./$(DEPDIR)/XGetVers.Plo + -rm -f ./$(DEPDIR)/XGrDvBut.Plo + -rm -f ./$(DEPDIR)/XGrDvKey.Plo + -rm -f ./$(DEPDIR)/XGrabDev.Plo + -rm -f ./$(DEPDIR)/XGtFocus.Plo + -rm -f ./$(DEPDIR)/XGtSelect.Plo + -rm -f ./$(DEPDIR)/XIAllowEvents.Plo + -rm -f ./$(DEPDIR)/XIBarrier.Plo + -rm -f ./$(DEPDIR)/XIDefineCursor.Plo + -rm -f ./$(DEPDIR)/XIGetDevFocus.Plo + -rm -f ./$(DEPDIR)/XIGrabDevice.Plo + -rm -f ./$(DEPDIR)/XIHierarchy.Plo + -rm -f ./$(DEPDIR)/XIPassiveGrab.Plo + -rm -f ./$(DEPDIR)/XIProperties.Plo + -rm -f ./$(DEPDIR)/XIQueryDevice.Plo + -rm -f ./$(DEPDIR)/XIQueryPointer.Plo + -rm -f ./$(DEPDIR)/XIQueryVersion.Plo + -rm -f ./$(DEPDIR)/XISelEv.Plo + -rm -f ./$(DEPDIR)/XISetCPtr.Plo + -rm -f ./$(DEPDIR)/XISetDevFocus.Plo + -rm -f ./$(DEPDIR)/XIWarpPointer.Plo + -rm -f ./$(DEPDIR)/XListDProp.Plo + -rm -f ./$(DEPDIR)/XListDev.Plo + -rm -f ./$(DEPDIR)/XOpenDev.Plo + -rm -f ./$(DEPDIR)/XQueryDv.Plo + -rm -f ./$(DEPDIR)/XSelect.Plo + -rm -f ./$(DEPDIR)/XSetBMap.Plo + -rm -f ./$(DEPDIR)/XSetDVal.Plo + -rm -f ./$(DEPDIR)/XSetMMap.Plo + -rm -f ./$(DEPDIR)/XSetMode.Plo + -rm -f ./$(DEPDIR)/XSndExEv.Plo + -rm -f ./$(DEPDIR)/XStFocus.Plo + -rm -f ./$(DEPDIR)/XUngrDev.Plo + -rm -f ./$(DEPDIR)/XUngrDvB.Plo + -rm -f ./$(DEPDIR)/XUngrDvK.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags @@ -819,7 +913,63 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/XAllowDv.Plo + -rm -f ./$(DEPDIR)/XChDProp.Plo + -rm -f ./$(DEPDIR)/XChgDCtl.Plo + -rm -f ./$(DEPDIR)/XChgFCtl.Plo + -rm -f ./$(DEPDIR)/XChgKMap.Plo + -rm -f ./$(DEPDIR)/XChgKbd.Plo + -rm -f ./$(DEPDIR)/XChgPnt.Plo + -rm -f ./$(DEPDIR)/XChgProp.Plo + -rm -f ./$(DEPDIR)/XCloseDev.Plo + -rm -f ./$(DEPDIR)/XDelDProp.Plo + -rm -f ./$(DEPDIR)/XDevBell.Plo + -rm -f ./$(DEPDIR)/XExtInt.Plo + -rm -f ./$(DEPDIR)/XExtToWire.Plo + -rm -f ./$(DEPDIR)/XGMotion.Plo + -rm -f ./$(DEPDIR)/XGetBMap.Plo + -rm -f ./$(DEPDIR)/XGetCPtr.Plo + -rm -f ./$(DEPDIR)/XGetDCtl.Plo + -rm -f ./$(DEPDIR)/XGetDProp.Plo + -rm -f ./$(DEPDIR)/XGetFCtl.Plo + -rm -f ./$(DEPDIR)/XGetKMap.Plo + -rm -f ./$(DEPDIR)/XGetMMap.Plo + -rm -f ./$(DEPDIR)/XGetProp.Plo + -rm -f ./$(DEPDIR)/XGetVers.Plo + -rm -f ./$(DEPDIR)/XGrDvBut.Plo + -rm -f ./$(DEPDIR)/XGrDvKey.Plo + -rm -f ./$(DEPDIR)/XGrabDev.Plo + -rm -f ./$(DEPDIR)/XGtFocus.Plo + -rm -f ./$(DEPDIR)/XGtSelect.Plo + -rm -f ./$(DEPDIR)/XIAllowEvents.Plo + -rm -f ./$(DEPDIR)/XIBarrier.Plo + -rm -f ./$(DEPDIR)/XIDefineCursor.Plo + -rm -f ./$(DEPDIR)/XIGetDevFocus.Plo + -rm -f ./$(DEPDIR)/XIGrabDevice.Plo + -rm -f ./$(DEPDIR)/XIHierarchy.Plo + -rm -f ./$(DEPDIR)/XIPassiveGrab.Plo + -rm -f ./$(DEPDIR)/XIProperties.Plo + -rm -f ./$(DEPDIR)/XIQueryDevice.Plo + -rm -f ./$(DEPDIR)/XIQueryPointer.Plo + -rm -f ./$(DEPDIR)/XIQueryVersion.Plo + -rm -f ./$(DEPDIR)/XISelEv.Plo + -rm -f ./$(DEPDIR)/XISetCPtr.Plo + -rm -f ./$(DEPDIR)/XISetDevFocus.Plo + -rm -f ./$(DEPDIR)/XIWarpPointer.Plo + -rm -f ./$(DEPDIR)/XListDProp.Plo + -rm -f ./$(DEPDIR)/XListDev.Plo + -rm -f ./$(DEPDIR)/XOpenDev.Plo + -rm -f ./$(DEPDIR)/XQueryDv.Plo + -rm -f ./$(DEPDIR)/XSelect.Plo + -rm -f ./$(DEPDIR)/XSetBMap.Plo + -rm -f ./$(DEPDIR)/XSetDVal.Plo + -rm -f ./$(DEPDIR)/XSetMMap.Plo + -rm -f ./$(DEPDIR)/XSetMode.Plo + -rm -f ./$(DEPDIR)/XSndExEv.Plo + -rm -f ./$(DEPDIR)/XStFocus.Plo + -rm -f ./$(DEPDIR)/XUngrDev.Plo + -rm -f ./$(DEPDIR)/XUngrDvB.Plo + -rm -f ./$(DEPDIR)/XUngrDvK.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -840,9 +990,9 @@ .MAKE: all install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ diff -Nru libxi-1.7.9/src/XExtInt.c libxi-1.7.10/src/XExtInt.c --- libxi-1.7.9/src/XExtInt.c 2015-10-19 01:46:32.000000000 +0000 +++ libxi-1.7.10/src/XExtInt.c 2019-06-19 16:43:25.000000000 +0000 @@ -1616,6 +1616,8 @@ return len; } +#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (double) (x).frac / (1ULL << 32)) + /* Copy classes from any into to->classes and return the number of bytes * copied. Memory layout of to->classes is * [clsptr][clsptr][clsptr][classinfo][classinfo]... @@ -1724,10 +1726,9 @@ cls_lib->number = cls_wire->number; cls_lib->label = cls_wire->label; cls_lib->resolution = cls_wire->resolution; - cls_lib->min = cls_wire->min.integral; - cls_lib->max = cls_wire->max.integral; - cls_lib->value = cls_wire->value.integral; - /* FIXME: fractional parts */ + cls_lib->min = FP3232_TO_DOUBLE(cls_wire->min); + cls_lib->max = FP3232_TO_DOUBLE(cls_wire->max); + cls_lib->value = FP3232_TO_DOUBLE(cls_wire->value); cls_lib->mode = cls_wire->mode; to->classes[cls_idx++] = any_lib; @@ -1748,8 +1749,7 @@ cls_lib->number = cls_wire->number; cls_lib->scroll_type= cls_wire->scroll_type; cls_lib->flags = cls_wire->flags; - cls_lib->increment = cls_wire->increment.integral; - cls_lib->increment += (unsigned int)cls_wire->increment.frac/(double)(1ULL << 32); + cls_lib->increment = FP3232_TO_DOUBLE(cls_wire->increment); to->classes[cls_idx++] = any_lib; } @@ -2000,8 +2000,6 @@ return 1; } -#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (x).frac / (1ULL << 32)) - static int wireToBarrierEvent(xXIBarrierEvent *in, XGenericEventCookie *cookie) { diff -Nru libxi-1.7.9/src/XIPassiveGrab.c libxi-1.7.10/src/XIPassiveGrab.c --- libxi-1.7.9/src/XIPassiveGrab.c 2014-07-13 22:45:18.000000000 +0000 +++ libxi-1.7.10/src/XIPassiveGrab.c 2019-06-19 16:43:25.000000000 +0000 @@ -38,7 +38,8 @@ Window grab_window, Cursor cursor, int grab_mode, int paired_device_mode, Bool owner_events, XIEventMask *mask, - int num_modifiers, XIGrabModifiers *modifiers_inout) + int num_modifiers, XIGrabModifiers *modifiers_inout, + Time time) { xXIPassiveGrabDeviceReq *req; xXIPassiveGrabDeviceReply reply; @@ -74,6 +75,7 @@ req->num_modifiers = num_modifiers; req->mask_len = (mask->mask_len + 3)/4; req->grab_type = grabtype; + req->time = time; len = req->mask_len + num_modifiers; SetReqLen(req, len, len); @@ -118,7 +120,7 @@ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeButton, button, grab_window, cursor, grab_mode, paired_device_mode, owner_events, mask, - num_modifiers, modifiers_inout); + num_modifiers, modifiers_inout, CurrentTime); } int @@ -130,7 +132,7 @@ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeKeycode, keycode, grab_window, None, grab_mode, paired_device_mode, owner_events, mask, num_modifiers, - modifiers_inout); + modifiers_inout, CurrentTime); } int @@ -142,7 +144,7 @@ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeEnter, 0, grab_window, cursor, grab_mode, paired_device_mode, owner_events, mask, num_modifiers, - modifiers_inout); + modifiers_inout, CurrentTime); } int @@ -153,7 +155,7 @@ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeFocusIn, 0, grab_window, None, grab_mode, paired_device_mode, owner_events, mask, num_modifiers, - modifiers_inout); + modifiers_inout, CurrentTime); } int @@ -172,7 +174,7 @@ return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeTouchBegin, 0, grab_window, None, XIGrabModeTouch, GrabModeAsync, owner_events, mask, - num_modifiers, modifiers_inout); + num_modifiers, modifiers_inout, CurrentTime); }