Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xprintidle for openSUSE:Factory checked in at 2023-05-23 14:55:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xprintidle (Old) and /work/SRC/openSUSE:Factory/.xprintidle.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xprintidle" Tue May 23 14:55:04 2023 rev:2 rq:1088603 version:0.2.5 Changes: -------- --- /work/SRC/openSUSE:Factory/xprintidle/xprintidle.changes 2016-07-14 09:45:50.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xprintidle.new.1533/xprintidle.changes 2023-05-23 14:55:37.066864532 +0200 @@ -1,0 +2,42 @@ +Tue May 23 00:24:20 UTC 2023 - Avindra Goolcharan <avin...@opensuse.org> + +- update to 0.2.5: + * README: adapt build & install section + * xprintidle: introduce get_x_idletime() function + * xprintidle: add missing close and free on error + * xprintidle: use EXIT_{SUCCESS,FAILURE} in main() +- includes 0.2.4: + * xprintidle: adapt usage text + * xprintidle: add option to print program version + * clang-format: Only merge empty functions on one line + * man: add initial manpage +- includes 0.2.3: + * change buildsystem to meson + * README: rewrite in markdown + * AUTHORS: standardize entries and sort alphabetically + * xprintidle: harmonize comments + * clang-format: add initial version + * xprintidle: reformat source + * xprintidle: fix typos in comments + * xprintidle: remove unneeded "_" from function parameter name + * xprintidle: make workaroundCreepyXServer() version dependent + * COPYING: remove "How to Apply" section + * README: add "Contributing" section +- includes 0.2.2: + * Applying 0.2-10 version of full-linking.patch from debian + * Apply x11-autoconf.patch from debian version 0.2-10 + * Merge tag '0.2-10.debian' + * ChangeLog: mention patches from debian + * Makefile.am: remove not needed LDADD + * autoreconf to get changes into configure and Makefile.in +- includes 0.2.1: + * Applying full-linking.patch from debian + * Applying allocinfo.patch from debian + * Applying configure.patch from debian + * Fix library checking and remove not needed ones + * Add gitignore for C and Automake/conf stuff + * Autoreconf with v2.69 +- ran spec-cleaner +- update home URL + +------------------------------------------------------------------- @@ -4 +46 @@ -- Initial package. +- Initial package @ v0.2 Old: ---- xprintidle_0.2.orig.tar.gz New: ---- xprintidle_0.2.5.orig.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xprintidle.spec ++++++ --- /var/tmp/diff_new_pack.XDBjNo/_old 2023-05-23 14:55:37.882869360 +0200 +++ /var/tmp/diff_new_pack.XDBjNo/_new 2023-05-23 14:55:37.886869383 +0200 @@ -1,7 +1,7 @@ # # spec file for package xprintidle # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,20 +12,19 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: xprintidle -Version: 0.2 +Version: 0.2.5 Release: 0 Summary: Utility to print user's idle time in X -License: GPL-2.0 +License: GPL-2.0-only Group: System/X11/Utilities -Url: http://freecode.com/projects/xprintidle +URL: https://github.com/g0hl1n/xprintidle Source: http://httpredir.debian.org/debian/pool/main/x/%{name}/%{name}_%{version}.orig.tar.gz -BuildRequires: autoconf -BuildRequires: automake +BuildRequires: meson BuildRequires: pkgconfig BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) @@ -37,22 +36,18 @@ %prep %setup -q -sed -i 's/dist-lzma //' configure.ac %build -export LIBS="-lXext" -autoreconf -fi -%configure \ - --x-includes=%{_includedir} \ - --x-libraries=%{_libdir} -make %{?_smp_mflags} +%meson +%meson_build %install -%make_install +%meson_install %files -%defattr(-,root,root) -%doc COPYING NEWS README +%license COPYING +%doc README.md %{_bindir}/%{name} +%{_mandir}/man1/%{name}.1%{?ext_man} %changelog ++++++ xprintidle_0.2.orig.tar.gz -> xprintidle_0.2.5.orig.tar.gz ++++++ ++++ 8926 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/xprintidle-0.2/.clang-format new/xprintidle-0.2.5/.clang-format --- old/xprintidle-0.2/.clang-format 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/.clang-format 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,2 @@ +BasedOnStyle: LLVM +AllowShortFunctionsOnASingleLine: Empty 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/xprintidle-0.2/.github/workflows/main.yml new/xprintidle-0.2.5/.github/workflows/main.yml --- old/xprintidle-0.2/.github/workflows/main.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/.github/workflows/main.yml 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,19 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Install deps + run: sudo apt-get install libxss-dev + - uses: actions/checkout@v2 + - uses: actions/setup-python@v1 + - uses: BSFishy/meson-build@v1.0.1 + with: + action: build 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/xprintidle-0.2/.gitignore new/xprintidle-0.2.5/.gitignore --- old/xprintidle-0.2/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/.gitignore 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,2 @@ +# meson +build/ 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/xprintidle-0.2/AUTHORS new/xprintidle-0.2.5/AUTHORS --- old/xprintidle-0.2/AUTHORS 2008-10-14 18:09:20.000000000 +0200 +++ new/xprintidle-0.2.5/AUTHORS 2022-06-07 14:13:30.000000000 +0200 @@ -1,2 +1,4 @@ -Initial version: Magnus Henoch -Contributors: Danny Kukawka, Eivind Magnus Hvidevold +Danny Kukawka <dkuka...@suse.de>, <danny.kuka...@web.de> +Eivind Magnus Hvidevold <hvidev...@gmail.com> +Magnus Henoch <hen...@dtek.chalmers.se> (initial author) +Richard Leitner <d...@g0hl1n.net> 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/xprintidle-0.2/COPYING new/xprintidle-0.2.5/COPYING --- old/xprintidle-0.2/COPYING 2007-09-17 19:39:56.000000000 +0200 +++ new/xprintidle-0.2.5/COPYING 2022-06-07 14:13:30.000000000 +0200 @@ -278,63 +278,3 @@ POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. 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/xprintidle-0.2/ChangeLog new/xprintidle-0.2.5/ChangeLog --- old/xprintidle-0.2/ChangeLog 2008-10-14 16:44:19.000000000 +0200 +++ new/xprintidle-0.2.5/ChangeLog 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -2008-10-14 Magnus Henoch <ma...@freemail.hu> - - * xprintidle.c: Update copyright notice. - (workaroundCreepyXServer): New function, written for kpowersave by - Danny Kukawka, adapted for xprintidle by Eivind Magnus Hvidevold. - (main): Use it. - * COPYING: Now GNU GPL 2 instead of 3-clause BSD. - - * configure.ac: New file. - - * Makefile.am: New file. - 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/xprintidle-0.2/INSTALL new/xprintidle-0.2.5/INSTALL --- old/xprintidle-0.2/INSTALL 2008-10-14 16:01:34.000000000 +0200 +++ new/xprintidle-0.2.5/INSTALL 1970-01-01 01:00:00.000000000 +0100 @@ -1,237 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007 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. - -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. - -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 the options to `configure', and exit. - -`--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. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - 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/xprintidle-0.2/Makefile.am new/xprintidle-0.2.5/Makefile.am --- old/xprintidle-0.2/Makefile.am 2008-10-14 15:20:16.000000000 +0200 +++ new/xprintidle-0.2.5/Makefile.am 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -bin_PROGRAMS = xprintidle -xprintidle_SOURCES = xprintidle.c - -AM_CPPFLAGS = -I@x_includes@ -LDADD = -L@x_libraries@ -lX11 -lXss 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/xprintidle-0.2/NEWS new/xprintidle-0.2.5/NEWS --- old/xprintidle-0.2/NEWS 2008-10-14 16:47:20.000000000 +0200 +++ new/xprintidle-0.2.5/NEWS 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -xprintidle 0.2: - Now licensed under GNU GPL 2 (only). - Workaround for incorrect idle times when changing DPMS state. - -xprintidle 0.1: - Initial version. \ No newline at end of file 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/xprintidle-0.2/README new/xprintidle-0.2.5/README --- old/xprintidle-0.2/README 2008-10-14 15:27:20.000000000 +0200 +++ new/xprintidle-0.2.5/README 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -xprintidle is a utility that queries the X server for the user's idle -time and prints it to stdout (in milliseconds). - -Basically, type "./configure && make && sudo make install" to compile -and install the program. See the INSTALL file for more detailed -instructions. - -You need the development files for the Xss library. In Debian, they -are in the package 'libxss-dev' or 'xlibs-static-dev', depending on -your version. - -Web page: http://www.dtek.chalmers.se/~henoch/text/xprintidle.html -E-mail: Magnus Henoch <hen...@dtek.chalmers.se> -Jabber/XMPP: legos...@jabber.cd.chalmers.se 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/xprintidle-0.2/README.md new/xprintidle-0.2.5/README.md --- old/xprintidle-0.2/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/README.md 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,25 @@ +# xprintidle # + +xprintidle is a utility that queries the X server for the user's idle +time and prints it to stdout (in milliseconds). + +## Building and Installing ## + +Basically, use meson to compile and install the program: + +``` +meson build +meson install -C build +``` + +### Dependencies ### + +You need the development files for the X11, Xext and Xss library. + +## Contributing ## + +To contribute source code to xprintidle please use GitHubs Pull-Request feature. +Furthermore please make sure that you've run clang-format before commiting +changes. + +To report a problem or request a feature please use GitHubs Issue-Tracker. 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/xprintidle-0.2/configure.ac new/xprintidle-0.2.5/configure.ac --- old/xprintidle-0.2/configure.ac 2008-10-14 16:46:24.000000000 +0200 +++ new/xprintidle-0.2.5/configure.ac 1970-01-01 01:00:00.000000000 +0100 @@ -1,29 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.62) -AC_INIT([xprintidle], [0.2], [hen...@dtek.chalmers.se]) -AM_INIT_AUTOMAKE([dist-bzip2 dist-lzma -Wall]) -AC_CONFIG_SRCDIR([xprintidle.c]) - -# Checks for programs. -AC_PROG_CC -AC_PROG_INSTALL - -# Checks for header files. -AC_PATH_X -if test "$no_x" = yes; then - AC_MSG_ERROR([X not found]) -fi -AC_SUBST([x_includes]) -AC_SUBST([x_libraries]) - -# Checks for libraries. -user_LIBS=$LIBS -LIBS="$LIBS -L$x_libraries" -AC_CHECK_LIB([X11], [XOpenDisplay], , [AC_MSG_ERROR([libX11 not found])]) -AC_CHECK_LIB([Xss], [XScreenSaverQueryExtension], , [AC_MSG_ERROR([libXss not found])]) -LIBS=$user_LIBS - -AC_CONFIG_FILES([Makefile]) -AC_OUTPUT 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/xprintidle-0.2/meson.build new/xprintidle-0.2.5/meson.build --- old/xprintidle-0.2/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/meson.build 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,29 @@ +project('xprintidle', + 'c', + version : '0.2.5', + license : 'GPL-2.0', + default_options : [ + 'c_std=c89', + 'warning_level=3', + 'optimization=3', + ] +) +add_project_arguments('-DXPRINTIDLE_VERSION="@0@"'.format(meson.project_version()), language : 'c') + +src = [ + 'xprintidle.c', +] + +dep = [ + dependency('xscrnsaver'), + dependency('x11'), + dependency('xext'), +] + +executable('xprintidle', + sources: src, + dependencies: dep, + install : true, +) + +install_man('xprintidle.1') 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/xprintidle-0.2/missing new/xprintidle-0.2.5/missing --- old/xprintidle-0.2/missing 2008-10-14 16:01:34.000000000 +0200 +++ new/xprintidle-0.2.5/missing 1970-01-01 01:00:00.000000000 +0100 @@ -1,367 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2006-05-10.23 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to <bug-autom...@gnu.org>." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). -case $1 in - lex|yacc) - # Not GNU programs, they don't have --version. - ;; - - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $1 in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: 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/xprintidle-0.2/xprintidle.1 new/xprintidle-0.2.5/xprintidle.1 --- old/xprintidle-0.2/xprintidle.1 1970-01-01 01:00:00.000000000 +0100 +++ new/xprintidle-0.2.5/xprintidle.1 2022-06-07 14:13:30.000000000 +0200 @@ -0,0 +1,56 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH XPRINTIDLE 1 "2020-11-23" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +xprintidle \- utility printing user's idle time in X +. +.SH SYNOPSIS +.B xprintidle +.RI [ OPTION .\|.\|.] +. +.SH DESCRIPTION +.B xprintidle +is a utility that queries the X server for the user's idle time and prints +it to stdout (in milliseconds). +. +.SH OPTIONS +.SS "Generic Program Information" +.TP +.B \-h ", " \-\^\-help +Output a usage message and exit. +.TP +.B \-v ", " \-\^\-version +Output the version number and exit. +. +.SH BUGS +Please use +.UR https://github.com/g0hl1n/xprintidle/issues +the GitHub bugtracker +.UE +to report bugs. +. +.SH AUTHOR +xprintidle was initially written by Magnus Henoch <hen...@dtek.chalmers.se>. +For a full list of authors see +.UR https://github.com/g0hl1n/xprintidle/blob/master/AUTHORS +the AUTHORS file +.UE +. +.PP +This manual page was written by Milan Zamazal <p...@debian.org>, +for the Debian project (but may be used by others) and adapted by +Richard Leitner <d...@bubus.at> for https://github.com/g0hl1n/xprintidle. 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/xprintidle-0.2/xprintidle.c new/xprintidle-0.2.5/xprintidle.c --- old/xprintidle-0.2/xprintidle.c 2008-10-14 16:07:54.000000000 +0200 +++ new/xprintidle-0.2.5/xprintidle.c 2022-06-07 14:13:30.000000000 +0200 @@ -1,104 +1,157 @@ -/* - -This program prints the "idle time" of the user to stdout. The "idle -time" is the number of milliseconds since input was received on any -input device. If unsuccessful, the program prints a message to stderr -and exits with a non-zero exit code. - -Copyright (c) 2005, 2008 Magnus Henoch <hen...@dtek.chalmers.se> -Copyright (c) 2006, 2007 by Danny Kukawka - <dkuka...@suse.de>, <danny.kuka...@web.de> -Copyright (c) 2008 Eivind Magnus Hvidevold <hvidev...@gmail.com> - -This program is free software; you can redistribute it and/or modify -it under the terms of version 2 of the GNU General Public License -as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the -Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -The function workaroundCreepyXServer was adapted from kpowersave-0.7.3 by -Eivind Magnus Hvidevold <hvidev...@gmail.com>. kpowersave is licensed under -the GNU GPL, version 2 _only_. - -*/ +/* SPDX-License-Identifier: GPL-2.0-only + * + * This program prints the "idle time" of the user to stdout. The "idle time" + * is the number of milliseconds since input was received on any input device. + * If unsuccessful, the program prints a message to stderr and exits with a + * non-zero exit code. + * + * Copyright (c) 2005, 2008 Magnus Henoch <hen...@dtek.chalmers.se> + * Copyright (c) 2006, 2007 by Danny Kukawka <dkuka...@suse.de>, + * <danny.kuka...@web.de> + * Copyright (c) 2008 Eivind Magnus Hvidevold <hvidev...@gmail.com> + * Copyright (c) 2014-2022 Richard Leitner <d...@g0hl1n.net> + * + * This file is part of xprintidle. + * + * xprintidle is free software; you can redistribute it and/or modify it under + * the terms of version 2 of the GNU General Public License as published by the + * Free Software Foundation. + * + * xprintidle is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * xprintidle. If not, see <https://www.gnu.org/licenses/>. + * + * The function workaroundCreepyXServer was adapted from kpowersave-0.7.3 by + * Eivind Magnus Hvidevold <hvidev...@gmail.com>. kpowersave is licensed under + * the GNU GPL, version 2 _only_. + */ #include <X11/Xlib.h> #include <X11/extensions/dpms.h> #include <X11/extensions/scrnsaver.h> +#include <stdint.h> #include <stdio.h> +#include <stdlib.h> +#include <string.h> -void usage(char *name); -unsigned long workaroundCreepyXServer(Display *dpy, unsigned long _idleTime ); +#ifndef XPRINTIDLE_VERSION +#define XPRINTIDLE_VERSION "n/a" +#endif + +unsigned long workaroundCreepyXServer(Display *dpy, unsigned long idleTime); + +void print_usage(char *name) { + fprintf(stdout, + "usage: %s [OPTION]\n" + "Query the X server for the user's idle time\n" + "\n" + "Options:\n" + " -h, --help Show this text\n" + " -v, --version Print the program version\n" + "\n" + "Report bugs at: https://github.com/g0hl1n/xprintidle/issues\n" + "Written by Magnus Henoch and others; see\n" + "https://github.com/g0hl1n/xprintidle/blob/master/AUTHORS\n", + name); +} + +void print_version() { + fprintf(stdout, "xprintidle %s\n", XPRINTIDLE_VERSION); +} -int main(int argc, char *argv[]) +/* + * This function gets the X idle time in milliseconds and writes it to the + * "idle" argument. + * On success 0 is returned. + * On error -1 is returned. + */ +int get_x_idletime(uint64_t *idle) { - XScreenSaverInfo ssi; + XScreenSaverInfo *ssi; Display *dpy; - int event_basep, error_basep; + int event_basep, error_basep, vendrel; - if (argc != 1) { - usage(argv[0]); - return 1; - } - dpy = XOpenDisplay(NULL); if (dpy == NULL) { fprintf(stderr, "couldn't open display\n"); - return 1; + return -1; } - + if (!XScreenSaverQueryExtension(dpy, &event_basep, &error_basep)) { fprintf(stderr, "screen saver extension not supported\n"); - return 1; + XCloseDisplay(dpy); + return -1; + } + + ssi = XScreenSaverAllocInfo(); + if (ssi == NULL) { + fprintf(stderr, "couldn't allocate screen saver info\n"); + XCloseDisplay(dpy); + return -1; } - - if (!XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), &ssi)) { + + if (!XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), ssi)) { fprintf(stderr, "couldn't query screen saver info\n"); - return 1; + XFree(ssi); + XCloseDisplay(dpy); + return -1; } - - printf("%lu\n", workaroundCreepyXServer(dpy, ssi.idle)); - + + /* xorg fixed the reset of the idle time in some (unknown) release. We now it + * is fixed in v1.20.00, therefore don't do the workaround for this version. + * If anybody finds the commit and therefore xorg release which fixes this + * issue please send a patch or raise an issue ;-) */ + vendrel = VendorRelease(dpy); + if (vendrel < 12000000) { + *idle = workaroundCreepyXServer(dpy, ssi->idle); + } else { + *idle = ssi->idle; + } + + XFree(ssi); XCloseDisplay(dpy); + return 0; } -void usage(char *name) -{ - fprintf(stderr, - "Usage:\n" - "%s\n" - "That is, no command line arguments. The user's idle time\n" - "in milliseconds is printed on stdout.\n", - name); +int main(int argc, char *argv[]) { + uint64_t idle; + + /* TODO change this to getopts as soon as we have more options */ + if (argc != 1) { + if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--version")) { + print_version(); + return EXIT_SUCCESS; + } + print_usage(argv[0]); + return EXIT_FAILURE; + } + + if (get_x_idletime(&idle) < 0) { + return EXIT_FAILURE; + } + + printf("%lu\n", idle); + return EXIT_SUCCESS; } -/*! +/* * This function works around an XServer idleTime bug in the * XScreenSaverExtension if dpms is running. In this case the current * dpms-state time is always subtracted from the current idletime. * This means: XScreenSaverInfo->idle is not the time since the last - * user activity, as descriped in the header file of the extension. + * user activity, as described in the header file of the extension. * This result in SUSE bug # and sf.net bug #. The bug in the XServer itself * is reported at https://bugs.freedesktop.org/buglist.cgi?quicksearch=6439. * - * Workaround: Check if if XServer is in a dpms state, check the - * current timeout for this state and add this value to + * Workaround: Check if if XServer is in a dpms state, check the + * current timeout for this state and add this value to * the current idle time and return. - * - * \param _idleTime a unsigned long value with the current idletime from - * XScreenSaverInfo->idle - * \return a unsigned long with the corrected idletime */ -unsigned long workaroundCreepyXServer(Display *dpy, unsigned long _idleTime ){ +unsigned long workaroundCreepyXServer(Display *dpy, unsigned long idleTime) { int dummy; CARD16 standby, suspend, off; CARD16 state; @@ -111,26 +164,26 @@ if (onoff) { switch (state) { - case DPMSModeStandby: - /* this check is a littlebit paranoid, but be sure */ - if (_idleTime < (unsigned) (standby * 1000)) - _idleTime += (standby * 1000); - break; - case DPMSModeSuspend: - if (_idleTime < (unsigned) ((suspend + standby) * 1000)) - _idleTime += ((suspend + standby) * 1000); - break; - case DPMSModeOff: - if (_idleTime < (unsigned) ((off + suspend + standby) * 1000)) - _idleTime += ((off + suspend + standby) * 1000); - break; - case DPMSModeOn: - default: - break; + case DPMSModeStandby: + /* this check is a little bit paranoid, but be sure */ + if (idleTime < (unsigned)(standby * 1000)) + idleTime += (standby * 1000); + break; + case DPMSModeSuspend: + if (idleTime < (unsigned)((suspend + standby) * 1000)) + idleTime += ((suspend + standby) * 1000); + break; + case DPMSModeOff: + if (idleTime < (unsigned)((off + suspend + standby) * 1000)) + idleTime += ((off + suspend + standby) * 1000); + break; + case DPMSModeOn: + default: + break; } } - } + } } - return _idleTime; + return idleTime; }