Files
third_party_libevdev/third_party_libevdev.diff
T
houchengyu2022 5550295b5a add system update config file
Signed-off-by: houchengyu2022 <houchengyu@huawei.com>
2023-04-10 10:02:46 +08:00

33836 lines
1.4 MiB
Plaintext

diff -Naur third-party-libevdev-bak/COPYING third-party-new/COPYING
--- third-party-libevdev-bak/COPYING 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/COPYING 2023-04-03 14:16:25.837444300 +0800
@@ -1,23 +1,26 @@
+SPDX-License-Identifier: MIT
+
Copyright © 2013 Red Hat, Inc.
Copyright © 2013 David Herrmann <dh.herrmann@gmail.com>
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
+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 (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
+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
+AUTHORS OR COPYRIGHT HOLDERS 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.
The following license is from a Linux kernel header file and there is no GPL
code this package links to.
diff -Naur third-party-libevdev-bak/Makefile.in third-party-new/Makefile.in
--- third-party-libevdev-bak/Makefile.in 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/Makefile.in 2023-04-03 14:17:08.314291900 +0800
@@ -0,0 +1,911 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = libevdev.pc
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
+DATA = $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir distdir-am dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(srcdir)/libevdev.pc.in $(top_srcdir)/build-aux/compile \
+ $(top_srcdir)/build-aux/config.guess \
+ $(top_srcdir)/build-aux/config.sub \
+ $(top_srcdir)/build-aux/install-sh \
+ $(top_srcdir)/build-aux/ltmain.sh \
+ $(top_srcdir)/build-aux/missing COPYING README.md \
+ build-aux/compile build-aux/config.guess build-aux/config.sub \
+ build-aux/install-sh build-aux/ltmain.sh build-aux/missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_CFLAGS = @GCC_CFLAGS@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LDFLAGS = @GCOV_LDFLAGS@
+GNU_LD_FLAGS = @GNU_LD_FLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBEVDEV_LT_VERSION = @LIBEVDEV_LT_VERSION@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VALGRIND = @VALGRIND@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+PRINT_DIRECTORY_FLAGS_1 =
+PRINT_DIRECTORY_FLAGS_0 = --no-print-directory
+PRINT_DIRECTORY_FLAGS_ = $(PRINT_DIRECTORY_FLAGS_$(AM_DEFAULT_VERBOSITY))
+AM_MAKEFLAGS = $(PRINT_DIRECTORY_FLAGS_$(V))
+SUBDIRS = doc libevdev tools test
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libevdev.pc
+EXTRA_DIST = libevdev.pc.in meson.build meson_options.txt
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ 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)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+libevdev.pc: $(top_builddir)/config.status $(srcdir)/libevdev.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+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'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pkgconfigDATA
+
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+ dist-xz dist-zip dist-zstd distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -Naur third-party-libevdev-bak/OAT.xml third-party-new/OAT.xml
--- third-party-libevdev-bak/OAT.xml 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/OAT.xml 2023-04-03 14:19:59.118242900 +0800
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2021 Huawei Device Co., Ltd.
+<!-- Copyright (c) 2023 Huawei Device Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff -Naur third-party-libevdev-bak/README.OpenSource third-party-new/README.OpenSource
--- third-party-libevdev-bak/README.OpenSource 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/README.OpenSource 2023-04-03 14:19:13.878738900 +0800
@@ -3,8 +3,8 @@
"Name":"libevdev",
"License":"MIT License",
"License File":"COPYING",
- "Version Number":"1.10",
- "Owner":"pengfei.hou@huawei.com",
+ "Version Number":"1.12.1",
+ "Owner":"gaoshangqi1@huawei.com",
"Upstream URL":"https://github.com/freedesktop/libevdev",
"Description": "libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, et"
}
diff -Naur third-party-libevdev-bak/README.md third-party-new/README.md
--- third-party-libevdev-bak/README.md 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/README.md 2023-04-03 14:18:24.100950700 +0800
@@ -1,89 +1,21 @@
-# libevdev - wrapper library for evdev input devices
+libevdev - wrapper library for evdev input devices
+==================================================
-libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, etc.
+libevdev is a wrapper library for evdev devices. it moves the common
+tasks when dealing with evdev devices into a library and provides a library
+interface to the callers, thus avoiding erroneous ioctls, etc.
-The eventual goal is that libevdev wraps all ioctls available to evdev devices, thus making direct access unnecessary.
+https://gitlab.freedesktop.org/libevdev/libevdev.git
+Go here for the API documentation:
+http://www.freedesktop.org/software/libevdev/doc/latest/
-## Directory structure
+File bugs in the freedesktop.org GitLab instance:
+https://gitlab.freedesktop.org/libevdev/libevdev/issues/
-```
-README.md English description
-README_zh.md Chinese description
-export_include/libevdev/ API Definition
-include/ Reference header file
-libevdev/ Encapsulation layer implementation
-README.OpenSource Open Source Description
-```
-
-## How OpenHarmony integrates libevdev
-### 1.Header file import
-```c
-#define EVDEV_H
-#include <libevdev/libevdev.h>
-```
-### 2.BUILD.gn add Reference
-```c
-public_deps += ["//third_party/libevdev:libevdev"]
-```
-### 3.Example of calling libevdev function
-```c
-// Below is a simple example that shows how libevdev could be used. This example opens a device, checks for relative axes and a left mouse button and if it finds them monitors the device to print the event.
-
-// open a device
-struct libevdev *dev = NULL;
-int fd;
-int rc = 1;
-
-fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK);
-rc = libevdev_new_from_fd(fd, &dev);
-if (rc < 0) {
- fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));
- exit(1);
-}
-// print the device info
-printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
-printf("Input device ID: bus %#x vendor %#x product %#x\n",
- libevdev_get_id_bustype(dev),
- libevdev_get_id_vendor(dev),
- libevdev_get_id_product(dev));
-// hecks for relative axes and a left mouse button
-if (!libevdev_has_event_type(dev, EV_REL) ||
- !libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) {
- printf("This device does not look like a mouse\n");
- exit(1);
-}
-
- // monitors the device to print the event
-do {
- struct input_event ev;
- rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
- if (rc == 0)
- printf("Event: %s %s %d\n",
- libevdev_event_type_get_name(ev.type),
- libevdev_event_code_get_name(ev.type, ev.code),
- ev.value);
-} while (rc == 1 || rc == 0 || rc == -EAGAIN);
-```
-
-## libevdev Working with documents
-
-Code gitlab https://gitlab.freedesktop.org/libevdev/libevdev.git
-
-Official API Document http://www.freedesktop.org/software/libevdev/doc/latest/
-
-Detailed API definition https://www.freedesktop.org/software/libevdev/doc/latest/libevdev_8h.html
-
-Patches https://gitlab.freedesktop.org/libevdev/libevdev/merge_requests/
-
-Bugs https://gitlab.freedesktop.org/libevdev/libevdev/issues/
-
-Questions http://lists.freedesktop.org/mailman/listinfo/input-tools
-
-
-## License
-
-See [LICENSE](MITLicense).
-
----
+Patches should be submitted as merge requests in the GitLab instance:
+https://gitlab.freedesktop.org/libevdev/libevdev/merge_requests/
+Questions and general comments should be submitted to the
+input-tools@lists.freedesktop.org mailing list:
+http://lists.freedesktop.org/mailman/listinfo/input-tools
diff -Naur third-party-libevdev-bak/aclocal.m4 third-party-new/aclocal.m4
--- third-party-libevdev-bak/aclocal.m4 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/aclocal.m4 2023-04-03 11:09:56.034913200 +0800
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
@@ -364,7 +364,7 @@
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -379,7 +379,7 @@
[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.16.2], [],
+m4_if([$1], [1.16.5], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -395,14 +395,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.16.2])dnl
+[AM_AUTOMAKE_VERSION([1.16.5])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-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -454,7 +454,7 @@
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -485,7 +485,7 @@
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -676,7 +676,7 @@
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -744,7 +744,7 @@
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -772,6 +772,10 @@
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.65])dnl
+m4_ifdef([_$0_ALREADY_INIT],
+ [m4_fatal([$0 expanded multiple times
+]m4_defn([_$0_ALREADY_INIT]))],
+ [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -808,7 +812,7 @@
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
[ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
@@ -860,6 +864,20 @@
[m4_define([AC_PROG_OBJCXX],
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+AC_SUBST([CTAGS])
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+AC_SUBST([ETAGS])
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+AC_SUBST([CSCOPE])
+
AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
@@ -941,7 +959,7 @@
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -962,7 +980,7 @@
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -983,7 +1001,7 @@
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1026,7 +1044,7 @@
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1047,12 +1065,7 @@
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -1065,7 +1078,7 @@
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1094,7 +1107,7 @@
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1141,7 +1154,7 @@
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1220,34 +1233,141 @@
])
if test "$PYTHON" = :; then
- dnl Run any user-specified action, or abort.
+ dnl Run any user-specified action, or abort.
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
else
- dnl Query Python for its version number. Getting [:3] seems to be
- dnl the best way to do this; it's what "site.py" does in the standard
- dnl library.
-
+ dnl Query Python for its version number. Although site.py simply uses
+ dnl sys.version[:3], printing that failed with Python 3.10, since the
+ dnl trailing zero was eliminated. So now we output just the major
+ dnl and minor version numbers, as numbers. Apparently the tertiary
+ dnl version is not of interest.
+ dnl
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
- dnl Use the values of $prefix and $exec_prefix for the corresponding
- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
- dnl distinct variables so they can be overridden if need be. However,
- dnl general consensus is that you shouldn't need this ability.
-
- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-
- dnl At times (like when building shared libraries) you may want
+ dnl At times, e.g., when building shared libraries, you may want
dnl to know which OS platform Python thinks this is.
-
+ dnl
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
[am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
- # Just factor out some code duplication.
+ dnl emacs-page
+ dnl If --with-python-sys-prefix is given, use the values of sys.prefix
+ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
+ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
+ dnl ${exec_prefix} variables.
+ dnl
+ dnl The two are made distinct variables so they can be overridden if
+ dnl need be, although general consensus is that you shouldn't need
+ dnl this separation.
+ dnl
+ dnl Also allow directly setting the prefixes via configure options,
+ dnl overriding any default.
+ dnl
+ if test "x$prefix" = xNONE; then
+ am__usable_prefix=$ac_default_prefix
+ else
+ am__usable_prefix=$prefix
+ fi
+
+ # Allow user to request using sys.* values from Python,
+ # instead of the GNU $prefix values.
+ AC_ARG_WITH([python-sys-prefix],
+ [AS_HELP_STRING([--with-python-sys-prefix],
+ [use Python's sys.prefix and sys.exec_prefix values])],
+ [am_use_python_sys=:],
+ [am_use_python_sys=false])
+
+ # Allow user to override whatever the default Python prefix is.
+ AC_ARG_WITH([python_prefix],
+ [AS_HELP_STRING([--with-python_prefix],
+ [override the default PYTHON_PREFIX])],
+ [am_python_prefix_subst=$withval
+ am_cv_python_prefix=$withval
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
+ AC_MSG_RESULT([$am_cv_python_prefix])],
+ [
+ if $am_use_python_sys; then
+ # using python sys.prefix value, not GNU
+ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
+ [am_cv_python_prefix],
+ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
+
+ dnl If sys.prefix is a subdir of $prefix, replace the literal value of
+ dnl $prefix with a variable reference so it can be overridden.
+ case $am_cv_python_prefix in
+ $am__usable_prefix*)
+ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
+ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
+ ;;
+ *)
+ am_python_prefix_subst=$am_cv_python_prefix
+ ;;
+ esac
+ else # using GNU prefix value, not python sys.prefix
+ am_python_prefix_subst='${prefix}'
+ am_python_prefix=$am_python_prefix_subst
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
+ AC_MSG_RESULT([$am_python_prefix])
+ fi])
+ # Substituting python_prefix_subst value.
+ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
+
+ # emacs-page Now do it all over again for Python exec_prefix, but with yet
+ # another conditional: fall back to regular prefix if that was specified.
+ AC_ARG_WITH([python_exec_prefix],
+ [AS_HELP_STRING([--with-python_exec_prefix],
+ [override the default PYTHON_EXEC_PREFIX])],
+ [am_python_exec_prefix_subst=$withval
+ am_cv_python_exec_prefix=$withval
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
+ [
+ # no explicit --with-python_exec_prefix, but if
+ # --with-python_prefix was given, use its value for python_exec_prefix too.
+ AS_IF([test -n "$with_python_prefix"],
+ [am_python_exec_prefix_subst=$with_python_prefix
+ am_cv_python_exec_prefix=$with_python_prefix
+ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
+ [
+ # Set am__usable_exec_prefix whether using GNU or Python values,
+ # since we use that variable for pyexecdir.
+ if test "x$exec_prefix" = xNONE; then
+ am__usable_exec_prefix=$am__usable_prefix
+ else
+ am__usable_exec_prefix=$exec_prefix
+ fi
+ #
+ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
+ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
+ [am_cv_python_exec_prefix],
+ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
+ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
+ dnl literal value of $exec_prefix with a variable reference so it can
+ dnl be overridden.
+ case $am_cv_python_exec_prefix in
+ $am__usable_exec_prefix*)
+ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
+ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
+ ;;
+ *)
+ am_python_exec_prefix_subst=$am_cv_python_exec_prefix
+ ;;
+ esac
+ else # using GNU $exec_prefix, not python sys.exec_prefix
+ am_python_exec_prefix_subst='${exec_prefix}'
+ am_python_exec_prefix=$am_python_exec_prefix_subst
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_python_exec_prefix])
+ fi])])
+ # Substituting python_exec_prefix_subst.
+ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
+
+ # Factor out some code duplication into this shell variable.
am_python_setup_sysconfig="\
import sys
# Prefer sysconfig over distutils.sysconfig, for better compatibility
@@ -1267,96 +1387,95 @@
except ImportError:
pass"
- dnl Set up 4 directories:
+ dnl emacs-page Set up 4 directories:
- dnl pythondir -- where to install python scripts. This is the
- dnl site-packages directory, not the python standard library
- dnl directory like in previous automake betas. This behavior
- dnl is more consistent with lispdir.m4 for example.
+ dnl 1. pythondir: where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON script directory],
- [am_cv_python_pythondir],
- [if test "x$prefix" = xNONE
- then
- am_py_prefix=$ac_default_prefix
- else
- am_py_prefix=$prefix
- fi
- am_cv_python_pythondir=`$PYTHON -c "
+ dnl
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
+ [am_cv_python_pythondir],
+ [if test "x$am_cv_python_prefix" = x; then
+ am_py_prefix=$am__usable_prefix
+ else
+ am_py_prefix=$am_cv_python_prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pythondir in
- $am_py_prefix*)
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
- ;;
- *)
- case $am_py_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
- ])
+ ;;
+ esac
+ ])
AC_SUBST([pythondir], [$am_cv_python_pythondir])
- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
- dnl more consistent with the rest of automake.
-
+ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+ dnl
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
- dnl pyexecdir -- directory for installing python extension modules
- dnl (shared libraries)
+ dnl 3. pyexecdir: directory for installing python extension modules
+ dnl (shared libraries).
dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
- [am_cv_python_pyexecdir],
- [if test "x$exec_prefix" = xNONE
- then
- am_py_exec_prefix=$am_py_prefix
- else
- am_py_exec_prefix=$exec_prefix
- fi
- am_cv_python_pyexecdir=`$PYTHON -c "
+ dnl
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
+ [am_cv_python_pyexecdir],
+ [if test "x$am_cv_python_exec_prefix" = x; then
+ am_py_exec_prefix=$am__usable_exec_prefix
+ else
+ am_py_exec_prefix=$am_cv_python_exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pyexecdir in
- $am_py_exec_prefix*)
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
- ;;
- *)
- case $am_py_exec_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
- ])
+ ;;
+ esac
+ ])
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
+ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
+ dnl
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
dnl Run any user-specified action.
$2
fi
-
])
@@ -1379,7 +1498,7 @@
sys.exit(sys.hexversion < minverhex)"
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1398,7 +1517,7 @@
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1479,7 +1598,7 @@
rm -f conftest.file
])
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1539,7 +1658,7 @@
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1567,7 +1686,7 @@
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2020 Free Software Foundation, Inc.
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1586,7 +1705,7 @@
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2020 Free Software Foundation, Inc.
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -Naur third-party-libevdev-bak/build-aux/compile third-party-new/build-aux/compile
--- third-party-libevdev-bak/build-aux/compile 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/build-aux/compile 2023-04-01 15:13:22.103073900 +0800
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
diff -Naur third-party-libevdev-bak/build-aux/config.guess third-party-new/build-aux/config.guess
--- third-party-libevdev-bak/build-aux/config.guess 2023-03-28 10:49:53.360511300 +0800
+++ third-party-new/build-aux/config.guess 2023-04-01 15:19:15.268643100 +0800
@@ -1,8 +1,8 @@
-#! /bin/sh
+#!/usr/bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2018-08-29'
+timestamp='2016-10-02'
# 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
@@ -15,7 +15,7 @@
# 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 <https://www.gnu.org/licenses/>.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -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:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
@@ -39,7 +39,7 @@
Output the configuration name of the system \`$me' is run on.
-Options:
+Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -50,7 +50,7 @@
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2016 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."
@@ -84,6 +84,8 @@
exit 1
fi
+trap 'exit 1' 1 2 15
+
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@@ -94,39 +96,34 @@
# Portable tmp directory creation inspired by the Autoconf team.
-tmp=
-# shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
-trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
-
-set_cc_for_build() {
- : "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
- dummy=$tmp/dummy
- case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
- ,,) echo "int x;" > "$dummy.c"
- for driver in cc gcc c89 c99 ; do
- if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
- break
- fi
- done
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
- esac
-}
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if test -f /.attbin/uname ; then
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
@@ -135,14 +132,14 @@
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "$UNAME_SYSTEM" in
+case "${UNAME_SYSTEM}" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
- set_cc_for_build
- cat <<-EOF > "$dummy.c"
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
@@ -152,20 +149,13 @@
LIBC=gnu
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
-
- # If ldd exists, use it to detect musl libc.
- if command -v ldd >/dev/null && \
- ldd --version 2>&1 | grep -q ^musl
- then
- LIBC=musl
- fi
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -179,30 +169,30 @@
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- "/sbin/$sysctl" 2>/dev/null || \
- "/usr/sbin/$sysctl" 2>/dev/null || \
+ /sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || \
echo unknown)`
- case "$UNAME_MACHINE_ARCH" in
+ 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
+ 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 ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
+ case "${UNAME_MACHINE_ARCH}" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- set_cc_for_build
+ eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -218,10 +208,10 @@
;;
esac
# Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
+ case "${UNAME_MACHINE_ARCH}" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
;;
esac
# The OS release
@@ -229,55 +219,46 @@
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
+ case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
- release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ 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}${abi-}"
+ echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
+ 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 ;;
- *:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
*:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
- *:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
+ echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
- mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -329,19 +310,28 @@
# 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
exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
+ echo ${UNAME_MACHINE}-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
+ echo ${UNAME_MACHINE}-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
@@ -353,7 +343,7 @@
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
+ echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
@@ -380,33 +370,38 @@
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
+ echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- case `isainfo -b` in
- 32)
- echo i386-pc-solaris2"$UNAME_REL"
- ;;
- 64)
- echo x86_64-pc-solaris2"$UNAME_REL"
- ;;
- esac
+ eval $set_cc_for_build
+ 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 (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH=x86_64
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
@@ -415,25 +410,25 @@
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
+ echo m68k-sun-sunos${UNAME_RELEASE}
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"
+ echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
+ echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
+ echo sparc-auspex-sunos${UNAME_RELEASE}
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
@@ -444,44 +439,44 @@
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
+ echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
+ echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
+ echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
+ echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
+ echo powerpc-apple-machten${UNAME_RELEASE}
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
+ echo mips-dec-ultrix${UNAME_RELEASE}
exit ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
+ echo vax-dec-ultrix${UNAME_RELEASE}
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
+ echo clipper-intergraph-clix${UNAME_RELEASE}
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
@@ -490,23 +485,23 @@
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
+ echo mips-mips-riscos${UNAME_RELEASE}
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
@@ -532,17 +527,17 @@
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
then
- echo m88k-dg-dgux"$UNAME_RELEASE"
+ echo m88k-dg-dgux${UNAME_RELEASE}
else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
- echo i586-dg-dgux"$UNAME_RELEASE"
+ echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
@@ -559,7 +554,7 @@
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
@@ -571,14 +566,14 @@
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
@@ -589,7 +584,7 @@
exit(0);
}
EOF
- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
@@ -603,7 +598,7 @@
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
@@ -612,18 +607,18 @@
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
- ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
@@ -638,28 +633,28 @@
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- case "$UNAME_MACHINE" in
- 9000/31?) HP_ARCH=m68000 ;;
- 9000/[34]??) HP_ARCH=m68k ;;
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
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
+ case "${sc_cpu_version}" in
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
+ case "${sc_kernel_bits}" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "$HP_ARCH" = "" ]; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
@@ -692,13 +687,13 @@
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
- set_cc_for_build
+ eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -717,15 +712,15 @@
HP_ARCH=hppa64
fi
fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux"$HPUX_REV"
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
exit ;;
3050*:HI-UX:*:*)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
@@ -750,11 +745,11 @@
exit (0);
}
EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
@@ -763,7 +758,7 @@
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
@@ -771,9 +766,9 @@
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
+ echo ${UNAME_MACHINE}-unknown-osf1mk
else
- echo "$UNAME_MACHINE"-unknown-osf1
+ echo ${UNAME_MACHINE}-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
@@ -798,120 +793,127 @@
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
- echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ 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_REL=`echo "$UNAME_RELEASE" | 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_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:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
- arm:FreeBSD:*:*)
- UNAME_PROCESSOR=`uname -p`
- set_cc_for_build
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
- else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
- fi
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case "$UNAME_PROCESSOR" in
+ case ${UNAME_PROCESSOR} in
amd64)
- UNAME_PROCESSOR=x86_64 ;;
- i386)
- UNAME_PROCESSOR=i586 ;;
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
+ echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
*:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
+ echo ${UNAME_MACHINE}-pc-mingw64
exit ;;
*:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
+ echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
*:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
+ echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
- case "$UNAME_MACHINE" in
+ case ${UNAME_MACHINE} in
x86)
- echo i586-pc-interix"$UNAME_RELEASE"
+ echo i586-pc-interix${UNAME_RELEASE}
exit ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
+ echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
+ echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
+ echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
*:GNU:*:*)
# the GNU system
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``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 ;;
- *:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -925,63 +927,63 @@
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arm*:Linux:*:*)
- set_cc_for_build
+ eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
@@ -995,70 +997,70 @@
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
- test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+ 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"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
+ echo or1k-unknown-linux-${LIBC}
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
+ echo sparc-unknown-linux-${LIBC}
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
+ echo powerpc64-unknown-linux-${LIBC}
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
+ echo powerpc-unknown-linux-${LIBC}
exit ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
+ echo powerpc64le-unknown-linux-${LIBC}
exit ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1072,34 +1074,34 @@
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
+ echo ${UNAME_MACHINE}-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
+ echo ${UNAME_MACHINE}-unknown-stop
exit ;;
i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
+ echo ${UNAME_MACHINE}-unknown-atheos
exit ;;
i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
+ echo ${UNAME_MACHINE}-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
+ echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
- i*86:*:4.*:*)
- UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit ;;
i*86:*:5:[678]*)
@@ -1109,12 +1111,12 @@
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1124,9 +1126,9 @@
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv32
+ echo ${UNAME_MACHINE}-pc-sysv32
fi
exit ;;
pc:*:*:*)
@@ -1146,9 +1148,9 @@
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
@@ -1168,9 +1170,9 @@
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
@@ -1179,28 +1181,28 @@
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
exit ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
+ echo mips-dde-sysv${UNAME_RELEASE}
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
@@ -1211,7 +1213,7 @@
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo "$UNAME_MACHINE"-sni-sysv4
+ echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
@@ -1231,23 +1233,23 @@
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
+ echo ${UNAME_MACHINE}-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
+ echo m68k-apple-aux${UNAME_RELEASE}
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv"$UNAME_RELEASE"
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv"$UNAME_RELEASE"
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
@@ -1266,56 +1268,49 @@
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
+ echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
+ echo sx5-nec-superux${UNAME_RELEASE}
exit ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
+ echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
+ echo sx7-nec-superux${UNAME_RELEASE}
exit ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
+ echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
+ echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
+ echo sxace-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- set_cc_for_build
+ eval $set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; 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) | \
- grep IS_64BIT_ARCH >/dev/null
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1326,7 +1321,7 @@
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
@@ -1334,25 +1329,19 @@
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
+ echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
@@ -1361,19 +1350,18 @@
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- # shellcheck disable=SC2154
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
- echo "$UNAME_MACHINE"-unknown-plan9
+ echo ${UNAME_MACHINE}-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
@@ -1394,14 +1382,14 @@
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
+ echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "$UNAME_MACHINE" in
+ case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
@@ -1410,44 +1398,32 @@
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
+ echo ${UNAME_MACHINE}-pc-rdos
exit ;;
i*86:AROS:*:*)
- echo "$UNAME_MACHINE"-pc-aros
+ echo ${UNAME_MACHINE}-pc-aros
exit ;;
x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
+ echo ${UNAME_MACHINE}-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
esac
-echo "$0: unable to guess system type" >&2
-
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
- mips:Linux | mips64:Linux)
- # If we got here on MIPS GNU/Linux, output extra information.
- cat >&2 <<EOF
-
-NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
-the system type. Please install a C compiler and try again.
-EOF
- ;;
-esac
-
cat >&2 <<EOF
+$0: unable to guess system type
This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite *all*
-copies of config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1470,16 +1446,16 @@
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = "$UNAME_MACHINE"
-UNAME_RELEASE = "$UNAME_RELEASE"
-UNAME_SYSTEM = "$UNAME_SYSTEM"
-UNAME_VERSION = "$UNAME_VERSION"
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff -Naur third-party-libevdev-bak/build-aux/config.sub third-party-new/build-aux/config.sub
--- third-party-libevdev-bak/build-aux/config.sub 2023-03-28 10:49:53.364511400 +0800
+++ third-party-new/build-aux/config.sub 2023-04-01 15:23:41.850754800 +0800
@@ -1,8 +1,8 @@
-#! /bin/sh
+#!/usr/bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2018-08-29'
+timestamp='2016-09-05'
# 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
@@ -15,7 +15,7 @@
# 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 <https://www.gnu.org/licenses/>.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -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:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# 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
@@ -57,7 +57,7 @@
Canonicalize a configuration name.
-Options:
+Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -67,7 +67,7 @@
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2016 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."
@@ -94,7 +94,7 @@
*local*)
# First pass through any local machine types.
- echo "$1"
+ echo $1
exit ;;
* )
@@ -110,1159 +110,1242 @@
exit 1;;
esac
-# Split fields of configuration type
-IFS="-" read -r field1 field2 field3 field4 <<EOF
-$1
-EOF
-
-# Separate into logical components for further validation
-case $1 in
- *-*-*-*-*)
- echo Invalid configuration \`"$1"\': more than four components >&2
- exit 1
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+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* | netbsd*-eabi* | \
+ kopensolaris*-gnu* | cloudabi*-eabi* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
;;
- *-*-*-*)
- basic_machine=$field1-$field2
- os=$field3-$field4
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze*)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- *-*-*)
- # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
- # parts
- maybe_os=$field2-$field3
- 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* \
- | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova*)
- basic_machine=$field1
- os=$maybe_os
- ;;
- android-linux)
- basic_machine=$field1-unknown
- os=linux-android
- ;;
- *)
- basic_machine=$field1-$field2
- os=$field3
- ;;
- esac
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- *-*)
- # A lone config we happen to match not fitting any patern
- case $field1-$field2 in
- decstation-3100)
- basic_machine=mips-dec
- os=
- ;;
- *-*)
- # Second component is usually, but not always the OS
- case $field2 in
- # Prevent following clause from handling this valid os
- sun*os*)
- basic_machine=$field1
- os=$field2
- ;;
- # Manufacturers
- dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
- | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
- | unicom* | ibm* | next | hp | isi* | apollo | altos* \
- | convergent* | ncr* | news | 32* | 3600* | 3100* \
- | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
- | ultra | tti* | harris | dolphin | highlevel | gould \
- | cbm | ns | masscomp | apple | axis | knuth | cray \
- | microblaze* | sim | cisco \
- | oki | wec | wrs | winbond)
- basic_machine=$field1-$field2
- os=
- ;;
- *)
- basic_machine=$field1
- os=$field2
- ;;
- esac
- ;;
- esac
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- *)
- # Convert single-component short-hands not valid as part of
- # multi-component configurations.
- case $field1 in
- 386bsd)
- basic_machine=i386-pc
- os=bsd
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=scout
- ;;
- alliant)
- basic_machine=fx80-alliant
- os=
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- os=
- ;;
- am29k)
- basic_machine=a29k-none
- os=bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=sysv
- ;;
- amiga)
- basic_machine=m68k-unknown
- os=
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=linux
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=bsd
- ;;
- cray)
- basic_machine=j90-cray
- os=unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- os=
- ;;
- da30)
- basic_machine=m68k-da30
- os=
- ;;
- decstation | pmax | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- os=
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=msdosdjgpp
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=ebmon
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=ose
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=go32
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=sysv3
- ;;
- hp300)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=hpux
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=proelf
- ;;
- i386mach)
- basic_machine=i386-mach
- os=mach
- ;;
- vsta)
- basic_machine=i386-pc
- os=vsta
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=sysv
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=linux
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=sysv
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=mingw32ce
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=msdos
- ;;
- msys)
- basic_machine=i686-pc
- os=msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=sysv4
- ;;
- netbsd386)
- basic_machine=i386-pc
- os=netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=sysv
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=nonstopux
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=os68k
- ;;
- paragon)
- basic_machine=i860-intel
- os=osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=linux
- ;;
- pw32)
- basic_machine=i586-unknown
- os=pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=coff
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=udi
- ;;
- sei)
- basic_machine=mips-sei
- os=seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- os=
- ;;
- sps7)
- basic_machine=m68k-bull
- os=sysv2
- ;;
- st2000)
- basic_machine=m68k-tandem
- os=
- ;;
- stratus)
- basic_machine=i860-stratus
- os=sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- os=
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=sunos4
- ;;
- sun3)
- basic_machine=m68k-sun
- os=
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=sunos4
- ;;
- sun4)
- basic_machine=sparc-sun
- os=
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=solaris2
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- os=
- ;;
- sv1)
- basic_machine=sv1-cray
- os=unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=unicos
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=tops20
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=vms
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=vxworks
- ;;
- xbox)
- basic_machine=i686-pc
- os=mingw32
- ;;
- ymp)
- basic_machine=ymp-cray
- os=unicos
- ;;
- *)
- basic_machine=$1
- os=
- ;;
- esac
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
;;
esac
-# Decode 1-component or ad-hoc basic machines
+# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
- # Here we handle the default manufacturer of certain CPU types. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- w89k)
- cpu=hppa1.1
- vendor=winbond
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | 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 \
+ | e2k | epiphany \
+ | fido | fr30 | frv | ft32 \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
+ | ns16k | ns32k \
+ | open8 | or1k | or1knd | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | riscv32 | riscv64 \
+ | rl78 | rx \
+ | score \
+ | 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 \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | visium \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
;;
- op50n)
- cpu=hppa1.1
- vendor=oki
+ c54x)
+ basic_machine=tic54x-unknown
;;
- op60c)
- cpu=hppa1.1
- vendor=oki
+ c55x)
+ basic_machine=tic55x-unknown
;;
- ibm*)
- cpu=i370
- vendor=ibm
+ c6x)
+ basic_machine=tic6x-unknown
;;
- orion105)
- cpu=clipper
- vendor=highlevel
+ leon|leon[3-9])
+ basic_machine=sparc-$basic_machine
;;
- mac | mpw | mac-mpw)
- cpu=m68k
- vendor=apple
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
;;
- pmac | pmac-mpw)
- cpu=powerpc
- vendor=apple
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | aarch64-* | aarch64_be-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | 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-* \
+ | e2k-* | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | k1om-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | or1k*-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | 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*-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | visium-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- cpu=m68000
- vendor=att
+ basic_machine=m68000-att
;;
3b*)
- cpu=we32k
- vendor=att
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ asmjs)
+ basic_machine=asmjs-unknown
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
;;
bluegene*)
- cpu=powerpc
- vendor=ibm
- os=cnk
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
;;
decsystem10* | dec10*)
- cpu=pdp10
- vendor=dec
- os=tops10
+ basic_machine=pdp10-dec
+ os=-tops10
;;
decsystem20* | dec20*)
- cpu=pdp10
- vendor=dec
- os=tops20
+ basic_machine=pdp10-dec
+ os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- cpu=m68k
- vendor=motorola
+ basic_machine=m68k-motorola
;;
- dpx2*)
- cpu=m68k
- vendor=bull
- os=sysv3
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
;;
- encore | umax | mmax)
- cpu=ns32k
- vendor=encore
+ 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
;;
elxsi)
- cpu=elxsi
- vendor=elxsi
- os=${os:-bsd}
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
;;
fx2800)
- cpu=i860
- vendor=alliant
+ basic_machine=i860-alliant
;;
genix)
- cpu=ns32k
- vendor=ns
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
;;
h3050r* | hiux*)
- cpu=hppa1.1
- vendor=hitachi
- os=hiuxwe2
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
+ basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- cpu=m68000
- vendor=hp
+ basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
- cpu=m68k
- vendor=hp
+ basic_machine=m68k-hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
+ basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- cpu=hppa1.1
- vendor=hp
+ basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
+ basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
+ basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- cpu=hppa1.1
- vendor=hp
+ basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
;;
i*86v32)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv32
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
;;
i*86v4*)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv4
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
;;
i*86v)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
;;
i*86sol2)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=solaris2
- ;;
- j90 | j90-cray)
- cpu=j90
- vendor=cray
- os=${os:-unicos}
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
;;
iris | iris4d)
- cpu=mips
- vendor=sgi
+ basic_machine=mips-sgi
case $os in
- irix*)
+ -irix*)
;;
*)
- os=irix4
+ os=-irix4
;;
esac
;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ leon-*|leon[3-9]-*)
+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
- cpu=m68000
- vendor=convergent
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
- *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
- cpu=m68k
- vendor=atari
- os=mint
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
;;
news-3600 | risc-news)
- cpu=mips
- vendor=sony
- os=newsos
- ;;
- next | m*-next)
- cpu=m68k
- vendor=next
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
case $os in
- nextstep* )
+ -nextstep* )
;;
- ns2*)
- os=nextstep2
+ -ns2*)
+ os=-nextstep2
;;
*)
- os=nextstep3
+ os=-nextstep3
;;
esac
;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
np1)
- cpu=np1
- vendor=gould
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
;;
op50n-* | op60c-*)
- cpu=hppa1.1
- vendor=oki
- os=proelf
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
;;
pa-hitachi)
- cpu=hppa1.1
- vendor=hitachi
- os=hiuxwe2
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
;;
pbd)
- cpu=sparc
- vendor=tti
+ basic_machine=sparc-tti
;;
pbb)
- cpu=m68k
- vendor=tti
+ basic_machine=m68k-tti
;;
- pc532)
- cpu=ns32k
- vendor=pc532
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
;;
- pn)
- cpu=pn
- vendor=gould
+ pc98)
+ basic_machine=i386-pc
;;
- power)
- cpu=power
- vendor=ibm
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- ps2)
- cpu=i386
- vendor=ibm
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
;;
- rm[46]00)
- cpu=mips
- vendor=siemens
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
;;
- rtpc | rtpc-*)
- cpu=romp
- vendor=ibm
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
;;
- sde)
- cpu=mipsisa32
- vendor=sde
- os=${os:-elf}
- ;;
- simso-wrs)
- cpu=sparclite
- vendor=wrs
- os=vxworks
+ pentium4)
+ basic_machine=i786-pc
;;
- tower | tower-32)
- cpu=m68k
- vendor=ncr
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- vpp*|vx|vx-*)
- cpu=f301
- vendor=fujitsu
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- w65)
- cpu=w65
- vendor=wdc
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- w89k-*)
- cpu=hppa1.1
- vendor=winbond
- os=proelf
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- none)
- cpu=none
- vendor=none
+ pn)
+ basic_machine=pn-gould
;;
- leon|leon[3-9])
- cpu=sparc
- vendor=$basic_machine
+ power) basic_machine=power-ibm
;;
- leon-*|leon[3-9]-*)
- cpu=sparc
- vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
-
- *-*)
- IFS="-" read -r cpu vendor <<EOF
-$basic_machine
-EOF
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- cpu=$basic_machine
- vendor=pc
+ ppcle | powerpclittle)
+ basic_machine=powerpcle-unknown
;;
- # These rules are duplicated from below for sake of the special case above;
- # i.e. things that normalized to x86 arches should also default to "pc"
- pc98)
- cpu=i386
- vendor=pc
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- x64 | amd64)
- cpu=x86_64
- vendor=pc
+ ppc64) basic_machine=powerpc64-unknown
;;
- # Recognize the basic CPU types without company name.
- *)
- cpu=$basic_machine
- vendor=unknown
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
-esac
-
-unset -v basic_machine
-
-# Decode basic machines in the full and proper CPU-Company form.
-case $cpu-$vendor in
- # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- craynv-unknown)
- vendor=cray
- os=${os:-unicosmp}
+ ppc64le | powerpc64little)
+ basic_machine=powerpc64le-unknown
;;
- c90-unknown | c90-cray)
- vendor=cray
- os=${os:-unicos}
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- fx80-unknown)
- vendor=alliant
+ ps2)
+ basic_machine=i386-ibm
;;
- romp-unknown)
- vendor=ibm
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
;;
- mmix-unknown)
- vendor=knuth
+ rm[46]00)
+ basic_machine=mips-siemens
;;
- microblaze-unknown | microblazeel-unknown)
- vendor=xilinx
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
;;
- rs6000-unknown)
- vendor=ibm
+ s390 | s390-*)
+ basic_machine=s390-ibm
;;
- vax-unknown)
- vendor=dec
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
;;
- pdp11-unknown)
- vendor=dec
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
;;
- we32k-unknown)
- vendor=att
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
;;
- cydra-unknown)
- vendor=cydrome
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
;;
- i370-ibm*)
- vendor=ibm
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
;;
- orion-unknown)
- vendor=highlevel
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
;;
- xps-unknown | xps100-unknown)
- cpu=xps100
- vendor=honeywell
+ sequent)
+ basic_machine=i386-sequent
;;
-
- # Here we normalize CPU types with a missing or matching vendor
- dpx20-unknown | dpx20-bull)
- cpu=rs6000
- vendor=bull
- os=${os:-bosx}
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
;;
-
- # Here we normalize CPU types irrespective of the vendor
- amd64-*)
- cpu=x86_64
+ sh5el)
+ basic_machine=sh5le-unknown
;;
- blackfin-*)
- cpu=bfin
- os=linux
+ sh64)
+ basic_machine=sh64-unknown
;;
- c54x-*)
- cpu=tic54x
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
;;
- c55x-*)
- cpu=tic55x
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
;;
- c6x-*)
- cpu=tic6x
+ spur)
+ basic_machine=spur-unknown
;;
- e500v[12]-*)
- cpu=powerpc
- os=$os"spe"
+ st2000)
+ basic_machine=m68k-tandem
;;
- mips3*-*)
- cpu=mips64
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
;;
- ms1-*)
- cpu=mt
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- m68knommu-*)
- cpu=m68k
- os=linux
+ sun2)
+ basic_machine=m68000-sun
;;
- m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
- cpu=s12z
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
;;
- openrisc-*)
- cpu=or32
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
;;
- parisc-*)
- cpu=hppa
- os=linux
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- cpu=i586
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
- cpu=i686
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- cpu=i686
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
;;
- pentium4-*)
- cpu=i786
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
;;
- pc98-*)
- cpu=i386
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
;;
- ppc-* | ppcbe-*)
- cpu=powerpc
+ sun4)
+ basic_machine=sparc-sun
;;
- ppcle-* | powerpclittle-*)
- cpu=powerpcle
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
;;
- ppc64-*)
- cpu=powerpc64
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
;;
- ppc64le-* | powerpc64little-*)
- cpu=powerpc64le
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
;;
- sb1-*)
- cpu=mipsisa64sb1
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
;;
- sb1el-*)
- cpu=mipsisa64sb1el
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
;;
- sh5e[lb]-*)
- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
;;
- spur-*)
- cpu=spur
+ tx39)
+ basic_machine=mipstx39-unknown
;;
- strongarm-* | thumb-*)
- cpu=arm
+ tx39el)
+ basic_machine=mipstx39el-unknown
;;
- tx39-*)
- cpu=mipstx39
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
;;
- tx39el-*)
- cpu=mipstx39el
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
;;
- x64-*)
- cpu=x86_64
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
;;
- # Recognize the cannonical CPU Types that limit and/or modify the
- # company names they are paired with.
- cr16-*)
- os=${os:-elf}
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
;;
- crisv32-* | etraxfs*-*)
- cpu=crisv32
- vendor=axis
+ op50n)
+ basic_machine=hppa1.1-oki
;;
- cris-* | etrax*-*)
- cpu=cris
- vendor=axis
+ op60c)
+ basic_machine=hppa1.1-oki
;;
- crx-*)
- os=${os:-elf}
+ romp)
+ basic_machine=romp-ibm
;;
- neo-tandem)
- cpu=neo
- vendor=tandem
+ mmix)
+ basic_machine=mmix-knuth
;;
- nse-tandem)
- cpu=nse
- vendor=tandem
+ rs6000)
+ basic_machine=rs6000-ibm
;;
- nsr-tandem)
- cpu=nsr
- vendor=tandem
+ vax)
+ basic_machine=vax-dec
;;
- nsv-tandem)
- cpu=nsv
- vendor=tandem
- ;;
- nsx-tandem)
- cpu=nsx
- vendor=tandem
- ;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
;;
- tile*-*)
- os=${os:-linux-gnu}
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
;;
-
*)
- # Recognize the cannonical CPU types that are allowed with any
- # company name.
- case $cpu in
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | abacus \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
- | alphapca5[67] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[lb]e | arme[lb] | armv* \
- | avr | avr32 \
- | asmjs \
- | ba \
- | be32 | be64 \
- | bfin | bs2000 \
- | c[123]* | c30 | [cjt]90 | c4x \
- | c8051 | clipper | craynv | csky | cydra \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | elxsi | epiphany \
- | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
- | h8300 | h8500 \
- | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i*86 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
- | m88110 | m88k | maxq | mb | mcore | mep | metag \
- | microblaze | microblazeel \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mmix \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nfp \
- | nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k \
- | open8 \
- | or1k* \
- | or32 \
- | orion \
- | pdp10 | pdp11 | pj | pjl | pn | power \
- | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
- | pru \
- | pyramid \
- | riscv | riscv32 | riscv64 \
- | rl78 | romp | rs6000 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
- | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
- | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
- | spu \
- | tahoe \
- | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
- | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
- | vax \
- | visium \
- | wasm32 \
- | we32k \
- | x86 | x86_64 | xc16x | xgate | xps100 \
- | xstormy16 | xtensa* \
- | ymp \
- | z8k | z80)
- ;;
-
- *)
- echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
- exit 1
- ;;
- esac
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $vendor in
- digital*)
- vendor=dec
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
- commodore*)
- vendor=cbm
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
@@ -1270,246 +1353,200 @@
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x$os != x ]
+if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases that might get confused
- # with valid system types.
- # solaris* is a basic system type, with this one exception.
- auroraux)
- os=auroraux
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
;;
- bluegene*)
- os=cnk
- ;;
- solaris1 | solaris1.*)
+ -solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
- solaris)
- os=solaris2
+ -solaris)
+ os=-solaris2
;;
- unixware*)
- os=sysv4.2uw
- ;;
- gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ -svr4*)
+ os=-sysv4
;;
- # es1800 is here to avoid being matched by es* (a different OS)
- es1800*)
- os=ose
+ -unixware*)
+ os=-sysv4.2uw
;;
- # Some version numbers need modification
- chorusos*)
- os=chorusos
- ;;
- isc)
- os=isc2.2
- ;;
- sco6)
- os=sco5v6
- ;;
- sco5)
- os=sco3.2v5
- ;;
- sco4)
- os=sco3.2v4
- ;;
- sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- ;;
- scout)
- # Don't match below
- ;;
- sco*)
- os=sco3.2v2
- ;;
- psos*)
- os=psos
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
- # Now accept the basic system types.
+ # First accept the basic system types.
# The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- # sysv* is not here because it comes later, after sysvr4.
- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | kopensolaris* | plan9* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | knetbsd* | mirbsd* | netbsd* \
- | 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* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
- | linux-newlib* | linux-musl* | linux-uclibc* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* \
- | morphos* | superux* | rtmk* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd*)
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* | -cloudabi* | -sortix* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -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* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -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* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+ | -onefs* | -tirtos* | -phoenix*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- qnx*)
- case $cpu in
- x86 | i*86)
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
;;
*)
- os=nto-$os
+ os=-nto$os
;;
esac
;;
- hiux*)
- os=hiuxwe2
- ;;
- nto-qnx*)
+ -nto-qnx*)
;;
- nto*)
+ -nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- sim | xray | os68k* | v88r* \
- | windows* | osx | abug | netware* | os9* \
- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
- linux-dietlibc)
- os=linux-dietlibc
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
;;
- linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- lynx*178)
- os=lynxos178
+ -linux-dietlibc)
+ os=-linux-dietlibc
;;
- lynx*5)
- os=lynxos5
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
- lynx*)
- os=lynxos
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
- mac*)
- os=`echo "$os" | sed -e 's|mac|macos|'`
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
- opened*)
- os=openedition
+ -opened*)
+ os=-openedition
;;
- os400*)
- os=os400
+ -os400*)
+ os=-os400
;;
- sunos5*)
- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ -wince*)
+ os=-wince
;;
- sunos6*)
- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ -osfrose*)
+ os=-osfrose
;;
- wince*)
- os=wince
+ -osf*)
+ os=-osf
;;
- utek*)
- os=bsd
+ -utek*)
+ os=-bsd
;;
- dynix*)
- os=bsd
+ -dynix*)
+ os=-bsd
;;
- acis*)
- os=aos
+ -acis*)
+ os=-aos
;;
- atheos*)
- os=atheos
+ -atheos*)
+ os=-atheos
;;
- syllable*)
- os=syllable
+ -syllable*)
+ os=-syllable
;;
- 386bsd)
- os=bsd
+ -386bsd)
+ os=-bsd
;;
- ctix* | uts*)
- os=sysv
+ -ctix* | -uts*)
+ os=-sysv
;;
- nova*)
- os=rtmk-nova
+ -nova*)
+ os=-rtmk-nova
;;
- ns2)
- os=nextstep2
+ -ns2 )
+ os=-nextstep2
;;
- nsk*)
- os=nsk
+ -nsk*)
+ os=-nsk
;;
# Preserve the version number of sinix5.
- sinix5.*)
+ -sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
- sinix*)
- os=sysv4
+ -sinix*)
+ os=-sysv4
;;
- tpf*)
- os=tpf
+ -tpf*)
+ os=-tpf
;;
- triton*)
- os=sysv3
+ -triton*)
+ os=-sysv3
;;
- oss*)
- os=sysv3
+ -oss*)
+ os=-sysv3
;;
- svr4*)
- os=sysv4
+ -svr4)
+ os=-sysv4
;;
- svr3)
- os=sysv3
+ -svr3)
+ os=-sysv3
;;
- sysvr4)
- os=sysv4
+ -sysvr4)
+ os=-sysv4
;;
- # This must come after sysvr4.
- sysv*)
+ # This must come after -sysvr4.
+ -sysv*)
;;
- ose*)
- os=ose
+ -ose*)
+ os=-ose
;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
- os=mint
+ -es1800*)
+ os=-ose
;;
- zvmoe)
- os=zvmoe
+ -xenix)
+ os=-xenix
;;
- dicos*)
- os=dicos
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
;;
- pikeos*)
- # Until real need of OS specific support for
- # particular features comes up, bare metal
- # configurations are quite functional.
- case $cpu in
- arm*)
- os=eabi
- ;;
- *)
- os=elf
- ;;
- esac
+ -aros*)
+ os=-aros
;;
- nacl*)
+ -zvmoe)
+ os=-zvmoe
;;
- ios)
+ -dicos*)
+ os=-dicos
;;
- none)
+ -nacl*)
+ ;;
+ -ios)
;;
- *-eabi)
+ -none)
;;
*)
- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
@@ -1525,265 +1562,261 @@
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $cpu-$vendor in
+case $basic_machine in
score-*)
- os=elf
+ os=-elf
;;
spu-*)
- os=elf
+ os=-elf
;;
*-acorn)
- os=riscix1.2
+ os=-riscix1.2
;;
arm*-rebel)
- os=linux
+ os=-linux
;;
arm*-semi)
- os=aout
+ os=-aout
;;
c4x-* | tic4x-*)
- os=coff
+ os=-coff
;;
c8051-*)
- os=elf
- ;;
- clipper-intergraph)
- os=clix
+ os=-elf
;;
hexagon-*)
- os=elf
+ os=-elf
;;
tic54x-*)
- os=coff
+ os=-coff
;;
tic55x-*)
- os=coff
+ os=-coff
;;
tic6x-*)
- os=coff
+ os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=tops20
+ os=-tops20
;;
pdp11-*)
- os=none
+ os=-none
;;
*-dec | vax-*)
- os=ultrix4.2
+ os=-ultrix4.2
;;
m68*-apollo)
- os=domain
+ os=-domain
;;
i386-sun)
- os=sunos4.0.2
+ os=-sunos4.0.2
;;
m68000-sun)
- os=sunos3
+ os=-sunos3
;;
m68*-cisco)
- os=aout
+ os=-aout
;;
mep-*)
- os=elf
+ os=-elf
;;
mips*-cisco)
- os=elf
+ os=-elf
;;
mips*-*)
- os=elf
+ os=-elf
;;
or32-*)
- os=coff
+ os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=sysv3
+ os=-sysv3
;;
sparc-* | *-sun)
- os=sunos4.1.1
- ;;
- pru-*)
- os=elf
+ os=-sunos4.1.1
;;
*-be)
- os=beos
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
;;
*-ibm)
- os=aix
+ os=-aix
;;
*-knuth)
- os=mmixware
+ os=-mmixware
;;
*-wec)
- os=proelf
+ os=-proelf
;;
*-winbond)
- os=proelf
+ os=-proelf
;;
*-oki)
- os=proelf
+ os=-proelf
;;
*-hp)
- os=hpux
+ os=-hpux
;;
*-hitachi)
- os=hiux
+ os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=sysv
+ os=-sysv
;;
*-cbm)
- os=amigaos
+ os=-amigaos
;;
*-dg)
- os=dgux
+ os=-dgux
;;
*-dolphin)
- os=sysv3
+ os=-sysv3
;;
m68k-ccur)
- os=rtu
+ os=-rtu
;;
m88k-omron*)
- os=luna
+ os=-luna
;;
- *-next)
- os=nextstep
+ *-next )
+ os=-nextstep
;;
*-sequent)
- os=ptx
+ os=-ptx
;;
*-crds)
- os=unos
+ os=-unos
;;
*-ns)
- os=genix
+ os=-genix
;;
i370-*)
- os=mvs
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
;;
*-gould)
- os=sysv
+ os=-sysv
;;
*-highlevel)
- os=bsd
+ os=-bsd
;;
*-encore)
- os=bsd
+ os=-bsd
;;
*-sgi)
- os=irix
+ os=-irix
;;
*-siemens)
- os=sysv4
+ os=-sysv4
;;
*-masscomp)
- os=rtu
+ os=-rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=uxpv
+ os=-uxpv
;;
*-rom68k)
- os=coff
+ os=-coff
;;
*-*bug)
- os=coff
+ os=-coff
;;
*-apple)
- os=macos
+ os=-macos
;;
*-atari*)
- os=mint
- ;;
- *-wrs)
- os=vxworks
+ os=-mint
;;
*)
- os=none
+ os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-case $vendor in
- unknown)
+vendor=unknown
+case $basic_machine in
+ *-unknown)
case $os in
- riscix*)
+ -riscix*)
vendor=acorn
;;
- sunos*)
+ -sunos*)
vendor=sun
;;
- cnk*|-aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
- beos*)
+ -beos*)
vendor=be
;;
- hpux*)
+ -hpux*)
vendor=hp
;;
- mpeix*)
+ -mpeix*)
vendor=hp
;;
- hiux*)
+ -hiux*)
vendor=hitachi
;;
- unos*)
+ -unos*)
vendor=crds
;;
- dgux*)
+ -dgux*)
vendor=dg
;;
- luna*)
+ -luna*)
vendor=omron
;;
- genix*)
+ -genix*)
vendor=ns
;;
- clix*)
- vendor=intergraph
- ;;
- mvs* | opened*)
+ -mvs* | -opened*)
vendor=ibm
;;
- os400*)
+ -os400*)
vendor=ibm
;;
- ptx*)
+ -ptx*)
vendor=sequent
;;
- tpf*)
+ -tpf*)
vendor=ibm
;;
- vxsim* | vxworks* | windiss*)
+ -vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
- aux*)
+ -aux*)
vendor=apple
;;
- hms*)
+ -hms*)
vendor=hitachi
;;
- mpw* | macos*)
+ -mpw* | -macos*)
vendor=apple
;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
- vos*)
+ -vos*)
vendor=stratus
;;
esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo "$cpu-$vendor-$os"
+echo $basic_machine$os
exit
# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff -Naur third-party-libevdev-bak/build-aux/depcomp third-party-new/build-aux/depcomp
--- third-party-libevdev-bak/build-aux/depcomp 2023-03-28 10:49:53.364511400 +0800
+++ third-party-new/build-aux/depcomp 2023-04-01 15:23:52.268636000 +0800
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 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
diff -Naur third-party-libevdev-bak/build-aux/install-sh third-party-new/build-aux/install-sh
--- third-party-libevdev-bak/build-aux/install-sh 2023-03-28 10:49:53.364511400 +0800
+++ third-party-new/build-aux/install-sh 2023-04-01 15:24:20.772834900 +0800
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@
# Desired mode of installed file.
mode=0755
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -99,18 +104,28 @@
--version display version info and exit.
-c (ignored)
- -C install only if different (preserve the last data modification time)
+ -C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
-s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
"
while test $# -ne 0; do
@@ -137,8 +152,13 @@
-o) chowncmd="$chownprog $2"
shift;;
+ -p) cpprog="$cpprog -p";;
+
-s) stripcmd=$stripprog;;
+ -S) backupsuffix="$2"
+ shift;;
+
-t)
is_target_a_directory=always
dst_arg=$2
@@ -255,6 +275,10 @@
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -301,22 +325,6 @@
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -326,52 +334,49 @@
fi
posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # 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/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 &&
- $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.
- 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 -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # The $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/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'.
+ if (umask $mkdir_umask &&
+ $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.
+ 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 -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
esac
if
@@ -382,7 +387,7 @@
then :
else
- # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -411,7 +416,7 @@
prefixes=
else
if $posix_mkdir; then
- (umask=$mkdir_umask &&
+ (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
@@ -488,6 +493,13 @@
then
rm -f "$dsttmp"
else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@@ -502,9 +514,9 @@
# file should still install successfully.
{
test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
diff -Naur third-party-libevdev-bak/build-aux/ltmain.sh third-party-new/build-aux/ltmain.sh
--- third-party-libevdev-bak/build-aux/ltmain.sh 2023-03-28 10:49:53.364511400 +0800
+++ third-party-new/build-aux/ltmain.sh 2023-04-01 15:26:28.592596800 +0800
@@ -2124,7 +2124,7 @@
# a configuration failure hint, and exit.
func_fatal_configuration ()
{
- func_fatal_error ${1+"$@"} \
+ func__fatal_error ${1+"$@"} \
"See the $PACKAGE documentation for more information." \
"Fatal configuration error."
}
@@ -2415,17 +2415,10 @@
# preserve --debug
test : = "$debug_cmd" || func_append preserve_args " --debug"
- case $host in
- # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
- # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
+ # Keeping compiler generated duplicates in $postdeps and $predeps is not
+ # harmful, and is necessary in a majority of systems that use it to satisfy
+ # symbol dependencies.
+ opt_duplicate_compiler_generated_deps=:
$opt_help || {
# Sanity checks first:
@@ -7272,12 +7265,10 @@
# -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
-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=*| \
- -specs=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
diff -Naur third-party-libevdev-bak/build-aux/missing third-party-new/build-aux/missing
--- third-party-libevdev-bak/build-aux/missing 2023-03-28 10:49:53.368511500 +0800
+++ third-party-new/build-aux/missing 2023-04-01 15:27:23.041026400 +0800
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
diff -Naur third-party-libevdev-bak/build-aux/test-driver third-party-new/build-aux/test-driver
--- third-party-libevdev-bak/build-aux/test-driver 2023-03-28 10:49:53.368511500 +0800
+++ third-party-new/build-aux/test-driver 2023-04-01 15:28:03.347028800 +0800
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2020 Free Software Foundation, Inc.
+# Copyright (C) 2011-2021 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
@@ -42,11 +42,13 @@
{
cat <<END
Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
+ test-driver --test-name NAME --log-file PATH --trs-file PATH
+ [--expect-failure {yes|no}] [--color-tests {yes|no}]
+ [--enable-hard-errors {yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
END
}
@@ -103,8 +105,11 @@
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
-# Test script is run here.
-"$@" >$log_file 2>&1
+# Test script is run here. We create the file first, then append to it,
+# to ameliorate tests themselves also writing to the log file. Our tests
+# don't, but others can (automake bug#35762).
+: >"$log_file"
+"$@" >>"$log_file" 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
@@ -126,7 +131,7 @@
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
-echo "$res $test_name (exit status: $estatus)" >>$log_file
+echo "$res $test_name (exit status: $estatus)" >>"$log_file"
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
diff -Naur third-party-libevdev-bak/config.h.in third-party-new/config.h.in
--- third-party-libevdev-bak/config.h.in 2023-03-28 10:49:53.368511500 +0800
+++ third-party-new/config.h.in 2023-04-03 11:10:27.496652300 +0800
@@ -9,12 +9,15 @@
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
+/* Define to 1 if you have the <minix/config.h> header file. */
+#undef HAVE_MINIX_CONFIG_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
@@ -33,6 +36,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
@@ -57,28 +63,96 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
#undef STDC_HEADERS
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
-/* Enable threading extensions on Solaris. */
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
+/* Identify the host operating system as Minix.
+ This macro does not affect the system headers' behavior.
+ A future release of Autoconf may stop defining this macro. */
+#ifndef _MINIX
+# undef _MINIX
+#endif
+/* Enable general extensions on NetBSD.
+ Enable NetBSD compatibility extensions on Minix. */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+ Oddly enough, this does nothing on OpenBSD. */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_SOURCE
+# undef _POSIX_SOURCE
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_1_SOURCE
+# undef _POSIX_1_SOURCE
+#endif
+/* Enable POSIX-compatible threading on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# undef __STDC_WANT_IEC_60559_BFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+# undef __STDC_WANT_LIB_EXT2__
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+/* Enable X/Open extensions. Define to 500 only if necessary
+ to make mbstate_t available. */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
#endif
@@ -99,13 +173,3 @@
/* Override for coverity */
#undef _Float64x
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
diff -Naur third-party-libevdev-bak/configure third-party-new/configure
--- third-party-libevdev-bak/configure 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/configure 2023-04-03 14:14:58.882757200 +0800
@@ -1,11 +1,12 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libevdev 1.10.0.
+# Generated by GNU Autoconf 2.71 for libevdev 1.12.1.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev>.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -33,46 +36,46 @@
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -96,8 +92,12 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -109,30 +109,10 @@
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
-else
+else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
@@ -187,18 +169,20 @@
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
-else
+else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
@@ -206,31 +190,40 @@
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
PATH=/empty FPATH=/empty; export PATH FPATH
test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null
+then :
as_have_required=yes
-else
+else $as_nop
as_have_required=no
fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
-else
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
+ as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
break 2
fi
fi
@@ -238,14 +231,21 @@
esac
as_found=false
done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
- if test "x$CONFIG_SHELL" != x; then :
+ if test "x$CONFIG_SHELL" != x
+then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
@@ -263,18 +263,19 @@
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and
+ printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev
$0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or
@@ -303,6 +304,7 @@
}
as_unset=as_fn_unset
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -320,6 +322,14 @@
as_fn_set_status $1
exit $1
} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
@@ -334,7 +344,7 @@
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -343,7 +353,7 @@
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -382,12 +392,13 @@
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -399,18 +410,27 @@
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
@@ -422,9 +442,9 @@
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -451,7 +471,7 @@
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -495,7 +515,7 @@
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
@@ -509,6 +529,10 @@
exit
}
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -522,6 +546,13 @@
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -591,48 +622,44 @@
# Identity of this package.
PACKAGE_NAME='libevdev'
PACKAGE_TARNAME='libevdev'
-PACKAGE_VERSION='1.10.0'
-PACKAGE_STRING='libevdev 1.10.0'
+PACKAGE_VERSION='1.12.1'
+PACKAGE_STRING='libevdev 1.12.1'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev'
PACKAGE_URL='http://freedesktop.org/wiki/Software/libevdev/'
ac_unique_file="libevdev/libevdev.c"
# Factoring default headers for most tests.
ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
#endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
#endif
#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
# include <string.h>
#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
+ac_header_c_list=
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
@@ -645,9 +672,9 @@
pyexecdir
pkgpythondir
pythondir
-PYTHON_PLATFORM
PYTHON_EXEC_PREFIX
PYTHON_PREFIX
+PYTHON_PLATFORM
PYTHON_VERSION
PYTHON
GCOV_LDFLAGS
@@ -690,6 +717,8 @@
DUMPBIN
LD
FGREP
+EGREP
+GREP
SED
host_os
host_vendor
@@ -705,6 +734,9 @@
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
+CSCOPE
+ETAGS
+CTAGS
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
@@ -737,9 +769,6 @@
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
-EGREP
-GREP
-CPP
OBJEXT
EXEEXT
ac_ct_CC
@@ -766,6 +795,7 @@
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -801,6 +831,9 @@
enable_libtool_lock
enable_gcov
enable_coverity
+with_python_sys_prefix
+with_python_prefix
+with_python_exec_prefix
'
ac_precious_vars='build_alias
host_alias
@@ -810,7 +843,6 @@
LDFLAGS
LIBS
CPPFLAGS
-CPP
LT_SYS_LIBRARY_PATH
PKG_CONFIG
PKG_CONFIG_PATH
@@ -856,6 +888,7 @@
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -885,8 +918,6 @@
*) ac_optarg=yes ;;
esac
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
@@ -927,9 +958,9 @@
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -953,9 +984,9 @@
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1108,6 +1139,15 @@
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1157,9 +1197,9 @@
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1173,9 +1213,9 @@
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1219,9 +1259,9 @@
*)
# FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
@@ -1237,7 +1277,7 @@
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1245,7 +1285,7 @@
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1301,7 +1341,7 @@
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -1358,7 +1398,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 libevdev 1.10.0 to adapt to many kinds of systems.
+\`configure' configures libevdev 1.12.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1398,6 +1438,7 @@
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1428,7 +1469,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libevdev 1.10.0:";;
+ short | recursive ) echo "Configuration of libevdev 1.12.1:";;
esac
cat <<\_ACEOF
@@ -1463,6 +1504,11 @@
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
+ --with-python-sys-prefix
+ use Python's sys.prefix and sys.exec_prefix values
+ --with-python_prefix override the default PYTHON_PREFIX
+ --with-python_exec_prefix
+ override the default PYTHON_EXEC_PREFIX
Some influential environment variables:
CC C compiler command
@@ -1472,7 +1518,6 @@
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
PKG_CONFIG path to pkg-config utility
@@ -1505,9 +1550,9 @@
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1535,7 +1580,8 @@
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1543,7 +1589,7 @@
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
@@ -1552,10 +1598,10 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libevdev configure 1.10.0
-generated by GNU Autoconf 2.69
+libevdev configure 1.12.1
+generated by GNU Autoconf 2.71
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1572,14 +1618,14 @@
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
+ rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1587,14 +1633,15 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
+ } && test -s conftest.$ac_objext
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1604,176 +1651,6 @@
} # ac_fn_c_try_compile
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## -------------------------------------------------------------------------- ##
-## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev ##
-## -------------------------------------------------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
@@ -1781,26 +1658,28 @@
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -1811,14 +1690,14 @@
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1826,17 +1705,18 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1857,11 +1737,12 @@
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -1869,16 +1750,9 @@
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ which can conflict with char $2 (); below. */
+#include <limits.h>
#undef $2
/* Override any GCC internal prototype to avoid an error.
@@ -1896,35 +1770,56 @@
#endif
int
-main ()
+main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
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 libevdev $as_me 1.10.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+It was created by libevdev $as_me 1.12.1, which was
+generated by GNU Autoconf 2.71. Invocation command line was
- $ $0 $@
+ $ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
@@ -1957,8 +1852,12 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
@@ -1993,7 +1892,7 @@
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2028,11 +1927,13 @@
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
- $as_echo "## ---------------- ##
+ printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
@@ -2043,8 +1944,8 @@
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -2068,7 +1969,7 @@
)
echo
- $as_echo "## ----------------- ##
+ printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
@@ -2076,14 +1977,14 @@
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
+ printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
@@ -2091,15 +1992,15 @@
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
- $as_echo "## ----------- ##
+ printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
@@ -2107,8 +2008,8 @@
echo
fi
test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
+ printf "%s\n" "$as_me: caught signal $ac_signal"
+ printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2122,63 +2023,48 @@
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
+ ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
+ ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
+ ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ case $ac_site_file in #(
+ */*) :
+ ;; #(
+ *) :
+ ac_site_file=./$ac_site_file ;;
+esac
+ if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
@@ -2188,19 +2074,436 @@
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+ Do not test the value of __STDC__, because some compilers set it to 0
+ while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not \xHH hex character constants.
+ These do not provoke an error unfortunately, instead are silently treated
+ as an "x". The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously \x00 != x always comes out true, for an
+ array size at least. It is necessary to write \x00 == 0 to get something
+ that is true only with -std. */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+ int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+ #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case '\''s'\'': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case '\''d'\'': // int
+ number = va_arg (args_copy, int);
+ break;
+ case '\''f'\'': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+ // Check bool.
+ _Bool success = false;
+ success |= (argc != 0);
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[0] = argv[0][0];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+ || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+ v1.i = 2;
+ v1.w.k = 5;
+ ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ ${ac_c_conftest_c11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
+as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="config.guess config.sub ltmain.sh missing install-sh compile"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}/build-aux"
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ do
+ # As a special case, if "install-sh" is required, that requirement
+ # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+ # and $ac_install_sh is set appropriately for whichever one is found.
+ if test x"$ac_aux" = x"install-sh"
+ then
+ if test -f "${as_dir}install-sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ ac_install_sh="${as_dir}install-sh -c"
+ elif test -f "${as_dir}install.sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ ac_install_sh="${as_dir}install.sh -c"
+ elif test -f "${as_dir}shtool"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ ac_install_sh="${as_dir}shtool install -c"
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+ else
+ break
+ fi
+ fi
+ else
+ if test -f "${as_dir}${ac_aux}"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+ else
+ break
+ fi
+ fi
+ fi
+ done
+ if test "$ac_aux_dir_found" = yes; then
+ ac_aux_dir="$as_dir"
+ break
+ fi
+ ac_first_candidate=false
+
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+ ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+ ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+ ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -2211,12 +2514,12 @@
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
@@ -2225,24 +2528,24 @@
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
@@ -2252,11 +2555,12 @@
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+ and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2274,33 +2578,16 @@
ac_config_headers="$ac_config_headers config.h"
-ac_aux_dir=
-for ac_dir in build-aux "$srcdir"/build-aux; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
-fi
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+
+
+
+
+
# Expand $ac_aux_dir to an absolute path.
@@ -2314,11 +2601,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2326,11 +2614,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2341,11 +2633,11 @@
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2354,11 +2646,12 @@
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2366,11 +2659,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2381,11 +2678,11 @@
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -2393,8 +2690,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2407,11 +2704,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2419,11 +2717,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2434,11 +2736,11 @@
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2447,11 +2749,12 @@
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2460,15 +2763,19 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2484,18 +2791,18 @@
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2506,11 +2813,12 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2518,11 +2826,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2533,11 +2845,11 @@
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2550,11 +2862,12 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2562,11 +2875,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2577,11 +2894,11 @@
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2593,8 +2910,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2602,25 +2919,129 @@
fi
fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2630,7 +3051,7 @@
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -2638,7 +3059,7 @@
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -2650,9 +3071,9 @@
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -2673,11 +3094,12 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
@@ -2694,7 +3116,7 @@
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -2710,44 +3132,46 @@
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
-else
+else $as_nop
ac_file=''
fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -2761,15 +3185,15 @@
* ) break;;
esac
done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
@@ -2778,7 +3202,7 @@
/* end confdefs.h. */
#include <stdio.h>
int
-main ()
+main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
@@ -2790,8 +3214,8 @@
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
@@ -2799,10 +3223,10 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
@@ -2810,39 +3234,40 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -2856,11 +3281,12 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
@@ -2869,31 +3295,32 @@
break;;
esac
done
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -2903,29 +3330,33 @@
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -2934,57 +3365,60 @@
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -2999,94 +3433,144 @@
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
fi
ac_ext=c
@@ -3095,21 +3579,23 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_ext=c
+
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+printf %s "checking whether $CC understands -c and -o together... " >&6; }
+if test ${am_cv_prog_cc_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -3137,8 +3623,8 @@
rm -f core conftest*
unset am_i
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
@@ -3155,468 +3641,181 @@
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
+ if test $ac_cache; then
+ ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
+ fi
done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
- done
- ac_cv_prog_CPP=$CPP
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test ${ac_cv_safe_to_define___extensions__+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+# define __EXTENSIONS__ 1
+ $ac_includes_default
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_safe_to_define___extensions__=yes
+else $as_nop
+ ac_cv_safe_to_define___extensions__=no
fi
-rm -f conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if test ${ac_cv_should_define__xopen_source+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_should_define__xopen_source=no
+ if test $ac_cv_header_wchar_h = yes
+then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdlib.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ #include <wchar.h>
+ mbstate_t x;
+int
+main (void)
+{
-fi
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ #define _XOPEN_SOURCE 500
+ #include <wchar.h>
+ mbstate_t x;
int
-main ()
+main (void)
{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
+
+ ;
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_should_define__xopen_source=yes
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+ printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
-fi
+ printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
-fi
+ printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
-done
+ printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
- if test "$MINIX" = yes; then
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
-$as_echo "#define _MINIX 1" >>confdefs.h
+ printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
- fi
+ if test $ac_cv_header_minix_config_h = yes
+then :
+ MINIX=yes
+ printf "%s\n" "#define _MINIX 1" >>confdefs.h
+ printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+ printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else $as_nop
+ MINIX=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+ if test $ac_cv_safe_to_define___extensions__ = yes
+then :
+ printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+fi
+ if test $ac_cv_should_define__xopen_source = yes
+then :
+ printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+fi
am__api_version='1.16'
-# Find a good install program. We prefer a C program (faster),
+
+ # Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
@@ -3630,20 +3829,25 @@
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+ ./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
@@ -3653,13 +3857,13 @@
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
@@ -3667,12 +3871,12 @@
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
@@ -3688,7 +3892,7 @@
rm -rf conftest.one conftest.two conftest.dir
fi
- if test "${ac_cv_path_install+set}" = set; then
+ if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
@@ -3698,8 +3902,8 @@
INSTALL=$ac_install_sh
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
@@ -3709,8 +3913,8 @@
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+printf %s "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
@@ -3764,8 +3968,8 @@
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
@@ -3784,23 +3988,19 @@
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+
+ if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh+set}" != xset; then
@@ -3820,11 +4020,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
@@ -3832,11 +4033,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3847,11 +4052,11 @@
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -3860,11 +4065,12 @@
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
@@ -3872,11 +4078,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3887,11 +4097,11 @@
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -3899,8 +4109,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -3912,25 +4122,31 @@
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
+printf %s "checking for a race-free mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${ac_cv_path_mkdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
+ as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir ('*'coreutils) '* | \
+ 'BusyBox '* | \
'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
break 3;;
esac
done
@@ -3941,7 +4157,7 @@
fi
test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
+ if test ${ac_cv_path_mkdir+y}; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
@@ -3951,18 +4167,19 @@
MKDIR_P="$ac_install_sh -d"
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+printf "%s\n" "$MKDIR_P" >&6; }
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
@@ -3970,11 +4187,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3985,24 +4206,25 @@
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@@ -4018,12 +4240,12 @@
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -4040,8 +4262,8 @@
ac_config_commands="$ac_config_commands depfiles"
-{ $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; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target >confinc.out
@@ -4077,11 +4299,12 @@
fi
done
rm -f confinc.* confmf.*
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
-$as_echo "${_am_result}" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+printf "%s\n" "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
+if test ${enable_dependency_tracking+y}
+then :
enableval=$enable_dependency_tracking;
fi
@@ -4100,7 +4323,8 @@
# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
+if test ${enable_silent_rules+y}
+then :
enableval=$enable_silent_rules;
fi
@@ -4110,12 +4334,13 @@
*) AM_DEFAULT_VERBOSITY=1;;
esac
am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+printf %s "checking whether $am_make supports nested variables... " >&6; }
+if test ${am_cv_make_support_nested_variables+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
@@ -4127,8 +4352,8 @@
am_cv_make_support_nested_variables=no
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
@@ -4160,17 +4385,13 @@
# Define the identity of the package.
PACKAGE='libevdev'
- VERSION='1.10.0'
+ VERSION='1.12.1'
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
+printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
+printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
# Some tools Automake needs.
@@ -4212,11 +4433,12 @@
depcc="$CC" am_compiler_list=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+printf %s "checking dependency style of $depcc... " >&6; }
+if test ${am_cv_CC_dependencies_compiler_type+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
@@ -4323,8 +4545,8 @@
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
@@ -4338,6 +4560,20 @@
fi
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+
+
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
@@ -4389,7 +4625,8 @@
# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
+if test ${enable_silent_rules+y}
+then :
enableval=$enable_silent_rules;
fi
@@ -4399,12 +4636,13 @@
*) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+printf %s "checking whether $am_make supports nested variables... " >&6; }
+if test ${am_cv_make_support_nested_variables+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
@@ -4416,8 +4654,8 @@
am_cv_make_support_nested_variables=no
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
@@ -4429,190 +4667,14 @@
# Check for programs
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
-$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
-if ${ac_cv_prog_cc_c99+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <stdio.h>
-
-// Check varargs macros. These examples are taken from C99 6.10.3.5.
-#define debug(...) fprintf (stderr, __VA_ARGS__)
-#define showlist(...) puts (#__VA_ARGS__)
-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-static void
-test_varargs_macros (void)
-{
- int x = 1234;
- int y = 5678;
- debug ("Flag");
- debug ("X = %d\n", x);
- showlist (The first, second, and third items.);
- report (x>y, "x is %d but y is %d", x, y);
-}
-
-// Check long long types.
-#define BIG64 18446744073709551615ull
-#define BIG32 4294967295ul
-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-#if !BIG_OK
- your preprocessor is broken;
-#endif
-#if BIG_OK
-#else
- your preprocessor is broken;
-#endif
-static long long int bignum = -9223372036854775807LL;
-static unsigned long long int ubignum = BIG64;
-
-struct incomplete_array
-{
- int datasize;
- double data[];
-};
-
-struct named_init {
- int number;
- const wchar_t *name;
- double average;
-};
-
-typedef const char *ccp;
-
-static inline int
-test_restrict (ccp restrict text)
-{
- // See if C++-style comments work.
- // Iterate through items via the restricted pointer.
- // Also check for declarations in for loops.
- for (unsigned int i = 0; *(text+i) != '\0'; ++i)
- continue;
- return 0;
-}
-
-// Check varargs and va_copy.
-static void
-test_varargs (const char *format, ...)
-{
- va_list args;
- va_start (args, format);
- va_list args_copy;
- va_copy (args_copy, args);
-
- const char *str;
- int number;
- float fnumber;
-
- while (*format)
- {
- switch (*format++)
- {
- case 's': // string
- str = va_arg (args_copy, const char *);
- break;
- case 'd': // int
- number = va_arg (args_copy, int);
- break;
- case 'f': // float
- fnumber = va_arg (args_copy, double);
- break;
- default:
- break;
- }
- }
- va_end (args_copy);
- va_end (args);
-}
-
-int
-main ()
-{
-
- // Check bool.
- _Bool success = false;
-
- // Check restrict.
- if (test_restrict ("String literal") == 0)
- success = true;
- char *restrict newvar = "Another string";
-
- // Check varargs.
- test_varargs ("s, d' f .", "string", 65, 34.234);
- test_varargs_macros ();
-
- // Check flexible array members.
- struct incomplete_array *ia =
- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
- ia->datasize = 10;
- for (int i = 0; i < ia->datasize; ++i)
- ia->data[i] = i * 1.234;
-
- // Check named initializers.
- struct named_init ni = {
- .number = 34,
- .name = L"Test wide string",
- .average = 543.34343,
- };
-
- ni.number = 58;
-
- int dynamic_array[ni.number];
- dynamic_array[ni.number - 1] = 543;
-
- // work around unused variable warnings
- return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
- || dynamic_array[ni.number - 1] != 543);
-
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c99" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c99"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c99" != xno; then :
-
-fi
-
# Initialize libtool
case `pwd` in
*\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac
@@ -4632,28 +4694,32 @@
+
ltmain=$ac_aux_dir/ltmain.sh
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+
+ # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -4672,21 +4738,22 @@
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -4726,8 +4793,8 @@
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+printf %s "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -4753,12 +4820,12 @@
}
case $ECHO in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
+ printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+printf "%s\n" "printf" >&6; } ;;
+ print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+printf "%s\n" "print -r" >&6; } ;;
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+printf "%s\n" "cat" >&6; } ;;
esac
@@ -4774,11 +4841,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
@@ -4792,10 +4860,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in sed gsed
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
@@ -4804,13 +4877,13 @@
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
+ printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4838,8 +4911,8 @@
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
@@ -4856,11 +4929,154 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in grep ggrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in egrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+printf %s "checking for fgrep... " >&6; }
+if test ${ac_cv_path_FGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
@@ -4871,10 +5087,15 @@
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in fgrep
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
@@ -4883,13 +5104,13 @@
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
+ printf "%s\n" 'FGREP' >> "conftest.nl"
"$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4918,8 +5139,8 @@
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+printf "%s\n" "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
@@ -4944,17 +5165,18 @@
# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
+else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
@@ -4983,15 +5205,16 @@
;;
esac
elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${lt_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
@@ -5020,18 +5243,19 @@
LD=$lt_cv_path_LD
if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
@@ -5042,8 +5266,8 @@
;;
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -5054,11 +5278,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test ${lt_cv_path_NM+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
@@ -5108,8 +5333,8 @@
: ${lt_cv_path_NM=no}
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf "%s\n" "$lt_cv_path_NM" >&6; }
if test no != "$lt_cv_path_NM"; then
NM=$lt_cv_path_NM
else
@@ -5122,11 +5347,12 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
@@ -5134,11 +5360,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5149,11 +5379,11 @@
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+printf "%s\n" "$DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5166,11 +5396,12 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
@@ -5178,11 +5409,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5193,11 +5428,11 @@
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5209,8 +5444,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DUMPBIN=$ac_ct_DUMPBIN
@@ -5238,11 +5473,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+printf %s "checking the name lister ($NM) interface... " >&6; }
+if test ${lt_cv_nm_interface+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
@@ -5258,26 +5494,27 @@
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+printf "%s\n" "$lt_cv_nm_interface" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
fi
# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+printf %s "checking the maximum length of command line arguments... " >&6; }
+if test ${lt_cv_sys_max_cmd_len+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
i=0
teststring=ABCD
@@ -5404,11 +5641,11 @@
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf "%s\n" "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -5452,11 +5689,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+printf %s "checking how to convert $build file names to $host format... " >&6; }
+if test ${lt_cv_to_host_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $host in
*-*-mingw* )
case $build in
@@ -5492,18 +5730,19 @@
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+printf %s "checking how to convert $build file names to toolchain format... " >&6; }
+if test ${lt_cv_to_tool_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
@@ -5519,22 +5758,23 @@
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+printf %s "checking for $LD option to reload object files... " >&6; }
+if test ${lt_cv_ld_reload_flag+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_reload_flag='-r'
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
@@ -5567,11 +5807,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
@@ -5579,11 +5820,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5594,11 +5839,11 @@
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5607,11 +5852,12 @@
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
@@ -5619,11 +5865,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5634,11 +5884,11 @@
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
@@ -5646,8 +5896,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
@@ -5666,11 +5916,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+printf %s "checking how to recognize dependent libraries... " >&6; }
+if test ${lt_cv_deplibs_check_method+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
@@ -5866,8 +6117,8 @@
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
file_magic_glob=
want_nocaseglob=no
@@ -5911,11 +6162,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
@@ -5923,11 +6175,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5938,11 +6194,11 @@
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5951,11 +6207,12 @@
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
@@ -5963,11 +6220,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5978,11 +6239,11 @@
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
@@ -5990,8 +6251,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
@@ -6011,11 +6272,12 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+printf %s "checking how to associate runtime and link libraries... " >&6; }
+if test ${lt_cv_sharedlib_from_linklib_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
@@ -6038,8 +6300,8 @@
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
@@ -6054,11 +6316,12 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
@@ -6066,11 +6329,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6081,11 +6348,11 @@
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6098,11 +6365,12 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
@@ -6110,11 +6378,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6125,11 +6397,11 @@
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6141,8 +6413,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
@@ -6162,30 +6434,32 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+printf %s "checking for archiver @FILE support... " >&6; }
+if test ${lt_cv_ar_at_file+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
echo conftest.$ac_objext > conftest.lst
lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -eq "$ac_status"; then
# Ensure the archiver fails upon bogus file names.
@@ -6193,7 +6467,7 @@
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -ne "$ac_status"; then
lt_cv_ar_at_file=@
@@ -6202,11 +6476,11 @@
rm -f conftest.* libconftest.a
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+printf "%s\n" "$lt_cv_ar_at_file" >&6; }
if test no = "$lt_cv_ar_at_file"; then
archiver_list_spec=
@@ -6223,11 +6497,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
@@ -6235,11 +6510,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6250,11 +6529,11 @@
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6263,11 +6542,12 @@
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
@@ -6275,11 +6555,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6290,11 +6574,11 @@
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -6302,8 +6586,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -6322,11 +6606,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
@@ -6334,11 +6619,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6349,11 +6638,11 @@
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6362,11 +6651,12 @@
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
@@ -6374,11 +6664,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6389,11 +6683,11 @@
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
@@ -6401,8 +6695,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
@@ -6491,11 +6785,12 @@
# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+printf %s "checking command to parse $NM output from $compiler object... " >&6; }
+if test ${lt_cv_sys_global_symbol_pipe+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
@@ -6647,14 +6942,14 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
(eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@@ -6723,7 +7018,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest$ac_exeext; then
pipe_works=yes
fi
@@ -6758,11 +7053,11 @@
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
fi
# Response file support.
@@ -6808,13 +7103,14 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+printf %s "checking for sysroot... " >&6; }
# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
+if test ${with_sysroot+y}
+then :
withval=$with_sysroot;
-else
+else $as_nop
with_sysroot=no
fi
@@ -6832,24 +7128,25 @@
no|'')
;; #(
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-$as_echo "$with_sysroot" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+printf "%s\n" "$with_sysroot" >&6; }
as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+printf "%s\n" "${lt_sysroot:-no}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-$as_echo_n "checking for a working dd... " >&6; }
-if ${ac_cv_path_lt_DD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+printf %s "checking for a working dd... " >&6; }
+if test ${ac_cv_path_lt_DD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
@@ -6860,10 +7157,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in dd; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in dd
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_lt_DD" || continue
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
@@ -6883,15 +7185,16 @@
rm -f conftest.i conftest2.i conftest.out
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-$as_echo "$ac_cv_path_lt_DD" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-$as_echo_n "checking how to truncate binary pipes... " >&6; }
-if ${lt_cv_truncate_bin+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+printf %s "checking how to truncate binary pipes... " >&6; }
+if test ${lt_cv_truncate_bin+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
@@ -6902,8 +7205,8 @@
rm -f conftest.i conftest2.i conftest.out
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-$as_echo "$lt_cv_truncate_bin" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+printf "%s\n" "$lt_cv_truncate_bin" >&6; }
@@ -6926,7 +7229,8 @@
}
# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
+if test ${enable_libtool_lock+y}
+then :
enableval=$enable_libtool_lock;
fi
@@ -6942,7 +7246,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
@@ -6962,7 +7266,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in
@@ -7000,7 +7304,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
case `/usr/bin/file conftest.$ac_objext` in
@@ -7041,7 +7345,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
@@ -7104,11 +7408,12 @@
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+printf %s "checking whether the C compiler needs -belf... " >&6; }
+if test ${lt_cv_cc_needs_belf+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7119,19 +7424,20 @@
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_cc_needs_belf=yes
-else
+else $as_nop
lt_cv_cc_needs_belf=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -7140,8 +7446,8 @@
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
if test yes != "$lt_cv_cc_needs_belf"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS=$SAVE_CFLAGS
@@ -7154,7 +7460,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
@@ -7191,11 +7497,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
@@ -7203,11 +7510,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7218,11 +7529,11 @@
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+printf "%s\n" "$MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7231,11 +7542,12 @@
ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
# Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
@@ -7243,11 +7555,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7258,11 +7574,11 @@
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_MANIFEST_TOOL" = x; then
@@ -7270,8 +7586,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
@@ -7281,11 +7597,12 @@
fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test ${lt_cv_path_mainfest_tool+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
@@ -7295,8 +7612,8 @@
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
@@ -7311,11 +7628,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
@@ -7323,11 +7641,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7338,11 +7660,11 @@
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf "%s\n" "$DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7351,11 +7673,12 @@
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
@@ -7363,11 +7686,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7378,11 +7705,11 @@
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
@@ -7390,8 +7717,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
@@ -7403,11 +7730,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
@@ -7415,11 +7743,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7430,11 +7762,11 @@
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf "%s\n" "$NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7443,11 +7775,12 @@
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
@@ -7455,11 +7788,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7470,11 +7807,11 @@
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf "%s\n" "$ac_ct_NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
@@ -7482,8 +7819,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
@@ -7495,11 +7832,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
@@ -7507,11 +7845,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7522,11 +7864,11 @@
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+printf "%s\n" "$LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7535,11 +7877,12 @@
ac_ct_LIPO=$LIPO
# Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
@@ -7547,11 +7890,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7562,11 +7909,11 @@
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+printf "%s\n" "$ac_ct_LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_LIPO" = x; then
@@ -7574,8 +7921,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
LIPO=$ac_ct_LIPO
@@ -7587,11 +7934,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
@@ -7599,11 +7947,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7614,11 +7966,11 @@
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+printf "%s\n" "$OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7627,11 +7979,12 @@
ac_ct_OTOOL=$OTOOL
# Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
@@ -7639,11 +7992,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7654,11 +8011,11 @@
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+printf "%s\n" "$ac_ct_OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL" = x; then
@@ -7666,8 +8023,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL=$ac_ct_OTOOL
@@ -7679,11 +8036,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
@@ -7691,11 +8049,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7706,11 +8068,11 @@
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+printf "%s\n" "$OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7719,11 +8081,12 @@
ac_ct_OTOOL64=$OTOOL64
# Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
@@ -7731,11 +8094,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7746,11 +8113,11 @@
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+printf "%s\n" "$ac_ct_OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL64" = x; then
@@ -7758,8 +8125,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL64=$ac_ct_OTOOL64
@@ -7794,11 +8161,12 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+printf %s "checking for -single_module linker flag... " >&6; }
+if test ${lt_cv_apple_cc_single_mod+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
@@ -7827,14 +8195,15 @@
rm -f conftest.*
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+printf %s "checking for -exported_symbols_list linker flag... " >&6; }
+if test ${lt_cv_ld_exported_symbols_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
@@ -7843,31 +8212,33 @@
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_ld_exported_symbols_list=yes
-else
+else $as_nop
lt_cv_ld_exported_symbols_list=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+printf %s "checking for -force_load linker flag... " >&6; }
+if test ${lt_cv_ld_force_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
@@ -7895,8 +8266,8 @@
rm -rf conftest.dSYM
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+printf "%s\n" "$lt_cv_ld_force_load" >&6; }
case $host_os in
rhapsody* | darwin1.[012])
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
@@ -7967,19 +8338,14 @@
esac
}
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
+if test "x$ac_cv_header_dlfcn_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
-done
-
@@ -7995,7 +8361,8 @@
# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
+if test ${enable_shared+y}
+then :
enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
@@ -8013,7 +8380,7 @@
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_shared=yes
fi
@@ -8026,7 +8393,8 @@
# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
+if test ${enable_static+y}
+then :
enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
@@ -8044,7 +8412,7 @@
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_static=yes
fi
@@ -8058,7 +8426,8 @@
# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
+if test ${with_pic+y}
+then :
withval=$with_pic; lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
@@ -8075,7 +8444,7 @@
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
pic_mode=default
fi
@@ -8087,7 +8456,8 @@
# Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
+if test ${enable_fast_install+y}
+then :
enableval=$enable_fast_install; p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
@@ -8105,7 +8475,7 @@
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_fast_install=yes
fi
@@ -8119,11 +8489,12 @@
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+printf %s "checking which variant of shared library versioning to provide... " >&6; }
# Check whether --with-aix-soname was given.
-if test "${with_aix_soname+set}" = set; then :
+if test ${with_aix_soname+y}
+then :
withval=$with_aix_soname; case $withval in
aix|svr4|both)
;;
@@ -8132,18 +8503,19 @@
;;
esac
lt_cv_with_aix_soname=$with_aix_soname
-else
- if ${lt_cv_with_aix_soname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ if test ${lt_cv_with_aix_soname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_with_aix_soname=aix
fi
with_aix_soname=$lt_cv_with_aix_soname
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-$as_echo "$with_aix_soname" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
@@ -8225,11 +8597,12 @@
setopt NO_GLOB_SUBST
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+printf %s "checking for objdir... " >&6; }
+if test ${lt_cv_objdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
@@ -8240,17 +8613,15 @@
fi
rmdir .libs 2>/dev/null
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf "%s\n" "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
+printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
@@ -8296,11 +8667,12 @@
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+printf %s "checking for ${ac_tool_prefix}file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -8349,11 +8721,11 @@
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8362,11 +8734,12 @@
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+printf %s "checking for file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -8415,11 +8788,11 @@
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8504,11 +8877,12 @@
lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test ${lt_cv_prog_compiler_rtti_exceptions+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -8539,8 +8913,8 @@
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -8897,26 +9271,28 @@
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+printf %s "checking for $compiler option to produce PIC... " >&6; }
+if test ${lt_cv_prog_compiler_pic+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test ${lt_cv_prog_compiler_pic_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -8947,8 +9323,8 @@
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
if test yes = "$lt_cv_prog_compiler_pic_works"; then
case $lt_prog_compiler_pic in
@@ -8976,11 +9352,12 @@
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test ${lt_cv_prog_compiler_static_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
@@ -9004,8 +9381,8 @@
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
if test yes = "$lt_cv_prog_compiler_static_works"; then
:
@@ -9019,11 +9396,12 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -9066,19 +9444,20 @@
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -9121,8 +9500,8 @@
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
@@ -9130,19 +9509,19 @@
hard_links=nottested
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
# do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$RM conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf "%s\n" "$hard_links" >&6; }
if test no = "$hard_links"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
@@ -9154,8 +9533,8 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
allow_undefined_flag=
@@ -9710,21 +10089,23 @@
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -9739,7 +10120,7 @@
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -9763,21 +10144,23 @@
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -9792,7 +10175,7 @@
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -10043,11 +10426,12 @@
# Older versions of the 11.00 compiler do not understand -b yet
# (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+printf %s "checking if $CC understands -b... " >&6; }
+if test ${lt_cv_prog_compiler__b+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
@@ -10071,8 +10455,8 @@
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
if test yes = "$lt_cv_prog_compiler__b"; then
archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -10112,28 +10496,30 @@
# work, assume that -exports_file does not work either and
# implicitly export all symbols.
# This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test ${lt_cv_irix_exported_symbol+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo (void) { return 0; }
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_irix_exported_symbol=yes
-else
+else $as_nop
lt_cv_irix_exported_symbol=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
@@ -10413,8 +10799,8 @@
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf "%s\n" "$ld_shlibs" >&6; }
test no = "$ld_shlibs" && can_build_shared=no
with_gnu_ld=$with_gnu_ld
@@ -10450,18 +10836,19 @@
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+printf %s "checking whether -lc should be explicitly linked in... " >&6; }
+if test ${lt_cv_archive_cmds_need_lc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
$RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
@@ -10479,7 +10866,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
lt_cv_archive_cmds_need_lc=no
@@ -10493,8 +10880,8 @@
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
@@ -10653,8 +11040,8 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+printf %s "checking dynamic linker characteristics... " >&6; }
if test yes = "$GCC"; then
case $host_os in
@@ -11215,9 +11602,10 @@
shlibpath_overrides_runpath=no
# Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_shlibpath_overrides_runpath+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
@@ -11227,19 +11615,21 @@
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+if ac_fn_c_try_link "$LINENO"
+then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
+then :
lt_cv_shlibpath_overrides_runpath=yes
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
@@ -11474,8 +11864,8 @@
dynamic_linker=no
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf "%s\n" "$dynamic_linker" >&6; }
test no = "$dynamic_linker" && can_build_shared=no
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
@@ -11596,8 +11986,8 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
test -n "$runpath_var" ||
@@ -11621,8 +12011,8 @@
# directories.
hardcode_action=unsupported
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf "%s\n" "$hardcode_action" >&6; }
if test relink = "$hardcode_action" ||
test yes = "$inherit_rpath"; then
@@ -11666,11 +12056,12 @@
darwin*)
# if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11679,32 +12070,31 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
+else $as_nop
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
@@ -11724,14 +12114,16 @@
*)
ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
+if test "x$ac_cv_func_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+printf %s "checking for shl_load in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_shl_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11740,41 +12132,42 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char shl_load ();
int
-main ()
+main (void)
{
return shl_load ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_shl_load=yes
-else
+else $as_nop
ac_cv_lib_dld_shl_load=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else
+else $as_nop
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
+if test "x$ac_cv_func_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11783,37 +12176,37 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+printf %s "checking for dlopen in -lsvld... " >&6; }
+if test ${ac_cv_lib_svld_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11822,37 +12215,37 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_svld_dlopen=yes
-else
+else $as_nop
ac_cv_lib_svld_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+printf %s "checking for dld_link in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_dld_link+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11861,30 +12254,29 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dld_link ();
int
-main ()
+main (void)
{
return dld_link ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_dld_link=yes
-else
+else $as_nop
ac_cv_lib_dld_dld_link=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes
+then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
@@ -11923,11 +12315,12 @@
save_LIBS=$LIBS
LIBS="$lt_cv_dlopen_libs $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+printf %s "checking whether a program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
@@ -12006,7 +12399,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -12024,16 +12417,17 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf "%s\n" "$lt_cv_dlopen_self" >&6; }
if test yes = "$lt_cv_dlopen_self"; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self_static+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
@@ -12112,7 +12506,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -12130,8 +12524,8 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS=$save_CPPFLAGS
@@ -12169,13 +12563,13 @@
striplib=
old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
@@ -12183,16 +12577,16 @@
if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
fi
@@ -12209,13 +12603,13 @@
# Report what library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+printf %s "checking if libtool supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf "%s\n" "$can_build_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+printf %s "checking whether to build shared libraries... " >&6; }
test no = "$can_build_shared" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
@@ -12239,15 +12633,15 @@
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf "%s\n" "$enable_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test yes = "$enable_shared" || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf "%s\n" "$enable_static" >&6; }
@@ -12286,17 +12680,18 @@
# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
+else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
@@ -12325,15 +12720,16 @@
;;
esac
elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${lt_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
@@ -12362,18 +12758,19 @@
LD=$lt_cv_path_LD
if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
@@ -12384,8 +12781,8 @@
;;
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -12403,31 +12800,34 @@
-Wl,-z,relro \
-Wl,-z,now; do
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports flag $flag in envvar LDFLAGS" >&5
-$as_echo_n "checking if $CC supports flag $flag in envvar LDFLAGS... " >&6; }
-if { as_var=`$as_echo "cc_cv_LDFLAGS_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports flag $flag in envvar LDFLAGS" >&5
+printf %s "checking if $CC supports flag $flag in envvar LDFLAGS... " >&6; }
+if { as_var=`printf "%s\n" "cc_cv_LDFLAGS_$flag" | $as_tr_sh`; eval test \${$as_var+y}; }
+then :
+ printf %s "(cached) " >&6
+else $as_nop
eval "cc_save_LDFLAGS='${LDFLAGS}'"
eval "LDFLAGS='-Werror $flag'"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int a = 0; int main(void) { return a; }
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "`$as_echo "cc_cv_LDFLAGS_$flag" | $as_tr_sh`='yes'"
-else
- eval "`$as_echo "cc_cv_LDFLAGS_$flag" | $as_tr_sh`='no'"
+if ac_fn_c_try_link "$LINENO"
+then :
+ eval "`printf "%s\n" "cc_cv_LDFLAGS_$flag" | $as_tr_sh`='yes'"
+else $as_nop
+ eval "`printf "%s\n" "cc_cv_LDFLAGS_$flag" | $as_tr_sh`='no'"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
eval "LDFLAGS='$cc_save_LDFLAGS'"
fi
-eval ac_res=\$`$as_echo "cc_cv_LDFLAGS_$flag" | $as_tr_sh`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+eval ac_res=\$`printf "%s\n" "cc_cv_LDFLAGS_$flag" | $as_tr_sh`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
- if eval test x$`$as_echo "cc_cv_LDFLAGS_$flag" | $as_tr_sh` = xyes; then :
+ if eval test x$`printf "%s\n" "cc_cv_LDFLAGS_$flag" | $as_tr_sh` = xyes
+then :
eval "with_ldflags='${with_ldflags} $flag'"
fi
@@ -12448,11 +12848,12 @@
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for round in -lm" >&5
-$as_echo_n "checking for round in -lm... " >&6; }
-if ${ac_cv_lib_m_round+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for round in -lm" >&5
+printf %s "checking for round in -lm... " >&6; }
+if test ${ac_cv_lib_m_round+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lm $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -12461,33 +12862,30 @@
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char round ();
int
-main ()
+main (void)
{
return round ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_m_round=yes
-else
+else $as_nop
ac_cv_lib_m_round=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_round" >&5
-$as_echo "$ac_cv_lib_m_round" >&6; }
-if test "x$ac_cv_lib_m_round" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_round" >&5
+printf "%s\n" "$ac_cv_lib_m_round" >&6; }
+if test "x$ac_cv_lib_m_round" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBM 1" >>confdefs.h
LIBS="-lm $LIBS"
@@ -12505,11 +12903,12 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
@@ -12519,11 +12918,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -12535,11 +12938,11 @@
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -12548,11 +12951,12 @@
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
@@ -12562,11 +12966,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -12578,11 +12986,11 @@
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -12590,8 +12998,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
@@ -12603,30 +13011,30 @@
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
fi
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
-$as_echo_n "checking for CHECK... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
+printf %s "checking for CHECK... " >&6; }
if test -n "$CHECK_CFLAGS"; then
pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.9\""; } >&5
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.9\""; } >&5
($PKG_CONFIG --exists --print-errors "check >= 0.9.9") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.9" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -12640,10 +13048,10 @@
pkg_cv_CHECK_LIBS="$CHECK_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.9\""; } >&5
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.9\""; } >&5
($PKG_CONFIG --exists --print-errors "check >= 0.9.9") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.9" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -12657,8 +13065,8 @@
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -12675,24 +13083,25 @@
HAVE_CHECK="no"
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
HAVE_CHECK="no"
else
CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
CHECK_LIBS=$pkg_cv_CHECK_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_CHECK="yes"
fi
if test "x$HAVE_CHECK" = "xyes"; then
# Extract the first word of "valgrind", so it can be a program name with args.
set dummy valgrind; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_VALGRIND+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_VALGRIND+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $VALGRIND in
[\\/]* | ?:[\\/]*)
ac_cv_path_VALGRIND="$VALGRIND" # Let the user override the test with a path.
@@ -12702,11 +13111,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_VALGRIND="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_VALGRIND="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -12718,17 +13131,17 @@
fi
VALGRIND=$ac_cv_path_VALGRIND
if test -n "$VALGRIND"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5
-$as_echo "$VALGRIND" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5
+printf "%s\n" "$VALGRIND" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: check not found - skipping building unit tests" >&5
-$as_echo "$as_me: WARNING: check not found - skipping building unit tests" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: check not found - skipping building unit tests" >&5
+printf "%s\n" "$as_me: WARNING: check not found - skipping building unit tests" >&2;}
fi
if test "x$VALGRIND" != "x"; then
HAVE_VALGRIND_TRUE=
@@ -12773,31 +13186,34 @@
-fdiagnostics-show-option \
-fno-common; do
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports flag $flag in envvar CFLAGS" >&5
-$as_echo_n "checking if $CC supports flag $flag in envvar CFLAGS... " >&6; }
-if { as_var=`$as_echo "cc_cv_CFLAGS_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports flag $flag in envvar CFLAGS" >&5
+printf %s "checking if $CC supports flag $flag in envvar CFLAGS... " >&6; }
+if { as_var=`printf "%s\n" "cc_cv_CFLAGS_$flag" | $as_tr_sh`; eval test \${$as_var+y}; }
+then :
+ printf %s "(cached) " >&6
+else $as_nop
eval "cc_save_CFLAGS='${CFLAGS}'"
eval "CFLAGS='-Werror $flag'"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int a = 0; int main(void) { return a; }
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "`$as_echo "cc_cv_CFLAGS_$flag" | $as_tr_sh`='yes'"
-else
- eval "`$as_echo "cc_cv_CFLAGS_$flag" | $as_tr_sh`='no'"
+if ac_fn_c_try_link "$LINENO"
+then :
+ eval "`printf "%s\n" "cc_cv_CFLAGS_$flag" | $as_tr_sh`='yes'"
+else $as_nop
+ eval "`printf "%s\n" "cc_cv_CFLAGS_$flag" | $as_tr_sh`='no'"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
eval "CFLAGS='$cc_save_CFLAGS'"
fi
-eval ac_res=\$`$as_echo "cc_cv_CFLAGS_$flag" | $as_tr_sh`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+eval ac_res=\$`printf "%s\n" "cc_cv_CFLAGS_$flag" | $as_tr_sh`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
- if eval test x$`$as_echo "cc_cv_CFLAGS_$flag" | $as_tr_sh` = xyes; then :
+ if eval test x$`printf "%s\n" "cc_cv_CFLAGS_$flag" | $as_tr_sh` = xyes
+then :
eval "with_cflags='${with_cflags} $flag'"
fi
@@ -12809,11 +13225,12 @@
# Extract the first word of "doxygen", so it can be a program name with args.
set dummy doxygen; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DOXYGEN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_DOXYGEN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $DOXYGEN in
[\\/]* | ?:[\\/]*)
ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
@@ -12823,11 +13240,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_DOXYGEN="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -12839,17 +13260,17 @@
fi
DOXYGEN=$ac_cv_path_DOXYGEN
if test -n "$DOXYGEN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
-$as_echo "$DOXYGEN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+printf "%s\n" "$DOXYGEN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$DOXYGEN" = "x"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - required for documentation" >&5
-$as_echo "$as_me: WARNING: doxygen not found - required for documentation" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - required for documentation" >&5
+printf "%s\n" "$as_me: WARNING: doxygen not found - required for documentation" >&2;}
have_doxygen="no"
else
have_doxygen="yes"
@@ -12863,16 +13284,18 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with gcov" >&5
-$as_echo_n "checking whether to build with gcov... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with gcov" >&5
+printf %s "checking whether to build with gcov... " >&6; }
# Check whether --enable-gcov was given.
-if test "${enable_gcov+set}" = set; then :
+if test ${enable_gcov+y}
+then :
enableval=$enable_gcov;
-else
+else $as_nop
enable_gcov=no
fi
-if test "x$enable_gcov" != "xno"; then :
+if test "x$enable_gcov" != "xno"
+then :
GCOV_CFLAGS="-fprofile-arcs -ftest-coverage"
GCOV_LDFLAGS="-lgcov"
@@ -12889,40 +13312,42 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gcov" >&5
-$as_echo "$enable_gcov" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_gcov" >&5
+printf "%s\n" "$enable_gcov" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with coverity support" >&5
-$as_echo_n "checking whether to build with coverity support... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with coverity support" >&5
+printf %s "checking whether to build with coverity support... " >&6; }
# Check whether --enable-coverity was given.
-if test "${enable_coverity+set}" = set; then :
+if test ${enable_coverity+y}
+then :
enableval=$enable_coverity;
-else
+else $as_nop
enable_coverity=no
fi
-if test "x$enable_coverity" != "xno"; then :
+if test "x$enable_coverity" != "xno"
+then :
-$as_echo "#define _Float128 __uint128_t" >>confdefs.h
+printf "%s\n" "#define _Float128 __uint128_t" >>confdefs.h
-$as_echo "#define _Float32 int" >>confdefs.h
+printf "%s\n" "#define _Float32 int" >>confdefs.h
-$as_echo "#define _Float32x int" >>confdefs.h
+printf "%s\n" "#define _Float32x int" >>confdefs.h
-$as_echo "#define _Float64 long" >>confdefs.h
+printf "%s\n" "#define _Float64 long" >>confdefs.h
-$as_echo "#define _Float64x long" >>confdefs.h
+printf "%s\n" "#define _Float64x long" >>confdefs.h
enable_coverity=yes
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_coverity" >&5
-$as_echo "$enable_coverity" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_coverity" >&5
+printf "%s\n" "$enable_coverity" >&6; }
@@ -12933,8 +13358,8 @@
if test -n "$PYTHON"; then
# If the user set $PYTHON, use it and don't search something else.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.6" >&5
-$as_echo_n "checking whether $PYTHON version is >= 2.6... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.6" >&5
+printf %s "checking whether $PYTHON version is >= 2.6... " >&6; }
prog="import sys
# split strings by '.' and convert to numeric. Append some zeros
# because we need at least 4 digits for the hex conversion.
@@ -12948,23 +13373,25 @@
($PYTHON -c "$prog") >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ (exit $ac_status); }
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "Python interpreter is too old" "$LINENO" 5
fi
am_display_PYTHON=$PYTHON
else
# Otherwise, try each interpreter until we find one that satisfies
# VERSION.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.6" >&5
-$as_echo_n "checking for a Python interpreter with version >= 2.6... " >&6; }
-if ${am_cv_pathless_PYTHON+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.6" >&5
+printf %s "checking for a Python interpreter with version >= 2.6... " >&6; }
+if test ${am_cv_pathless_PYTHON+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for am_cv_pathless_PYTHON in python python2 python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
test "$am_cv_pathless_PYTHON" = none && break
@@ -12981,24 +13408,26 @@
($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then :
+ (exit $ac_status); }
+then :
break
fi
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
-$as_echo "$am_cv_pathless_PYTHON" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
+printf "%s\n" "$am_cv_pathless_PYTHON" >&6; }
# Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
if test "$am_cv_pathless_PYTHON" = none; then
PYTHON=:
else
# Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
set dummy $am_cv_pathless_PYTHON; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHON+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PYTHON+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PYTHON in
[\\/]* | ?:[\\/]*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
@@ -13008,11 +13437,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -13024,11 +13457,11 @@
fi
PYTHON=$ac_cv_path_PYTHON
if test -n "$PYTHON"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+printf "%s\n" "$PYTHON" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -13038,42 +13471,172 @@
if test "$PYTHON" = :; then
- as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
+ as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if ${am_cv_python_version+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+printf %s "checking for $am_display_PYTHON version... " >&6; }
+if test ${am_cv_python_version+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[:2])"`
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
-$as_echo "$am_cv_python_version" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+printf "%s\n" "$am_cv_python_version" >&6; }
PYTHON_VERSION=$am_cv_python_version
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+printf %s "checking for $am_display_PYTHON platform... " >&6; }
+if test ${am_cv_python_platform+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+printf "%s\n" "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
- PYTHON_PREFIX='${prefix}'
- PYTHON_EXEC_PREFIX='${exec_prefix}'
+ if test "x$prefix" = xNONE; then
+ am__usable_prefix=$ac_default_prefix
+ else
+ am__usable_prefix=$prefix
+ fi
+ # Allow user to request using sys.* values from Python,
+ # instead of the GNU $prefix values.
+# Check whether --with-python-sys-prefix was given.
+if test ${with_python_sys_prefix+y}
+then :
+ withval=$with_python_sys_prefix; am_use_python_sys=:
+else $as_nop
+ am_use_python_sys=false
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if ${am_cv_python_platform+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+
+ # Allow user to override whatever the default Python prefix is.
+
+# Check whether --with-python_prefix was given.
+if test ${with_python_prefix+y}
+then :
+ withval=$with_python_prefix; am_python_prefix_subst=$withval
+ am_cv_python_prefix=$withval
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for explicit $am_display_PYTHON prefix" >&5
+printf %s "checking for explicit $am_display_PYTHON prefix... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_prefix" >&5
+printf "%s\n" "$am_cv_python_prefix" >&6; }
+else $as_nop
+
+ if $am_use_python_sys; then
+ # using python sys.prefix value, not GNU
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python default $am_display_PYTHON prefix" >&5
+printf %s "checking for python default $am_display_PYTHON prefix... " >&6; }
+if test ${am_cv_python_prefix+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_prefix" >&5
+printf "%s\n" "$am_cv_python_prefix" >&6; }
+
+ case $am_cv_python_prefix in
+ $am__usable_prefix*)
+ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
+ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
+ ;;
+ *)
+ am_python_prefix_subst=$am_cv_python_prefix
+ ;;
+ esac
+ else # using GNU prefix value, not python sys.prefix
+ am_python_prefix_subst='${prefix}'
+ am_python_prefix=$am_python_prefix_subst
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU default $am_display_PYTHON prefix" >&5
+printf %s "checking for GNU default $am_display_PYTHON prefix... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_python_prefix" >&5
+printf "%s\n" "$am_python_prefix" >&6; }
+ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
-$as_echo "$am_cv_python_platform" >&6; }
- PYTHON_PLATFORM=$am_cv_python_platform
+ # Substituting python_prefix_subst value.
+ PYTHON_PREFIX=$am_python_prefix_subst
+
+
+ # emacs-page Now do it all over again for Python exec_prefix, but with yet
+ # another conditional: fall back to regular prefix if that was specified.
- # Just factor out some code duplication.
+# Check whether --with-python_exec_prefix was given.
+if test ${with_python_exec_prefix+y}
+then :
+ withval=$with_python_exec_prefix; am_python_exec_prefix_subst=$withval
+ am_cv_python_exec_prefix=$withval
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for explicit $am_display_PYTHON exec_prefix" >&5
+printf %s "checking for explicit $am_display_PYTHON exec_prefix... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_exec_prefix" >&5
+printf "%s\n" "$am_cv_python_exec_prefix" >&6; }
+else $as_nop
+
+ # no explicit --with-python_exec_prefix, but if
+ # --with-python_prefix was given, use its value for python_exec_prefix too.
+ if test -n "$with_python_prefix"
+then :
+ am_python_exec_prefix_subst=$with_python_prefix
+ am_cv_python_exec_prefix=$with_python_prefix
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python_prefix-given $am_display_PYTHON exec_prefix" >&5
+printf %s "checking for python_prefix-given $am_display_PYTHON exec_prefix... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_exec_prefix" >&5
+printf "%s\n" "$am_cv_python_exec_prefix" >&6; }
+else $as_nop
+
+ # Set am__usable_exec_prefix whether using GNU or Python values,
+ # since we use that variable for pyexecdir.
+ if test "x$exec_prefix" = xNONE; then
+ am__usable_exec_prefix=$am__usable_prefix
+ else
+ am__usable_exec_prefix=$exec_prefix
+ fi
+ #
+ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python default $am_display_PYTHON exec_prefix" >&5
+printf %s "checking for python default $am_display_PYTHON exec_prefix... " >&6; }
+if test ${am_cv_python_exec_prefix+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_exec_prefix" >&5
+printf "%s\n" "$am_cv_python_exec_prefix" >&6; }
+ case $am_cv_python_exec_prefix in
+ $am__usable_exec_prefix*)
+ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
+ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
+ ;;
+ *)
+ am_python_exec_prefix_subst=$am_cv_python_exec_prefix
+ ;;
+ esac
+ else # using GNU $exec_prefix, not python sys.exec_prefix
+ am_python_exec_prefix_subst='${exec_prefix}'
+ am_python_exec_prefix=$am_python_exec_prefix_subst
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU default $am_display_PYTHON exec_prefix" >&5
+printf %s "checking for GNU default $am_display_PYTHON exec_prefix... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_python_exec_prefix" >&5
+printf "%s\n" "$am_python_exec_prefix" >&6; }
+ fi
+fi
+fi
+
+ # Substituting python_exec_prefix_subst.
+ PYTHON_EXEC_PREFIX=$am_python_exec_prefix_subst
+
+
+ # Factor out some code duplication into this shell variable.
am_python_setup_sysconfig="\
import sys
# Prefer sysconfig over distutils.sysconfig, for better compatibility
@@ -13094,107 +13657,105 @@
pass"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if ${am_cv_python_pythondir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$prefix" = xNONE
- then
- am_py_prefix=$ac_default_prefix
- else
- am_py_prefix=$prefix
- fi
- am_cv_python_pythondir=`$PYTHON -c "
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory (pythondir)" >&5
+printf %s "checking for $am_display_PYTHON script directory (pythondir)... " >&6; }
+if test ${am_cv_python_pythondir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "x$am_cv_python_prefix" = x; then
+ am_py_prefix=$am__usable_prefix
+ else
+ am_py_prefix=$am_cv_python_prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pythondir in
- $am_py_prefix*)
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
- ;;
- *)
- case $am_py_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
+ ;;
+ esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
-$as_echo "$am_cv_python_pythondir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+printf "%s\n" "$am_cv_python_pythondir" >&6; }
pythondir=$am_cv_python_pythondir
+ pkgpythondir=\${pythondir}/$PACKAGE
- pkgpythondir=\${pythondir}/$PACKAGE
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if ${am_cv_python_pyexecdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$exec_prefix" = xNONE
- then
- am_py_exec_prefix=$am_py_prefix
- else
- am_py_exec_prefix=$exec_prefix
- fi
- am_cv_python_pyexecdir=`$PYTHON -c "
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory (pyexecdir)" >&5
+printf %s "checking for $am_display_PYTHON extension module directory (pyexecdir)... " >&6; }
+if test ${am_cv_python_pyexecdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "x$am_cv_python_exec_prefix" = x; then
+ am_py_exec_prefix=$am__usable_exec_prefix
+ else
+ am_py_exec_prefix=$am_cv_python_exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pyexecdir in
- $am_py_exec_prefix*)
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
- ;;
- *)
- case $am_py_exec_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
+ ;;
+ esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
-$as_echo "$am_cv_python_pyexecdir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+printf "%s\n" "$am_cv_python_pyexecdir" >&6; }
pyexecdir=$am_cv_python_pyexecdir
-
- pkgpyexecdir=\${pyexecdir}/$PACKAGE
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
fi
-
# nm to check for leaking symbols in the static library
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_NM+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $NM in
[\\/]* | ?:[\\/]*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
@@ -13204,11 +13765,15 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_NM="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_NM="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -13220,11 +13785,11 @@
fi
NM=$ac_cv_path_NM
if test -n "$NM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
-$as_echo "$NM" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+printf "%s\n" "$NM" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -13240,8 +13805,8 @@
static_symbol_leaks_test="no - static build disabled"
else
if test "x$NM" = "x"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: nm not found - skipping symbol leak test" >&5
-$as_echo "$as_me: WARNING: nm not found - skipping symbol leak test" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: nm not found - skipping symbol leak test" >&5
+printf "%s\n" "$as_me: WARNING: nm not found - skipping symbol leak test" >&2;}
have_nm="no"
static_symbol_leaks_test="no - nm not found"
else
@@ -13288,8 +13853,8 @@
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -13319,15 +13884,15 @@
/^ac_cv_env_/b end
t clear
:clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
@@ -13341,8 +13906,8 @@
fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
@@ -13359,7 +13924,7 @@
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -13370,14 +13935,14 @@
LTLIBOBJS=$ac_ltlibobjs
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+printf %s "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
+printf "%s\n" "done" >&6; }
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -13427,8 +13992,8 @@
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
@@ -13451,14 +14016,16 @@
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -13468,46 +14035,46 @@
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -13516,13 +14083,6 @@
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -13531,8 +14091,12 @@
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -13544,30 +14108,10 @@
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -13580,13 +14124,14 @@
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -13613,18 +14158,20 @@
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
+
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -13636,12 +14183,13 @@
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
@@ -13672,7 +14220,7 @@
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -13694,6 +14242,10 @@
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -13707,6 +14259,12 @@
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -13748,7 +14306,7 @@
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -13757,7 +14315,7 @@
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -13819,8 +14377,8 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libevdev $as_me 1.10.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by libevdev $as_me 1.12.1, which was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -13883,14 +14441,16 @@
libevdev home page: <http://freedesktop.org/wiki/Software/libevdev/>."
_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libevdev config.status 1.10.0
-configured by $0, generated by GNU Autoconf 2.69,
+libevdev config.status 1.12.1
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -13930,15 +14490,15 @@
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
+ printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
+ printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -13946,7 +14506,7 @@
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
@@ -13955,7 +14515,7 @@
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
+ printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
@@ -13983,7 +14543,7 @@
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
@@ -13997,7 +14557,7 @@
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
- $as_echo "$ac_log"
+ printf "%s\n" "$ac_log"
} >&5
_ACEOF
@@ -14320,9 +14880,9 @@
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+ test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+ test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+ test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -14658,7 +15218,7 @@
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
@@ -14666,17 +15226,17 @@
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
+ ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
@@ -14693,7 +15253,7 @@
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -14717,9 +15277,9 @@
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -14781,8 +15341,8 @@
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
@@ -14826,9 +15386,9 @@
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -14844,20 +15404,20 @@
#
if test x"$ac_file" != x-; then
{
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
@@ -14877,7 +15437,7 @@
X"$_am_arg" : 'X\(//\)[^/]' \| \
X"$_am_arg" : 'X\(//\)$' \| \
X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
+printf "%s\n" X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -14897,8 +15457,8 @@
s/.*/./; q'`/stamp-h$_am_stamp_count
;;
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
+ :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
@@ -14924,7 +15484,7 @@
for am_mf
do
# Strip MF so we end up with the name of the file.
- am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ am_mf=`printf "%s\n" "$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
@@ -14936,7 +15496,7 @@
X"$am_mf" : 'X\(//\)[^/]' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$am_mf" |
+printf "%s\n" X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -14958,7 +15518,7 @@
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$am_mf" |
+printf "%s\n" X/"$am_mf" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -14983,8 +15543,8 @@
(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;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE=\"gmake\" (or whatever is
@@ -15528,6 +16088,7 @@
esac
+
ltmain=$ac_aux_dir/ltmain.sh
@@ -15577,12 +16138,12 @@
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:
Prefix ${prefix}
Libdir ${libdir}
@@ -15592,7 +16153,7 @@
Enable coverity support ${enable_coverity}
Static library symbol check ${static_symbol_leaks_test}
" >&5
-$as_echo "
+printf "%s\n" "
Prefix ${prefix}
Libdir ${libdir}
@@ -15602,3 +16163,4 @@
Enable coverity support ${enable_coverity}
Static library symbol check ${static_symbol_leaks_test}
" >&6; }
+
diff -Naur third-party-libevdev-bak/configure.ac third-party-new/configure.ac
--- third-party-libevdev-bak/configure.ac 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/configure.ac 2023-04-03 14:16:07.460147800 +0800
@@ -1,28 +1,13 @@
-# Copyright © 2013 Red Hat, Inc.
+# SPDX-License-Identifier: MIT
#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that copyright
-# notice and this permission notice appear in supporting documentation, and
-# that the name of the copyright holders not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. The copyright holders make no representations
-# about the suitability of this software for any purpose. It is provided "as
-# is" without express or implied warranty.
+# Copyright © 2013 Red Hat, Inc.
#
-# THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-# OF THIS SOFTWARE.
AC_PREREQ([2.62])
# change meson version too
AC_INIT([libevdev],
- [1.10.0],
+ [1.12.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev],
[libevdev],
[http://freedesktop.org/wiki/Software/libevdev/])
diff -Naur third-party-libevdev-bak/doc/Makefile.in third-party-new/doc/Makefile.in
--- third-party-libevdev-bak/doc/Makefile.in 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/doc/Makefile.in 2023-04-03 10:53:26.909078800 +0800
@@ -0,0 +1,586 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = libevdev.doxygen libevdev.man
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man3dir = $(mandir)/man3
+am__installdirs = "$(DESTDIR)$(man3dir)"
+NROFF = nroff
+MANS = $(man3_MANS)
+DATA = $(noinst_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libevdev.doxygen.in \
+ $(srcdir)/libevdev.man.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_CFLAGS = @GCC_CFLAGS@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LDFLAGS = @GCOV_LDFLAGS@
+GNU_LD_FLAGS = @GNU_LD_FLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBEVDEV_LT_VERSION = @LIBEVDEV_LT_VERSION@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VALGRIND = @VALGRIND@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man3_MANS = libevdev.man
+@HAVE_DOXYGEN_TRUE@noinst_DATA = html/index.html
+@HAVE_DOXYGEN_TRUE@header_files = \
+@HAVE_DOXYGEN_TRUE@ $(top_srcdir)/libevdev/libevdev.h \
+@HAVE_DOXYGEN_TRUE@ $(top_srcdir)/libevdev/libevdev-uinput.h
+
+@HAVE_DOXYGEN_TRUE@doc_src = $(shell find html -type f -printf "html/%P\n" 2>/dev/null)
+@HAVE_DOXYGEN_TRUE@style_src = \
+@HAVE_DOXYGEN_TRUE@ style/bootstrap.css \
+@HAVE_DOXYGEN_TRUE@ style/customdoxygen.css \
+@HAVE_DOXYGEN_TRUE@ style/doxy-boot.js \
+@HAVE_DOXYGEN_TRUE@ style/dynsections.js \
+@HAVE_DOXYGEN_TRUE@ style/footer.html \
+@HAVE_DOXYGEN_TRUE@ style/header.html \
+@HAVE_DOXYGEN_TRUE@ style/layout.xml \
+@HAVE_DOXYGEN_TRUE@ style/libevdevdoxygen.css \
+@HAVE_DOXYGEN_TRUE@ style/LICENSE \
+@HAVE_DOXYGEN_TRUE@ style/README.md \
+@HAVE_DOXYGEN_TRUE@ style/style.css
+
+@HAVE_DOXYGEN_TRUE@EXTRA_DIST = html/index.html $(doc_src) $(style_src)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign doc/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ 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)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+libevdev.doxygen: $(top_builddir)/config.status $(srcdir)/libevdev.doxygen.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+libevdev.man: $(top_builddir)/config.status $(srcdir)/libevdev.man.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man3: $(man3_MANS)
+ @$(NORMAL_INSTALL)
+ @list1='$(man3_MANS)'; \
+ list2=''; \
+ test -n "$(man3dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.3[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man3:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man3_MANS)'; test -n "$(man3dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+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)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(man3dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+@HAVE_DOXYGEN_FALSE@clean-local:
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man3
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man3
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ clean-local cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-man3 install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-man uninstall-man3
+
+.PRECIOUS: Makefile
+
+
+@HAVE_DOXYGEN_TRUE@html/index.html: libevdev.doxygen style/libevdevdoxygen.css $(header_files)
+@HAVE_DOXYGEN_TRUE@ $(AM_V_GEN)$(DOXYGEN) $<
+
+@HAVE_DOXYGEN_TRUE@clean-local:
+@HAVE_DOXYGEN_TRUE@ $(AM_V_at)rm -rf html
+
+# make sure doc was built before running dist
+dist-hook:
+ @test -f $(distdir)/html/index.html || (\
+ echo "******************************************************" && \
+ echo "Couldn't find documentation files, refusing make dist." && \
+ echo "Install doxygen to build documentation for tarball." && \
+ echo "******************************************************" && \
+ test )
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -Naur third-party-libevdev-bak/doc/html/backwardscompatibility.html third-party-new/doc/html/backwardscompatibility.html
--- third-party-libevdev-bak/doc/html/backwardscompatibility.html 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/doc/html/backwardscompatibility.html 2023-04-01 15:52:50.960090700 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Compatibility and Behavior across kernel versions</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -102,7 +102,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/deprecated.html third-party-new/doc/html/deprecated.html
--- third-party-libevdev-bak/doc/html/deprecated.html 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/doc/html/deprecated.html 2023-04-01 15:53:28.368499700 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Deprecated List</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -73,12 +73,12 @@
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
+<dt>Global <a class="el" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a> (void)</dt>
+<dd><a class="anchor" id="_deprecated000003"></a>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd>
<dt>Global <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a> (libevdev_log_func_t logfunc, void *data)</dt>
<dd><a class="anchor" id="_deprecated000001"></a>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd>
<dt>Global <a class="el" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a> (enum libevdev_log_priority priority)</dt>
-<dd><a class="anchor" id="_deprecated000002"></a>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd>
-<dt>Global <a class="el" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a> (void)</dt>
-<dd><a class="anchor" id="_deprecated000003"></a>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd>
+<dd><a class="anchor" id="_deprecated000002"></a>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd>
</dl>
</div></div><!-- contents -->
</div><!-- PageDoc -->
@@ -92,7 +92,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html third-party-new/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html
--- third-party-libevdev-bak/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html 2023-04-01 15:53:39.853670200 +0800
@@ -6,9 +6,9 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
- <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.uQTRHZxVc0/libevdev Directory Reference</title>
+ <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.eXgVwUduJp/libevdev Directory Reference</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -95,7 +95,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/doxygen.css third-party-new/doc/html/doxygen.css
--- third-party-libevdev-bak/doc/html/doxygen.css 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/doc/html/doxygen.css 2023-04-01 15:54:04.290717000 +0800
@@ -1,4 +1,4 @@
-/* The standard CSS for doxygen 1.8.20 */
+/* The standard CSS for doxygen 1.9.1 */
body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif;
@@ -103,30 +103,96 @@
}
span.legend {
- font-size: 70%;
- text-align: center;
+ font-size: 70%;
+ text-align: center;
}
h3.version {
- font-size: 90%;
- text-align: center;
+ font-size: 90%;
+ text-align: center;
}
-div.qindex, div.navtab{
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
+div.navtab {
+ border-right: 1px solid #A3B4D7;
+ padding-right: 15px;
+ text-align: right;
+ line-height: 110%;
+}
+
+div.navtab table {
+ border-spacing: 0;
+}
+
+td.navtab {
+ padding-right: 6px;
+ padding-left: 6px;
+}
+td.navtabHL {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ padding-right: 6px;
+ padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+ font-weight: bold;
}
-div.qindex, div.navpath {
+div.qindex{
+ text-align: center;
width: 100%;
line-height: 140%;
+ font-size: 130%;
+ color: #A0A0A0;
}
-div.navtab {
- margin-right: 15px;
+dt.alphachar{
+ font-size: 180%;
+ font-weight: bold;
+}
+
+.alphachar a{
+ color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+ text-decoration: none;
}
+.classindex dl {
+ padding: 25px;
+ column-count:1
+}
+
+.classindex dd {
+ display:inline-block;
+ margin-left: 50px;
+ width: 90%;
+ line-height: 1.15em;
+}
+
+.classindex dl.odd {
+ background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+ .classindex dl {
+ column-count:2
+ }
+}
+
+@media(min-width: 1320px) {
+ .classindex dl {
+ column-count:3
+ }
+}
+
+
/* @group Link Styling */
a {
@@ -143,17 +209,6 @@
text-decoration: underline;
}
-a.qindex {
- font-weight: bold;
-}
-
-a.qindexHL {
- font-weight: bold;
- background-color: #9CAFD4;
- color: #FFFFFF;
- border: 1px double #869DCA;
-}
-
.contents a.qindexHL:visited {
color: #FFFFFF;
}
@@ -1426,6 +1481,12 @@
margin-left: 45px;
}
+span.emoji {
+ /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+ * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+ */
+}
+
.PageDocRTL-title div.toc li.level1 {
margin-left: 0 !important;
margin-right: 0;
diff -Naur third-party-libevdev-bak/doc/html/files.html third-party-new/doc/html/files.html
--- third-party-libevdev-bak/doc/html/files.html 2023-03-28 10:49:53.372511500 +0800
+++ third-party-new/doc/html/files.html 2023-04-01 15:54:29.612789500 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: File List</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -90,7 +90,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals.html third-party-new/doc/html/globals.html
--- third-party-libevdev-bak/doc/html/globals.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals.html 2023-04-01 15:54:54.760637400 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -416,7 +416,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals_defs.html third-party-new/doc/html/globals_defs.html
--- third-party-libevdev-bak/doc/html/globals_defs.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals_defs.html 2023-04-01 15:55:04.052239300 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -87,7 +87,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals_enum.html third-party-new/doc/html/globals_enum.html
--- third-party-libevdev-bak/doc/html/globals_enum.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals_enum.html 2023-04-01 15:55:13.962503800 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -99,7 +99,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals_eval.html third-party-new/doc/html/globals_eval.html
--- third-party-libevdev-bak/doc/html/globals_eval.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals_eval.html 2023-04-01 15:55:22.112416100 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -123,7 +123,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals_func.html third-party-new/doc/html/globals_func.html
--- third-party-libevdev-bak/doc/html/globals_func.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals_func.html 2023-04-01 15:58:47.652290800 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -344,7 +344,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/globals_type.html third-party-new/doc/html/globals_type.html
--- third-party-libevdev-bak/doc/html/globals_type.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/globals_type.html 2023-04-01 15:59:25.040970100 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Globals</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -87,7 +87,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__bits.html third-party-new/doc/html/group__bits.html
--- third-party-libevdev-bak/doc/html/group__bits.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__bits.html 2023-04-01 15:59:37.771463600 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Querying device capabilities</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -179,6 +179,9 @@
<p>This is a shortcut for</p>
<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a>(dev, t) &amp;&amp; <a class="code" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a>(dev, t, c))</div>
<div class="line"> val = <a class="code" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a>(dev, t, c);</div>
+<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
+<div class="ttc" id="agroup__bits_html_ga6259f4c6bdba950329ff9cd48c2ef8a3"><div class="ttname"><a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a></div><div class="ttdeci">int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Behaviour of this function is undefined if the device does not provide the event.</div></div>
+<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr>
@@ -489,7 +492,7 @@
</div><div class="memdoc">
<p>Behaviour of this function is undefined if the device does not provide the event. </p>
-<p>If the device supports ABS_MT_SLOT, the value returned for any ABS_MT_* event code is the value of the currently active slot. You should use <a class="el" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8" title="Return the current value of the code for the given slot.">libevdev_get_slot_value()</a> instead.</p>
+<p>If the device supports ABS_MT_SLOT, the value returned for any ABS_MT_* event code is undefined. Use <a class="el" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8" title="Return the current value of the code for the given slot.">libevdev_get_slot_value()</a> instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr>
@@ -865,9 +868,6 @@
</div>
</div>
</div><!-- contents -->
-<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__bits_html_ga6259f4c6bdba950329ff9cd48c2ef8a3"><div class="ttname"><a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a></div><div class="ttdeci">int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Behaviour of this function is undefined if the device does not provide the event.</div></div>
-<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -878,7 +878,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__events.html third-party-new/doc/html/group__events.html
--- third-party-libevdev-bak/doc/html/group__events.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__events.html 2023-04-01 15:59:49.270095000 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Event handling</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -81,14 +81,14 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
-<tr class="memitem:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> { <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a>
+<tr class="memitem:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> { <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a>
}</td></tr>
<tr class="separator:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> { <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a>,
-<a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a>
+<tr class="memitem:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> { <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a>
+, <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a>
}</td></tr>
<tr class="separator:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -263,7 +263,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__init.html third-party-new/doc/html/group__init.html
--- third-party-libevdev-bak/doc/html/group__init.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__init.html 2023-04-01 16:00:25.613680900 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Initialization and setup</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -81,8 +81,8 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
-<tr class="memitem:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> { <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a>,
-<a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a>
+<tr class="memitem:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> { <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a>
+, <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a>
}</td></tr>
<tr class="separator:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -120,10 +120,13 @@
<div class="line"> <span class="keywordflow">return</span> ENOMEM;</div>
<div class="line"> </div>
<div class="line">err = <a class="code" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a>(dev, fd);</div>
-<div class="line"><span class="keywordflow">if</span> (err &lt; 0) {</div>
+<div class="line"><span class="keywordflow">if</span> (err &lt; 0)</div>
<div class="line"> printf(<span class="stringliteral">&quot;Failed (errno %d): %s\n&quot;</span>, -err, strerror(-err));</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a>(dev);</div>
+<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
+<div class="ttc" id="agroup__init_html_ga6658ac490d68c307ff8b8d1536c12b44"><div class="ttname"><a href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a></div><div class="ttdeci">int libevdev_set_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Set the fd for this struct and initialize internal data.</div></div>
+<div class="ttc" id="agroup__init_html_gacd9fe760d15be25fc99ce469034bd78c"><div class="ttname"><a href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a></div><div class="ttdeci">void libevdev_free(struct libevdev *dev)</div><div class="ttdoc">Clean up and free the libevdev struct.</div></div>
</div><!-- fragment --><p><a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> is the central call and initializes the internal structs for the device at the given fd. libevdev functions will fail if called before <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> unless documented otherwise. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa282ec9badaa6bc11b1dc5bb124dbd5b"></a>
@@ -181,6 +184,11 @@
<div class="line"><a class="code" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a>(dev, <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a>, &amp;ev);</div>
<div class="line"><span class="keywordflow">while</span> (<a class="code" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a>(dev, <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a>, &amp;ev) == <a class="code" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a>)</div>
<div class="line"> ; <span class="comment">// noop</span></div>
+<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
+<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1090</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:761</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_FORCE_SYNC</div><div class="ttdoc">Pretend the next event is a SYN_DROPPED and require the caller to sync.</div><div class="ttdef"><b>Definition:</b> libevdev.h:763</div></div>
+<div class="ttc" id="agroup__init_html_gac71c9cca4c572ed1b1a8c233be70a17c"><div class="ttname"><a href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a></div><div class="ttdeci">int libevdev_change_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Change the fd for this device, without re-reading the actual device.</div></div>
</div><!-- fragment --><p>The fd may be open in O_RDONLY or O_RDWR.</p>
<p>After changing the fd, the device is assumed ungrabbed and a caller must call <a class="el" href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f" title="Grab or ungrab the device through a kernel EVIOCGRAB.">libevdev_grab()</a> again.</p>
<p>It is an error to call this function before calling <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a>.</p>
@@ -409,14 +417,6 @@
</div>
</div>
</div><!-- contents -->
-<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
-<div class="ttc" id="agroup__init_html_ga6658ac490d68c307ff8b8d1536c12b44"><div class="ttname"><a href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a></div><div class="ttdeci">int libevdev_set_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Set the fd for this struct and initialize internal data.</div></div>
-<div class="ttc" id="agroup__init_html_gacd9fe760d15be25fc99ce469034bd78c"><div class="ttname"><a href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a></div><div class="ttdeci">void libevdev_free(struct libevdev *dev)</div><div class="ttdoc">Clean up and free the libevdev struct.</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_FORCE_SYNC</div><div class="ttdoc">Pretend the next event is a SYN_DROPPED and require the caller to sync.</div><div class="ttdef"><b>Definition:</b> libevdev.h:760</div></div>
-<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1087</div></div>
-<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
-<div class="ttc" id="agroup__init_html_gac71c9cca4c572ed1b1a8c233be70a17c"><div class="ttname"><a href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a></div><div class="ttdeci">int libevdev_change_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Change the fd for this device, without re-reading the actual device.</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:758</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -427,7 +427,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__kernel.html third-party-new/doc/html/group__kernel.html
--- third-party-libevdev-bak/doc/html/group__kernel.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__kernel.html 2023-04-01 16:00:37.939522800 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Modifying the appearance or capabilities of the device</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -81,8 +81,8 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
-<tr class="memitem:ga8cddf7779debef0067665671e911ec41"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> { <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a>,
-<a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a>
+<tr class="memitem:ga8cddf7779debef0067665671e911ec41"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> { <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a>
+, <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a>
}</td></tr>
<tr class="separator:ga8cddf7779debef0067665671e911ec41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -583,6 +583,9 @@
<div class="fragment"><div class="line"><a class="code" href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a>(dev, LED_NUML, <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a>,</div>
<div class="line"> LED_CAPSL, <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a>,</div>
<div class="line"> -1);</div>
+<div class="ttc" id="agroup__kernel_html_ga93a19fa6e5be57903aff7c4a60af2a00"><div class="ttname"><a href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a></div><div class="ttdeci">int libevdev_kernel_set_led_values(struct libevdev *dev,...)</div><div class="ttdoc">Turn multiple LEDs on or off simultaneously.</div></div>
+<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a></div><div class="ttdeci">@ LIBEVDEV_LED_OFF</div><div class="ttdoc">Turn the LED off.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1921</div></div>
+<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a></div><div class="ttdeci">@ LIBEVDEV_LED_ON</div><div class="ttdoc">Turn the LED on.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1920</div></div>
</div><!-- fragment --><p>If any LED code or value is invalid, this function returns -EINVAL and no LEDs are modified.</p>
<dl class="section note"><dt>Note</dt><dd>enabling an LED requires write permissions on the device's file descriptor.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
@@ -1309,9 +1312,6 @@
</div>
</div>
</div><!-- contents -->
-<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a></div><div class="ttdeci">@ LIBEVDEV_LED_OFF</div><div class="ttdoc">Turn the LED off.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1919</div></div>
-<div class="ttc" id="agroup__kernel_html_ga93a19fa6e5be57903aff7c4a60af2a00"><div class="ttname"><a href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a></div><div class="ttdeci">int libevdev_kernel_set_led_values(struct libevdev *dev,...)</div><div class="ttdoc">Turn multiple LEDs on or off simultaneously.</div></div>
-<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a></div><div class="ttdeci">@ LIBEVDEV_LED_ON</div><div class="ttdoc">Turn the LED on.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1918</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -1322,7 +1322,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__logging.html third-party-new/doc/html/group__logging.html
--- third-party-libevdev-bak/doc/html/group__logging.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__logging.html 2023-04-01 16:00:49.150108500 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Library logging facilities</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -91,9 +91,9 @@
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
-<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a>,
-<a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a>,
-<a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a>
+<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a>
+, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a>
+, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a>
}</td></tr>
<tr class="separator:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -364,7 +364,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__misc.html third-party-new/doc/html/group__misc.html
--- third-party-libevdev-bak/doc/html/group__misc.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__misc.html 2023-04-01 16:01:08.704374400 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Miscellaneous helper functions</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -365,7 +365,7 @@
<p>Helper function to check if an event is of a specific type and code. </p>
<p>This is virtually the same as: </p><pre class="fragment"> ev-&gt;type == type &amp;&amp; ev-&gt;code == code
-</pre><p>with the exception that some sanity checks are performed to ensure type and code are valid.</p>
+</pre><p> with the exception that some sanity checks are performed to ensure type and code are valid.</p>
<dl class="section note"><dt>Note</dt><dd>The ranges for types and codes are compiled into libevdev. If the kernel changes the max value, libevdev will not automatically pick these up.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
@@ -407,7 +407,7 @@
<p>Helper function to check if an event is of a specific type. </p>
<p>This is virtually the same as: </p><pre class="fragment"> ev-&gt;type == type
-</pre><p>with the exception that some sanity checks are performed to ensure type is valid.</p>
+</pre><p> with the exception that some sanity checks are performed to ensure type is valid.</p>
<dl class="section note"><dt>Note</dt><dd>The ranges for types are compiled into libevdev. If the kernel changes the max value, libevdev will not automatically pick these up.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
@@ -866,7 +866,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__mt.html third-party-new/doc/html/group__mt.html
--- third-party-libevdev-bak/doc/html/group__mt.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__mt.html 2023-04-01 16:01:21.378960200 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Multi-touch related functions</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -144,6 +144,9 @@
<div class="line"> <a class="code" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a>(dev, EV_ABS, c) &amp;&amp;</div>
<div class="line"> slot &lt; device-&gt;number_of_slots)</div>
<div class="line"> val = <a class="code" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a>(dev, slot, c);</div>
+<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
+<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
+<div class="ttc" id="agroup__mt_html_ga8c6303391cb4f90b2d46763cf4eb8bc8"><div class="ttname"><a href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a></div><div class="ttdeci">int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)</div><div class="ttdoc">Return the current value of the code for the given slot.</div></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr>
@@ -265,9 +268,6 @@
</div>
</div>
</div><!-- contents -->
-<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__mt_html_ga8c6303391cb4f90b2d46763cf4eb8bc8"><div class="ttname"><a href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a></div><div class="ttdeci">int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)</div><div class="ttdoc">Return the current value of the code for the given slot.</div></div>
-<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -278,7 +278,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/group__uinput.html third-party-new/doc/html/group__uinput.html
--- third-party-libevdev-bak/doc/html/group__uinput.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/group__uinput.html 2023-04-01 16:01:45.668914500 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: uinput device creation</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -103,14 +103,13 @@
<p>Creation of uinput devices based on existing libevdev devices. </p>
<p>These functions help to create uinput devices that emulate libevdev devices. In the simplest form it serves to duplicate an existing device:</p>
<div class="fragment"><div class="line"><span class="keywordtype">int</span> err;</div>
-<div class="line"><span class="keywordtype">int</span> fd, new_fd, uifd;</div>
+<div class="line"><span class="keywordtype">int</span> fd, uifd;</div>
<div class="line"><span class="keyword">struct </span>libevdev *dev;</div>
<div class="line"><span class="keyword">struct </span>libevdev_uinput *uidev;</div>
-<div class="line"><span class="keyword">struct </span>input_event ev[2];</div>
<div class="line"> </div>
<div class="line">fd = open(<span class="stringliteral">&quot;/dev/input/event0&quot;</span>, O_RDONLY);</div>
<div class="line"><span class="keywordflow">if</span> (fd &lt; 0)</div>
-<div class="line"> <span class="keywordflow">return</span> err;</div>
+<div class="line"> <span class="keywordflow">return</span> -errno;</div>
<div class="line"> </div>
<div class="line">err = <a class="code" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a>(fd, &amp;dev);</div>
<div class="line"><span class="keywordflow">if</span> (err != 0)</div>
@@ -128,7 +127,7 @@
<div class="line">err = <a class="code" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a>(uidev, EV_REL, REL_X, -1);</div>
<div class="line"><span class="keywordflow">if</span> (err != 0)</div>
<div class="line"> <span class="keywordflow">return</span> err;</div>
-<div class="line"><a class="code" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a>(uidev, EV_SYN, SYN_REPORT, 0);</div>
+<div class="line">err = <a class="code" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a>(uidev, EV_SYN, SYN_REPORT, 0);</div>
<div class="line"><span class="keywordflow">if</span> (err != 0)</div>
<div class="line"> <span class="keywordflow">return</span> err;</div>
<div class="line"> </div>
@@ -136,6 +135,11 @@
<div class="line"><a class="code" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a>(dev);</div>
<div class="line">close(uifd);</div>
<div class="line">close(fd);</div>
+<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
+<div class="ttc" id="agroup__init_html_gacd9fe760d15be25fc99ce469034bd78c"><div class="ttname"><a href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a></div><div class="ttdeci">void libevdev_free(struct libevdev *dev)</div><div class="ttdoc">Clean up and free the libevdev struct.</div></div>
+<div class="ttc" id="agroup__uinput_html_ga4c3c2f5fcd315a28a067f53b9f855fe7"><div class="ttname"><a href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a></div><div class="ttdeci">int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Post an event through the uinput device.</div></div>
+<div class="ttc" id="agroup__uinput_html_ga9dfa58a84eb4c6b97107dcf3fa621329"><div class="ttname"><a href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a></div><div class="ttdeci">void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Destroy a previously created uinput device and free associated memory.</div></div>
+<div class="ttc" id="agroup__uinput_html_gaf14b21301bac9d79c20e890172873b96"><div class="ttname"><a href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a></div><div class="ttdeci">int libevdev_uinput_create_from_device(const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)</div><div class="ttdoc">Create a uinput device based on the given libevdev device.</div></div>
</div><!-- fragment --><p>Alternatively, a device can be constructed from scratch:</p>
<div class="fragment"><div class="line"><span class="keywordtype">int</span> err;</div>
<div class="line"><span class="keyword">struct </span>libevdev *dev;</div>
@@ -160,6 +164,11 @@
<div class="line"><span class="comment">// ... do something ...</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a>(uidev);</div>
+<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga51cfda33fd526549046399aadd764fca"><div class="ttname"><a href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a></div><div class="ttdeci">int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data)</div><div class="ttdoc">Forcibly enable an event code on this device, even if the underlying device does not support it.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga59ef78b1557f9543d0060ab25b0167ca"><div class="ttname"><a href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a></div><div class="ttdeci">int libevdev_enable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly enable an event type on this device, even if the underlying device does not support it.</div></div>
+<div class="ttc" id="agroup__kernel_html_gae5dcdb7678cdc9be4ab1989725b4ed32"><div class="ttname"><a href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32">libevdev_set_name</a></div><div class="ttdeci">void libevdev_set_name(struct libevdev *dev, const char *name)</div><div class="ttdoc">Change the device's name as returned by libevdev_get_name().</div></div>
+<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a></div><div class="ttdeci">@ LIBEVDEV_UINPUT_OPEN_MANAGED</div><div class="ttdoc">let libevdev open and close /dev/uinput</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:114</div></div>
</div><!-- fragment --> <h2 class="groupheader">Function Documentation</h2>
<a id="gaf14b21301bac9d79c20e890172873b96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf14b21301bac9d79c20e890172873b96">&#9670;&nbsp;</a></span>libevdev_uinput_create_from_device()</h2>
@@ -318,9 +327,9 @@
</div><div class="memdoc">
<p>Return the syspath representing this uinput device. </p>
-<p>If the UI_GET_SYSNAME ioctl not available, libevdev makes an educated guess. The UI_GET_SYSNAME ioctl is available since Linux 3.15.</p>
+<p>If the UI_GET_SYSNAME ioctl is not available, libevdev makes an educated guess. The UI_GET_SYSNAME ioctl is available since Linux 3.15.</p>
<p>The syspath returned is the one of the input node itself (e.g. /sys/devices/virtual/input/input123), not the syspath of the device node returned with <a class="el" href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2" title="Return the device node representing this uinput device.">libevdev_uinput_get_devnode()</a>.</p>
-<dl class="section note"><dt>Note</dt><dd>This function may return NULL if UI_GET_SYSNAME is not available. In that case, libevdev uses ctime and the device name to guess devices. To avoid false positives, wait at least wait at least 1.5s between creating devices that have the same name.</dd>
+<dl class="section note"><dt>Note</dt><dd>This function may return NULL if UI_GET_SYSNAME is not available. In that case, libevdev uses ctime and the device name to guess devices. To avoid false positives, wait at least 1.5s between creating devices that have the same name.</dd>
<dd>
FreeBSD does not have sysfs, on FreeBSD this function always returns NULL.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
@@ -388,16 +397,6 @@
</div>
</div>
</div><!-- contents -->
-<div class="ttc" id="agroup__uinput_html_gaf14b21301bac9d79c20e890172873b96"><div class="ttname"><a href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a></div><div class="ttdeci">int libevdev_uinput_create_from_device(const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)</div><div class="ttdoc">Create a uinput device based on the given libevdev device.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga59ef78b1557f9543d0060ab25b0167ca"><div class="ttname"><a href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a></div><div class="ttdeci">int libevdev_enable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly enable an event type on this device, even if the underlying device does not support it.</div></div>
-<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a></div><div class="ttdeci">@ LIBEVDEV_UINPUT_OPEN_MANAGED</div><div class="ttdoc">let libevdev open and close /dev/uinput</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:113</div></div>
-<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
-<div class="ttc" id="agroup__uinput_html_ga9dfa58a84eb4c6b97107dcf3fa621329"><div class="ttname"><a href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a></div><div class="ttdeci">void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Destroy a previously created uinput device and free associated memory.</div></div>
-<div class="ttc" id="agroup__init_html_gacd9fe760d15be25fc99ce469034bd78c"><div class="ttname"><a href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a></div><div class="ttdeci">void libevdev_free(struct libevdev *dev)</div><div class="ttdoc">Clean up and free the libevdev struct.</div></div>
-<div class="ttc" id="agroup__kernel_html_gae5dcdb7678cdc9be4ab1989725b4ed32"><div class="ttname"><a href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32">libevdev_set_name</a></div><div class="ttdeci">void libevdev_set_name(struct libevdev *dev, const char *name)</div><div class="ttdoc">Change the device's name as returned by libevdev_get_name().</div></div>
-<div class="ttc" id="agroup__uinput_html_ga4c3c2f5fcd315a28a067f53b9f855fe7"><div class="ttname"><a href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a></div><div class="ttdeci">int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Post an event through the uinput device.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga51cfda33fd526549046399aadd764fca"><div class="ttname"><a href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a></div><div class="ttdeci">int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data)</div><div class="ttdoc">Forcibly enable an event code on this device, even if the underlying device does not support it.</div></div>
-<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -408,7 +407,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/index.html third-party-new/doc/html/index.html
--- third-party-libevdev-bak/doc/html/index.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/index.html 2023-04-01 16:18:18.545836000 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Main Page</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -94,9 +94,9 @@
<h1><a class="anchor" id="autotoc_md4"></a>
Where does libevdev sit?</h1>
<p>libevdev is essentially a <code>read(2)</code> on steroids for <code>/dev/input/eventX</code> devices. It sits below the process that handles input events, in between the kernel and that process. In the simplest case, e.g. an evtest-like tool the stack would look like this: </p><pre class="fragment"> kernel → libevdev → evtest
-</pre><p>For X.Org input modules, the stack would look like this: </p><pre class="fragment"> kernel → libevdev → xf86-input-evdev → X server → X client
-</pre><p>For anything using libinput (e.g. most Wayland compositors), the stack the stack would look like this: </p><pre class="fragment"> kernel → libevdev → libinput → Compositor → Wayland client
-</pre><p>libevdev does <b>not</b> have knowledge of X clients or Wayland clients, it is too low in the stack.</p>
+</pre><p> For X.Org input modules, the stack would look like this: </p><pre class="fragment"> kernel → libevdev → xf86-input-evdev → X server → X client
+</pre><p> For anything using libinput (e.g. most Wayland compositors), the stack the stack would look like this: </p><pre class="fragment"> kernel → libevdev → libinput → Compositor → Wayland client
+</pre><p> libevdev does <b>not</b> have knowledge of X clients or Wayland clients, it is too low in the stack.</p>
<h1><a class="anchor" id="autotoc_md5"></a>
Example</h1>
<p>Below is a simple example that shows how libevdev could be used. This example opens a device, checks for relative axes and a left mouse button and if it finds them monitors the device to print the event.</p>
@@ -130,6 +130,17 @@
<div class="line"> <a class="code" href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a>(ev.type, ev.code),</div>
<div class="line"> ev.value);</div>
<div class="line">} <span class="keywordflow">while</span> (rc == 1 || rc == 0 || rc == -EAGAIN);</div>
+<div class="ttc" id="agroup__bits_html_ga08891c3285da5b8d26769c9a34f063f3"><div class="ttname"><a href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a></div><div class="ttdeci">int libevdev_get_id_vendor(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_ga1dc66cfef646878d58be72f8902a6bac"><div class="ttname"><a href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a></div><div class="ttdeci">int libevdev_get_id_product(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
+<div class="ttc" id="agroup__bits_html_ga9bf55d416401642bad0c435735682308"><div class="ttname"><a href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a></div><div class="ttdeci">int libevdev_get_id_bustype(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
+<div class="ttc" id="agroup__bits_html_gaed0328c67b7a78422636d9fe09a73f12"><div class="ttname"><a href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a></div><div class="ttdeci">const char * libevdev_get_name(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's name, either as set by the caller or as read from the kernel.</div></div>
+<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:762</div></div>
+<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
+<div class="ttc" id="agroup__misc_html_gab407b3c2caaae502859c28460cad17bb"><div class="ttname"><a href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a></div><div class="ttdeci">const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)</div></div>
+<div class="ttc" id="agroup__misc_html_gac99720fd926bf288764f9a81bf37ed09"><div class="ttname"><a href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a></div><div class="ttdeci">const char * libevdev_event_type_get_name(unsigned int type)</div></div>
</div><!-- fragment --><p>A more complete example is available with the libevdev-events tool here: <a href="https://gitlab.freedesktop.org/libevdev/libevdev/blob/master/tools/libevdev-events.c">https://gitlab.freedesktop.org/libevdev/libevdev/blob/master/tools/libevdev-events.c</a></p>
<h1><a class="anchor" id="autotoc_md6"></a>
Backwards compatibility with older kernel</h1>
@@ -149,17 +160,6 @@
<p>Please report bugs in the freedesktop.org GitLab instance: <a href="https://gitlab.freedesktop.org/libevdev/libevdev/issues/">https://gitlab.freedesktop.org/libevdev/libevdev/issues/</a> </p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
-<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__misc_html_gab407b3c2caaae502859c28460cad17bb"><div class="ttname"><a href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a></div><div class="ttdeci">const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
-<div class="ttc" id="agroup__bits_html_ga9bf55d416401642bad0c435735682308"><div class="ttname"><a href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a></div><div class="ttdeci">int libevdev_get_id_bustype(const struct libevdev *dev)</div></div>
-<div class="ttc" id="agroup__bits_html_ga1dc66cfef646878d58be72f8902a6bac"><div class="ttname"><a href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a></div><div class="ttdeci">int libevdev_get_id_product(const struct libevdev *dev)</div></div>
-<div class="ttc" id="agroup__bits_html_ga08891c3285da5b8d26769c9a34f063f3"><div class="ttname"><a href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a></div><div class="ttdeci">int libevdev_get_id_vendor(const struct libevdev *dev)</div></div>
-<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
-<div class="ttc" id="agroup__misc_html_gac99720fd926bf288764f9a81bf37ed09"><div class="ttname"><a href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a></div><div class="ttdeci">const char * libevdev_event_type_get_name(unsigned int type)</div></div>
-<div class="ttc" id="agroup__bits_html_gaed0328c67b7a78422636d9fe09a73f12"><div class="ttname"><a href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a></div><div class="ttdeci">const char * libevdev_get_name(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's name, either as set by the caller or as read from the kernel.</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:759</div></div>
-<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -170,7 +170,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/ioctls.html third-party-new/doc/html/ioctls.html
--- third-party-libevdev-bak/doc/html/ioctls.html 2023-03-28 10:49:53.376511600 +0800
+++ third-party-new/doc/html/ioctls.html 2023-04-01 16:18:35.055518500 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: evdev ioctls</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -139,7 +139,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/kernel_header.html third-party-new/doc/html/kernel_header.html
--- third-party-libevdev-bak/doc/html/kernel_header.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/kernel_header.html 2023-04-01 16:29:31.535522500 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Kernel header</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -90,7 +90,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/libevdev-uinput_8h.html third-party-new/doc/html/libevdev-uinput_8h.html
--- third-party-libevdev-bak/doc/html/libevdev-uinput_8h.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/libevdev-uinput_8h.html 2023-04-03 10:47:05.692591800 +0800
@@ -6,9 +6,9 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
- <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.uQTRHZxVc0/libevdev/libevdev-uinput.h File Reference</title>
+ <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.eXgVwUduJp/libevdev/libevdev-uinput.h File Reference</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -140,7 +140,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/libevdev-uinput_8h_source.html third-party-new/doc/html/libevdev-uinput_8h_source.html
--- third-party-libevdev-bak/doc/html/libevdev-uinput_8h_source.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/libevdev-uinput_8h_source.html 2023-04-03 10:47:44.687742000 +0800
@@ -6,9 +6,9 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
- <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.uQTRHZxVc0/libevdev/libevdev-uinput.h Source File</title>
+ <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.eXgVwUduJp/libevdev/libevdev-uinput.h Source File</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -76,77 +76,79 @@
<div class="title">libevdev-uinput.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="libevdev-uinput_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright © 2013 Red Hat, Inc.</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Permission to use, copy, modify, distribute, and sell this software and its</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * documentation for any purpose is hereby granted without fee, provided that</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the above copyright notice appear in all copies and that both that copyright</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * notice and this permission notice appear in supporting documentation, and</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * that the name of the copyright holders not be used in advertising or</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * publicity pertaining to distribution of the software without specific,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * written prior permission. The copyright holders make no representations</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * about the suitability of this software for any purpose. It is provided &quot;as</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * is&quot; without express or implied warranty.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * OF THIS SOFTWARE.</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef LIBEVDEV_UINPUT_H</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define LIBEVDEV_UINPUT_H</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="libevdev_8h.html">libevdev/libevdev.h</a>&gt;</span></div>
+<a href="libevdev-uinput_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* SPDX-License-Identifier: MIT */</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright © 2013 Red Hat, Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * deal in the Software without restriction, including without limitation the</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * sell copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * The above copyright notice and this permission notice (including the next</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * paragraph) shall be included in all copies or substantial portions of the</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * Software.</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * IN THE SOFTWARE.</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef LIBEVDEV_UINPUT_H</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define LIBEVDEV_UINPUT_H</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">struct </span>libevdev_uinput;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="libevdev_8h.html">libevdev/libevdev.h</a>&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03"> 109</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03">libevdev_uinput_open_mode</a> {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">/* intentionally -2 to avoid to avoid code like the below from accidentally working:</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> fd = open(&quot;/dev/uinput&quot;, O_RDWR); // fails, fd is -1</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> libevdev_uinput_create_from_device(dev, fd, &amp;uidev); // may hide the error */</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a> = -2 </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"> 114</a></span>&#160;};</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96"> 153</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev,</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">int</span> uinput_fd,</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">struct</span> libevdev_uinput **uinput_dev);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329"> 168</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d"> 183</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d">libevdev_uinput_get_fd</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427"> 209</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427">libevdev_uinput_get_syspath</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2"> 231</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2">libevdev_uinput_get_devnode</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7"> 247</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev_uinput *uinput_dev,</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type,</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LIBEVDEV_UINPUT_H */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="alibevdev_8h_html"><div class="ttname"><a href="libevdev_8h.html">libevdev.h</a></div></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">struct </span>libevdev_uinput;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03"> 110</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03">libevdev_uinput_open_mode</a> {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">/* intentionally -2 to avoid code like below from accidentally working:</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> fd = open(&quot;/dev/uinput&quot;, O_RDWR); // fails, fd is -1</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> libevdev_uinput_create_from_device(dev, fd, &amp;uidev); // may hide the error */</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a> = -2 </div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"> 115</a></span>&#160;};</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96"> 154</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev,</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">int</span> uinput_fd,</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">struct</span> libevdev_uinput **uinput_dev);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329"> 169</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d"> 184</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d">libevdev_uinput_get_fd</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427"> 210</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427">libevdev_uinput_get_syspath</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2"> 232</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2">libevdev_uinput_get_devnode</a>(<span class="keyword">struct</span> libevdev_uinput *uinput_dev);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
+<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7"> 248</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev_uinput *uinput_dev,</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type,</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">int</span> value);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; </div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LIBEVDEV_UINPUT_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="agroup__uinput_html_ga4c3c2f5fcd315a28a067f53b9f855fe7"><div class="ttname"><a href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a></div><div class="ttdeci">int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Post an event through the uinput device.</div></div>
<div class="ttc" id="agroup__uinput_html_ga4c595bcda748b08561e2819fe9b7c2d2"><div class="ttname"><a href="group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2">libevdev_uinput_get_devnode</a></div><div class="ttdeci">const char * libevdev_uinput_get_devnode(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Return the device node representing this uinput device.</div></div>
-<div class="ttc" id="agroup__uinput_html_gaf14b21301bac9d79c20e890172873b96"><div class="ttname"><a href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a></div><div class="ttdeci">int libevdev_uinput_create_from_device(const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)</div><div class="ttdoc">Create a uinput device based on the given libevdev device.</div></div>
-<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a></div><div class="ttdeci">@ LIBEVDEV_UINPUT_OPEN_MANAGED</div><div class="ttdoc">let libevdev open and close /dev/uinput</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:113</div></div>
-<div class="ttc" id="agroup__uinput_html_gaacca93061fce57cec0ce3c52e443a427"><div class="ttname"><a href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427">libevdev_uinput_get_syspath</a></div><div class="ttdeci">const char * libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Return the syspath representing this uinput device.</div></div>
-<div class="ttc" id="agroup__uinput_html_ga9dfa58a84eb4c6b97107dcf3fa621329"><div class="ttname"><a href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a></div><div class="ttdeci">void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Destroy a previously created uinput device and free associated memory.</div></div>
-<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03">libevdev_uinput_open_mode</a></div><div class="ttdeci">libevdev_uinput_open_mode</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:109</div></div>
<div class="ttc" id="agroup__uinput_html_ga9cd7fb14a96d4cc14d3dffdcead84c5d"><div class="ttname"><a href="group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d">libevdev_uinput_get_fd</a></div><div class="ttdeci">int libevdev_uinput_get_fd(const struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Return the file descriptor used to create this uinput device.</div></div>
-<div class="ttc" id="agroup__uinput_html_ga4c3c2f5fcd315a28a067f53b9f855fe7"><div class="ttname"><a href="group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7">libevdev_uinput_write_event</a></div><div class="ttdeci">int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Post an event through the uinput device.</div></div>
+<div class="ttc" id="agroup__uinput_html_ga9dfa58a84eb4c6b97107dcf3fa621329"><div class="ttname"><a href="group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329">libevdev_uinput_destroy</a></div><div class="ttdeci">void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Destroy a previously created uinput device and free associated memory.</div></div>
+<div class="ttc" id="agroup__uinput_html_gaacca93061fce57cec0ce3c52e443a427"><div class="ttname"><a href="group__uinput.html#gaacca93061fce57cec0ce3c52e443a427">libevdev_uinput_get_syspath</a></div><div class="ttdeci">const char * libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev)</div><div class="ttdoc">Return the syspath representing this uinput device.</div></div>
+<div class="ttc" id="agroup__uinput_html_gaf14b21301bac9d79c20e890172873b96"><div class="ttname"><a href="group__uinput.html#gaf14b21301bac9d79c20e890172873b96">libevdev_uinput_create_from_device</a></div><div class="ttdeci">int libevdev_uinput_create_from_device(const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)</div><div class="ttdoc">Create a uinput device based on the given libevdev device.</div></div>
+<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03">libevdev_uinput_open_mode</a></div><div class="ttdeci">libevdev_uinput_open_mode</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:110</div></div>
+<div class="ttc" id="alibevdev-uinput_8h_html_a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad"><div class="ttname"><a href="libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad">LIBEVDEV_UINPUT_OPEN_MANAGED</a></div><div class="ttdeci">@ LIBEVDEV_UINPUT_OPEN_MANAGED</div><div class="ttdoc">let libevdev open and close /dev/uinput</div><div class="ttdef"><b>Definition:</b> libevdev-uinput.h:114</div></div>
+<div class="ttc" id="alibevdev_8h_html"><div class="ttname"><a href="libevdev_8h.html">libevdev.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -157,7 +159,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/libevdev_8h.html third-party-new/doc/html/libevdev_8h.html
--- third-party-libevdev-bak/doc/html/libevdev_8h.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/libevdev_8h.html 2023-04-01 16:29:44.951841700 +0800
@@ -6,9 +6,9 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
- <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.uQTRHZxVc0/libevdev/libevdev.h File Reference</title>
+ <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.eXgVwUduJp/libevdev/libevdev.h File Reference</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -104,27 +104,27 @@
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
-<tr class="memitem:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> { <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a>,
-<a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a>
+<tr class="memitem:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> { <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a>
+, <a class="el" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a>
}</td></tr>
<tr class="separator:ga56c288d9f2e4c1632986c4e218c494e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a>,
-<a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a>,
-<a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a>
+<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a>
+, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a>
+, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a>
}</td></tr>
<tr class="separator:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> { <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a>,
-<a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a>
+<tr class="memitem:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> { <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a>
+, <a class="el" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a>
}</td></tr>
<tr class="separator:gaa282ec9badaa6bc11b1dc5bb124dbd5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> { <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a>,
-<a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a>
+<tr class="memitem:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> { <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a>
+, <a class="el" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a>
}</td></tr>
<tr class="separator:ga4a96221b3c7f54dfb86035d952154e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8cddf7779debef0067665671e911ec41"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> { <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a>,
-<a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a>
+<tr class="memitem:ga8cddf7779debef0067665671e911ec41"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> { <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a>
+, <a class="el" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a>
}</td></tr>
<tr class="separator:ga8cddf7779debef0067665671e911ec41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -409,7 +409,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/libevdev_8h_source.html third-party-new/doc/html/libevdev_8h_source.html
--- third-party-libevdev-bak/doc/html/libevdev_8h_source.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/libevdev_8h_source.html 2023-04-01 16:30:17.409507500 +0800
@@ -6,9 +6,9 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
- <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.uQTRHZxVc0/libevdev/libevdev.h Source File</title>
+ <title>libevdev: /home/whot/code/libevdev/release/libevdev/build.eXgVwUduJp/libevdev/libevdev.h Source File</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -76,372 +76,375 @@
<div class="title">libevdev.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="libevdev_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright © 2013 Red Hat, Inc.</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Permission to use, copy, modify, distribute, and sell this software and its</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * documentation for any purpose is hereby granted without fee, provided that</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the above copyright notice appear in all copies and that both that copyright</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * notice and this permission notice appear in supporting documentation, and</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * that the name of the copyright holders not be used in advertising or</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * publicity pertaining to distribution of the software without specific,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * written prior permission. The copyright holders make no representations</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * about the suitability of this software for any purpose. It is provided &quot;as</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * is&quot; without express or implied warranty.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * OF THIS SOFTWARE.</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef LIBEVDEV_H</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define LIBEVDEV_H</span></div>
+<a href="libevdev_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* SPDX-License-Identifier: MIT */</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright © 2013 Red Hat, Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * deal in the Software without restriction, including without limitation the</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * sell copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * The above copyright notice and this permission notice (including the next</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * paragraph) shall be included in all copies or substantial portions of the</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * Software.</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * IN THE SOFTWARE.</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;linux/input.h&gt;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifndef LIBEVDEV_H</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define LIBEVDEV_H</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8"> 33</a></span>&#160;<span class="preprocessor">#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="keyword">struct </span>libevdev;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; </div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9"> 757</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> {</div>
-<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"> 758</a></span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a> = 1, </div>
-<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"> 759</a></span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a> = 2, </div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a> = 4, </div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a> = 8 </div>
-<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19"> 763</a></span>&#160;};</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; </div>
-<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c"> 779</a></span>&#160;<span class="keyword">struct </span>libevdev* <a class="code" href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
-<div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4"> 803</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a>(<span class="keywordtype">int</span> fd, <span class="keyword">struct</span> libevdev **dev);</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; </div>
-<div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c"> 818</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a>(<span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; </div>
-<div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364"> 823</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> {</div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"> 824</a></span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a> = 10, </div>
-<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"> 825</a></span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a> = 20, </div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a> = 30 </div>
-<div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"> 827</a></span>&#160;};</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; </div>
-<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4"> 845</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a>)(<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordtype">void</span> *data,</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line,</div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *func,</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a>(6, 0);</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; </div>
-<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955"> 870</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a>(<a class="code" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a> logfunc, <span class="keywordtype">void</span> *data);</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; </div>
-<div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89"> 884</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a>(<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority);</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; </div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> <a class="code" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; </div>
-<div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269"> 918</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a>)(<span class="keyword">const</span> <span class="keyword">struct </span>libevdev *dev,</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordtype">void</span> *data,</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line,</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *func,</div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a>(7, 0);</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; </div>
-<div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b"> 947</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">libevdev_set_device_log_function</a>(<span class="keyword">struct</span> libevdev *dev,</div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a> logfunc,</div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordtype">void</span> *data);</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; </div>
-<div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b"> 955</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> {</div>
-<div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88"> 956</a></span>&#160; <a class="code" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a> = 3, </div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a> = 4 </div>
-<div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb"> 958</a></span>&#160;};</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; </div>
-<div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f"> 982</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f">libevdev_grab</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">enum</span> <a class="code" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> grab);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; </div>
-<div class="line"><a name="l01016"></a><span class="lineno"><a class="line" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44"> 1016</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a>(<span class="keyword">struct</span> libevdev* dev, <span class="keywordtype">int</span> fd);</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; </div>
-<div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c"> 1056</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a>(<span class="keyword">struct</span> libevdev* dev, <span class="keywordtype">int</span> fd);</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; </div>
-<div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c"> 1066</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c">libevdev_get_fd</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev* dev);</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; </div>
-<div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a"> 1071</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> {</div>
-<div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7"> 1078</a></span>&#160; <a class="code" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a> = 0,</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <a class="code" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a> = 1</div>
-<div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"> 1088</a></span>&#160;};</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; </div>
-<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76"> 1140</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags, <span class="keyword">struct</span> input_event *ev);</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; </div>
-<div class="line"><a name="l01164"></a><span class="lineno"><a class="line" href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784"> 1164</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784">libevdev_has_event_pending</a>(<span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; </div>
-<div class="line"><a name="l01180"></a><span class="lineno"><a class="line" href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12"> 1180</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; </div>
-<div class="line"><a name="l01195"></a><span class="lineno"><a class="line" href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32"> 1195</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32">libevdev_set_name</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; </div>
-<div class="line"><a name="l01212"></a><span class="lineno"><a class="line" href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d"> 1212</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">libevdev_get_phys</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; </div>
-<div class="line"><a name="l01227"></a><span class="lineno"><a class="line" href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3"> 1227</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3">libevdev_set_phys</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *phys);</div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; </div>
-<div class="line"><a name="l01242"></a><span class="lineno"><a class="line" href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4"> 1242</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">libevdev_get_uniq</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; </div>
-<div class="line"><a name="l01257"></a><span class="lineno"><a class="line" href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7"> 1257</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7">libevdev_set_uniq</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *uniq);</div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; </div>
-<div class="line"><a name="l01268"></a><span class="lineno"><a class="line" href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac"> 1268</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; </div>
-<div class="line"><a name="l01281"></a><span class="lineno"><a class="line" href="group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799"> 1281</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799">libevdev_set_id_product</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> product_id);</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; </div>
-<div class="line"><a name="l01292"></a><span class="lineno"><a class="line" href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3"> 1292</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; </div>
-<div class="line"><a name="l01305"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe"> 1305</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe">libevdev_set_id_vendor</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> vendor_id);</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; </div>
-<div class="line"><a name="l01316"></a><span class="lineno"><a class="line" href="group__bits.html#ga9bf55d416401642bad0c435735682308"> 1316</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; </div>
-<div class="line"><a name="l01329"></a><span class="lineno"><a class="line" href="group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0"> 1329</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0">libevdev_set_id_bustype</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> bustype);</div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; </div>
-<div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae"> 1340</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae">libevdev_get_id_version</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; </div>
-<div class="line"><a name="l01353"></a><span class="lineno"><a class="line" href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055"> 1353</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055">libevdev_set_id_version</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> version);</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; </div>
-<div class="line"><a name="l01364"></a><span class="lineno"><a class="line" href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa"> 1364</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa">libevdev_get_driver_version</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; </div>
-<div class="line"><a name="l01376"></a><span class="lineno"><a class="line" href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b"> 1376</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b">libevdev_has_property</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; </div>
-<div class="line"><a name="l01389"></a><span class="lineno"><a class="line" href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6"> 1389</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6">libevdev_enable_property</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; </div>
-<div class="line"><a name="l01399"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019"> 1399</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019">libevdev_disable_property</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; </div>
-<div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14"> 1411</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; </div>
-<div class="line"><a name="l01424"></a><span class="lineno"><a class="line" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b"> 1424</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; </div>
-<div class="line"><a name="l01438"></a><span class="lineno"><a class="line" href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e"> 1438</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">libevdev_get_abs_minimum</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; </div>
-<div class="line"><a name="l01452"></a><span class="lineno"><a class="line" href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca"> 1452</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">libevdev_get_abs_maximum</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; </div>
-<div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a"> 1466</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">libevdev_get_abs_fuzz</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; </div>
-<div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92"> 1480</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">libevdev_get_abs_flat</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; </div>
-<div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4"> 1494</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4">libevdev_get_abs_resolution</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; </div>
-<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7"> 1509</a></span>&#160;<span class="keyword">const</span> <span class="keyword">struct </span>input_absinfo* <a class="code" href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">libevdev_get_abs_info</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; </div>
-<div class="line"><a name="l01533"></a><span class="lineno"><a class="line" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3"> 1533</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; </div>
-<div class="line"><a name="l01569"></a><span class="lineno"><a class="line" href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184"> 1569</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184">libevdev_set_event_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; </div>
-<div class="line"><a name="l01596"></a><span class="lineno"><a class="line" href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147"> 1596</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">libevdev_fetch_event_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> *value);</div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; </div>
-<div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8"> 1618</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; </div>
-<div class="line"><a name="l01648"></a><span class="lineno"><a class="line" href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333"> 1648</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333">libevdev_set_slot_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; </div>
-<div class="line"><a name="l01675"></a><span class="lineno"><a class="line" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec"> 1675</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec">libevdev_fetch_slot_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> *value);</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; </div>
-<div class="line"><a name="l01690"></a><span class="lineno"><a class="line" href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088"> 1690</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088">libevdev_get_num_slots</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; </div>
-<div class="line"><a name="l01707"></a><span class="lineno"><a class="line" href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd"> 1707</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd">libevdev_get_current_slot</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; </div>
-<div class="line"><a name="l01720"></a><span class="lineno"><a class="line" href="group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a"> 1720</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a">libevdev_set_abs_minimum</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; </div>
-<div class="line"><a name="l01733"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6"> 1733</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6">libevdev_set_abs_maximum</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; </div>
-<div class="line"><a name="l01746"></a><span class="lineno"><a class="line" href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21"> 1746</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21">libevdev_set_abs_fuzz</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; </div>
-<div class="line"><a name="l01759"></a><span class="lineno"><a class="line" href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a"> 1759</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a">libevdev_set_abs_flat</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; </div>
-<div class="line"><a name="l01772"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038"> 1772</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038">libevdev_set_abs_resolution</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; </div>
-<div class="line"><a name="l01785"></a><span class="lineno"><a class="line" href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049"> 1785</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049">libevdev_set_abs_info</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keyword">struct</span> input_absinfo *abs);</div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; </div>
-<div class="line"><a name="l01804"></a><span class="lineno"><a class="line" href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca"> 1804</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; </div>
-<div class="line"><a name="l01832"></a><span class="lineno"><a class="line" href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a"> 1832</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a">libevdev_disable_event_type</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; </div>
-<div class="line"><a name="l01867"></a><span class="lineno"><a class="line" href="group__kernel.html#ga51cfda33fd526549046399aadd764fca"> 1867</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);</div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; </div>
-<div class="line"><a name="l01896"></a><span class="lineno"><a class="line" href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de"> 1896</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de">libevdev_disable_event_code</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; </div>
-<div class="line"><a name="l01912"></a><span class="lineno"><a class="line" href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9"> 1912</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9">libevdev_kernel_set_abs_info</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keyword">struct</span> input_absinfo *abs);</div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; </div>
-<div class="line"><a name="l01917"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41"> 1917</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> {</div>
-<div class="line"><a name="l01918"></a><span class="lineno"><a class="line" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"> 1918</a></span>&#160; <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a> = 3, </div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a> = 4 </div>
-<div class="line"><a name="l01920"></a><span class="lineno"><a class="line" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"> 1920</a></span>&#160;};</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; </div>
-<div class="line"><a name="l01935"></a><span class="lineno"><a class="line" href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01"> 1935</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01">libevdev_kernel_set_led_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">enum</span> <a class="code" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> value);</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; </div>
-<div class="line"><a name="l01960"></a><span class="lineno"><a class="line" href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00"> 1960</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a>(<span class="keyword">struct</span> libevdev *dev, ...);</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; </div>
-<div class="line"><a name="l01976"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d"> 1976</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d">libevdev_set_clock_id</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> clockid);</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; </div>
-<div class="line"><a name="l01999"></a><span class="lineno"><a class="line" href="group__misc.html#gab8b6b80740e028261300b8952b61a596"> 1999</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gab8b6b80740e028261300b8952b61a596">libevdev_event_is_type</a>(<span class="keyword">const</span> <span class="keyword">struct</span> input_event *ev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; </div>
-<div class="line"><a name="l02024"></a><span class="lineno"><a class="line" href="group__misc.html#ga37766a6a498fef3294d589abcce688bb"> 2024</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga37766a6a498fef3294d589abcce688bb">libevdev_event_is_code</a>(<span class="keyword">const</span> <span class="keyword">struct</span> input_event *ev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; </div>
-<div class="line"><a name="l02037"></a><span class="lineno"><a class="line" href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09"> 2037</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l02050"></a><span class="lineno"><a class="line" href="group__misc.html#gab407b3c2caaae502859c28460cad17bb"> 2050</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; </div>
-<div class="line"><a name="l02072"></a><span class="lineno"><a class="line" href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3"> 2072</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3">libevdev_event_value_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type,</div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l02088"></a><span class="lineno"><a class="line" href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892"> 2088</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892">libevdev_property_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; </div>
-<div class="line"><a name="l02102"></a><span class="lineno"><a class="line" href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1"> 2102</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1">libevdev_event_type_get_max</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; </div>
-<div class="line"><a name="l02118"></a><span class="lineno"><a class="line" href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1"> 2118</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1">libevdev_event_type_from_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; </div>
-<div class="line"><a name="l02136"></a><span class="lineno"><a class="line" href="group__misc.html#ga4ee03d650200bb04a23233570667fa84"> 2136</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga4ee03d650200bb04a23233570667fa84">libevdev_event_type_from_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; </div>
-<div class="line"><a name="l02157"></a><span class="lineno"><a class="line" href="group__misc.html#ga6620301a67f467489e4a7f93afe81621"> 2157</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga6620301a67f467489e4a7f93afe81621">libevdev_event_code_from_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; </div>
-<div class="line"><a name="l02180"></a><span class="lineno"><a class="line" href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0"> 2180</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0">libevdev_event_code_from_name_n</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; </div>
-<div class="line"><a name="l02204"></a><span class="lineno"><a class="line" href="group__misc.html#ga314903beeafedabe45f879637e7254b0"> 2204</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga314903beeafedabe45f879637e7254b0">libevdev_event_value_from_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; </div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;<span class="keywordtype">int</span></div>
-<div class="line"><a name="l02224"></a><span class="lineno"><a class="line" href="group__misc.html#gadd41b7514cca16c8b8920f16e562e08a"> 2224</a></span>&#160;<a class="code" href="group__misc.html#gadd41b7514cca16c8b8920f16e562e08a">libevdev_event_type_from_code_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160; </div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="keywordtype">int</span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"><a class="line" href="group__misc.html#gab214498fca7a328f8a712ce15bf21982"> 2245</a></span>&#160;<a class="code" href="group__misc.html#gab214498fca7a328f8a712ce15bf21982">libevdev_event_type_from_code_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; </div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;<span class="keywordtype">int</span></div>
-<div class="line"><a name="l02264"></a><span class="lineno"><a class="line" href="group__misc.html#gabad00f68481d83747a134c0a37aca003"> 2264</a></span>&#160;<a class="code" href="group__misc.html#gabad00f68481d83747a134c0a37aca003">libevdev_event_code_from_code_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; </div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;<span class="keywordtype">int</span></div>
-<div class="line"><a name="l02285"></a><span class="lineno"><a class="line" href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466"> 2285</a></span>&#160;<a class="code" href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466">libevdev_event_code_from_code_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; </div>
-<div class="line"><a name="l02310"></a><span class="lineno"><a class="line" href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f"> 2310</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f">libevdev_event_value_from_name_n</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; </div>
-<div class="line"><a name="l02325"></a><span class="lineno"><a class="line" href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd"> 2325</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd">libevdev_property_from_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; </div>
-<div class="line"><a name="l02341"></a><span class="lineno"><a class="line" href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b"> 2341</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b">libevdev_property_from_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; </div>
-<div class="line"><a name="l02360"></a><span class="lineno"><a class="line" href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770"> 2360</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">libevdev_get_repeat</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> *delay, <span class="keywordtype">int</span> *period);</div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; </div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;<span class="comment">/********* DEPRECATED SECTION *********/</span></div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; __GNUC__ &gt;= 4</span></div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;<span class="preprocessor">#define LIBEVDEV_DEPRECATED __attribute__ ((deprecated))</span></div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l02366"></a><span class="lineno"><a class="line" href="libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae"> 2366</a></span>&#160;<span class="preprocessor">#define LIBEVDEV_DEPRECATED</span></div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; </div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;}</div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; </div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LIBEVDEV_H */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="agroup__kernel_html_ga2266b59711cdaa4fc12fa56c9313a038"><div class="ttname"><a href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038">libevdev_set_abs_resolution</a></div><div class="ttdeci">void libevdev_set_abs_resolution(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the resolution for the given EV_ABS event code, if the code exists.</div></div>
-<div class="ttc" id="agroup__init_html_ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb"><div class="ttname"><a href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a></div><div class="ttdeci">@ LIBEVDEV_UNGRAB</div><div class="ttdoc">Ungrab the device if currently grabbed.</div><div class="ttdef"><b>Definition:</b> libevdev.h:957</div></div>
-<div class="ttc" id="agroup__misc_html_gabfad87ea78d034631cf3e5322ac383a1"><div class="ttname"><a href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1">libevdev_event_type_get_max</a></div><div class="ttdeci">int libevdev_event_type_get_max(unsigned int type)</div></div>
-<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__misc_html_gaebfc6b0ebb70169c9fec61620f1ea85f"><div class="ttname"><a href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f">libevdev_event_value_from_name_n</a></div><div class="ttdeci">int libevdev_event_value_from_name_n(unsigned int type, unsigned int code, const char *name, size_t len)</div><div class="ttdoc">Look up an event value by its type, code and name.</div></div>
-<div class="ttc" id="agroup__bits_html_ga6d8e2caf87fa536fad979346671838d7"><div class="ttname"><a href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">libevdev_get_abs_info</a></div><div class="ttdeci">const struct input_absinfo * libevdev_get_abs_info(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis info for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__kernel_html_gaee1d2db88b191ec21d5bf22dd4fe3055"><div class="ttname"><a href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055">libevdev_set_id_version</a></div><div class="ttdeci">void libevdev_set_id_version(struct libevdev *dev, int version)</div></div>
-<div class="ttc" id="agroup__misc_html_ga61ce3bf1e66bd172e583b86a11fc41f1"><div class="ttname"><a href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1">libevdev_event_type_from_name</a></div><div class="ttdeci">int libevdev_event_type_from_name(const char *name)</div><div class="ttdoc">Look up an event-type by its name.</div></div>
-<div class="ttc" id="agroup__kernel_html_gaa7d13aeac3c40e16f296467780e67c01"><div class="ttname"><a href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01">libevdev_kernel_set_led_value</a></div><div class="ttdeci">int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum libevdev_led_value value)</div><div class="ttdoc">Turn an LED on or off.</div></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;linux/input.h&gt;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8"> 36</a></span>&#160;<span class="preprocessor">#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="keyword">struct </span>libevdev;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; </div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9"> 760</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a> {</div>
+<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"> 761</a></span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a> = 1, </div>
+<div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"> 762</a></span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a> = 2, </div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a> = 4, </div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a> = 8 </div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19"> 766</a></span>&#160;};</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; </div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c"> 782</a></span>&#160;<span class="keyword">struct </span>libevdev* <a class="code" href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; </div>
+<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4"> 806</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a>(<span class="keywordtype">int</span> fd, <span class="keyword">struct</span> libevdev **dev);</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; </div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c"> 821</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a>(<span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; </div>
+<div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364"> 826</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> {</div>
+<div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"> 827</a></span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a> = 10, </div>
+<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"> 828</a></span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a> = 20, </div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a> = 30 </div>
+<div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"> 830</a></span>&#160;};</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; </div>
+<div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4"> 848</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a>)(<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordtype">void</span> *data,</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line,</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *func,</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a>(6, 0);</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; </div>
+<div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955"> 873</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a>(<a class="code" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a> logfunc, <span class="keywordtype">void</span> *data);</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; </div>
+<div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8"> 887</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a>(<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority);</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; </div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;<span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> <a class="code" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; </div>
+<div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269"> 921</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a>)(<span class="keyword">const</span> <span class="keyword">struct </span>libevdev *dev,</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordtype">void</span> *data,</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line,</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *func,</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <a class="code" href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a>(7, 0);</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; </div>
+<div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b"> 950</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">libevdev_set_device_log_function</a>(<span class="keyword">struct</span> libevdev *dev,</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a> logfunc,</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keyword">enum</span> <a class="code" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority,</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordtype">void</span> *data);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; </div>
+<div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b"> 958</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> {</div>
+<div class="line"><a name="l00959"></a><span class="lineno"><a class="line" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88"> 959</a></span>&#160; <a class="code" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a> = 3, </div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a> = 4 </div>
+<div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb"> 961</a></span>&#160;};</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; </div>
+<div class="line"><a name="l00985"></a><span class="lineno"><a class="line" href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f"> 985</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f">libevdev_grab</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">enum</span> <a class="code" href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a> grab);</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; </div>
+<div class="line"><a name="l01019"></a><span class="lineno"><a class="line" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44"> 1019</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a>(<span class="keyword">struct</span> libevdev* dev, <span class="keywordtype">int</span> fd);</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
+<div class="line"><a name="l01059"></a><span class="lineno"><a class="line" href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c"> 1059</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a>(<span class="keyword">struct</span> libevdev* dev, <span class="keywordtype">int</span> fd);</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; </div>
+<div class="line"><a name="l01069"></a><span class="lineno"><a class="line" href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c"> 1069</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c">libevdev_get_fd</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev* dev);</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; </div>
+<div class="line"><a name="l01074"></a><span class="lineno"><a class="line" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a"> 1074</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a> {</div>
+<div class="line"><a name="l01081"></a><span class="lineno"><a class="line" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7"> 1081</a></span>&#160; <a class="code" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a> = 0,</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <a class="code" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a> = 1</div>
+<div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"> 1091</a></span>&#160;};</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; </div>
+<div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76"> 1143</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags, <span class="keyword">struct</span> input_event *ev);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; </div>
+<div class="line"><a name="l01167"></a><span class="lineno"><a class="line" href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784"> 1167</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784">libevdev_has_event_pending</a>(<span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; </div>
+<div class="line"><a name="l01183"></a><span class="lineno"><a class="line" href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12"> 1183</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; </div>
+<div class="line"><a name="l01198"></a><span class="lineno"><a class="line" href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32"> 1198</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32">libevdev_set_name</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; </div>
+<div class="line"><a name="l01215"></a><span class="lineno"><a class="line" href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d"> 1215</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">libevdev_get_phys</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; </div>
+<div class="line"><a name="l01230"></a><span class="lineno"><a class="line" href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3"> 1230</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3">libevdev_set_phys</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *phys);</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; </div>
+<div class="line"><a name="l01245"></a><span class="lineno"><a class="line" href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4"> 1245</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">libevdev_get_uniq</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; </div>
+<div class="line"><a name="l01260"></a><span class="lineno"><a class="line" href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7"> 1260</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7">libevdev_set_uniq</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keyword">const</span> <span class="keywordtype">char</span> *uniq);</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; </div>
+<div class="line"><a name="l01271"></a><span class="lineno"><a class="line" href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac"> 1271</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; </div>
+<div class="line"><a name="l01284"></a><span class="lineno"><a class="line" href="group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799"> 1284</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799">libevdev_set_id_product</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> product_id);</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; </div>
+<div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3"> 1295</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; </div>
+<div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe"> 1308</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe">libevdev_set_id_vendor</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> vendor_id);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; </div>
+<div class="line"><a name="l01319"></a><span class="lineno"><a class="line" href="group__bits.html#ga9bf55d416401642bad0c435735682308"> 1319</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; </div>
+<div class="line"><a name="l01332"></a><span class="lineno"><a class="line" href="group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0"> 1332</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0">libevdev_set_id_bustype</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> bustype);</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; </div>
+<div class="line"><a name="l01343"></a><span class="lineno"><a class="line" href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae"> 1343</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae">libevdev_get_id_version</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; </div>
+<div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055"> 1356</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055">libevdev_set_id_version</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> version);</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; </div>
+<div class="line"><a name="l01367"></a><span class="lineno"><a class="line" href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa"> 1367</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa">libevdev_get_driver_version</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; </div>
+<div class="line"><a name="l01379"></a><span class="lineno"><a class="line" href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b"> 1379</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b">libevdev_has_property</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; </div>
+<div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6"> 1392</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6">libevdev_enable_property</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; </div>
+<div class="line"><a name="l01402"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019"> 1402</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019">libevdev_disable_property</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; </div>
+<div class="line"><a name="l01414"></a><span class="lineno"><a class="line" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14"> 1414</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; </div>
+<div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b"> 1427</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; </div>
+<div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e"> 1441</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">libevdev_get_abs_minimum</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; </div>
+<div class="line"><a name="l01455"></a><span class="lineno"><a class="line" href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca"> 1455</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">libevdev_get_abs_maximum</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; </div>
+<div class="line"><a name="l01469"></a><span class="lineno"><a class="line" href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a"> 1469</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">libevdev_get_abs_fuzz</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; </div>
+<div class="line"><a name="l01483"></a><span class="lineno"><a class="line" href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92"> 1483</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">libevdev_get_abs_flat</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; </div>
+<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4"> 1497</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4">libevdev_get_abs_resolution</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; </div>
+<div class="line"><a name="l01512"></a><span class="lineno"><a class="line" href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7"> 1512</a></span>&#160;<span class="keyword">const</span> <span class="keyword">struct </span>input_absinfo* <a class="code" href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">libevdev_get_abs_info</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; </div>
+<div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3"> 1535</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; </div>
+<div class="line"><a name="l01571"></a><span class="lineno"><a class="line" href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184"> 1571</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184">libevdev_set_event_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; </div>
+<div class="line"><a name="l01598"></a><span class="lineno"><a class="line" href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147"> 1598</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">libevdev_fetch_event_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> *value);</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; </div>
+<div class="line"><a name="l01620"></a><span class="lineno"><a class="line" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8"> 1620</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; </div>
+<div class="line"><a name="l01650"></a><span class="lineno"><a class="line" href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333"> 1650</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333">libevdev_set_slot_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; </div>
+<div class="line"><a name="l01677"></a><span class="lineno"><a class="line" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec"> 1677</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec">libevdev_fetch_slot_value</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> *value);</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; </div>
+<div class="line"><a name="l01692"></a><span class="lineno"><a class="line" href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088"> 1692</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088">libevdev_get_num_slots</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; </div>
+<div class="line"><a name="l01709"></a><span class="lineno"><a class="line" href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd"> 1709</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd">libevdev_get_current_slot</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev);</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; </div>
+<div class="line"><a name="l01722"></a><span class="lineno"><a class="line" href="group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a"> 1722</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a">libevdev_set_abs_minimum</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; </div>
+<div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6"> 1735</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6">libevdev_set_abs_maximum</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; </div>
+<div class="line"><a name="l01748"></a><span class="lineno"><a class="line" href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21"> 1748</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21">libevdev_set_abs_fuzz</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; </div>
+<div class="line"><a name="l01761"></a><span class="lineno"><a class="line" href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a"> 1761</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a">libevdev_set_abs_flat</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; </div>
+<div class="line"><a name="l01774"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038"> 1774</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038">libevdev_set_abs_resolution</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">int</span> val);</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; </div>
+<div class="line"><a name="l01787"></a><span class="lineno"><a class="line" href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049"> 1787</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049">libevdev_set_abs_info</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keyword">struct</span> input_absinfo *abs);</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; </div>
+<div class="line"><a name="l01806"></a><span class="lineno"><a class="line" href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca"> 1806</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; </div>
+<div class="line"><a name="l01834"></a><span class="lineno"><a class="line" href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a"> 1834</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a">libevdev_disable_event_type</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; </div>
+<div class="line"><a name="l01869"></a><span class="lineno"><a class="line" href="group__kernel.html#ga51cfda33fd526549046399aadd764fca"> 1869</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; </div>
+<div class="line"><a name="l01898"></a><span class="lineno"><a class="line" href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de"> 1898</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de">libevdev_disable_event_code</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; </div>
+<div class="line"><a name="l01914"></a><span class="lineno"><a class="line" href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9"> 1914</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9">libevdev_kernel_set_abs_info</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keyword">struct</span> input_absinfo *abs);</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; </div>
+<div class="line"><a name="l01919"></a><span class="lineno"><a class="line" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41"> 1919</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> {</div>
+<div class="line"><a name="l01920"></a><span class="lineno"><a class="line" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"> 1920</a></span>&#160; <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a> = 3, </div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; <a class="code" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a> = 4 </div>
+<div class="line"><a name="l01922"></a><span class="lineno"><a class="line" href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"> 1922</a></span>&#160;};</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; </div>
+<div class="line"><a name="l01937"></a><span class="lineno"><a class="line" href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01"> 1937</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01">libevdev_kernel_set_led_value</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keyword">enum</span> <a class="code" href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a> value);</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; </div>
+<div class="line"><a name="l01962"></a><span class="lineno"><a class="line" href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00"> 1962</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a>(<span class="keyword">struct</span> libevdev *dev, ...);</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; </div>
+<div class="line"><a name="l01978"></a><span class="lineno"><a class="line" href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d"> 1978</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d">libevdev_set_clock_id</a>(<span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> clockid);</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; </div>
+<div class="line"><a name="l02001"></a><span class="lineno"><a class="line" href="group__misc.html#gab8b6b80740e028261300b8952b61a596"> 2001</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gab8b6b80740e028261300b8952b61a596">libevdev_event_is_type</a>(<span class="keyword">const</span> <span class="keyword">struct</span> input_event *ev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; </div>
+<div class="line"><a name="l02026"></a><span class="lineno"><a class="line" href="group__misc.html#ga37766a6a498fef3294d589abcce688bb"> 2026</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga37766a6a498fef3294d589abcce688bb">libevdev_event_is_code</a>(<span class="keyword">const</span> <span class="keyword">struct</span> input_event *ev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; </div>
+<div class="line"><a name="l02039"></a><span class="lineno"><a class="line" href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09"> 2039</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l02052"></a><span class="lineno"><a class="line" href="group__misc.html#gab407b3c2caaae502859c28460cad17bb"> 2052</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; </div>
+<div class="line"><a name="l02074"></a><span class="lineno"><a class="line" href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3"> 2074</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3">libevdev_event_value_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type,</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; <span class="keywordtype">int</span> value);</div>
+<div class="line"><a name="l02090"></a><span class="lineno"><a class="line" href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892"> 2090</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892">libevdev_property_get_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prop);</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; </div>
+<div class="line"><a name="l02104"></a><span class="lineno"><a class="line" href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1"> 2104</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1">libevdev_event_type_get_max</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; </div>
+<div class="line"><a name="l02120"></a><span class="lineno"><a class="line" href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1"> 2120</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1">libevdev_event_type_from_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; </div>
+<div class="line"><a name="l02138"></a><span class="lineno"><a class="line" href="group__misc.html#ga4ee03d650200bb04a23233570667fa84"> 2138</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga4ee03d650200bb04a23233570667fa84">libevdev_event_type_from_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; </div>
+<div class="line"><a name="l02159"></a><span class="lineno"><a class="line" href="group__misc.html#ga6620301a67f467489e4a7f93afe81621"> 2159</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga6620301a67f467489e4a7f93afe81621">libevdev_event_code_from_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; </div>
+<div class="line"><a name="l02182"></a><span class="lineno"><a class="line" href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0"> 2182</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0">libevdev_event_code_from_name_n</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; </div>
+<div class="line"><a name="l02206"></a><span class="lineno"><a class="line" href="group__misc.html#ga314903beeafedabe45f879637e7254b0"> 2206</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga314903beeafedabe45f879637e7254b0">libevdev_event_value_from_name</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; </div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="keywordtype">int</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"><a class="line" href="group__misc.html#gadd41b7514cca16c8b8920f16e562e08a"> 2226</a></span>&#160;<a class="code" href="group__misc.html#gadd41b7514cca16c8b8920f16e562e08a">libevdev_event_type_from_code_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; </div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="keywordtype">int</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"><a class="line" href="group__misc.html#gab214498fca7a328f8a712ce15bf21982"> 2247</a></span>&#160;<a class="code" href="group__misc.html#gab214498fca7a328f8a712ce15bf21982">libevdev_event_type_from_code_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; </div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;<span class="keywordtype">int</span></div>
+<div class="line"><a name="l02266"></a><span class="lineno"><a class="line" href="group__misc.html#gabad00f68481d83747a134c0a37aca003"> 2266</a></span>&#160;<a class="code" href="group__misc.html#gabad00f68481d83747a134c0a37aca003">libevdev_event_code_from_code_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; </div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;<span class="keywordtype">int</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"><a class="line" href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466"> 2287</a></span>&#160;<a class="code" href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466">libevdev_event_code_from_code_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; </div>
+<div class="line"><a name="l02312"></a><span class="lineno"><a class="line" href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f"> 2312</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f">libevdev_event_value_from_name_n</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; </div>
+<div class="line"><a name="l02327"></a><span class="lineno"><a class="line" href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd"> 2327</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd">libevdev_property_from_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; </div>
+<div class="line"><a name="l02343"></a><span class="lineno"><a class="line" href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b"> 2343</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b">libevdev_property_from_name_n</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; </div>
+<div class="line"><a name="l02362"></a><span class="lineno"><a class="line" href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770"> 2362</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">libevdev_get_repeat</a>(<span class="keyword">const</span> <span class="keyword">struct</span> libevdev *dev, <span class="keywordtype">int</span> *delay, <span class="keywordtype">int</span> *period);</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160; </div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;<span class="comment">/********* DEPRECATED SECTION *********/</span></div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; __GNUC__ &gt;= 4</span></div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;<span class="preprocessor">#define LIBEVDEV_DEPRECATED __attribute__ ((deprecated))</span></div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l02368"></a><span class="lineno"><a class="line" href="libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae"> 2368</a></span>&#160;<span class="preprocessor">#define LIBEVDEV_DEPRECATED</span></div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; </div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;}</div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; </div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LIBEVDEV_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="agroup__bits_html_ga08891c3285da5b8d26769c9a34f063f3"><div class="ttname"><a href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a></div><div class="ttdeci">int libevdev_get_id_vendor(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_ga0a7be80d769294bf9758adf79c3c7147"><div class="ttname"><a href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">libevdev_fetch_event_value</a></div><div class="ttdeci">int libevdev_fetch_event_value(const struct libevdev *dev, unsigned int type, unsigned int code, int *value)</div><div class="ttdoc">Fetch the current value of the event type.</div></div>
+<div class="ttc" id="agroup__bits_html_ga1a3dfeb3bb2db0b4323c836c7ab10f1a"><div class="ttname"><a href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">libevdev_get_abs_fuzz</a></div><div class="ttdeci">int libevdev_get_abs_fuzz(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis fuzz for the given axis, as advertised by the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga1dc66cfef646878d58be72f8902a6bac"><div class="ttname"><a href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a></div><div class="ttdeci">int libevdev_get_id_product(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_ga31e9e7a99215a03bcdc339b53e1be2fa"><div class="ttname"><a href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa">libevdev_get_driver_version</a></div><div class="ttdeci">int libevdev_get_driver_version(const struct libevdev *dev)</div></div>
<div class="ttc" id="agroup__bits_html_ga36d529ea53f4522004bc7d16c051464b"><div class="ttname"><a href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b">libevdev_has_property</a></div><div class="ttdeci">int libevdev_has_property(const struct libevdev *dev, unsigned int prop)</div></div>
-<div class="ttc" id="agroup__misc_html_gab214498fca7a328f8a712ce15bf21982"><div class="ttname"><a href="group__misc.html#gab214498fca7a328f8a712ce15bf21982">libevdev_event_type_from_code_name_n</a></div><div class="ttdeci">int libevdev_event_type_from_code_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event type for a event code name.</div></div>
-<div class="ttc" id="agroup__init_html_ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88"><div class="ttname"><a href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a></div><div class="ttdeci">@ LIBEVDEV_GRAB</div><div class="ttdoc">Grab the device if not currently grabbed.</div><div class="ttdef"><b>Definition:</b> libevdev.h:956</div></div>
-<div class="ttc" id="agroup__misc_html_ga314903beeafedabe45f879637e7254b0"><div class="ttname"><a href="group__misc.html#ga314903beeafedabe45f879637e7254b0">libevdev_event_value_from_name</a></div><div class="ttdeci">int libevdev_event_value_from_name(unsigned int type, unsigned int code, const char *name)</div><div class="ttdoc">Look up an event value by its type, code and name.</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_BLOCKING</div><div class="ttdoc">The fd is not in O_NONBLOCK and a read may block.</div><div class="ttdef"><b>Definition:</b> libevdev.h:762</div></div>
-<div class="ttc" id="agroup__misc_html_gaaa0bc4c7d0d2aedc84c7dcffee9ce29b"><div class="ttname"><a href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b">libevdev_property_from_name_n</a></div><div class="ttdeci">int libevdev_property_from_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an input property by its name.</div></div>
-<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a></div><div class="ttdeci">@ LIBEVDEV_LED_OFF</div><div class="ttdoc">Turn the LED off.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1919</div></div>
+<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
+<div class="ttc" id="agroup__bits_html_ga482ce989a3f62f7e67e4ea7ad534189e"><div class="ttname"><a href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">libevdev_get_abs_minimum</a></div><div class="ttdeci">int libevdev_get_abs_minimum(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the minimum axis value for the given axis, as advertised by the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga5df483b0b24d7b96ea1181808fab851d"><div class="ttname"><a href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">libevdev_get_phys</a></div><div class="ttdeci">const char * libevdev_get_phys(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's physical location, either as set by the caller or as read from the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga6259f4c6bdba950329ff9cd48c2ef8a3"><div class="ttname"><a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a></div><div class="ttdeci">int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Behaviour of this function is undefined if the device does not provide the event.</div></div>
+<div class="ttc" id="agroup__bits_html_ga6b3f7ebae2324524dc41384acd724b92"><div class="ttname"><a href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">libevdev_get_abs_flat</a></div><div class="ttdeci">int libevdev_get_abs_flat(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis flat for the given axis, as advertised by the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga6d8e2caf87fa536fad979346671838d7"><div class="ttname"><a href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">libevdev_get_abs_info</a></div><div class="ttdeci">const struct input_absinfo * libevdev_get_abs_info(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis info for the given axis, as advertised by the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga6d9f7d44bff8828ead3d251177035ca4"><div class="ttname"><a href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">libevdev_get_uniq</a></div><div class="ttdeci">const char * libevdev_get_uniq(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.</div></div>
<div class="ttc" id="agroup__bits_html_ga75751e637a845201b6d1c419ecfa6ba4"><div class="ttname"><a href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4">libevdev_get_abs_resolution</a></div><div class="ttdeci">int libevdev_get_abs_resolution(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis resolution for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__misc_html_ga4ee03d650200bb04a23233570667fa84"><div class="ttname"><a href="group__misc.html#ga4ee03d650200bb04a23233570667fa84">libevdev_event_type_from_name_n</a></div><div class="ttdeci">int libevdev_event_type_from_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event-type by its name.</div></div>
-<div class="ttc" id="agroup__events_html_ga4a96221b3c7f54dfb86035d952154e3a"><div class="ttname"><a href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a></div><div class="ttdeci">libevdev_read_status</div><div class="ttdef"><b>Definition:</b> libevdev.h:1071</div></div>
-<div class="ttc" id="agroup__kernel_html_ga59ef78b1557f9543d0060ab25b0167ca"><div class="ttname"><a href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a></div><div class="ttdeci">int libevdev_enable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly enable an event type on this device, even if the underlying device does not support it.</div></div>
-<div class="ttc" id="agroup__misc_html_ga6f4418c98aa475a2fc34d58a197f7edd"><div class="ttname"><a href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd">libevdev_property_from_name</a></div><div class="ttdeci">int libevdev_property_from_name(const char *name)</div><div class="ttdoc">Look up an input property by its name.</div></div>
-<div class="ttc" id="agroup__kernel_html_gafc552080520c9d886452b05f3a1d75b6"><div class="ttname"><a href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6">libevdev_enable_property</a></div><div class="ttdeci">int libevdev_enable_property(struct libevdev *dev, unsigned int prop)</div></div>
-<div class="ttc" id="agroup__kernel_html_ga93a19fa6e5be57903aff7c4a60af2a00"><div class="ttname"><a href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a></div><div class="ttdeci">int libevdev_kernel_set_led_values(struct libevdev *dev,...)</div><div class="ttdoc">Turn multiple LEDs on or off simultaneously.</div></div>
-<div class="ttc" id="agroup__bits_html_ga0a7be80d769294bf9758adf79c3c7147"><div class="ttname"><a href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">libevdev_fetch_event_value</a></div><div class="ttdeci">int libevdev_fetch_event_value(const struct libevdev *dev, unsigned int type, unsigned int code, int *value)</div><div class="ttdoc">Fetch the current value of the event type.</div></div>
-<div class="ttc" id="agroup__logging_html_gaa60be86b83b3a6c82d8e536ba89ff955"><div class="ttname"><a href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a></div><div class="ttdeci">void libevdev_set_log_function(libevdev_log_func_t logfunc, void *data)</div><div class="ttdoc">Set a printf-style logging handler for library-internal logging.</div></div>
-<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
-<div class="ttc" id="agroup__mt_html_ga8c6303391cb4f90b2d46763cf4eb8bc8"><div class="ttname"><a href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a></div><div class="ttdeci">int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)</div><div class="ttdoc">Return the current value of the code for the given slot.</div></div>
-<div class="ttc" id="agroup__logging_html_ga0b798d0864f2b1b10e4603f9431b3364"><div class="ttname"><a href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a></div><div class="ttdeci">libevdev_log_priority</div><div class="ttdef"><b>Definition:</b> libevdev.h:823</div></div>
<div class="ttc" id="agroup__bits_html_ga75a07d0c96dfe09d2194c104c429d0ae"><div class="ttname"><a href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae">libevdev_get_id_version</a></div><div class="ttdeci">int libevdev_get_id_version(const struct libevdev *dev)</div></div>
-<div class="ttc" id="alibevdev_8h_html_a64a0f325e88e1be50eb806e1ff75aec8"><div class="ttname"><a href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a></div><div class="ttdeci">#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args)</div><div class="ttdef"><b>Definition:</b> libevdev.h:33</div></div>
-<div class="ttc" id="agroup__logging_html_gaf36c721d273c0794251eb7dacea2f0a4"><div class="ttname"><a href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a></div><div class="ttdeci">void(* libevdev_log_func_t)(enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</div><div class="ttdoc">Logging function called by library-internal logging.</div><div class="ttdef"><b>Definition:</b> libevdev.h:845</div></div>
-<div class="ttc" id="agroup__misc_html_gab407b3c2caaae502859c28460cad17bb"><div class="ttname"><a href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a></div><div class="ttdeci">const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)</div></div>
-<div class="ttc" id="agroup__kernel_html_ga41c0321b93349d0ddd1f1c007ccf7de9"><div class="ttname"><a href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9">libevdev_kernel_set_abs_info</a></div><div class="ttdeci">int libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)</div><div class="ttdoc">Set the device's EV_ABS axis to the value defined in the abs parameter.</div></div>
-<div class="ttc" id="agroup__bits_html_ga6259f4c6bdba950329ff9cd48c2ef8a3"><div class="ttname"><a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a></div><div class="ttdeci">int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Behaviour of this function is undefined if the device does not provide the event.</div></div>
-<div class="ttc" id="agroup__misc_html_ga17a760a9eea9dc25011f39e1d5c282a0"><div class="ttname"><a href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0">libevdev_event_code_from_name_n</a></div><div class="ttdeci">int libevdev_event_code_from_name_n(unsigned int type, const char *name, size_t len)</div><div class="ttdoc">Look up an event code by its type and name.</div></div>
-<div class="ttc" id="agroup__misc_html_ga5bf9af4b8c372d87793e8a3c2dbeb466"><div class="ttname"><a href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466">libevdev_event_code_from_code_name_n</a></div><div class="ttdeci">int libevdev_event_code_from_code_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event code by its name.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga0c61f4919b03b0850529a50c37a20333"><div class="ttname"><a href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333">libevdev_set_slot_value</a></div><div class="ttdeci">int libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned int code, int value)</div><div class="ttdoc">Set the value for a given code for the given slot.</div></div>
+<div class="ttc" id="agroup__bits_html_ga97a3411ae85f1f3b5c5eb1d5351b11ca"><div class="ttname"><a href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">libevdev_get_abs_maximum</a></div><div class="ttdeci">int libevdev_get_abs_maximum(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the maximum axis value for the given axis, as advertised by the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_ga9bf55d416401642bad0c435735682308"><div class="ttname"><a href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a></div><div class="ttdeci">int libevdev_get_id_bustype(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div>
+<div class="ttc" id="agroup__bits_html_gaed0328c67b7a78422636d9fe09a73f12"><div class="ttname"><a href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a></div><div class="ttdeci">const char * libevdev_get_name(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's name, either as set by the caller or as read from the kernel.</div></div>
+<div class="ttc" id="agroup__bits_html_gaf12fa199bb9497b38358d72e7505d770"><div class="ttname"><a href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">libevdev_get_repeat</a></div><div class="ttdeci">int libevdev_get_repeat(const struct libevdev *dev, int *delay, int *period)</div><div class="ttdoc">Get the repeat delay and repeat period values for this device.</div></div>
+<div class="ttc" id="agroup__events_html_ga4a96221b3c7f54dfb86035d952154e3a"><div class="ttname"><a href="group__events.html#ga4a96221b3c7f54dfb86035d952154e3a">libevdev_read_status</a></div><div class="ttdeci">libevdev_read_status</div><div class="ttdef"><b>Definition:</b> libevdev.h:1074</div></div>
+<div class="ttc" id="agroup__events_html_ga56c288d9f2e4c1632986c4e218c494e9"><div class="ttname"><a href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a></div><div class="ttdeci">libevdev_read_flag</div><div class="ttdef"><b>Definition:</b> libevdev.h:760</div></div>
+<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
+<div class="ttc" id="agroup__events_html_gae18fbfb59064c9c4b9d5db2d8cb23784"><div class="ttname"><a href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784">libevdev_has_event_pending</a></div><div class="ttdeci">int libevdev_has_event_pending(struct libevdev *dev)</div><div class="ttdoc">Check if there are events waiting for us.</div></div>
+<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1090</div></div>
+<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SUCCESS</div><div class="ttdoc">libevdev_next_event() has finished without an error and an event is available for processing.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1081</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19">LIBEVDEV_READ_FLAG_BLOCKING</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_BLOCKING</div><div class="ttdoc">The fd is not in O_NONBLOCK and a read may block.</div><div class="ttdef"><b>Definition:</b> libevdev.h:765</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:761</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_FORCE_SYNC</div><div class="ttdoc">Pretend the next event is a SYN_DROPPED and require the caller to sync.</div><div class="ttdef"><b>Definition:</b> libevdev.h:763</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:762</div></div>
+<div class="ttc" id="agroup__init_html_ga332c8ee260b4ef864345abe5d04e820c"><div class="ttname"><a href="group__init.html#ga332c8ee260b4ef864345abe5d04e820c">libevdev_new</a></div><div class="ttdeci">struct libevdev * libevdev_new(void)</div><div class="ttdoc">Initialize a new libevdev device.</div></div>
+<div class="ttc" id="agroup__init_html_ga5d434af74fee20f273db568e2cbbd13f"><div class="ttname"><a href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f">libevdev_grab</a></div><div class="ttdeci">int libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab)</div><div class="ttdoc">Grab or ungrab the device through a kernel EVIOCGRAB.</div></div>
<div class="ttc" id="agroup__init_html_ga6658ac490d68c307ff8b8d1536c12b44"><div class="ttname"><a href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44">libevdev_set_fd</a></div><div class="ttdeci">int libevdev_set_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Set the fd for this struct and initialize internal data.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga8ce28051ebbb73de1d04d782f4d0d6fe"><div class="ttname"><a href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe">libevdev_set_id_vendor</a></div><div class="ttdeci">void libevdev_set_id_vendor(struct libevdev *dev, int vendor_id)</div></div>
-<div class="ttc" id="agroup__kernel_html_gabd309f30744a49e9391250b00ba2d67a"><div class="ttname"><a href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a">libevdev_set_abs_flat</a></div><div class="ttdeci">void libevdev_set_abs_flat(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the flat for the given EV_ABS event code, if the code exists.</div></div>
+<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
+<div class="ttc" id="agroup__init_html_gaa282ec9badaa6bc11b1dc5bb124dbd5b"><div class="ttname"><a href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a></div><div class="ttdeci">libevdev_grab_mode</div><div class="ttdef"><b>Definition:</b> libevdev.h:958</div></div>
+<div class="ttc" id="agroup__init_html_gab9bfc800859ac3aa63f41d58ec4b616c"><div class="ttname"><a href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c">libevdev_get_fd</a></div><div class="ttdeci">int libevdev_get_fd(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__init_html_gac71c9cca4c572ed1b1a8c233be70a17c"><div class="ttname"><a href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a></div><div class="ttdeci">int libevdev_change_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Change the fd for this device, without re-reading the actual device.</div></div>
<div class="ttc" id="agroup__init_html_gacd9fe760d15be25fc99ce469034bd78c"><div class="ttname"><a href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c">libevdev_free</a></div><div class="ttdeci">void libevdev_free(struct libevdev *dev)</div><div class="ttdoc">Clean up and free the libevdev struct.</div></div>
-<div class="ttc" id="agroup__logging_html_ga1da07493a798595cf85c127490b98ee8"><div class="ttname"><a href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a></div><div class="ttdeci">enum libevdev_log_priority libevdev_get_log_priority(void)</div><div class="ttdoc">Return the current log priority level.</div></div>
-<div class="ttc" id="agroup__bits_html_gaf12fa199bb9497b38358d72e7505d770"><div class="ttname"><a href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">libevdev_get_repeat</a></div><div class="ttdeci">int libevdev_get_repeat(const struct libevdev *dev, int *delay, int *period)</div><div class="ttdoc">Get the repeat delay and repeat period values for this device.</div></div>
-<div class="ttc" id="agroup__mt_html_gaca19dca5aa8f0ea3b210f3fc670384ec"><div class="ttname"><a href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec">libevdev_fetch_slot_value</a></div><div class="ttdeci">int libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code, int *value)</div><div class="ttdoc">Fetch the current value of the code for the given slot.</div></div>
+<div class="ttc" id="agroup__init_html_ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb"><div class="ttname"><a href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb">LIBEVDEV_UNGRAB</a></div><div class="ttdeci">@ LIBEVDEV_UNGRAB</div><div class="ttdoc">Ungrab the device if currently grabbed.</div><div class="ttdef"><b>Definition:</b> libevdev.h:960</div></div>
+<div class="ttc" id="agroup__init_html_ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88"><div class="ttname"><a href="group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88">LIBEVDEV_GRAB</a></div><div class="ttdeci">@ LIBEVDEV_GRAB</div><div class="ttdoc">Grab the device if not currently grabbed.</div><div class="ttdef"><b>Definition:</b> libevdev.h:959</div></div>
+<div class="ttc" id="agroup__kernel_html_ga0c61f4919b03b0850529a50c37a20333"><div class="ttname"><a href="group__kernel.html#ga0c61f4919b03b0850529a50c37a20333">libevdev_set_slot_value</a></div><div class="ttdeci">int libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned int code, int value)</div><div class="ttdoc">Set the value for a given code for the given slot.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga2266b59711cdaa4fc12fa56c9313a038"><div class="ttname"><a href="group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038">libevdev_set_abs_resolution</a></div><div class="ttdeci">void libevdev_set_abs_resolution(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the resolution for the given EV_ABS event code, if the code exists.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga2302fd9a491d8e27280157d67a703af6"><div class="ttname"><a href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6">libevdev_set_abs_maximum</a></div><div class="ttdeci">void libevdev_set_abs_maximum(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the maximum for the given EV_ABS event code, if the code exists.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga2925b6fbf8c7991ff2164424b840b82d"><div class="ttname"><a href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d">libevdev_set_clock_id</a></div><div class="ttdeci">int libevdev_set_clock_id(struct libevdev *dev, int clockid)</div><div class="ttdoc">Set the clock ID to be used for timestamps.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga41c0321b93349d0ddd1f1c007ccf7de9"><div class="ttname"><a href="group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9">libevdev_kernel_set_abs_info</a></div><div class="ttdeci">int libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)</div><div class="ttdoc">Set the device's EV_ABS axis to the value defined in the abs parameter.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga4e4fd2627744fd5811c50c7403f27ad7"><div class="ttname"><a href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7">libevdev_set_uniq</a></div><div class="ttdeci">void libevdev_set_uniq(struct libevdev *dev, const char *uniq)</div><div class="ttdoc">Change the device's unique identifier as returned by libevdev_get_uniq().</div></div>
+<div class="ttc" id="agroup__kernel_html_ga51cfda33fd526549046399aadd764fca"><div class="ttname"><a href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a></div><div class="ttdeci">int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data)</div><div class="ttdoc">Forcibly enable an event code on this device, even if the underlying device does not support it.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga59ef78b1557f9543d0060ab25b0167ca"><div class="ttname"><a href="group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca">libevdev_enable_event_type</a></div><div class="ttdeci">int libevdev_enable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly enable an event type on this device, even if the underlying device does not support it.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga6199a7c8144f54e092e913c2d2df16de"><div class="ttname"><a href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de">libevdev_disable_event_code</a></div><div class="ttdeci">int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Forcibly disable an event code on this device, even if the underlying device provides it.</div></div>
<div class="ttc" id="agroup__kernel_html_ga62fbdaac056ab5c3db154a9eeaf33799"><div class="ttname"><a href="group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799">libevdev_set_id_product</a></div><div class="ttdeci">void libevdev_set_id_product(struct libevdev *dev, int product_id)</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c">LIBEVDEV_READ_FLAG_FORCE_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_FORCE_SYNC</div><div class="ttdoc">Pretend the next event is a SYN_DROPPED and require the caller to sync.</div><div class="ttdef"><b>Definition:</b> libevdev.h:760</div></div>
-<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div>
+<div class="ttc" id="agroup__kernel_html_ga79e82ee2a95cb08adb4172aabe0c7184"><div class="ttname"><a href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184">libevdev_set_event_value</a></div><div class="ttdeci">int libevdev_set_event_value(struct libevdev *dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Set the value for a given event type and code.</div></div>
+<div class="ttc" id="agroup__kernel_html_ga8cddf7779debef0067665671e911ec41"><div class="ttname"><a href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a></div><div class="ttdeci">libevdev_led_value</div><div class="ttdef"><b>Definition:</b> libevdev.h:1919</div></div>
+<div class="ttc" id="agroup__kernel_html_ga8ce28051ebbb73de1d04d782f4d0d6fe"><div class="ttname"><a href="group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe">libevdev_set_id_vendor</a></div><div class="ttdeci">void libevdev_set_id_vendor(struct libevdev *dev, int vendor_id)</div></div>
+<div class="ttc" id="agroup__kernel_html_ga8f6367c36331c803ad69b2591e210019"><div class="ttname"><a href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019">libevdev_disable_property</a></div><div class="ttdeci">int libevdev_disable_property(struct libevdev *dev, unsigned int prop)</div></div>
+<div class="ttc" id="agroup__kernel_html_ga93a19fa6e5be57903aff7c4a60af2a00"><div class="ttname"><a href="group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00">libevdev_kernel_set_led_values</a></div><div class="ttdeci">int libevdev_kernel_set_led_values(struct libevdev *dev,...)</div><div class="ttdoc">Turn multiple LEDs on or off simultaneously.</div></div>
+<div class="ttc" id="agroup__kernel_html_gaa192bf0c68620be819337da6ec361c21"><div class="ttname"><a href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21">libevdev_set_abs_fuzz</a></div><div class="ttdeci">void libevdev_set_abs_fuzz(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the fuzz for the given EV_ABS event code, if the code exists.</div></div>
+<div class="ttc" id="agroup__kernel_html_gaa7d13aeac3c40e16f296467780e67c01"><div class="ttname"><a href="group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01">libevdev_kernel_set_led_value</a></div><div class="ttdeci">int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum libevdev_led_value value)</div><div class="ttdoc">Turn an LED on or off.</div></div>
+<div class="ttc" id="agroup__kernel_html_gabbacb53b66882b5335055c0fd1f40d9a"><div class="ttname"><a href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a">libevdev_disable_event_type</a></div><div class="ttdeci">int libevdev_disable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly disable an event type on this device, even if the underlying device provides it.</div></div>
+<div class="ttc" id="agroup__kernel_html_gabd309f30744a49e9391250b00ba2d67a"><div class="ttname"><a href="group__kernel.html#gabd309f30744a49e9391250b00ba2d67a">libevdev_set_abs_flat</a></div><div class="ttdeci">void libevdev_set_abs_flat(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the flat for the given EV_ABS event code, if the code exists.</div></div>
<div class="ttc" id="agroup__kernel_html_gaca62172c2a823cd02eacf0d2292d917a"><div class="ttname"><a href="group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a">libevdev_set_abs_minimum</a></div><div class="ttdeci">void libevdev_set_abs_minimum(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the minimum for the given EV_ABS event code, if the code exists.</div></div>
-<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a></div><div class="ttdeci">@ LIBEVDEV_LOG_INFO</div><div class="ttdoc">informational messages</div><div class="ttdef"><b>Definition:</b> libevdev.h:825</div></div>
-<div class="ttc" id="agroup__events_html_gae18fbfb59064c9c4b9d5db2d8cb23784"><div class="ttname"><a href="group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784">libevdev_has_event_pending</a></div><div class="ttdeci">int libevdev_has_event_pending(struct libevdev *dev)</div><div class="ttdoc">Check if there are events waiting for us.</div></div>
-<div class="ttc" id="agroup__kernel_html_gafc7a4f5308e2dbf55f875630b8dca049"><div class="ttname"><a href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049">libevdev_set_abs_info</a></div><div class="ttdeci">void libevdev_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)</div><div class="ttdoc">Change the abs info for the given EV_ABS event code, if the code exists.</div></div>
-<div class="ttc" id="agroup__bits_html_ga9bf55d416401642bad0c435735682308"><div class="ttname"><a href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a></div><div class="ttdeci">int libevdev_get_id_bustype(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__kernel_html_gacd57c8d6ace8e0b1417809a9c1c67af3"><div class="ttname"><a href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3">libevdev_set_phys</a></div><div class="ttdeci">void libevdev_set_phys(struct libevdev *dev, const char *phys)</div><div class="ttdoc">Change the device's physical location as returned by libevdev_get_phys().</div></div>
<div class="ttc" id="agroup__kernel_html_gae5dcdb7678cdc9be4ab1989725b4ed32"><div class="ttname"><a href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32">libevdev_set_name</a></div><div class="ttdeci">void libevdev_set_name(struct libevdev *dev, const char *name)</div><div class="ttdoc">Change the device's name as returned by libevdev_get_name().</div></div>
-<div class="ttc" id="agroup__bits_html_ga6d9f7d44bff8828ead3d251177035ca4"><div class="ttname"><a href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">libevdev_get_uniq</a></div><div class="ttdeci">const char * libevdev_get_uniq(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.</div></div>
+<div class="ttc" id="agroup__kernel_html_gaee1d2db88b191ec21d5bf22dd4fe3055"><div class="ttname"><a href="group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055">libevdev_set_id_version</a></div><div class="ttdeci">void libevdev_set_id_version(struct libevdev *dev, int version)</div></div>
<div class="ttc" id="agroup__kernel_html_gaf99139c728ba1bd4b37ede612780b6b0"><div class="ttname"><a href="group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0">libevdev_set_id_bustype</a></div><div class="ttdeci">void libevdev_set_id_bustype(struct libevdev *dev, int bustype)</div></div>
-<div class="ttc" id="agroup__events_html_ga56c288d9f2e4c1632986c4e218c494e9"><div class="ttname"><a href="group__events.html#ga56c288d9f2e4c1632986c4e218c494e9">libevdev_read_flag</a></div><div class="ttdeci">libevdev_read_flag</div><div class="ttdef"><b>Definition:</b> libevdev.h:757</div></div>
-<div class="ttc" id="agroup__bits_html_ga1dc66cfef646878d58be72f8902a6bac"><div class="ttname"><a href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a></div><div class="ttdeci">int libevdev_get_id_product(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__kernel_html_gafc552080520c9d886452b05f3a1d75b6"><div class="ttname"><a href="group__kernel.html#gafc552080520c9d886452b05f3a1d75b6">libevdev_enable_property</a></div><div class="ttdeci">int libevdev_enable_property(struct libevdev *dev, unsigned int prop)</div></div>
+<div class="ttc" id="agroup__kernel_html_gafc7a4f5308e2dbf55f875630b8dca049"><div class="ttname"><a href="group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049">libevdev_set_abs_info</a></div><div class="ttdeci">void libevdev_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)</div><div class="ttdoc">Change the abs info for the given EV_ABS event code, if the code exists.</div></div>
+<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065">LIBEVDEV_LED_OFF</a></div><div class="ttdeci">@ LIBEVDEV_LED_OFF</div><div class="ttdoc">Turn the LED off.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1921</div></div>
+<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a></div><div class="ttdeci">@ LIBEVDEV_LED_ON</div><div class="ttdoc">Turn the LED on.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1920</div></div>
+<div class="ttc" id="agroup__logging_html_ga0b798d0864f2b1b10e4603f9431b3364"><div class="ttname"><a href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a></div><div class="ttdeci">libevdev_log_priority</div><div class="ttdef"><b>Definition:</b> libevdev.h:826</div></div>
+<div class="ttc" id="agroup__logging_html_ga1da07493a798595cf85c127490b98ee8"><div class="ttname"><a href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a></div><div class="ttdeci">enum libevdev_log_priority libevdev_get_log_priority(void)</div><div class="ttdoc">Return the current log priority level.</div></div>
<div class="ttc" id="agroup__logging_html_ga2830ff0aa391d8d1111682d3e762091b"><div class="ttname"><a href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">libevdev_set_device_log_function</a></div><div class="ttdeci">void libevdev_set_device_log_function(struct libevdev *dev, libevdev_device_log_func_t logfunc, enum libevdev_log_priority priority, void *data)</div><div class="ttdoc">Set a printf-style logging handler for library-internal logging for this device context.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga8cddf7779debef0067665671e911ec41"><div class="ttname"><a href="group__kernel.html#ga8cddf7779debef0067665671e911ec41">libevdev_led_value</a></div><div class="ttdeci">libevdev_led_value</div><div class="ttdef"><b>Definition:</b> libevdev.h:1917</div></div>
-<div class="ttc" id="agroup__bits_html_ga08891c3285da5b8d26769c9a34f063f3"><div class="ttname"><a href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a></div><div class="ttdeci">int libevdev_get_id_vendor(const struct libevdev *dev)</div></div>
-<div class="ttc" id="agroup__kernel_html_ga4e4fd2627744fd5811c50c7403f27ad7"><div class="ttname"><a href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7">libevdev_set_uniq</a></div><div class="ttdeci">void libevdev_set_uniq(struct libevdev *dev, const char *uniq)</div><div class="ttdoc">Change the device's unique identifier as returned by libevdev_get_uniq().</div></div>
-<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a></div><div class="ttdeci">@ LIBEVDEV_LOG_ERROR</div><div class="ttdoc">critical errors and application bugs</div><div class="ttdef"><b>Definition:</b> libevdev.h:824</div></div>
-<div class="ttc" id="agroup__bits_html_ga6b3f7ebae2324524dc41384acd724b92"><div class="ttname"><a href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">libevdev_get_abs_flat</a></div><div class="ttdeci">int libevdev_get_abs_flat(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis flat for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__mt_html_gaf272526f0a59d2f61ef7389046cd4088"><div class="ttname"><a href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088">libevdev_get_num_slots</a></div><div class="ttdeci">int libevdev_get_num_slots(const struct libevdev *dev)</div><div class="ttdoc">Get the number of slots supported by this device.</div></div>
-<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1087</div></div>
-<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a></div><div class="ttdeci">@ LIBEVDEV_LOG_DEBUG</div><div class="ttdoc">debug information</div><div class="ttdef"><b>Definition:</b> libevdev.h:826</div></div>
-<div class="ttc" id="agroup__events_html_gabb96c864e836c0b98788f4ab771c3a76"><div class="ttname"><a href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76">libevdev_next_event</a></div><div class="ttdeci">int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)</div><div class="ttdoc">Get the next event from the device.</div></div>
-<div class="ttc" id="agroup__bits_html_ga482ce989a3f62f7e67e4ea7ad534189e"><div class="ttname"><a href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">libevdev_get_abs_minimum</a></div><div class="ttdeci">int libevdev_get_abs_minimum(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the minimum axis value for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga8f6367c36331c803ad69b2591e210019"><div class="ttname"><a href="group__kernel.html#ga8f6367c36331c803ad69b2591e210019">libevdev_disable_property</a></div><div class="ttdeci">int libevdev_disable_property(struct libevdev *dev, unsigned int prop)</div></div>
-<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7">LIBEVDEV_READ_STATUS_SUCCESS</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SUCCESS</div><div class="ttdoc">libevdev_next_event() has finished without an error and an event is available for processing.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1078</div></div>
-<div class="ttc" id="agroup__mt_html_gad22e2420be668b56ef486cde2e98c5dd"><div class="ttname"><a href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd">libevdev_get_current_slot</a></div><div class="ttdeci">int libevdev_get_current_slot(const struct libevdev *dev)</div><div class="ttdoc">Get the currently active slot.</div></div>
+<div class="ttc" id="agroup__logging_html_gaa60be86b83b3a6c82d8e536ba89ff955"><div class="ttname"><a href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a></div><div class="ttdeci">void libevdev_set_log_function(libevdev_log_func_t logfunc, void *data)</div><div class="ttdoc">Set a printf-style logging handler for library-internal logging.</div></div>
+<div class="ttc" id="agroup__logging_html_gab7eb997be2b701cc6f42e7b4c3478269"><div class="ttname"><a href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a></div><div class="ttdeci">void(* libevdev_device_log_func_t)(const struct libevdev *dev, enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</div><div class="ttdoc">Logging function called by library-internal logging for a specific libevdev context.</div><div class="ttdef"><b>Definition:</b> libevdev.h:921</div></div>
+<div class="ttc" id="agroup__logging_html_gaf36c721d273c0794251eb7dacea2f0a4"><div class="ttname"><a href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a></div><div class="ttdeci">void(* libevdev_log_func_t)(enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</div><div class="ttdoc">Logging function called by library-internal logging.</div><div class="ttdef"><b>Definition:</b> libevdev.h:848</div></div>
+<div class="ttc" id="agroup__logging_html_gaf6b6842a9ed98b61d0abb421e853fd89"><div class="ttname"><a href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a></div><div class="ttdeci">void libevdev_set_log_priority(enum libevdev_log_priority priority)</div><div class="ttdoc">Define the minimum level to be printed to the log handler.</div></div>
+<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a></div><div class="ttdeci">@ LIBEVDEV_LOG_ERROR</div><div class="ttdoc">critical errors and application bugs</div><div class="ttdef"><b>Definition:</b> libevdev.h:827</div></div>
+<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a></div><div class="ttdeci">@ LIBEVDEV_LOG_INFO</div><div class="ttdoc">informational messages</div><div class="ttdef"><b>Definition:</b> libevdev.h:828</div></div>
+<div class="ttc" id="agroup__logging_html_gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"><div class="ttname"><a href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a></div><div class="ttdeci">@ LIBEVDEV_LOG_DEBUG</div><div class="ttdoc">debug information</div><div class="ttdef"><b>Definition:</b> libevdev.h:829</div></div>
+<div class="ttc" id="agroup__misc_html_ga17a760a9eea9dc25011f39e1d5c282a0"><div class="ttname"><a href="group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0">libevdev_event_code_from_name_n</a></div><div class="ttdeci">int libevdev_event_code_from_name_n(unsigned int type, const char *name, size_t len)</div><div class="ttdoc">Look up an event code by its type and name.</div></div>
+<div class="ttc" id="agroup__misc_html_ga314903beeafedabe45f879637e7254b0"><div class="ttname"><a href="group__misc.html#ga314903beeafedabe45f879637e7254b0">libevdev_event_value_from_name</a></div><div class="ttdeci">int libevdev_event_value_from_name(unsigned int type, unsigned int code, const char *name)</div><div class="ttdoc">Look up an event value by its type, code and name.</div></div>
<div class="ttc" id="agroup__misc_html_ga37766a6a498fef3294d589abcce688bb"><div class="ttname"><a href="group__misc.html#ga37766a6a498fef3294d589abcce688bb">libevdev_event_is_code</a></div><div class="ttdeci">int libevdev_event_is_code(const struct input_event *ev, unsigned int type, unsigned int code)</div><div class="ttdoc">Helper function to check if an event is of a specific type and code.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga51cfda33fd526549046399aadd764fca"><div class="ttname"><a href="group__kernel.html#ga51cfda33fd526549046399aadd764fca">libevdev_enable_event_code</a></div><div class="ttdeci">int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data)</div><div class="ttdoc">Forcibly enable an event code on this device, even if the underlying device does not support it.</div></div>
-<div class="ttc" id="agroup__misc_html_gacc12bdb7b912070ac9c375428f2c9892"><div class="ttname"><a href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892">libevdev_property_get_name</a></div><div class="ttdeci">const char * libevdev_property_get_name(unsigned int prop)</div></div>
-<div class="ttc" id="agroup__misc_html_gabcd45c5e963cba245e944ea66e72fcc3"><div class="ttname"><a href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3">libevdev_event_value_get_name</a></div><div class="ttdeci">const char * libevdev_event_value_get_name(unsigned int type, unsigned int code, int value)</div><div class="ttdoc">This function resolves the event value for a code.</div></div>
-<div class="ttc" id="agroup__bits_html_ga31e9e7a99215a03bcdc339b53e1be2fa"><div class="ttname"><a href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa">libevdev_get_driver_version</a></div><div class="ttdeci">int libevdev_get_driver_version(const struct libevdev *dev)</div></div>
+<div class="ttc" id="agroup__misc_html_ga4ee03d650200bb04a23233570667fa84"><div class="ttname"><a href="group__misc.html#ga4ee03d650200bb04a23233570667fa84">libevdev_event_type_from_name_n</a></div><div class="ttdeci">int libevdev_event_type_from_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event-type by its name.</div></div>
+<div class="ttc" id="agroup__misc_html_ga5bf9af4b8c372d87793e8a3c2dbeb466"><div class="ttname"><a href="group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466">libevdev_event_code_from_code_name_n</a></div><div class="ttdeci">int libevdev_event_code_from_code_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event code by its name.</div></div>
+<div class="ttc" id="agroup__misc_html_ga61ce3bf1e66bd172e583b86a11fc41f1"><div class="ttname"><a href="group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1">libevdev_event_type_from_name</a></div><div class="ttdeci">int libevdev_event_type_from_name(const char *name)</div><div class="ttdoc">Look up an event-type by its name.</div></div>
<div class="ttc" id="agroup__misc_html_ga6620301a67f467489e4a7f93afe81621"><div class="ttname"><a href="group__misc.html#ga6620301a67f467489e4a7f93afe81621">libevdev_event_code_from_name</a></div><div class="ttdeci">int libevdev_event_code_from_name(unsigned int type, const char *name)</div><div class="ttdoc">Look up an event code by its type and name.</div></div>
-<div class="ttc" id="agroup__kernel_html_ga2925b6fbf8c7991ff2164424b840b82d"><div class="ttname"><a href="group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d">libevdev_set_clock_id</a></div><div class="ttdeci">int libevdev_set_clock_id(struct libevdev *dev, int clockid)</div><div class="ttdoc">Set the clock ID to be used for timestamps.</div></div>
-<div class="ttc" id="agroup__bits_html_ga97a3411ae85f1f3b5c5eb1d5351b11ca"><div class="ttname"><a href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">libevdev_get_abs_maximum</a></div><div class="ttdeci">int libevdev_get_abs_maximum(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the maximum axis value for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__kernel_html_gacd57c8d6ace8e0b1417809a9c1c67af3"><div class="ttname"><a href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3">libevdev_set_phys</a></div><div class="ttdeci">void libevdev_set_phys(struct libevdev *dev, const char *phys)</div><div class="ttdoc">Change the device's physical location as returned by libevdev_get_phys().</div></div>
-<div class="ttc" id="agroup__kernel_html_ga6199a7c8144f54e092e913c2d2df16de"><div class="ttname"><a href="group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de">libevdev_disable_event_code</a></div><div class="ttdeci">int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Forcibly disable an event code on this device, even if the underlying device provides it.</div></div>
-<div class="ttc" id="agroup__init_html_gac71c9cca4c572ed1b1a8c233be70a17c"><div class="ttname"><a href="group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c">libevdev_change_fd</a></div><div class="ttdeci">int libevdev_change_fd(struct libevdev *dev, int fd)</div><div class="ttdoc">Change the fd for this device, without re-reading the actual device.</div></div>
-<div class="ttc" id="agroup__kernel_html_gabbacb53b66882b5335055c0fd1f40d9a"><div class="ttname"><a href="group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a">libevdev_disable_event_type</a></div><div class="ttdeci">int libevdev_disable_event_type(struct libevdev *dev, unsigned int type)</div><div class="ttdoc">Forcibly disable an event type on this device, even if the underlying device provides it.</div></div>
-<div class="ttc" id="agroup__bits_html_ga5df483b0b24d7b96ea1181808fab851d"><div class="ttname"><a href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">libevdev_get_phys</a></div><div class="ttdeci">const char * libevdev_get_phys(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's physical location, either as set by the caller or as read from the kernel.</div></div>
-<div class="ttc" id="agroup__init_html_gab9bfc800859ac3aa63f41d58ec4b616c"><div class="ttname"><a href="group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c">libevdev_get_fd</a></div><div class="ttdeci">int libevdev_get_fd(const struct libevdev *dev)</div></div>
-<div class="ttc" id="agroup__bits_html_ga1a3dfeb3bb2db0b4323c836c7ab10f1a"><div class="ttname"><a href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">libevdev_get_abs_fuzz</a></div><div class="ttdeci">int libevdev_get_abs_fuzz(const struct libevdev *dev, unsigned int code)</div><div class="ttdoc">Get the axis fuzz for the given axis, as advertised by the kernel.</div></div>
-<div class="ttc" id="agroup__kernel_html_gaa192bf0c68620be819337da6ec361c21"><div class="ttname"><a href="group__kernel.html#gaa192bf0c68620be819337da6ec361c21">libevdev_set_abs_fuzz</a></div><div class="ttdeci">void libevdev_set_abs_fuzz(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the fuzz for the given EV_ABS event code, if the code exists.</div></div>
-<div class="ttc" id="agroup__misc_html_gac99720fd926bf288764f9a81bf37ed09"><div class="ttname"><a href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a></div><div class="ttdeci">const char * libevdev_event_type_get_name(unsigned int type)</div></div>
-<div class="ttc" id="agroup__logging_html_gaf6b6842a9ed98b61d0abb421e853fd89"><div class="ttname"><a href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a></div><div class="ttdeci">void libevdev_set_log_priority(enum libevdev_log_priority priority)</div><div class="ttdoc">Define the minimum level to be printed to the log handler.</div></div>
-<div class="ttc" id="agroup__misc_html_gabad00f68481d83747a134c0a37aca003"><div class="ttname"><a href="group__misc.html#gabad00f68481d83747a134c0a37aca003">libevdev_event_code_from_code_name</a></div><div class="ttdeci">int libevdev_event_code_from_code_name(const char *name)</div><div class="ttdoc">Look up an event code by its name.</div></div>
-<div class="ttc" id="agroup__init_html_ga5d434af74fee20f273db568e2cbbd13f"><div class="ttname"><a href="group__init.html#ga5d434af74fee20f273db568e2cbbd13f">libevdev_grab</a></div><div class="ttdeci">int libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab)</div><div class="ttdoc">Grab or ungrab the device through a kernel EVIOCGRAB.</div></div>
+<div class="ttc" id="agroup__misc_html_ga6f4418c98aa475a2fc34d58a197f7edd"><div class="ttname"><a href="group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd">libevdev_property_from_name</a></div><div class="ttdeci">int libevdev_property_from_name(const char *name)</div><div class="ttdoc">Look up an input property by its name.</div></div>
+<div class="ttc" id="agroup__misc_html_gaaa0bc4c7d0d2aedc84c7dcffee9ce29b"><div class="ttname"><a href="group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b">libevdev_property_from_name_n</a></div><div class="ttdeci">int libevdev_property_from_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an input property by its name.</div></div>
+<div class="ttc" id="agroup__misc_html_gab214498fca7a328f8a712ce15bf21982"><div class="ttname"><a href="group__misc.html#gab214498fca7a328f8a712ce15bf21982">libevdev_event_type_from_code_name_n</a></div><div class="ttdeci">int libevdev_event_type_from_code_name_n(const char *name, size_t len)</div><div class="ttdoc">Look up an event type for a event code name.</div></div>
+<div class="ttc" id="agroup__misc_html_gab407b3c2caaae502859c28460cad17bb"><div class="ttname"><a href="group__misc.html#gab407b3c2caaae502859c28460cad17bb">libevdev_event_code_get_name</a></div><div class="ttdeci">const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)</div></div>
<div class="ttc" id="agroup__misc_html_gab8b6b80740e028261300b8952b61a596"><div class="ttname"><a href="group__misc.html#gab8b6b80740e028261300b8952b61a596">libevdev_event_is_type</a></div><div class="ttdeci">int libevdev_event_is_type(const struct input_event *ev, unsigned int type)</div><div class="ttdoc">Helper function to check if an event is of a specific type.</div></div>
-<div class="ttc" id="agroup__init_html_gaa282ec9badaa6bc11b1dc5bb124dbd5b"><div class="ttname"><a href="group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b">libevdev_grab_mode</a></div><div class="ttdeci">libevdev_grab_mode</div><div class="ttdef"><b>Definition:</b> libevdev.h:955</div></div>
-<div class="ttc" id="agroup__bits_html_gaed0328c67b7a78422636d9fe09a73f12"><div class="ttname"><a href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a></div><div class="ttdeci">const char * libevdev_get_name(const struct libevdev *dev)</div><div class="ttdoc">Retrieve the device's name, either as set by the caller or as read from the kernel.</div></div>
-<div class="ttc" id="agroup__kernel_html_gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab"><div class="ttname"><a href="group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab">LIBEVDEV_LED_ON</a></div><div class="ttdeci">@ LIBEVDEV_LED_ON</div><div class="ttdoc">Turn the LED on.</div><div class="ttdef"><b>Definition:</b> libevdev.h:1918</div></div>
-<div class="ttc" id="agroup__kernel_html_ga2302fd9a491d8e27280157d67a703af6"><div class="ttname"><a href="group__kernel.html#ga2302fd9a491d8e27280157d67a703af6">libevdev_set_abs_maximum</a></div><div class="ttdeci">void libevdev_set_abs_maximum(struct libevdev *dev, unsigned int code, int val)</div><div class="ttdoc">Change the maximum for the given EV_ABS event code, if the code exists.</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:759</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:758</div></div>
-<div class="ttc" id="agroup__logging_html_gab7eb997be2b701cc6f42e7b4c3478269"><div class="ttname"><a href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a></div><div class="ttdeci">void(* libevdev_device_log_func_t)(const struct libevdev *dev, enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</div><div class="ttdoc">Logging function called by library-internal logging for a specific libevdev context.</div><div class="ttdef"><b>Definition:</b> libevdev.h:918</div></div>
-<div class="ttc" id="agroup__kernel_html_ga79e82ee2a95cb08adb4172aabe0c7184"><div class="ttname"><a href="group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184">libevdev_set_event_value</a></div><div class="ttdeci">int libevdev_set_event_value(struct libevdev *dev, unsigned int type, unsigned int code, int value)</div><div class="ttdoc">Set the value for a given event type and code.</div></div>
+<div class="ttc" id="agroup__misc_html_gabad00f68481d83747a134c0a37aca003"><div class="ttname"><a href="group__misc.html#gabad00f68481d83747a134c0a37aca003">libevdev_event_code_from_code_name</a></div><div class="ttdeci">int libevdev_event_code_from_code_name(const char *name)</div><div class="ttdoc">Look up an event code by its name.</div></div>
+<div class="ttc" id="agroup__misc_html_gabcd45c5e963cba245e944ea66e72fcc3"><div class="ttname"><a href="group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3">libevdev_event_value_get_name</a></div><div class="ttdeci">const char * libevdev_event_value_get_name(unsigned int type, unsigned int code, int value)</div><div class="ttdoc">This function resolves the event value for a code.</div></div>
+<div class="ttc" id="agroup__misc_html_gabfad87ea78d034631cf3e5322ac383a1"><div class="ttname"><a href="group__misc.html#gabfad87ea78d034631cf3e5322ac383a1">libevdev_event_type_get_max</a></div><div class="ttdeci">int libevdev_event_type_get_max(unsigned int type)</div></div>
+<div class="ttc" id="agroup__misc_html_gac99720fd926bf288764f9a81bf37ed09"><div class="ttname"><a href="group__misc.html#gac99720fd926bf288764f9a81bf37ed09">libevdev_event_type_get_name</a></div><div class="ttdeci">const char * libevdev_event_type_get_name(unsigned int type)</div></div>
+<div class="ttc" id="agroup__misc_html_gacc12bdb7b912070ac9c375428f2c9892"><div class="ttname"><a href="group__misc.html#gacc12bdb7b912070ac9c375428f2c9892">libevdev_property_get_name</a></div><div class="ttdeci">const char * libevdev_property_get_name(unsigned int prop)</div></div>
<div class="ttc" id="agroup__misc_html_gadd41b7514cca16c8b8920f16e562e08a"><div class="ttname"><a href="group__misc.html#gadd41b7514cca16c8b8920f16e562e08a">libevdev_event_type_from_code_name</a></div><div class="ttdeci">int libevdev_event_type_from_code_name(const char *name)</div><div class="ttdoc">Look up an event type for a event code name.</div></div>
-<div class="ttc" id="agroup__init_html_ga89bb5bce1c23e293293484b05b12aaf4"><div class="ttname"><a href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4">libevdev_new_from_fd</a></div><div class="ttdeci">int libevdev_new_from_fd(int fd, struct libevdev **dev)</div><div class="ttdoc">Initialize a new libevdev device from the given fd.</div></div>
+<div class="ttc" id="agroup__misc_html_gaebfc6b0ebb70169c9fec61620f1ea85f"><div class="ttname"><a href="group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f">libevdev_event_value_from_name_n</a></div><div class="ttdeci">int libevdev_event_value_from_name_n(unsigned int type, unsigned int code, const char *name, size_t len)</div><div class="ttdoc">Look up an event value by its type, code and name.</div></div>
+<div class="ttc" id="agroup__mt_html_ga8c6303391cb4f90b2d46763cf4eb8bc8"><div class="ttname"><a href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8">libevdev_get_slot_value</a></div><div class="ttdeci">int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)</div><div class="ttdoc">Return the current value of the code for the given slot.</div></div>
+<div class="ttc" id="agroup__mt_html_gaca19dca5aa8f0ea3b210f3fc670384ec"><div class="ttname"><a href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec">libevdev_fetch_slot_value</a></div><div class="ttdeci">int libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code, int *value)</div><div class="ttdoc">Fetch the current value of the code for the given slot.</div></div>
+<div class="ttc" id="agroup__mt_html_gad22e2420be668b56ef486cde2e98c5dd"><div class="ttname"><a href="group__mt.html#gad22e2420be668b56ef486cde2e98c5dd">libevdev_get_current_slot</a></div><div class="ttdeci">int libevdev_get_current_slot(const struct libevdev *dev)</div><div class="ttdoc">Get the currently active slot.</div></div>
+<div class="ttc" id="agroup__mt_html_gaf272526f0a59d2f61ef7389046cd4088"><div class="ttname"><a href="group__mt.html#gaf272526f0a59d2f61ef7389046cd4088">libevdev_get_num_slots</a></div><div class="ttdeci">int libevdev_get_num_slots(const struct libevdev *dev)</div><div class="ttdoc">Get the number of slots supported by this device.</div></div>
+<div class="ttc" id="alibevdev_8h_html_a64a0f325e88e1be50eb806e1ff75aec8"><div class="ttname"><a href="libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8">LIBEVDEV_ATTRIBUTE_PRINTF</a></div><div class="ttdeci">#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args)</div><div class="ttdef"><b>Definition:</b> libevdev.h:36</div></div>
+</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -452,7 +455,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/modules.html third-party-new/doc/html/modules.html
--- third-party-libevdev-bak/doc/html/modules.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/modules.html 2023-04-03 10:49:22.111306600 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Modules</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -95,7 +95,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/pages.html third-party-new/doc/html/pages.html
--- third-party-libevdev-bak/doc/html/pages.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/pages.html 2023-04-03 10:50:28.099788400 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Related Pages</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -94,7 +94,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_0.html third-party-new/doc/html/search/all_0.html
--- third-party-libevdev-bak/doc/html/search/all_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_0.html 2023-04-01 15:28:57.446773800 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_1.html third-party-new/doc/html/search/all_1.html
--- third-party-libevdev-bak/doc/html/search/all_1.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_1.html 2023-04-01 15:29:16.503763700 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_2.html third-party-new/doc/html/search/all_2.html
--- third-party-libevdev-bak/doc/html/search/all_2.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_2.html 2023-04-01 15:29:31.940338000 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_2.js third-party-new/doc/html/search/all_2.js
--- third-party-libevdev-bak/doc/html/search/all_2.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_2.js 2023-04-01 15:30:08.670223600 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['event_20handling_2',['Event handling',['../group__events.html',1,'']]],
- ['evdev_20ioctls_3',['evdev ioctls',['../ioctls.html',1,'']]]
+ ['evdev_20ioctls_2',['evdev ioctls',['../ioctls.html',1,'']]],
+ ['event_20handling_3',['Event handling',['../group__events.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/all_3.html third-party-new/doc/html/search/all_3.html
--- third-party-libevdev-bak/doc/html/search/all_3.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_3.html 2023-04-01 15:30:20.097653000 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_4.html third-party-new/doc/html/search/all_4.html
--- third-party-libevdev-bak/doc/html/search/all_4.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_4.html 2023-04-01 15:30:33.994637700 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_5.html third-party-new/doc/html/search/all_5.html
--- third-party-libevdev-bak/doc/html/search/all_5.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_5.html 2023-04-01 15:30:46.610374600 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_5.js third-party-new/doc/html/search/all_5.js
--- third-party-libevdev-bak/doc/html/search/all_5.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_5.js 2023-04-01 15:31:04.034005000 +0800
@@ -1,117 +1,118 @@
var searchData=
[
- ['libevdev_2duinput_2eh_6',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]],
- ['libevdev_2eh_7',['libevdev.h',['../libevdev_8h.html',1,'']]],
- ['libevdev_5fattribute_5fprintf_8',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]],
- ['libevdev_5fchange_5ffd_9',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]],
- ['libevdev_5fdeprecated_10',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]],
- ['libevdev_5fdevice_5flog_5ffunc_5ft_11',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fevent_5fcode_12',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fevent_5ftype_13',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fproperty_14',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]],
- ['libevdev_5fenable_5fevent_5fcode_15',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]],
- ['libevdev_5fenable_5fevent_5ftype_16',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]],
- ['libevdev_5fenable_5fproperty_17',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_18',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_19',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fname_20',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_21',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5fget_5fname_22',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]],
- ['libevdev_5fevent_5fis_5fcode_23',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]],
- ['libevdev_5fevent_5fis_5ftype_24',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_25',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_26',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fname_27',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_28',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5fget_5fmax_29',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5fget_5fname_30',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5ffrom_5fname_31',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_32',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5fget_5fname_33',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]],
- ['libevdev_5ffetch_5fevent_5fvalue_34',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]],
- ['libevdev_5ffetch_5fslot_5fvalue_35',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]],
- ['libevdev_5ffree_36',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fflat_37',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5ffuzz_38',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5finfo_39',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fmaximum_40',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fminimum_41',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fresolution_42',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]],
- ['libevdev_5fget_5fcurrent_5fslot_43',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]],
- ['libevdev_5fget_5fdriver_5fversion_44',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]],
- ['libevdev_5fget_5fevent_5fvalue_45',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]],
- ['libevdev_5fget_5ffd_46',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fbustype_47',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fproduct_48',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fvendor_49',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fversion_50',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]],
- ['libevdev_5fget_5flog_5fpriority_51',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]],
- ['libevdev_5fget_5fname_52',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]],
- ['libevdev_5fget_5fnum_5fslots_53',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]],
- ['libevdev_5fget_5fphys_54',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]],
- ['libevdev_5fget_5frepeat_55',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]],
- ['libevdev_5fget_5fslot_5fvalue_56',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]],
- ['libevdev_5fget_5funiq_57',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]],
- ['libevdev_5fgrab_58',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'LIBEVDEV_GRAB():&#160;libevdev.h'],['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab):&#160;libevdev.h']]],
- ['libevdev_5fgrab_5fmode_59',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5fcode_60',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5fpending_61',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5ftype_62',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]],
- ['libevdev_5fhas_5fproperty_63',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fabs_5finfo_64',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fled_5fvalue_65',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fled_5fvalues_66',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]],
- ['libevdev_5fled_5foff_67',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]],
- ['libevdev_5fled_5fon_68',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]],
- ['libevdev_5fled_5fvalue_69',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]],
- ['libevdev_5flog_5fdebug_70',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]],
- ['libevdev_5flog_5ferror_71',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]],
- ['libevdev_5flog_5ffunc_5ft_72',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]],
- ['libevdev_5flog_5finfo_73',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]],
- ['libevdev_5flog_5fpriority_74',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]],
- ['libevdev_5fnew_75',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]],
- ['libevdev_5fnew_5ffrom_5ffd_76',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]],
- ['libevdev_5fnext_5fevent_77',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]],
- ['libevdev_5fproperty_5ffrom_5fname_78',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]],
- ['libevdev_5fproperty_5ffrom_5fname_5fn_79',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]],
- ['libevdev_5fproperty_5fget_5fname_80',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_81',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fblocking_82',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fforce_5fsync_83',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fnormal_84',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fsync_85',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_86',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_5fsuccess_87',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_5fsync_88',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fflat_89',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5ffuzz_90',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5finfo_91',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fmaximum_92',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fminimum_93',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fresolution_94',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]],
- ['libevdev_5fset_5fclock_5fid_95',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]],
- ['libevdev_5fset_5fdevice_5flog_5ffunction_96',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]],
- ['libevdev_5fset_5fevent_5fvalue_97',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]],
- ['libevdev_5fset_5ffd_98',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fbustype_99',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fproduct_100',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fvendor_101',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fversion_102',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]],
- ['libevdev_5fset_5flog_5ffunction_103',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]],
- ['libevdev_5fset_5flog_5fpriority_104',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]],
- ['libevdev_5fset_5fname_105',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]],
- ['libevdev_5fset_5fphys_106',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]],
- ['libevdev_5fset_5fslot_5fvalue_107',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]],
- ['libevdev_5fset_5funiq_108',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]],
- ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_109',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fdestroy_110',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5fdevnode_111',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5ffd_112',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5fsyspath_113',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fopen_5fmanaged_114',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fopen_5fmode_115',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fwrite_5fevent_116',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]],
- ['libevdev_5fungrab_117',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]],
- ['library_20logging_20facilities_118',['Library logging facilities',['../group__logging.html',1,'']]],
- ['libevdev_2dinternal_20test_20suite_119',['libevdev-internal test suite',['../testing.html',1,'']]]
+ ['libevdev_2dinternal_20test_20suite_6',['libevdev-internal test suite',['../testing.html',1,'']]],
+ ['libevdev_2duinput_2eh_7',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]],
+ ['libevdev_2eh_8',['libevdev.h',['../libevdev_8h.html',1,'']]],
+ ['libevdev_5fattribute_5fprintf_9',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]],
+ ['libevdev_5fchange_5ffd_10',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]],
+ ['libevdev_5fdeprecated_11',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]],
+ ['libevdev_5fdevice_5flog_5ffunc_5ft_12',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fevent_5fcode_13',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fevent_5ftype_14',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fproperty_15',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fevent_5fcode_16',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fevent_5ftype_17',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fproperty_18',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_19',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_20',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fname_21',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_22',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5fget_5fname_23',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fis_5fcode_24',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fis_5ftype_25',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_26',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_27',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fname_28',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_29',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5fget_5fmax_30',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5fget_5fname_31',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5ffrom_5fname_32',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_33',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5fget_5fname_34',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]],
+ ['libevdev_5ffetch_5fevent_5fvalue_35',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]],
+ ['libevdev_5ffetch_5fslot_5fvalue_36',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]],
+ ['libevdev_5ffree_37',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fflat_38',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5ffuzz_39',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5finfo_40',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fmaximum_41',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fminimum_42',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fresolution_43',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]],
+ ['libevdev_5fget_5fcurrent_5fslot_44',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]],
+ ['libevdev_5fget_5fdriver_5fversion_45',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]],
+ ['libevdev_5fget_5fevent_5fvalue_46',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]],
+ ['libevdev_5fget_5ffd_47',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fbustype_48',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fproduct_49',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fvendor_50',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fversion_51',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]],
+ ['libevdev_5fget_5flog_5fpriority_52',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]],
+ ['libevdev_5fget_5fname_53',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]],
+ ['libevdev_5fget_5fnum_5fslots_54',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]],
+ ['libevdev_5fget_5fphys_55',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]],
+ ['libevdev_5fget_5frepeat_56',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]],
+ ['libevdev_5fget_5fslot_5fvalue_57',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]],
+ ['libevdev_5fget_5funiq_58',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]],
+ ['libevdev_5fgrab_59',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]],
+ ['libevdev_5fgrab_60',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]],
+ ['libevdev_5fgrab_5fmode_61',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5fcode_62',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5fpending_63',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5ftype_64',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fproperty_65',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fabs_5finfo_66',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fled_5fvalue_67',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fled_5fvalues_68',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]],
+ ['libevdev_5fled_5foff_69',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]],
+ ['libevdev_5fled_5fon_70',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]],
+ ['libevdev_5fled_5fvalue_71',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]],
+ ['libevdev_5flog_5fdebug_72',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]],
+ ['libevdev_5flog_5ferror_73',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]],
+ ['libevdev_5flog_5ffunc_5ft_74',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]],
+ ['libevdev_5flog_5finfo_75',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]],
+ ['libevdev_5flog_5fpriority_76',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]],
+ ['libevdev_5fnew_77',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]],
+ ['libevdev_5fnew_5ffrom_5ffd_78',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]],
+ ['libevdev_5fnext_5fevent_79',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5ffrom_5fname_80',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5ffrom_5fname_5fn_81',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5fget_5fname_82',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_83',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fblocking_84',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fforce_5fsync_85',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fnormal_86',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fsync_87',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_88',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_5fsuccess_89',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_5fsync_90',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fflat_91',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5ffuzz_92',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5finfo_93',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fmaximum_94',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fminimum_95',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fresolution_96',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]],
+ ['libevdev_5fset_5fclock_5fid_97',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]],
+ ['libevdev_5fset_5fdevice_5flog_5ffunction_98',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]],
+ ['libevdev_5fset_5fevent_5fvalue_99',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]],
+ ['libevdev_5fset_5ffd_100',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fbustype_101',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fproduct_102',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fvendor_103',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fversion_104',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]],
+ ['libevdev_5fset_5flog_5ffunction_105',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]],
+ ['libevdev_5fset_5flog_5fpriority_106',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]],
+ ['libevdev_5fset_5fname_107',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]],
+ ['libevdev_5fset_5fphys_108',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]],
+ ['libevdev_5fset_5fslot_5fvalue_109',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]],
+ ['libevdev_5fset_5funiq_110',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]],
+ ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_111',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fdestroy_112',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5fdevnode_113',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5ffd_114',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5fsyspath_115',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fopen_5fmanaged_116',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fopen_5fmode_117',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fwrite_5fevent_118',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]],
+ ['libevdev_5fungrab_119',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]],
+ ['library_20logging_20facilities_120',['Library logging facilities',['../group__logging.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/all_6.html third-party-new/doc/html/search/all_6.html
--- third-party-libevdev-bak/doc/html/search/all_6.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_6.html 2023-04-01 15:31:16.478114500 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_6.js third-party-new/doc/html/search/all_6.js
--- third-party-libevdev-bak/doc/html/search/all_6.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_6.js 2023-04-01 15:32:09.994225500 +0800
@@ -1,6 +1,6 @@
var searchData=
[
- ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_120',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]],
['miscellaneous_20helper_20functions_121',['Miscellaneous helper functions',['../group__misc.html',1,'']]],
- ['multi_2dtouch_20related_20functions_122',['Multi-touch related functions',['../group__mt.html',1,'']]]
+ ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_122',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]],
+ ['multi_2dtouch_20related_20functions_123',['Multi-touch related functions',['../group__mt.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/all_7.html third-party-new/doc/html/search/all_7.html
--- third-party-libevdev-bak/doc/html/search/all_7.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_7.html 2023-04-01 15:32:18.878297000 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_7.js third-party-new/doc/html/search/all_7.js
--- third-party-libevdev-bak/doc/html/search/all_7.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_7.js 2023-04-01 15:32:26.253499200 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['querying_20device_20capabilities_123',['Querying device capabilities',['../group__bits.html',1,'']]]
+ ['querying_20device_20capabilities_124',['Querying device capabilities',['../group__bits.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/all_8.html third-party-new/doc/html/search/all_8.html
--- third-party-libevdev-bak/doc/html/search/all_8.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_8.html 2023-04-01 15:32:39.466172800 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_8.js third-party-new/doc/html/search/all_8.js
--- third-party-libevdev-bak/doc/html/search/all_8.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_8.js 2023-04-01 15:33:13.706101600 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['statically_20linking_20libevdev_124',['Statically linking libevdev',['../static_linking.html',1,'']]],
- ['syn_5fdropped_20handling_125',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]]
+ ['statically_20linking_20libevdev_125',['Statically linking libevdev',['../static_linking.html',1,'']]],
+ ['syn_5fdropped_20handling_126',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/all_9.html third-party-new/doc/html/search/all_9.html
--- third-party-libevdev-bak/doc/html/search/all_9.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_9.html 2023-04-01 15:33:28.510781400 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/all_9.js third-party-new/doc/html/search/all_9.js
--- third-party-libevdev-bak/doc/html/search/all_9.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/all_9.js 2023-04-01 15:34:22.031122000 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['uinput_20device_20creation_126',['uinput device creation',['../group__uinput.html',1,'']]]
+ ['uinput_20device_20creation_127',['uinput device creation',['../group__uinput.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/defines_0.html third-party-new/doc/html/search/defines_0.html
--- third-party-libevdev-bak/doc/html/search/defines_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/defines_0.html 2023-04-01 15:34:45.107059600 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="defines_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/defines_0.js third-party-new/doc/html/search/defines_0.js
--- third-party-libevdev-bak/doc/html/search/defines_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/defines_0.js 2023-04-01 15:35:14.026840800 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['libevdev_5fattribute_5fprintf_238',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]],
- ['libevdev_5fdeprecated_239',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]]
+ ['libevdev_5fattribute_5fprintf_239',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]],
+ ['libevdev_5fdeprecated_240',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/enums_0.html third-party-new/doc/html/search/enums_0.html
--- third-party-libevdev-bak/doc/html/search/enums_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/enums_0.html 2023-04-01 15:35:30.484303500 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="enums_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/enums_0.js third-party-new/doc/html/search/enums_0.js
--- third-party-libevdev-bak/doc/html/search/enums_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/enums_0.js 2023-04-01 15:35:37.093037800 +0800
@@ -1,9 +1,9 @@
var searchData=
[
- ['libevdev_5fgrab_5fmode_218',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]],
- ['libevdev_5fled_5fvalue_219',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]],
- ['libevdev_5flog_5fpriority_220',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_221',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_222',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]],
- ['libevdev_5fuinput_5fopen_5fmode_223',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]]
+ ['libevdev_5fgrab_5fmode_219',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]],
+ ['libevdev_5fled_5fvalue_220',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]],
+ ['libevdev_5flog_5fpriority_221',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_222',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_223',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]],
+ ['libevdev_5fuinput_5fopen_5fmode_224',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/enumvalues_0.html third-party-new/doc/html/search/enumvalues_0.html
--- third-party-libevdev-bak/doc/html/search/enumvalues_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/enumvalues_0.html 2023-04-01 15:35:47.907023100 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="enumvalues_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/enumvalues_0.js third-party-new/doc/html/search/enumvalues_0.js
--- third-party-libevdev-bak/doc/html/search/enumvalues_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/enumvalues_0.js 2023-04-01 15:36:18.438425700 +0800
@@ -1,17 +1,17 @@
var searchData=
[
- ['libevdev_5fgrab_224',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]],
- ['libevdev_5fled_5foff_225',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]],
- ['libevdev_5fled_5fon_226',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]],
- ['libevdev_5flog_5fdebug_227',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]],
- ['libevdev_5flog_5ferror_228',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]],
- ['libevdev_5flog_5finfo_229',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fblocking_230',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fforce_5fsync_231',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fnormal_232',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]],
- ['libevdev_5fread_5fflag_5fsync_233',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_5fsuccess_234',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]],
- ['libevdev_5fread_5fstatus_5fsync_235',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]],
- ['libevdev_5fuinput_5fopen_5fmanaged_236',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]],
- ['libevdev_5fungrab_237',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]]
+ ['libevdev_5fgrab_225',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]],
+ ['libevdev_5fled_5foff_226',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]],
+ ['libevdev_5fled_5fon_227',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]],
+ ['libevdev_5flog_5fdebug_228',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]],
+ ['libevdev_5flog_5ferror_229',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]],
+ ['libevdev_5flog_5finfo_230',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fblocking_231',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fforce_5fsync_232',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fnormal_233',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]],
+ ['libevdev_5fread_5fflag_5fsync_234',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_5fsuccess_235',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]],
+ ['libevdev_5fread_5fstatus_5fsync_236',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]],
+ ['libevdev_5fuinput_5fopen_5fmanaged_237',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]],
+ ['libevdev_5fungrab_238',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/files_0.html third-party-new/doc/html/search/files_0.html
--- third-party-libevdev-bak/doc/html/search/files_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/files_0.html 2023-04-01 15:36:36.394843100 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="files_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/files_0.js third-party-new/doc/html/search/files_0.js
--- third-party-libevdev-bak/doc/html/search/files_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/files_0.js 2023-04-01 15:36:46.743227100 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['libevdev_2duinput_2eh_127',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]],
- ['libevdev_2eh_128',['libevdev.h',['../libevdev_8h.html',1,'']]]
+ ['libevdev_2duinput_2eh_128',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]],
+ ['libevdev_2eh_129',['libevdev.h',['../libevdev_8h.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/functions_0.html third-party-new/doc/html/search/functions_0.html
--- third-party-libevdev-bak/doc/html/search/functions_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/functions_0.html 2023-04-01 15:36:56.210338900 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/functions_0.js third-party-new/doc/html/search/functions_0.js
--- third-party-libevdev-bak/doc/html/search/functions_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/functions_0.js 2023-04-01 15:37:12.417086900 +0800
@@ -1,90 +1,90 @@
var searchData=
[
- ['libevdev_5fchange_5ffd_129',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fevent_5fcode_130',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fevent_5ftype_131',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]],
- ['libevdev_5fdisable_5fproperty_132',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]],
- ['libevdev_5fenable_5fevent_5fcode_133',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]],
- ['libevdev_5fenable_5fevent_5ftype_134',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]],
- ['libevdev_5fenable_5fproperty_135',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_136',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_137',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fname_138',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_139',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]],
- ['libevdev_5fevent_5fcode_5fget_5fname_140',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]],
- ['libevdev_5fevent_5fis_5fcode_141',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]],
- ['libevdev_5fevent_5fis_5ftype_142',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_143',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_144',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fname_145',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_146',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5fget_5fmax_147',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]],
- ['libevdev_5fevent_5ftype_5fget_5fname_148',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5ffrom_5fname_149',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_150',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]],
- ['libevdev_5fevent_5fvalue_5fget_5fname_151',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]],
- ['libevdev_5ffetch_5fevent_5fvalue_152',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]],
- ['libevdev_5ffetch_5fslot_5fvalue_153',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]],
- ['libevdev_5ffree_154',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fflat_155',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5ffuzz_156',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5finfo_157',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fmaximum_158',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fminimum_159',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]],
- ['libevdev_5fget_5fabs_5fresolution_160',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]],
- ['libevdev_5fget_5fcurrent_5fslot_161',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]],
- ['libevdev_5fget_5fdriver_5fversion_162',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]],
- ['libevdev_5fget_5fevent_5fvalue_163',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]],
- ['libevdev_5fget_5ffd_164',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fbustype_165',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fproduct_166',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fvendor_167',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]],
- ['libevdev_5fget_5fid_5fversion_168',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]],
- ['libevdev_5fget_5flog_5fpriority_169',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]],
- ['libevdev_5fget_5fname_170',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]],
- ['libevdev_5fget_5fnum_5fslots_171',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]],
- ['libevdev_5fget_5fphys_172',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]],
- ['libevdev_5fget_5frepeat_173',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]],
- ['libevdev_5fget_5fslot_5fvalue_174',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]],
- ['libevdev_5fget_5funiq_175',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]],
- ['libevdev_5fgrab_176',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5fcode_177',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5fpending_178',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]],
- ['libevdev_5fhas_5fevent_5ftype_179',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]],
- ['libevdev_5fhas_5fproperty_180',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fabs_5finfo_181',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fled_5fvalue_182',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]],
- ['libevdev_5fkernel_5fset_5fled_5fvalues_183',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]],
- ['libevdev_5fnew_184',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]],
- ['libevdev_5fnew_5ffrom_5ffd_185',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]],
- ['libevdev_5fnext_5fevent_186',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]],
- ['libevdev_5fproperty_5ffrom_5fname_187',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]],
- ['libevdev_5fproperty_5ffrom_5fname_5fn_188',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]],
- ['libevdev_5fproperty_5fget_5fname_189',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fflat_190',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5ffuzz_191',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5finfo_192',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fmaximum_193',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fminimum_194',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]],
- ['libevdev_5fset_5fabs_5fresolution_195',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]],
- ['libevdev_5fset_5fclock_5fid_196',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]],
- ['libevdev_5fset_5fdevice_5flog_5ffunction_197',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]],
- ['libevdev_5fset_5fevent_5fvalue_198',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]],
- ['libevdev_5fset_5ffd_199',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fbustype_200',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fproduct_201',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fvendor_202',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]],
- ['libevdev_5fset_5fid_5fversion_203',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]],
- ['libevdev_5fset_5flog_5ffunction_204',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]],
- ['libevdev_5fset_5flog_5fpriority_205',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]],
- ['libevdev_5fset_5fname_206',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]],
- ['libevdev_5fset_5fphys_207',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]],
- ['libevdev_5fset_5fslot_5fvalue_208',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]],
- ['libevdev_5fset_5funiq_209',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]],
- ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_210',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fdestroy_211',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5fdevnode_212',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5ffd_213',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fget_5fsyspath_214',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]],
- ['libevdev_5fuinput_5fwrite_5fevent_215',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]]
+ ['libevdev_5fchange_5ffd_130',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fevent_5fcode_131',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fevent_5ftype_132',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]],
+ ['libevdev_5fdisable_5fproperty_133',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fevent_5fcode_134',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fevent_5ftype_135',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]],
+ ['libevdev_5fenable_5fproperty_136',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_137',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_138',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fname_139',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_140',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fcode_5fget_5fname_141',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fis_5fcode_142',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fis_5ftype_143',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_144',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_145',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fname_146',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_147',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5fget_5fmax_148',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]],
+ ['libevdev_5fevent_5ftype_5fget_5fname_149',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5ffrom_5fname_150',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_151',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]],
+ ['libevdev_5fevent_5fvalue_5fget_5fname_152',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]],
+ ['libevdev_5ffetch_5fevent_5fvalue_153',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]],
+ ['libevdev_5ffetch_5fslot_5fvalue_154',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]],
+ ['libevdev_5ffree_155',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fflat_156',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5ffuzz_157',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5finfo_158',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fmaximum_159',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fminimum_160',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]],
+ ['libevdev_5fget_5fabs_5fresolution_161',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]],
+ ['libevdev_5fget_5fcurrent_5fslot_162',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]],
+ ['libevdev_5fget_5fdriver_5fversion_163',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]],
+ ['libevdev_5fget_5fevent_5fvalue_164',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]],
+ ['libevdev_5fget_5ffd_165',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fbustype_166',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fproduct_167',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fvendor_168',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]],
+ ['libevdev_5fget_5fid_5fversion_169',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]],
+ ['libevdev_5fget_5flog_5fpriority_170',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]],
+ ['libevdev_5fget_5fname_171',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]],
+ ['libevdev_5fget_5fnum_5fslots_172',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]],
+ ['libevdev_5fget_5fphys_173',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]],
+ ['libevdev_5fget_5frepeat_174',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]],
+ ['libevdev_5fget_5fslot_5fvalue_175',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]],
+ ['libevdev_5fget_5funiq_176',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]],
+ ['libevdev_5fgrab_177',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5fcode_178',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5fpending_179',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fevent_5ftype_180',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]],
+ ['libevdev_5fhas_5fproperty_181',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fabs_5finfo_182',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fled_5fvalue_183',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]],
+ ['libevdev_5fkernel_5fset_5fled_5fvalues_184',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]],
+ ['libevdev_5fnew_185',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]],
+ ['libevdev_5fnew_5ffrom_5ffd_186',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]],
+ ['libevdev_5fnext_5fevent_187',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5ffrom_5fname_188',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5ffrom_5fname_5fn_189',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]],
+ ['libevdev_5fproperty_5fget_5fname_190',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fflat_191',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5ffuzz_192',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5finfo_193',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fmaximum_194',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fminimum_195',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]],
+ ['libevdev_5fset_5fabs_5fresolution_196',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]],
+ ['libevdev_5fset_5fclock_5fid_197',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]],
+ ['libevdev_5fset_5fdevice_5flog_5ffunction_198',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]],
+ ['libevdev_5fset_5fevent_5fvalue_199',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]],
+ ['libevdev_5fset_5ffd_200',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fbustype_201',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fproduct_202',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fvendor_203',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]],
+ ['libevdev_5fset_5fid_5fversion_204',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]],
+ ['libevdev_5fset_5flog_5ffunction_205',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]],
+ ['libevdev_5fset_5flog_5fpriority_206',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]],
+ ['libevdev_5fset_5fname_207',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]],
+ ['libevdev_5fset_5fphys_208',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]],
+ ['libevdev_5fset_5fslot_5fvalue_209',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]],
+ ['libevdev_5fset_5funiq_210',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]],
+ ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_211',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fdestroy_212',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5fdevnode_213',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5ffd_214',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fget_5fsyspath_215',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]],
+ ['libevdev_5fuinput_5fwrite_5fevent_216',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_0.html third-party-new/doc/html/search/groups_0.html
--- third-party-libevdev-bak/doc/html/search/groups_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_0.html 2023-04-01 15:37:22.852030700 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_0.js third-party-new/doc/html/search/groups_0.js
--- third-party-libevdev-bak/doc/html/search/groups_0.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_0.js 2023-04-01 15:37:57.952960100 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['event_20handling_240',['Event handling',['../group__events.html',1,'']]]
+ ['event_20handling_241',['Event handling',['../group__events.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_1.html third-party-new/doc/html/search/groups_1.html
--- third-party-libevdev-bak/doc/html/search/groups_1.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_1.html 2023-04-01 15:38:06.712734500 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_1.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_1.js third-party-new/doc/html/search/groups_1.js
--- third-party-libevdev-bak/doc/html/search/groups_1.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_1.js 2023-04-01 15:38:33.084187700 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['initialization_20and_20setup_241',['Initialization and setup',['../group__init.html',1,'']]]
+ ['initialization_20and_20setup_242',['Initialization and setup',['../group__init.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_2.html third-party-new/doc/html/search/groups_2.html
--- third-party-libevdev-bak/doc/html/search/groups_2.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_2.html 2023-04-01 15:39:09.984504000 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_2.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_2.js third-party-new/doc/html/search/groups_2.js
--- third-party-libevdev-bak/doc/html/search/groups_2.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_2.js 2023-04-01 15:39:16.356257600 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['library_20logging_20facilities_242',['Library logging facilities',['../group__logging.html',1,'']]]
+ ['library_20logging_20facilities_243',['Library logging facilities',['../group__logging.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_3.html third-party-new/doc/html/search/groups_3.html
--- third-party-libevdev-bak/doc/html/search/groups_3.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_3.html 2023-04-01 15:39:50.436242300 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_3.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_3.js third-party-new/doc/html/search/groups_3.js
--- third-party-libevdev-bak/doc/html/search/groups_3.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_3.js 2023-04-01 15:41:15.124700200 +0800
@@ -1,6 +1,6 @@
var searchData=
[
- ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_243',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]],
['miscellaneous_20helper_20functions_244',['Miscellaneous helper functions',['../group__misc.html',1,'']]],
- ['multi_2dtouch_20related_20functions_245',['Multi-touch related functions',['../group__mt.html',1,'']]]
+ ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_245',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]],
+ ['multi_2dtouch_20related_20functions_246',['Multi-touch related functions',['../group__mt.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_4.html third-party-new/doc/html/search/groups_4.html
--- third-party-libevdev-bak/doc/html/search/groups_4.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_4.html 2023-04-01 15:41:26.515764300 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_4.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_4.js third-party-new/doc/html/search/groups_4.js
--- third-party-libevdev-bak/doc/html/search/groups_4.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_4.js 2023-04-01 15:41:39.190840500 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['querying_20device_20capabilities_246',['Querying device capabilities',['../group__bits.html',1,'']]]
+ ['querying_20device_20capabilities_247',['Querying device capabilities',['../group__bits.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/groups_5.html third-party-new/doc/html/search/groups_5.html
--- third-party-libevdev-bak/doc/html/search/groups_5.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_5.html 2023-04-01 15:43:50.131466200 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_5.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/groups_5.js third-party-new/doc/html/search/groups_5.js
--- third-party-libevdev-bak/doc/html/search/groups_5.js 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/groups_5.js 2023-04-01 15:44:07.553194200 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['uinput_20device_20creation_247',['uinput device creation',['../group__uinput.html',1,'']]]
+ ['uinput_20device_20creation_248',['uinput device creation',['../group__uinput.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/nomatches.html third-party-new/doc/html/search/nomatches.html
--- third-party-libevdev-bak/doc/html/search/nomatches.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/nomatches.html 2023-04-01 15:45:22.889226400 +0800
@@ -1,5 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="search.js"></script>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_0.html third-party-new/doc/html/search/pages_0.html
--- third-party-libevdev-bak/doc/html/search/pages_0.html 2023-03-28 10:49:53.380511700 +0800
+++ third-party-new/doc/html/search/pages_0.html 2023-04-01 15:46:15.618387500 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_0.js third-party-new/doc/html/search/pages_0.js
--- third-party-libevdev-bak/doc/html/search/pages_0.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_0.js 2023-04-01 15:49:32.539324100 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['compatibility_20and_20behavior_20across_20kernel_20versions_248',['Compatibility and Behavior across kernel versions',['../backwardscompatibility.html',1,'']]]
+ ['compatibility_20and_20behavior_20across_20kernel_20versions_249',['Compatibility and Behavior across kernel versions',['../backwardscompatibility.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/pages_1.html third-party-new/doc/html/search/pages_1.html
--- third-party-libevdev-bak/doc/html/search/pages_1.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_1.html 2023-04-01 15:49:43.025097100 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_1.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_1.js third-party-new/doc/html/search/pages_1.js
--- third-party-libevdev-bak/doc/html/search/pages_1.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_1.js 2023-04-01 15:50:13.734641400 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['deprecated_20list_249',['Deprecated List',['../deprecated.html',1,'']]]
+ ['deprecated_20list_250',['Deprecated List',['../deprecated.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/pages_2.html third-party-new/doc/html/search/pages_2.html
--- third-party-libevdev-bak/doc/html/search/pages_2.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_2.html 2023-04-01 15:50:24.890090300 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_2.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_2.js third-party-new/doc/html/search/pages_2.js
--- third-party-libevdev-bak/doc/html/search/pages_2.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_2.js 2023-04-01 15:50:37.732190100 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['evdev_20ioctls_250',['evdev ioctls',['../ioctls.html',1,'']]]
+ ['evdev_20ioctls_251',['evdev ioctls',['../ioctls.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/pages_3.html third-party-new/doc/html/search/pages_3.html
--- third-party-libevdev-bak/doc/html/search/pages_3.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_3.html 2023-04-01 15:50:47.836288700 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_3.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_3.js third-party-new/doc/html/search/pages_3.js
--- third-party-libevdev-bak/doc/html/search/pages_3.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_3.js 2023-04-01 15:50:56.221896100 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['kernel_20header_251',['Kernel header',['../kernel_header.html',1,'']]]
+ ['kernel_20header_252',['Kernel header',['../kernel_header.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/pages_4.html third-party-new/doc/html/search/pages_4.html
--- third-party-libevdev-bak/doc/html/search/pages_4.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_4.html 2023-04-01 15:51:04.995238600 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_4.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_4.js third-party-new/doc/html/search/pages_4.js
--- third-party-libevdev-bak/doc/html/search/pages_4.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_4.js 2023-04-01 15:51:18.476565200 +0800
@@ -1,4 +1,4 @@
var searchData=
[
- ['libevdev_2dinternal_20test_20suite_252',['libevdev-internal test suite',['../testing.html',1,'']]]
+ ['libevdev_2dinternal_20test_20suite_253',['libevdev-internal test suite',['../testing.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/pages_5.html third-party-new/doc/html/search/pages_5.html
--- third-party-libevdev-bak/doc/html/search/pages_5.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_5.html 2023-04-01 15:51:35.170111200 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_5.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/pages_5.js third-party-new/doc/html/search/pages_5.js
--- third-party-libevdev-bak/doc/html/search/pages_5.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/pages_5.js 2023-04-01 15:51:41.455294000 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['statically_20linking_20libevdev_253',['Statically linking libevdev',['../static_linking.html',1,'']]],
- ['syn_5fdropped_20handling_254',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]]
+ ['statically_20linking_20libevdev_254',['Statically linking libevdev',['../static_linking.html',1,'']]],
+ ['syn_5fdropped_20handling_255',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]]
];
diff -Naur third-party-libevdev-bak/doc/html/search/search.css third-party-new/doc/html/search/search.css
--- third-party-libevdev-bak/doc/html/search/search.css 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/search.css 2023-04-01 15:51:53.793569800 +0800
@@ -204,19 +204,21 @@
span.SRScope {
padding-left: 4px;
+ font-family: Arial, Verdana, sans-serif;
}
.SRPage .SRStatus {
padding: 2px 5px;
font-size: 8pt;
font-style: italic;
+ font-family: Arial, Verdana, sans-serif;
}
.SRResult {
display: none;
}
-DIV.searchresults {
+div.searchresults {
margin-left: 10px;
margin-right: 10px;
}
diff -Naur third-party-libevdev-bak/doc/html/search/search.js third-party-new/doc/html/search/search.js
--- third-party-libevdev-bak/doc/html/search/search.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/search.js 2023-04-01 15:52:03.869932900 +0800
@@ -80,9 +80,10 @@
storing this instance. Is needed to be able to set timeouts.
resultPath - path to use for external files
*/
-function SearchBox(name, resultsPath, inFrame, label)
+function SearchBox(name, resultsPath, inFrame, label, extension)
{
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+ if (!extension || extension == "") { extension = ".html"; }
// ---------- Instance variables
this.name = name;
@@ -97,6 +98,7 @@
this.searchActive = false;
this.insideFrame = inFrame;
this.searchLabel = label;
+ this.extension = extension;
// ----------- DOM Elements
@@ -347,13 +349,13 @@
if (idx!=-1)
{
var hexCode=idx.toString(16);
- resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
hasResultsPage = true;
}
else // nothing available for this search term
{
- resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPage = this.resultsPath + '/nomatches' + this.extension;
resultsPageWithSearch = resultsPage;
hasResultsPage = false;
}
@@ -439,12 +441,12 @@
while (element && element!=parentElement)
{
- if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
{
return element;
}
- if (element.nodeName == 'DIV' && element.hasChildNodes())
+ if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
{
element = element.firstChild;
}
diff -Naur third-party-libevdev-bak/doc/html/search/typedefs_0.html third-party-new/doc/html/search/typedefs_0.html
--- third-party-libevdev-bak/doc/html/search/typedefs_0.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/typedefs_0.html 2023-04-01 15:52:33.109118000 +0800
@@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="typedefs_0.js"></script>
<script type="text/javascript" src="search.js"></script>
@@ -10,14 +11,14 @@
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
---></script>
+</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
+<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
@@ -30,7 +31,7 @@
}
});
/* @license-end */
---></script>
+</script>
</div>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/search/typedefs_0.js third-party-new/doc/html/search/typedefs_0.js
--- third-party-libevdev-bak/doc/html/search/typedefs_0.js 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/search/typedefs_0.js 2023-04-01 15:52:40.243913400 +0800
@@ -1,5 +1,5 @@
var searchData=
[
- ['libevdev_5fdevice_5flog_5ffunc_5ft_216',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]],
- ['libevdev_5flog_5ffunc_5ft_217',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]]
+ ['libevdev_5fdevice_5flog_5ffunc_5ft_217',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]],
+ ['libevdev_5flog_5ffunc_5ft_218',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]]
];
diff -Naur third-party-libevdev-bak/doc/html/static_linking.html third-party-new/doc/html/static_linking.html
--- third-party-libevdev-bak/doc/html/static_linking.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/static_linking.html 2023-04-03 10:51:28.904735900 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: Statically linking libevdev</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -87,7 +87,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/syn_dropped.html third-party-new/doc/html/syn_dropped.html
--- third-party-libevdev-bak/doc/html/syn_dropped.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/syn_dropped.html 2023-04-03 10:51:40.301674000 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: SYN_DROPPED handling</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -185,6 +185,9 @@
<div class="line">EV_ABS ABS_MT_POSITION_Y 10</div>
<div class="line">EV_SYN SYN_REPORT 0</div>
<div class="line">-------------------</div>
+<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1090</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:761</div></div>
+<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:762</div></div>
</div><!-- fragment --><p> The axis events do not reflect the position of a current touch point, a client must take care not to generate a new touch point based on those updates.</p>
<h1><a class="anchor" id="autotoc_md13"></a>
Discarding events before synchronizing</h1>
@@ -209,9 +212,6 @@
<div class="line">EV_SYN SYN_REPORT 0</div>
</div><!-- fragment --> </div></div><!-- contents -->
</div><!-- PageDoc -->
-<div class="ttc" id="agroup__events_html_gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a"><div class="ttname"><a href="group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a">LIBEVDEV_READ_STATUS_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_STATUS_SYNC</div><div class="ttdoc">Depending on the libevdev_next_event() read flag:</div><div class="ttdef"><b>Definition:</b> libevdev.h:1087</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418">LIBEVDEV_READ_FLAG_NORMAL</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_NORMAL</div><div class="ttdoc">Process data in normal mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:759</div></div>
-<div class="ttc" id="agroup__events_html_gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8"><div class="ttname"><a href="group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8">LIBEVDEV_READ_FLAG_SYNC</a></div><div class="ttdeci">@ LIBEVDEV_READ_FLAG_SYNC</div><div class="ttdoc">Process data in sync mode.</div><div class="ttdef"><b>Definition:</b> libevdev.h:758</div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
@@ -222,7 +222,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/doc/html/testing.html third-party-new/doc/html/testing.html
--- third-party-libevdev-bak/doc/html/testing.html 2023-03-28 10:49:53.384511800 +0800
+++ third-party-new/doc/html/testing.html 2023-04-03 10:52:14.250526200 +0800
@@ -6,7 +6,7 @@
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta name="generator" content="Doxygen 1.8.20"/>
+ <meta name="generator" content="Doxygen 1.9.1"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>libevdev: libevdev-internal test suite</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
@@ -25,7 +25,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand">libevdev 1.10.0</a>
+ <a class="navbar-brand">libevdev 1.12.1</a>
</div>
</div>
</nav>
@@ -36,10 +36,10 @@
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
-<!-- Generated by Doxygen 1.8.20 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
@@ -75,11 +75,11 @@
<div class="textblock"><p>libevdev's internal test suite uses the <a href="http://check.sourceforge.net/">Check unit testing framework</a>.</p>
<p>Tests are divided into test suites and test cases. Most tests create a uinput device, so you'll need to run as root, and your kernel must have <code>CONFIG_INPUT_UINPUT</code> enabled.</p>
<p>To run a specific suite only: </p><pre class="fragment">export CK_RUN_SUITE="suite name"
-</pre><p>To run a specific test case only: </p><pre class="fragment">export CK_RUN_TEST="test case name"
-</pre><p>To get a list of all suites or tests: </p><pre class="fragment">git grep "suite_create"
+</pre><p> To run a specific test case only: </p><pre class="fragment">export CK_RUN_TEST="test case name"
+</pre><p> To get a list of all suites or tests: </p><pre class="fragment">git grep "suite_create"
git grep "tcase_create"
-</pre><p>By default, Check forks, making debugging harder. The test suite tries to detect if it is running inside gdb and disable forking. If that doesn't work for some reason, run gdb as below to avoid forking. </p><pre class="fragment">sudo CK_FORK=no CK_RUN_TEST="test case name" gdb ./test/test-libevdev
-</pre><p>A special target <code>make gcov-report.txt</code> exists that runs gcov and leaves a <code>libevdev.c.gcov</code> file. Check that for test coverage.</p>
+</pre><p> By default, Check forks, making debugging harder. The test suite tries to detect if it is running inside gdb and disable forking. If that doesn't work for some reason, run gdb as below to avoid forking. </p><pre class="fragment">sudo CK_FORK=no CK_RUN_TEST="test case name" gdb ./test/test-libevdev
+</pre><p> A special target <code>make gcov-report.txt</code> exists that runs gcov and leaves a <code>libevdev.c.gcov</code> file. Check that for test coverage.</p>
<p><code>make check</code> is hooked up to run the test and gcov (again, needs root).</p>
<p>The test suite creates a lot of devices, very quickly. Add the following xorg.conf.d snippet to avoid the devices being added as X devices (at the time of writing, mutter can't handle these devices and exits after getting a BadDevice error). </p><pre class="fragment">$ cat /etc/X11/xorg.conf.d/99-ignore-libevdev-devices.conf
Section "InputClass"
@@ -99,7 +99,7 @@
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.20
+</a> 1.9.1
</small></address>
</body>
</html>
diff -Naur third-party-libevdev-bak/export_include/libevdev/libevdev.h third-party-new/export_include/libevdev/libevdev.h
--- third-party-libevdev-bak/export_include/libevdev/libevdev.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/export_include/libevdev/libevdev.h 2023-04-03 10:54:02.032303600 +0800
@@ -1,23 +1,26 @@
+/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2013 Red Hat, Inc.
*
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
+ * 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 (including the next
+ * paragraph) 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
+ * AUTHORS OR COPYRIGHT HOLDERS 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.
+ *
*/
#ifndef LIBEVDEV_H
@@ -631,7 +634,7 @@
* return ENOMEM;
*
* err = libevdev_set_fd(dev, fd);
- * if (err < 0) {
+ * if (err < 0)
* printf("Failed (errno %d): %s\n", -err, strerror(-err));
*
* libevdev_free(dev);
@@ -1515,8 +1518,7 @@
* the event.
*
* If the device supports ABS_MT_SLOT, the value returned for any ABS_MT_*
- * event code is the value of the currently active slot. You should use
- * libevdev_get_slot_value() instead.
+ * event code is undefined. Use libevdev_get_slot_value() instead.
*
* @param dev The evdev device, already initialized with libevdev_set_fd()
* @param type The event type for the code to query (EV_SYN, EV_REL, etc.)
diff -Naur third-party-libevdev-bak/include/config.h third-party-new/include/config.h
--- third-party-libevdev-bak/include/config.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/include/config.h 2023-04-03 10:54:49.836630400 +0800
@@ -0,0 +1,9 @@
+/*
+ * Autogenerated by the Meson build system.
+ * Do not edit, your changes will be lost.
+ */
+
+#pragma once
+
+#define _GNU_SOURCE 1
+
diff -Naur third-party-libevdev-bak/include/event-names.h third-party-new/include/event-names.h
--- third-party-libevdev-bak/include/event-names.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/include/event-names.h 2023-04-03 10:55:34.844073900 +0800
@@ -281,7 +281,7 @@
[KEY_PAUSECD] = "KEY_PAUSECD",
[KEY_PROG3] = "KEY_PROG3",
[KEY_PROG4] = "KEY_PROG4",
- [KEY_DASHBOARD] = "KEY_DASHBOARD",
+ [KEY_ALL_APPLICATIONS] = "KEY_ALL_APPLICATIONS",
[KEY_SUSPEND] = "KEY_SUSPEND",
[KEY_CLOSE] = "KEY_CLOSE",
[KEY_PLAY] = "KEY_PLAY",
@@ -417,6 +417,9 @@
[KEY_10CHANNELSUP] = "KEY_10CHANNELSUP",
[KEY_10CHANNELSDOWN] = "KEY_10CHANNELSDOWN",
[KEY_IMAGES] = "KEY_IMAGES",
+ [KEY_NOTIFICATION_CENTER] = "KEY_NOTIFICATION_CENTER",
+ [KEY_PICKUP_PHONE] = "KEY_PICKUP_PHONE",
+ [KEY_HANGUP_PHONE] = "KEY_HANGUP_PHONE",
[KEY_DEL_EOL] = "KEY_DEL_EOL",
[KEY_DEL_EOS] = "KEY_DEL_EOS",
[KEY_INS_LINE] = "KEY_INS_LINE",
@@ -442,6 +445,7 @@
[KEY_FN_F] = "KEY_FN_F",
[KEY_FN_S] = "KEY_FN_S",
[KEY_FN_B] = "KEY_FN_B",
+ [KEY_FN_RIGHT_SHIFT] = "KEY_FN_RIGHT_SHIFT",
[KEY_BRL_DOT1] = "KEY_BRL_DOT1",
[KEY_BRL_DOT2] = "KEY_BRL_DOT2",
[KEY_BRL_DOT3] = "KEY_BRL_DOT3",
@@ -494,6 +498,8 @@
[KEY_VOICECOMMAND] = "KEY_VOICECOMMAND",
[KEY_ASSISTANT] = "KEY_ASSISTANT",
[KEY_KBD_LAYOUT_NEXT] = "KEY_KBD_LAYOUT_NEXT",
+ [KEY_EMOJI_PICKER] = "KEY_EMOJI_PICKER",
+ [KEY_DICTATE] = "KEY_DICTATE",
[KEY_BRIGHTNESS_MIN] = "KEY_BRIGHTNESS_MIN",
[KEY_BRIGHTNESS_MAX] = "KEY_BRIGHTNESS_MAX",
[KEY_KBDINPUTASSIST_PREV] = "KEY_KBDINPUTASSIST_PREV",
@@ -1063,6 +1069,7 @@
{ .name = "KEY_AB", .value = KEY_AB },
{ .name = "KEY_ADDRESSBOOK", .value = KEY_ADDRESSBOOK },
{ .name = "KEY_AGAIN", .value = KEY_AGAIN },
+ { .name = "KEY_ALL_APPLICATIONS", .value = KEY_ALL_APPLICATIONS },
{ .name = "KEY_ALS_TOGGLE", .value = KEY_ALS_TOGGLE },
{ .name = "KEY_ALTERASE", .value = KEY_ALTERASE },
{ .name = "KEY_ANGLE", .value = KEY_ANGLE },
@@ -1137,7 +1144,6 @@
{ .name = "KEY_CUT", .value = KEY_CUT },
{ .name = "KEY_CYCLEWINDOWS", .value = KEY_CYCLEWINDOWS },
{ .name = "KEY_D", .value = KEY_D },
- { .name = "KEY_DASHBOARD", .value = KEY_DASHBOARD },
{ .name = "KEY_DATA", .value = KEY_DATA },
{ .name = "KEY_DATABASE", .value = KEY_DATABASE },
{ .name = "KEY_DELETE", .value = KEY_DELETE },
@@ -1145,6 +1151,7 @@
{ .name = "KEY_DEL_EOL", .value = KEY_DEL_EOL },
{ .name = "KEY_DEL_EOS", .value = KEY_DEL_EOS },
{ .name = "KEY_DEL_LINE", .value = KEY_DEL_LINE },
+ { .name = "KEY_DICTATE", .value = KEY_DICTATE },
{ .name = "KEY_DIGITS", .value = KEY_DIGITS },
{ .name = "KEY_DIRECTORY", .value = KEY_DIRECTORY },
{ .name = "KEY_DISPLAYTOGGLE", .value = KEY_DISPLAYTOGGLE },
@@ -1160,6 +1167,7 @@
{ .name = "KEY_EJECTCD", .value = KEY_EJECTCD },
{ .name = "KEY_EJECTCLOSECD", .value = KEY_EJECTCLOSECD },
{ .name = "KEY_EMAIL", .value = KEY_EMAIL },
+ { .name = "KEY_EMOJI_PICKER", .value = KEY_EMOJI_PICKER },
{ .name = "KEY_END", .value = KEY_END },
{ .name = "KEY_ENTER", .value = KEY_ENTER },
{ .name = "KEY_EPG", .value = KEY_EPG },
@@ -1219,6 +1227,7 @@
{ .name = "KEY_FN_F7", .value = KEY_FN_F7 },
{ .name = "KEY_FN_F8", .value = KEY_FN_F8 },
{ .name = "KEY_FN_F9", .value = KEY_FN_F9 },
+ { .name = "KEY_FN_RIGHT_SHIFT", .value = KEY_FN_RIGHT_SHIFT },
{ .name = "KEY_FN_S", .value = KEY_FN_S },
{ .name = "KEY_FORWARD", .value = KEY_FORWARD },
{ .name = "KEY_FORWARDMAIL", .value = KEY_FORWARDMAIL },
@@ -1234,6 +1243,7 @@
{ .name = "KEY_GREEN", .value = KEY_GREEN },
{ .name = "KEY_H", .value = KEY_H },
{ .name = "KEY_HANGEUL", .value = KEY_HANGEUL },
+ { .name = "KEY_HANGUP_PHONE", .value = KEY_HANGUP_PHONE },
{ .name = "KEY_HANJA", .value = KEY_HANJA },
{ .name = "KEY_HELP", .value = KEY_HELP },
{ .name = "KEY_HENKAN", .value = KEY_HENKAN },
@@ -1366,6 +1376,7 @@
{ .name = "KEY_NEXT", .value = KEY_NEXT },
{ .name = "KEY_NEXTSONG", .value = KEY_NEXTSONG },
{ .name = "KEY_NEXT_FAVORITE", .value = KEY_NEXT_FAVORITE },
+ { .name = "KEY_NOTIFICATION_CENTER", .value = KEY_NOTIFICATION_CENTER },
{ .name = "KEY_NUMERIC_0", .value = KEY_NUMERIC_0 },
{ .name = "KEY_NUMERIC_1", .value = KEY_NUMERIC_1 },
{ .name = "KEY_NUMERIC_11", .value = KEY_NUMERIC_11 },
@@ -1399,6 +1410,7 @@
{ .name = "KEY_PAUSE_RECORD", .value = KEY_PAUSE_RECORD },
{ .name = "KEY_PC", .value = KEY_PC },
{ .name = "KEY_PHONE", .value = KEY_PHONE },
+ { .name = "KEY_PICKUP_PHONE", .value = KEY_PICKUP_PHONE },
{ .name = "KEY_PLAY", .value = KEY_PLAY },
{ .name = "KEY_PLAYCD", .value = KEY_PLAYCD },
{ .name = "KEY_PLAYER", .value = KEY_PLAYER },
diff -Naur third-party-libevdev-bak/include/linux/input.h third-party-new/include/linux/input.h
--- third-party-libevdev-bak/include/linux/input.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/include/linux/input.h 2023-04-03 10:54:25.334322800 +0800
@@ -1,5 +1,5 @@
-//#ifdef __linux__
+#ifdef __linux__
#include "linux/input.h"
-//#elif __FreeBSD__
-//#include "freebsd/input.h"
-//#endif
+#elif __FreeBSD__
+#include "freebsd/input.h"
+#endif
diff -Naur third-party-libevdev-bak/include/linux/linux/input-event-codes.h third-party-new/include/linux/linux/input-event-codes.h
--- third-party-libevdev-bak/include/linux/linux/input-event-codes.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/include/linux/linux/input-event-codes.h 2023-04-03 14:59:14.990160600 +0800
@@ -278,7 +278,8 @@
#define KEY_PAUSECD 201
#define KEY_PROG3 202
#define KEY_PROG4 203
-#define KEY_DASHBOARD 204 /* AL Dashboard */
+#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
#define KEY_SUSPEND 205
#define KEY_CLOSE 206 /* AC Close */
#define KEY_PLAY 207
@@ -515,6 +516,9 @@
#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */
#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */
#define KEY_IMAGES 0x1ba /* AL Image Browser */
+#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */
+#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */
+#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */
#define KEY_DEL_EOL 0x1c0
#define KEY_DEL_EOS 0x1c1
@@ -542,6 +546,7 @@
#define KEY_FN_F 0x1e2
#define KEY_FN_S 0x1e3
#define KEY_FN_B 0x1e4
+#define KEY_FN_RIGHT_SHIFT 0x1e5
#define KEY_BRL_DOT1 0x1f1
#define KEY_BRL_DOT2 0x1f2
@@ -607,6 +612,8 @@
#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */
#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */
#define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */
+#define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */
+#define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */
#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */
#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */
diff -Naur third-party-libevdev-bak/include/linux/linux/input.h third-party-new/include/linux/linux/input.h
--- third-party-libevdev-bak/include/linux/linux/input.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/include/linux/linux/input.h 2023-04-03 14:59:02.390820400 +0800
@@ -82,7 +82,7 @@
* in units per radian.
* When INPUT_PROP_ACCELEROMETER is set the resolution changes.
* The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in
- * in units per g (units/g) and in units per degree per second
+ * units per g (units/g) and in units per degree per second
* (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ).
*/
struct input_absinfo {
diff -Naur third-party-libevdev-bak/libevdev/Makefile.in third-party-new/libevdev/Makefile.in
--- third-party-libevdev-bak/libevdev/Makefile.in 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/libevdev/Makefile.in 2023-04-03 10:58:57.538254500 +0800
@@ -0,0 +1,750 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@GCOV_ENABLED_TRUE@am__append_1 = *.gcno
+subdir = libevdev
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(libevdevinclude_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(libevdevincludedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libevdev_la_LIBADD =
+am_libevdev_la_OBJECTS = libevdev-uinput.lo libevdev.lo \
+ libevdev-names.lo
+libevdev_la_OBJECTS = $(am_libevdev_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libevdev_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libevdev_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/libevdev-names.Plo \
+ ./$(DEPDIR)/libevdev-uinput.Plo ./$(DEPDIR)/libevdev.Plo
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libevdev_la_SOURCES)
+DIST_SOURCES = $(libevdev_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(libevdevinclude_HEADERS)
+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
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_CFLAGS = @GCC_CFLAGS@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LDFLAGS = @GCOV_LDFLAGS@
+GNU_LD_FLAGS = @GNU_LD_FLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBEVDEV_LT_VERSION = @LIBEVDEV_LT_VERSION@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VALGRIND = @VALGRIND@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+lib_LTLIBRARIES = libevdev.la
+AM_CPPFLAGS = $(GCC_CFLAGS) $(GCOV_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)
+AM_LDFLAGS = $(GCOV_LDFLAGS)
+libevdev_la_SOURCES = \
+ libevdev.h \
+ libevdev-int.h \
+ libevdev-util.h \
+ libevdev-uinput.c \
+ libevdev-uinput.h \
+ libevdev-uinput-int.h \
+ libevdev.c \
+ libevdev-names.c \
+ ../include/linux/input.h \
+ ../include/linux/uinput.h \
+ ../include/linux/@OS@/input-event-codes.h \
+ ../include/linux/@OS@/input.h \
+ ../include/linux/@OS@/uinput.h
+
+libevdev_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBEVDEV_LT_VERSION) \
+ -Wl,--version-script="$(srcdir)/libevdev.sym" \
+ $(GNU_LD_FLAGS)
+
+EXTRA_libevdev_la_DEPENDENCIES = $(srcdir)/libevdev.sym
+libevdevincludedir = $(includedir)/libevdev-1.0/libevdev
+libevdevinclude_HEADERS = libevdev.h libevdev-uinput.h
+EXTRA_DIST = make-event-names.py libevdev.sym
+CLEANFILES = event-names.h $(am__append_1)
+BUILT_SOURCES = event-names.h
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libevdev/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign libevdev/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ 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)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libevdev.la: $(libevdev_la_OBJECTS) $(libevdev_la_DEPENDENCIES) $(EXTRA_libevdev_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libevdev_la_LINK) -rpath $(libdir) $(libevdev_la_OBJECTS) $(libevdev_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev-names.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev-uinput.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev.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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-libevdevincludeHEADERS: $(libevdevinclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(libevdevinclude_HEADERS)'; test -n "$(libevdevincludedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libevdevincludedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libevdevincludedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libevdevincludedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libevdevincludedir)" || exit $$?; \
+ done
+
+uninstall-libevdevincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libevdevinclude_HEADERS)'; test -n "$(libevdevincludedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libevdevincludedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+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)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libevdevincludedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/libevdev-names.Plo
+ -rm -f ./$(DEPDIR)/libevdev-uinput.Plo
+ -rm -f ./$(DEPDIR)/libevdev.Plo
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libevdevincludeHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/libevdev-names.Plo
+ -rm -f ./$(DEPDIR)/libevdev-uinput.Plo
+ -rm -f ./$(DEPDIR)/libevdev.Plo
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES \
+ uninstall-libevdevincludeHEADERS
+
+.MAKE: all check install install-am install-exec install-strip
+
+.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-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 install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-libLTLIBRARIES \
+ install-libevdevincludeHEADERS install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-libevdevincludeHEADERS
+
+.PRECIOUS: Makefile
+
+
+event-names.h: Makefile make-event-names.py
+ $(PYTHON) $(srcdir)/make-event-names.py $(top_srcdir)/include/linux/@OS@/input.h $(top_srcdir)/include/linux/@OS@/input-event-codes.h > $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -Naur third-party-libevdev-bak/libevdev/libevdev-int.h third-party-new/libevdev/libevdev-int.h
--- third-party-libevdev-bak/libevdev/libevdev-int.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-int.h 2023-04-03 10:56:27.930339900 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
#ifndef LIBEVDEV_INT_H
diff -Naur third-party-libevdev-bak/libevdev/libevdev-names.c third-party-new/libevdev/libevdev-names.c
--- third-party-libevdev-bak/libevdev/libevdev-names.c 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-names.c 2023-04-03 10:56:35.702547900 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 David Herrmann <dh.herrmann@gmail.com>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
#include "config.h"
diff -Naur third-party-libevdev-bak/libevdev/libevdev-uinput-int.h third-party-new/libevdev/libevdev-uinput-int.h
--- third-party-libevdev-bak/libevdev/libevdev-uinput-int.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-uinput-int.h 2023-04-03 10:57:19.761681900 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
struct libevdev_uinput {
diff -Naur third-party-libevdev-bak/libevdev/libevdev-uinput.c third-party-new/libevdev/libevdev-uinput.c
--- third-party-libevdev-bak/libevdev/libevdev-uinput.c 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-uinput.c 2023-04-03 10:56:54.433613900 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
#include "config.h"
@@ -185,7 +168,7 @@
* FreeBSD does not have anything similar to sysfs.
* Set libevdev_uinput->syspath to NULL unconditionally.
* Look up the device nodes directly instead of via sysfs, as this matches what
- * is returned by the UI_GET_SYSNAME ioctl() on FreeBSD.
+ * is returned by the UI_GET_SYSNAME ioctl() on FreeBSD.
*/
static int
fetch_syspath_and_devnode(struct libevdev_uinput *uinput_dev)
@@ -485,11 +468,7 @@
unsigned int code,
int value)
{
-#ifndef __MUSL__
struct input_event ev = { {0,0}, type, code, value };
-#else
- struct input_event ev = { type, code, value };
-#endif
int fd = libevdev_uinput_get_fd(uinput_dev);
int rc, max;
diff -Naur third-party-libevdev-bak/libevdev/libevdev-uinput.h third-party-new/libevdev/libevdev-uinput.h
--- third-party-libevdev-bak/libevdev/libevdev-uinput.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-uinput.h 2023-04-03 10:57:12.546311000 +0800
@@ -1,23 +1,25 @@
+/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2013 Red Hat, Inc.
*
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
+ * 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 (including the next
+ * paragraph) 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
+ * AUTHORS OR COPYRIGHT HOLDERS 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.
*/
#ifndef LIBEVDEV_UINPUT_H
@@ -40,14 +42,13 @@
*
* @code
* int err;
- * int fd, new_fd, uifd;
+ * int fd, uifd;
* struct libevdev *dev;
* struct libevdev_uinput *uidev;
- * struct input_event ev[2];
*
* fd = open("/dev/input/event0", O_RDONLY);
* if (fd < 0)
- * return err;
+ * return -errno;
*
* err = libevdev_new_from_fd(fd, &dev);
* if (err != 0)
@@ -65,7 +66,7 @@
* err = libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
* if (err != 0)
* return err;
- * libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+ * err = libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
* if (err != 0)
* return err;
*
@@ -107,7 +108,7 @@
*/
enum libevdev_uinput_open_mode {
- /* intentionally -2 to avoid to avoid code like the below from accidentally working:
+ /* intentionally -2 to avoid code like below from accidentally working:
fd = open("/dev/uinput", O_RDWR); // fails, fd is -1
libevdev_uinput_create_from_device(dev, fd, &uidev); // may hide the error */
LIBEVDEV_UINPUT_OPEN_MANAGED = -2 /**< let libevdev open and close @c /dev/uinput */
@@ -186,7 +187,7 @@
* @ingroup uinput
*
* Return the syspath representing this uinput device. If the UI_GET_SYSNAME
- * ioctl not available, libevdev makes an educated guess.
+ * ioctl is not available, libevdev makes an educated guess.
* The UI_GET_SYSNAME ioctl is available since Linux 3.15.
*
* The syspath returned is the one of the input node itself
@@ -195,8 +196,8 @@
*
* @note This function may return NULL if UI_GET_SYSNAME is not available.
* In that case, libevdev uses ctime and the device name to guess devices.
- * To avoid false positives, wait at least wait at least 1.5s between
- * creating devices that have the same name.
+ * To avoid false positives, wait at least 1.5s between creating devices that
+ * have the same name.
*
* @note FreeBSD does not have sysfs, on FreeBSD this function always returns
* NULL.
@@ -219,7 +220,7 @@
* @note This function may return NULL. libevdev may have to guess the
* syspath and the device node. See libevdev_uinput_get_syspath() for details.
*
- * @note On FreeBSD, this function can not return NULL. libudev uses the
+ * @note On FreeBSD, this function can not return NULL. libudev uses the
* UI_GET_SYSNAME ioctl to get the device node on this platform and if that
* fails, the call to libevdev_uinput_create_from_device() fails.
*
diff -Naur third-party-libevdev-bak/libevdev/libevdev-util.h third-party-new/libevdev/libevdev-util.h
--- third-party-libevdev-bak/libevdev/libevdev-util.h 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev-util.h 2023-04-03 10:57:26.584450200 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
#ifndef _UTIL_H_
diff -Naur third-party-libevdev-bak/libevdev/libevdev.c third-party-new/libevdev/libevdev.c
--- third-party-libevdev-bak/libevdev/libevdev.c 2023-03-28 10:49:53.388511800 +0800
+++ third-party-new/libevdev/libevdev.c 2023-04-03 10:55:59.815147300 +0800
@@ -1,23 +1,6 @@
+// SPDX-License-Identifier: MIT
/*
* Copyright © 2013 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
#include "config.h"
diff -Naur third-party-libevdev-bak/libevdev/libevdev.h third-party-new/libevdev/libevdev.h
--- third-party-libevdev-bak/libevdev/libevdev.h 2023-03-28 10:49:53.392511900 +0800
+++ third-party-new/libevdev/libevdev.h 2023-04-03 10:56:13.042137200 +0800
@@ -1,23 +1,26 @@
+/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2013 Red Hat, Inc.
*
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
+ * 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 (including the next
+ * paragraph) 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
+ * AUTHORS OR COPYRIGHT HOLDERS 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.
+ *
*/
#ifndef LIBEVDEV_H
@@ -631,7 +634,7 @@
* return ENOMEM;
*
* err = libevdev_set_fd(dev, fd);
- * if (err < 0) {
+ * if (err < 0)
* printf("Failed (errno %d): %s\n", -err, strerror(-err));
*
* libevdev_free(dev);
@@ -1515,8 +1518,7 @@
* the event.
*
* If the device supports ABS_MT_SLOT, the value returned for any ABS_MT_*
- * event code is the value of the currently active slot. You should use
- * libevdev_get_slot_value() instead.
+ * event code is undefined. Use libevdev_get_slot_value() instead.
*
* @param dev The evdev device, already initialized with libevdev_set_fd()
* @param type The event type for the code to query (EV_SYN, EV_REL, etc.)
diff -Naur third-party-libevdev-bak/libevdev/libevdev.sym third-party-new/libevdev/libevdev.sym
--- third-party-libevdev-bak/libevdev/libevdev.sym 2023-03-28 10:49:53.392511900 +0800
+++ third-party-new/libevdev/libevdev.sym 2023-04-03 10:56:20.288783100 +0800
@@ -1,23 +1,6 @@
+/* SPDX-License-Identifier: MIT */
/*
* Copyright (c) 2013 David Herrmann <dh.herrmann@gmail.com>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
*/
LIBEVDEV_1 {
diff -Naur third-party-libevdev-bak/libevdev/make-event-names.py third-party-new/libevdev/make-event-names.py
--- third-party-libevdev-bak/libevdev/make-event-names.py 2023-03-28 10:49:53.392511900 +0800
+++ third-party-new/libevdev/make-event-names.py 2023-04-03 10:57:38.511272000 +0800
@@ -70,10 +70,10 @@
if not hasattr(bits, prefix):
return
print("static const char * const %s_map[%s_MAX + 1] = {" % (prefix, prefix.upper()))
- for val, name in list(getattr(bits, prefix).items()):
+ for val, name in sorted(list(getattr(bits, prefix).items())):
print(" [%s] = \"%s\"," % (name, name))
if prefix == "key":
- for val, name in list(getattr(bits, "btn").items()):
+ for val, name in sorted(list(getattr(bits, "btn").items())):
print(" [%s] = \"%s\"," % (name, name))
print("};")
print("")
@@ -118,7 +118,7 @@
if not hasattr(bits, prefix):
return
- names = list(getattr(bits, prefix).items())
+ names = sorted(list(getattr(bits, prefix).items()))
if prefix == "btn":
names = names + btn_additional
diff -Naur third-party-libevdev-bak/meson.build third-party-new/meson.build
--- third-party-libevdev-bak/meson.build 2023-03-28 10:49:53.392511900 +0800
+++ third-party-new/meson.build 2023-04-03 14:17:28.310190000 +0800
@@ -1,5 +1,5 @@
project('libevdev', 'c',
- version: '1.10.0', # change autotools version too
+ version: '1.12.1', # change autotools version too
license: 'MIT/Expat',
default_options: [ 'c_std=gnu99', 'warning_level=2' ],
meson_version: '>= 0.47.0')
@@ -37,6 +37,7 @@
# Dependencies
pkgconfig = import('pkgconfig')
dep_lm = cc.find_library('m')
+dep_rt = cc.find_library('rt')
input_h = join_paths(meson.source_root(), 'include', 'linux', host_machine.system(), 'input.h')
uinput_h = join_paths(meson.source_root(), 'include', 'linux', host_machine.system(), 'uinput.h')
@@ -76,7 +77,7 @@
lib_libevdev = library('evdev',
src_libevdev,
include_directories: [includes_include],
- dependencies: [],
+ dependencies: [dep_rt],
version: libevdev_so_version,
link_args: version_flag,
link_depends: mapfile,
@@ -108,6 +109,11 @@
include_directories: [includes_include],
dependencies: dep_libevdev,
install: false)
+executable('libevdev-list-codes',
+ sources: ['tools/libevdev-list-codes.c'],
+ include_directories: [includes_include],
+ dependencies: dep_libevdev,
+ install: false)
executable('touchpad-edge-detector',
sources: ['tools/touchpad-edge-detector.c'],
include_directories: [includes_include],
diff -Naur third-party-libevdev-bak/test/Makefile.am third-party-new/test/Makefile.am
--- third-party-libevdev-bak/test/Makefile.am 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/Makefile.am 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,143 @@
+build_tests = test-compile-pedantic test-link
+
+if ENABLE_STATIC_LINK_TEST
+build_tests += test-static-link
+endif
+
+noinst_PROGRAMS = $(build_tests)
+
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir)/libevdev
+AM_LDFLAGS =
+
+test_compile_pedantic_SOURCES = test-compile-pedantic.c
+test_compile_pedantic_CFLAGS = $(AM_CPPFLAGS) -pedantic -Werror -std=c89
+
+test_link_SOURCES = test-link.c
+test_link_CFLAGS = -I$(top_srcdir)
+test_link_LDADD = $(top_builddir)/libevdev/libevdev.la
+
+test_static_link_SOURCES = test-link.c
+test_static_link_CFLAGS = -I$(top_srcdir)
+test_static_link_LDADD = $(top_builddir)/libevdev/libevdev.la
+test_static_link_LDFLAGS = $(AM_LDFLAGS) -static
+
+check_local_deps =
+
+if ENABLE_RUNTIME_TESTS
+run_tests = \
+ test-libevdev \
+ test-kernel \
+ test-uinput \
+ test-event-codes \
+ test-libevdev-internals \
+ $(NULL)
+
+.NOTPARALLEL:
+
+noinst_PROGRAMS += $(run_tests)
+
+TESTS = $(run_tests)
+
+common_sources = \
+ test-common-uinput.c \
+ test-common-uinput.h \
+ test-common.c \
+ test-common.h
+
+# include builddir for event-names.h
+AM_CPPFLAGS += $(CHECK_CFLAGS) $(GCOV_CFLAGS)
+AM_LDFLAGS += $(GCOV_LDFLAGS)
+
+test_event_codes_SOURCES = \
+ test-main.c \
+ test-event-codes.c \
+ test-event-names.c \
+ test-context.c \
+ $(common_sources)
+test_event_codes_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+test_event_codes_LDFLAGS = -no-install
+
+test_libevdev_internals_SOURCES = \
+ test-main.c \
+ test-int-queue.c \
+ $(common_sources)
+test_libevdev_internals_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+test_libevdev_internals_LDFLAGS = -no-install
+
+test_uinput_SOURCES = \
+ test-main.c \
+ test-uinput.c \
+ $(common_sources)
+test_uinput_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+test_uinput_LDFLAGS = -no-install
+
+test_libevdev_SOURCES = \
+ test-main.c \
+ test-libevdev-init.c \
+ test-libevdev-has-event.c \
+ test-libevdev-events.c \
+ $(common_sources)
+
+test_libevdev_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+test_libevdev_LDFLAGS = -no-install
+
+test_kernel_SOURCES = \
+ test-main.c \
+ test-kernel.c \
+ $(common_sources)
+
+test_kernel_CFLAGS = -I$(top_srcdir)
+test_kernel_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+
+if HAVE_VALGRIND
+VALGRIND_FLAGS=--leak-check=full \
+ --quiet \
+ --error-exitcode=3 \
+ --suppressions=$(srcdir)/valgrind.suppressions
+
+valgrind:
+ $(MAKE) check-TESTS CK_TIMEOUT_MULTIPLIER=10 LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)"
+
+check_local_deps += valgrind
+
+endif
+
+if GCOV_ENABLED
+
+CLEANFILES = gcov-reports/*.gcov gcov-reports/summary.txt *.gcno *.gcda
+
+gcov-report: generate-gcov-report.sh check-TESTS
+ $(AM_V_GEN)$(srcdir)/generate-gcov-report.sh gcov-reports $(top_builddir)/libevdev $(builddir)
+
+gcov: gcov-report
+ @cat gcov-reports/summary.txt
+
+check_local_deps += gcov
+
+else
+
+gcov-report.txt:
+ @true
+
+gcov:
+ @true
+
+
+endif # GCOV_ENABLED
+
+.PHONY: gcov gcov-clean gcov-report
+
+endif # ENABLE_RUNTIME_TESTS
+
+if ENABLE_STATIC_SYMBOL_LEAKS_TEST
+static-symbol-leaks: test-static-link test-static-symbols-leak.sh
+ $(AM_V_GEN) $(srcdir)/test-static-symbols-leak.sh $(builddir)
+
+check_local_deps += static-symbol-leaks
+
+endif # HAVE_NM
+
+EXTRA_DIST = valgrind.suppressions generate-gcov-report.sh test-static-symbols-leak.sh
+
+check-local: $(check_local_deps)
+
diff -Naur third-party-libevdev-bak/test/Makefile.in third-party-new/test/Makefile.in
--- third-party-libevdev-bak/test/Makefile.in 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/Makefile.in 2022-03-25 12:33:32.000000000 +0800
@@ -0,0 +1,1439 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_STATIC_LINK_TEST_TRUE@am__append_1 = test-static-link
+noinst_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4)
+@ENABLE_RUNTIME_TESTS_TRUE@am__append_2 = $(run_tests)
+@ENABLE_RUNTIME_TESTS_TRUE@TESTS = $(am__EXEEXT_3)
+
+# include builddir for event-names.h
+@ENABLE_RUNTIME_TESTS_TRUE@am__append_3 = $(CHECK_CFLAGS) $(GCOV_CFLAGS)
+@ENABLE_RUNTIME_TESTS_TRUE@am__append_4 = $(GCOV_LDFLAGS)
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@am__append_5 = valgrind
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@am__append_6 = gcov
+@ENABLE_STATIC_SYMBOL_LEAKS_TEST_TRUE@am__append_7 = static-symbol-leaks
+subdir = test
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+@ENABLE_STATIC_LINK_TEST_TRUE@am__EXEEXT_1 = \
+@ENABLE_STATIC_LINK_TEST_TRUE@ test-static-link$(EXEEXT)
+am__EXEEXT_2 = test-compile-pedantic$(EXEEXT) test-link$(EXEEXT) \
+ $(am__EXEEXT_1)
+@ENABLE_RUNTIME_TESTS_TRUE@am__EXEEXT_3 = test-libevdev$(EXEEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-kernel$(EXEEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-uinput$(EXEEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-codes$(EXEEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-internals$(EXEEXT)
+@ENABLE_RUNTIME_TESTS_TRUE@am__EXEEXT_4 = $(am__EXEEXT_3)
+PROGRAMS = $(noinst_PROGRAMS)
+am_test_compile_pedantic_OBJECTS = \
+ test_compile_pedantic-test-compile-pedantic.$(OBJEXT)
+test_compile_pedantic_OBJECTS = $(am_test_compile_pedantic_OBJECTS)
+test_compile_pedantic_LDADD = $(LDADD)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+test_compile_pedantic_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(test_compile_pedantic_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am__test_event_codes_SOURCES_DIST = test-main.c test-event-codes.c \
+ test-event-names.c test-context.c test-common-uinput.c \
+ test-common-uinput.h test-common.c test-common.h
+@ENABLE_RUNTIME_TESTS_TRUE@am__objects_1 = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common-uinput.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common.$(OBJEXT)
+@ENABLE_RUNTIME_TESTS_TRUE@am_test_event_codes_OBJECTS = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-codes.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-names.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-context.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__objects_1)
+test_event_codes_OBJECTS = $(am_test_event_codes_OBJECTS)
+am__DEPENDENCIES_1 =
+@ENABLE_RUNTIME_TESTS_TRUE@test_event_codes_DEPENDENCIES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__DEPENDENCIES_1) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(top_builddir)/libevdev/libevdev.la
+test_event_codes_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(test_event_codes_LDFLAGS) $(LDFLAGS) \
+ -o $@
+am__test_kernel_SOURCES_DIST = test-main.c test-kernel.c \
+ test-common-uinput.c test-common-uinput.h test-common.c \
+ test-common.h
+@ENABLE_RUNTIME_TESTS_TRUE@am__objects_2 = test_kernel-test-common-uinput.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test_kernel-test-common.$(OBJEXT)
+@ENABLE_RUNTIME_TESTS_TRUE@am_test_kernel_OBJECTS = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test_kernel-test-main.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test_kernel-test-kernel.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__objects_2)
+test_kernel_OBJECTS = $(am_test_kernel_OBJECTS)
+@ENABLE_RUNTIME_TESTS_TRUE@test_kernel_DEPENDENCIES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__DEPENDENCIES_1) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(top_builddir)/libevdev/libevdev.la
+test_kernel_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_kernel_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__test_libevdev_SOURCES_DIST = test-main.c test-libevdev-init.c \
+ test-libevdev-has-event.c test-libevdev-events.c \
+ test-common-uinput.c test-common-uinput.h test-common.c \
+ test-common.h
+@ENABLE_RUNTIME_TESTS_TRUE@am_test_libevdev_OBJECTS = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-init.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-has-event.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-events.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__objects_1)
+test_libevdev_OBJECTS = $(am_test_libevdev_OBJECTS)
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_DEPENDENCIES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__DEPENDENCIES_1) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(top_builddir)/libevdev/libevdev.la
+test_libevdev_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(test_libevdev_LDFLAGS) $(LDFLAGS) -o $@
+am__test_libevdev_internals_SOURCES_DIST = test-main.c \
+ test-int-queue.c test-common-uinput.c test-common-uinput.h \
+ test-common.c test-common.h
+@ENABLE_RUNTIME_TESTS_TRUE@am_test_libevdev_internals_OBJECTS = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-int-queue.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__objects_1)
+test_libevdev_internals_OBJECTS = \
+ $(am_test_libevdev_internals_OBJECTS)
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_internals_DEPENDENCIES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__DEPENDENCIES_1) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(top_builddir)/libevdev/libevdev.la
+test_libevdev_internals_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(test_libevdev_internals_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_test_link_OBJECTS = test_link-test-link.$(OBJEXT)
+test_link_OBJECTS = $(am_test_link_OBJECTS)
+test_link_DEPENDENCIES = $(top_builddir)/libevdev/libevdev.la
+test_link_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_link_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_test_static_link_OBJECTS = test_static_link-test-link.$(OBJEXT)
+test_static_link_OBJECTS = $(am_test_static_link_OBJECTS)
+test_static_link_DEPENDENCIES = $(top_builddir)/libevdev/libevdev.la
+test_static_link_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(test_static_link_CFLAGS) $(CFLAGS) \
+ $(test_static_link_LDFLAGS) $(LDFLAGS) -o $@
+am__test_uinput_SOURCES_DIST = test-main.c test-uinput.c \
+ test-common-uinput.c test-common-uinput.h test-common.c \
+ test-common.h
+@ENABLE_RUNTIME_TESTS_TRUE@am_test_uinput_OBJECTS = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-uinput.$(OBJEXT) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__objects_1)
+test_uinput_OBJECTS = $(am_test_uinput_OBJECTS)
+@ENABLE_RUNTIME_TESTS_TRUE@test_uinput_DEPENDENCIES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(am__DEPENDENCIES_1) \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(top_builddir)/libevdev/libevdev.la
+test_uinput_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(test_uinput_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/test-common-uinput.Po \
+ ./$(DEPDIR)/test-common.Po ./$(DEPDIR)/test-context.Po \
+ ./$(DEPDIR)/test-event-codes.Po \
+ ./$(DEPDIR)/test-event-names.Po ./$(DEPDIR)/test-int-queue.Po \
+ ./$(DEPDIR)/test-libevdev-events.Po \
+ ./$(DEPDIR)/test-libevdev-has-event.Po \
+ ./$(DEPDIR)/test-libevdev-init.Po ./$(DEPDIR)/test-main.Po \
+ ./$(DEPDIR)/test-uinput.Po \
+ ./$(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po \
+ ./$(DEPDIR)/test_kernel-test-common-uinput.Po \
+ ./$(DEPDIR)/test_kernel-test-common.Po \
+ ./$(DEPDIR)/test_kernel-test-kernel.Po \
+ ./$(DEPDIR)/test_kernel-test-main.Po \
+ ./$(DEPDIR)/test_link-test-link.Po \
+ ./$(DEPDIR)/test_static_link-test-link.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(test_compile_pedantic_SOURCES) $(test_event_codes_SOURCES) \
+ $(test_kernel_SOURCES) $(test_libevdev_SOURCES) \
+ $(test_libevdev_internals_SOURCES) $(test_link_SOURCES) \
+ $(test_static_link_SOURCES) $(test_uinput_SOURCES)
+DIST_SOURCES = $(test_compile_pedantic_SOURCES) \
+ $(am__test_event_codes_SOURCES_DIST) \
+ $(am__test_kernel_SOURCES_DIST) \
+ $(am__test_libevdev_SOURCES_DIST) \
+ $(am__test_libevdev_internals_SOURCES_DIST) \
+ $(test_link_SOURCES) $(test_static_link_SOURCES) \
+ $(am__test_uinput_SOURCES_DIST)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+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
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp \
+ $(top_srcdir)/build-aux/test-driver
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_CFLAGS = @GCC_CFLAGS@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LDFLAGS = @GCOV_LDFLAGS@
+GNU_LD_FLAGS = @GNU_LD_FLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBEVDEV_LT_VERSION = @LIBEVDEV_LT_VERSION@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VALGRIND = @VALGRIND@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+build_tests = test-compile-pedantic test-link $(am__append_1)
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
+ -I$(top_builddir)/libevdev $(am__append_3)
+AM_LDFLAGS = $(am__append_4)
+test_compile_pedantic_SOURCES = test-compile-pedantic.c
+test_compile_pedantic_CFLAGS = $(AM_CPPFLAGS) -pedantic -Werror -std=c89
+test_link_SOURCES = test-link.c
+test_link_CFLAGS = -I$(top_srcdir)
+test_link_LDADD = $(top_builddir)/libevdev/libevdev.la
+test_static_link_SOURCES = test-link.c
+test_static_link_CFLAGS = -I$(top_srcdir)
+test_static_link_LDADD = $(top_builddir)/libevdev/libevdev.la
+test_static_link_LDFLAGS = $(AM_LDFLAGS) -static
+check_local_deps = $(am__append_5) $(am__append_6) $(am__append_7)
+@ENABLE_RUNTIME_TESTS_TRUE@run_tests = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-kernel \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-uinput \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-codes \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-internals \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(NULL)
+
+@ENABLE_RUNTIME_TESTS_TRUE@common_sources = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common-uinput.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common-uinput.h \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-common.h
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_event_codes_SOURCES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-codes.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-event-names.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-context.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(common_sources)
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_event_codes_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+@ENABLE_RUNTIME_TESTS_TRUE@test_event_codes_LDFLAGS = -no-install
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_internals_SOURCES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-int-queue.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(common_sources)
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_internals_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_internals_LDFLAGS = -no-install
+@ENABLE_RUNTIME_TESTS_TRUE@test_uinput_SOURCES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-uinput.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(common_sources)
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_uinput_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+@ENABLE_RUNTIME_TESTS_TRUE@test_uinput_LDFLAGS = -no-install
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_SOURCES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-init.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-has-event.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev-events.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(common_sources)
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+@ENABLE_RUNTIME_TESTS_TRUE@test_libevdev_LDFLAGS = -no-install
+@ENABLE_RUNTIME_TESTS_TRUE@test_kernel_SOURCES = \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-main.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ test-kernel.c \
+@ENABLE_RUNTIME_TESTS_TRUE@ $(common_sources)
+
+@ENABLE_RUNTIME_TESTS_TRUE@test_kernel_CFLAGS = -I$(top_srcdir)
+@ENABLE_RUNTIME_TESTS_TRUE@test_kernel_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@VALGRIND_FLAGS = --leak-check=full \
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --quiet \
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --error-exitcode=3 \
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --suppressions=$(srcdir)/valgrind.suppressions
+
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@CLEANFILES = gcov-reports/*.gcov gcov-reports/summary.txt *.gcno *.gcda
+EXTRA_DIST = valgrind.suppressions generate-gcov-report.sh test-static-symbols-leak.sh
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign test/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ 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)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+test-compile-pedantic$(EXEEXT): $(test_compile_pedantic_OBJECTS) $(test_compile_pedantic_DEPENDENCIES) $(EXTRA_test_compile_pedantic_DEPENDENCIES)
+ @rm -f test-compile-pedantic$(EXEEXT)
+ $(AM_V_CCLD)$(test_compile_pedantic_LINK) $(test_compile_pedantic_OBJECTS) $(test_compile_pedantic_LDADD) $(LIBS)
+
+test-event-codes$(EXEEXT): $(test_event_codes_OBJECTS) $(test_event_codes_DEPENDENCIES) $(EXTRA_test_event_codes_DEPENDENCIES)
+ @rm -f test-event-codes$(EXEEXT)
+ $(AM_V_CCLD)$(test_event_codes_LINK) $(test_event_codes_OBJECTS) $(test_event_codes_LDADD) $(LIBS)
+
+test-kernel$(EXEEXT): $(test_kernel_OBJECTS) $(test_kernel_DEPENDENCIES) $(EXTRA_test_kernel_DEPENDENCIES)
+ @rm -f test-kernel$(EXEEXT)
+ $(AM_V_CCLD)$(test_kernel_LINK) $(test_kernel_OBJECTS) $(test_kernel_LDADD) $(LIBS)
+
+test-libevdev$(EXEEXT): $(test_libevdev_OBJECTS) $(test_libevdev_DEPENDENCIES) $(EXTRA_test_libevdev_DEPENDENCIES)
+ @rm -f test-libevdev$(EXEEXT)
+ $(AM_V_CCLD)$(test_libevdev_LINK) $(test_libevdev_OBJECTS) $(test_libevdev_LDADD) $(LIBS)
+
+test-libevdev-internals$(EXEEXT): $(test_libevdev_internals_OBJECTS) $(test_libevdev_internals_DEPENDENCIES) $(EXTRA_test_libevdev_internals_DEPENDENCIES)
+ @rm -f test-libevdev-internals$(EXEEXT)
+ $(AM_V_CCLD)$(test_libevdev_internals_LINK) $(test_libevdev_internals_OBJECTS) $(test_libevdev_internals_LDADD) $(LIBS)
+
+test-link$(EXEEXT): $(test_link_OBJECTS) $(test_link_DEPENDENCIES) $(EXTRA_test_link_DEPENDENCIES)
+ @rm -f test-link$(EXEEXT)
+ $(AM_V_CCLD)$(test_link_LINK) $(test_link_OBJECTS) $(test_link_LDADD) $(LIBS)
+
+test-static-link$(EXEEXT): $(test_static_link_OBJECTS) $(test_static_link_DEPENDENCIES) $(EXTRA_test_static_link_DEPENDENCIES)
+ @rm -f test-static-link$(EXEEXT)
+ $(AM_V_CCLD)$(test_static_link_LINK) $(test_static_link_OBJECTS) $(test_static_link_LDADD) $(LIBS)
+
+test-uinput$(EXEEXT): $(test_uinput_OBJECTS) $(test_uinput_DEPENDENCIES) $(EXTRA_test_uinput_DEPENDENCIES)
+ @rm -f test-uinput$(EXEEXT)
+ $(AM_V_CCLD)$(test_uinput_LINK) $(test_uinput_OBJECTS) $(test_uinput_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common-uinput.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-event-codes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-event-names.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-int-queue.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-libevdev-events.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-libevdev-has-event.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-libevdev-init.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-uinput.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_kernel-test-common-uinput.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_kernel-test-common.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_kernel-test-kernel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_kernel-test-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_link-test-link.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_static_link-test-link.Po@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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+test_compile_pedantic-test-compile-pedantic.o: test-compile-pedantic.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_compile_pedantic_CFLAGS) $(CFLAGS) -MT test_compile_pedantic-test-compile-pedantic.o -MD -MP -MF $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Tpo -c -o test_compile_pedantic-test-compile-pedantic.o `test -f 'test-compile-pedantic.c' || echo '$(srcdir)/'`test-compile-pedantic.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Tpo $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-compile-pedantic.c' object='test_compile_pedantic-test-compile-pedantic.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_compile_pedantic_CFLAGS) $(CFLAGS) -c -o test_compile_pedantic-test-compile-pedantic.o `test -f 'test-compile-pedantic.c' || echo '$(srcdir)/'`test-compile-pedantic.c
+
+test_compile_pedantic-test-compile-pedantic.obj: test-compile-pedantic.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_compile_pedantic_CFLAGS) $(CFLAGS) -MT test_compile_pedantic-test-compile-pedantic.obj -MD -MP -MF $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Tpo -c -o test_compile_pedantic-test-compile-pedantic.obj `if test -f 'test-compile-pedantic.c'; then $(CYGPATH_W) 'test-compile-pedantic.c'; else $(CYGPATH_W) '$(srcdir)/test-compile-pedantic.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Tpo $(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-compile-pedantic.c' object='test_compile_pedantic-test-compile-pedantic.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_compile_pedantic_CFLAGS) $(CFLAGS) -c -o test_compile_pedantic-test-compile-pedantic.obj `if test -f 'test-compile-pedantic.c'; then $(CYGPATH_W) 'test-compile-pedantic.c'; else $(CYGPATH_W) '$(srcdir)/test-compile-pedantic.c'; fi`
+
+test_kernel-test-main.o: test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-main.o -MD -MP -MF $(DEPDIR)/test_kernel-test-main.Tpo -c -o test_kernel-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-main.Tpo $(DEPDIR)/test_kernel-test-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-main.c' object='test_kernel-test-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c
+
+test_kernel-test-main.obj: test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-main.obj -MD -MP -MF $(DEPDIR)/test_kernel-test-main.Tpo -c -o test_kernel-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-main.Tpo $(DEPDIR)/test_kernel-test-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-main.c' object='test_kernel-test-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi`
+
+test_kernel-test-kernel.o: test-kernel.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-kernel.o -MD -MP -MF $(DEPDIR)/test_kernel-test-kernel.Tpo -c -o test_kernel-test-kernel.o `test -f 'test-kernel.c' || echo '$(srcdir)/'`test-kernel.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-kernel.Tpo $(DEPDIR)/test_kernel-test-kernel.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-kernel.c' object='test_kernel-test-kernel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-kernel.o `test -f 'test-kernel.c' || echo '$(srcdir)/'`test-kernel.c
+
+test_kernel-test-kernel.obj: test-kernel.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-kernel.obj -MD -MP -MF $(DEPDIR)/test_kernel-test-kernel.Tpo -c -o test_kernel-test-kernel.obj `if test -f 'test-kernel.c'; then $(CYGPATH_W) 'test-kernel.c'; else $(CYGPATH_W) '$(srcdir)/test-kernel.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-kernel.Tpo $(DEPDIR)/test_kernel-test-kernel.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-kernel.c' object='test_kernel-test-kernel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-kernel.obj `if test -f 'test-kernel.c'; then $(CYGPATH_W) 'test-kernel.c'; else $(CYGPATH_W) '$(srcdir)/test-kernel.c'; fi`
+
+test_kernel-test-common-uinput.o: test-common-uinput.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-common-uinput.o -MD -MP -MF $(DEPDIR)/test_kernel-test-common-uinput.Tpo -c -o test_kernel-test-common-uinput.o `test -f 'test-common-uinput.c' || echo '$(srcdir)/'`test-common-uinput.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-common-uinput.Tpo $(DEPDIR)/test_kernel-test-common-uinput.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common-uinput.c' object='test_kernel-test-common-uinput.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-common-uinput.o `test -f 'test-common-uinput.c' || echo '$(srcdir)/'`test-common-uinput.c
+
+test_kernel-test-common-uinput.obj: test-common-uinput.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-common-uinput.obj -MD -MP -MF $(DEPDIR)/test_kernel-test-common-uinput.Tpo -c -o test_kernel-test-common-uinput.obj `if test -f 'test-common-uinput.c'; then $(CYGPATH_W) 'test-common-uinput.c'; else $(CYGPATH_W) '$(srcdir)/test-common-uinput.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-common-uinput.Tpo $(DEPDIR)/test_kernel-test-common-uinput.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common-uinput.c' object='test_kernel-test-common-uinput.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-common-uinput.obj `if test -f 'test-common-uinput.c'; then $(CYGPATH_W) 'test-common-uinput.c'; else $(CYGPATH_W) '$(srcdir)/test-common-uinput.c'; fi`
+
+test_kernel-test-common.o: test-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-common.o -MD -MP -MF $(DEPDIR)/test_kernel-test-common.Tpo -c -o test_kernel-test-common.o `test -f 'test-common.c' || echo '$(srcdir)/'`test-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-common.Tpo $(DEPDIR)/test_kernel-test-common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common.c' object='test_kernel-test-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-common.o `test -f 'test-common.c' || echo '$(srcdir)/'`test-common.c
+
+test_kernel-test-common.obj: test-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -MT test_kernel-test-common.obj -MD -MP -MF $(DEPDIR)/test_kernel-test-common.Tpo -c -o test_kernel-test-common.obj `if test -f 'test-common.c'; then $(CYGPATH_W) 'test-common.c'; else $(CYGPATH_W) '$(srcdir)/test-common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_kernel-test-common.Tpo $(DEPDIR)/test_kernel-test-common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common.c' object='test_kernel-test-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_kernel_CFLAGS) $(CFLAGS) -c -o test_kernel-test-common.obj `if test -f 'test-common.c'; then $(CYGPATH_W) 'test-common.c'; else $(CYGPATH_W) '$(srcdir)/test-common.c'; fi`
+
+test_link-test-link.o: test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_link_CFLAGS) $(CFLAGS) -MT test_link-test-link.o -MD -MP -MF $(DEPDIR)/test_link-test-link.Tpo -c -o test_link-test-link.o `test -f 'test-link.c' || echo '$(srcdir)/'`test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_link-test-link.Tpo $(DEPDIR)/test_link-test-link.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-link.c' object='test_link-test-link.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_link_CFLAGS) $(CFLAGS) -c -o test_link-test-link.o `test -f 'test-link.c' || echo '$(srcdir)/'`test-link.c
+
+test_link-test-link.obj: test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_link_CFLAGS) $(CFLAGS) -MT test_link-test-link.obj -MD -MP -MF $(DEPDIR)/test_link-test-link.Tpo -c -o test_link-test-link.obj `if test -f 'test-link.c'; then $(CYGPATH_W) 'test-link.c'; else $(CYGPATH_W) '$(srcdir)/test-link.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_link-test-link.Tpo $(DEPDIR)/test_link-test-link.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-link.c' object='test_link-test-link.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_link_CFLAGS) $(CFLAGS) -c -o test_link-test-link.obj `if test -f 'test-link.c'; then $(CYGPATH_W) 'test-link.c'; else $(CYGPATH_W) '$(srcdir)/test-link.c'; fi`
+
+test_static_link-test-link.o: test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_static_link_CFLAGS) $(CFLAGS) -MT test_static_link-test-link.o -MD -MP -MF $(DEPDIR)/test_static_link-test-link.Tpo -c -o test_static_link-test-link.o `test -f 'test-link.c' || echo '$(srcdir)/'`test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_static_link-test-link.Tpo $(DEPDIR)/test_static_link-test-link.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-link.c' object='test_static_link-test-link.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_static_link_CFLAGS) $(CFLAGS) -c -o test_static_link-test-link.o `test -f 'test-link.c' || echo '$(srcdir)/'`test-link.c
+
+test_static_link-test-link.obj: test-link.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_static_link_CFLAGS) $(CFLAGS) -MT test_static_link-test-link.obj -MD -MP -MF $(DEPDIR)/test_static_link-test-link.Tpo -c -o test_static_link-test-link.obj `if test -f 'test-link.c'; then $(CYGPATH_W) 'test-link.c'; else $(CYGPATH_W) '$(srcdir)/test-link.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_static_link-test-link.Tpo $(DEPDIR)/test_static_link-test-link.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-link.c' object='test_static_link-test-link.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_static_link_CFLAGS) $(CFLAGS) -c -o test_static_link-test-link.obj `if test -f 'test-link.c'; then $(CYGPATH_W) 'test-link.c'; else $(CYGPATH_W) '$(srcdir)/test-link.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+test-libevdev.log: test-libevdev$(EXEEXT)
+ @p='test-libevdev$(EXEEXT)'; \
+ b='test-libevdev'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-kernel.log: test-kernel$(EXEEXT)
+ @p='test-kernel$(EXEEXT)'; \
+ b='test-kernel'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uinput.log: test-uinput$(EXEEXT)
+ @p='test-uinput$(EXEEXT)'; \
+ b='test-uinput'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-event-codes.log: test-event-codes$(EXEEXT)
+ @p='test-event-codes$(EXEEXT)'; \
+ b='test-event-codes'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-libevdev-internals.log: test-libevdev-internals$(EXEEXT)
+ @p='test-libevdev-internals$(EXEEXT)'; \
+ b='test-libevdev-internals'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+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)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/test-common-uinput.Po
+ -rm -f ./$(DEPDIR)/test-common.Po
+ -rm -f ./$(DEPDIR)/test-context.Po
+ -rm -f ./$(DEPDIR)/test-event-codes.Po
+ -rm -f ./$(DEPDIR)/test-event-names.Po
+ -rm -f ./$(DEPDIR)/test-int-queue.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-events.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-has-event.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-init.Po
+ -rm -f ./$(DEPDIR)/test-main.Po
+ -rm -f ./$(DEPDIR)/test-uinput.Po
+ -rm -f ./$(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-common-uinput.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-common.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-kernel.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-main.Po
+ -rm -f ./$(DEPDIR)/test_link-test-link.Po
+ -rm -f ./$(DEPDIR)/test_static_link-test-link.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/test-common-uinput.Po
+ -rm -f ./$(DEPDIR)/test-common.Po
+ -rm -f ./$(DEPDIR)/test-context.Po
+ -rm -f ./$(DEPDIR)/test-event-codes.Po
+ -rm -f ./$(DEPDIR)/test-event-names.Po
+ -rm -f ./$(DEPDIR)/test-int-queue.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-events.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-has-event.Po
+ -rm -f ./$(DEPDIR)/test-libevdev-init.Po
+ -rm -f ./$(DEPDIR)/test-main.Po
+ -rm -f ./$(DEPDIR)/test-uinput.Po
+ -rm -f ./$(DEPDIR)/test_compile_pedantic-test-compile-pedantic.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-common-uinput.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-common.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-kernel.Po
+ -rm -f ./$(DEPDIR)/test_kernel-test-main.Po
+ -rm -f ./$(DEPDIR)/test_link-test-link.Po
+ -rm -f ./$(DEPDIR)/test_static_link-test-link.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
+ check-am check-local clean clean-generic clean-libtool \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am recheck tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+@ENABLE_RUNTIME_TESTS_TRUE@.NOTPARALLEL:
+
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@valgrind:
+@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ $(MAKE) check-TESTS CK_TIMEOUT_MULTIPLIER=10 LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)"
+
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@gcov-report: generate-gcov-report.sh check-TESTS
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@ $(AM_V_GEN)$(srcdir)/generate-gcov-report.sh gcov-reports $(top_builddir)/libevdev $(builddir)
+
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@gcov: gcov-report
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@ @cat gcov-reports/summary.txt
+
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_FALSE@gcov-report.txt:
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_FALSE@ @true
+
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_FALSE@gcov:
+@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_FALSE@ @true
+
+@ENABLE_RUNTIME_TESTS_TRUE@.PHONY: gcov gcov-clean gcov-report
+
+@ENABLE_STATIC_SYMBOL_LEAKS_TEST_TRUE@static-symbol-leaks: test-static-link test-static-symbols-leak.sh
+@ENABLE_STATIC_SYMBOL_LEAKS_TEST_TRUE@ $(AM_V_GEN) $(srcdir)/test-static-symbols-leak.sh $(builddir)
+
+check-local: $(check_local_deps)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -Naur third-party-libevdev-bak/test/generate-gcov-report.sh third-party-new/test/generate-gcov-report.sh
--- third-party-libevdev-bak/test/generate-gcov-report.sh 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/generate-gcov-report.sh 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ $# -lt 2 ]]; then
+ echo "Usage: ./generate-gcov-report.sh <rel-target-dir> <srcdir> [<srcdir> ... ]"
+ exit 1
+fi
+
+target_dir=$1
+shift
+source_dirs=$*
+
+if [[ "${target_dir:0:1}" != '/' ]]; then
+ target_dir="$PWD/$target_dir"
+fi
+summary_file="$target_dir/summary.txt"
+
+mkdir -p "$target_dir"
+rm -f "$target_dir"/*.gcov
+
+for dir in $source_dirs; do
+ pushd "$dir" > /dev/null
+ for file in *.c; do
+ find ./ -name "*${file/\.c/.gcda}" -exec gcov {} \; > /dev/null
+ done
+ find ./ -name "*.gcov" \! -path "*/`basename "$target_dir"`/*" -exec mv {} "$target_dir" \;
+ popd > /dev/null
+done
+
+echo "========== coverage report ========" > "$summary_file"
+for file in "$target_dir"/*.gcov; do
+ total=`grep -v " -:" "$file" | wc -l`
+ missing=`grep "#####" "$file" | wc -l`
+ hit=$((total - missing));
+ percent=$((($hit * 100)/$total))
+ fname=`basename "$file"`
+ printf "%-32s total lines: %4s not tested: %4s (%3s%%)\n" "$fname" "$total" "$missing" "$percent">> "$summary_file"
+done
+echo "========== =============== ========" >> "$summary_file"
diff -Naur third-party-libevdev-bak/test/test-common-uinput.c third-party-new/test/test-common-uinput.c
--- third-party-libevdev-bak/test/test-common-uinput.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-common-uinput.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,282 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <fcntl.h>
+#include <poll.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+#include <linux/uinput.h>
+#include <dirent.h>
+
+#include <libevdev/libevdev.h>
+#include <libevdev/libevdev-int.h>
+#include <libevdev/libevdev-util.h>
+#include <libevdev/libevdev-uinput.h>
+
+#include "test-common-uinput.h"
+
+#define SYS_INPUT_DIR "/sys/class/input"
+#define DEV_INPUT_DIR "/dev/input/"
+
+struct uinput_device
+{
+ struct libevdev *d; /* lazy, it has all the accessors */
+ struct libevdev_uinput *uidev;
+ int dev_fd; /* open fd to the devnode */
+ int uinput_fd;
+};
+
+struct uinput_device*
+uinput_device_new(const char *name)
+{
+ struct uinput_device *dev;
+
+ dev = calloc(1, sizeof(*dev));
+ if (!dev)
+ return NULL;
+
+ dev->d = libevdev_new();
+ dev->dev_fd = -1;
+ dev->uinput_fd = -1;
+
+ if (name)
+ libevdev_set_name(dev->d, name);
+
+ return dev;
+}
+
+int
+uinput_device_new_with_events_v(struct uinput_device **d, const char *name, const struct input_id *id, va_list args)
+{
+ int rc;
+ struct uinput_device *dev;
+
+ dev = uinput_device_new(name);
+ if (!dev)
+ return -ENOMEM;
+ if (id != DEFAULT_IDS)
+ uinput_device_set_ids(dev, id);
+
+ rc = uinput_device_set_event_bits_v(dev, args);
+
+ if (rc == 0)
+ rc = uinput_device_create(dev);
+
+ if (rc != 0) {
+ uinput_device_free(dev);
+ dev = NULL;
+ } else
+ *d = dev;
+
+ return rc;
+}
+
+int
+uinput_device_new_with_events(struct uinput_device **d, const char *name, const struct input_id *id, ...)
+{
+ int rc;
+ va_list args;
+
+ va_start(args, id);
+ rc = uinput_device_new_with_events_v(d, name, id, args);
+ va_end(args);
+
+ return rc;
+}
+
+void
+uinput_device_free(struct uinput_device *dev)
+{
+ if (!dev)
+ return;
+
+ if (dev->uinput_fd != -1) {
+ (void)ioctl(dev->uinput_fd, UI_DEV_DESTROY, NULL);
+ close(dev->uinput_fd);
+ }
+ if (dev->dev_fd != -1)
+ close(dev->dev_fd);
+ libevdev_free(dev->d);
+ libevdev_uinput_destroy(dev->uidev);
+ free(dev);
+}
+
+int
+uinput_device_get_fd(const struct uinput_device *dev)
+{
+ return dev->dev_fd;
+}
+
+const char*
+uinput_device_get_devnode(const struct uinput_device *dev)
+{
+ return libevdev_uinput_get_devnode(dev->uidev);
+}
+
+int
+uinput_device_create(struct uinput_device* d)
+{
+ int rc;
+ int fd;
+ const char *devnode;
+
+ fd = open("/dev/uinput", O_RDWR);
+ if (fd < 0)
+ goto error;
+
+ d->uinput_fd = fd;
+
+ rc = libevdev_uinput_create_from_device(d->d, fd, &d->uidev);
+ if (rc != 0)
+ goto error;
+
+ devnode = libevdev_uinput_get_devnode(d->uidev);
+ if (devnode == NULL)
+ goto error;
+
+ d->dev_fd = open(devnode, O_RDWR);
+ if (d->dev_fd == -1)
+ goto error;
+
+ /* write abs resolution now */
+ if (libevdev_has_event_type(d->d, EV_ABS)) {
+ int code;
+ for (code = 0; code < ABS_CNT; code++) {
+ const struct input_absinfo *abs;
+
+ /* can't change slots */
+ if (code == ABS_MT_SLOT)
+ continue;
+
+ abs = libevdev_get_abs_info(d->d, code);
+ if (!abs)
+ continue;
+
+ rc = ioctl(d->dev_fd, EVIOCSABS(code), abs);
+ if (rc < 0) {
+ printf("error %s for code %d\n", strerror(-rc), code);
+ goto error;
+ }
+ }
+ }
+
+ return 0;
+
+error:
+ if (d->dev_fd != -1)
+ close(d->dev_fd);
+ if (d->uinput_fd != -1)
+ close(d->uinput_fd);
+ return -errno;
+
+}
+
+int uinput_device_set_name(struct uinput_device *dev, const char *name)
+{
+ libevdev_set_name(dev->d, name);
+ return 0;
+}
+
+int uinput_device_set_ids(struct uinput_device *dev, const struct input_id *ids)
+{
+ libevdev_set_id_product(dev->d, ids->product);
+ libevdev_set_id_vendor(dev->d, ids->vendor);
+ libevdev_set_id_bustype(dev->d, ids->bustype);
+ libevdev_set_id_version(dev->d, ids->version);
+ return 0;
+}
+
+int
+uinput_device_set_bit(struct uinput_device* dev, unsigned int bit)
+{
+ return libevdev_enable_event_type(dev->d, bit);
+}
+
+int
+uinput_device_set_prop(struct uinput_device *dev, unsigned int prop)
+{
+ return libevdev_enable_property(dev->d, prop);
+}
+
+int
+uinput_device_set_event_bit(struct uinput_device* dev, unsigned int type, unsigned int code)
+{
+ return libevdev_enable_event_code(dev->d, type, code, NULL);
+}
+
+int
+uinput_device_set_event_bits_v(struct uinput_device *dev, va_list args)
+{
+ int type, code;
+ int rc = 0;
+
+ do {
+ type = va_arg(args, int);
+ if (type == -1)
+ break;
+ code = va_arg(args, int);
+ if (code == -1)
+ break;
+ rc = libevdev_enable_event_code(dev->d, type, code, NULL);
+ } while (rc == 0);
+
+ return rc;
+}
+
+int
+uinput_device_set_event_bits(struct uinput_device *dev, ...)
+{
+ int rc;
+ va_list args;
+ va_start(args, dev);
+ rc = uinput_device_set_event_bits_v(dev, args);
+ va_end(args);
+
+ return rc;
+}
+
+int
+uinput_device_set_abs_bit(struct uinput_device* dev, unsigned int code, const struct input_absinfo *absinfo)
+{
+ return libevdev_enable_event_code(dev->d, EV_ABS, code, absinfo);
+}
+
+int
+uinput_device_event(const struct uinput_device *dev, unsigned int type, unsigned int code, int value)
+{
+ return libevdev_uinput_write_event(dev->uidev, type, code, value);
+}
+
+int uinput_device_event_multiple_v(const struct uinput_device* dev, va_list args)
+{
+ int type, code, value;
+ int rc = 0;
+
+ do {
+ type = va_arg(args, int);
+ if (type == -1)
+ break;
+ code = va_arg(args, int);
+ if (code == -1)
+ break;
+ value = va_arg(args, int);
+ rc = uinput_device_event(dev, type, code, value);
+ } while (rc == 0);
+
+ return rc;
+}
+
+int uinput_device_event_multiple(const struct uinput_device* dev, ...)
+{
+ int rc;
+ va_list args;
+ va_start(args, dev);
+ rc = uinput_device_event_multiple_v(dev, args);
+ va_end(args);
+ return rc;
+}
diff -Naur third-party-libevdev-bak/test/test-common-uinput.h third-party-new/test/test-common-uinput.h
--- third-party-libevdev-bak/test/test-common-uinput.h 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-common-uinput.h 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <libevdev/libevdev.h>
+
+#define DEFAULT_IDS NULL
+
+struct uinput_device* uinput_device_new(const char *name);
+int uinput_device_new_with_events(struct uinput_device **dev, const char *name, const struct input_id *ids, ...);
+int uinput_device_new_with_events_v(struct uinput_device **dev, const char *name, const struct input_id *ids, va_list args);
+void uinput_device_free(struct uinput_device *dev);
+
+int uinput_device_create(struct uinput_device* dev);
+int uinput_device_set_name(struct uinput_device* dev, const char *name);
+int uinput_device_set_ids(struct uinput_device* dev, const struct input_id *ids);
+int uinput_device_set_bit(struct uinput_device* dev, unsigned int bit);
+int uinput_device_set_prop(struct uinput_device *dev, unsigned int prop);
+int uinput_device_set_event_bit(struct uinput_device* dev, unsigned int type, unsigned int code);
+int uinput_device_set_event_bits(struct uinput_device* dev, ...);
+int uinput_device_set_event_bits_v(struct uinput_device* dev, va_list args);
+int uinput_device_set_abs_bit(struct uinput_device* dev, unsigned int code, const struct input_absinfo *absinfo);
+int uinput_device_event(const struct uinput_device* dev, unsigned int type, unsigned int code, int value);
+int uinput_device_event_multiple(const struct uinput_device* dev, ...);
+int uinput_device_event_multiple_v(const struct uinput_device* dev, va_list args);
+int uinput_device_get_fd(const struct uinput_device *dev);
+const char* uinput_device_get_devnode(const struct uinput_device *dev);
+
+char *uinput_devnode_from_syspath(const char *syspath);
diff -Naur third-party-libevdev-bak/test/test-common.c third-party-new/test/test-common.c
--- third-party-libevdev-bak/test/test-common.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-common.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,102 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <check.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+#include "test-common.h"
+
+void test_logfunc_abort_on_error(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line,
+ const char *func,
+ const char *format, va_list args)
+{
+ vprintf(format, args);
+ ck_abort();
+}
+
+void test_logfunc_ignore_error(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line,
+ const char *func,
+ const char *format, va_list args)
+{
+}
+
+void test_create_device(struct uinput_device **uidev_return,
+ struct libevdev **dev_return,
+ ...)
+{
+ int rc, fd;
+ struct uinput_device *uidev;
+ struct libevdev *dev;
+ va_list args;
+
+ va_start(args, dev_return);
+
+ rc = uinput_device_new_with_events_v(&uidev, TEST_DEVICE_NAME, DEFAULT_IDS, args);
+ va_end(args);
+
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ fd = uinput_device_get_fd(uidev);
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ ck_assert_msg(rc == 0, "Failed to init device device: %s", strerror(-rc));
+ rc = fcntl(fd, F_SETFL, O_NONBLOCK);
+ ck_assert_msg(rc == 0, "fcntl failed: %s", strerror(errno));
+
+ *uidev_return = uidev;
+ *dev_return = dev;
+}
+
+void test_create_abs_device(struct uinput_device **uidev_return,
+ struct libevdev **dev_return,
+ int nabs,
+ const struct input_absinfo *abs,
+ ...)
+{
+ int rc, fd;
+ struct uinput_device *uidev;
+ struct libevdev *dev;
+ va_list args;
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ ck_assert(uidev != NULL);
+
+ va_start(args, abs);
+ rc = uinput_device_set_event_bits_v(uidev, args);
+ ck_assert_msg(rc == 0, "Failed to set uinput bits");
+ va_end(args);
+
+ while (--nabs >= 0) {
+ int code;
+ struct input_absinfo a;
+
+ code = abs[nabs].value;
+ a = abs[nabs];
+ a.value = 0;
+
+ rc = uinput_device_set_abs_bit(uidev, code, &a);
+ ck_assert_msg(rc == 0, "for abs field %d\n", nabs);
+ }
+
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ fd = uinput_device_get_fd(uidev);
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ ck_assert_msg(rc == 0, "Failed to init device device: %s", strerror(-rc));
+ rc = fcntl(fd, F_SETFL, O_NONBLOCK);
+ ck_assert_msg(rc == 0, "fcntl failed: %s", strerror(errno));
+
+ *uidev_return = uidev;
+ *dev_return = dev;
+}
diff -Naur third-party-libevdev-bak/test/test-common.h third-party-new/test/test-common.h
--- third-party-libevdev-bak/test/test-common.h 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-common.h 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <libevdev/libevdev.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+#include <check.h>
+
+#ifndef _TEST_COMMON_H_
+#define _TEST_COMMON_H_
+
+struct libevdev_test {
+ const char *name;
+ Suite* (*setup)(void);
+ bool needs_root_privileges;
+} __attribute__((aligned(16)));
+
+#define _TEST_SUITE(name, root_privs) \
+ static Suite* (name##_setup)(void); \
+ static const struct libevdev_test _test \
+ __attribute__((used)) \
+ __attribute__((section ("test_section"))) = { \
+ #name, name##_setup, root_privs \
+ }; \
+ static Suite* (name##_setup)(void)
+
+#define TEST_SUITE(name) \
+ _TEST_SUITE(name, false)
+
+#define TEST_SUITE_ROOT_PRIVILEGES(name) \
+ _TEST_SUITE(name, true)
+
+#define TEST_DEVICE_NAME "libevdev test device"
+
+#define add_test(suite, func) do { \
+ TCase *tc = tcase_create(#func); \
+ tcase_add_test(tc, func); \
+ suite_add_tcase(suite, tc); \
+} while(0)
+
+#include "test-common-uinput.h"
+
+#define assert_event(e_, t, c, v) \
+do { \
+ const struct input_event *e = (e_); \
+ ck_assert_int_eq(e->type, (t)); \
+ ck_assert_int_eq(e->code, (c)); \
+ ck_assert_int_eq(e->value, (v)); \
+} while(0)
+
+void test_create_device(struct uinput_device **uidev,
+ struct libevdev **dev,
+ ...);
+void test_create_abs_device(struct uinput_device **uidev,
+ struct libevdev **dev,
+ int nabs,
+ const struct input_absinfo *abs,
+ ...);
+
+void test_logfunc_abort_on_error(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line,
+ const char *func,
+ const char *format, va_list args);
+void test_logfunc_ignore_error(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line,
+ const char *func,
+ const char *format, va_list args);
+
+static inline void
+print_event(const struct input_event *ev)
+{
+ if (ev->type == EV_SYN)
+ printf("Event: time %ld.%06ld, ++++++++++++++++++++ %s +++++++++++++++\n",
+ ev->input_event_sec,
+ ev->input_event_usec,
+ libevdev_event_type_get_name(ev->type));
+ else
+ printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %d\n",
+ ev->input_event_sec,
+ ev->input_event_usec,
+ ev->type,
+ libevdev_event_type_get_name(ev->type),
+ ev->code,
+ libevdev_event_code_get_name(ev->type, ev->code),
+ ev->value);
+}
+#endif /* _TEST_COMMON_H_ */
diff -Naur third-party-libevdev-bak/test/test-compile-pedantic.c third-party-new/test/test-compile-pedantic.c
--- third-party-libevdev-bak/test/test-compile-pedantic.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-compile-pedantic.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,6 @@
+#include <libevdev/libevdev.h>
+#include <libevdev/libevdev-uinput.h>
+
+int main(void) {
+ return 0;
+}
diff -Naur third-party-libevdev-bak/test/test-context.c third-party-new/test/test-context.c
--- third-party-libevdev-bak/test/test-context.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-context.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,161 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2019 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include "test-common.h"
+
+START_TEST(test_info)
+{
+ struct libevdev *d = libevdev_new();
+
+ libevdev_set_name(d, "some name");
+ ck_assert_str_eq(libevdev_get_name(d), "some name");
+ libevdev_set_phys(d, "physical");
+ ck_assert_str_eq(libevdev_get_phys(d), "physical");
+ libevdev_set_uniq(d, "very unique");
+ ck_assert_str_eq(libevdev_get_uniq(d), "very unique");
+
+ libevdev_set_id_bustype(d, 1);
+ libevdev_set_id_vendor(d, 2);
+ libevdev_set_id_product(d, 3);
+ libevdev_set_id_version(d, 4);
+ ck_assert_int_eq(libevdev_get_id_bustype(d), 1);
+ ck_assert_int_eq(libevdev_get_id_vendor(d), 2);
+ ck_assert_int_eq(libevdev_get_id_product(d), 3);
+ ck_assert_int_eq(libevdev_get_id_version(d), 4);
+
+ libevdev_free(d);
+}
+END_TEST
+
+START_TEST(test_properties)
+{
+ for (unsigned prop = 0; prop < INPUT_PROP_CNT; prop++) {
+ struct libevdev *d = libevdev_new();
+
+ ck_assert(!libevdev_has_property(d, prop));
+ libevdev_enable_property(d, prop);
+ ck_assert(libevdev_has_property(d, prop));
+ libevdev_free(d);
+ }
+}
+END_TEST
+
+START_TEST(test_bits)
+{
+ for (unsigned type = 1; type < EV_CNT; type++) {
+ unsigned max = libevdev_event_type_get_max(type);
+
+ if((int)max == -1)
+ continue;
+
+ for (unsigned code = 0; code <= max; code++) {
+ struct libevdev *d = libevdev_new();
+ const struct input_absinfo abs = {
+ .minimum = 10,
+ .maximum = 20,
+ .fuzz = 30,
+ .flat = 40,
+ .resolution = 50,
+ };
+ const void *data = NULL;
+
+ if (type == EV_ABS || type == EV_REP)
+ data = &abs;
+
+ ck_assert(!libevdev_has_event_code(d, type, code));
+ libevdev_enable_event_code(d, type, code, data);
+ ck_assert(libevdev_has_event_code(d, type, code));
+ libevdev_free(d);
+ }
+ }
+}
+END_TEST
+
+START_TEST(test_mt_slots_enable_disable)
+{
+ struct libevdev *d = libevdev_new();
+ struct input_absinfo abs = {0};
+
+ abs.maximum = 5;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 6);
+
+ libevdev_disable_event_code(d, EV_ABS, ABS_MT_SLOT);
+ ck_assert(!libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), -1);
+
+ abs.maximum = 2;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 3);
+
+ libevdev_free(d);
+}
+END_TEST
+
+START_TEST(test_mt_slots_increase_decrease)
+{
+ struct libevdev *d = libevdev_new();
+ struct input_absinfo abs = {0};
+
+ abs.maximum = 5;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 6);
+
+ abs.maximum = 2;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 3);
+
+ abs.maximum = 6;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 7);
+
+ abs.maximum = 10;
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+ ck_assert(libevdev_has_event_code(d, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(libevdev_get_num_slots(d), 11);
+
+ libevdev_free(d);
+}
+END_TEST
+
+START_TEST(test_mt_tracking_id)
+{
+ struct libevdev *d = libevdev_new();
+ struct input_absinfo abs = { .maximum = 5 };
+
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_SLOT, &abs);
+
+ /* Not yet enabled, so 0. This is technically undefined */
+ for (int slot = 0; slot < 5; slot++)
+ ck_assert_int_eq(libevdev_get_slot_value(d, 0, ABS_MT_TRACKING_ID), 0);
+
+ libevdev_enable_event_code(d, EV_ABS, ABS_MT_TRACKING_ID, &abs);
+
+ for (int slot = 0; slot < 5; slot++)
+ ck_assert_int_eq(libevdev_get_slot_value(d, 0, ABS_MT_TRACKING_ID), -1);
+
+ libevdev_free(d);
+}
+END_TEST
+
+TEST_SUITE(event_name_suite)
+{
+ Suite *s = suite_create("Context manipulation");
+
+ add_test(s, test_info);
+ add_test(s, test_properties);
+ add_test(s, test_bits);
+ add_test(s, test_mt_slots_enable_disable);
+ add_test(s, test_mt_slots_increase_decrease);
+ add_test(s, test_mt_tracking_id);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-event-codes.c third-party-new/test/test-event-codes.c
--- third-party-libevdev-bak/test/test-event-codes.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-event-codes.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,268 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 David Herrmann <dh.herrmann@gmail.com>
+ */
+
+#include "config.h"
+#include "test-common.h"
+
+START_TEST(test_type_names)
+{
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_SYN"), EV_SYN);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_KEY"), EV_KEY);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_REL"), EV_REL);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_ABS"), EV_ABS);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_MSC"), EV_MSC);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_SND"), EV_SND);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_SW"), EV_SW);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_LED"), EV_LED);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_REP"), EV_REP);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_FF"), EV_FF);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_FF_STATUS"), EV_FF_STATUS);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_MAX"), EV_MAX);
+
+ ck_assert_int_eq(libevdev_event_type_from_name_n("EV_SYNTAX", 6), EV_SYN);
+ ck_assert_int_eq(libevdev_event_type_from_name_n("EV_REPTILE", 6), EV_REP);
+}
+END_TEST
+
+START_TEST(test_type_names_invalid)
+{
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_Syn"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("ev_SYN"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("SYN"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("EV_SYNTAX"), -1);
+
+ ck_assert_int_eq(libevdev_event_type_from_name_n("EV_SYN", 5), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name_n("EV_REPTILE", 7), -1);
+}
+END_TEST
+
+START_TEST(test_type_name_lookup)
+{
+ ck_assert_int_eq(libevdev_event_type_from_code_name("SYN_REPORT"), EV_SYN);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("KEY_A"), EV_KEY);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("REL_Z"), EV_REL);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("ABS_Z"), EV_ABS);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("MSC_SERIAL"), EV_MSC);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("SND_TONE"), EV_SND);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("SW_TABLET_MODE"), EV_SW);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("LED_CHARGING"), EV_LED);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("REP_PERIOD"), EV_REP);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("FF_SPRING"), EV_FF);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("FF_STATUS_STOPPED"), EV_FF_STATUS);
+
+ ck_assert_int_eq(libevdev_event_type_from_code_name_n("KEY_1zzzzz", 5), EV_KEY);
+ ck_assert_int_eq(libevdev_event_type_from_code_name_n("ABS_Zooom", 5), EV_ABS);
+
+ ck_assert_int_eq(libevdev_event_type_from_code_name("KEY_MAX"), EV_KEY);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("REL_MAX"), EV_REL);
+ ck_assert_int_eq(libevdev_event_type_from_code_name("ABS_MAX"), EV_ABS);
+}
+END_TEST
+
+START_TEST(test_type_name_lookup_invalid)
+{
+ ck_assert_int_eq(libevdev_event_type_from_name("SYN_REPORTED"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("syn_blah"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("SYN_"), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name("KEY_BANANA"), -1);
+
+ ck_assert_int_eq(libevdev_event_type_from_name_n("KEY_BA", 6), -1);
+ ck_assert_int_eq(libevdev_event_type_from_name_n("KEY_BLAH", 8), -1);
+}
+END_TEST
+
+START_TEST(test_code_names)
+{
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SYN, "SYN_REPORT"), SYN_REPORT);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_ABS, "ABS_X"), ABS_X);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "BTN_A"), BTN_A);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "KEY_A"), KEY_A);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_REL, "REL_X"), REL_X);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_MSC, "MSC_RAW"), MSC_RAW);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_LED, "LED_KANA"), LED_KANA);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SND, "SND_BELL"), SND_BELL);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_REP, "REP_DELAY"), REP_DELAY);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SYN, "SYN_DROPPED"), SYN_DROPPED);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "KEY_RESERVED"), KEY_RESERVED);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "BTN_0"), BTN_0);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "KEY_0"), KEY_0);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF, "FF_GAIN"), FF_GAIN);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF_STATUS, "FF_STATUS_MAX"), FF_STATUS_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SW, "SW_PEN_INSERTED"), SW_PEN_INSERTED);
+
+ ck_assert_int_eq(libevdev_event_code_from_name_n(EV_ABS, "ABS_YXZ", 5), ABS_Y);
+}
+END_TEST
+
+START_TEST(test_code_name_lookup)
+{
+ /* Same as test_code_names() but without the type */
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SYN_REPORT"), SYN_REPORT);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("ABS_X"), ABS_X);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("BTN_A"), BTN_A);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("KEY_A"), KEY_A);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("REL_X"), REL_X);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("MSC_RAW"), MSC_RAW);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("LED_KANA"), LED_KANA);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SND_BELL"), SND_BELL);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("REP_DELAY"), REP_DELAY);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SYN_DROPPED"), SYN_DROPPED);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("KEY_RESERVED"), KEY_RESERVED);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("BTN_0"), BTN_0);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("KEY_0"), KEY_0);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_GAIN"), FF_GAIN);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_STATUS_MAX"), FF_STATUS_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SW_PEN_INSERTED"), SW_PEN_INSERTED);
+
+ ck_assert_int_eq(libevdev_event_code_from_code_name_n("ABS_YXZ", 5), ABS_Y);
+}
+END_TEST
+
+START_TEST(test_code_names_invalid)
+{
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_MAX, "MAX_FAKE"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_CNT, "CNT_FAKE"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_PWR, "PWR_SOMETHING"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_ABS, "EV_ABS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_ABS, "ABS_XY"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "BTN_GAMEPAD"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "BUS_PCI"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF_STATUS, "FF_STATUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF_STATUS, "FF_STATUS_"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF, "FF_STATUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF, "FF_STATUS_"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "ID_BUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SND, "SND_CNT"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SW, "SW_CNT"), -1);
+
+ ck_assert_int_eq(libevdev_event_code_from_name_n(EV_ABS, "ABS_X", 4), -1);
+}
+END_TEST
+
+START_TEST(test_code_name_lookup_invalid)
+{
+ /* Same as test_code_names_invalid() but without the type */
+ ck_assert_int_eq(libevdev_event_code_from_code_name("MAX_FAKE"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("CNT_FAKE"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("PWR_SOMETHING"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("EV_ABS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("ABS_XY"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("BTN_GAMEPAD"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("BUS_PCI"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_STATUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_STATUS_"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_STATUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_STATUS_"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("ID_BUS"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SND_CNT"), -1);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SW_CNT"), -1);
+
+ ck_assert_int_eq(libevdev_event_code_from_code_name_n("ABS_X", 4), -1);
+}
+END_TEST
+
+START_TEST(test_code_names_max)
+{
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SYN, "SYN_MAX"), SYN_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "KEY_MAX"), KEY_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_REL, "REL_MAX"), REL_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_ABS, "ABS_MAX"), ABS_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_MSC, "MSC_MAX"), MSC_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SW, "SW_MAX"), SW_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_LED, "LED_MAX"), LED_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_SND, "SND_MAX"), SND_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_REP, "REP_MAX"), REP_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_name(EV_FF, "FF_MAX"), FF_MAX);
+
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SYN_MAX"), SYN_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("KEY_MAX"), KEY_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("REL_MAX"), REL_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("ABS_MAX"), ABS_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("MSC_MAX"), MSC_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SW_MAX"), SW_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("LED_MAX"), LED_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("SND_MAX"), SND_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("REP_MAX"), REP_MAX);
+ ck_assert_int_eq(libevdev_event_code_from_code_name("FF_MAX"), FF_MAX);
+}
+END_TEST
+
+START_TEST(test_value_names)
+{
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_PALM"), MT_TOOL_PALM);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_FINGER"), MT_TOOL_FINGER);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_PEN"), MT_TOOL_PEN);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_MAX"), MT_TOOL_MAX);
+}
+END_TEST
+
+START_TEST(test_value_names_invalid)
+{
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_SYN, REL_X, "MT_TOOL_PALM"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_REL, REL_X, "MT_TOOL_PALM"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_X, "MT_TOOL_PALM"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "MT_TOOL_PALMA"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, ""), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "EV_ABS"), -1);
+ ck_assert_int_eq(libevdev_event_value_from_name(EV_ABS, ABS_MT_TOOL_TYPE, "ABS_X"), -1);
+}
+END_TEST
+
+START_TEST(test_properties)
+{
+ struct prop {
+ int val;
+ const char *name;
+ } lut[] = {
+ { INPUT_PROP_DIRECT, "INPUT_PROP_DIRECT" },
+ { INPUT_PROP_POINTER, "INPUT_PROP_POINTER" },
+ { INPUT_PROP_MAX, "INPUT_PROP_MAX" },
+ { -1, NULL}
+ };
+ struct prop *p = lut;
+ while (p->val != -1) {
+ ck_assert_int_eq(libevdev_property_from_name(p->name), p->val);
+ p++;
+ }
+}
+END_TEST
+
+START_TEST(test_properties_invalid)
+{
+ ck_assert_int_eq(libevdev_property_from_name("EV_ABS"), -1);
+ ck_assert_int_eq(libevdev_property_from_name("INPUT_PROP"), -1);
+ ck_assert_int_eq(libevdev_property_from_name("INPUT_PROP_"), -1);
+ ck_assert_int_eq(libevdev_property_from_name("INPUT_PROP_FOO"), -1);
+
+ ck_assert_int_eq(libevdev_property_from_name_n("INPUT_PROP_POINTER", 11), -1);
+ ck_assert_int_eq(libevdev_property_from_name_n("INPUT_PROP_POINTER",
+ strlen("INPUT_PROP_POINTER") - 1), -1);
+}
+END_TEST
+
+TEST_SUITE(event_code_suite)
+{
+ Suite *s = suite_create("Event codes");
+
+ add_test(s, test_type_names);
+ add_test(s, test_type_names_invalid);
+ add_test(s, test_type_name_lookup);
+ add_test(s, test_type_name_lookup_invalid);
+
+ add_test(s, test_code_names);
+ add_test(s, test_code_name_lookup);
+ add_test(s, test_code_names_invalid);
+ add_test(s, test_code_name_lookup_invalid);
+ add_test(s, test_code_names_max);
+
+ add_test(s, test_value_names);
+ add_test(s, test_value_names_invalid);
+
+ add_test(s, test_properties);
+ add_test(s, test_properties_invalid);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-event-names.c third-party-new/test/test-event-names.c
--- third-party-libevdev-bak/test/test-event-names.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-event-names.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,314 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include "test-common.h"
+
+START_TEST(test_limits)
+{
+ ck_assert(libevdev_event_type_get_name(EV_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_SW, SW_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_REP, REP_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX + 1) == NULL);
+ ck_assert(libevdev_event_code_get_name(EV_MAX + 1, 0) == NULL);
+ ck_assert(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_MAX + 1) == NULL);
+}
+END_TEST
+
+START_TEST(test_type_name)
+{
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_SYN), "EV_SYN");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_REL), "EV_REL");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_ABS), "EV_ABS");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_MSC), "EV_MSC");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_SW), "EV_SW");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_LED), "EV_LED");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_SND), "EV_SND");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_REP), "EV_REP");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_FF), "EV_FF");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_PWR), "EV_PWR");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_FF_STATUS), "EV_FF_STATUS");
+ ck_assert_str_eq(libevdev_event_type_get_name(EV_MAX), "EV_MAX");
+}
+END_TEST
+
+START_TEST(test_code_abs_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_X), "ABS_X");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_Y), "ABS_Y");
+
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MT_SLOT), "ABS_MT_SLOT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MISC), "ABS_MISC");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MAX), "ABS_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_rel_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_X), "REL_X");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_Y), "REL_Y");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MISC), "REL_MISC");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MAX), "REL_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_key_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_RESERVED), "KEY_RESERVED");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_ESC), "KEY_ESC");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_1), "KEY_1");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_2), "KEY_2");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_UNKNOWN), "KEY_UNKNOWN");
+
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_0), "BTN_0");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_LEFT), "BTN_LEFT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER), "BTN_TRIGGER");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_A), "BTN_SOUTH");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TOOL_PEN), "BTN_TOOL_PEN");
+
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_TOUCHPAD_TOGGLE), "KEY_TOUCHPAD_TOGGLE");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
+
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_MAX), "KEY_MAX");
+ ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX - 1) == NULL);
+
+ /* special cases that resolve to something else */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_HANGUEL), "KEY_HANGEUL");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_SCREENLOCK), "KEY_COFFEE");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MISC), "BTN_0");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MOUSE), "BTN_LEFT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_JOYSTICK), "BTN_TRIGGER");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_GAMEPAD), "BTN_SOUTH");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_DIGI), "BTN_TOOL_PEN");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_WHEEL), "BTN_GEAR_DOWN");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
+
+}
+END_TEST
+
+START_TEST(test_code_led_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_NUML), "LED_NUML");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_KANA), "LED_KANA");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_MAX), "LED_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_snd_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_CLICK), "SND_CLICK");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_TONE), "SND_TONE");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_MAX), "SND_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_rep_name)
+{
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_DELAY), "REP_DELAY");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_PERIOD), "REP_PERIOD");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_MAX), "REP_PERIOD");
+
+}
+END_TEST
+
+START_TEST(test_code_msc_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_SERIAL), "MSC_SERIAL");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_RAW), "MSC_RAW");
+#ifdef MSC_TIMESTAMP
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_TIMESTAMP), "MSC_TIMESTAMP");
+#endif
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_MAX), "MSC_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_sw_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LID), "SW_LID");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_RFKILL_ALL), "SW_RFKILL_ALL");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LINEIN_INSERT), "SW_LINEIN_INSERT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_PEN_INSERTED), "SW_PEN_INSERTED");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_MAX), "SW_MACHINE_COVER");
+}
+END_TEST
+
+START_TEST(test_code_ff_name)
+{
+ /* pick out a few only */
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_STATUS_STOPPED), "FF_STATUS_STOPPED");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_FRICTION), "FF_FRICTION");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_CUSTOM), "FF_CUSTOM");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_MAX), "FF_MAX");
+
+ ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX - 1) == NULL);
+
+}
+END_TEST
+
+START_TEST(test_code_syn_name)
+{
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_REPORT), "SYN_REPORT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_CONFIG), "SYN_CONFIG");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MT_REPORT), "SYN_MT_REPORT");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_DROPPED), "SYN_DROPPED");
+ ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MAX), "SYN_MAX");
+}
+END_TEST
+
+START_TEST(test_value_name)
+{
+ unsigned int type, code;
+ int value;
+
+ for (type = 0; type < EV_MAX; type++) {
+ int max = libevdev_event_type_get_max(type);
+
+ if (max == -1)
+ continue;
+
+ for (code = 0; code < (unsigned int)max; code++) {
+ if (type == EV_ABS && code == ABS_MT_TOOL_TYPE)
+ continue;
+
+ for (value = 0; value < 0xff; value++) {
+ ck_assert(libevdev_event_value_get_name(type, code, value) == NULL);
+ }
+ }
+ }
+
+ ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER), "MT_TOOL_FINGER");
+ ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM), "MT_TOOL_PALM");
+ ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PEN), "MT_TOOL_PEN");
+ ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_MAX), "MT_TOOL_MAX");
+ ck_assert(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, -1) == NULL);
+}
+END_TEST
+
+START_TEST(test_prop_name)
+{
+ ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_POINTER), "INPUT_PROP_POINTER");
+ ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_DIRECT), "INPUT_PROP_DIRECT");
+ ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_BUTTONPAD), "INPUT_PROP_BUTTONPAD");
+ ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_SEMI_MT), "INPUT_PROP_SEMI_MT");
+ ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_MAX), "INPUT_PROP_MAX");
+
+ ck_assert(libevdev_property_get_name(INPUT_PROP_MAX - 1) == NULL);
+ ck_assert(libevdev_property_get_name(INPUT_PROP_MAX + 1) == NULL);
+}
+END_TEST
+
+START_TEST(test_event_type_max)
+{
+ ck_assert_int_eq(libevdev_event_type_get_max(EV_ABS), ABS_MAX);
+ ck_assert_int_eq(libevdev_event_type_get_max(EV_REL), REL_MAX);
+ ck_assert_int_eq(libevdev_event_type_get_max(EV_KEY), KEY_MAX);
+
+ ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX - 1), -1);
+ ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX + 1), -1);
+
+}
+END_TEST
+
+START_TEST(test_event_type)
+{
+ struct input_event ev;
+ int i = 0;
+
+ ev.type = EV_REL;
+
+ ck_assert_int_eq(libevdev_event_is_type(&ev, EV_REL), 1);
+ for (i = 0; i < EV_CNT; i++) {
+ if (i == ev.type)
+ continue;
+ ck_assert_int_eq(libevdev_event_is_type(&ev, i), 0);
+ }
+ ck_assert_int_eq(libevdev_event_is_type(&ev, EV_MAX + 1), 0);
+}
+END_TEST
+
+START_TEST(test_event_code)
+{
+ struct input_event ev;
+ int i = 0;
+
+ ev.type = EV_REL;
+ ev.code = REL_Y;
+
+ ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_Y), 1);
+ for (i = 0; i < EV_CNT; i++) {
+ int j;
+ if (i == ev.type || i == EV_SYN)
+ continue;
+
+ for (j = 0; j < libevdev_event_type_get_max(i); i++) {
+ ck_assert_int_eq(libevdev_event_is_code(&ev, i, j), 0);
+ }
+ }
+ ck_assert_int_eq(libevdev_event_is_code(&ev, EV_MAX + 1, ev.code), 0);
+ ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_MAX + 1), 0);
+
+ ev.type = EV_SYN;
+ ev.code = SYN_REPORT;
+ ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT), 1);
+ ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_DROPPED), 0);
+}
+END_TEST
+
+TEST_SUITE(event_name_suite)
+{
+ Suite *s = suite_create("Event names");
+
+ add_test(s, test_limits);
+ add_test(s, test_event_type_max);
+
+ add_test(s, test_type_name);
+
+ add_test(s, test_code_abs_name);
+ add_test(s, test_code_rel_name);
+ add_test(s, test_code_key_name);
+ add_test(s, test_code_led_name);
+ add_test(s, test_code_snd_name);
+ add_test(s, test_code_rep_name);
+ add_test(s, test_code_msc_name);
+ add_test(s, test_code_sw_name);
+ add_test(s, test_code_ff_name);
+ add_test(s, test_code_syn_name);
+
+ add_test(s, test_value_name);
+ add_test(s, test_prop_name);
+
+ add_test(s, test_event_type);
+ add_test(s, test_event_code);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-int-queue.c third-party-new/test/test-int-queue.c
--- third-party-libevdev-bak/test/test-int-queue.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-int-queue.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,338 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <limits.h>
+#include <libevdev/libevdev-int.h>
+#include "test-common.h"
+
+START_TEST(test_queue_alloc)
+{
+ struct libevdev dev;
+ int rc;
+
+ rc = queue_alloc(&dev, 0);
+ ck_assert_int_eq(rc, -ENOMEM);
+
+ rc = queue_alloc(&dev, 100);
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(dev.queue_size, 100);
+ ck_assert_int_eq(dev.queue_next, 0);
+
+ queue_free(&dev);
+ ck_assert_int_eq(dev.queue_size, 0);
+ ck_assert_int_eq(dev.queue_next, 0);
+
+}
+END_TEST
+
+START_TEST(test_queue_sizes)
+{
+ struct libevdev dev = {0};
+
+ queue_alloc(&dev, 0);
+ ck_assert_int_eq(queue_num_elements(&dev), 0);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 0);
+ ck_assert_int_eq(queue_size(&dev), 0);
+
+ queue_alloc(&dev, 100);
+ ck_assert_int_eq(queue_num_elements(&dev), 0);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 100);
+ ck_assert_int_eq(queue_size(&dev), 100);
+
+ queue_free(&dev);
+
+ ck_assert_int_eq(queue_num_elements(&dev), 0);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 0);
+ ck_assert_int_eq(queue_size(&dev), 0);
+}
+END_TEST
+
+START_TEST(test_queue_push)
+{
+ struct libevdev dev = {0};
+ struct input_event *ev;
+
+ queue_alloc(&dev, 0);
+ ev = queue_push(&dev);
+ ck_assert(ev == NULL);
+
+ queue_alloc(&dev, 2);
+ ev = queue_push(&dev);
+ ck_assert(ev == dev.queue);
+ ck_assert_int_eq(queue_num_elements(&dev), 1);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 1);
+
+ ev = queue_push(&dev);
+ ck_assert(ev == dev.queue + 1);
+
+ ev = queue_push(&dev);
+ ck_assert(ev == NULL);
+
+ queue_free(&dev);
+ ev = queue_push(&dev);
+ ck_assert(ev == NULL);
+
+}
+END_TEST
+
+START_TEST(test_queue_pop)
+{
+ struct libevdev dev = {0};
+ struct input_event ev, *e, tmp;
+ int rc;
+
+ queue_alloc(&dev, 0);
+ rc = queue_pop(&dev, &ev);
+ ck_assert_int_eq(rc, 1);
+
+ queue_alloc(&dev, 2);
+ e = queue_push(&dev);
+ memset(e, 0xab, sizeof(*e));
+ ck_assert_int_eq(queue_num_elements(&dev), 1);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 1);
+
+ rc = queue_pop(&dev, &ev);
+ ck_assert_int_eq(rc, 0);
+ memset(&tmp, 0xab, sizeof(tmp));
+ rc = memcmp(&tmp, &ev, sizeof(tmp));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_num_elements(&dev), 0);
+ ck_assert_int_eq(queue_num_free_elements(&dev), 2);
+
+ rc = queue_pop(&dev, &ev);
+ ck_assert_int_eq(rc, 1);
+
+ queue_free(&dev);
+}
+END_TEST
+
+START_TEST(test_queue_peek)
+{
+ struct libevdev dev = {0};
+ struct input_event ev, *e, tmp;
+ int rc;
+
+ queue_alloc(&dev, 0);
+ rc = queue_peek(&dev, 0, &ev);
+ ck_assert_int_eq(rc, 1);
+
+ queue_alloc(&dev, 2);
+ e = queue_push(&dev);
+ memset(e, 0xab, sizeof(*e));
+
+ rc = queue_peek(&dev, 0, &ev);
+ ck_assert_int_eq(rc, 0);
+ memset(&tmp, 0xab, sizeof(tmp));
+ rc = memcmp(&tmp, &ev, sizeof(tmp));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_num_elements(&dev), 1);
+ e = queue_push(&dev);
+ memset(e, 0xbc, sizeof(*e));
+
+ rc = queue_peek(&dev, 1, &ev);
+ ck_assert_int_eq(rc, 0);
+ memset(&tmp, 0xbc, sizeof(tmp));
+ rc = memcmp(&tmp, &ev, sizeof(tmp));
+ ck_assert_int_eq(rc, 0);
+
+ rc = queue_peek(&dev, 0, &ev);
+ ck_assert_int_eq(rc, 0);
+ memset(&tmp, 0xab, sizeof(tmp));
+ rc = memcmp(&tmp, &ev, sizeof(tmp));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_num_elements(&dev), 2);
+
+ queue_free(&dev);
+}
+END_TEST
+
+START_TEST(test_queue_shift)
+{
+ struct libevdev dev = {0};
+ struct input_event ev, *first, *second, e1, e2;
+ int rc;
+
+ ck_assert_int_eq(queue_shift(&dev, &ev), 1);
+
+ queue_alloc(&dev, 10);
+ ck_assert_int_eq(queue_shift(&dev, &ev), 1);
+
+ first = queue_push(&dev);
+ ck_assert(first != NULL);
+ memset(first, 0xab, sizeof(*first));
+
+ e1 = *first;
+
+ second = queue_push(&dev);
+ ck_assert(second != NULL);
+ memset(second, 0x12, sizeof(*second));
+
+ e2 = *second;
+
+ rc = queue_shift(&dev, &ev);
+ ck_assert_int_eq(rc, 0);
+ rc = memcmp(&ev, &e1, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ rc = queue_shift(&dev, &ev);
+ ck_assert_int_eq(rc, 0);
+ rc = memcmp(&ev, &e2, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_shift(&dev, &ev), 1);
+
+ queue_free(&dev);
+}
+END_TEST
+
+START_TEST(test_queue_shift_multiple)
+{
+ struct libevdev dev = {0};
+ struct input_event ev, *first, *second, e1, e2;
+ struct input_event events[5];
+ int rc;
+
+ ck_assert_int_eq(queue_shift_multiple(&dev, 1, &ev), 0);
+ ck_assert_int_eq(queue_shift_multiple(&dev, 0, &ev), 0);
+
+ queue_alloc(&dev, 10);
+ ck_assert_int_eq(queue_shift_multiple(&dev, 1, &ev), 0);
+ ck_assert_int_eq(queue_shift_multiple(&dev, 0, &ev), 0);
+
+ first = queue_push(&dev);
+ ck_assert(first != NULL);
+ memset(first, 0xab, sizeof(*first));
+ e1 = *first;
+
+ second = queue_push(&dev);
+ ck_assert(second != NULL);
+ memset(second, 0x12, sizeof(*second));
+ e2 = *second;
+
+ rc = queue_shift_multiple(&dev, 5, events);
+ ck_assert_int_eq(rc, 2);
+ rc = memcmp(&events[0], &e1, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+ rc = memcmp(&events[1], &e2, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ first = queue_push(&dev);
+ ck_assert(first != NULL);
+ memset(first, 0xab, sizeof(*first));
+ e1 = *first;
+
+ second = queue_push(&dev);
+ ck_assert(second != NULL);
+ memset(second, 0x12, sizeof(*second));
+ e2 = *second;
+
+ rc = queue_shift_multiple(&dev, 1, events);
+ ck_assert_int_eq(rc, 1);
+ rc = memcmp(&events[0], &e1, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ rc = queue_shift_multiple(&dev, 1, events);
+ ck_assert_int_eq(rc, 1);
+ rc = memcmp(&events[0], &e2, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_shift_multiple(&dev, 1, events), 0);
+
+ queue_free(&dev);
+}
+END_TEST
+
+START_TEST(test_queue_next_element)
+{
+ struct libevdev dev = {0};
+ struct input_event ev, *first, *second;
+ int rc;
+
+ queue_alloc(&dev, 0);
+ first = queue_next_element(&dev);
+ ck_assert(first == NULL);
+
+ queue_alloc(&dev, 2);
+ first = queue_next_element(&dev);
+ ck_assert(first != NULL);
+ memset(first, 0xab, sizeof(*first));
+
+ second = queue_next_element(&dev);
+ ck_assert(second != NULL);
+ memset(second, 0xbc, sizeof(*second));
+
+ /* queue_next_element does not advance, so we overwrite */
+ memset(&ev, 0xbc, sizeof(ev));
+ rc = memcmp(&ev, first, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(queue_num_elements(&dev), 0);
+
+ first = queue_next_element(&dev);
+ ck_assert(first != NULL);
+ memset(first, 0xab, sizeof(*first));
+
+ queue_set_num_elements(&dev, 1);
+ ck_assert_int_eq(queue_num_elements(&dev), 1);
+
+ second = queue_next_element(&dev);
+ ck_assert(second != NULL);
+ memset(second, 0xbc, sizeof(*second));
+
+ memset(&ev, 0xab, sizeof(ev));
+ rc = memcmp(&ev, first, sizeof(ev));
+ ck_assert_int_eq(rc, 0);
+
+ queue_free(&dev);
+}
+END_TEST
+
+START_TEST(test_queue_set_num_elements)
+{
+ struct libevdev dev = {0};
+
+ queue_alloc(&dev, 0);
+ ck_assert_int_eq(queue_set_num_elements(&dev, 1), 1);
+
+ queue_alloc(&dev, 2);
+ ck_assert_int_eq(queue_set_num_elements(&dev, 3), 1);
+ ck_assert_int_eq(queue_set_num_elements(&dev, 2), 0);
+
+ queue_free(&dev);
+}
+END_TEST
+
+TEST_SUITE(queue_suite)
+{
+ Suite *s = suite_create("Event queue");
+
+ TCase *tc = tcase_create("Queue allocation");
+ tcase_add_test(tc, test_queue_alloc);
+ tcase_add_test(tc, test_queue_sizes);
+ suite_add_tcase(s, tc);
+
+ tc = tcase_create("Queue push/pop/peek");
+ tcase_add_test(tc, test_queue_push);
+ tcase_add_test(tc, test_queue_pop);
+ tcase_add_test(tc, test_queue_peek);
+ suite_add_tcase(s, tc);
+
+ tc = tcase_create("Queue shift");
+ tcase_add_test(tc, test_queue_shift);
+ tcase_add_test(tc, test_queue_shift_multiple);
+ suite_add_tcase(s, tc);
+
+ tc = tcase_create("Queue next elem");
+ tcase_add_test(tc, test_queue_next_element);
+ tcase_add_test(tc, test_queue_set_num_elements);
+ suite_add_tcase(s, tc);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-kernel.c third-party-new/test/test-kernel.c
--- third-party-libevdev-bak/test/test-kernel.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-kernel.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2014 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <errno.h>
+#include <inttypes.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <linux/input.h>
+
+#include <libevdev/libevdev.h>
+#include <libevdev/libevdev-uinput.h>
+#include "test-common.h"
+
+START_TEST(test_revoke)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2;
+ int rc, fd;
+ struct input_event ev1, ev2;
+ int dev_fd;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ fd = open(uinput_device_get_devnode(uidev), O_RDONLY|O_NONBLOCK);
+ ck_assert_int_gt(fd, -1);
+ rc = libevdev_new_from_fd(fd, &dev2);
+ ck_assert_msg(rc == 0, "Failed to create second device: %s", strerror(-rc));
+
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ for (int i = 0; i < 2; i++) {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev1);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+
+ rc = libevdev_next_event(dev2, LIBEVDEV_READ_FLAG_NORMAL, &ev2);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+
+ ck_assert_int_eq(ev1.type, ev2.type);
+ ck_assert_int_eq(ev1.code, ev2.code);
+ ck_assert_int_eq(ev1.value, ev2.value);
+ }
+
+ /* revoke first device, expect it closed, second device still open */
+ dev_fd = libevdev_get_fd(dev);
+ ck_assert_int_ge(dev_fd, 0);
+ rc = ioctl(dev_fd, EVIOCREVOKE, NULL);
+ if (rc == -1 && errno == EINVAL) {
+ fprintf(stderr, "WARNING: skipping EVIOCREVOKE test, not suported by current kernel\n");
+ goto out;
+ }
+ ck_assert_msg(rc == 0, "Failed to revoke device: %s", strerror(errno));
+
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev1);
+ ck_assert_int_eq(rc, -ENODEV);
+
+ rc = libevdev_next_event(dev2, LIBEVDEV_READ_FLAG_NORMAL, &ev2);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+
+out:
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+ libevdev_free(dev2);
+ close(fd);
+}
+END_TEST
+
+START_TEST(test_revoke_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ int dev_fd;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ dev_fd = libevdev_get_fd(dev);
+ ck_assert_int_ge(dev_fd, 0);
+ /* ioctl requires 0 as value */
+ rc = ioctl(dev_fd, EVIOCREVOKE, 1);
+ ck_assert_int_eq(rc, -1);
+ ck_assert_int_eq(errno, EINVAL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_revoke_fail_after)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2 = NULL;
+ int rc, fd;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ fd = open(uinput_device_get_devnode(uidev), O_RDONLY|O_NONBLOCK);
+ ck_assert_int_gt(fd, -1);
+
+ rc = ioctl(fd, EVIOCREVOKE, NULL);
+ if (rc == -1 && errno == EINVAL) {
+ fprintf(stderr, "WARNING: skipping EVIOCREVOKE test, not suported by current kernel\n");
+ goto out;
+ }
+ ck_assert_msg(rc == 0, "Failed to revoke device: %s", strerror(errno));
+
+ rc = libevdev_new_from_fd(fd, &dev2);
+ ck_assert_int_eq(rc, -ENODEV);
+
+out:
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+ close(fd);
+}
+END_TEST
+
+TEST_SUITE_ROOT_PRIVILEGES(kernel)
+{
+ Suite *s = suite_create("kernel");
+
+ add_test(s, test_revoke);
+ add_test(s, test_revoke_invalid);
+ add_test(s, test_revoke_fail_after);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-libevdev-events.c third-party-new/test/test-libevdev-events.c
--- third-party-libevdev-bak/test/test-libevdev-events.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-libevdev-events.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,2084 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <linux/input.h>
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <libevdev/libevdev-util.h>
+
+#include "test-common.h"
+
+START_TEST(test_next_event)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_KEY, BTN_LEFT, 1);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+}
+END_TEST
+
+START_TEST(test_next_event_invalid_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ dev = libevdev_new();
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EBADF);
+ libevdev_free(dev);
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ /* invalid (missing) flag */
+ rc = libevdev_next_event(dev, 0x10, &ev);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ /* set an invalid fd */
+ rc = libevdev_change_fd(dev, -3);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EBADF);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_next_event_blocking)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int fd, flags;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ fd = libevdev_get_fd(dev);
+ flags = fcntl(fd, F_GETFL) & ~O_NONBLOCK;
+ rc = fcntl(fd, F_SETFL, flags);
+ ck_assert_int_eq(rc, 0);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_BLOCKING, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_KEY, BTN_LEFT, 1);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_syn_dropped_event)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ int pipefd[2];
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ /* This is a bit complicated:
+ we can't get SYN_DROPPED through uinput, so we push two events down
+ uinput, and process those. Then write a SYN_DROPPED on a pipe,
+ switch the fd and read one event off the wire. Switch back, so
+ that when we do read off the SYN_DROPPED we have the fd back on
+ the device and the ioctls work.
+ */
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_KEY, BTN_LEFT, 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ rc = pipe2(pipefd, O_NONBLOCK);
+ ck_assert_int_eq(rc, 0);
+
+ libevdev_change_fd(dev, pipefd[0]);
+ ev.type = EV_SYN;
+ ev.code = SYN_DROPPED;
+ ev.value = 0;
+ rc = write(pipefd[1], &ev, sizeof(ev));
+ ck_assert_int_eq(rc, sizeof(ev));
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_DROPPED, 0);
+
+ libevdev_change_fd(dev, uinput_device_get_fd(uidev));
+ /* only check for the rc, nothing actually changed on the device */
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+ close(pipefd[0]);
+ close(pipefd[1]);
+
+}
+END_TEST
+
+START_TEST(test_event_type_filtered)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ libevdev_disable_event_type(dev, EV_REL);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_KEY, REL_Y, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+}
+END_TEST
+
+START_TEST(test_event_code_filtered)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ libevdev_disable_event_code(dev, EV_REL, REL_X);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_REL, REL_Y, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_REL, REL_Y, 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+}
+END_TEST
+
+START_TEST(test_has_event_pending)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ -1);
+
+ ck_assert_int_eq(libevdev_has_event_pending(dev), 0);
+
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_REL, REL_Y, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ ck_assert_int_eq(libevdev_has_event_pending(dev), 1);
+
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+
+ ck_assert_int_eq(libevdev_has_event_pending(dev), 1);
+
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) != -EAGAIN)
+ ;
+
+ ck_assert_int_eq(libevdev_has_event_pending(dev), 0);
+
+ libevdev_change_fd(dev, -1);
+ ck_assert_int_eq(libevdev_has_event_pending(dev), -EBADF);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+}
+END_TEST
+
+START_TEST(test_has_event_pending_invalid_fd)
+{
+ struct libevdev *dev;
+ int rc;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ dev = libevdev_new();
+ rc = libevdev_has_event_pending(dev);
+ ck_assert_int_eq(rc, -EBADF);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_button)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ EV_KEY, KEY_MAX,
+ -1);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_KEY, BTN_RIGHT, 1);
+ uinput_device_event(uidev, EV_KEY, KEY_MAX, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_KEY, BTN_LEFT, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_KEY, BTN_RIGHT, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_KEY, KEY_MAX, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT));
+ ck_assert(libevdev_get_event_value(dev, EV_KEY, BTN_RIGHT));
+ ck_assert(!libevdev_get_event_value(dev, EV_KEY, BTN_MIDDLE));
+ ck_assert(libevdev_get_event_value(dev, EV_KEY, KEY_MAX));
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_abs)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[3] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MAX, .maximum = 1000 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ uinput_device_event(uidev, EV_ABS, ABS_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
+ uinput_device_event(uidev, EV_ABS, ABS_MAX, 700);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_X, 100);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_Y, 500);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ ck_assert_int_eq(ev.type, EV_ABS);
+ ck_assert_int_eq(ev.code, ABS_MAX);
+ ck_assert_int_eq(ev.value, 700);
+ assert_event(&ev, EV_ABS, ABS_MAX, 700);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_mt)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 2 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_X, 1,
+ EV_ABS, ABS_Y, 5,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_X, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_Y, 5);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_SLOT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_POSITION_X, 100);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_POSITION_Y, 500);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_TRACKING_ID, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_SLOT, 1);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_POSITION_X, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_POSITION_Y, 5);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_ABS, ABS_MT_TRACKING_ID, 2);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_mt_reset_slot)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev,
+ last_slot_event = { .type = 0};
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 2 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ if (libevdev_event_is_code(&ev, EV_ABS, ABS_MT_SLOT))
+ last_slot_event = ev;
+ } while (rc != -EAGAIN);
+
+ ck_assert(libevdev_event_is_code(&last_slot_event, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(last_slot_event.value, 0);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+
+ last_slot_event.type = 0;
+
+ /* same thing again, this time swap the numbers */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ if (libevdev_event_is_code(&ev, EV_ABS, ABS_MT_SLOT))
+ last_slot_event = ev;
+ } while (rc != -EAGAIN);
+
+ ck_assert(libevdev_event_is_code(&last_slot_event, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(last_slot_event.value, 1);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_led)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_LED, LED_NUML,
+ EV_LED, LED_CAPSL,
+ EV_LED, LED_MAX,
+ -1);
+
+ uinput_device_event(uidev, EV_LED, LED_NUML, 1);
+ uinput_device_event(uidev, EV_LED, LED_CAPSL, 1);
+ uinput_device_event(uidev, EV_LED, LED_MAX, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_LED, LED_NUML, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_LED, LED_CAPSL, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_LED, LED_MAX, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_LED, LED_NUML), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_LED, LED_CAPSL), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_LED, LED_MAX), 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_sw)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_SW, SW_HEADPHONE_INSERT,
+ EV_SW, SW_MICROPHONE_INSERT,
+ EV_SW, SW_MAX,
+ -1);
+
+ uinput_device_event(uidev, EV_SW, SW_HEADPHONE_INSERT, 1);
+ uinput_device_event(uidev, EV_SW, SW_MICROPHONE_INSERT, 1);
+ uinput_device_event(uidev, EV_SW, SW_MAX, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SW, SW_HEADPHONE_INSERT, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SW, SW_MICROPHONE_INSERT, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SW, SW_MAX, 1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_SW, SW_HEADPHONE_INSERT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_SW, SW_MICROPHONE_INSERT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_SW, SW_MAX), 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_tracking_ids)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ int i;
+ const int num_slots = 15;
+ int slot = -1;
+ unsigned long terminated[NLONGS(num_slots)];
+ unsigned long restarted[NLONGS(num_slots)];
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = num_slots },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 0xff },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ /* Test the sync process to make sure we get touches terminated when
+ * the tracking id changes:
+ * 1) start a bunch of touch points
+ * 2) read data into libevdev, make sure state is up-to-date
+ * 3) change touchpoints
+ * 3.1) change the tracking ID on some (indicating terminated and
+ * re-started touchpoint)
+ * 3.2) change the tracking ID to -1 on some (indicating termianted
+ * touchpoint)
+ * 3.3) just update the data on others
+ * 4) force a sync on the device
+ * 5) make sure we get the right tracking ID changes in the caller
+ */
+
+ /* Start a bunch of touch points */
+ for (i = num_slots; i >= 0; i--) {
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, i,
+ EV_ABS, ABS_MT_TRACKING_ID, i,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+ } while (rc >= 0);
+ }
+
+ /* we have a bunch of touches now, and libevdev knows it. Change all
+ * touches */
+ for (i = num_slots; i >= 0; i--) {
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, i);
+ if (i % 3 == 0) {
+ /* change some slots with a new tracking id */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_TRACKING_ID, num_slots + i,
+ EV_ABS, ABS_X, 200 + i,
+ EV_ABS, ABS_Y, 700 + i,
+ EV_ABS, ABS_MT_POSITION_X, 200 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 700 + i,
+ -1, -1);
+ } else if (i % 3 == 1) {
+ /* stop others */
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, -1);
+ } else {
+ /* just update */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 200 + i,
+ EV_ABS, ABS_Y, 700 + i,
+ EV_ABS, ABS_MT_POSITION_X, 200 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 700 + i,
+ -1, -1);
+ }
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ }
+
+ /* Force sync */
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ /* now check for the right tracking IDs */
+ memset(terminated, 0, sizeof(terminated));
+ memset(restarted, 0, sizeof(restarted));
+ slot = -1;
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev)) != -EAGAIN) {
+ if (libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT))
+ continue;
+
+ if (libevdev_event_is_code(&ev, EV_ABS, ABS_MT_SLOT)) {
+ slot = ev.value;
+ continue;
+ }
+
+ if (libevdev_event_is_code(&ev, EV_ABS, ABS_X) ||
+ libevdev_event_is_code(&ev, EV_ABS, ABS_Y))
+ continue;
+
+ ck_assert_int_ne(slot, -1);
+
+ if (libevdev_event_is_code(&ev, EV_ABS, ABS_MT_TRACKING_ID)) {
+ if (slot % 3 == 0) {
+ if (!bit_is_set(terminated, slot)) {
+ ck_assert_int_eq(ev.value, -1);
+ set_bit(terminated, slot);
+ } else {
+ ck_assert_int_eq(ev.value, num_slots + slot);
+ set_bit(restarted, slot);
+ }
+ } else if (slot % 3 == 1) {
+ ck_assert(!bit_is_set(terminated, slot));
+ ck_assert_int_eq(ev.value, -1);
+ set_bit(terminated, slot);
+ } else
+ ck_abort();
+
+ continue;
+ }
+
+ switch(ev.code) {
+ case ABS_MT_POSITION_X:
+ ck_assert_int_eq(ev.value, 200 + slot);
+ break;
+ case ABS_MT_POSITION_Y:
+ ck_assert_int_eq(ev.value, 700 + slot);
+ break;
+ default:
+ ck_abort();
+ }
+ }
+
+ for (i = 0; i < num_slots; i++) {
+ if (i % 3 == 0) {
+ ck_assert(bit_is_set(terminated, i));
+ ck_assert(bit_is_set(restarted, i));
+ } else if (i % 3 == 1) {
+ ck_assert(bit_is_set(terminated, i));
+ ck_assert(!bit_is_set(restarted, i));
+ } else {
+ ck_assert(!bit_is_set(terminated, i));
+ ck_assert(!bit_is_set(restarted, i));
+ }
+ }
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_tracking_ids_btntool)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ const int num_slots = 5;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = num_slots },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 0xffff },
+ };
+ bool have_doubletap = false,
+ have_quadtap = false,
+ have_quinttap = false;
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_KEY, BTN_TOOL_FINGER,
+ EV_KEY, BTN_TOOL_DOUBLETAP,
+ EV_KEY, BTN_TOOL_TRIPLETAP,
+ EV_KEY, BTN_TOOL_QUADTAP,
+ EV_KEY, BTN_TOOL_QUINTTAP,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ /* Test the sync process to make sure we get the BTN_TOOL bits for
+ * touches adjusted correctly when the tracking id changes:
+ * 1) start a bunch of touch points
+ * 2) read data into libevdev, make sure state is up-to-date
+ * 3) change touchpoints
+ * 3.1) change the tracking ID on some (indicating terminated and
+ * re-started touchpoint)
+ * 3.2) change the tracking ID to -1 on some (indicating termianted
+ * touchpoint)
+ * 3.3) just update the data on others
+ * 4) force a sync on the device
+ * 5) make sure we get the right BTN_TOOL_ changes in the caller
+ */
+ for (int i = 0; i < num_slots; i++) {
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, i,
+ EV_ABS, ABS_MT_TRACKING_ID, 111,
+ EV_ABS, ABS_X, 100 + 10 * i,
+ EV_ABS, ABS_Y, 100 + 10 * i,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 100,
+ -1, -1);
+ switch (i) {
+ case 0:
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_FINGER, 1);
+ break;
+ case 1:
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_FINGER, 0);
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
+ break;
+ case 2:
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
+ break;
+ case 3:
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_QUADTAP, 1);
+ break;
+ case 4:
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_QUADTAP, 0);
+ uinput_device_event(uidev, EV_KEY, BTN_TOOL_QUINTTAP, 1);
+ break;
+ default:
+ ck_abort();
+ }
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ }
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+ } while (rc >= 0);
+
+ /* we have a bunch of touches now, and libevdev knows it.
+ * - stop touch 0
+ * - stop and restart touch 1 and 4
+ * - leave 2, 3 unchanged
+ */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, -1,
+ EV_KEY, BTN_TOOL_QUINTTAP, 0,
+ EV_KEY, BTN_TOOL_QUADTAP, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_TRACKING_ID, -1,
+ EV_KEY, BTN_TOOL_QUADTAP, 0,
+ EV_KEY, BTN_TOOL_TRIPLETAP, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_TRACKING_ID, 666,
+ EV_ABS, ABS_X, 666,
+ EV_ABS, ABS_Y, 666,
+ EV_ABS, ABS_MT_POSITION_X, 666,
+ EV_ABS, ABS_MT_POSITION_Y, 666,
+ EV_KEY, BTN_TOOL_TRIPLETAP, 0,
+ EV_KEY, BTN_TOOL_QUADTAP, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 4,
+ EV_ABS, ABS_MT_TRACKING_ID, -1,
+ EV_KEY, BTN_TOOL_QUADTAP, 0,
+ EV_KEY, BTN_TOOL_TRIPLETAP, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 4,
+ EV_ABS, ABS_MT_TRACKING_ID, 777,
+ EV_ABS, ABS_X, 777,
+ EV_ABS, ABS_Y, 777,
+ EV_ABS, ABS_MT_POSITION_X, 777,
+ EV_ABS, ABS_MT_POSITION_Y, 777,
+ EV_KEY, BTN_TOOL_QUADTAP, 1,
+ EV_KEY, BTN_TOOL_TRIPLETAP, 0,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ /* Force sync */
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ /* In the first sync frame, we expect us to drop to 2 touches - we
+ * started with 5, 1 stopped, 2 stopped+restarted */
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev)) != -EAGAIN) {
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_QUINTTAP)) {
+ ck_assert(!have_quinttap);
+ assert_event(&ev, EV_KEY, BTN_TOOL_QUINTTAP, 0);
+ have_quinttap = true;
+ }
+
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_TRIPLETAP))
+ ck_abort();
+
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_DOUBLETAP)) {
+ ck_assert(!have_doubletap);
+ assert_event(&ev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
+ have_doubletap = true;
+ }
+
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_TRIPLETAP));
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_QUADTAP));
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_FINGER));
+
+ if (libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT)) {
+ ck_assert(have_doubletap);
+ ck_assert(have_quinttap);
+ break;
+ }
+ }
+
+ have_doubletap = false;
+ have_quadtap = false;
+
+ /* In the second sync frame, we expect to go back to 4 touches,
+ * recovering the two stopped+started touches */
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev)) != -EAGAIN) {
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_QUADTAP)) {
+ ck_assert(!have_quadtap);
+ assert_event(&ev, EV_KEY, BTN_TOOL_QUADTAP, 1);
+ have_quadtap = true;
+ }
+
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_TRIPLETAP))
+ ck_abort();
+
+ if (libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_DOUBLETAP)) {
+ ck_assert(!have_doubletap);
+ assert_event(&ev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
+ have_doubletap = true;
+ }
+
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_TRIPLETAP));
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_QUINTTAP));
+ ck_assert(!libevdev_event_is_code(&ev, EV_KEY, BTN_TOOL_FINGER));
+
+ if (libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT)) {
+ ck_assert(have_doubletap);
+ ck_assert(have_quadtap);
+ break;
+ }
+ }
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_late_sync)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 0xff},
+ };
+ int i, slot;
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ /* emulate a touch down, make sure libevdev sees it */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+ } while (rc >= 0);
+
+ /* force enough events to trigger a SYN_DROPPED */
+ for (i = 0; i < 100; i++) {
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ }
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ /* trigger the tracking ID change after getting the SYN_DROPPED */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, -1,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 600,
+ EV_ABS, ABS_MT_POSITION_X, 200,
+ EV_ABS, ABS_MT_POSITION_Y, 600,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ slot = 0;
+
+ /* Now sync the device, expect the data to be equal to the last event*/
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev)) != -EAGAIN) {
+ if (ev.type == EV_SYN)
+ continue;
+
+ ck_assert_int_eq(ev.type, EV_ABS);
+ switch(ev.code) {
+ case ABS_MT_SLOT:
+ slot = ev.value;
+ break;
+ case ABS_MT_TRACKING_ID:
+ if (slot == 0)
+ ck_assert_int_eq(ev.value, -1);
+ break;
+ case ABS_X:
+ case ABS_MT_POSITION_X:
+ ck_assert_int_eq(ev.value, 200);
+ break;
+ case ABS_Y:
+ case ABS_MT_POSITION_Y:
+ ck_assert_int_eq(ev.value, 600);
+ break;
+ }
+ }
+
+ /* And a new tracking ID */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_ABS, ABS_X, 201,
+ EV_ABS, ABS_Y, 601,
+ EV_ABS, ABS_MT_POSITION_X, 201,
+ EV_ABS, ABS_MT_POSITION_Y, 601,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) != -EAGAIN) {
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ if (ev.type == EV_SYN)
+ continue;
+
+ ck_assert_int_eq(ev.type, EV_ABS);
+
+ switch(ev.code) {
+ case ABS_MT_SLOT:
+ ck_assert_int_eq(ev.value, 0);
+ break;
+ case ABS_MT_TRACKING_ID:
+ ck_assert_int_eq(ev.value, 2);
+ break;
+ case ABS_X:
+ case ABS_MT_POSITION_X:
+ ck_assert_int_eq(ev.value, 201);
+ break;
+ case ABS_Y:
+ case ABS_MT_POSITION_Y:
+ ck_assert_int_eq(ev.value, 601);
+ break;
+ }
+ }
+
+ /* Now we basically re-do the exact same test, just with the
+ tracking ID order inverted */
+
+ /* drop the tracking ID, make sure libevdev sees it */
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, -1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+ } while (rc >= 0);
+
+ /* force enough events to trigger a SYN_DROPPED */
+ for (i = 0; i < 100; i++) {
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+ }
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ /* trigger the new tracking ID after getting the SYN_DROPPED */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 5,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 600,
+ EV_ABS, ABS_MT_POSITION_X, 200,
+ EV_ABS, ABS_MT_POSITION_Y, 600,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ slot = 0;
+
+ /* Now sync the device, expect the data to be equal to the last event*/
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev)) != -EAGAIN) {
+ if (ev.type == EV_SYN)
+ continue;
+
+ ck_assert_int_eq(ev.type, EV_ABS);
+ switch(ev.code) {
+ case ABS_MT_SLOT:
+ slot = ev.value;
+ break;
+ case ABS_MT_TRACKING_ID:
+ if (slot == 0)
+ ck_assert_int_eq(ev.value, 5);
+ break;
+ case ABS_X:
+ case ABS_MT_POSITION_X:
+ ck_assert_int_eq(ev.value, 200);
+ break;
+ case ABS_Y:
+ case ABS_MT_POSITION_Y:
+ ck_assert_int_eq(ev.value, 600);
+ break;
+ }
+ }
+
+ /* Drop the tracking ID */
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, -1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) != -EAGAIN) {
+ ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ if (ev.type == EV_SYN)
+ continue;
+
+ ck_assert_int_eq(ev.type, EV_ABS);
+
+ switch(ev.code) {
+ case ABS_MT_SLOT:
+ ck_assert_int_eq(ev.value, 0);
+ break;
+ case ABS_MT_TRACKING_ID:
+ ck_assert_int_eq(ev.value, -1);
+ break;
+ }
+ }
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_syn_delta_fake_mt)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_SLOT - 1, .minimum = 0, .maximum = 2 }};
+ /* don't set ABS_MT_SLOT here, otherwise uinput will init
+ * slots and the behavior is different to real devices with
+ * such events */
+ unsigned long received[NLONGS(ABS_CNT)] = {0};
+
+ test_create_abs_device(&uidev, &dev, ARRAY_LENGTH(abs), abs, -1);
+ /* first set of events */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 400,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_SLOT - 1, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ /* second set of events */
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 201,
+ EV_ABS, ABS_Y, 401,
+ EV_ABS, ABS_MT_POSITION_X, 101,
+ EV_ABS, ABS_MT_POSITION_Y, 501,
+ EV_ABS, ABS_MT_SLOT - 1, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_STATUS_SYNC, &ev)) != -EAGAIN) {
+ if (ev.type != EV_ABS)
+ continue;
+
+ ck_assert(!bit_is_set(received, ev.code));
+
+ switch(ev.code) {
+ /* see comment below for ABS_MT_POSITION_X
+ * and ABS_MT_POSITION_Y */
+ case ABS_MT_POSITION_X:
+ case ABS_MT_POSITION_Y:
+ ck_abort();
+ break;
+
+ case ABS_MT_SLOT - 1: ck_assert_int_eq(ev.value, 2); break;
+ case ABS_X: ck_assert_int_eq(ev.value, 201); break;
+ case ABS_Y: ck_assert_int_eq(ev.value, 401); break;
+ default:
+ ck_abort();
+ }
+
+ set_bit(received, ev.code);
+ }
+
+ /* Dont' expect ABS_MT values, they are ignored during the sync
+ * process */
+ ck_assert(!bit_is_set(received, ABS_MT_POSITION_X));
+ ck_assert(!bit_is_set(received, ABS_MT_POSITION_Y));
+ ck_assert(bit_is_set(received, ABS_MT_SLOT - 1));
+ ck_assert(bit_is_set(received, ABS_X));
+ ck_assert(bit_is_set(received, ABS_Y));
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 201);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 401);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_MT_SLOT - 1), 2);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_skipped_sync)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 100);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 500);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_incomplete_sync)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+ assert_event(&ev, EV_KEY, BTN_LEFT, 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 100);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 500);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_empty_sync)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_event_values)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+ int value;
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ uinput_device_event(uidev, EV_KEY, BTN_LEFT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ /* must still be on old values */
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_X), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_Y), 0);
+
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_KEY, BTN_LEFT, &value), 1);
+ ck_assert_int_eq(value, 0);
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ } while (rc == 0);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 100);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 500);
+
+ /* always 0 */
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_X), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_Y), 0);
+
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_KEY, BTN_LEFT, &value), 1);
+ ck_assert_int_eq(value, 1);
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_ABS, ABS_X, &value), 1);
+ ck_assert_int_eq(value, 100);
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_ABS, ABS_Y, &value), 1);
+ ck_assert_int_eq(value, 500);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+
+}
+END_TEST
+
+START_TEST(test_event_values_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+ int value;
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_SYN, SYN_DROPPED,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_EXTRA), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Z), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_Z), 0);
+
+ value = 0xab;
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_KEY, BTN_EXTRA, &value), 0);
+ ck_assert_int_eq(value, 0xab);
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_ABS, ABS_Z, &value), 0);
+ ck_assert_int_eq(value, 0xab);
+ ck_assert_int_eq(libevdev_fetch_event_value(dev, EV_REL, REL_Z, &value), 0);
+ ck_assert_int_eq(value, 0xab);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+
+}
+END_TEST
+
+START_TEST(test_mt_event_values)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
+ int value;
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_X, 1,
+ EV_ABS, ABS_Y, 5,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
+
+ /* must still be on old values */
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_X), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_Y), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_X), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_Y), 0);
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ } while (rc == LIBEVDEV_READ_STATUS_SUCCESS);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_X), 100);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_Y), 500);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_X), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_Y), 5);
+
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 0, ABS_MT_POSITION_X, &value), 1);
+ ck_assert_int_eq(value, 100);
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 0, ABS_MT_POSITION_Y, &value), 1);
+ ck_assert_int_eq(value, 500);
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 1, ABS_MT_POSITION_X, &value), 1);
+ ck_assert_int_eq(value, 1);
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 1, ABS_MT_POSITION_Y, &value), 1);
+ ck_assert_int_eq(value, 5);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+
+}
+END_TEST
+
+START_TEST(test_mt_event_values_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
+ int value;
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_TOUCH_MINOR), 0);
+ value = 0xab;
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 0, ABS_MT_TOUCH_MINOR, &value), 0);
+ ck_assert_int_eq(value, 0xab);
+
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 10, ABS_MT_POSITION_X), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_X), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_mt_slot_ranges_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_event ev[2];
+ int rc;
+ int num_slots = 2;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = num_slots - 1 },
+ };
+ int pipefd[2];
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ rc = pipe2(pipefd, O_NONBLOCK);
+ ck_assert_int_eq(rc, 0);
+ libevdev_change_fd(dev, pipefd[0]);
+
+ memset(ev, 0, sizeof(ev));
+ ev[0].type = EV_ABS;
+ ev[0].code = ABS_MT_SLOT;
+ ev[0].value = num_slots;
+ ev[1].type = EV_SYN;
+ ev[1].code = SYN_REPORT;
+ ev[1].value = 0;
+ rc = write(pipefd[1], ev, sizeof(ev));
+ ck_assert_int_eq(rc, sizeof(ev));
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, ev);
+ ck_assert(libevdev_event_is_code(ev, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(ev[0].value, num_slots - 1);
+
+ /* drain the EV_SYN */
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, ev);
+
+ ev[0].type = EV_ABS;
+ ev[0].code = ABS_MT_SLOT;
+ ev[0].value = -1;
+ ev[1].type = EV_SYN;
+ ev[1].code = SYN_REPORT;
+ ev[1].value = 0;
+ rc = write(pipefd[1], ev, sizeof(ev));
+ ck_assert_int_eq(rc, sizeof(ev));
+
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, ev);
+ ck_assert(libevdev_event_is_code(ev, EV_ABS, ABS_MT_SLOT));
+ ck_assert_int_eq(ev[0].value, num_slots - 1);
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), num_slots - 1);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_SLOT, num_slots), -1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_SLOT, -1), -1);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_mt_tracking_id_discard)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 10 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 500 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ /* second tracking ID on same slot */
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_ABS, ABS_MT_SLOT, 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_ABS, ABS_MT_TRACKING_ID, 1);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ /* expect tracking ID discarded */
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_mt_tracking_id_discard_neg_1)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+ struct input_event ev;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 10 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 500 },
+ };
+ int pipefd[2];
+ struct input_event events[] = {
+ { .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = -1 },
+ { .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
+ };
+
+ rc = pipe2(pipefd, O_NONBLOCK);
+ ck_assert_int_eq(rc, 0);
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ while (libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev) != -EAGAIN)
+ ;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ /* two -1 tracking ids, need to use the pipe here, the kernel will
+ filter it otherwise */
+ libevdev_change_fd(dev, pipefd[0]);
+
+ rc = write(pipefd[1], events, sizeof(events));
+ ck_assert_int_eq(rc, sizeof(events));
+ rc = write(pipefd[1], events, sizeof(events));
+ ck_assert_int_eq(rc, sizeof(events));
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_ABS, ABS_MT_TRACKING_ID, -1);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ /* expect second tracking ID discarded */
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ assert_event(&ev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_ev_rep_values)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int delay = 500, period = 200;
+ test_create_device(&uidev, &dev,
+ EV_KEY, BTN_LEFT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ libevdev_enable_event_code(dev, EV_REP, REP_DELAY, &delay);
+ libevdev_enable_event_code(dev, EV_REP, REP_PERIOD, &period);
+
+ ck_assert_int_eq(libevdev_has_event_type(dev, EV_REP), 1);
+ ck_assert_int_eq(libevdev_has_event_code(dev, EV_REP, REP_DELAY), 1);
+ ck_assert_int_eq(libevdev_has_event_code(dev, EV_REP, REP_PERIOD), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REP, REP_DELAY), 500);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REP, REP_PERIOD), 200);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_event_value_setters)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ EV_LED, LED_NUML,
+ EV_LED, LED_CAPSL,
+ EV_SW, SW_HEADPHONE_INSERT,
+ EV_SW, SW_TABLET_MODE,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_X), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_REL, REL_Y), 0);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_KEY, BTN_LEFT, 1), 0);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_KEY, BTN_RIGHT, 1), 0);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_LEFT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_KEY, BTN_RIGHT), 1);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_X, 10), 0);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_Y, 20), 0);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_X), 10);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_Y), 20);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_LED, LED_NUML, 1), 0);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_LED, LED_CAPSL, 1), 0);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_LED, LED_NUML), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_LED, LED_CAPSL), 1);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_SW, SW_HEADPHONE_INSERT, 1), 0);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_SW, SW_TABLET_MODE, 1), 0);
+
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_SW, SW_HEADPHONE_INSERT), 1);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_SW, SW_TABLET_MODE), 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+
+}
+END_TEST
+
+START_TEST(test_event_value_setters_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_REL, REL_X, 1), -1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_SW, SW_DOCK, 1), -1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_Z, 1), -1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_MAX + 1, 0, 1), -1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_SYN, SYN_REPORT, 0), -1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+
+}
+END_TEST
+
+START_TEST(test_event_mt_value_setters)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_MT_POSITION_X, 1), 0);
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_MT_POSITION_Y, 2), 0);
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 0, ABS_MT_POSITION_X, 3), 0);
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 0, ABS_MT_POSITION_Y, 4), 0);
+
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_X), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_Y), 2);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_X), 3);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_Y), 4);
+
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_MT_SLOT, 1), 0);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_SLOT), 1);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_event_mt_value_setters_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ /* invalid axis */
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_Z, 1), -1);
+ /* valid, but non-mt axis */
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_X, 1), -1);
+ /* invalid mt axis */
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 1, ABS_MT_PRESSURE, 1), -1);
+ /* invalid slot no */
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 4, ABS_X, 1), -1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_event_mt_value_setters_current_slot)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ ARRAY_LENGTH(abs), abs,
+ EV_SYN, SYN_REPORT,
+ -1);
+
+ /* set_event_value/get_event_value works on the current slot */
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_POSITION_X, 1), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_MT_POSITION_X), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_X), 1);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_SLOT, 1), 0);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_POSITION_X, 2), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_MT_POSITION_X), 2);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_X), 2);
+
+ /* set slot 0, but current is still slot 1 */
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 0, ABS_MT_POSITION_X, 3), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_MT_POSITION_X), 2);
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_SLOT, 0), 0);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+ ck_assert_int_eq(libevdev_get_event_value(dev, EV_ABS, ABS_MT_POSITION_X), 3);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+TEST_SUITE_ROOT_PRIVILEGES(libevdev_events)
+{
+ Suite *s = suite_create("libevdev event tests");
+
+ add_test(s, test_next_event);
+ add_test(s, test_next_event_invalid_fd);
+ add_test(s, test_next_event_blocking);
+ add_test(s, test_syn_dropped_event);
+ add_test(s, test_event_type_filtered);
+ add_test(s, test_event_code_filtered);
+ add_test(s, test_has_event_pending);
+ add_test(s, test_has_event_pending_invalid_fd);
+
+ add_test(s, test_syn_delta_button);
+ add_test(s, test_syn_delta_abs);
+ add_test(s, test_syn_delta_mt);
+ add_test(s, test_syn_delta_mt_reset_slot);
+ add_test(s, test_syn_delta_led);
+ add_test(s, test_syn_delta_sw);
+ add_test(s, test_syn_delta_fake_mt);
+ add_test(s, test_syn_delta_late_sync);
+ add_test(s, test_syn_delta_tracking_ids);
+ add_test(s, test_syn_delta_tracking_ids_btntool);
+
+ add_test(s, test_skipped_sync);
+ add_test(s, test_incomplete_sync);
+ add_test(s, test_empty_sync);
+
+ add_test(s, test_event_values);
+ add_test(s, test_event_values_invalid);
+ add_test(s, test_mt_event_values);
+ add_test(s, test_mt_event_values_invalid);
+ add_test(s, test_mt_slot_ranges_invalid);
+ add_test(s, test_mt_tracking_id_discard);
+ add_test(s, test_mt_tracking_id_discard_neg_1);
+ add_test(s, test_ev_rep_values);
+
+ add_test(s, test_event_value_setters);
+ add_test(s, test_event_value_setters_invalid);
+ add_test(s, test_event_mt_value_setters);
+ add_test(s, test_event_mt_value_setters_invalid);
+ add_test(s, test_event_mt_value_setters_current_slot);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-libevdev-has-event.c third-party-new/test/test-libevdev-has-event.c
--- third-party-libevdev-bak/test/test-libevdev-has-event.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-libevdev-has-event.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,1194 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <linux/input.h>
+#include <errno.h>
+#include <unistd.h>
+#include <limits.h>
+#include <fcntl.h>
+
+#include "test-common.h"
+
+static int evbits[] = {
+ EV_SYN, EV_KEY, EV_REL, EV_ABS, EV_MSC,
+ EV_SW, EV_LED, EV_SND, EV_FF,
+ /* Intentionally skipping these, they're different
+ * EV_PWR, EV_FF_STATUS, EV_REP, */
+ -1,
+};
+
+START_TEST(test_has_ev_bit)
+{
+ int *evbit = evbits;
+
+ while(*evbit != -1) {
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int i;
+
+ if (*evbit == EV_ABS) {
+ struct input_absinfo abs = { ABS_X, 0, 2, 0, 0, 0};
+ test_create_abs_device(&uidev, &dev,
+ 1, &abs,
+ -1);
+ } else
+ test_create_device(&uidev, &dev,
+ *evbit, 0,
+ -1);
+
+ ck_assert_msg(libevdev_has_event_type(dev, EV_SYN), "for event type %d\n", *evbit);
+ ck_assert_msg(libevdev_has_event_type(dev, *evbit), "for event type %d\n", *evbit);
+
+ for (i = 0; i <= EV_MAX; i++) {
+ if (i == EV_SYN || i == *evbit)
+ continue;
+
+ ck_assert_msg(!libevdev_has_event_type(dev, i), "for event type %d\n", i);
+ }
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+ evbit++;
+ }
+}
+END_TEST
+
+START_TEST(test_ev_bit_limits)
+{
+ int *evbit = evbits;
+
+ while(*evbit != -1) {
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+
+ if (*evbit == EV_ABS) {
+ struct input_absinfo abs = { ABS_X, 0, 2, 0, 0, 0};
+ test_create_abs_device(&uidev, &dev,
+ 1, &abs,
+ -1);
+ } else
+ test_create_device(&uidev, &dev,
+ *evbit, 0,
+ -1);
+
+ ck_assert_int_eq(libevdev_has_event_type(dev, EV_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_has_event_type(dev, INT_MAX), 0);
+ ck_assert_int_eq(libevdev_has_event_type(dev, UINT_MAX), 0);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+ evbit++;
+ }
+}
+END_TEST
+
+START_TEST(test_event_codes)
+{
+ int *evbit = evbits;
+
+ while(*evbit != -1) {
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int code, max;
+ if (*evbit == EV_SYN) {
+ evbit++;
+ continue;
+ }
+
+#ifdef __FreeBSD__
+ /* Force feedback events are not supported by FreeBSD */
+ if (*evbit == EV_FF) {
+ evbit++;
+ continue;
+ }
+#endif
+
+ max = libevdev_event_type_get_max(*evbit);
+
+ for (code = 1; code < max; code += 10) {
+ if (*evbit == EV_ABS) {
+ struct input_absinfo abs = { code, 0, 2, 0, 0, 0};
+ test_create_abs_device(&uidev, &dev,
+ 1, &abs,
+ -1);
+ } else
+ test_create_device(&uidev, &dev,
+ *evbit, code,
+ -1);
+
+ ck_assert_msg(libevdev_has_event_type(dev, *evbit), "for event type %d\n", *evbit);
+ ck_assert_msg(libevdev_has_event_code(dev, *evbit, code), "for type %d code %d", *evbit, code);
+ ck_assert_msg(libevdev_has_event_code(dev, EV_SYN, SYN_REPORT), "for EV_SYN");
+ /* always false */
+ ck_assert_msg(!libevdev_has_event_code(dev, EV_PWR, 0), "for EV_PWR");
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+ }
+
+ evbit++;
+ }
+}
+END_TEST
+
+START_TEST(test_event_code_limits)
+{
+ int *evbit = evbits;
+
+ while(*evbit != -1) {
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int max;
+
+ if (*evbit == EV_SYN) {
+ evbit++;
+ continue;
+ }
+
+ max = libevdev_event_type_get_max(*evbit);
+ ck_assert(max != -1);
+
+ if (*evbit == EV_ABS) {
+ struct input_absinfo abs = { ABS_X, 0, 2, 0, 0, 0};
+ test_create_abs_device(&uidev, &dev,
+ 1, &abs,
+ -1);
+ } else
+ test_create_device(&uidev, &dev,
+ *evbit, 1,
+ -1);
+
+ ck_assert_msg(!libevdev_has_event_code(dev, *evbit, max), "for type %d code %d", *evbit, max);
+ ck_assert_msg(!libevdev_has_event_code(dev, *evbit, INT_MAX), "for type %d code %d", *evbit, INT_MAX);
+ ck_assert_msg(!libevdev_has_event_code(dev, *evbit, UINT_MAX), "for type %d code %d", *evbit, UINT_MAX);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+
+ evbit++;
+ }
+}
+END_TEST
+
+START_TEST(test_ev_rep)
+{
+ struct libevdev *dev;
+ struct uinput_device* uidev;
+ int rc;
+ int rep, delay;
+ const int KERNEL_DEFAULT_REP = 250;
+ const int KERNEL_DEFAULT_DELAY = 33;
+
+ /* EV_REP is special, it's always fully set if set at all,
+ can't test this through uinput though */
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ ck_assert(uidev != NULL);
+ rc = uinput_device_set_bit(uidev, EV_REP);
+ ck_assert_int_eq(rc, 0);
+
+ rc = uinput_device_create(uidev);
+ ck_assert_int_eq(rc, 0);
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(libevdev_has_event_type(dev, EV_REP), 1);
+ ck_assert_int_eq(libevdev_has_event_code(dev, EV_REP, REP_DELAY), 1);
+ ck_assert_int_eq(libevdev_has_event_code(dev, EV_REP, REP_PERIOD), 1);
+
+ ck_assert_int_eq(libevdev_get_repeat(dev, &rep, &delay), 0);
+ /* default values as set by the kernel,
+ see drivers/input/input.c:input_register_device() */
+ ck_assert_int_eq(rep, KERNEL_DEFAULT_REP);
+ ck_assert_int_eq(delay, KERNEL_DEFAULT_DELAY);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_ev_rep_values)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int delay = 0xab, period = 0xbc;
+
+ /* EV_REP is special, it's always fully set if set at all, can't set
+ it through uinput though. */
+ test_create_device(&uidev, &dev, -1);
+
+ ck_assert_int_eq(libevdev_get_repeat(dev, NULL, NULL), -1);
+ ck_assert_int_eq(libevdev_get_repeat(dev, &delay, NULL), -1);
+ ck_assert_int_eq(libevdev_get_repeat(dev, NULL, &period), -1);
+ ck_assert_int_eq(libevdev_get_repeat(dev, &delay, &period), -1);
+
+ ck_assert_int_eq(delay, 0xab);
+ ck_assert_int_eq(period, 0xbc);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_input_props)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc, i;
+ struct input_absinfo abs = { .value = 0, .minimum = 0, .maximum = 2};
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ rc = uinput_device_set_abs_bit(uidev, ABS_X, &abs);
+ ck_assert_int_eq(rc, 0);
+ uinput_device_set_prop(uidev, INPUT_PROP_DIRECT);
+ uinput_device_set_prop(uidev, INPUT_PROP_BUTTONPAD);
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_msg(rc == 0, "Failed to create device: %s", strerror(-rc));
+
+ for (i = 0; i < INPUT_PROP_CNT; i++) {
+ if (i == INPUT_PROP_DIRECT || i == INPUT_PROP_BUTTONPAD)
+ ck_assert_int_eq(libevdev_has_property(dev, i), 1);
+ else
+ ck_assert_int_eq(libevdev_has_property(dev, i), 0);
+ }
+
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_MAX), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_set_input_props)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc, fd;
+ struct input_absinfo abs = { .value = 0, .minimum = 0, .maximum = 2};
+
+ dev = libevdev_new();
+ ck_assert_int_eq(libevdev_enable_property(dev, INPUT_PROP_MAX + 1), -1);
+ ck_assert_int_eq(libevdev_enable_property(dev, INPUT_PROP_DIRECT), 0);
+ ck_assert_int_eq(libevdev_enable_property(dev, INPUT_PROP_BUTTONPAD), 0);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_DIRECT), 1);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_BUTTONPAD), 1);
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ rc = uinput_device_set_abs_bit(uidev, ABS_X, &abs);
+ ck_assert_int_eq(rc, 0);
+ uinput_device_set_prop(uidev, INPUT_PROP_BUTTONPAD);
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ fd = uinput_device_get_fd(uidev);
+ rc = libevdev_set_fd(dev, fd);
+ ck_assert_msg(rc == 0, "Failed to create device: %s", strerror(-rc));
+
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_DIRECT), 0);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_BUTTONPAD), 1);
+
+ /* Test disabling the properties too */
+ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_MAX + 1), -1);
+ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_DIRECT), 0);
+ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_BUTTONPAD), 0);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_DIRECT), 0);
+ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_BUTTONPAD), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_slot_init_value)
+{
+ struct uinput_device *uidev;
+ struct libevdev *dev;
+ int rc;
+ const int nabs = 6;
+ int i;
+ int fd;
+ struct input_absinfo abs[] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .minimum = 0, .maximum = 1000 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 2 },
+ { .value = ABS_MT_SLOT, .minimum = 0, .maximum = 1 }
+ };
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+
+ for (i = 0; i < nabs; i++) {
+ rc = uinput_device_set_abs_bit(uidev, abs[i].value, &abs[i]);
+ ck_assert_int_eq(rc, 0);
+ }
+
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ fd = uinput_device_get_fd(uidev);
+ rc = fcntl(fd, F_SETFL, O_NONBLOCK);
+ ck_assert_msg(rc == 0, "fcntl failed: %s", strerror(errno));
+
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
+ uinput_device_event(uidev, EV_ABS, ABS_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_X, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_Y, 5);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 1);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 5);
+ uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_X), 100);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 0, ABS_MT_POSITION_Y), 500);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_X), 1);
+ ck_assert_int_eq(libevdev_get_slot_value(dev, 1, ABS_MT_POSITION_Y), 5);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_no_slots)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_Y, .minimum = 0, .maximum = 2 }
+ };
+
+ test_create_abs_device(&uidev, &dev, 4, abs,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_num_slots(dev), -1);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), -1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_slot_number)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ const int nslots = 4;
+ struct input_absinfo abs[] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_Y, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_SLOT, .minimum = 0, .maximum = nslots - 1 }
+ };
+
+ test_create_abs_device(&uidev, &dev, 5, abs,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_num_slots(dev), nslots);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_invalid_mt_device)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ const int nslots = 4;
+ int value;
+ struct input_absinfo abs[] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_X, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_POSITION_Y, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_SLOT - 1, .minimum = 0, .maximum = 2 },
+ { .value = ABS_MT_SLOT, .minimum = 0, .maximum = nslots - 1 }
+ };
+
+ test_create_abs_device(&uidev, &dev, 6, abs,
+ -1);
+
+ ck_assert_int_eq(libevdev_get_num_slots(dev), -1);
+ ck_assert_int_eq(libevdev_get_current_slot(dev), -1);
+ ck_assert_int_eq(libevdev_set_slot_value(dev, 0, ABS_MT_POSITION_X, 0), -1);
+ ck_assert_int_eq(libevdev_fetch_slot_value(dev, 0, ABS_MT_POSITION_X, &value), 0);
+
+ ck_assert(libevdev_has_event_code(dev, EV_ABS, ABS_MT_SLOT - 1));
+ ck_assert(libevdev_has_event_code(dev, EV_ABS, ABS_MT_SLOT));
+
+ ck_assert_int_eq(libevdev_set_event_value(dev, EV_ABS, ABS_MT_SLOT, 1), 0);
+ ck_assert(libevdev_get_event_value(dev, EV_ABS, ABS_MT_SLOT) == 1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_name)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_id ids = {1, 2, 3, 4};
+ const char *str;
+ int rc;
+
+ dev = libevdev_new();
+
+ str = libevdev_get_name(dev);
+ ck_assert(str != NULL);
+ ck_assert_int_eq(strlen(str), 0);
+
+ rc = uinput_device_new_with_events(&uidev, TEST_DEVICE_NAME, &ids,
+ EV_REL, REL_X,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+ rc = libevdev_set_fd(dev, uinput_device_get_fd(uidev));
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ str = libevdev_get_name(dev);
+ ck_assert_int_eq(strcmp(str, TEST_DEVICE_NAME), 0);
+
+ str = libevdev_get_phys(dev);
+ ck_assert(str == NULL);
+
+ str = libevdev_get_uniq(dev);
+ ck_assert(str == NULL);
+
+ ck_assert_int_eq(libevdev_get_id_bustype(dev), ids.bustype);
+ ck_assert_int_eq(libevdev_get_id_vendor(dev), ids.vendor);
+ ck_assert_int_eq(libevdev_get_id_product(dev), ids.product);
+ ck_assert_int_eq(libevdev_get_id_version(dev), ids.version);
+ ck_assert_int_eq(libevdev_get_driver_version(dev), EV_VERSION);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_set_name)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_id ids = {1, 2, 3, 4};
+ const char *str;
+ int rc;
+
+ dev = libevdev_new();
+
+ libevdev_set_name(dev, "the name");
+ libevdev_set_phys(dev, "the phys");
+ libevdev_set_uniq(dev, "the uniq");
+
+ str = libevdev_get_name(dev);
+ ck_assert(str != NULL);
+ ck_assert_int_eq(strcmp(str, "the name"), 0);
+
+ str = libevdev_get_phys(dev);
+ ck_assert(str != NULL);
+ ck_assert_int_eq(strcmp(str, "the phys"), 0);
+
+ str = libevdev_get_uniq(dev);
+ ck_assert(str != NULL);
+ ck_assert_int_eq(strcmp(str, "the uniq"), 0);
+
+ rc = uinput_device_new_with_events(&uidev, TEST_DEVICE_NAME, &ids,
+ EV_REL, REL_X,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+ rc = libevdev_set_fd(dev, uinput_device_get_fd(uidev));
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ str = libevdev_get_name(dev);
+ ck_assert_int_eq(strcmp(str, TEST_DEVICE_NAME), 0);
+
+ str = libevdev_get_phys(dev);
+ ck_assert(str == NULL);
+
+ str = libevdev_get_uniq(dev);
+ ck_assert(str == NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_set_ids)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_id ids = {1, 2, 3, 4};
+ int rc;
+
+ dev = libevdev_new();
+
+ libevdev_set_id_product(dev, 10);
+ libevdev_set_id_vendor(dev, 20);
+ libevdev_set_id_bustype(dev, 30);
+ libevdev_set_id_version(dev, 40);
+
+ ck_assert_int_eq(libevdev_get_id_product(dev), 10);
+ ck_assert_int_eq(libevdev_get_id_vendor(dev), 20);
+ ck_assert_int_eq(libevdev_get_id_bustype(dev), 30);
+ ck_assert_int_eq(libevdev_get_id_version(dev), 40);
+
+ rc = uinput_device_new_with_events(&uidev, TEST_DEVICE_NAME, &ids,
+ EV_REL, REL_X,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+ rc = libevdev_set_fd(dev, uinput_device_get_fd(uidev));
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ ck_assert_int_eq(libevdev_get_id_bustype(dev), ids.bustype);
+ ck_assert_int_eq(libevdev_get_id_vendor(dev), ids.vendor);
+ ck_assert_int_eq(libevdev_get_id_product(dev), ids.product);
+ ck_assert_int_eq(libevdev_get_id_version(dev), ids.version);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_get_abs_info)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs;
+ const struct input_absinfo *a;
+ int rc;
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ ck_assert(uidev != NULL);
+
+ abs.minimum = 0;
+ abs.maximum = 1000;
+ abs.fuzz = 1;
+ abs.flat = 2;
+ abs.resolution = 3;
+ abs.value = 0;
+
+ uinput_device_set_abs_bit(uidev, ABS_X, &abs);
+ uinput_device_set_abs_bit(uidev, ABS_MT_POSITION_X, &abs);
+
+ abs.minimum = -500;
+ abs.maximum = 500;
+ abs.fuzz = 10;
+ abs.flat = 20;
+ abs.resolution = 30;
+ abs.value = 0;
+
+ uinput_device_set_abs_bit(uidev, ABS_Y, &abs);
+ uinput_device_set_abs_bit(uidev, ABS_MT_POSITION_Y, &abs);
+
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create device: %s", strerror(-rc));
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_MAX + 1), 0);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_MAX + 1), 0);
+ ck_assert(!libevdev_get_abs_info(dev, ABS_MAX + 1));
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_X), 0);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_X), 1000);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_X), 1);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_X), 2);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_X), 3);
+ a = libevdev_get_abs_info(dev, ABS_X);
+ ck_assert(a != NULL);
+ ck_assert_int_eq(a->minimum, 0);
+ ck_assert_int_eq(a->maximum, 1000);
+ ck_assert_int_eq(a->fuzz, 1);
+ ck_assert_int_eq(a->flat, 2);
+ ck_assert_int_eq(a->resolution, 3);
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_MT_POSITION_X), 0);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_MT_POSITION_X), 1000);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_MT_POSITION_X), 1);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_MT_POSITION_X), 2);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_MT_POSITION_X), 3);
+ a = libevdev_get_abs_info(dev, ABS_MT_POSITION_X);
+ ck_assert(a != NULL);
+ ck_assert_int_eq(a->minimum, 0);
+ ck_assert_int_eq(a->maximum, 1000);
+ ck_assert_int_eq(a->fuzz, 1);
+ ck_assert_int_eq(a->flat, 2);
+ ck_assert_int_eq(a->resolution, 3);
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_Y), -500);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_Y), 500);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_Y), 10);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_Y), 20);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_Y), 30);
+ a = libevdev_get_abs_info(dev, ABS_Y);
+ ck_assert(a != NULL);
+ ck_assert_int_eq(a->minimum, -500);
+ ck_assert_int_eq(a->maximum, 500);
+ ck_assert_int_eq(a->fuzz, 10);
+ ck_assert_int_eq(a->flat, 20);
+ ck_assert_int_eq(a->resolution, 30);
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_MT_POSITION_Y), -500);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_MT_POSITION_Y), 500);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_MT_POSITION_Y), 10);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_MT_POSITION_Y), 20);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_MT_POSITION_Y), 30);
+ a = libevdev_get_abs_info(dev, ABS_MT_POSITION_Y);
+ ck_assert(a != NULL);
+ ck_assert_int_eq(a->minimum, -500);
+ ck_assert_int_eq(a->maximum, 500);
+ ck_assert_int_eq(a->fuzz, 10);
+ ck_assert_int_eq(a->flat, 20);
+ ck_assert_int_eq(a->resolution, 30);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_set_abs)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[2];
+ struct input_absinfo a;
+
+ memset(abs, 0, sizeof(abs));
+ abs[0].value = ABS_X;
+ abs[0].maximum = 1000;
+
+ abs[1].value = ABS_Y;
+ abs[1].maximum = 1000;
+
+ test_create_abs_device(&uidev, &dev,
+ 2, abs,
+ EV_SYN,
+ -1);
+
+ libevdev_set_abs_minimum(dev, ABS_X, 1);
+ libevdev_set_abs_minimum(dev, ABS_Y, 5);
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_X), 1);
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_Y), 5);
+
+ libevdev_set_abs_maximum(dev, ABS_X, 3000);
+ libevdev_set_abs_maximum(dev, ABS_Y, 5000);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_X), 3000);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_Y), 5000);
+
+ libevdev_set_abs_fuzz(dev, ABS_X, 3);
+ libevdev_set_abs_fuzz(dev, ABS_Y, 5);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_X), 3);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_Y), 5);
+
+ libevdev_set_abs_flat(dev, ABS_X, 8);
+ libevdev_set_abs_flat(dev, ABS_Y, 15);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_X), 8);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_Y), 15);
+
+ libevdev_set_abs_resolution(dev, ABS_X, 80);
+ libevdev_set_abs_resolution(dev, ABS_Y, 150);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_X), 80);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_Y), 150);
+
+ a.value = 0;
+ a.minimum = 10;
+ a.maximum = 100;
+ a.fuzz = 13;
+ a.flat = 1;
+ a.resolution = 16;
+
+ libevdev_set_abs_info(dev, ABS_X, &a);
+ ck_assert_int_eq(memcmp(&a, libevdev_get_abs_info(dev, ABS_X), sizeof(a)), 0);
+
+ libevdev_set_abs_minimum(dev, ABS_Z, 10);
+ ck_assert_int_eq(libevdev_has_event_code(dev, EV_ABS, ABS_Z), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_enable_bit)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2;
+ struct input_absinfo abs = { .value = ABS_X, .minimum = 0, .maximum = 2 };
+ int rc;
+
+ test_create_abs_device(&uidev, &dev, 1, &abs,
+ -1);
+
+ ck_assert(!libevdev_has_event_code(dev, EV_ABS, ABS_Y));
+ ck_assert(!libevdev_has_event_type(dev, EV_REL));
+ ck_assert(!libevdev_has_event_code(dev, EV_REL, REL_X));
+
+ abs.minimum = 0;
+ abs.maximum = 100;
+ abs.fuzz = 1;
+ abs.flat = 2;
+ abs.resolution = 3;
+
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_ABS, ABS_Y, &abs), 0);
+ ck_assert(libevdev_has_event_code(dev, EV_ABS, ABS_Y));
+
+ ck_assert_int_eq(libevdev_enable_event_type(dev, EV_REL), 0);
+ ck_assert(libevdev_has_event_type(dev, EV_REL));
+ ck_assert(!libevdev_has_event_code(dev, EV_REL, REL_X));
+
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_REL, REL_X, NULL), 0);
+ ck_assert(libevdev_has_event_code(dev, EV_REL, REL_X));
+
+ /* make sure kernel device is unchanged */
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev2);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));
+ ck_assert(libevdev_has_event_code(dev2, EV_ABS, ABS_X));
+ ck_assert(!libevdev_has_event_code(dev2, EV_ABS, ABS_Y));
+ ck_assert(!libevdev_has_event_type(dev2, EV_REL));
+ ck_assert(!libevdev_has_event_code(dev2, EV_REL, REL_X));
+ libevdev_free(dev2);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_enable_bit_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs = { .value = ABS_X, .minimum = 0, .maximum = 1 };
+
+ test_create_abs_device(&uidev, &dev, 1, &abs,
+ -1);
+
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_ABS, ABS_MAX + 1, &abs), -1);
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_MAX + 1, ABS_MAX + 1, &abs), -1);
+ ck_assert_int_eq(libevdev_enable_event_type(dev, EV_MAX + 1), -1);
+ /* there's a gap between EV_SW and EV_LED */
+ ck_assert_int_eq(libevdev_enable_event_type(dev, EV_LED - 1), -1);
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_LED - 1, 0, NULL), -1);
+
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_ABS, ABS_Y, NULL), -1);
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_REP, REP_DELAY, NULL), -1);
+ ck_assert_int_eq(libevdev_enable_event_code(dev, EV_REL, REL_X, &abs), -1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_disable_bit)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2;
+ int rc;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .minimum = 0, .maximum = 1 },
+ { .value = ABS_Y, .minimum = 0, .maximum = 1 },
+ };
+
+ test_create_abs_device(&uidev, &dev,
+ 2, abs,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ -1);
+
+ ck_assert(libevdev_has_event_code(dev, EV_ABS, ABS_X));
+ ck_assert(libevdev_has_event_code(dev, EV_ABS, ABS_Y));
+ ck_assert(libevdev_has_event_type(dev, EV_REL));
+ ck_assert(libevdev_has_event_code(dev, EV_REL, REL_X));
+ ck_assert(libevdev_has_event_code(dev, EV_REL, REL_Y));
+
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_ABS, ABS_Y), 0);
+ ck_assert(!libevdev_has_event_code(dev, EV_ABS, ABS_Y));
+
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_REL, REL_X), 0);
+ ck_assert(!libevdev_has_event_code(dev, EV_REL, REL_X));
+ ck_assert(libevdev_has_event_code(dev, EV_REL, REL_Y));
+ ck_assert(libevdev_has_event_type(dev, EV_REL));
+
+ ck_assert_int_eq(libevdev_disable_event_type(dev, EV_REL), 0);
+ ck_assert(!libevdev_has_event_type(dev, EV_REL));
+ ck_assert(!libevdev_has_event_code(dev, EV_REL, REL_X));
+ ck_assert(!libevdev_has_event_code(dev, EV_REL, REL_Y));
+
+ /* make sure kernel device is unchanged */
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev2);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));
+ ck_assert(libevdev_has_event_code(dev2, EV_ABS, ABS_X));
+ ck_assert(libevdev_has_event_code(dev2, EV_ABS, ABS_Y));
+ ck_assert(libevdev_has_event_type(dev2, EV_REL));
+ ck_assert(libevdev_has_event_code(dev2, EV_REL, REL_X));
+ ck_assert(libevdev_has_event_code(dev2, EV_REL, REL_Y));
+ libevdev_free(dev2);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_disable_bit_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs = { .value = ABS_X, .minimum = 0, .maximum = 1 };
+
+ test_create_abs_device(&uidev, &dev, 1, &abs, -1);
+
+ /* there's a gap between EV_SW and EV_LED */
+ ck_assert_int_eq(libevdev_disable_event_type(dev, EV_LED - 1), -1);
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_LED - 1, 0), -1);
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_ABS, ABS_MAX + 1), -1);
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_MAX + 1, ABS_MAX + 1), -1);
+ ck_assert_int_eq(libevdev_disable_event_type(dev, EV_MAX + 1), -1);
+ ck_assert_int_eq(libevdev_disable_event_type(dev, EV_SYN), -1);
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_SYN, SYN_REPORT), -1);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_kernel_change_axis)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2;
+ struct input_absinfo abs;
+ int rc;
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ ck_assert(uidev != NULL);
+
+ abs.minimum = 0;
+ abs.maximum = 1000;
+ abs.fuzz = 1;
+ abs.flat = 2;
+ abs.resolution = 3;
+ abs.value = 0;
+
+ uinput_device_set_abs_bit(uidev, ABS_X, &abs);
+
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create device: %s", strerror(-rc));
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_X), 0);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_X), 1000);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_X), 1);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_X), 2);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_X), 3);
+
+ abs.minimum = 500;
+ abs.maximum = 5000;
+ abs.fuzz = 10;
+ abs.flat = 20;
+ abs.resolution = 30;
+ rc = libevdev_kernel_set_abs_info(dev, ABS_X, &abs);
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev, ABS_X), 500);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev, ABS_X), 5000);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev, ABS_X), 10);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev, ABS_X), 20);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev, ABS_X), 30);
+
+ /* make sure kernel device is changed */
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev2);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));
+ ck_assert_int_eq(libevdev_get_abs_minimum(dev2, ABS_X), 500);
+ ck_assert_int_eq(libevdev_get_abs_maximum(dev2, ABS_X), 5000);
+ ck_assert_int_eq(libevdev_get_abs_fuzz(dev2, ABS_X), 10);
+ ck_assert_int_eq(libevdev_get_abs_flat(dev2, ABS_X), 20);
+ ck_assert_int_eq(libevdev_get_abs_resolution(dev2, ABS_X), 30);
+ libevdev_free(dev2);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_device_kernel_change_axis_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs;
+ int rc;
+
+ uidev = uinput_device_new(TEST_DEVICE_NAME);
+ ck_assert(uidev != NULL);
+
+ abs.minimum = 0;
+ abs.maximum = 1000;
+ abs.fuzz = 1;
+ abs.flat = 2;
+ abs.resolution = 3; /* FIXME: value is unused, we can't test resolution */
+ abs.value = 0;
+
+ uinput_device_set_abs_bit(uidev, ABS_X, &abs);
+
+ rc = uinput_device_create(uidev);
+ ck_assert_msg(rc == 0, "Failed to create device: %s", strerror(-rc));
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ rc = libevdev_kernel_set_abs_info(dev, ABS_MAX + 1, &abs);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_device_kernel_set_abs_invalid_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ struct input_absinfo abs[2];
+ struct input_absinfo a;
+ int rc;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ memset(abs, 0, sizeof(abs));
+ abs[0].value = ABS_X;
+ abs[0].maximum = 1000;
+
+ abs[1].value = ABS_Y;
+ abs[1].maximum = 1000;
+
+ dev = libevdev_new();
+ rc = libevdev_kernel_set_abs_info(dev, ABS_X, &a);
+ ck_assert_int_eq(rc, -EBADF);
+ libevdev_free(dev);
+
+ test_create_abs_device(&uidev, &dev,
+ 2, abs,
+ EV_SYN,
+ -1);
+
+ libevdev_change_fd(dev, -2);
+ rc = libevdev_kernel_set_abs_info(dev, ABS_X, &a);
+ ck_assert_int_eq(rc, -EBADF);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_led_valid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ test_create_device(&uidev, &dev,
+ EV_LED, LED_NUML,
+ EV_LED, LED_CAPSL,
+ EV_LED, LED_COMPOSE,
+ -1);
+
+ rc = libevdev_kernel_set_led_value(dev, LED_NUML, LIBEVDEV_LED_ON);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_kernel_set_led_value(dev, LED_NUML, LIBEVDEV_LED_OFF);
+ ck_assert_int_eq(rc, 0);
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_CAPSL, LIBEVDEV_LED_ON,
+ LED_COMPOSE, LIBEVDEV_LED_OFF,
+ -1);
+ ck_assert_int_eq(rc, 0);
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_NUML));
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_CAPSL));
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_COMPOSE));
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_CAPSL, LIBEVDEV_LED_OFF,
+ LED_COMPOSE, LIBEVDEV_LED_ON,
+ -1);
+ ck_assert_int_eq(rc, 0);
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_NUML));
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_CAPSL));
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_COMPOSE));
+
+ /* make sure we ignore unset leds */
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_CAPSL, LIBEVDEV_LED_OFF,
+ LED_SCROLLL, LIBEVDEV_LED_OFF,
+ LED_COMPOSE, LIBEVDEV_LED_ON,
+ -1);
+ ck_assert_int_eq(rc, 0);
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_NUML));
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_CAPSL));
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_COMPOSE));
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_led_invalid)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ test_create_device(&uidev, &dev,
+ EV_LED, LED_NUML,
+ EV_LED, LED_CAPSL,
+ EV_LED, LED_COMPOSE,
+ -1);
+
+ rc = libevdev_kernel_set_led_value(dev, LED_MAX + 1, LIBEVDEV_LED_ON);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ rc = libevdev_kernel_set_led_value(dev, LED_NUML, LIBEVDEV_LED_OFF + 1);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ rc = libevdev_kernel_set_led_value(dev, LED_SCROLLL, LIBEVDEV_LED_ON);
+ ck_assert_int_eq(rc, 0);
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_NUML, LIBEVDEV_LED_OFF + 1,
+ -1);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_MAX + 1, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF + 1,
+ -1);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_SCROLLL, LIBEVDEV_LED_OFF,
+ -1);
+ ck_assert_int_eq(rc, 0);
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+START_TEST(test_led_same)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ test_create_device(&uidev, &dev,
+ EV_LED, LED_NUML,
+ EV_LED, LED_CAPSL,
+ EV_LED, LED_COMPOSE,
+ -1);
+
+ rc = libevdev_kernel_set_led_values(dev,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ LED_NUML, LIBEVDEV_LED_OFF,
+ LED_NUML, LIBEVDEV_LED_ON,
+ /* more than LED_CNT */
+ -1);
+ ck_assert_int_eq(rc, 0);
+ ck_assert_int_eq(1, libevdev_get_event_value(dev, EV_LED, LED_NUML));
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_CAPSL));
+ ck_assert_int_eq(0, libevdev_get_event_value(dev, EV_LED, LED_COMPOSE));
+
+ libevdev_free(dev);
+ uinput_device_free(uidev);
+}
+END_TEST
+
+TEST_SUITE_ROOT_PRIVILEGES(has_events)
+{
+ Suite *s = suite_create("libevdev_has_event tests");
+
+ add_test(s, test_ev_bit_limits);
+ add_test(s, test_has_ev_bit);
+
+ add_test(s, test_event_codes);
+ add_test(s, test_event_code_limits);
+
+ add_test(s, test_ev_rep);
+ add_test(s, test_ev_rep_values);
+
+ add_test(s, test_input_props);
+ add_test(s, test_set_input_props);
+
+ add_test(s, test_no_slots);
+ add_test(s, test_slot_number);
+ add_test(s, test_slot_init_value);
+ add_test(s, test_invalid_mt_device);
+
+ add_test(s, test_device_name);
+ add_test(s, test_device_set_name);
+ add_test(s, test_device_set_ids);
+ add_test(s, test_device_get_abs_info);
+
+ add_test(s, test_device_set_abs);
+ add_test(s, test_device_enable_bit);
+ add_test(s, test_device_enable_bit_invalid);
+ add_test(s, test_device_disable_bit);
+ add_test(s, test_device_disable_bit_invalid);
+ add_test(s, test_device_kernel_change_axis);
+ add_test(s, test_device_kernel_change_axis_invalid);
+ add_test(s, test_device_kernel_set_abs_invalid_fd);
+
+ add_test(s, test_led_valid);
+ add_test(s, test_led_invalid);
+ add_test(s, test_led_same);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-libevdev-init.c third-party-new/test/test-libevdev-init.c
--- third-party-libevdev-bak/test/test-libevdev-init.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-libevdev-init.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,704 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <errno.h>
+#include <inttypes.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include <libevdev/libevdev-uinput.h>
+#include "test-common.h"
+
+START_TEST(test_new_device)
+{
+ struct libevdev *dev;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_free_device)
+{
+ libevdev_free(NULL);
+}
+END_TEST
+
+START_TEST(test_init_from_invalid_fd)
+{
+ int rc;
+ struct libevdev *dev = NULL;
+
+ rc = libevdev_new_from_fd(-1, &dev);
+
+ ck_assert(dev == NULL);
+ ck_assert_int_eq(rc, -EBADF);
+
+ rc = libevdev_new_from_fd(STDIN_FILENO, &dev);
+ ck_assert(dev == NULL);
+ ck_assert_int_eq(rc, -ENOTTY);
+}
+END_TEST
+
+START_TEST(test_init_and_change_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ ck_assert_int_eq(libevdev_set_fd(dev, -1), -EBADF);
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+ ck_assert_int_eq(libevdev_change_fd(dev, -1), -1);
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ rc = uinput_device_new_with_events(&uidev,
+ TEST_DEVICE_NAME, DEFAULT_IDS,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+ ck_assert_int_eq(libevdev_set_fd(dev, uinput_device_get_fd(uidev)), 0);
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+ ck_assert_int_eq(libevdev_set_fd(dev, 0), -EBADF);
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ ck_assert_int_eq(libevdev_get_fd(dev), uinput_device_get_fd(uidev));
+
+ ck_assert_int_eq(libevdev_change_fd(dev, 0), 0);
+ ck_assert_int_eq(libevdev_get_fd(dev), 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+static int log_fn_called = 0;
+static char *logdata = "test";
+static void logfunc(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line, const char *func,
+ const char *f, va_list args) {
+ ck_assert_int_eq(strcmp(logdata, data), 0);
+ log_fn_called++;
+}
+
+START_TEST(test_log_init)
+{
+ struct libevdev *dev = NULL;
+ enum libevdev_log_priority old;
+
+ old = libevdev_get_log_priority();
+
+ libevdev_set_log_priority(LIBEVDEV_LOG_DEBUG);
+
+ libevdev_set_log_function(logfunc, NULL);
+ libevdev_set_log_function(NULL, NULL);
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+
+ libevdev_set_log_function(logfunc, logdata);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ libevdev_set_log_function(NULL, NULL);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ libevdev_set_log_function(logfunc, logdata);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ /* libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL) should
+ trigger a log message. We called it three times, but only twice
+ with the logfunc set, thus, ensure we only called the logfunc
+ twice */
+ ck_assert_int_eq(log_fn_called, 2);
+
+ libevdev_free(dev);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ log_fn_called = 0;
+
+ libevdev_set_log_priority(old);
+}
+END_TEST
+
+START_TEST(test_log_default_priority)
+{
+ ck_assert_int_eq(libevdev_get_log_priority(), LIBEVDEV_LOG_INFO);
+}
+END_TEST
+
+START_TEST(test_log_set_get_priority)
+{
+ enum libevdev_log_priority pri;
+ enum libevdev_log_priority old;
+
+ old = libevdev_get_log_priority();
+
+ pri = LIBEVDEV_LOG_DEBUG;
+ libevdev_set_log_priority(pri);
+ ck_assert_int_eq(libevdev_get_log_priority(), pri);
+
+ pri = LIBEVDEV_LOG_INFO;
+ libevdev_set_log_priority(pri);
+ ck_assert_int_eq(libevdev_get_log_priority(), pri);
+
+ pri = LIBEVDEV_LOG_ERROR;
+ libevdev_set_log_priority(pri);
+ ck_assert_int_eq(libevdev_get_log_priority(), pri);
+
+ /* debug and above is clamped */
+ pri = LIBEVDEV_LOG_DEBUG + 1;
+ libevdev_set_log_priority(pri);
+ ck_assert_int_eq(libevdev_get_log_priority(), LIBEVDEV_LOG_DEBUG);
+
+ /* error and below is not clamped, we need this for another test */
+ pri = LIBEVDEV_LOG_ERROR - 1;
+ libevdev_set_log_priority(pri);
+ ck_assert_int_eq(libevdev_get_log_priority(), pri);
+
+ libevdev_set_log_priority(old);
+}
+END_TEST
+
+START_TEST(test_log_priority)
+{
+ struct libevdev *dev = NULL;
+ enum libevdev_log_priority old;
+
+ old = libevdev_get_log_priority();
+
+ libevdev_set_log_function(logfunc, logdata);
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+
+ libevdev_set_log_priority(LIBEVDEV_LOG_DEBUG);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 1);
+
+ libevdev_set_log_priority(LIBEVDEV_LOG_INFO);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 2);
+
+ libevdev_set_log_priority(LIBEVDEV_LOG_ERROR);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 3);
+
+ /* we don't have any log msgs > ERROR at the moment, so test it by
+ setting an invalid priority. */
+ libevdev_set_log_priority(LIBEVDEV_LOG_ERROR - 1);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 3);
+
+ libevdev_free(dev);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ log_fn_called = 0;
+
+ libevdev_set_log_priority(old);
+}
+END_TEST
+
+static char *logdata_1 = "foo";
+static char *logdata_2 = "bar";
+static int log_data_fn_called = 0;
+static void logfunc_data(enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line, const char *func,
+ const char *f, va_list args) {
+ switch(log_data_fn_called) {
+ case 0: ck_assert(data == logdata_1); break;
+ case 1: ck_assert(data == logdata_2); break;
+ case 2: ck_assert(data == NULL); break;
+ default:
+ ck_abort();
+ }
+ log_data_fn_called++;
+}
+
+START_TEST(test_log_data)
+{
+ struct libevdev *dev = NULL;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+
+ libevdev_set_log_function(logfunc_data, logdata_1);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ libevdev_set_log_function(logfunc_data, logdata_2);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ libevdev_set_log_function(logfunc_data, NULL);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+
+ libevdev_free(dev);
+}
+END_TEST
+
+struct libevdev *devlogdata;
+static int dev_log_fn_called = 0;
+static void devlogfunc(const struct libevdev *dev,
+ enum libevdev_log_priority priority,
+ void *data,
+ const char *file, int line, const char *func,
+ const char *f, va_list args)
+{
+ ck_assert(dev == data);
+ dev_log_fn_called++;
+}
+
+START_TEST(test_device_log_init)
+{
+ struct libevdev *dev = NULL;
+ enum libevdev_log_priority old;
+
+ old = libevdev_get_log_priority();
+ libevdev_set_log_priority(LIBEVDEV_LOG_DEBUG);
+ libevdev_set_log_function(logfunc, logdata);
+
+ /* error for NULL device */
+ libevdev_set_device_log_function(NULL, NULL,
+ LIBEVDEV_LOG_ERROR, NULL);
+ ck_assert_int_eq(log_fn_called, 1);
+
+ /* error for NULL device */
+ libevdev_set_device_log_function(NULL, devlogfunc,
+ LIBEVDEV_LOG_ERROR, NULL);
+ ck_assert_int_eq(log_fn_called, 2);
+
+ log_fn_called = 0;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+
+ libevdev_set_device_log_function(dev, NULL,
+ LIBEVDEV_LOG_ERROR, NULL);
+
+ /* libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL) should
+ trigger a log message. */
+
+ /* expect global handler triggered */
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 1);
+ ck_assert_int_eq(dev_log_fn_called, 0);
+
+ /* expect device handler triggered */
+ libevdev_set_device_log_function(dev, devlogfunc,
+ LIBEVDEV_LOG_ERROR, dev);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 1);
+ ck_assert_int_eq(dev_log_fn_called, 1);
+
+ /* device handler set, but priority filters. don't expect any log
+ handler to be called.
+ we don't have any log msgs > ERROR at the moment, so test it by
+ setting an invalid priority. */
+ libevdev_set_device_log_function(dev, devlogfunc,
+ LIBEVDEV_LOG_ERROR - 1, dev);
+ libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, NULL);
+ ck_assert_int_eq(log_fn_called, 1);
+ ck_assert_int_eq(dev_log_fn_called, 1);
+
+ libevdev_free(dev);
+
+ log_fn_called = 0;
+ libevdev_set_log_priority(old);
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+}
+END_TEST
+
+START_TEST(test_device_init)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ rc = uinput_device_new_with_events(&uidev,
+ TEST_DEVICE_NAME, DEFAULT_IDS,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ rc = libevdev_set_fd(dev, uinput_device_get_fd(uidev));
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_init_from_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ rc = uinput_device_new_with_events(&uidev,
+ TEST_DEVICE_NAME, DEFAULT_IDS,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+ ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc));
+
+ rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev);
+ ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));;
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_grab)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+ rc = libevdev_grab(dev, 0);
+ ck_assert_int_eq(rc, -EINVAL);
+ rc = libevdev_grab(dev, 1);
+ ck_assert_int_eq(rc, -EINVAL);
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ rc = libevdev_grab(dev, LIBEVDEV_UNGRAB);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_grab(dev, LIBEVDEV_GRAB);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_grab(dev, LIBEVDEV_GRAB);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_grab(dev, LIBEVDEV_UNGRAB);
+ ck_assert_int_eq(rc, 0);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_grab_invalid_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ dev = libevdev_new();
+ rc = libevdev_grab(dev, 0);
+ ck_assert_int_eq(rc, -EBADF);
+ libevdev_free(dev);
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+ libevdev_change_fd(dev, -2);
+ rc = libevdev_grab(dev, 0);
+ ck_assert_int_eq(rc, -EBADF);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_device_grab_change_fd)
+{
+ struct libevdev_uinput *uidev;
+ struct libevdev *dev, *other;
+ struct input_event e;
+ int rc;
+ int other_fd;
+ int dev_fd;
+
+ dev = libevdev_new();
+ libevdev_set_name(dev, "libevdev test device");
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+ libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL);
+
+ rc = libevdev_uinput_create_from_device(dev,
+ LIBEVDEV_UINPUT_OPEN_MANAGED,
+ &uidev);
+ ck_assert_int_eq(rc, 0);
+ libevdev_free(dev);
+
+ dev_fd = open(libevdev_uinput_get_devnode(uidev),
+ O_RDONLY|O_NONBLOCK);
+ ck_assert_int_ne(dev_fd, -1);
+ rc = libevdev_new_from_fd(dev_fd, &dev);
+ ck_assert_int_eq(rc, 0);
+
+ other_fd = open(libevdev_uinput_get_devnode(uidev),
+ O_RDONLY|O_NONBLOCK);
+ ck_assert_int_ne(other_fd, -1);
+ rc = libevdev_new_from_fd(other_fd, &other);
+ ck_assert_int_eq(rc, 0);
+
+ /* check we're getting the events before the grab */
+ libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
+ libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ /* no events after the grab */
+ rc = libevdev_grab(dev, LIBEVDEV_GRAB);
+ ck_assert_int_eq(rc, 0);
+ libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
+ libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_grab(dev, LIBEVDEV_GRAB);
+ ck_assert_int_eq(rc, 0);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ /* swapping the fd removes the grab */
+ close(dev_fd);
+ dev_fd = open(libevdev_uinput_get_devnode(uidev),
+ O_RDONLY|O_NONBLOCK);
+ ck_assert_int_ne(dev_fd, -1);
+ rc = libevdev_change_fd(dev, dev_fd);
+ ck_assert_int_eq(rc, 0);
+
+ /* check we're getting the events again */
+ libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
+ libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ /* no events after the grab */
+ rc = libevdev_grab(dev, LIBEVDEV_GRAB);
+ ck_assert_int_eq(rc, 0);
+ libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
+ libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+ rc = libevdev_next_event(other, LIBEVDEV_READ_FLAG_NORMAL, &e);
+ ck_assert_int_eq(rc, -EAGAIN);
+
+ libevdev_uinput_destroy(uidev);
+ libevdev_free(dev);
+ libevdev_free(other);
+ close(dev_fd);
+ close(other_fd);
+}
+END_TEST
+
+START_TEST(test_set_clock_id)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int clockid;
+ int rc;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ rc = libevdev_set_clock_id(dev, CLOCK_REALTIME);
+ ck_assert_int_eq(rc, 0);
+
+ rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC);
+ ck_assert_int_eq(rc, 0);
+
+#ifdef __FreeBSD__
+ clockid = CLOCK_MONOTONIC_FAST;
+#else
+ clockid = CLOCK_MONOTONIC_RAW;
+#endif
+
+ rc = libevdev_set_clock_id(dev, clockid);
+ ck_assert_int_eq(rc, -EINVAL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_set_clock_id_invalid_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ dev = libevdev_new();
+ rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC);
+ ck_assert_int_eq(rc, -EBADF);
+ libevdev_free(dev);
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+ libevdev_change_fd(dev, -2);
+ rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC);
+ ck_assert_int_eq(rc, -EBADF);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_clock_id_events)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev, *dev2;
+ int rc, fd;
+ struct input_event ev1, ev2;
+ struct timespec t1_real, t2_real;
+ struct timespec t1_mono, t2_mono;
+ int64_t t1, t2;
+
+ test_create_device(&uidev, &dev,
+ EV_SYN, SYN_REPORT,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_MIDDLE,
+ EV_KEY, BTN_RIGHT,
+ -1);
+
+ fd = open(uinput_device_get_devnode(uidev), O_RDONLY);
+ ck_assert_int_gt(fd, -1);
+
+ rc = libevdev_new_from_fd(fd, &dev2);
+ ck_assert_msg(rc == 0, "Failed to create second device: %s", strerror(-rc));
+
+ rc = libevdev_set_clock_id(dev2, CLOCK_MONOTONIC);
+ ck_assert_int_eq(rc, 0);
+
+ clock_gettime(CLOCK_REALTIME, &t1_real);
+ clock_gettime(CLOCK_MONOTONIC, &t1_mono);
+ uinput_device_event(uidev, EV_REL, REL_X, 1);
+ uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ clock_gettime(CLOCK_REALTIME, &t2_real);
+ clock_gettime(CLOCK_MONOTONIC, &t2_mono);
+
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev1);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+
+ rc = libevdev_next_event(dev2, LIBEVDEV_READ_FLAG_NORMAL, &ev2);
+ ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SUCCESS);
+
+ ck_assert_int_eq(ev1.type, ev2.type);
+ ck_assert_int_eq(ev1.code, ev2.code);
+ ck_assert_int_eq(ev1.value, ev2.value);
+
+ t1 = ev1.input_event_sec * 1000000LL + ev1.input_event_usec;
+ t2 = ev2.input_event_sec * 1000000LL + ev2.input_event_usec;
+ ck_assert_int_ne(t1, t2);
+
+ ck_assert_int_ge(ev1.input_event_sec, t1_real.tv_sec);
+ ck_assert_int_ge(ev1.input_event_usec, t1_real.tv_nsec/1000);
+ ck_assert_int_le(ev1.input_event_sec, t2_real.tv_sec);
+ ck_assert_int_le(ev1.input_event_usec, t2_real.tv_nsec/1000);
+
+ ck_assert_int_ge(ev2.input_event_sec, t1_mono.tv_sec);
+ ck_assert_int_ge(ev2.input_event_usec, t1_mono.tv_nsec/1000);
+ ck_assert_int_le(ev2.input_event_sec, t2_mono.tv_sec);
+ ck_assert_int_le(ev2.input_event_usec, t2_mono.tv_nsec/1000);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+ libevdev_free(dev2);
+ close(fd);
+}
+END_TEST
+
+TEST_SUITE_ROOT_PRIVILEGES(libevdev_init_test)
+{
+ Suite *s = suite_create("libevdev init tests");
+
+ add_test(s, test_new_device);
+ add_test(s, test_free_device);
+ add_test(s, test_init_from_invalid_fd);
+ add_test(s, test_init_and_change_fd);
+
+ add_test(s, test_log_init);
+ add_test(s, test_log_priority);
+ add_test(s, test_log_set_get_priority);
+ add_test(s, test_log_default_priority);
+ add_test(s, test_log_data);
+ add_test(s, test_device_log_init);
+
+ add_test(s, test_device_init);
+ add_test(s, test_device_init_from_fd);
+
+ add_test(s, test_device_grab);
+ add_test(s, test_device_grab_invalid_fd);
+ add_test(s, test_device_grab_change_fd);
+
+ add_test(s, test_set_clock_id);
+ add_test(s, test_set_clock_id_invalid_fd);
+ add_test(s, test_clock_id_events);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/test-link.c third-party-new/test/test-link.c
--- third-party-libevdev-bak/test/test-link.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-link.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,6 @@
+#include <stddef.h>
+#include <libevdev/libevdev.h>
+
+int main(void) {
+ return libevdev_new_from_fd(0, NULL);
+}
diff -Naur third-party-libevdev-bak/test/test-main.c third-party-new/test/test-main.c
--- third-party-libevdev-bak/test/test-main.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-main.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <check.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <libevdev/libevdev.h>
+
+#include "test-common.h"
+
+static int
+is_debugger_attached(void)
+{
+ int rc = 1;
+ /*
+ * FreeBSD does not support PTRACE_ATTACH, disable attaching a debugger
+ * on FreeBSD by skipping the rest of the function and just return 1.
+ */
+#ifndef __FreeBSD__
+ int status;
+ int pid = fork();
+
+ if (pid == -1)
+ return 0;
+
+ if (pid == 0) {
+ int ppid = getppid();
+ if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) {
+ waitpid(ppid, NULL, 0);
+ ptrace(PTRACE_CONT, NULL, NULL);
+ ptrace(PTRACE_DETACH, ppid, NULL, NULL);
+ rc = 0;
+ }
+ _exit(rc);
+ } else {
+ waitpid(pid, &status, 0);
+ rc = WEXITSTATUS(status);
+ }
+
+#endif /* !__FreeBSD__ */
+ return rc;
+}
+
+static bool
+device_nodes_exist(void)
+{
+ struct stat st;
+ int rc;
+
+ rc = stat("/dev/uinput", &st);
+ if (rc == -1 && errno == ENOENT)
+ return false;
+
+ rc = stat("/dev/input", &st);
+ if (rc == -1 && errno == ENOENT)
+ return false;
+
+ /* Any issues but ENOENT we just let the test suite blow up later */
+ return true;
+}
+
+extern const struct libevdev_test __start_test_section, __stop_test_section;
+
+int main(void)
+{
+ const struct libevdev_test *t;
+ const struct rlimit corelimit = {0, 0};
+ int failed;
+
+ for (t = &__start_test_section; t < &__stop_test_section; t++) {
+ if (t->needs_root_privileges) {
+ if (getenv("LIBEVDEV_SKIP_ROOT_TESTS"))
+ return 77;
+
+ if (getuid() != 0) {
+ fprintf(stderr, "This test needs to run as root\n");
+ return 77;
+ }
+ if (!device_nodes_exist()) {
+ fprintf(stderr, "This test needs /dev/input and /dev/uinput to exist\n");
+ return 77;
+ }
+
+ break;
+ }
+ }
+
+ if (is_debugger_attached())
+ setenv("CK_FORK", "no", 0);
+
+ if (setrlimit(RLIMIT_CORE, &corelimit) != 0)
+ perror("WARNING: Core dumps not disabled. Reason");
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ SRunner *sr = srunner_create(NULL);
+ for (t = &__start_test_section; t < &__stop_test_section; t++) {
+ srunner_add_suite(sr, t->setup());
+ }
+
+ srunner_run_all(sr, CK_NORMAL);
+
+ failed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+
+ return failed;
+}
diff -Naur third-party-libevdev-bak/test/test-static-symbols-leak.sh third-party-new/test/test-static-symbols-leak.sh
--- third-party-libevdev-bak/test/test-static-symbols-leak.sh 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-static-symbols-leak.sh 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+#
+# Hack to check for leaking symbols in the static library.
+# See https://bugs.freedesktop.org/show_bug.cgi?id=82785
+# Note the spaces in the expressions! After the first grep, each line
+# is " T symbol_name"
+
+test -z "$RUNNING_ON_VALGRIND" || exit 77
+
+builddir="$1"
+
+test -f "$builddir/test-static-link" || (echo "Unable to find test file" && exit 1)
+nm --extern-only "$builddir/test-static-link" |
+ grep -o -e " T .*" | \
+ grep -v -e " main\$" \
+ -e " atexit" \
+ -e " mangle_path" \
+ -e " *gcov.*" \
+ -e " _.*" \
+ -e " libevdev_*" && \
+ echo "Leaking symbols found" && exit 1 || exit 0
diff -Naur third-party-libevdev-bak/test/test-uinput.c third-party-new/test/test-uinput.c
--- third-party-libevdev-bak/test/test-uinput.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/test-uinput.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,463 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+#include <linux/input.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <libevdev/libevdev-uinput.h>
+
+#include "test-common.h"
+#define UINPUT_NODE "/dev/uinput"
+
+START_TEST(test_uinput_create_device)
+{
+ struct libevdev *dev, *dev2;
+ struct libevdev_uinput *uidev;
+ int fd, uinput_fd;
+ unsigned int type, code;
+ int rc;
+ const char *devnode;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_MAX, NULL);
+
+ rc = libevdev_uinput_create_from_device(dev, LIBEVDEV_UINPUT_OPEN_MANAGED, &uidev);
+ ck_assert_int_eq(rc, 0);
+ ck_assert(uidev != NULL);
+
+ uinput_fd = libevdev_uinput_get_fd(uidev);
+ ck_assert_int_gt(uinput_fd, -1);
+
+ devnode = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode != NULL);
+
+ fd = open(devnode, O_RDONLY);
+ ck_assert_int_gt(fd, -1);
+ rc = libevdev_new_from_fd(fd, &dev2);
+ ck_assert_int_eq(rc, 0);
+
+ for (type = 0; type < EV_CNT; type++) {
+ int max = libevdev_event_type_get_max(type);
+ if (max == -1)
+ continue;
+
+ for (code = 0; code < (unsigned int)max; code++) {
+ ck_assert_int_eq(libevdev_has_event_code(dev, type, code),
+ libevdev_has_event_code(dev2, type, code));
+ }
+ }
+
+ libevdev_free(dev);
+ libevdev_free(dev2);
+ libevdev_uinput_destroy(uidev);
+ close(fd);
+
+ /* uinput fd is managed, so make sure it did get closed */
+ ck_assert_int_eq(close(uinput_fd), -1);
+ ck_assert_int_eq(errno, EBADF);
+
+}
+END_TEST
+
+START_TEST(test_uinput_create_device_invalid)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev = NULL;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+ rc = libevdev_uinput_create_from_device(dev, -1, &uidev);
+ ck_assert_int_eq(rc, -EBADF);
+ ck_assert(uidev == NULL);
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_uinput_create_device_from_fd)
+{
+ struct libevdev *dev, *dev2;
+ struct libevdev_uinput *uidev;
+ int fd, fd2;
+ unsigned int type, code;
+ int rc;
+ const char *devnode;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+ ck_assert(uidev != NULL);
+
+ ck_assert_int_eq(libevdev_uinput_get_fd(uidev), fd);
+
+ devnode = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode != NULL);
+
+ fd2 = open(devnode, O_RDONLY);
+ ck_assert_int_gt(fd2, -1);
+ rc = libevdev_new_from_fd(fd2, &dev2);
+ ck_assert_int_eq(rc, 0);
+
+ for (type = 0; type < EV_CNT; type++) {
+ int max = libevdev_event_type_get_max(type);
+ if (max == -1)
+ continue;
+
+ for (code = 0; code < (unsigned int)max; code++) {
+ ck_assert_int_eq(libevdev_has_event_code(dev, type, code),
+ libevdev_has_event_code(dev2, type, code));
+ }
+ }
+
+ libevdev_free(dev);
+ libevdev_free(dev2);
+ libevdev_uinput_destroy(uidev);
+ close(fd);
+ close(fd2);
+}
+END_TEST
+
+#ifdef __FreeBSD__
+START_TEST(test_uinput_check_devnode_bsd)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev, *uidev2;
+ const char *devnode, *devnode2;
+ int fd, fd2;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+ fd2 = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd2, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+
+ /* create a second one */
+ libevdev_set_name(dev, TEST_DEVICE_NAME " 2");
+ rc = libevdev_uinput_create_from_device(dev, fd2, &uidev2);
+ ck_assert_int_eq(rc, 0);
+
+ devnode = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode != NULL);
+
+ /* get syspath twice returns same pointer */
+ devnode2 = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode == devnode2);
+
+ /* second dev has different devnode */
+ devnode2 = libevdev_uinput_get_devnode(uidev2);
+ ck_assert(strcmp(devnode, devnode2) != 0);
+
+ libevdev_uinput_destroy(uidev2);
+ libevdev_uinput_destroy(uidev);
+
+ close(fd2);
+ close(fd);
+
+ libevdev_free(dev);
+}
+END_TEST
+
+START_TEST(test_uinput_check_syspath_bsd)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev;
+ const char *syspath;
+ int fd;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+
+ syspath = libevdev_uinput_get_syspath(uidev);
+ /* FreeBSD should always return NULL for libevdev_unput_get_syspath() */
+ ck_assert(syspath == NULL);
+
+ libevdev_uinput_destroy(uidev);
+
+ close(fd);
+
+ libevdev_free(dev);
+}
+END_TEST
+
+#else /* !__FreeBSD__ */
+
+START_TEST(test_uinput_check_syspath_time)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev, *uidev2;
+ const char *syspath, *syspath2;
+ int fd, fd2;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+ fd2 = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd2, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+
+ /* sleep for 1.5 seconds. sysfs resolution is 1 second, so
+ creating both devices without delay means
+ libevdev_uinput_get_syspath can't actually differ between
+ them. By waiting, we get different ctime for uidev and uidev2,
+ and exercise that part of the code.
+ */
+ usleep(1500000);
+
+ /* create a second one to test the syspath time filtering code */
+ rc = libevdev_uinput_create_from_device(dev, fd2, &uidev2);
+ ck_assert_int_eq(rc, 0);
+
+ syspath = libevdev_uinput_get_syspath(uidev);
+ ck_assert(syspath != NULL);
+
+ /* get syspath twice returns same pointer */
+ syspath2 = libevdev_uinput_get_syspath(uidev);
+ ck_assert(syspath == syspath2);
+
+ /* second dev has different syspath */
+ syspath2 = libevdev_uinput_get_syspath(uidev2);
+ ck_assert(strcmp(syspath, syspath2) != 0);
+
+ libevdev_free(dev);
+ libevdev_uinput_destroy(uidev);
+ libevdev_uinput_destroy(uidev2);
+
+ close(fd);
+ close(fd2);
+}
+END_TEST
+
+START_TEST(test_uinput_check_syspath_name)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev, *uidev2;
+ const char *syspath, *syspath2;
+ int fd, fd2;
+ int rc;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+ fd2 = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd2, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+
+ /* create a second one to stress the syspath filtering code */
+ libevdev_set_name(dev, TEST_DEVICE_NAME " 2");
+ rc = libevdev_uinput_create_from_device(dev, fd2, &uidev2);
+ ck_assert_int_eq(rc, 0);
+
+ syspath = libevdev_uinput_get_syspath(uidev);
+ ck_assert(syspath != NULL);
+
+ /* get syspath twice returns same pointer */
+ syspath2 = libevdev_uinput_get_syspath(uidev);
+ ck_assert(syspath == syspath2);
+
+ /* second dev has different syspath */
+ syspath2 = libevdev_uinput_get_syspath(uidev2);
+ ck_assert(strcmp(syspath, syspath2) != 0);
+
+ libevdev_free(dev);
+ libevdev_uinput_destroy(uidev);
+ libevdev_uinput_destroy(uidev2);
+
+ close(fd);
+ close(fd2);
+}
+END_TEST
+
+#endif /* __FreeBSD __ */
+
+START_TEST(test_uinput_events)
+{
+ struct libevdev *dev;
+ struct libevdev_uinput *uidev;
+ int fd, fd2;
+ int rc;
+ const char *devnode;
+ int i;
+ const int nevents = 5;
+ struct input_event events[] = { {{0, 0}, EV_REL, REL_X, 1},
+ {{0, 0}, EV_REL, REL_Y, -1},
+ {{0, 0}, EV_SYN, SYN_REPORT, 0},
+ {{0, 0}, EV_KEY, BTN_LEFT, 1},
+ {{0, 0}, EV_SYN, SYN_REPORT, 0}};
+ struct input_event events_read[nevents];
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_type(dev, EV_KEY);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+ libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL);
+
+ fd = open(UINPUT_NODE, O_RDWR);
+ ck_assert_int_gt(fd, -1);
+
+ rc = libevdev_uinput_create_from_device(dev, fd, &uidev);
+ ck_assert_int_eq(rc, 0);
+ ck_assert(uidev != NULL);
+
+ devnode = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode != NULL);
+
+ fd2 = open(devnode, O_RDONLY);
+
+ for (i = 0; i < nevents; i++)
+ libevdev_uinput_write_event(uidev, events[i].type, events[i].code, events[i].value);
+
+ rc = read(fd2, events_read, sizeof(events_read));
+ ck_assert_int_eq(rc, sizeof(events_read));
+
+ for (i = 0; i < nevents; i++) {
+ ck_assert_int_eq(events[i].type, events_read[i].type);
+ ck_assert_int_eq(events[i].code, events_read[i].code);
+ ck_assert_int_eq(events[i].value, events_read[i].value);
+ }
+
+ libevdev_free(dev);
+ libevdev_uinput_destroy(uidev);
+ close(fd);
+ close(fd2);
+}
+END_TEST
+
+START_TEST(test_uinput_properties)
+{
+ struct libevdev *dev, *dev2;
+ struct libevdev_uinput *uidev;
+ int fd;
+ int rc;
+ const char *devnode;
+
+ dev = libevdev_new();
+ ck_assert(dev != NULL);
+ libevdev_set_name(dev, TEST_DEVICE_NAME);
+ libevdev_enable_event_type(dev, EV_SYN);
+ libevdev_enable_event_type(dev, EV_REL);
+ libevdev_enable_event_type(dev, EV_KEY);
+ libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+ libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+ libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL);
+ libevdev_enable_property(dev, INPUT_PROP_BUTTONPAD);
+ libevdev_enable_property(dev, INPUT_PROP_MAX);
+
+ rc = libevdev_uinput_create_from_device(dev, LIBEVDEV_UINPUT_OPEN_MANAGED, &uidev);
+ ck_assert_int_eq(rc, 0);
+ ck_assert(uidev != NULL);
+
+ devnode = libevdev_uinput_get_devnode(uidev);
+ ck_assert(devnode != NULL);
+
+ fd = open(devnode, O_RDONLY);
+ ck_assert_int_gt(fd, -1);
+ rc = libevdev_new_from_fd(fd, &dev2);
+ ck_assert_int_eq(rc, 0);
+
+ ck_assert(libevdev_has_property(dev2, INPUT_PROP_BUTTONPAD));
+ ck_assert(libevdev_has_property(dev2, INPUT_PROP_MAX));
+
+ libevdev_free(dev);
+ libevdev_free(dev2);
+ libevdev_uinput_destroy(uidev);
+ close(fd);
+}
+END_TEST
+
+TEST_SUITE_ROOT_PRIVILEGES(uinput_suite)
+{
+ Suite *s = suite_create("libevdev uinput device tests");
+
+ add_test(s, test_uinput_create_device);
+ add_test(s, test_uinput_create_device_invalid);
+ add_test(s, test_uinput_create_device_from_fd);
+#ifdef __FreeBSD__
+ add_test(s, test_uinput_check_devnode_bsd);
+ add_test(s, test_uinput_check_syspath_bsd);
+#else
+ add_test(s, test_uinput_check_syspath_time);
+ add_test(s, test_uinput_check_syspath_name);
+#endif
+
+ add_test(s, test_uinput_events);
+
+ add_test(s, test_uinput_properties);
+
+ return s;
+}
diff -Naur third-party-libevdev-bak/test/valgrind.suppressions third-party-new/test/valgrind.suppressions
--- third-party-libevdev-bak/test/valgrind.suppressions 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/test/valgrind.suppressions 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,27 @@
+{
+ <timer_create@@GLIBC_2.3.3>
+ Memcheck:Param
+ timer_create(evp)
+ fun:timer_create@@GLIBC_2.3.3
+}
+{
+ <ioctl_EVIOCGRAB_unaddressable_bytes>
+ Memcheck:Param
+ ioctl(generic)
+ fun:ioctl
+ fun:libevdev_grab
+}
+{
+ <ioctl_EVIOCREVOKE_unaddressable_bytes>
+ Memcheck:Param
+ ioctl(generic)
+ fun:ioctl
+ fun:test_revoke*
+}
+{
+ <bash_memleak>
+ Memcheck:Leak
+ ...
+ fun:reader_loop
+ fun:main
+}
diff -Naur third-party-libevdev-bak/tools/Makefile.am third-party-new/tools/Makefile.am
--- third-party-libevdev-bak/tools/Makefile.am 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/Makefile.am 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,29 @@
+noinst_PROGRAMS = libevdev-events libevdev-list-codes
+bin_PROGRAMS = \
+ touchpad-edge-detector \
+ mouse-dpi-tool \
+ libevdev-tweak-device
+
+AM_CPPFLAGS = $(GCC_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_srcdir)/libevdev
+libevdev_ldadd = $(top_builddir)/libevdev/libevdev.la
+
+libevdev_events_SOURCES = libevdev-events.c
+libevdev_events_LDADD = $(libevdev_ldadd)
+
+libevdev_list_codes_SOURCES = libevdev-list-codes.c
+libevdev_list_codes_LDADD = $(libevdev_ldadd)
+
+touchpad_edge_detector_SOURCES = touchpad-edge-detector.c
+touchpad_edge_detector_LDADD = $(libevdev_ldadd)
+
+mouse_dpi_tool_SOURCES = mouse-dpi-tool.c
+mouse_dpi_tool_LDADD = $(libevdev_ldadd)
+
+libevdev_tweak_device_SOURCES = libevdev-tweak-device.c
+libevdev_tweak_device_LDADD = $(libevdev_ldadd)
+
+dist_man_MANS = \
+ libevdev-tweak-device.1 \
+ mouse-dpi-tool.1 \
+ touchpad-edge-detector.1 \
+ $(NULL)
diff -Naur third-party-libevdev-bak/tools/Makefile.in third-party-new/tools/Makefile.in
--- third-party-libevdev-bak/tools/Makefile.in 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/Makefile.in 2022-03-25 12:33:32.000000000 +0800
@@ -0,0 +1,816 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = libevdev-events$(EXEEXT) \
+ libevdev-list-codes$(EXEEXT)
+bin_PROGRAMS = touchpad-edge-detector$(EXEEXT) mouse-dpi-tool$(EXEEXT) \
+ libevdev-tweak-device$(EXEEXT)
+subdir = tools
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am_libevdev_events_OBJECTS = libevdev-events.$(OBJEXT)
+libevdev_events_OBJECTS = $(am_libevdev_events_OBJECTS)
+libevdev_events_DEPENDENCIES = $(libevdev_ldadd)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+am_libevdev_list_codes_OBJECTS = libevdev-list-codes.$(OBJEXT)
+libevdev_list_codes_OBJECTS = $(am_libevdev_list_codes_OBJECTS)
+libevdev_list_codes_DEPENDENCIES = $(libevdev_ldadd)
+am_libevdev_tweak_device_OBJECTS = libevdev-tweak-device.$(OBJEXT)
+libevdev_tweak_device_OBJECTS = $(am_libevdev_tweak_device_OBJECTS)
+libevdev_tweak_device_DEPENDENCIES = $(libevdev_ldadd)
+am_mouse_dpi_tool_OBJECTS = mouse-dpi-tool.$(OBJEXT)
+mouse_dpi_tool_OBJECTS = $(am_mouse_dpi_tool_OBJECTS)
+mouse_dpi_tool_DEPENDENCIES = $(libevdev_ldadd)
+am_touchpad_edge_detector_OBJECTS = touchpad-edge-detector.$(OBJEXT)
+touchpad_edge_detector_OBJECTS = $(am_touchpad_edge_detector_OBJECTS)
+touchpad_edge_detector_DEPENDENCIES = $(libevdev_ldadd)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/libevdev-events.Po \
+ ./$(DEPDIR)/libevdev-list-codes.Po \
+ ./$(DEPDIR)/libevdev-tweak-device.Po \
+ ./$(DEPDIR)/mouse-dpi-tool.Po \
+ ./$(DEPDIR)/touchpad-edge-detector.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libevdev_events_SOURCES) $(libevdev_list_codes_SOURCES) \
+ $(libevdev_tweak_device_SOURCES) $(mouse_dpi_tool_SOURCES) \
+ $(touchpad_edge_detector_SOURCES)
+DIST_SOURCES = $(libevdev_events_SOURCES) \
+ $(libevdev_list_codes_SOURCES) \
+ $(libevdev_tweak_device_SOURCES) $(mouse_dpi_tool_SOURCES) \
+ $(touchpad_edge_detector_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+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
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_CFLAGS = @GCC_CFLAGS@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LDFLAGS = @GCOV_LDFLAGS@
+GNU_LD_FLAGS = @GNU_LD_FLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBEVDEV_LT_VERSION = @LIBEVDEV_LT_VERSION@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VALGRIND = @VALGRIND@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CPPFLAGS = $(GCC_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_srcdir)/libevdev
+libevdev_ldadd = $(top_builddir)/libevdev/libevdev.la
+libevdev_events_SOURCES = libevdev-events.c
+libevdev_events_LDADD = $(libevdev_ldadd)
+libevdev_list_codes_SOURCES = libevdev-list-codes.c
+libevdev_list_codes_LDADD = $(libevdev_ldadd)
+touchpad_edge_detector_SOURCES = touchpad-edge-detector.c
+touchpad_edge_detector_LDADD = $(libevdev_ldadd)
+mouse_dpi_tool_SOURCES = mouse-dpi-tool.c
+mouse_dpi_tool_LDADD = $(libevdev_ldadd)
+libevdev_tweak_device_SOURCES = libevdev-tweak-device.c
+libevdev_tweak_device_LDADD = $(libevdev_ldadd)
+dist_man_MANS = \
+ libevdev-tweak-device.1 \
+ mouse-dpi-tool.1 \
+ touchpad-edge-detector.1 \
+ $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tools/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ 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)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+libevdev-events$(EXEEXT): $(libevdev_events_OBJECTS) $(libevdev_events_DEPENDENCIES) $(EXTRA_libevdev_events_DEPENDENCIES)
+ @rm -f libevdev-events$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(libevdev_events_OBJECTS) $(libevdev_events_LDADD) $(LIBS)
+
+libevdev-list-codes$(EXEEXT): $(libevdev_list_codes_OBJECTS) $(libevdev_list_codes_DEPENDENCIES) $(EXTRA_libevdev_list_codes_DEPENDENCIES)
+ @rm -f libevdev-list-codes$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(libevdev_list_codes_OBJECTS) $(libevdev_list_codes_LDADD) $(LIBS)
+
+libevdev-tweak-device$(EXEEXT): $(libevdev_tweak_device_OBJECTS) $(libevdev_tweak_device_DEPENDENCIES) $(EXTRA_libevdev_tweak_device_DEPENDENCIES)
+ @rm -f libevdev-tweak-device$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(libevdev_tweak_device_OBJECTS) $(libevdev_tweak_device_LDADD) $(LIBS)
+
+mouse-dpi-tool$(EXEEXT): $(mouse_dpi_tool_OBJECTS) $(mouse_dpi_tool_DEPENDENCIES) $(EXTRA_mouse_dpi_tool_DEPENDENCIES)
+ @rm -f mouse-dpi-tool$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mouse_dpi_tool_OBJECTS) $(mouse_dpi_tool_LDADD) $(LIBS)
+
+touchpad-edge-detector$(EXEEXT): $(touchpad_edge_detector_OBJECTS) $(touchpad_edge_detector_DEPENDENCIES) $(EXTRA_touchpad_edge_detector_DEPENDENCIES)
+ @rm -f touchpad-edge-detector$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(touchpad_edge_detector_OBJECTS) $(touchpad_edge_detector_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev-events.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev-list-codes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevdev-tweak-device.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mouse-dpi-tool.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/touchpad-edge-detector.Po@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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+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)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/libevdev-events.Po
+ -rm -f ./$(DEPDIR)/libevdev-list-codes.Po
+ -rm -f ./$(DEPDIR)/libevdev-tweak-device.Po
+ -rm -f ./$(DEPDIR)/mouse-dpi-tool.Po
+ -rm -f ./$(DEPDIR)/touchpad-edge-detector.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/libevdev-events.Po
+ -rm -f ./$(DEPDIR)/libevdev-list-codes.Po
+ -rm -f ./$(DEPDIR)/libevdev-tweak-device.Po
+ -rm -f ./$(DEPDIR)/mouse-dpi-tool.Po
+ -rm -f ./$(DEPDIR)/touchpad-edge-detector.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-man1 install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
+ uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -Naur third-party-libevdev-bak/tools/libevdev-events.c third-party-new/tools/libevdev-events.c
--- third-party-libevdev-bak/tools/libevdev-events.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/libevdev-events.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,178 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ */
+
+#include "config.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <linux/input.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "libevdev/libevdev.h"
+
+static void
+print_abs_bits(struct libevdev *dev, int axis)
+{
+ const struct input_absinfo *abs;
+
+ if (!libevdev_has_event_code(dev, EV_ABS, axis))
+ return;
+
+ abs = libevdev_get_abs_info(dev, axis);
+
+ printf(" Value %6d\n", abs->value);
+ printf(" Min %6d\n", abs->minimum);
+ printf(" Max %6d\n", abs->maximum);
+ if (abs->fuzz)
+ printf(" Fuzz %6d\n", abs->fuzz);
+ if (abs->flat)
+ printf(" Flat %6d\n", abs->flat);
+ if (abs->resolution)
+ printf(" Resolution %6d\n", abs->resolution);
+}
+
+static void
+print_code_bits(struct libevdev *dev, unsigned int type, unsigned int max)
+{
+ unsigned int i;
+ for (i = 0; i <= max; i++) {
+ if (!libevdev_has_event_code(dev, type, i))
+ continue;
+
+ printf(" Event code %i (%s)\n", i, libevdev_event_code_get_name(type, i));
+ if (type == EV_ABS)
+ print_abs_bits(dev, i);
+ }
+}
+
+static void
+print_bits(struct libevdev *dev)
+{
+ unsigned int i;
+ printf("Supported events:\n");
+
+ for (i = 0; i <= EV_MAX; i++) {
+ if (libevdev_has_event_type(dev, i))
+ printf(" Event type %d (%s)\n", i, libevdev_event_type_get_name(i));
+ switch(i) {
+ case EV_KEY:
+ print_code_bits(dev, EV_KEY, KEY_MAX);
+ break;
+ case EV_REL:
+ print_code_bits(dev, EV_REL, REL_MAX);
+ break;
+ case EV_ABS:
+ print_code_bits(dev, EV_ABS, ABS_MAX);
+ break;
+ case EV_LED:
+ print_code_bits(dev, EV_LED, LED_MAX);
+ break;
+ }
+ }
+}
+
+static void
+print_props(struct libevdev *dev)
+{
+ unsigned int i;
+ printf("Properties:\n");
+
+ for (i = 0; i <= INPUT_PROP_MAX; i++) {
+ if (libevdev_has_property(dev, i))
+ printf(" Property type %d (%s)\n", i,
+ libevdev_property_get_name(i));
+ }
+}
+
+static int
+print_event(struct input_event *ev)
+{
+ if (ev->type == EV_SYN)
+ printf("Event: time %ld.%06ld, ++++++++++++++++++++ %s +++++++++++++++\n",
+ ev->input_event_sec,
+ ev->input_event_usec,
+ libevdev_event_type_get_name(ev->type));
+ else
+ printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %d\n",
+ ev->input_event_sec,
+ ev->input_event_usec,
+ ev->type,
+ libevdev_event_type_get_name(ev->type),
+ ev->code,
+ libevdev_event_code_get_name(ev->type, ev->code),
+ ev->value);
+ return 0;
+}
+
+static int
+print_sync_event(struct input_event *ev)
+{
+ printf("SYNC: ");
+ print_event(ev);
+ return 0;
+}
+
+int
+main(int argc, char **argv)
+{
+ struct libevdev *dev = NULL;
+ const char *file;
+ int fd;
+ int rc = 1;
+
+ if (argc < 2)
+ goto out;
+
+ file = argv[1];
+ fd = open(file, O_RDONLY);
+ if (fd < 0) {
+ perror("Failed to open device");
+ goto out;
+ }
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ if (rc < 0) {
+ fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));
+ goto out;
+ }
+
+ printf("Input device ID: bus %#x vendor %#x product %#x\n",
+ libevdev_get_id_bustype(dev),
+ libevdev_get_id_vendor(dev),
+ libevdev_get_id_product(dev));
+ printf("Evdev version: %x\n", libevdev_get_driver_version(dev));
+ printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
+ printf("Phys location: %s\n", libevdev_get_phys(dev));
+ printf("Uniq identifier: %s\n", libevdev_get_uniq(dev));
+ print_bits(dev);
+ print_props(dev);
+
+ do {
+ struct input_event ev;
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL|LIBEVDEV_READ_FLAG_BLOCKING, &ev);
+ if (rc == LIBEVDEV_READ_STATUS_SYNC) {
+ printf("::::::::::::::::::::: dropped ::::::::::::::::::::::\n");
+ while (rc == LIBEVDEV_READ_STATUS_SYNC) {
+ print_sync_event(&ev);
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev);
+ }
+ printf("::::::::::::::::::::: re-synced ::::::::::::::::::::::\n");
+ } else if (rc == LIBEVDEV_READ_STATUS_SUCCESS)
+ print_event(&ev);
+ } while (rc == LIBEVDEV_READ_STATUS_SYNC || rc == LIBEVDEV_READ_STATUS_SUCCESS || rc == -EAGAIN);
+
+ if (rc != LIBEVDEV_READ_STATUS_SUCCESS && rc != -EAGAIN)
+ fprintf(stderr, "Failed to handle events: %s\n", strerror(-rc));
+
+ rc = 0;
+out:
+ libevdev_free(dev);
+
+ return rc;
+}
diff -Naur third-party-libevdev-bak/tools/libevdev-list-codes.c third-party-new/tools/libevdev-list-codes.c
--- third-party-libevdev-bak/tools/libevdev-list-codes.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/libevdev-list-codes.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2021 Red Hat, Inc.
+ */
+
+/* Lists all event types and codes currently known by libevdev. */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <linux/input.h>
+#include "libevdev/libevdev.h"
+
+static void
+list_event_codes(unsigned int type, unsigned int max)
+{
+ const char *typestr = libevdev_event_type_get_name(type);
+
+ if (!typestr)
+ return;
+
+ printf("- %s:\n", typestr);
+
+ for (unsigned int code = 0; code <= max; code++) {
+ const char *str = libevdev_event_code_get_name(type, code);
+
+ if (!str)
+ continue;
+
+ printf(" %d: %s\n", code, str);
+ }
+}
+
+int
+main (int argc, char **argv)
+{
+ printf("codes:\n");
+ for (unsigned int type = 0; type <= EV_MAX; type++) {
+ int max = libevdev_event_type_get_max(type);
+ if (max == -1)
+ continue;
+
+ list_event_codes(type, (unsigned int)max);
+ }
+
+ return 0;
+}
diff -Naur third-party-libevdev-bak/tools/libevdev-tweak-device.1 third-party-new/tools/libevdev-tweak-device.1
--- third-party-libevdev-bak/tools/libevdev-tweak-device.1 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/libevdev-tweak-device.1 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,69 @@
+.TH LIBEVDEV-TWEAK-DEVICE "1"
+.SH NAME
+libevdev-tweak-device \- modify an evdev kernel device
+.SH SYNOPSIS
+.B libevdev-tweak-device
+--abs ABS_X [--min a] [--max b] [--res c] [--fuzz d] [--flat e]
+/dev/input/eventX
+.B libevdev-tweak-device
+--resolution res[,yres] /dev/input/eventX
+.PP
+.B libevdev-tweak-device
+--led LED_NUML --on|--off /dev/input/eventX
+.SH DESCRIPTION
+.PP
+The
+.I libevdev-tweak-device
+tool changes the properties of the evdev kernel device at
+.I /dev/input/eventX.
+Currently this may be used to force an LED on or off, or to change the
+properties of an absolute axis (e.g. its minimum/maximum range or
+resolution). Changes are permanent until the device is removed.
+.SH OPTIONS
+.SS Changing absolute axes
+.TP 8
+.B --abs axis
+Change the given named ABS_ kernel axis, e.g. ABS_X. For a full list, see linux/input.h.
+Each of the options
+.B min, max, res, fuzz, flat
+may be given.
+.TP 8
+.B --min v
+Set the absinfo minimum to the value v
+.TP 8
+.B --max v
+Set the absinfo maximum to the value v
+.TP 8
+.B --res v
+Set the absinfo resolution to the value v
+.TP 8
+.B --fuzz v
+Set the absinfo fuzz to the value v
+.TP 8
+.B --flat v
+Set the absinfo flat to the value v
+.PP
+.SS Changing the x/y resolution
+.TP 8
+.B --resolution res[,yres]
+Changes the resolution of the ABS_X, ABS_MT_POSITION_X, ABS_Y, and
+ABS_MT_POSITION_Y axis to the given resolution. If only one resolution value
+is provided, both x and y axis are set to the same resolution, otherwise the
+first resolution value is applied to the x axes and the second value to the
+y axes.
+.SS Toggling LEDs
+.TP 8
+.B --led led
+Change the given LED, e.g. LED_NUML. For a full list, see linux/input.h.
+.TP 8
+.B --on
+Change the LED state to on
+.TP 8
+.B --off
+Change the LED state to off
+.SH NOTES
+.PP
+The kernel does not notify processes about absinfo property changes. Any
+process that has previously obtained the absinfo from the device will remain
+on the old information. This makes using this tool potentially racy, use
+with caution.
diff -Naur third-party-libevdev-bak/tools/libevdev-tweak-device.c third-party-new/tools/libevdev-tweak-device.c
--- third-party-libevdev-bak/tools/libevdev-tweak-device.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/libevdev-tweak-device.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,465 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2014 Red Hat, Inc.
+ */
+
+#include "config.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <libgen.h>
+#include <limits.h>
+#include <linux/input.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "libevdev/libevdev.h"
+
+static void
+usage(const char *progname)
+{
+ printf("%s --abs <axis> [--min min] [--max max] [--res res] [--fuzz fuzz] [--flat flat] /dev/input/eventXYZ\n"
+ "\tChange the absinfo struct for the named axis\n"
+ "%s --resolution res[,yres] /dev/input/eventXYZ\n"
+ "\tChange the x/y resolution on the given device\n"
+ "%s --led <led> --on|--off /dev/input/eventXYZ\n"
+ "\tEnable or disable the named LED\n",
+ progname,
+ progname,
+ progname);
+}
+
+enum mode {
+ MODE_NONE = 0,
+ MODE_ABS,
+ MODE_LED,
+ MODE_RESOLUTION,
+ MODE_HELP,
+};
+
+enum opts {
+ OPT_ABS = 1 << 0,
+ OPT_MIN = 1 << 1,
+ OPT_MAX = 1 << 2,
+ OPT_FUZZ = 1 << 3,
+ OPT_FLAT = 1 << 4,
+ OPT_RES = 1 << 5,
+ OPT_LED = 1 << 6,
+ OPT_ON = 1 << 7,
+ OPT_OFF = 1 << 8,
+ OPT_RESOLUTION = 1 << 9,
+ OPT_HELP = 1 << 10,
+};
+
+static bool
+parse_resolution_argument(const char *arg, int *xres, int *yres)
+{
+ int matched;
+
+ matched = sscanf(arg, "%d,%d", xres, yres);
+
+ switch(matched) {
+ case 2:
+ break;
+ case 1:
+ *yres = *xres;
+ break;
+ default:
+ return false;
+ }
+
+ return true;
+}
+
+static inline bool
+safe_atoi(const char *str, int *val)
+{
+ char *endptr;
+ long v;
+
+ v = strtol(str, &endptr, 10);
+ if (str == endptr)
+ return false;
+ if (*str != '\0' && *endptr != '\0')
+ return false;
+
+ if (v > INT_MAX || v < INT_MIN)
+ return false;
+
+ *val = v;
+ return true;
+}
+
+static int
+parse_event_code(int type, const char *str)
+{
+ int code;
+
+ code = libevdev_event_code_from_name(type, str);
+ if (code != -1)
+ return code;
+
+ if (safe_atoi(str, &code))
+ return code;
+
+ return -1;
+}
+
+static int
+parse_options_abs(int argc, char **argv, unsigned int *changes,
+ int *axis, struct input_absinfo *absinfo)
+{
+ int rc = 1;
+ int c;
+ int option_index = 0;
+ static struct option opts[] = {
+ { "abs", 1, 0, OPT_ABS },
+ { "min", 1, 0, OPT_MIN },
+ { "max", 1, 0, OPT_MAX },
+ { "fuzz", 1, 0, OPT_FUZZ },
+ { "flat", 1, 0, OPT_FLAT },
+ { "res", 1, 0, OPT_RES },
+ { NULL, 0, 0, 0 },
+ };
+
+ if (argc < 2)
+ goto error;
+
+ optind = 1;
+ while (1) {
+ c = getopt_long(argc, argv, "h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case OPT_ABS:
+ *axis = parse_event_code(EV_ABS, optarg);
+ if (*axis == -1)
+ goto error;
+ break;
+ case OPT_MIN:
+ absinfo->minimum = atoi(optarg);
+ break;
+ case OPT_MAX:
+ absinfo->maximum = atoi(optarg);
+ break;
+ case OPT_FUZZ:
+ absinfo->fuzz = atoi(optarg);
+ break;
+ case OPT_FLAT:
+ absinfo->flat = atoi(optarg);
+ break;
+ case OPT_RES:
+ absinfo->resolution = atoi(optarg);
+ break;
+ default:
+ goto error;
+ }
+ *changes |= c;
+ }
+ rc = 0;
+error:
+ return rc;
+}
+
+static int
+parse_options_led(int argc, char **argv, int *led, int *led_state)
+{
+ int rc = 1;
+ int c;
+ int option_index = 0;
+ static struct option opts[] = {
+ { "led", 1, 0, OPT_LED },
+ { "on", 0, 0, OPT_ON },
+ { "off", 0, 0, OPT_OFF },
+ { NULL, 0, 0, 0 },
+ };
+
+ if (argc < 2)
+ goto error;
+
+ optind = 1;
+ while (1) {
+ c = getopt_long(argc, argv, "h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case OPT_LED:
+ *led = parse_event_code(EV_LED, optarg);
+ if (*led == -1)
+ goto error;
+ break;
+ case OPT_ON:
+ if (*led_state != -1)
+ goto error;
+ *led_state = 1;
+ break;
+ case OPT_OFF:
+ if (*led_state != -1)
+ goto error;
+ *led_state = 0;
+ break;
+ default:
+ goto error;
+ }
+ }
+
+ rc = 0;
+error:
+ return rc;
+}
+
+static int
+parse_options_resolution(int argc, char **argv, int *xres, int *yres)
+{
+ int rc = 1;
+ int c;
+ int option_index = 0;
+ static struct option opts[] = {
+ { "resolution", 1, 0, OPT_RESOLUTION },
+ { NULL, 0, 0, 0 },
+ };
+
+ if (argc < 2)
+ goto error;
+
+ optind = 1;
+ while (1) {
+ c = getopt_long(argc, argv, "h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case OPT_RESOLUTION:
+ if (!parse_resolution_argument(optarg,
+ xres, yres))
+ goto error;
+ break;
+ default:
+ goto error;
+ }
+ }
+
+ rc = 0;
+error:
+ return rc;
+}
+
+static enum mode
+parse_options_mode(int argc, char **argv)
+{
+ int c;
+ int option_index = 0;
+ static const struct option opts[] = {
+ { "abs", 1, 0, OPT_ABS },
+ { "led", 1, 0, OPT_LED },
+ { "resolution", 1, 0, OPT_RESOLUTION },
+ { "help", 0, 0, OPT_HELP },
+ { NULL, 0, 0, 0 },
+ };
+ enum mode mode = MODE_NONE;
+
+ if (argc < 2)
+ return mode;
+
+ while (mode == MODE_NONE) {
+ c = getopt_long(argc, argv, "h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case 'h':
+ case OPT_HELP:
+ mode = MODE_HELP;
+ break;
+ case OPT_ABS:
+ mode = MODE_ABS;
+ break;
+ case OPT_LED:
+ mode = MODE_LED;
+ break;
+ case OPT_RESOLUTION:
+ mode = MODE_RESOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (optind >= argc && mode != MODE_HELP)
+ return MODE_NONE;
+
+ return mode;
+}
+
+static void
+set_abs(struct libevdev *dev, unsigned int changes,
+ unsigned int axis, struct input_absinfo *absinfo)
+{
+ int rc;
+ struct input_absinfo abs;
+ const struct input_absinfo *a;
+
+ if ((a = libevdev_get_abs_info(dev, axis)) == NULL) {
+ fprintf(stderr,
+ "Device '%s' doesn't have axis %s\n",
+ libevdev_get_name(dev),
+ libevdev_event_code_get_name(EV_ABS, axis));
+ return;
+ }
+
+ abs = *a;
+ if (changes & OPT_MIN)
+ abs.minimum = absinfo->minimum;
+ if (changes & OPT_MAX)
+ abs.maximum = absinfo->maximum;
+ if (changes & OPT_FUZZ)
+ abs.fuzz = absinfo->fuzz;
+ if (changes & OPT_FLAT)
+ abs.flat = absinfo->flat;
+ if (changes & OPT_RES)
+ abs.resolution = absinfo->resolution;
+
+ rc = libevdev_kernel_set_abs_info(dev, axis, &abs);
+ if (rc != 0)
+ fprintf(stderr,
+ "Failed to set absinfo %s: %s",
+ libevdev_event_code_get_name(EV_ABS, axis),
+ strerror(-rc));
+}
+
+static void
+set_led(struct libevdev *dev, unsigned int led, int led_state)
+{
+ int rc;
+ enum libevdev_led_value state =
+ led_state ? LIBEVDEV_LED_ON : LIBEVDEV_LED_OFF;
+
+ if (!libevdev_has_event_code(dev, EV_LED, led)) {
+ fprintf(stderr,
+ "Device '%s' doesn't have %s\n",
+ libevdev_get_name(dev),
+ libevdev_event_code_get_name(EV_LED, led));
+ return;
+ }
+
+ rc = libevdev_kernel_set_led_value(dev, led, state);
+ if (rc != 0)
+ fprintf(stderr,
+ "Failed to set LED %s: %s",
+ libevdev_event_code_get_name(EV_LED, led),
+ strerror(-rc));
+}
+
+static void
+set_resolution(struct libevdev *dev, int xres, int yres)
+{
+ struct input_absinfo abs;
+
+ abs.resolution = xres;
+ if (libevdev_has_event_code(dev, EV_ABS, ABS_X))
+ set_abs(dev, OPT_RES, ABS_X, &abs);
+ if (libevdev_has_event_code(dev, EV_ABS, ABS_MT_POSITION_X))
+ set_abs(dev, OPT_RES, ABS_MT_POSITION_X, &abs);
+
+ abs.resolution = yres;
+ if (libevdev_has_event_code(dev, EV_ABS, ABS_Y))
+ set_abs(dev, OPT_RES, ABS_Y, &abs);
+ if (libevdev_has_event_code(dev, EV_ABS, ABS_MT_POSITION_Y))
+ set_abs(dev, OPT_RES, ABS_MT_POSITION_Y, &abs);
+}
+
+int
+main(int argc, char **argv)
+{
+ struct libevdev *dev = NULL;
+ int fd = -1;
+ int rc = EXIT_FAILURE;
+ enum mode mode;
+ const char *path;
+ struct input_absinfo absinfo;
+ int axis = -1;
+ int led = -1;
+ int led_state = -1;
+ unsigned int changes = 0; /* bitmask of changes */
+ int xres = 0,
+ yres = 0;
+
+ mode = parse_options_mode(argc, argv);
+ switch (mode) {
+ case MODE_HELP:
+ rc = EXIT_SUCCESS;
+ /* fallthrough */
+ case MODE_NONE:
+ usage(basename(argv[0]));
+ goto out;
+ case MODE_ABS:
+ rc = parse_options_abs(argc, argv, &changes, &axis,
+ &absinfo);
+ break;
+ case MODE_LED:
+ rc = parse_options_led(argc, argv, &led, &led_state);
+ break;
+ case MODE_RESOLUTION:
+ rc = parse_options_resolution(argc, argv, &xres,
+ &yres);
+ break;
+ default:
+ fprintf(stderr,
+ "++?????++ Out of Cheese Error. Redo From Start.\n");
+ goto out;
+ }
+
+ if (rc != EXIT_SUCCESS)
+ goto out;
+
+ if (optind >= argc) {
+ rc = EXIT_FAILURE;
+ usage(basename(argv[0]));
+ goto out;
+ }
+
+ path = argv[optind];
+
+ fd = open(path, O_RDWR);
+ if (fd < 0) {
+ rc = EXIT_FAILURE;
+ perror("Failed to open device");
+ goto out;
+ }
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ if (rc < 0) {
+ fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));
+ goto out;
+ }
+
+ switch (mode) {
+ case MODE_ABS:
+ set_abs(dev, changes, axis, &absinfo);
+ break;
+ case MODE_LED:
+ set_led(dev, led, led_state);
+ break;
+ case MODE_RESOLUTION:
+ set_resolution(dev, xres, yres);
+ break;
+ default:
+ break;
+ }
+
+out:
+ libevdev_free(dev);
+ if (fd != -1)
+ close(fd);
+
+ return rc;
+}
diff -Naur third-party-libevdev-bak/tools/mouse-dpi-tool.1 third-party-new/tools/mouse-dpi-tool.1
--- third-party-libevdev-bak/tools/mouse-dpi-tool.1 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/mouse-dpi-tool.1 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,18 @@
+.TH MOUSE-DPI-TOOL "1"
+.SH NAME
+mouse-dpi-tool \- mouse resolution estimation tool
+.SH SYNOPSIS
+.BR mouse-dpi-tool " <\fIevdev device\fP>"
+.SH DESCRIPTION
+.B mouse-dpi-tool
+reads relative events (mouse movement events) and calculates the
+distance covered and maximum frequency of the incoming events.
+Combined with a measurement of the actual distance physically covered,
+this allows the mouse's resolution to be estimated.
+.PP
+Some mouse devices provide dynamic frequencies, it is
+recommended to measure multiple times to obtain the highest value.
+.PP
+.SH OPTIONS
+.B mouse-dpi-tool
+accepts no options.
diff -Naur third-party-libevdev-bak/tools/mouse-dpi-tool.c third-party-new/tools/mouse-dpi-tool.c
--- third-party-libevdev-bak/tools/mouse-dpi-tool.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/mouse-dpi-tool.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,293 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2014 Red Hat, Inc.
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <limits.h>
+#include <poll.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "libevdev/libevdev.h"
+
+#define min(a, b) (((a) < (b)) ? (a) : (b))
+#define max(a, b) (((a) > (b)) ? (a) : (b))
+
+static int signalled = 0;
+
+struct measurements {
+ int distance;
+ double max_frequency;
+ double *frequencies;
+ size_t frequencies_sz;
+ size_t nfrequencies;
+ uint64_t us;
+};
+
+static int
+usage(const char *progname) {
+ printf("Usage: %s /dev/input/event0\n", progname);
+ printf("\n");
+ printf("This tool reads relative events from the kernel and calculates\n"
+ "the distance covered and maximum frequency of the incoming events.\n"
+ "Some mouse devices provide dynamic frequencies, it is\n"
+ "recommended to measure multiple times to obtain the highest value.\n");
+ return 1;
+}
+
+static inline double
+get_frequency(uint64_t last, uint64_t current)
+{
+ return 1000000.0/(current - last);
+}
+
+static inline void
+push_frequency(struct measurements *m, double freq)
+{
+ if (m->nfrequencies == m->frequencies_sz) {
+ m->frequencies_sz += 100;
+ m->frequencies = realloc(m->frequencies,
+ m->frequencies_sz * sizeof *m->frequencies);
+ if (!m->frequencies)
+ abort();
+ }
+
+ m->frequencies[m->nfrequencies] = freq;
+ m->nfrequencies++;
+}
+
+static int
+print_current_values(const struct measurements *m)
+{
+ static int progress = 0;
+ char status = 0;
+
+ switch (progress) {
+ case 0: status = '|'; break;
+ case 1: status = '/'; break;
+ case 2: status = '-'; break;
+ case 3: status = '\\'; break;
+ default:
+ status = '?';
+ break;
+ }
+
+ progress = (progress + 1) % 4;
+
+ printf("\rCovered distance in device units: %8d at frequency %3.1fHz %c",
+ abs(m->distance), m->max_frequency, status);
+
+ return 0;
+}
+
+static int
+handle_event(struct measurements *m, const struct input_event *ev)
+{
+ if (ev->type == EV_SYN) {
+ const int idle_reset = 3000000; /* us */
+ uint64_t last_us = m->us;
+
+ m->us = ev->input_event_sec * 1000000 + ev->input_event_usec;
+
+ /* reset after pause */
+ if (last_us + idle_reset < m->us) {
+ m->max_frequency = 0.0;
+ m->distance = 0;
+ } else {
+ double freq = get_frequency(last_us, m->us);
+ push_frequency(m, freq);
+ m->max_frequency = max(freq, m->max_frequency);
+ return print_current_values(m);
+ }
+
+ return 0;
+ }
+
+ if (ev->type != EV_REL)
+ return 0;
+
+ switch(ev->code) {
+ case REL_X:
+ m->distance += ev->value;
+ break;
+ }
+
+ return 0;
+}
+
+static void
+signal_handler(__attribute__((__unused__)) int signal)
+{
+ signalled++;
+}
+
+static int
+mainloop(struct libevdev *dev, struct measurements *m) {
+ struct pollfd fds;
+
+ fds.fd = libevdev_get_fd(dev);
+ fds.events = POLLIN;
+
+ signal(SIGINT, signal_handler);
+
+ while (poll(&fds, 1, -1)) {
+ struct input_event ev;
+ int rc;
+
+ if (signalled)
+ break;
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ if (rc == LIBEVDEV_READ_STATUS_SYNC) {
+ fprintf(stderr, "Error: cannot keep up\n");
+ return 1;
+ }
+
+ if (rc != -EAGAIN && rc < 0) {
+ fprintf(stderr, "Error: %s\n", strerror(-rc));
+ return 1;
+ }
+
+ if (rc == LIBEVDEV_READ_STATUS_SUCCESS)
+ handle_event(m, &ev);
+ } while (rc != -EAGAIN);
+ }
+
+ return 0;
+}
+
+static inline double
+mean_frequency(struct measurements *m)
+{
+ int idx;
+
+ idx = m->nfrequencies/2;
+ return m->frequencies[idx];
+}
+
+static inline const char*
+bustype(int bustype)
+{
+ const char *bus;
+
+ switch(bustype) {
+ case BUS_PCI: bus = "pci"; break;
+ case BUS_ISAPNP: bus = "isapnp"; break;
+ case BUS_USB: bus = "usb"; break;
+ case BUS_HIL: bus = "hil"; break;
+ case BUS_BLUETOOTH: bus = "bluetooth"; break;
+ case BUS_VIRTUAL: bus = "virtual"; break;
+ default: bus = "unknown bus type"; break;
+ }
+
+ return bus;
+}
+
+static void
+print_summary(struct libevdev *dev, struct measurements *m)
+{
+ int res;
+ int max_freq, mean_freq;
+
+ if (m->nfrequencies == 0) {
+ fprintf(stderr, "Error: no matching events received.\n");
+ return;
+ }
+
+ max_freq = (int)m->max_frequency;
+ mean_freq = (int)mean_frequency(m);
+
+ printf("Estimated sampling frequency: %dHz (mean %dHz)\n",
+ max_freq, mean_freq);
+
+ if (max_freq > mean_freq * 1.3)
+ printf("WARNING: Max frequency is more than 30%% higher "
+ "than mean frequency. Manual verification required!\n");
+
+ printf("To calculate resolution, measure physical distance covered\n"
+ "and look up the matching resolution in the table below\n");
+
+ m->distance = abs(m->distance);
+
+ /* If the mouse has more than 2500dpi, the manufacturer usually
+ shows off on their website anyway */
+ for (res = 400; res <= 2500; res += 200) {
+ double inch = m->distance/(double)res;
+ printf("%8dmm %8.2fin %8ddpi\n",
+ (int)(inch * 25.4), inch, res);
+ }
+ printf("If your resolution is not in the list, calculate it with:\n"
+ "\tresolution=%d/inches, or\n"
+ "\tresolution=%d * 25.4/mm\n", m->distance, m->distance);
+
+ printf("\n");
+ printf("Entry for hwdb match (replace XXX with the resolution in DPI):\n"
+ "mouse:%s:v%04xp%04x:name:%s:\n"
+ " MOUSE_DPI=XXX@%d\n",
+ bustype(libevdev_get_id_bustype(dev)),
+ libevdev_get_id_vendor(dev),
+ libevdev_get_id_product(dev),
+ libevdev_get_name(dev),
+ (int)m->max_frequency);
+}
+
+int
+main (int argc, char **argv) {
+ int rc;
+ int fd;
+ const char *path;
+ struct libevdev *dev;
+ struct measurements measurements = {0};
+
+ if (argc < 2)
+ return usage(basename(argv[0]));
+
+ path = argv[1];
+ if (path[0] == '-')
+ return usage(basename(argv[0]));
+
+ fd = open(path, O_RDONLY|O_NONBLOCK);
+ if (fd < 0) {
+ fprintf(stderr, "Error opening the device: %s\n", strerror(errno));
+ return 1;
+ }
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ if (rc != 0) {
+ fprintf(stderr, "Error fetching the device info: %s\n", strerror(-rc));
+ return 1;
+ }
+
+ if (libevdev_grab(dev, LIBEVDEV_GRAB) != 0) {
+ fprintf(stderr, "Error: cannot grab the device, something else is grabbing it.\n");
+ fprintf(stderr, "Use 'fuser -v %s' to find processes with an open fd\n", path);
+ return 1;
+ }
+ libevdev_grab(dev, LIBEVDEV_UNGRAB);
+
+ printf("Mouse %s on %s\n", libevdev_get_name(dev), path);
+ printf("Move the device 250mm/10in or more along the x-axis.\n");
+ printf("Pause 3 seconds before movement to reset, Ctrl+C to exit.\n");
+ setbuf(stdout, NULL);
+
+ rc = mainloop(dev, &measurements);
+
+ printf("\n");
+
+ print_summary(dev, &measurements);
+
+ libevdev_free(dev);
+ close(fd);
+
+ return rc;
+}
diff -Naur third-party-libevdev-bak/tools/touchpad-edge-detector.1 third-party-new/tools/touchpad-edge-detector.1
--- third-party-libevdev-bak/tools/touchpad-edge-detector.1 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/touchpad-edge-detector.1 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,44 @@
+.TH TOUCHPAD-EDGE-DETECTOR "1"
+.SH NAME
+touchpad-edge-detector \- print the axis ranges for a touchpad device
+.SH SYNOPSIS
+.B touchpad-edge-detector [--help] \fIWxH /dev/input/eventX\fR
+.SH DESCRIPTION
+.PP
+The
+.B touchpad-edge-detector
+tool reads touchpad events from the kernel and records the minimum and
+maximum coordinates based on user input. This is an interactive tool, the
+user must move a finger around the touchpad, attempting to trigger an
+event at all edges of the touchpad.
+.PP
+To terminate the event collection and print a summary, press Ctrl+C. It is
+recommended that the tool is run several times to guarantee a reliable
+result.
+.SH OPTIONS
+.TP 8
+.I WxH
+The width and height of the touchpad in mm. For a touchpad 100mm wide and
+75mm high, the argument is thus \fI100x75\fR. This is a required argument.
+.TP 8
+.I /dev/input/eventX
+The event node of the touchpad to read events from. A list of possible event
+nodes can be obtained with either one of the following commands: \fBlibinput
+record\fR, \fBevemu-record\fR, or \fBevtest\fR. Alternatively the event node
+for a device is listed in the \fBHandlers=\fR line \fI/proc/bus/input/devices\fR.
+This is a required argument.
+.TP 8
+.B --help
+Print a short help description
+.SH NOTES
+.PP
+On completion, this tool prints a summary of the collected events and a
+suggested udev rule. Due to rounding errors it is rare to get an exact match
+for the touchpad's dimensions, but any discrepancy of more than 5mm should
+be corrected with the suggested udev rule.
+.PP
+The udev rule should be simplified and submitted as a pull request to the
+system repository at \fIhttps://github.com/systemd/systemd\fR. For further
+guidance, see the file \fI/usr/lib/udev/hwdb.d/60-evdev.hwdb\fR.
+.SH SEE ALSO
+udev(7)
diff -Naur third-party-libevdev-bak/tools/touchpad-edge-detector.c third-party-new/tools/touchpad-edge-detector.c
--- third-party-libevdev-bak/tools/touchpad-edge-detector.c 1970-01-01 08:00:00.000000000 +0800
+++ third-party-new/tools/touchpad-edge-detector.c 2022-03-25 12:33:26.000000000 +0800
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2014 Red Hat, Inc.
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <limits.h>
+#include <math.h>
+#include <poll.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "libevdev/libevdev.h"
+
+#define min(a, b) (((a) < (b)) ? (a) : (b))
+#define max(a, b) (((a) > (b)) ? (a) : (b))
+
+static int signalled = 0;
+
+static int
+usage(const char *progname) {
+ printf("Usage: %s 12x34 /dev/input/eventX\n", progname);
+ printf("\n");
+ printf("This tool reads the touchpad events from the kernel and calculates\n "
+ "the minimum and maximum for the x and y coordinates, respectively.\n"
+ "The first argument is the physical size of the touchpad in mm (WIDTHxHEIGHT).\n");
+ return 1;
+}
+
+struct dimensions {
+ int top, bottom, left, right;
+};
+
+struct size {
+ int w, h;
+};
+
+static int
+print_current_values(const struct dimensions *d)
+{
+ static int progress;
+ char status = 0;
+
+ switch (progress) {
+ case 0: status = '|'; break;
+ case 1: status = '/'; break;
+ case 2: status = '-'; break;
+ case 3: status = '\\'; break;
+ }
+
+ progress = (progress + 1) % 4;
+
+ printf("\rTouchpad sends: x [%d..%d], y [%d..%d] %c",
+ d->left, d->right, d->top, d->bottom, status);
+ return 0;
+}
+
+static int
+handle_event(struct dimensions *d, const struct input_event *ev) {
+ if (ev->type == EV_SYN)
+ return print_current_values(d);
+
+ if (ev->type != EV_ABS)
+ return 0;
+
+ switch(ev->code) {
+ case ABS_X:
+ case ABS_MT_POSITION_X:
+ d->left = min(d->left, ev->value);
+ d->right = max(d->right, ev->value);
+ break;
+ case ABS_Y:
+ case ABS_MT_POSITION_Y:
+ d->top = min(d->top, ev->value);
+ d->bottom = max(d->bottom, ev->value);
+ break;
+ }
+
+ return 0;
+}
+
+static void
+signal_handler(__attribute__((__unused__)) int signal)
+{
+ signalled++;
+}
+
+static int
+mainloop(struct libevdev *dev, struct dimensions *dim) {
+ struct pollfd fds;
+
+ fds.fd = libevdev_get_fd(dev);
+ fds.events = POLLIN;
+
+ signal(SIGINT, signal_handler);
+
+ while (poll(&fds, 1, -1)) {
+ struct input_event ev;
+ int rc;
+
+ if (signalled)
+ break;
+
+ do {
+ rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
+ if (rc == LIBEVDEV_READ_STATUS_SYNC) {
+ fprintf(stderr, "Error: cannot keep up\n");
+ return 1;
+ }
+
+ if (rc != -EAGAIN && rc < 0) {
+ fprintf(stderr, "Error: %s\n", strerror(-rc));
+ return 1;
+
+ }
+
+ if (rc == LIBEVDEV_READ_STATUS_SUCCESS)
+ handle_event(dim, &ev);
+ } while (rc != -EAGAIN);
+ }
+
+ return 0;
+}
+
+static inline void
+pid_vid_matchstr(struct libevdev *dev, char *match, size_t sz)
+{
+ snprintf(match, sz, "input:b%04Xv%04Xp%04X",
+ libevdev_get_id_bustype(dev),
+ libevdev_get_id_vendor(dev),
+ libevdev_get_id_product(dev));
+}
+
+static inline void
+dmi_matchstr(struct libevdev *dev, char *match, size_t sz)
+{
+ char modalias[PATH_MAX];
+ FILE *fp;
+
+ fp = fopen("/sys/class/dmi/id/modalias", "r");
+ if (!fp || fgets(modalias, sizeof(modalias), fp) == NULL) {
+ sprintf(match, "ERROR READING DMI MODALIAS");
+ if (fp)
+ fclose(fp);
+ return;
+ }
+
+ fclose(fp);
+
+ modalias[strlen(modalias) - 1] = '\0'; /* drop \n */
+ snprintf(match, sz, "name:%s:%s", libevdev_get_name(dev), modalias);
+}
+
+static void
+print_udev_override_rule(struct libevdev *dev,
+ const struct dimensions *dim,
+ const struct size *size) {
+ const struct input_absinfo *x, *y;
+ char match[PATH_MAX];
+ int w, h;
+ int xres, yres;
+
+ x = libevdev_get_abs_info(dev, ABS_X);
+ y = libevdev_get_abs_info(dev, ABS_Y);
+ w = dim->right - dim->left;
+ h = dim->bottom - dim->top;
+ xres = round((double)w/size->w);
+ yres = round((double)h/size->h);
+
+ if (x->resolution && y->resolution) {
+ int width = x->maximum - x->minimum,
+ height = y->maximum - y->minimum;
+ printf("Touchpad size as listed by the kernel: %dx%dmm\n",
+ width/x->resolution, height/y->resolution);
+ } else {
+ printf("Touchpad has no resolution, size unknown\n");
+ }
+
+ printf("User-specified touchpad size: %dx%dmm\n", size->w, size->h);
+ printf("Calculated ranges: %d/%d\n", w, h);
+ printf("\n");
+ printf("Suggested udev rule:\n");
+
+ switch(libevdev_get_id_bustype(dev)) {
+ case BUS_USB:
+ case BUS_BLUETOOTH:
+ pid_vid_matchstr(dev, match, sizeof(match));
+ break;
+ default:
+ dmi_matchstr(dev, match, sizeof(match));
+ break;
+ }
+
+ printf("# <Laptop model description goes here>\n"
+ "evdev:%s*\n"
+ " EVDEV_ABS_00=%d:%d:%d\n"
+ " EVDEV_ABS_01=%d:%d:%d\n",
+ match,
+ dim->left, dim->right, xres,
+ dim->top, dim->bottom, yres);
+ if (libevdev_has_event_code(dev, EV_ABS, ABS_MT_POSITION_X))
+ printf(" EVDEV_ABS_35=%d:%d:%d\n"
+ " EVDEV_ABS_36=%d:%d:%d\n",
+ dim->left, dim->right, xres,
+ dim->top, dim->bottom, yres);
+}
+
+int main (int argc, char **argv) {
+ int rc;
+ int fd;
+ const char *path;
+ struct libevdev *dev;
+ struct dimensions dim;
+ struct size size;
+
+ if (argc < 3)
+ return usage(basename(argv[0]));
+
+ if (sscanf(argv[1], "%dx%d", &size.w, &size.h) != 2 ||
+ size.w <= 0 || size.h <= 0)
+ return usage(basename(argv[0]));
+
+ if (size.w < 30 || size.h < 30) {
+ fprintf(stderr,
+ "%dx%dmm is too small for a touchpad.\n"
+ "Please specify the touchpad size in mm.\n",
+ size.w, size.h);
+ return 1;
+ }
+
+ path = argv[2];
+ if (path[0] == '-')
+ return usage(basename(argv[0]));
+
+ fd = open(path, O_RDONLY|O_NONBLOCK);
+ if (fd < 0) {
+ fprintf(stderr, "Error opening the device: %s\n", strerror(errno));
+ return 1;
+ }
+
+ rc = libevdev_new_from_fd(fd, &dev);
+ if (rc != 0) {
+ fprintf(stderr, "Error fetching the device info: %s\n", strerror(-rc));
+ return 1;
+ }
+
+ if (libevdev_grab(dev, LIBEVDEV_GRAB) != 0) {
+ fprintf(stderr, "Error: cannot grab the device, something else is grabbing it.\n");
+ fprintf(stderr, "Use 'fuser -v %s' to find processes with an open fd\n", path);
+ return 1;
+ }
+ libevdev_grab(dev, LIBEVDEV_UNGRAB);
+
+ if (!libevdev_has_event_code(dev, EV_ABS, ABS_X) ||
+ !libevdev_has_event_code(dev, EV_ABS, ABS_Y)) {
+ fprintf(stderr, "Error: this device does not have abs axes\n");
+ rc = EXIT_FAILURE;
+ goto out;
+ }
+
+ dim.left = INT_MAX;
+ dim.right = INT_MIN;
+ dim.top = INT_MAX;
+ dim.bottom = INT_MIN;
+
+ printf("Touchpad %s on %s\n", libevdev_get_name(dev), path);
+ printf("Move one finger around the touchpad to detect the actual edges\n");
+ printf("Kernel says: x [%d..%d], y [%d..%d]\n",
+ libevdev_get_abs_minimum(dev, ABS_X),
+ libevdev_get_abs_maximum(dev, ABS_X),
+ libevdev_get_abs_minimum(dev, ABS_Y),
+ libevdev_get_abs_maximum(dev, ABS_Y));
+
+ setbuf(stdout, NULL);
+
+ rc = mainloop(dev, &dim);
+ printf("\n\n");
+
+ print_udev_override_rule(dev, &dim, &size);
+
+out:
+ libevdev_free(dev);
+ close(fd);
+
+ return rc;
+}