From af3df7cdfd18cfed833d09fe4211596d15fdcdbd Mon Sep 17 00:00:00 2001 From: matthieu Date: Sat, 4 Jan 2020 17:58:47 +0000 Subject: [PATCH] Update to libxkbfile 1.1.0. Tested by krw@ and naddy@ --- lib/libxkbfile/ChangeLog | 124 ++++++++ lib/libxkbfile/Makefile.am | 2 + lib/libxkbfile/Makefile.in | 3 +- lib/libxkbfile/README | 24 -- lib/libxkbfile/README.md | 21 ++ lib/libxkbfile/aclocal.m4 | 278 ++++++++++++------ lib/libxkbfile/configure | 96 ++++-- lib/libxkbfile/configure.ac | 4 +- .../include/X11/extensions/XKMformat.h | 126 ++++---- lib/libxkbfile/src/xkbtext.c | 70 ++++- 10 files changed, 529 insertions(+), 219 deletions(-) delete mode 100644 lib/libxkbfile/README create mode 100644 lib/libxkbfile/README.md diff --git a/lib/libxkbfile/ChangeLog b/lib/libxkbfile/ChangeLog index ed9157193..a5fd33637 100644 --- a/lib/libxkbfile/ChangeLog +++ b/lib/libxkbfile/ChangeLog @@ -1,3 +1,127 @@ +commit 261992d42905f209cd5bf6afcf8a7ae3aa30b3ff +Author: Alan Coopersmith +Date: Sat Mar 16 11:30:41 2019 -0700 + + libxkbfile 1.1.0 + + Signed-off-by: Alan Coopersmith + +commit 306087b60496d6493323433573ee9b9fb392dd7b +Author: Alan Coopersmith +Date: Sat Mar 16 11:22:06 2019 -0700 + + Add description of libxkbfile to README.md + + Signed-off-by: Alan Coopersmith + +commit 28822317438b6800435145a0312dbce59a03eaa3 +Author: Alan Coopersmith +Date: Fri Dec 7 19:44:24 2018 -0800 + + Update configure.ac bug URL for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit 340581e83d57414b5f33fd2f9f22fdfebf0d4b8d +Author: Alan Coopersmith +Date: Mon Nov 19 23:07:00 2018 -0800 + + Update README for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit b660c757e308b7c561dba16d45d18863bfa2973e +Author: Alan Coopersmith +Date: Sat Nov 10 13:21:42 2018 -0800 + + Remove obsolete B16 & B32 tags in struct definitions + + Signed-off-by: Alan Coopersmith + +commit d2ec504fec2550f4fd046e801b34317ef4a4bab9 +Author: Martin Burggraf +Date: Thu Aug 13 21:16:40 2015 +0200 + + correcting mathematical nonsense + + V2: Fixing the issue with numbers between 0 -1 + + Reviewed-by: Alan Coopersmith + Signed-off-by: Alan Coopersmith + +commit 1c070d1153e293169909b0fc8e9ff65be9121fa0 +Author: Mihail Konev +Date: Thu Jan 26 13:52:49 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev + +commit 9e39e36316f3dd28b1fd6f71562ec93bce2da35a +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 cfea939bb7d61d51b74493d77294010ddef490f0 +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 56fa447282c47bf23d05e18a42bbd0184dbd8302 +Author: Andreas Wettstein +Date: Sat Feb 15 17:35:50 2014 +0100 + + Fix mistyped argument of sizeof + + A pointer rather than the buffer was given to sizeof. As the data to be + written is only one or two bytes, a pointer size is at least four bytes, and + the buffer has 32 bytes, this error did not have negative effects. + + Signed-off-by: Andreas Wettstein + Reviewed-by: Alan Coopersmith + Signed-off-by: Alan Coopersmith + +commit a594dde52b7903feab839f5cfe08755753aca20e +Author: Andreas Wettstein +Date: Sat Feb 15 17:35:29 2014 +0100 + + Add support for genKeyEvent flag + + ActionMessage has an optional flag genKeyEvent. This change makes sure this + flag is printed when it is set. + + Signed-off-by: Andreas Wettstein + Reviewed-By: Ran Benita + Signed-off-by: Alan Coopersmith + +commit 6223ec08213cb8cc546418690c27e0fdd4f0addd +Author: Andreas Wettstein +Date: Sat Feb 15 17:35:09 2014 +0100 + + Add missing support for NoLock and NoUnlock flags + + The LockMods, ISOLock and LockControls support an "affect" flag to selectively + enable and disable locking and unlocking for these actions. This change adds + output of these flags. + + Signed-off-by: Andreas Wettstein + Reviewed-By: Ran Benita + Signed-off-by: Alan Coopersmith + commit de4f2307448583988a55a587cb6a3f43e4868378 Author: Alan Coopersmith Date: Thu Apr 30 22:24:39 2015 -0700 diff --git a/lib/libxkbfile/Makefile.am b/lib/libxkbfile/Makefile.am index ae1edc172..f9a607109 100644 --- a/lib/libxkbfile/Makefile.am +++ b/lib/libxkbfile/Makefile.am @@ -35,3 +35,5 @@ ChangeLog: $(CHANGELOG_CMD) dist-hook: ChangeLog INSTALL + +EXTRA_DIST = README.md diff --git a/lib/libxkbfile/Makefile.in b/lib/libxkbfile/Makefile.in index 88fe4e1f9..39d0f4dcc 100644 --- a/lib/libxkbfile/Makefile.in +++ b/lib/libxkbfile/Makefile.in @@ -72,7 +72,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/xkbfile.pc.in $(top_srcdir)/configure COPYING \ ChangeLog INSTALL compile config.guess config.sub depcomp \ @@ -336,6 +336,7 @@ SUBDIRS = src pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = xkbfile.pc MAINTAINERCLEANFILES = ChangeLog INSTALL +EXTRA_DIST = README.md all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive diff --git a/lib/libxkbfile/README b/lib/libxkbfile/README deleted file mode 100644 index 84be6b35e..000000000 --- a/lib/libxkbfile/README +++ /dev/null @@ -1,24 +0,0 @@ - -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/libxkbfile - - http://cgit.freedesktop.org/xorg/lib/libxkbfile - -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 --git a/lib/libxkbfile/README.md b/lib/libxkbfile/README.md new file mode 100644 index 000000000..dcd225114 --- /dev/null +++ b/lib/libxkbfile/README.md @@ -0,0 +1,21 @@ +libxkbfile - XKB file handling routines +--------------------------------------- + +libxkbfile is used by the X servers and utilities to parse the XKB +configuration data files. + +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/libxkbfile + +Please submit bug reports and requests to merge patches there. + +For patch submission instructions, see: + + https://www.x.org/wiki/Development/Documentation/SubmittingPatches + diff --git a/lib/libxkbfile/aclocal.m4 b/lib/libxkbfile/aclocal.m4 index 275eb20ba..e7052124f 100644 --- a/lib/libxkbfile/aclocal.m4 +++ b/lib/libxkbfile/aclocal.m4 @@ -8606,32 +8606,63 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# 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 -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) @@ -8653,18 +8684,19 @@ if test -n "$PKG_CONFIG"; then PKG_CONFIG="" fi fi[]dnl -])# PKG_PROG_PKG_CONFIG +])dnl PKG_PROG_PKG_CONFIG -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ @@ -8674,8 +8706,10 @@ m4_ifvaln([$3], [else $3])dnl fi]) -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" @@ -8687,10 +8721,11 @@ m4_define([_PKG_CONFIG], else pkg_failed=untried fi[]dnl -])# _PKG_CONFIG +])dnl _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -8698,19 +8733,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then else _pkg_short_errors_supported=no fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED +])dnl _PKG_SHORT_ERRORS_SUPPORTED -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl @@ -8764,16 +8797,40 @@ else AC_MSG_RESULT([yes]) $3 fi[]dnl -])# PKG_CHECK_MODULES +])dnl PKG_CHECK_MODULES -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -8784,16 +8841,18 @@ AC_ARG_WITH([pkgconfigdir], AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR +])dnl PKG_INSTALLDIR -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -8804,7 +8863,24 @@ AC_ARG_WITH([noarch-pkgconfigdir], AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR # Copyright (C) 2002-2012 Free Software Foundation, Inc. # @@ -9829,7 +9905,7 @@ AC_SUBST([am__untar]) 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"), @@ -9866,7 +9942,7 @@ dnl DEALINGS IN THE SOFTWARE. # 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,, @@ -9944,6 +10020,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[ 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 @@ -9959,9 +10046,9 @@ if test x$LIB_MAN_DIR = x ; then 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 @@ -9969,9 +10056,9 @@ if test x$FILE_MAN_DIR = x ; then 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 @@ -9979,9 +10066,9 @@ if test x$MISC_MAN_DIR = x ; then 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 @@ -9989,9 +10076,9 @@ if test x$DRIVER_MAN_DIR = x ; then 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 @@ -10252,13 +10339,24 @@ m4_ifval([$1], 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]) @@ -11654,8 +11752,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 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 @@ -11716,10 +11815,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[ # # 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 diff --git a/lib/libxkbfile/configure b/lib/libxkbfile/configure index 3abbff8b8..341fda182 100644 --- a/lib/libxkbfile/configure +++ b/lib/libxkbfile/configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libxkbfile 1.0.9. +# Generated by GNU Autoconf 2.69 for libxkbfile 1.1.0. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -275,7 +275,7 @@ fi $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/libxkbfile/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 @@ -591,9 +591,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libxkbfile' PACKAGE_TARNAME='libxkbfile' -PACKAGE_VERSION='1.0.9' -PACKAGE_STRING='libxkbfile 1.0.9' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' +PACKAGE_VERSION='1.1.0' +PACKAGE_STRING='libxkbfile 1.1.0' +PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libxkbfile/issues' PACKAGE_URL='' ac_unique_file="Makefile.am" @@ -1346,7 +1346,7 @@ if test "$ac_init_help" = "long"; then # 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 libxkbfile 1.0.9 to adapt to many kinds of systems. +\`configure' configures libxkbfile 1.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1416,7 +1416,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libxkbfile 1.0.9:";; + short | recursive ) echo "Configuration of libxkbfile 1.1.0:";; esac cat <<\_ACEOF @@ -1476,7 +1476,7 @@ Some influential environment variables: 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 @@ -1539,7 +1539,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libxkbfile configure 1.0.9 +libxkbfile configure 1.1.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1863,7 +1863,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libxkbfile $as_me 1.0.9, which was +It was created by libxkbfile $as_me 1.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2692,7 +2692,7 @@ fi # Define the identity of the package. PACKAGE='libxkbfile' - VERSION='1.0.9' + VERSION='1.1.0' cat >>confdefs.h <<_ACEOF @@ -17378,10 +17378,11 @@ _ACEOF -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))" @@ -17389,14 +17390,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)" 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 @@ -17412,9 +17444,9 @@ if test x$LIB_MAN_DIR = x ; then 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 @@ -17422,9 +17454,9 @@ if test x$FILE_MAN_DIR = x ; then 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 @@ -17432,9 +17464,9 @@ if test x$MISC_MAN_DIR = x ; then 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 @@ -17442,9 +17474,9 @@ if test x$DRIVER_MAN_DIR = x ; then 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 @@ -18171,7 +18203,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libxkbfile $as_me 1.0.9, which was +This file was extended by libxkbfile $as_me 1.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18231,13 +18263,13 @@ $config_headers 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="\\ -libxkbfile config.status 1.0.9 +libxkbfile config.status 1.1.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/lib/libxkbfile/configure.ac b/lib/libxkbfile/configure.ac index ba61814c6..86b78333a 100644 --- a/lib/libxkbfile/configure.ac +++ b/lib/libxkbfile/configure.ac @@ -22,8 +22,8 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libxkbfile], [1.0.9], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libxkbfile]) +AC_INIT([libxkbfile], [1.1.0], + [https://gitlab.freedesktop.org/xorg/lib/libxkbfile/issues], [libxkbfile]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) diff --git a/lib/libxkbfile/include/X11/extensions/XKMformat.h b/lib/libxkbfile/include/X11/extensions/XKMformat.h index 8dae18fab..56c503b0d 100644 --- a/lib/libxkbfile/include/X11/extensions/XKMformat.h +++ b/lib/libxkbfile/include/X11/extensions/XKMformat.h @@ -36,23 +36,23 @@ typedef struct _xkmFileInfo { CARD8 min_kc; CARD8 max_kc; CARD8 num_toc; - CARD16 present B16; - CARD16 pad B16; + CARD16 present; + CARD16 pad; } xkmFileInfo; #define sz_xkmFileInfo 8 typedef struct _xkmSectionInfo { - CARD16 type B16; - CARD16 format B16; - CARD16 size B16; - CARD16 offset B16; + CARD16 type; + CARD16 format; + CARD16 size; + CARD16 offset; } xkmSectionInfo; #define sz_xkmSectionInfo 8 typedef struct _xkmKeyTypeDesc { CARD8 realMods; CARD8 numLevels; - CARD16 virtualMods B16; + CARD16 virtualMods; CARD8 nMapEntries; CARD8 nLevelNames; CARD8 preserve; @@ -63,26 +63,26 @@ typedef struct _xkmKeyTypeDesc { typedef struct _xkmKTMapEntryDesc { CARD8 level; CARD8 realMods; - CARD16 virtualMods B16; + CARD16 virtualMods; } xkmKTMapEntryDesc; #define sz_xkmKTMapEntryDesc 4 typedef struct _xkmModsDesc { CARD8 realMods; CARD8 pad; - CARD16 virtualMods B16; + CARD16 virtualMods; } xkmModsDesc; #define sz_xkmModsDesc 4 typedef struct _xkmVModMapDesc { CARD8 key; CARD8 pad; - CARD16 vmods B16; + CARD16 vmods; } xkmVModMapDesc; #define sz_xkmVModMapDesc 4 typedef struct _xkmSymInterpretDesc { - CARD32 sym B32; + CARD32 sym; CARD8 mods; CARD8 match; CARD8 virtualMod; @@ -95,7 +95,7 @@ typedef struct _xkmSymInterpretDesc { typedef struct _xkmBehaviorDesc { CARD8 type; CARD8 data; - CARD16 pad B16; + CARD16 pad; } xkmBehaviorDesc; #define sz_xkmBehaviorDesc 4 @@ -128,38 +128,38 @@ typedef struct _xkmIndicatorMapDesc { CARD8 flags; CARD8 which_mods; CARD8 real_mods; - CARD16 vmods B16; + CARD16 vmods; CARD8 which_groups; CARD8 groups; - CARD32 ctrls B32; + CARD32 ctrls; } xkmIndicatorMapDesc; #define sz_xkmIndicatorMapDesc 12 typedef struct _xkmGeometryDesc { - CARD16 width_mm B16; - CARD16 height_mm B16; + CARD16 width_mm; + CARD16 height_mm; CARD8 base_color_ndx; CARD8 label_color_ndx; - CARD16 num_properties B16; - CARD16 num_colors B16; - CARD16 num_shapes B16; - CARD16 num_sections B16; - CARD16 num_doodads B16; - CARD16 num_key_aliases B16; - CARD16 pad1 B16; + CARD16 num_properties; + CARD16 num_colors; + CARD16 num_shapes; + CARD16 num_sections; + CARD16 num_doodads; + CARD16 num_key_aliases; + CARD16 pad1; } xkmGeometryDesc; #define sz_xkmGeometryDesc 20 typedef struct _xkmPointDesc { - INT16 x B16; - INT16 y B16; + INT16 x; + INT16 y; } xkmPointDesc; #define sz_xkmPointDesc 4 typedef struct _xkmOutlineDesc { CARD8 num_points; CARD8 corner_radius; - CARD16 pad B16; + CARD16 pad; } xkmOutlineDesc; #define sz_xkmOutlineDesc 4 @@ -172,31 +172,31 @@ typedef struct _xkmShapeDesc { #define sz_xkmShapeDesc 4 typedef struct _xkmSectionDesc { - INT16 top B16; - INT16 left B16; - CARD16 width B16; - CARD16 height B16; - INT16 angle B16; + INT16 top; + INT16 left; + CARD16 width; + CARD16 height; + INT16 angle; CARD8 priority; CARD8 num_rows; CARD8 num_doodads; CARD8 num_overlays; - CARD16 pad2 B16; + CARD16 pad2; } xkmSectionDesc; #define sz_xkmSectionDesc 16 typedef struct _xkmRowDesc { - INT16 top B16; - INT16 left B16; + INT16 top; + INT16 left; CARD8 num_keys; BOOL vertical; - CARD16 pad B16; + CARD16 pad; } xkmRowDesc; #define sz_xkmRowDesc 8 typedef struct _xkmKeyDesc { CARD8 name[XkbKeyNameLength]; - INT16 gap B16; + INT16 gap; CARD8 shape_ndx; CARD8 color_ndx; } xkmKeyDesc; @@ -205,14 +205,14 @@ typedef struct _xkmKeyDesc { typedef struct _xkmOverlayDesc { CARD8 num_rows; CARD8 pad1; - CARD16 pad2 B16; + CARD16 pad2; } xkmOverlayDesc; #define sz_xkmOverlayDesc 4 typedef struct _xkmOverlayRowDesc { CARD8 row_under; CARD8 num_keys; - CARD16 pad B16; + CARD16 pad; } xkmOverlayRowDesc; #define sz_xkmOverlayRowDesc 4 @@ -225,65 +225,65 @@ typedef struct _xkmOverlayKeyDesc { typedef struct _xkmShapeDoodadDesc { CARD8 type; CARD8 priority; - INT16 top B16; - INT16 left B16; - INT16 angle B16; + INT16 top; + INT16 left; + INT16 angle; CARD8 color_ndx; CARD8 shape_ndx; - CARD16 pad B16; - CARD32 pad1 B32; + CARD16 pad; + CARD32 pad1; } xkmShapeDoodadDesc; #define sz_xkmShapeDoodadDesc 16 typedef struct _xkmTextDoodadDesc { CARD8 type; CARD8 priority; - INT16 top B16; - INT16 left B16; - INT16 angle B16; - CARD16 width B16; - CARD16 height B16; + INT16 top; + INT16 left; + INT16 angle; + CARD16 width; + CARD16 height; CARD8 color_ndx; CARD8 pad1; - CARD16 pad2 B16; + CARD16 pad2; } xkmTextDoodadDesc; #define sz_xkmTextDoodadDesc 16 typedef struct _xkmIndicatorDoodadDesc { CARD8 type; CARD8 priority; - INT16 top B16; - INT16 left B16; + INT16 top; + INT16 left; CARD8 shape_ndx; CARD8 on_color_ndx; CARD8 off_color_ndx; CARD8 pad1; - CARD16 pad2 B16; - CARD32 pad3 B32; + CARD16 pad2; + CARD32 pad3; } xkmIndicatorDoodadDesc; #define sz_xkmIndicatorDoodadDesc 16 typedef struct _xkmLogoDoodadDesc { CARD8 type; CARD8 priority; - INT16 top B16; - INT16 left B16; - INT16 angle B16; + INT16 top; + INT16 left; + INT16 angle; CARD8 color_ndx; CARD8 shape_ndx; - CARD16 pad B16; - CARD32 pad1 B32; + CARD16 pad; + CARD32 pad1; } xkmLogoDoodadDesc; #define sz_xkmLogoDoodadDesc 16 typedef struct _xkmAnyDoodadDesc { CARD8 type; CARD8 priority; - INT16 top B16; - INT16 left B16; - CARD16 pad1 B16; - CARD32 pad2 B32; - CARD32 pad3 B32; + INT16 top; + INT16 left; + CARD16 pad1; + CARD32 pad2; + CARD32 pad3; } xkmAnyDoodadDesc; #define sz_xkmAnyDoodadDesc 16 diff --git a/lib/libxkbfile/src/xkbtext.c b/lib/libxkbfile/src/xkbtext.c index b5d47500c..6741d1a55 100644 --- a/lib/libxkbfile/src/xkbtext.c +++ b/lib/libxkbfile/src/xkbtext.c @@ -758,9 +758,17 @@ XkbGeomFPText(int val, unsigned format) } else { whole = val / XkbGeomPtsPerMM; - frac = val % XkbGeomPtsPerMM; - if (frac != 0) - snprintf(buf, bufsize, "%d.%d", whole, frac); + frac = abs(val % XkbGeomPtsPerMM); + if (frac != 0) { + if (val < 0) + { + int wholeabs; + wholeabs = abs(whole); + snprintf(buf, bufsize, "-%d.%d", wholeabs, frac); + } + else + snprintf(buf, bufsize, "%d.%d", whole, frac); + } else snprintf(buf, bufsize, "%d", whole); } @@ -886,8 +894,22 @@ CopyModActionArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, } else TryCopyStr(buf, "none", sz); - if (act->type == XkbSA_LockMods) + if (act->type == XkbSA_LockMods) { + switch (act->flags & (XkbSA_LockNoUnlock | XkbSA_LockNoLock)) { + case XkbSA_LockNoLock: + TryCopyStr(buf, ",affect=unlock", sz); + break; + case XkbSA_LockNoUnlock: + TryCopyStr(buf, ",affect=lock", sz); + break; + case XkbSA_LockNoUnlock|XkbSA_LockNoLock: + TryCopyStr(buf, ",affect=neither", sz); + break; + default: + break; + } return True; + } if (act->flags & XkbSA_ClearLocks) TryCopyStr(buf, ",clearLocks", sz); if (act->flags & XkbSA_LatchToLock) @@ -906,11 +928,11 @@ CopyGroupActionArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, act = &action->group; TryCopyStr(buf, "group=", sz); if (act->flags & XkbSA_GroupAbsolute) - snprintf(tbuf, sizeof(buf), "%d", XkbSAGroup(act) + 1); + snprintf(tbuf, sizeof(tbuf), "%d", XkbSAGroup(act) + 1); else if (XkbSAGroup(act) < 0) - snprintf(tbuf, sizeof(buf), "%d", XkbSAGroup(act)); + snprintf(tbuf, sizeof(tbuf), "%d", XkbSAGroup(act)); else - snprintf(tbuf, sizeof(buf), "+%d", XkbSAGroup(act)); + snprintf(tbuf, sizeof(tbuf), "+%d", XkbSAGroup(act)); TryCopyStr(buf, tbuf, sz); if (act->type == XkbSA_LockGroup) return True; @@ -1049,8 +1071,12 @@ CopyISOLockArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, TryCopyStr(buf, "none", sz); } TryCopyStr(buf, ",affect=", sz); - if ((act->affect & XkbSA_ISOAffectMask) == 0) + if ((act->affect & XkbSA_ISOAffectMask) == 0) { TryCopyStr(buf, "all", sz); + } + else if ((act->affect & XkbSA_ISOAffectMask) == XkbSA_ISOAffectMask) { + TryCopyStr(buf, "none", sz); + } else { int nOut = 0; @@ -1074,6 +1100,18 @@ CopyISOLockArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, nOut++; } } + switch (act->flags & (XkbSA_LockNoUnlock | XkbSA_LockNoLock)) { + case XkbSA_LockNoLock: + TryCopyStr(buf, "+unlock", sz); + break; + case XkbSA_LockNoUnlock: + TryCopyStr(buf, "+lock", sz); + break; + case XkbSA_LockNoUnlock | XkbSA_LockNoLock: + TryCopyStr(buf, "+neither", sz); + break; + default: ; + } return True; } @@ -1183,6 +1221,20 @@ CopySetLockControlsArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, nOut++; } } + if (action->type == XkbSA_LockControls) { + switch (act->flags & (XkbSA_LockNoUnlock | XkbSA_LockNoLock)) { + case XkbSA_LockNoLock: + TryCopyStr(buf, ",affect=unlock", sz); + break; + case XkbSA_LockNoUnlock: + TryCopyStr(buf, ",affect=lock", sz); + break; + case XkbSA_LockNoUnlock | XkbSA_LockNoLock: + TryCopyStr(buf, ",affect=neither", sz); + break; + default: ; + } + } return True; } @@ -1218,6 +1270,8 @@ CopyActionMessageArgs(Display *dpy, XkbDescPtr xkb, XkbAction *action, TryCopyStr(buf, tbuf, sz); snprintf(tbuf, sizeof(tbuf), ",data[5]=0x%02x", act->message[5]); TryCopyStr(buf, tbuf, sz); + if (act->flags & XkbSA_MessageGenKeyEvent) + TryCopyStr(buf, ",genKeyEvent", sz); return True; }