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 - sndir...@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 <alan.coopersm...@oracle.com> +Date: Fri Mar 9 18:21:47 2018 -0800 + + xprop 1.2.3 + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 331ab01ac2ccb7aea7084c4907a47291ae549e1d +Author: Mihail Konev <k....@ya.ru> +Date: Thu Jan 26 14:00:21 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev <k....@ya.ru> + +commit 78e28685ad86facdbf94de607050f3b2f1752d12 +Author: Emil Velikov <emil.l.veli...@gmail.com> +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 <emil.l.veli...@gmail.com> + Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 44f2605cfecbf5b30677b6414389d8987c9dc59d +Author: Peter Hutterer <peter.hutte...@who-t.net> +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 <peter.hutte...@who-t.net> + Reviewed-by: Emil Velikov <emil.veli...@collabora.com> + +commit fa732adbbf5e29f4bb230e9b7c0c91ccb4b5af7e +Author: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> +Date: Fri May 22 11:10:05 2015 +0200 + + Free the data returned by Format_Icons() + + Signed-off-by: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> + +commit 52c9aa32c8f1b787de7b68d9bb843fa7270cbaaf +Author: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> +Date: Fri May 22 11:10:03 2015 +0200 + + Free the data returned by XGetWindowProperty() + + Signed-off-by: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> + +commit dee1d0c1316b1c62c6c62d6f0f4b13685e8e6630 +Author: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> +Date: Fri May 22 11:10:04 2015 +0200 + + Free the data returned by XListProperties() + + Signed-off-by: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> + +commit 4f748e3d2b1368ec0590a413ba5f7addc5e3344f +Author: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> +Date: Fri May 22 11:10:02 2015 +0200 + + Free the thunks used by Show_Prop + + Signed-off-by: Eirik Byrkjeflot Anonsen <ei...@eirikba.org> + +commit b0ae4b903067017ec7dc19f27d3916d2153410af +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Tue Jun 3 18:29:44 2014 -0700 + + Add -version option to print program version + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit faa4fa7785addc2170d4de7bf13d377324597e99 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Tue Jun 3 18:26:19 2014 -0700 + + Print which option was in error along with usage message + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 5d4c35a6ad0823f9c921058fa6efb972b29da2d8 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +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 <alan.coopersm...@oracle.com> + +commit 678692d91e1b03aa27f8d924744be8a04adf5b41 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Tue Jun 3 17:47:13 2014 -0700 + + configure: Drop AM_MAINTAINER_MODE + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + commit 9e0f57f6a271313d1b49b5019753b4410f407cc5 Author: Alan Coopersmith <alan.coopersm...@oracle.com> 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 `<wchar.h>' 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 <tro...@cygnus.com>. # # 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 <pin...@iro.umontreal.ca>, 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);