mirror of
https://github.com/openbsd/xenocara.git
synced 2025-12-13 04:39:07 +00:00
Update to xlsclients 1.1.0. Rewritten to use XCB.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
Copyright 1989, 1991, 1994, 1998 The Open Group
|
Copyright 1989, 1991, 1994, 1998 The Open Group
|
||||||
|
Copyright 2009 Open Text Corporation
|
||||||
|
|
||||||
Permission to use, copy, modify, distribute, and sell this software and its
|
Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
documentation for any purpose is hereby granted without fee, provided that
|
documentation for any purpose is hereby granted without fee, provided that
|
||||||
@@ -19,3 +20,23 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
Except as contained in this notice, the name of The Open Group shall not be
|
Except as contained in this notice, the name of The Open Group shall not be
|
||||||
used in advertising or otherwise to promote the sale, use or other dealings
|
used in advertising or otherwise to promote the sale, use or other dealings
|
||||||
in this Software without prior written authorization from The Open Group.
|
in this Software without prior written authorization from The Open Group.
|
||||||
|
|
||||||
|
Copyright (c) 2009 Apple Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
|||||||
@@ -1,3 +1,130 @@
|
|||||||
|
commit cc6dbd2c1e7966b32e333142ab7630ed19700414
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Thu Jun 3 16:05:20 2010 -0700
|
||||||
|
|
||||||
|
xlsclients 1.1.0
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 1a4649f30813b02caac49de85e2f8b52b7a967fb
|
||||||
|
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||||
|
Date: Thu Nov 26 09:19:54 2009 -0500
|
||||||
|
|
||||||
|
Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
|
||||||
|
|
||||||
|
Now that the INSTALL file is generated.
|
||||||
|
Allows running make maintainer-clean.
|
||||||
|
|
||||||
|
commit 677599f014077c139d42d1c081f24cfcd15882da
|
||||||
|
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||||
|
Date: Wed Oct 28 14:09:08 2009 -0400
|
||||||
|
|
||||||
|
INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
|
||||||
|
|
||||||
|
Add missing INSTALL file. Use standard GNU file on building tarball
|
||||||
|
README may have been updated
|
||||||
|
Remove AUTHORS file as it is empty and no content available yet.
|
||||||
|
Remove NEWS file as it is empty and no content available yet.
|
||||||
|
|
||||||
|
commit d3a3f207f7ee1a4d6ee854d262f9875449bca29f
|
||||||
|
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||||
|
Date: Mon Oct 26 22:08:39 2009 -0400
|
||||||
|
|
||||||
|
Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
|
||||||
|
|
||||||
|
ChangeLog filename is known to Automake and requires no further
|
||||||
|
coding in the makefile.
|
||||||
|
|
||||||
|
commit ca9714918eaa05fb631448519c60457d00bb66ae
|
||||||
|
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||||
|
Date: Thu Oct 22 12:34:15 2009 -0400
|
||||||
|
|
||||||
|
.gitignore: use common defaults with custom section # 24239
|
||||||
|
|
||||||
|
Using common defaults will reduce errors and maintenance.
|
||||||
|
Only the very small or inexistent custom section need periodic maintenance
|
||||||
|
when the structure of the component changes. Do not edit defaults.
|
||||||
|
|
||||||
|
commit 8dda84e71446de8726846a2fa5c83b4354e4811b
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
|
Date: Tue Oct 27 12:54:51 2009 -0700
|
||||||
|
|
||||||
|
Add Copyright/License notice for xcb & strnlen changes to COPYING
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
|
|
||||||
|
commit 9745fd920083438ef2c1566947f179b105bf8deb
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
|
Date: Tue Oct 20 16:20:18 2009 -0700
|
||||||
|
|
||||||
|
Fix check for xcb_connect failure
|
||||||
|
|
||||||
|
Prevents core dump when display can't be opened
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
|
|
||||||
|
commit 222dc9735d6fd2ab1b22003eb00348b98b87afe7
|
||||||
|
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||||
|
Date: Wed Oct 21 12:25:58 2009 -0700
|
||||||
|
|
||||||
|
xlsclients is not a GNU project, so declare it foreign.
|
||||||
|
|
||||||
|
On Wed, 2009-10-21 at 13:36 +1000, Peter Hutterer wrote:
|
||||||
|
> On Tue, Oct 20, 2009 at 08:23:55PM -0700, Jeremy Huddleston wrote:
|
||||||
|
> > I noticed an INSTALL file in xlsclients and libXvMC today, and it
|
||||||
|
> > was quite annoying to work around since 'autoreconf -fvi' replaces
|
||||||
|
> > it and git wants to commit it. Should these files even be in git?
|
||||||
|
> > Can I nuke them for the betterment of humanity and since they get
|
||||||
|
> > created by autoreconf anyways?
|
||||||
|
>
|
||||||
|
> See https://bugs.freedesktop.org/show_bug.cgi?id=24206
|
||||||
|
|
||||||
|
As an interim measure, replace AM_INIT_AUTOMAKE([dist-bzip2]) with
|
||||||
|
AM_INIT_AUTOMAKE([foreign dist-bzip2]). This will prevent the generation
|
||||||
|
of the INSTALL file. It is also part of the 24206 solution.
|
||||||
|
|
||||||
|
commit 7720fa29dfe664c363c27c0038a269bc8aeea74f
|
||||||
|
Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||||
|
Date: Wed Oct 21 00:18:26 2009 -0500
|
||||||
|
|
||||||
|
Use inttypes.h for correct printf formats
|
||||||
|
|
||||||
|
xcb_atom_t and xcb_window_t are both typedef'd as uint32_t.
|
||||||
|
|
||||||
|
Since PRI*32 are a C99 feature that may not be available, fallbacks
|
||||||
|
are provided based on the assumption of a 32-bit int.
|
||||||
|
|
||||||
|
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||||
|
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
|
||||||
|
Signed-off-by: Jamey Sharp <jamey@minilop.net>
|
||||||
|
|
||||||
|
commit 2793689cc2eda675ec11a3a0cfed5e470fa83ee3
|
||||||
|
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
|
||||||
|
Date: Tue Oct 20 15:40:13 2009 -0700
|
||||||
|
|
||||||
|
Add implementation of strnlen for systems without this function
|
||||||
|
|
||||||
|
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||||
|
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
|
||||||
|
|
||||||
|
commit 1839eabbdd697039a264fe7ebb3f4d26f08ddabe
|
||||||
|
Author: Peter Harris <pharris@opentext.com>
|
||||||
|
Date: Mon Oct 19 18:21:26 2009 -0700
|
||||||
|
|
||||||
|
Rewrite xlsclients to use XCB, avoiding many (many) round trips
|
||||||
|
|
||||||
|
This version spends bandwidth to reduce latency; in particular, it
|
||||||
|
aggressively calls query_tree before the answer to get_property(WM_STATE) is
|
||||||
|
available.
|
||||||
|
|
||||||
|
Even on my local box, this version is 4-10 times faster (30ms typical, vs
|
||||||
|
200ms typical for Xlib). I get similar results over the local network.
|
||||||
|
|
||||||
|
At least one person reports this version takes less than 2 seconds over ssh,
|
||||||
|
vs over a minute for the Xlib version (~30x faster).
|
||||||
|
|
||||||
|
Reviewed-by: Jamey Sharp <jamey@minilop.net>
|
||||||
|
|
||||||
commit 47f2d188a231a1c59d5d3030a1a2470c774d1e0d
|
commit 47f2d188a231a1c59d5d3030a1a2470c774d1e0d
|
||||||
Author: Alan Coopersmith <alan.coopersmith@sun.com>
|
Author: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
Date: Fri Oct 16 18:56:01 2009 -0700
|
Date: Fri Oct 16 18:56:01 2009 -0700
|
||||||
|
|||||||
@@ -1,6 +1,297 @@
|
|||||||
Installation Instructions
|
Installation Instructions
|
||||||
*************************
|
*************************
|
||||||
|
|
||||||
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||||
|
2006, 2007, 2008 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is free documentation; the Free Software Foundation gives
|
||||||
|
unlimited permission to copy, distribute and modify it.
|
||||||
|
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
Briefly, the shell commands `./configure; make; make install' should
|
||||||
|
configure, build, and install this package. The following
|
||||||
|
more-detailed instructions are generic; see the `README' file for
|
||||||
|
instructions specific to this package.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, and a
|
||||||
|
file `config.log' containing compiler output (useful mainly for
|
||||||
|
debugging `configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called `config.cache'
|
||||||
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||||
|
the results of its tests to speed up reconfiguring. Caching is
|
||||||
|
disabled by default to prevent problems with accidental use of stale
|
||||||
|
cache files.
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If you are using the cache, and at
|
||||||
|
some point `config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.ac' (or `configure.in') is used to create
|
||||||
|
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||||
|
you want to change it or regenerate `configure' using a newer version
|
||||||
|
of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system.
|
||||||
|
|
||||||
|
Running `configure' might take a while. While running, it prints
|
||||||
|
some messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
6. Often, you can also type `make uninstall' to remove the installed
|
||||||
|
files again.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. Run `./configure --help'
|
||||||
|
for details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give `configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here
|
||||||
|
is an example:
|
||||||
|
|
||||||
|
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
With a non-GNU `make', it is safer to compile the package for one
|
||||||
|
architecture at a time in the source code directory. After you have
|
||||||
|
installed the package for one architecture, use `make distclean' before
|
||||||
|
reconfiguring for another architecture.
|
||||||
|
|
||||||
|
On MacOS X 10.5 and later systems, you can create libraries and
|
||||||
|
executables that work on multiple system types--known as "fat" or
|
||||||
|
"universal" binaries--by specifying multiple `-arch' options to the
|
||||||
|
compiler but only a single `-arch' option to the preprocessor. Like
|
||||||
|
this:
|
||||||
|
|
||||||
|
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CPP="gcc -E" CXXCPP="g++ -E"
|
||||||
|
|
||||||
|
This is not guaranteed to produce working output in all cases, you
|
||||||
|
may have to build one architecture at a time and combine the results
|
||||||
|
using the `lipo' tool if you have problems.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' installs the package's commands under
|
||||||
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
|
`configure' the option `--prefix=PREFIX'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||||
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Particular systems
|
||||||
|
==================
|
||||||
|
|
||||||
|
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||||
|
CC is not installed, it is recommended to use the following options in
|
||||||
|
order to use an ANSI C compiler:
|
||||||
|
|
||||||
|
./configure CC="cc -Ae"
|
||||||
|
|
||||||
|
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||||
|
|
||||||
|
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||||
|
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||||
|
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||||
|
to try
|
||||||
|
|
||||||
|
./configure CC="cc"
|
||||||
|
|
||||||
|
and if that doesn't work, try
|
||||||
|
|
||||||
|
./configure CC="cc -nodtk"
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' cannot figure out
|
||||||
|
automatically, but needs to determine by the type of machine the package
|
||||||
|
will run on. Usually, assuming the package is built to be run on the
|
||||||
|
_same_ architectures, `configure' can figure that out, but if it prints
|
||||||
|
a message saying it cannot guess the machine type, give it the
|
||||||
|
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS KERNEL-OS
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the option `--target=TYPE' to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with `--host=TYPE'.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to `configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the `configure' command line, using `VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script).
|
||||||
|
|
||||||
|
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||||
|
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||||
|
|
||||||
|
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||||
|
|
||||||
|
`configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
`-h'
|
||||||
|
Print a summary of all of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--help=short'
|
||||||
|
`--help=recursive'
|
||||||
|
Print a summary of the options unique to this package's
|
||||||
|
`configure', and exit. The `short' variant lists options used
|
||||||
|
only in the top level, while the `recursive' variant lists options
|
||||||
|
also present in any nested packages.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
`-V'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
`--config-cache'
|
||||||
|
`-C'
|
||||||
|
Alias for `--cache-file=config.cache'.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--prefix=DIR'
|
||||||
|
Use DIR as the installation prefix. *Note Installation Names::
|
||||||
|
for more details, including other options available for fine-tuning
|
||||||
|
the installation locations.
|
||||||
|
|
||||||
|
`--no-create'
|
||||||
|
`-n'
|
||||||
|
Run the configure checks, but stop before creating any output
|
||||||
|
files.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options. Run
|
||||||
|
`configure --help' for more details.
|
||||||
|
|
||||||
|
Installation Instructions
|
||||||
|
*************************
|
||||||
|
|
||||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||||
Software Foundation, Inc.
|
Software Foundation, Inc.
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
bin_PROGRAMS = xlsclients
|
bin_PROGRAMS = xlsclients
|
||||||
|
|
||||||
AM_CFLAGS = $(CWARNFLAGS) $(XLSCLIENTS_CFLAGS)
|
AM_CFLAGS = $(CWARNFLAGS) $(XLSCLIENTS_CFLAGS)
|
||||||
xlsclients_LDADD = $(XLSCLIENTS_LIBS)
|
xlsclients_LDADD = $(XLSCLIENTS_LIBS) $(LIBOBJS)
|
||||||
|
|
||||||
xlsclients_SOURCES = \
|
xlsclients_SOURCES = \
|
||||||
xlsclients.c
|
xlsclients.c
|
||||||
@@ -36,6 +36,7 @@ appmandir = $(APP_MAN_DIR)
|
|||||||
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
||||||
|
|
||||||
EXTRA_DIST = $(appman_PRE)
|
EXTRA_DIST = $(appman_PRE)
|
||||||
|
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||||
CLEANFILES = $(appman_DATA)
|
CLEANFILES = $(appman_DATA)
|
||||||
|
|
||||||
SED = sed
|
SED = sed
|
||||||
@@ -62,12 +63,13 @@ SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
|||||||
.man.$(APP_MAN_SUFFIX):
|
.man.$(APP_MAN_SUFFIX):
|
||||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||||
|
|
||||||
EXTRA_DIST += ChangeLog
|
|
||||||
MAINTAINERCLEANFILES = ChangeLog
|
|
||||||
|
|
||||||
.PHONY: ChangeLog
|
.PHONY: ChangeLog INSTALL
|
||||||
|
|
||||||
|
INSTALL:
|
||||||
|
$(INSTALL_CMD)
|
||||||
|
|
||||||
ChangeLog:
|
ChangeLog:
|
||||||
$(CHANGELOG_CMD)
|
$(CHANGELOG_CMD)
|
||||||
|
|
||||||
dist-hook: ChangeLog
|
dist-hook: ChangeLog INSTALL
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ bin_PROGRAMS = xlsclients$(EXEEXT)
|
|||||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||||
config.guess config.sub depcomp install-sh missing
|
config.guess config.sub depcomp install-sh missing strnlen.c
|
||||||
subdir = .
|
subdir = .
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
@@ -79,7 +79,8 @@ PROGRAMS = $(bin_PROGRAMS)
|
|||||||
am_xlsclients_OBJECTS = xlsclients.$(OBJEXT)
|
am_xlsclients_OBJECTS = xlsclients.$(OBJEXT)
|
||||||
xlsclients_OBJECTS = $(am_xlsclients_OBJECTS)
|
xlsclients_OBJECTS = $(am_xlsclients_OBJECTS)
|
||||||
am__DEPENDENCIES_1 =
|
am__DEPENDENCIES_1 =
|
||||||
xlsclients_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
am__DEPENDENCIES_2 = @LIBOBJS@
|
||||||
|
xlsclients_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
|
||||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
|
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
|
||||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
am__depfiles_maybe = depfiles
|
am__depfiles_maybe = depfiles
|
||||||
@@ -109,12 +110,14 @@ am__remove_distdir = \
|
|||||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
distuninstallcheck_listfiles = find . -type f -print
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
|
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
|
||||||
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
|
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
AMDEP_FALSE = @AMDEP_FALSE@
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
AMDEP_TRUE = @AMDEP_TRUE@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
APP_MAN_DIR = @APP_MAN_DIR@
|
APP_MAN_DIR = @APP_MAN_DIR@
|
||||||
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
|
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@@ -141,6 +144,7 @@ EXEEXT = @EXEEXT@
|
|||||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||||
GREP = @GREP@
|
GREP = @GREP@
|
||||||
|
INSTALL_CMD = @INSTALL_CMD@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@@ -155,6 +159,19 @@ MAINT = @MAINT@
|
|||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MAN_SUBSTS = \
|
||||||
|
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
|
||||||
|
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
|
||||||
|
-e 's|__xservername__|Xorg|g' \
|
||||||
|
-e 's|__xconfigfile__|xorg.conf|g' \
|
||||||
|
-e 's|__projectroot__|$(prefix)|g' \
|
||||||
|
-e 's|__apploaddir__|$(appdefaultdir)|' \
|
||||||
|
-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__libmansuffix__|$(LIB_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
|
||||||
|
|
||||||
MISC_MAN_DIR = @MISC_MAN_DIR@
|
MISC_MAN_DIR = @MISC_MAN_DIR@
|
||||||
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
|
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
@@ -166,12 +183,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
SED = sed
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XLSCLIENTS_CFLAGS = @XLSCLIENTS_CFLAGS@
|
XLSCLIENTS_CFLAGS = @XLSCLIENTS_CFLAGS@
|
||||||
XLSCLIENTS_LIBS = @XLSCLIENTS_LIBS@
|
XLSCLIENTS_LIBS = @XLSCLIENTS_LIBS@
|
||||||
|
XORG_MAN_PAGE = @XORG_MAN_PAGE@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
@@ -188,7 +207,6 @@ build_os = @build_os@
|
|||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
datarootdir = @datarootdir@
|
datarootdir = @datarootdir@
|
||||||
distcleancheck_listfiles = @distcleancheck_listfiles@
|
|
||||||
docdir = @docdir@
|
docdir = @docdir@
|
||||||
dvidir = @dvidir@
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
@@ -217,7 +235,7 @@ sharedstatedir = @sharedstatedir@
|
|||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
AM_CFLAGS = $(CWARNFLAGS) $(XLSCLIENTS_CFLAGS)
|
AM_CFLAGS = $(CWARNFLAGS) $(XLSCLIENTS_CFLAGS)
|
||||||
xlsclients_LDADD = $(XLSCLIENTS_LIBS)
|
xlsclients_LDADD = $(XLSCLIENTS_LIBS) $(LIBOBJS)
|
||||||
xlsclients_SOURCES = \
|
xlsclients_SOURCES = \
|
||||||
xlsclients.c
|
xlsclients.c
|
||||||
|
|
||||||
@@ -226,28 +244,14 @@ appman_PRE = \
|
|||||||
|
|
||||||
appmandir = $(APP_MAN_DIR)
|
appmandir = $(APP_MAN_DIR)
|
||||||
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
||||||
EXTRA_DIST = $(appman_PRE) ChangeLog
|
EXTRA_DIST = $(appman_PRE)
|
||||||
|
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||||
CLEANFILES = $(appman_DATA)
|
CLEANFILES = $(appman_DATA)
|
||||||
SED = sed
|
|
||||||
|
|
||||||
# Strings to replace in man pages
|
# Strings to replace in man pages
|
||||||
XORGRELSTRING = @PACKAGE_STRING@
|
XORGRELSTRING = @PACKAGE_STRING@
|
||||||
XORGMANNAME = X Version 11
|
XORGMANNAME = X Version 11
|
||||||
MAN_SUBSTS = \
|
|
||||||
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
|
|
||||||
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
|
|
||||||
-e 's|__xservername__|Xorg|g' \
|
|
||||||
-e 's|__xconfigfile__|xorg.conf|g' \
|
|
||||||
-e 's|__projectroot__|$(prefix)|g' \
|
|
||||||
-e 's|__apploaddir__|$(appdefaultdir)|' \
|
|
||||||
-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
|
|
||||||
-e 's|__libmansuffix__|$(LIB_MAN_SUFFIX)|g' \
|
|
||||||
-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
|
|
||||||
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
|
|
||||||
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
|
|
||||||
|
|
||||||
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
||||||
MAINTAINERCLEANFILES = ChangeLog
|
|
||||||
all: config.h
|
all: config.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||||
|
|
||||||
@@ -259,15 +263,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
*$$dep*) \
|
*$$dep*) \
|
||||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
|
||||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
cd $(srcdir) && $(AUTOMAKE) --foreign \
|
||||||
&& exit 0; \
|
&& exit 0; \
|
||||||
exit 1;; \
|
exit 1;; \
|
||||||
esac; \
|
esac; \
|
||||||
done; \
|
done; \
|
||||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu Makefile
|
$(AUTOMAKE) --foreign Makefile
|
||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
@case '$?' in \
|
@case '$?' in \
|
||||||
@@ -336,6 +340,7 @@ mostlyclean-compile:
|
|||||||
distclean-compile:
|
distclean-compile:
|
||||||
-rm -f *.tab.c
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strnlen.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlsclients.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlsclients.Po@am__quote@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@@ -586,7 +591,7 @@ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
|||||||
|
|
||||||
distclean: distclean-am
|
distclean: distclean-am
|
||||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
-rm -rf ./$(DEPDIR)
|
-rm -rf $(DEPDIR) ./$(DEPDIR)
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
distclean-am: clean-am distclean-compile distclean-generic \
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
distclean-hdr distclean-tags
|
distclean-hdr distclean-tags
|
||||||
@@ -614,7 +619,7 @@ installcheck-am:
|
|||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
-rm -rf $(top_srcdir)/autom4te.cache
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
-rm -rf ./$(DEPDIR)
|
-rm -rf $(DEPDIR) ./$(DEPDIR)
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
@@ -652,12 +657,15 @@ uninstall-am: uninstall-appmanDATA uninstall-binPROGRAMS \
|
|||||||
.man.$(APP_MAN_SUFFIX):
|
.man.$(APP_MAN_SUFFIX):
|
||||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||||
|
|
||||||
.PHONY: ChangeLog
|
.PHONY: ChangeLog INSTALL
|
||||||
|
|
||||||
|
INSTALL:
|
||||||
|
$(INSTALL_CMD)
|
||||||
|
|
||||||
ChangeLog:
|
ChangeLog:
|
||||||
$(CHANGELOG_CMD)
|
$(CHANGELOG_CMD)
|
||||||
|
|
||||||
dist-hook: ChangeLog
|
dist-hook: ChangeLog INSTALL
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
xlsclients is a utility for listing information about the client
|
xlsclients is a utility for listing information about the client
|
||||||
applications running on a X11 server.
|
applications running on a X11 server.
|
||||||
|
|
||||||
|
Version 1.1 and later of xlsclients use (and require) libxcb instead
|
||||||
|
of libX11, for more efficient communication with the X server.
|
||||||
|
|
||||||
All questions regarding this software should be directed at the
|
All questions regarding this software should be directed at the
|
||||||
Xorg mailing list:
|
Xorg mailing list:
|
||||||
|
|
||||||
|
|||||||
839
app/xlsclients/aclocal.m4
vendored
839
app/xlsclients/aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@@ -18,6 +18,9 @@
|
|||||||
/* Define to 1 if you have the <string.h> header file. */
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
#undef HAVE_STRING_H
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working strnlen function. */
|
||||||
|
#undef HAVE_STRNLEN
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
#undef HAVE_SYS_STAT_H
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
@@ -59,3 +62,35 @@
|
|||||||
|
|
||||||
/* Version number of package */
|
/* Version number of package */
|
||||||
#undef VERSION
|
#undef VERSION
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* Enable extensions on AIX 3, Interix. */
|
||||||
|
#ifndef _ALL_SOURCE
|
||||||
|
# undef _ALL_SOURCE
|
||||||
|
#endif
|
||||||
|
/* Enable GNU extensions on systems that have them. */
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
# undef _GNU_SOURCE
|
||||||
|
#endif
|
||||||
|
/* Enable threading extensions on Solaris. */
|
||||||
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||||
|
# undef _POSIX_PTHREAD_SEMANTICS
|
||||||
|
#endif
|
||||||
|
/* Enable extensions on HP NonStop. */
|
||||||
|
#ifndef _TANDEM_SOURCE
|
||||||
|
# undef _TANDEM_SOURCE
|
||||||
|
#endif
|
||||||
|
/* Enable general extensions on Solaris. */
|
||||||
|
#ifndef __EXTENSIONS__
|
||||||
|
# undef __EXTENSIONS__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|||||||
750
app/xlsclients/configure
vendored
750
app/xlsclients/configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.62 for xlsclients 1.0.2.
|
# Generated by GNU Autoconf 2.62 for xlsclients 1.1.0.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||||
#
|
#
|
||||||
@@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='xlsclients'
|
PACKAGE_NAME='xlsclients'
|
||||||
PACKAGE_TARNAME='xlsclients'
|
PACKAGE_TARNAME='xlsclients'
|
||||||
PACKAGE_VERSION='1.0.2'
|
PACKAGE_VERSION='1.1.0'
|
||||||
PACKAGE_STRING='xlsclients 1.0.2'
|
PACKAGE_STRING='xlsclients 1.1.0'
|
||||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||||
|
|
||||||
# Factoring default headers for most tests.
|
# Factoring default headers for most tests.
|
||||||
@@ -716,9 +716,11 @@ am__fastdepCC_FALSE
|
|||||||
CPP
|
CPP
|
||||||
GREP
|
GREP
|
||||||
EGREP
|
EGREP
|
||||||
|
LIBOBJS
|
||||||
CWARNFLAGS
|
CWARNFLAGS
|
||||||
CHANGELOG_CMD
|
CHANGELOG_CMD
|
||||||
distcleancheck_listfiles
|
PKG_CONFIG
|
||||||
|
INSTALL_CMD
|
||||||
build
|
build
|
||||||
build_cpu
|
build_cpu
|
||||||
build_vendor
|
build_vendor
|
||||||
@@ -727,6 +729,7 @@ host
|
|||||||
host_cpu
|
host_cpu
|
||||||
host_vendor
|
host_vendor
|
||||||
host_os
|
host_os
|
||||||
|
SED
|
||||||
APP_MAN_SUFFIX
|
APP_MAN_SUFFIX
|
||||||
LIB_MAN_SUFFIX
|
LIB_MAN_SUFFIX
|
||||||
FILE_MAN_SUFFIX
|
FILE_MAN_SUFFIX
|
||||||
@@ -739,10 +742,11 @@ FILE_MAN_DIR
|
|||||||
MISC_MAN_DIR
|
MISC_MAN_DIR
|
||||||
DRIVER_MAN_DIR
|
DRIVER_MAN_DIR
|
||||||
ADMIN_MAN_DIR
|
ADMIN_MAN_DIR
|
||||||
PKG_CONFIG
|
XORG_MAN_PAGE
|
||||||
|
MAN_SUBSTS
|
||||||
|
AM_DEFAULT_VERBOSITY
|
||||||
XLSCLIENTS_CFLAGS
|
XLSCLIENTS_CFLAGS
|
||||||
XLSCLIENTS_LIBS
|
XLSCLIENTS_LIBS
|
||||||
LIBOBJS
|
|
||||||
LTLIBOBJS'
|
LTLIBOBJS'
|
||||||
ac_subst_files=''
|
ac_subst_files=''
|
||||||
ac_user_opts='
|
ac_user_opts='
|
||||||
@@ -750,7 +754,6 @@ enable_option_checking
|
|||||||
enable_maintainer_mode
|
enable_maintainer_mode
|
||||||
enable_dependency_tracking
|
enable_dependency_tracking
|
||||||
enable_strict_compilation
|
enable_strict_compilation
|
||||||
with_release_version
|
|
||||||
'
|
'
|
||||||
ac_precious_vars='build_alias
|
ac_precious_vars='build_alias
|
||||||
host_alias
|
host_alias
|
||||||
@@ -1316,7 +1319,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# 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.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures xlsclients 1.0.2 to adapt to many kinds of systems.
|
\`configure' configures xlsclients 1.1.0 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1386,7 +1389,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of xlsclients 1.0.2:";;
|
short | recursive ) echo "Configuration of xlsclients 1.1.0:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1402,12 +1405,6 @@ Optional Features:
|
|||||||
Enable all warnings from compiler and make them
|
Enable all warnings from compiler and make them
|
||||||
errors (default: disabled)
|
errors (default: disabled)
|
||||||
|
|
||||||
Optional Packages:
|
|
||||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
|
||||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
|
||||||
--with-release-version=STRING
|
|
||||||
Use release version string in package name
|
|
||||||
|
|
||||||
Some influential environment variables:
|
Some influential environment variables:
|
||||||
CC C compiler command
|
CC C compiler command
|
||||||
CFLAGS C compiler flags
|
CFLAGS C compiler flags
|
||||||
@@ -1489,7 +1486,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
xlsclients configure 1.0.2
|
xlsclients configure 1.1.0
|
||||||
generated by GNU Autoconf 2.62
|
generated by GNU Autoconf 2.62
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||||||
@@ -1503,7 +1500,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by xlsclients $as_me 1.0.2, which was
|
It was created by xlsclients $as_me 1.1.0, which was
|
||||||
generated by GNU Autoconf 2.62. Invocation command line was
|
generated by GNU Autoconf 2.62. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -2152,7 +2149,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='xlsclients'
|
PACKAGE='xlsclients'
|
||||||
VERSION='1.0.2'
|
VERSION='1.1.0'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@@ -3538,6 +3535,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
|
|||||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||||
|
|
||||||
|
|
||||||
|
# Check for functional strnlen
|
||||||
|
|
||||||
ac_ext=c
|
ac_ext=c
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
@@ -4158,6 +4156,332 @@ fi
|
|||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test "${ac_cv_header_minix_config_h+set}" = set; then
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
|
||||||
|
$as_echo_n "checking for minix/config.h... " >&6; }
|
||||||
|
if test "${ac_cv_header_minix_config_h+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
|
||||||
|
$as_echo "$ac_cv_header_minix_config_h" >&6; }
|
||||||
|
else
|
||||||
|
# Is the header compilable?
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5
|
||||||
|
$as_echo_n "checking minix/config.h usability... " >&6; }
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
#include <minix/config.h>
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext
|
||||||
|
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:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_compile") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest.$ac_objext; then
|
||||||
|
ac_header_compiler=yes
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_header_compiler=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||||
|
$as_echo "$ac_header_compiler" >&6; }
|
||||||
|
|
||||||
|
# Is the header present?
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5
|
||||||
|
$as_echo_n "checking minix/config.h presence... " >&6; }
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <minix/config.h>
|
||||||
|
_ACEOF
|
||||||
|
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:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
ac_header_preproc=yes
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_header_preproc=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
{ $as_echo "$as_me:$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:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
|
||||||
|
ac_header_preproc=yes
|
||||||
|
;;
|
||||||
|
no:yes:* )
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
|
||||||
|
$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
|
||||||
|
( cat <<\_ASBOX
|
||||||
|
## ---------------------------------------------------------------------- ##
|
||||||
|
## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ##
|
||||||
|
## ---------------------------------------------------------------------- ##
|
||||||
|
_ASBOX
|
||||||
|
) | sed "s/^/$as_me: WARNING: /" >&2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
|
||||||
|
$as_echo_n "checking for minix/config.h... " >&6; }
|
||||||
|
if test "${ac_cv_header_minix_config_h+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_cv_header_minix_config_h=$ac_header_preproc
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
|
||||||
|
$as_echo "$ac_cv_header_minix_config_h" >&6; }
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test $ac_cv_header_minix_config_h = yes; then
|
||||||
|
MINIX=yes
|
||||||
|
else
|
||||||
|
MINIX=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test "$MINIX" = yes; then
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _POSIX_SOURCE 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _POSIX_1_SOURCE 2
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _MINIX 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
|
||||||
|
$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
|
||||||
|
if test "${ac_cv_safe_to_define___extensions__+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
# define __EXTENSIONS__ 1
|
||||||
|
$ac_includes_default
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext
|
||||||
|
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:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_compile") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest.$ac_objext; then
|
||||||
|
ac_cv_safe_to_define___extensions__=yes
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_cv_safe_to_define___extensions__=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$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 &&
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define __EXTENSIONS__ 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _ALL_SOURCE 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _GNU_SOURCE 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _POSIX_PTHREAD_SEMANTICS 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define _TANDEM_SOURCE 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking for working strnlen" >&5
|
||||||
|
$as_echo_n "checking for working strnlen... " >&6; }
|
||||||
|
if test "${ac_cv_func_strnlen_working+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
if test "$cross_compiling" = yes; then
|
||||||
|
ac_cv_func_strnlen_working=no
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
#define S "foobar"
|
||||||
|
#define S_LEN (sizeof S - 1)
|
||||||
|
|
||||||
|
/* At least one implementation is buggy: that of AIX 4.3 would
|
||||||
|
give strnlen (S, 1) == 3. */
|
||||||
|
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < S_LEN + 1; ++i)
|
||||||
|
{
|
||||||
|
int expected = i <= S_LEN ? i : S_LEN;
|
||||||
|
if (strnlen (S, i) != expected)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f 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:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_link") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_try") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; }; then
|
||||||
|
ac_cv_func_strnlen_working=yes
|
||||||
|
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
|
||||||
|
|
||||||
|
( exit $ac_status )
|
||||||
|
ac_cv_func_strnlen_working=no
|
||||||
|
fi
|
||||||
|
rm -rf conftest.dSYM
|
||||||
|
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5
|
||||||
|
$as_echo "$ac_cv_func_strnlen_working" >&6; }
|
||||||
|
test $ac_cv_func_strnlen_working = no && case " $LIBOBJS " in
|
||||||
|
*" strnlen.$ac_objext "* ) ;;
|
||||||
|
*) LIBOBJS="$LIBOBJS strnlen.$ac_objext"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if test "x$ac_cv_func_strnlen_working" = xyes; then
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_STRNLEN 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
|
{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
|
||||||
$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
|
$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
|
||||||
if test "${ac_cv_prog_cc_c99+set}" = set; then
|
if test "${ac_cv_prog_cc_c99+set}" = set; then
|
||||||
@@ -4360,6 +4684,126 @@ esac
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||||
|
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:$LINENO: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
case $PKG_CONFIG in
|
||||||
|
[\\/]* | ?:[\\/]*)
|
||||||
|
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||||||
|
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||||
|
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||||
|
if test -n "$PKG_CONFIG"; then
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
|
||||||
|
$as_echo "$PKG_CONFIG" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||||
|
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:$LINENO: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
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.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||||
|
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
|
||||||
|
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||||
|
PKG_CONFIG=""
|
||||||
|
else
|
||||||
|
case $cross_compiling:$ac_tool_warned in
|
||||||
|
yes:)
|
||||||
|
{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
|
||||||
|
whose name does not start with the host triplet. If you think this
|
||||||
|
configuration is useful to you, please write to autoconf@gnu.org." >&5
|
||||||
|
$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
|
||||||
|
whose name does not start with the host triplet. If you think this
|
||||||
|
configuration is useful to you, please write to autoconf@gnu.org." >&2;}
|
||||||
|
ac_tool_warned=yes ;;
|
||||||
|
esac
|
||||||
|
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -n "$PKG_CONFIG"; then
|
||||||
|
_pkg_min_version=0.9.0
|
||||||
|
{ $as_echo "$as_me:$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; }
|
||||||
|
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
PKG_CONFIG=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
# Make sure we can run config.sub.
|
# Make sure we can run config.sub.
|
||||||
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
|
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
|
||||||
{ { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
|
{ { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
|
||||||
@@ -4443,13 +4887,85 @@ IFS=$ac_save_IFS
|
|||||||
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
|
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$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 test "${ac_cv_path_SED+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
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"
|
||||||
|
done
|
||||||
|
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
|
||||||
|
$as_unset ac_script || ac_script=
|
||||||
|
if test -z "$SED"; then
|
||||||
|
ac_path_SED_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
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
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"
|
||||||
|
{ test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
|
||||||
|
# Check for GNU ac_path_SED and select it if it is found.
|
||||||
|
# Check for GNU $ac_path_SED
|
||||||
|
case `"$ac_path_SED" --version 2>&1` in
|
||||||
|
*GNU*)
|
||||||
|
ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "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
|
||||||
|
ac_count=`expr $ac_count + 1`
|
||||||
|
if test $ac_count -gt ${ac_path_SED_max-0}; then
|
||||||
|
# Best one so far, save it but keep looking for a better one
|
||||||
|
ac_cv_path_SED="$ac_path_SED"
|
||||||
|
ac_path_SED_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_SED_found && break 3
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
if test -z "$ac_cv_path_SED"; then
|
||||||
|
{ { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5
|
||||||
|
$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ac_cv_path_SED=$SED
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
|
||||||
|
$as_echo "$ac_cv_path_SED" >&6; }
|
||||||
|
SED="$ac_cv_path_SED"
|
||||||
|
rm -f conftest.sed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$GCC" = xyes ; then
|
if test "x$GCC" = xyes ; then
|
||||||
CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
|
CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
|
||||||
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
|
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
|
||||||
-Wbad-function-cast"
|
-Wbad-function-cast -Wformat=2"
|
||||||
case `$CC -dumpversion` in
|
case `$CC -dumpversion` in
|
||||||
3.4.* | 4.*)
|
3.4.* | 4.*)
|
||||||
CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement"
|
CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement"
|
||||||
@@ -4522,8 +5038,7 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4666,20 +5181,6 @@ CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-release-version was given.
|
|
||||||
if test "${with_release_version+set}" = set; then
|
|
||||||
withval=$with_release_version; RELEASE_VERSION="$withval"
|
|
||||||
else
|
|
||||||
RELEASE_VERSION=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$RELEASE_VERSION" != "x"; then
|
|
||||||
PACKAGE="$PACKAGE-$RELEASE_VERSION"
|
|
||||||
PACKAGE_TARNAME="$PACKAGE_TARNAME-$RELEASE_VERSION"
|
|
||||||
{ $as_echo "$as_me:$LINENO: Building with package name set to $PACKAGE" >&5
|
|
||||||
$as_echo "$as_me: Building with package name set to $PACKAGE" >&6;}
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
#define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1`
|
#define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1`
|
||||||
_ACEOF
|
_ACEOF
|
||||||
@@ -4704,11 +5205,20 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > .changelog.tmp && \
|
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
||||||
mv .changelog.tmp ChangeLog) || (rm -f .changelog.tmp; touch ChangeLog; \
|
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||||
|
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
||||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
||||||
|
|
||||||
distcleancheck_listfiles='find . -type f ! -name ChangeLog -print'
|
|
||||||
|
|
||||||
|
|
||||||
|
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||||
|
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||||
|
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||||
|
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
||||||
|
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4782,130 +5292,30 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
XORG_MAN_PAGE="X Version 11"
|
||||||
|
|
||||||
|
MAN_SUBSTS="\
|
||||||
|
-e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
|
||||||
|
-e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
|
||||||
|
-e 's|__xservername__|Xorg|g' \
|
||||||
|
-e 's|__xconfigfile__|xorg.conf|g' \
|
||||||
|
-e 's|__projectroot__|\$(prefix)|g' \
|
||||||
|
-e 's|__apploaddir__|\$(appdefaultdir)|g' \
|
||||||
|
-e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \
|
||||||
|
-e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AM_DEFAULT_VERBOSITY=1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Checks for pkg-config packages
|
# Checks for pkg-config packages
|
||||||
|
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
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:$LINENO: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
case $PKG_CONFIG in
|
|
||||||
[\\/]* | ?:[\\/]*)
|
|
||||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
|
||||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
|
||||||
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
|
|
||||||
$as_echo "$PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
|
||||||
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:$LINENO: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
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.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
|
||||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
|
|
||||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
|
||||||
PKG_CONFIG=""
|
|
||||||
else
|
|
||||||
case $cross_compiling:$ac_tool_warned in
|
|
||||||
yes:)
|
|
||||||
{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
|
|
||||||
whose name does not start with the host triplet. If you think this
|
|
||||||
configuration is useful to you, please write to autoconf@gnu.org." >&5
|
|
||||||
$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
|
|
||||||
whose name does not start with the host triplet. If you think this
|
|
||||||
configuration is useful to you, please write to autoconf@gnu.org." >&2;}
|
|
||||||
ac_tool_warned=yes ;;
|
|
||||||
esac
|
|
||||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=0.9.0
|
|
||||||
{ $as_echo "$as_me:$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; }
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: yes" >&5
|
|
||||||
$as_echo "yes" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
pkg_failed=no
|
pkg_failed=no
|
||||||
{ $as_echo "$as_me:$LINENO: checking for XLSCLIENTS" >&5
|
{ $as_echo "$as_me:$LINENO: checking for XLSCLIENTS" >&5
|
||||||
$as_echo_n "checking for XLSCLIENTS... " >&6; }
|
$as_echo_n "checking for XLSCLIENTS... " >&6; }
|
||||||
@@ -4915,12 +5325,12 @@ if test -n "$PKG_CONFIG"; then
|
|||||||
pkg_cv_XLSCLIENTS_CFLAGS="$XLSCLIENTS_CFLAGS"
|
pkg_cv_XLSCLIENTS_CFLAGS="$XLSCLIENTS_CFLAGS"
|
||||||
else
|
else
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11 xmuu\"") >&5
|
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb xcb-atom\"") >&5
|
||||||
($PKG_CONFIG --exists --print-errors "x11 xmuu") 2>&5
|
($PKG_CONFIG --exists --print-errors "xcb xcb-atom") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
(exit $ac_status); }; then
|
(exit $ac_status); }; then
|
||||||
pkg_cv_XLSCLIENTS_CFLAGS=`$PKG_CONFIG --cflags "x11 xmuu" 2>/dev/null`
|
pkg_cv_XLSCLIENTS_CFLAGS=`$PKG_CONFIG --cflags "xcb xcb-atom" 2>/dev/null`
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
fi
|
fi
|
||||||
@@ -4933,12 +5343,12 @@ if test -n "$PKG_CONFIG"; then
|
|||||||
pkg_cv_XLSCLIENTS_LIBS="$XLSCLIENTS_LIBS"
|
pkg_cv_XLSCLIENTS_LIBS="$XLSCLIENTS_LIBS"
|
||||||
else
|
else
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11 xmuu\"") >&5
|
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb xcb-atom\"") >&5
|
||||||
($PKG_CONFIG --exists --print-errors "x11 xmuu") 2>&5
|
($PKG_CONFIG --exists --print-errors "xcb xcb-atom") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
(exit $ac_status); }; then
|
(exit $ac_status); }; then
|
||||||
pkg_cv_XLSCLIENTS_LIBS=`$PKG_CONFIG --libs "x11 xmuu" 2>/dev/null`
|
pkg_cv_XLSCLIENTS_LIBS=`$PKG_CONFIG --libs "xcb xcb-atom" 2>/dev/null`
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
fi
|
fi
|
||||||
@@ -4957,14 +5367,14 @@ else
|
|||||||
_pkg_short_errors_supported=no
|
_pkg_short_errors_supported=no
|
||||||
fi
|
fi
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
XLSCLIENTS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11 xmuu"`
|
XLSCLIENTS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-atom"`
|
||||||
else
|
else
|
||||||
XLSCLIENTS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11 xmuu"`
|
XLSCLIENTS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-atom"`
|
||||||
fi
|
fi
|
||||||
# Put the nasty error message in config.log where it belongs
|
# Put the nasty error message in config.log where it belongs
|
||||||
echo "$XLSCLIENTS_PKG_ERRORS" >&5
|
echo "$XLSCLIENTS_PKG_ERRORS" >&5
|
||||||
|
|
||||||
{ { $as_echo "$as_me:$LINENO: error: Package requirements (x11 xmuu) were not met:
|
{ { $as_echo "$as_me:$LINENO: error: Package requirements (xcb xcb-atom) were not met:
|
||||||
|
|
||||||
$XLSCLIENTS_PKG_ERRORS
|
$XLSCLIENTS_PKG_ERRORS
|
||||||
|
|
||||||
@@ -4975,7 +5385,7 @@ Alternatively, you may set the environment variables XLSCLIENTS_CFLAGS
|
|||||||
and XLSCLIENTS_LIBS to avoid the need to call pkg-config.
|
and XLSCLIENTS_LIBS to avoid the need to call pkg-config.
|
||||||
See the pkg-config man page for more details.
|
See the pkg-config man page for more details.
|
||||||
" >&5
|
" >&5
|
||||||
$as_echo "$as_me: error: Package requirements (x11 xmuu) were not met:
|
$as_echo "$as_me: error: Package requirements (xcb xcb-atom) were not met:
|
||||||
|
|
||||||
$XLSCLIENTS_PKG_ERRORS
|
$XLSCLIENTS_PKG_ERRORS
|
||||||
|
|
||||||
@@ -5461,7 +5871,7 @@ exec 6>&1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by xlsclients $as_me 1.0.2, which was
|
This file was extended by xlsclients $as_me 1.1.0, which was
|
||||||
generated by GNU Autoconf 2.62. Invocation command line was
|
generated by GNU Autoconf 2.62. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -5514,7 +5924,7 @@ Report bugs to <bug-autoconf@gnu.org>."
|
|||||||
_ACEOF
|
_ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
xlsclients config.status 1.0.2
|
xlsclients config.status 1.1.0
|
||||||
configured by $0, generated by GNU Autoconf 2.62,
|
configured by $0, generated by GNU Autoconf 2.62,
|
||||||
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,10 @@ dnl
|
|||||||
dnl Process this file with autoconf to create configure.
|
dnl Process this file with autoconf to create configure.
|
||||||
|
|
||||||
AC_PREREQ([2.57])
|
AC_PREREQ([2.57])
|
||||||
AC_INIT(xlsclients, [1.0.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xlsclients)
|
AC_INIT(xlsclients, [1.1.0],
|
||||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
||||||
|
xlsclients)
|
||||||
|
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
# Require xorg-macros 1.3 or later: XORG_DEFAULT_OPTIONS
|
# Require xorg-macros 1.3 or later: XORG_DEFAULT_OPTIONS
|
||||||
@@ -36,10 +38,17 @@ AM_CONFIG_HEADER(config.h)
|
|||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
|
# Check for functional strnlen
|
||||||
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
AC_FUNC_STRNLEN
|
||||||
|
if test "x$ac_cv_func_strnlen_working" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_STRNLEN, 1, [Define to 1 if you have a working strnlen function.])
|
||||||
|
fi
|
||||||
|
|
||||||
XORG_DEFAULT_OPTIONS
|
XORG_DEFAULT_OPTIONS
|
||||||
|
|
||||||
# Checks for pkg-config packages
|
# Checks for pkg-config packages
|
||||||
PKG_CHECK_MODULES(XLSCLIENTS, x11 xmuu)
|
PKG_CHECK_MODULES(XLSCLIENTS, xcb xcb-atom)
|
||||||
AC_SUBST(XLSCLIENTS_CFLAGS)
|
AC_SUBST(XLSCLIENTS_CFLAGS)
|
||||||
AC_SUBST(XLSCLIENTS_LIBS)
|
AC_SUBST(XLSCLIENTS_LIBS)
|
||||||
|
|
||||||
|
|||||||
37
app/xlsclients/strnlen.c
Normal file
37
app/xlsclients/strnlen.c
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2009 Apple Inc.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
* DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Author: Jeremy Huddleston, Apple Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <strnlen.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
size_t strnlen(const char *s, size_t maxlen) {
|
||||||
|
const char *p = memchr(s, 0, maxlen);
|
||||||
|
return (size_t)(p ? (p - s) : maxlen);
|
||||||
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* $Xorg: xlsclients.c,v 1.4 2001/02/09 02:05:54 xorgcvs Exp $
|
|
||||||
*
|
|
||||||
*
|
|
||||||
Copyright 1989, 1998 The Open Group
|
Copyright 1989, 1998 The Open Group
|
||||||
|
Copyright 2009 Open Text Corporation
|
||||||
|
|
||||||
Permission to use, copy, modify, distribute, and sell this software and its
|
Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
documentation for any purpose is hereby granted without fee, provided that
|
documentation for any purpose is hereby granted without fee, provided that
|
||||||
@@ -25,26 +23,47 @@ used in advertising or otherwise to promote the sale, use or other dealings
|
|||||||
in this Software without prior written authorization from The Open Group.
|
in this Software without prior written authorization from The Open Group.
|
||||||
* *
|
* *
|
||||||
* Author: Jim Fulton, MIT X Consortium
|
* Author: Jim Fulton, MIT X Consortium
|
||||||
|
* Author: Peter Harris, Open Text Corporation
|
||||||
*/
|
*/
|
||||||
/* $XFree86: xc/programs/xlsclients/xlsclients.c,v 1.5 2001/04/01 14:00:23 tsi Exp $ */
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <X11/Xos.h>
|
#include <inttypes.h>
|
||||||
#include <X11/Xlib.h>
|
#include <xcb/xcb.h>
|
||||||
#include <X11/Xatom.h>
|
#include <xcb/xproto.h>
|
||||||
#include <X11/Xutil.h>
|
#include <xcb/xcb_atom.h>
|
||||||
#include <X11/Xmu/WinUtil.h>
|
#ifndef HAVE_STRNLEN
|
||||||
|
#include "strnlen.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRIx32
|
||||||
|
#define PRIx32 "x"
|
||||||
|
#endif
|
||||||
|
#ifndef PRIu32
|
||||||
|
#define PRIu32 "u"
|
||||||
|
#endif
|
||||||
|
|
||||||
static char *ProgramName;
|
static char *ProgramName;
|
||||||
|
|
||||||
static void lookat ( Display *dpy, Window root, Bool verbose, int maxcmdlen );
|
static xcb_atom_t WM_STATE;
|
||||||
static void print_client_properties ( Display *dpy, Window w,
|
|
||||||
Bool verbose, int maxcmdlen );
|
static void lookat (xcb_connection_t *dpy, xcb_window_t root, int verbose, int maxcmdlen);
|
||||||
static void print_text_field ( Display *dpy, char *s, XTextProperty *tp );
|
static void print_client_properties (xcb_connection_t *dpy, xcb_window_t w,
|
||||||
static int print_quoted_word ( char *s, int maxlen );
|
int verbose, int maxcmdlen );
|
||||||
static void unknown ( Display *dpy, Atom actual_type, int actual_format );
|
static void print_text_field (xcb_connection_t *dpy, char *s, xcb_get_property_reply_t *tp );
|
||||||
|
static int print_quoted_word (char *s, int maxlen);
|
||||||
|
static void unknown (xcb_connection_t *dpy, xcb_atom_t actual_type, int actual_format );
|
||||||
|
|
||||||
|
/* For convenience: */
|
||||||
|
typedef int Bool;
|
||||||
|
#define False (0)
|
||||||
|
#define True (!False)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
usage(void)
|
usage(void)
|
||||||
@@ -54,6 +73,73 @@ usage(void)
|
|||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef void (*queue_func)(void *closure);
|
||||||
|
typedef struct queue_blob {
|
||||||
|
queue_func func;
|
||||||
|
void *closure;
|
||||||
|
struct queue_blob *next;
|
||||||
|
} queue_blob;
|
||||||
|
|
||||||
|
static queue_blob *head = NULL;
|
||||||
|
static queue_blob **tail = &head;
|
||||||
|
|
||||||
|
static void enqueue(queue_func func, void *closure)
|
||||||
|
{
|
||||||
|
queue_blob *blob = malloc(sizeof(*blob));
|
||||||
|
if (!blob)
|
||||||
|
return; /* TODO: print OOM error */
|
||||||
|
|
||||||
|
blob->func = func;
|
||||||
|
blob->closure = closure;
|
||||||
|
blob->next = NULL;
|
||||||
|
*tail = blob;
|
||||||
|
tail = &blob->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void run_queue(void)
|
||||||
|
{
|
||||||
|
while (head) {
|
||||||
|
queue_blob *blob = head;
|
||||||
|
blob->func(blob->closure);
|
||||||
|
head = blob->next;
|
||||||
|
free(blob);
|
||||||
|
}
|
||||||
|
tail = &head;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
xcb_connection_t *c;
|
||||||
|
xcb_intern_atom_cookie_t cookie;
|
||||||
|
xcb_atom_t *atom;
|
||||||
|
} atom_state;
|
||||||
|
|
||||||
|
static void atom_done(void *closure)
|
||||||
|
{
|
||||||
|
xcb_intern_atom_reply_t *reply;
|
||||||
|
atom_state *as = closure;
|
||||||
|
|
||||||
|
reply = xcb_intern_atom_reply(as->c, as->cookie, NULL);
|
||||||
|
if (!reply)
|
||||||
|
goto done; /* TODO: print Error message */
|
||||||
|
|
||||||
|
*(as->atom) = reply->atom;
|
||||||
|
free(reply);
|
||||||
|
|
||||||
|
done:
|
||||||
|
free(as);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init_atoms(xcb_connection_t *c)
|
||||||
|
{
|
||||||
|
atom_state *as;
|
||||||
|
|
||||||
|
as = malloc(sizeof(*as));
|
||||||
|
as->c = c;
|
||||||
|
as->atom = &WM_STATE;
|
||||||
|
as->cookie = xcb_intern_atom(c, 0, strlen("WM_STATE"), "WM_STATE");
|
||||||
|
enqueue(atom_done, as);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@@ -61,7 +147,9 @@ main(int argc, char *argv[])
|
|||||||
char *displayname = NULL;
|
char *displayname = NULL;
|
||||||
Bool all_screens = False;
|
Bool all_screens = False;
|
||||||
Bool verbose = False;
|
Bool verbose = False;
|
||||||
Display *dpy;
|
xcb_connection_t *dpy;
|
||||||
|
const xcb_setup_t *setup;
|
||||||
|
int screen_number = 0;
|
||||||
int maxcmdlen = 10000;
|
int maxcmdlen = 10000;
|
||||||
|
|
||||||
ProgramName = argv[0];
|
ProgramName = argv[0];
|
||||||
@@ -100,146 +188,391 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dpy = XOpenDisplay (displayname);
|
dpy = xcb_connect(displayname, &screen_number);
|
||||||
if (!dpy) {
|
if (xcb_connection_has_error(dpy)) {
|
||||||
|
char *name = displayname;
|
||||||
|
if (!name)
|
||||||
|
name = getenv("DISPLAY");
|
||||||
|
if (!name)
|
||||||
|
name = "";
|
||||||
fprintf (stderr, "%s: unable to open display \"%s\"\r\n",
|
fprintf (stderr, "%s: unable to open display \"%s\"\r\n",
|
||||||
ProgramName, XDisplayName (displayname));
|
ProgramName, name);
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_atoms(dpy);
|
||||||
|
|
||||||
|
setup = xcb_get_setup(dpy);
|
||||||
if (all_screens) {
|
if (all_screens) {
|
||||||
for (i = 0; i < ScreenCount(dpy); i++) {
|
xcb_screen_iterator_t screen;
|
||||||
lookat (dpy, RootWindow(dpy,i), verbose, maxcmdlen);
|
|
||||||
}
|
screen = xcb_setup_roots_iterator(setup);
|
||||||
|
do {
|
||||||
|
lookat(dpy, screen.data->root, verbose, maxcmdlen);
|
||||||
|
xcb_screen_next(&screen);
|
||||||
|
} while (screen.rem);
|
||||||
} else {
|
} else {
|
||||||
lookat (dpy, DefaultRootWindow(dpy), verbose, maxcmdlen);
|
xcb_screen_iterator_t screen;
|
||||||
|
|
||||||
|
screen = xcb_setup_roots_iterator(setup);
|
||||||
|
for (i = 0; i < screen_number; i++)
|
||||||
|
xcb_screen_next(&screen);
|
||||||
|
|
||||||
|
lookat (dpy, screen.data->root, verbose, maxcmdlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
XCloseDisplay (dpy);
|
run_queue();
|
||||||
|
|
||||||
|
xcb_disconnect(dpy);
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
typedef struct {
|
||||||
lookat(Display *dpy, Window root, Bool verbose, int maxcmdlen)
|
xcb_connection_t *c;
|
||||||
|
xcb_get_property_cookie_t *prop_cookie;
|
||||||
|
xcb_query_tree_cookie_t *tree_cookie;
|
||||||
|
xcb_window_t *win;
|
||||||
|
xcb_window_t orig_win;
|
||||||
|
int list_length;
|
||||||
|
int verbose;
|
||||||
|
int maxcmdlen;
|
||||||
|
} child_wm_state;
|
||||||
|
|
||||||
|
static void child_info(void *closure)
|
||||||
{
|
{
|
||||||
Window dummy, *children = NULL, client;
|
child_wm_state *cs = closure;
|
||||||
unsigned int i, nchildren = 0;
|
xcb_window_t orig = cs->orig_win;
|
||||||
|
xcb_connection_t *c = cs->c;
|
||||||
|
int verbose = cs->verbose;
|
||||||
|
int maxcmdlen = cs->maxcmdlen;
|
||||||
|
int i, j;
|
||||||
|
|
||||||
/*
|
int child_count, num_rep;
|
||||||
* clients are not allowed to stomp on the root and ICCCM doesn't yet
|
xcb_query_tree_reply_t **reply;
|
||||||
* say anything about window managers putting stuff there; but, try
|
|
||||||
* anyway.
|
|
||||||
*/
|
|
||||||
print_client_properties (dpy, root, verbose, maxcmdlen);
|
|
||||||
|
|
||||||
/*
|
for (i = 0; i < cs->list_length; i++) {
|
||||||
* then, get the list of windows
|
xcb_get_property_reply_t *reply;
|
||||||
*/
|
reply = xcb_get_property_reply(c, cs->prop_cookie[i], NULL);
|
||||||
if (!XQueryTree (dpy, root, &dummy, &dummy, &children, &nchildren)) {
|
if (reply) {
|
||||||
return;
|
if (reply->type) {
|
||||||
|
/* Show information for this window */
|
||||||
|
print_client_properties(c, cs->win[i], cs->verbose, cs->maxcmdlen);
|
||||||
|
|
||||||
|
free(reply);
|
||||||
|
|
||||||
|
/* drain stale replies */
|
||||||
|
for (j = i+1; j < cs->list_length; j++) {
|
||||||
|
reply = xcb_get_property_reply(c, cs->prop_cookie[j], NULL);
|
||||||
|
if (reply)
|
||||||
|
free(reply);
|
||||||
|
}
|
||||||
|
for (j = 0; j < cs->list_length; j++) {
|
||||||
|
xcb_query_tree_reply_t *rep;
|
||||||
|
rep = xcb_query_tree_reply(c, cs->tree_cookie[j], NULL);
|
||||||
|
if (rep)
|
||||||
|
free(rep);
|
||||||
|
}
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
free(reply);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < nchildren; i++) {
|
/* WM_STATE not found. Recurse into children: */
|
||||||
client = XmuClientWindow (dpy, children[i]);
|
num_rep = 0;
|
||||||
if (client != None)
|
reply = malloc(sizeof(*reply) * cs->list_length);
|
||||||
print_client_properties (dpy, client, verbose, maxcmdlen);
|
if (!reply)
|
||||||
|
goto done; /* TODO: print OOM message, drain reply queue */
|
||||||
|
|
||||||
|
for (i = 0; i < cs->list_length; i++) {
|
||||||
|
reply[num_rep] = xcb_query_tree_reply(c, cs->tree_cookie[i], NULL);
|
||||||
|
if (reply[num_rep])
|
||||||
|
num_rep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
child_count = 0;
|
||||||
|
for (i = 0; i < num_rep; i++)
|
||||||
|
child_count += reply[i]->children_len;
|
||||||
|
|
||||||
|
if (!child_count) {
|
||||||
|
/* No children have CS_STATE; try the parent window */
|
||||||
|
print_client_properties(c, cs->orig_win, cs->verbose, cs->maxcmdlen);
|
||||||
|
goto reply_done;
|
||||||
|
}
|
||||||
|
|
||||||
|
cs = malloc(sizeof(*cs) + child_count * (sizeof(*cs->prop_cookie) + sizeof(*cs->tree_cookie) + sizeof(*cs->win)));
|
||||||
|
if (!cs)
|
||||||
|
goto reply_done; /* TODO: print OOM message */
|
||||||
|
|
||||||
|
cs->c = c;
|
||||||
|
cs->verbose = verbose;
|
||||||
|
cs->maxcmdlen = maxcmdlen;
|
||||||
|
cs->orig_win = orig;
|
||||||
|
cs->prop_cookie = (void *)&cs[1];
|
||||||
|
cs->tree_cookie = (void *)&cs->prop_cookie[child_count];
|
||||||
|
cs->win = (void *)&cs->tree_cookie[child_count];
|
||||||
|
cs->list_length = child_count;
|
||||||
|
|
||||||
|
child_count = 0;
|
||||||
|
for (i = 0; i < num_rep; i++) {
|
||||||
|
xcb_window_t *child = xcb_query_tree_children(reply[i]);
|
||||||
|
for (j = 0; j < reply[i]->children_len; j++) {
|
||||||
|
cs->win[child_count] = child[j];
|
||||||
|
cs->prop_cookie[child_count] = xcb_get_property(c, 0, child[j],
|
||||||
|
WM_STATE, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 0);
|
||||||
|
/* Just in case the property isn't there, get the tree too */
|
||||||
|
cs->tree_cookie[child_count++] = xcb_query_tree(c, child[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enqueue(child_info, cs);
|
||||||
|
|
||||||
|
reply_done:
|
||||||
|
for (i = 0; i < num_rep; i++)
|
||||||
|
free(reply[i]);
|
||||||
|
free(reply);
|
||||||
|
|
||||||
|
done:
|
||||||
|
free(closure);
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
xcb_connection_t *c;
|
||||||
|
xcb_query_tree_cookie_t cookie;
|
||||||
|
int verbose;
|
||||||
|
int maxcmdlen;
|
||||||
|
} root_list_state;
|
||||||
|
|
||||||
|
static void root_list(void *closure)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
xcb_window_t *child;
|
||||||
|
xcb_query_tree_reply_t *reply;
|
||||||
|
root_list_state *rl = closure;
|
||||||
|
|
||||||
|
reply = xcb_query_tree_reply(rl->c, rl->cookie, NULL);
|
||||||
|
if (!reply)
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
child = xcb_query_tree_children(reply);
|
||||||
|
for (i = 0; i < reply->children_len; i++) {
|
||||||
|
/* Get information about each child */
|
||||||
|
child_wm_state *cs = malloc(sizeof(*cs) + sizeof(*cs->prop_cookie) + sizeof(*cs->tree_cookie) + sizeof(*cs->win));
|
||||||
|
if (!cs)
|
||||||
|
goto done; /* TODO: print OOM message */
|
||||||
|
cs->c = rl->c;
|
||||||
|
cs->verbose = rl->verbose;
|
||||||
|
cs->maxcmdlen = rl->maxcmdlen;
|
||||||
|
cs->prop_cookie = (void *)&cs[1];
|
||||||
|
cs->tree_cookie = (void *)&cs->prop_cookie[1];
|
||||||
|
cs->win = (void *)&cs->tree_cookie[1];
|
||||||
|
|
||||||
|
cs->orig_win = child[i];
|
||||||
|
cs->win[0] = child[i];
|
||||||
|
|
||||||
|
cs->prop_cookie[0] = xcb_get_property(rl->c, 0, child[i],
|
||||||
|
WM_STATE, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 0);
|
||||||
|
/* Just in case the property isn't there, get the tree too */
|
||||||
|
cs->tree_cookie[0] = xcb_query_tree(rl->c, child[i]);
|
||||||
|
|
||||||
|
cs->list_length = 1;
|
||||||
|
enqueue(child_info, cs);
|
||||||
|
}
|
||||||
|
free(reply);
|
||||||
|
|
||||||
|
done:
|
||||||
|
free(rl);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
lookat(xcb_connection_t *dpy, xcb_window_t root, int verbose, int maxcmdlen)
|
||||||
|
{
|
||||||
|
root_list_state *rl = malloc(sizeof(*rl));
|
||||||
|
|
||||||
|
if (!rl)
|
||||||
|
return; /* TODO: OOM message */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get the list of windows
|
||||||
|
*/
|
||||||
|
|
||||||
|
rl->c = dpy;
|
||||||
|
rl->cookie = xcb_query_tree(dpy, root);
|
||||||
|
rl->verbose = verbose;
|
||||||
|
rl->maxcmdlen = maxcmdlen;
|
||||||
|
enqueue(root_list, rl);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *Nil = "(nil)";
|
static char *Nil = "(nil)";
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
xcb_connection_t *c;
|
||||||
|
xcb_get_property_cookie_t client_machine;
|
||||||
|
xcb_get_property_cookie_t command;
|
||||||
|
xcb_get_property_cookie_t name;
|
||||||
|
xcb_get_property_cookie_t icon_name;
|
||||||
|
xcb_get_property_cookie_t wm_class;
|
||||||
|
xcb_window_t w;
|
||||||
|
int verbose;
|
||||||
|
int maxcmdlen;
|
||||||
|
} client_state;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_client_properties(Display *dpy, Window w, Bool verbose, int maxcmdlen)
|
show_client_properties(void *closure)
|
||||||
{
|
{
|
||||||
char **cliargv = NULL;
|
client_state *cs = closure;
|
||||||
int i, cliargc;
|
xcb_get_property_reply_t *client_machine;
|
||||||
XTextProperty nametp, machtp, tp;
|
xcb_get_property_reply_t *command;
|
||||||
int charsleft = maxcmdlen;
|
xcb_get_property_reply_t *name;
|
||||||
|
xcb_get_property_reply_t *icon_name;
|
||||||
|
xcb_get_property_reply_t *wm_class;
|
||||||
|
char *argv;
|
||||||
|
int charsleft = cs->maxcmdlen;
|
||||||
|
int i;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get the WM_MACHINE and WM_COMMAND list of strings
|
* get the WM_MACHINE and WM_COMMAND list of strings
|
||||||
*/
|
*/
|
||||||
if (!XGetWMClientMachine (dpy, w, &machtp)) {
|
client_machine = xcb_get_property_reply(cs->c, cs->client_machine, NULL);
|
||||||
machtp.value = NULL;
|
command = xcb_get_property_reply(cs->c, cs->command, NULL);
|
||||||
machtp.encoding = None;
|
if (cs->verbose) {
|
||||||
|
name = xcb_get_property_reply(cs->c, cs->name, NULL);
|
||||||
|
icon_name = xcb_get_property_reply(cs->c, cs->icon_name, NULL);
|
||||||
|
wm_class = xcb_get_property_reply(cs->c, cs->wm_class, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!XGetCommand (dpy, w, &cliargv, &cliargc)) {
|
if (!command || !command->type)
|
||||||
if (machtp.value) XFree ((char *) machtp.value);
|
goto done;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do header information
|
* do header information
|
||||||
*/
|
*/
|
||||||
if (verbose) {
|
if (cs->verbose) {
|
||||||
printf ("Window 0x%lx:\n", w);
|
printf ("Window 0x%" PRIx32 ":\n", cs->w);
|
||||||
print_text_field (dpy, " Machine: ", &machtp);
|
print_text_field (cs->c, " Machine: ", client_machine);
|
||||||
if (XGetWMName (dpy, w, &nametp)) {
|
if (name && name->type)
|
||||||
print_text_field (dpy, " Name: ", &nametp);
|
print_text_field (cs->c, " Name: ", name);
|
||||||
if (nametp.value) XFree ((char *) nametp.value);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
print_text_field (dpy, NULL, &machtp);
|
print_text_field (cs->c, NULL, client_machine);
|
||||||
putchar (' ');
|
putchar (' ');
|
||||||
putchar (' ');
|
putchar (' ');
|
||||||
}
|
}
|
||||||
if (machtp.value) XFree ((char *) machtp.value);
|
|
||||||
|
|
||||||
if (verbose) {
|
|
||||||
if (XGetWMIconName (dpy, w, &tp)) {
|
if (cs->verbose)
|
||||||
print_text_field (dpy, " Icon Name: ", &tp);
|
if (icon_name && icon_name->type)
|
||||||
if (tp.value) XFree ((char *) tp.value);
|
print_text_field (cs->c, " Icon Name: ", icon_name);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do the command
|
* do the command
|
||||||
*/
|
*/
|
||||||
if (verbose) {
|
if (cs->verbose)
|
||||||
printf (" Command: ");
|
printf (" Command: ");
|
||||||
}
|
argv = xcb_get_property_value(command);
|
||||||
for (i = 0; i < cliargc && charsleft > 0; ) {
|
for (i = 0; i < command->value_len && charsleft > 0; ) {
|
||||||
charsleft -= print_quoted_word (cliargv[i], charsleft);
|
charsleft -= print_quoted_word (argv + i, charsleft);
|
||||||
i++;
|
i += strnlen(argv + i, command->value_len - i) + 1;
|
||||||
if (i < cliargc && charsleft > 0) {
|
if (i < command->value_len && charsleft > 0) {
|
||||||
putchar (' '); charsleft--;
|
putchar (' ');
|
||||||
|
charsleft--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
XFreeStringList (cliargv);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do trailer information
|
* do trailer information
|
||||||
*/
|
*/
|
||||||
if (verbose) {
|
if (cs->verbose) {
|
||||||
XClassHint clh;
|
if (wm_class && wm_class->type) {
|
||||||
if (XGetClassHint (dpy, w, &clh)) {
|
char *res_name, *res_class;
|
||||||
printf (" Instance/Class: %s/%s",
|
int name_len, class_len;
|
||||||
clh.res_name ? clh.res_name : Nil,
|
res_name = xcb_get_property_value(wm_class);
|
||||||
clh.res_class ? clh.res_class : Nil);
|
name_len = strnlen(res_name, wm_class->value_len) + 1;
|
||||||
if (clh.res_name) XFree (clh.res_name);
|
class_len = wm_class->value_len - name_len;
|
||||||
if (clh.res_class) XFree (clh.res_class);
|
if (class_len > 0) {
|
||||||
|
res_class = res_name + name_len;
|
||||||
|
} else {
|
||||||
|
res_class = Nil;
|
||||||
|
class_len = strlen(res_class);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf (" Instance/Class: %.*s/%.*s",
|
||||||
|
name_len, res_name,
|
||||||
|
class_len, res_class);
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (client_machine)
|
||||||
|
free(client_machine);
|
||||||
|
if (command)
|
||||||
|
free(command);
|
||||||
|
if (cs->verbose) {
|
||||||
|
if (name)
|
||||||
|
free(name);
|
||||||
|
if (icon_name)
|
||||||
|
free(icon_name);
|
||||||
|
if (wm_class)
|
||||||
|
free(wm_class);
|
||||||
|
}
|
||||||
|
free(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_text_field(Display *dpy, char *s, XTextProperty *tp)
|
print_client_properties(xcb_connection_t *dpy, xcb_window_t w, int verbose, int maxcmdlen)
|
||||||
{
|
{
|
||||||
if (tp->encoding == None || tp->format == 0) {
|
client_state *cs = malloc(sizeof(*cs));
|
||||||
|
if (!cs)
|
||||||
|
return; /* TODO: print OOM message */
|
||||||
|
|
||||||
|
cs->c = dpy;
|
||||||
|
cs->w = w;
|
||||||
|
cs->verbose = verbose;
|
||||||
|
cs->maxcmdlen = maxcmdlen;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get the WM_CLIENT_MACHINE and WM_COMMAND list of strings
|
||||||
|
*/
|
||||||
|
cs->client_machine = xcb_get_property(dpy, 0, w,
|
||||||
|
WM_CLIENT_MACHINE, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 1000000L);
|
||||||
|
cs->command = xcb_get_property(dpy, 0, w,
|
||||||
|
WM_COMMAND, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 1000000L);
|
||||||
|
|
||||||
|
if (verbose) {
|
||||||
|
cs->name = xcb_get_property(dpy, 0, w,
|
||||||
|
WM_NAME, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 1000000L);
|
||||||
|
cs->icon_name = xcb_get_property(dpy, 0, w,
|
||||||
|
WM_ICON_NAME, XCB_GET_PROPERTY_TYPE_ANY,
|
||||||
|
0, 1000000L);
|
||||||
|
cs->wm_class = xcb_get_property(dpy, 0, w,
|
||||||
|
WM_CLASS, STRING,
|
||||||
|
0, 1000000L);
|
||||||
|
}
|
||||||
|
|
||||||
|
enqueue(show_client_properties, cs);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_text_field(xcb_connection_t *dpy, char *s, xcb_get_property_reply_t *tp)
|
||||||
|
{
|
||||||
|
if (tp->type == XCB_NONE || tp->format == 0) { /* Or XCB_ATOM_NONE after libxcb 1.5 */
|
||||||
printf ("''");
|
printf ("''");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s) printf ("%s", s);
|
if (s) printf ("%s", s);
|
||||||
if (tp->encoding == XA_STRING && tp->format == 8) {
|
if (tp->type == STRING && tp->format == 8) {
|
||||||
printf ("%s", tp->value ? (char *) tp->value : Nil);
|
printf ("%.*s", (int)tp->value_len, (char *)xcb_get_property_value(tp));
|
||||||
} else {
|
} else {
|
||||||
unknown (dpy, tp->encoding, tp->format);
|
unknown (dpy, tp->type, tp->format);
|
||||||
}
|
}
|
||||||
if (s) putchar ('\n');
|
if (s) putchar ('\n');
|
||||||
}
|
}
|
||||||
@@ -303,18 +636,22 @@ print_quoted_word(char *s,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
unknown(Display *dpy, Atom actual_type, int actual_format)
|
unknown(xcb_connection_t *dpy, xcb_atom_t actual_type, int actual_format)
|
||||||
{
|
{
|
||||||
char *s;
|
|
||||||
|
|
||||||
printf ("<unknown type ");
|
printf ("<unknown type ");
|
||||||
if (actual_type == None) printf ("None");
|
if (actual_type == XCB_NONE)
|
||||||
else if ((s = XGetAtomName (dpy, actual_type)) != NULL) {
|
printf ("None");
|
||||||
fputs (s, stdout);
|
else {
|
||||||
XFree (s);
|
/* This should happen so rarely as to make no odds. Eat a round-trip: */
|
||||||
} else {
|
xcb_get_atom_name_reply_t *atom =
|
||||||
|
xcb_get_atom_name_reply(dpy,
|
||||||
|
xcb_get_atom_name(dpy, actual_type), NULL);
|
||||||
|
if (atom) {
|
||||||
|
printf("%.*s", xcb_get_atom_name_name_length(atom),
|
||||||
|
xcb_get_atom_name_name(atom));
|
||||||
|
free(atom);
|
||||||
|
} else
|
||||||
fputs (Nil, stdout);
|
fputs (Nil, stdout);
|
||||||
}
|
}
|
||||||
printf (" (%ld) or format %d>", actual_type, actual_format);
|
printf (" (%" PRIu32 ") or format %d>", actual_type, actual_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user