Hello community,
here is the log from the commit of package xprop for openSUSE:Factory checked in at 2018-04-07 20:49:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xprop (Old)
and /work/SRC/openSUSE:Factory/.xprop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xprop"
Sat Apr 7 20:49:53 2018 rev:7 rq:593602 version:1.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/xprop/xprop.changes 2013-08-18 22:28:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xprop.new/xprop.changes 2018-04-07 20:49:58.437772321 +0200
@@ -1,0 +2,16 @@
+Wed Apr 4 16:27:31 UTC 2018 - sndirsch@suse.com
+
+- Update to version 1.2.3
+ * configure: Drop AM_MAINTAINER_MODE
+ * autogen.sh: Honor NOCONFIGURE=1
+ * Print which option was in error along with usage message
+ * Add -version option to print program version
+ * Free the thunks used by Show_Prop
+ * Free the data returned by XListProperties()
+ * Free the data returned by XGetWindowProperty()
+ * Free the data returned by Format_Icons()
+ * autogen.sh: use quoted string variables
+ * autogen: add default patch prefix
+ * autogen.sh: use exec instead of waiting for configure to finish
+
+-------------------------------------------------------------------
Old:
----
xprop-1.2.2.tar.bz2
New:
----
xprop-1.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xprop.spec ++++++
--- /var/tmp/diff_new_pack.wZCHJt/_old 2018-04-07 20:50:00.785687345 +0200
+++ /var/tmp/diff_new_pack.wZCHJt/_new 2018-04-07 20:50:00.789687200 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xprop
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: xprop
-Version: 1.2.2
+Version: 1.2.3
Release: 0
Summary: Property displayer for X
License: MIT
++++++ xprop-1.2.2.tar.bz2 -> xprop-1.2.3.tar.bz2 ++++++
++++ 12081 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/ChangeLog new/xprop-1.2.3/ChangeLog
--- old/xprop-1.2.2/ChangeLog 2013-08-09 05:05:32.000000000 +0200
+++ new/xprop-1.2.3/ChangeLog 2018-03-10 03:23:25.000000000 +0100
@@ -1,3 +1,109 @@
+commit ded6efa3da1ce611e4668d7766e934a239f6120c
+Author: Alan Coopersmith
+Date: Fri Mar 9 18:21:47 2018 -0800
+
+ xprop 1.2.3
+
+ Signed-off-by: Alan Coopersmith
+
+commit 331ab01ac2ccb7aea7084c4907a47291ae549e1d
+Author: Mihail Konev
+Date: Thu Jan 26 14:00:21 2017 +1000
+
+ autogen: add default patch prefix
+
+ Signed-off-by: Mihail Konev
+
+commit 78e28685ad86facdbf94de607050f3b2f1752d12
+Author: Emil Velikov
+Date: Mon Mar 9 12:00:52 2015 +0000
+
+ autogen.sh: use quoted string variables
+
+ Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
+ fall-outs, when they contain space.
+
+ Signed-off-by: Emil Velikov
+ Reviewed-by: Peter Hutterer
+ Signed-off-by: Peter Hutterer
+
+commit 44f2605cfecbf5b30677b6414389d8987c9dc59d
+Author: Peter Hutterer
+Date: Tue Jan 24 10:32:07 2017 +1000
+
+ autogen.sh: use exec instead of waiting for configure to finish
+
+ Syncs the invocation of configure with the one from the server.
+
+ Signed-off-by: Peter Hutterer
+ Reviewed-by: Emil Velikov
+
+commit fa732adbbf5e29f4bb230e9b7c0c91ccb4b5af7e
+Author: Eirik Byrkjeflot Anonsen
+Date: Fri May 22 11:10:05 2015 +0200
+
+ Free the data returned by Format_Icons()
+
+ Signed-off-by: Eirik Byrkjeflot Anonsen
+
+commit 52c9aa32c8f1b787de7b68d9bb843fa7270cbaaf
+Author: Eirik Byrkjeflot Anonsen
+Date: Fri May 22 11:10:03 2015 +0200
+
+ Free the data returned by XGetWindowProperty()
+
+ Signed-off-by: Eirik Byrkjeflot Anonsen
+
+commit dee1d0c1316b1c62c6c62d6f0f4b13685e8e6630
+Author: Eirik Byrkjeflot Anonsen
+Date: Fri May 22 11:10:04 2015 +0200
+
+ Free the data returned by XListProperties()
+
+ Signed-off-by: Eirik Byrkjeflot Anonsen
+
+commit 4f748e3d2b1368ec0590a413ba5f7addc5e3344f
+Author: Eirik Byrkjeflot Anonsen
+Date: Fri May 22 11:10:02 2015 +0200
+
+ Free the thunks used by Show_Prop
+
+ Signed-off-by: Eirik Byrkjeflot Anonsen
+
+commit b0ae4b903067017ec7dc19f27d3916d2153410af
+Author: Alan Coopersmith
+Date: Tue Jun 3 18:29:44 2014 -0700
+
+ Add -version option to print program version
+
+ Signed-off-by: Alan Coopersmith
+
+commit faa4fa7785addc2170d4de7bf13d377324597e99
+Author: Alan Coopersmith
+Date: Tue Jun 3 18:26:19 2014 -0700
+
+ Print which option was in error along with usage message
+
+ Signed-off-by: Alan Coopersmith
+
+commit 5d4c35a6ad0823f9c921058fa6efb972b29da2d8
+Author: Alan Coopersmith
+Date: Tue Jun 3 17:47:13 2014 -0700
+
+ autogen.sh: Honor NOCONFIGURE=1
+
+ See http://people.gnome.org/~walters/docs/build-api.txt
+
+ Signed-off-by: Alan Coopersmith
+
+commit 678692d91e1b03aa27f8d924744be8a04adf5b41
+Author: Alan Coopersmith
+Date: Tue Jun 3 17:47:13 2014 -0700
+
+ configure: Drop AM_MAINTAINER_MODE
+
+ Signed-off-by: Alan Coopersmith
+
commit 9e0f57f6a271313d1b49b5019753b4410f407cc5
Author: Alan Coopersmith
Date: Thu Aug 8 20:04:00 2013 -0700
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/INSTALL new/xprop-1.2.3/INSTALL
--- old/xprop-1.2.2/INSTALL 2013-08-09 05:05:32.000000000 +0200
+++ new/xprop-1.2.3/INSTALL 2018-03-10 03:23:25.000000000 +0100
@@ -1,11 +1,13 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Inc.
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
Basic Installation
==================
@@ -13,7 +15,11 @@
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.
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -42,7 +48,7 @@
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
-The simplest way to compile this package is:
+ 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.
@@ -53,12 +59,22 @@
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
- documentation.
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
- 5. You can remove the program binaries and object files from the
+ 6. 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
@@ -67,8 +83,15 @@
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.
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
Compilers and Options
=====================
@@ -93,7 +116,8 @@
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 `..'.
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
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
@@ -120,7 +144,8 @@
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'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -131,15 +156,46 @@
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.
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
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
@@ -152,6 +208,13 @@
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
Particular systems
==================
@@ -159,10 +222,15 @@
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
- ./configure CC="cc -Ae"
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
@@ -174,6 +242,16 @@
./configure CC="cc -nodtk"
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
Specifying the System Type
==========================
@@ -189,7 +267,8 @@
where SYSTEM can have one of these forms:
- OS KERNEL-OS
+ 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
@@ -277,7 +356,7 @@
`configure' can determine that directory automatically.
`--prefix=DIR'
- Use DIR as the installation prefix. *Note Installation Names::
+ Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/compile new/xprop-1.2.3/compile
--- old/xprop-1.2.2/compile 2013-08-09 05:04:15.000000000 +0200
+++ new/xprop-1.2.3/compile 2018-03-10 03:23:19.000000000 +0100
@@ -3,7 +3,7 @@
scriptversion=2012-10-14.11; # UTC
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Written by Tom Tromey .
#
# This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/configure.ac new/xprop-1.2.3/configure.ac
--- old/xprop-1.2.2/configure.ac 2013-08-09 05:04:09.000000000 +0200
+++ new/xprop-1.2.3/configure.ac 2018-03-10 03:23:15.000000000 +0100
@@ -22,14 +22,13 @@
# Initialize Autoconf
AC_PREREQ([2.60])
-AC_INIT([xprop], [1.2.2],
+AC_INIT([xprop], [1.2.3],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xprop])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
m4_ifndef([XORG_MACROS_VERSION],
@@ -40,7 +39,7 @@
AC_CHECK_HEADERS([wchar.h wctype.h langinfo.h])
# Checks for pkg-config packages
-PKG_CHECK_MODULES(XPROP, [x11 xproto >= 7.0.17])
+PKG_CHECK_MODULES(XPROP, [x11 xproto >= 7.0.25])
XORG_WITH_LINT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/dsimple.c new/xprop-1.2.3/dsimple.c
--- old/xprop-1.2.2/dsimple.c 2013-08-09 05:04:09.000000000 +0200
+++ new/xprop-1.2.3/dsimple.c 2018-03-10 03:23:15.000000000 +0100
@@ -75,7 +75,7 @@
char *arg = argv[i];
if (!strcmp (arg, "-display") || !strcmp (arg, "-d")) {
- if (++i >= argc) usage ();
+ if (++i >= argc) usage ("-display requires an argument");
displayname = argv[i];
*pargc -= 2;
@@ -196,7 +196,7 @@
nargv = argv+1; argc = ARGC;
#define OPTION argv[0]
#define NXTOPTP ++argv, --argc>0
-#define NXTOPT if (++argv, --argc==0) usage()
+#define NXTOPT(arg) if (++argv, --argc==0) usage(arg " requires an argument")
#define COPYOPT nargv++[0]=OPTION, nargc++
while (NXTOPTP) {
@@ -211,7 +211,7 @@
continue;
}
if (!strcmp(OPTION, "-name")) {
- NXTOPT;
+ NXTOPT("-name");
w = Window_With_Name(dpy, RootWindow(dpy, screen),
OPTION);
if (!w)
@@ -219,7 +219,7 @@
continue;
}
if (!strcmp(OPTION, "-id")) {
- NXTOPT;
+ NXTOPT("-id");
w=0;
sscanf(OPTION, "0x%lx", &w);
if (!w)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/dsimple.h new/xprop-1.2.3/dsimple.h
--- old/xprop-1.2.2/dsimple.h 2013-08-09 05:04:09.000000000 +0200
+++ new/xprop-1.2.3/dsimple.h 2018-03-10 03:23:15.000000000 +0100
@@ -64,7 +64,7 @@
void Close_Display(void);
XFontStruct *Open_Font(const char *);
Window Select_Window_Args(int *, char **);
-void usage(void) _X_NORETURN;
+void usage(const char *errmsg) _X_NORETURN _X_COLD;
#define X_USAGE "[host:display]" /* X arguments handled by
Get_Display_Name */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/man/xprop.man new/xprop-1.2.3/man/xprop.man
--- old/xprop-1.2.2/man/xprop.man 2013-08-09 05:04:09.000000000 +0200
+++ new/xprop-1.2.3/man/xprop.man 2018-03-10 03:23:15.000000000 +0100
@@ -36,6 +36,7 @@
[-remove \fIproperty-name\fP]
[-set \fIproperty-name\fP \fIvalue\fP]
[-spy]
+[-version]
[-f \fIatom\fP \fIformat\fP [\fIdformat\fP]]*
[\fIformat\fP [\fIdformat\fP] \fIatom\fP]*
.SH SUMMARY
@@ -121,6 +122,10 @@
Examine window properties forever, looking for property change events.
.PP
.TP 8
+.B "-verson"
+Print program version information and exit.
+.PP
+.TP 8
.B "-f \fIname\fP \fIformat\fP [\fIdformat\fP]"
Specifies that the \fIformat\fP for \fIname\fP should be \fIformat\fP and that
the \fIdformat\fP for \fIname\fP should be \fIdformat\fP. If \fIdformat\fP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/missing new/xprop-1.2.3/missing
--- old/xprop-1.2.2/missing 2013-08-09 05:04:15.000000000 +0200
+++ new/xprop-1.2.3/missing 2018-03-10 03:23:19.000000000 +0100
@@ -1,9 +1,9 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
@@ -160,7 +160,7 @@
;;
autom4te*)
echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
+ echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xprop-1.2.2/xprop.c new/xprop-1.2.3/xprop.c
--- old/xprop-1.2.2/xprop.c 2013-08-09 05:04:09.000000000 +0200
+++ new/xprop-1.2.3/xprop.c 2018-03-10 03:23:15.000000000 +0100
@@ -95,14 +95,6 @@
return tptr;
}
-#ifdef notused
-static void
-Free_Thunk_List (thunk *list)
-{
- free(list);
-}
-#endif
-
static thunk *
Add_Thunk (thunk *list, thunk t)
{
@@ -758,10 +750,14 @@
static const char *
Format_Icons (const unsigned long *icon, int len)
{
- char *result = NULL, *tail = NULL;
+ static char *result = NULL;
+ char *tail = NULL;
int alloced;
const unsigned long *end = icon + len / sizeof (unsigned long);
+ free(result);
+ result = NULL;
+
alloced = 0;
while (icon < end)
@@ -1431,9 +1427,15 @@
unsigned long nitems;
unsigned long nbytes;
unsigned long bytes_after;
- unsigned char *prop;
+ static unsigned char *prop = NULL;
int status;
-
+
+ if (prop)
+ {
+ XFree(prop);
+ prop = NULL;
+ }
+
status = XGetWindowProperty(dpy, target_win, atom, 0, (max_len+3)/4,
False, AnyPropertyType, &actual_type,
&actual_format, &nitems, &bytes_after,
@@ -1506,8 +1508,8 @@
}
thunks = Break_Down_Property(data, (int)length, type, format, size);
-
Display_Property(thunks, dformat, format);
+ free(thunks);
}
static void
@@ -1523,6 +1525,7 @@
name = Format_Atom(atoms[i]);
Show_Prop(NULL, NULL, name);
}
+ XFree(atoms);
} else
for (i = 0; i < font->n_properties; i++) {
atom = font->properties[i].name;
@@ -1552,11 +1555,11 @@
/* Get overriding formats, if any */
if (Is_A_Format(argv[0])) {
format = argv++[0]; argc--;
- if (!argc) usage();
+ if (!argc) usage("format specified without atom");
}
if (Is_A_DFormat(argv[0])) {
dformat = argv++[0]; argc--;
- if (!argc) usage();
+ if (!argc) usage("dformat specified without atom");
}
/* Get property name */
@@ -1768,9 +1771,9 @@
*/
void
-usage (void)
+usage (const char *errmsg)
{
- static const char help_message[] =
+ static const char *help_message =
"where options include:\n"
" -grammar print out full grammar for command line\n"
" -display host:dpy the X server to contact\n"
@@ -1785,10 +1788,15 @@
" -fs filename where to look for formats for properties\n"
" -frame don't ignore window manager frames\n"
" -f propname format [dformat] formats to use for property of given name\n"
-" -spy examine window properties forever\n";
+" -spy examine window properties forever\n"
+" -version print program version\n";
fflush (stdout);
+
+ if (errmsg != NULL)
+ fprintf (stderr, "%s: %s\n\n", program_name, errmsg);
+
fprintf (stderr,
"usage: %s [-options ...] [[format [dformat]] atom] ...\n\n",
program_name);
@@ -1826,7 +1834,7 @@
#define ARGC (*argc)
#define ARGV (*argv)
#define OPTION ARGV[0]
-#define NXTOPT if (++ARGV, --ARGC==0) usage()
+#define NXTOPT if (++ARGV, --ARGC==0) usage("insufficent arguments for -format")
char *type_name, *format, *dformat;
NXTOPT; type_name = OPTION;
@@ -1922,12 +1930,12 @@
continue;
}
if (!strcmp(argv[0], "-len")) {
- if (++argv, --argc == 0) usage();
+ if (++argv, --argc == 0) usage("-len requires an argument");
max_len = atoi(argv[0]);
continue;
}
if (!strcmp(argv[0], "-formats") || !strcmp(argv[0], "-fs")) {
- if (++argv, --argc == 0) usage();
+ if (++argv, --argc == 0) usage("-fs requires an argument");
if (!(stream = fopen(argv[0], "r")))
Fatal_Error("unable to open file %s for reading.", argv[0]);
Read_Mappings(stream);
@@ -1935,14 +1943,14 @@
continue;
}
if (!strcmp(argv[0], "-font")) {
- if (++argv, --argc == 0) usage();
+ if (++argv, --argc == 0) usage("-font requires an argument");
font = Open_Font(argv[0]);
target_win = -1;
continue;
}
if (!strcmp(argv[0], "-remove")) {
thunk t = {0};
- if (++argv, --argc == 0) usage();
+ if (++argv, --argc == 0) usage("-remove requires an argument");
t.propname = argv[0];
if (remove_props == NULL) remove_props = Create_Thunk_List();
remove_props = Add_Thunk(remove_props, t);
@@ -1950,7 +1958,7 @@
}
if (!strcmp(argv[0], "-set")) {
thunk t = {0};
- if (argc < 3) usage();
+ if (argc < 3) usage("insufficent arguments for -set");
t.propname = argv[1];
t.extra_value = argv[2];
argv += 3; argc -= 3;
@@ -1966,11 +1974,20 @@
Parse_Format_Mapping(&argc, &argv);
continue;
}
- usage();
+ if (!strcmp(argv[0], "-version")) {
+ puts(PACKAGE_STRING);
+ exit(0);
+ }
+ fprintf (stderr, "%s: unrecognized argument %s\n\n",
+ program_name, argv[0]);
+ usage(NULL);
}
- if ((remove_props != NULL || set_props != NULL) && argc > 0)
- usage();
+ if ((remove_props != NULL || set_props != NULL) && argc > 0) {
+ fprintf (stderr, "%s: unrecognized argument %s\n\n",
+ program_name, argv[0]);
+ usage(NULL);
+ }
if (target_win == None)
target_win = Select_Window(dpy, !frame_only);