summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyungKyu Song <hk76.song@samsung.com>2013-02-16 00:19:32 +0900
committerHyungKyu Song <hk76.song@samsung.com>2013-02-16 00:19:32 +0900
commit56e0032c10d42e53cd7038744702cf879b41fed1 (patch)
tree5297b668cc57024e13b8ba5ed0ea65747fcf7a0a
parentb70d9e6bd9fe0aa5424eea00b6423276902d86de (diff)
downloadlibxscrnsaver-tizen_2.0.tar.gz
libxscrnsaver-tizen_2.0.tar.bz2
libxscrnsaver-tizen_2.0.zip
-rw-r--r--COPYING49
-rw-r--r--ChangeLog642
-rw-r--r--INSTALL291
-rw-r--r--Makefile.am43
-rw-r--r--README25
-rw-r--r--configure.ac55
-rw-r--r--include/X11/extensions/scrnsaver.h134
-rw-r--r--man/Makefile.am53
-rw-r--r--man/XScreenSaverAllocInfo.man1
-rw-r--r--man/XScreenSaverGetRegistered.man1
-rw-r--r--man/XScreenSaverQueryExtension.man1
-rw-r--r--man/XScreenSaverQueryInfo.man1
-rw-r--r--man/XScreenSaverQueryVersion.man1
-rw-r--r--man/XScreenSaverRegister.man1
-rw-r--r--man/XScreenSaverSelectInput.man1
-rw-r--r--man/XScreenSaverSetAttributes.man1
-rw-r--r--man/XScreenSaverSuspend.man1
-rw-r--r--man/XScreenSaverUnregister.man1
-rw-r--r--man/XScreenSaverUnsetAttributes.man1
-rw-r--r--man/Xss.man363
-rw-r--r--packaging/libXScrnSaver.spec64
-rw-r--r--src/Makefile.am35
-rw-r--r--src/XScrnSaver.c470
-rw-r--r--xscrnsaver.pc.in12
24 files changed, 2247 insertions, 0 deletions
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..72196e4
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,49 @@
+Copyright (c) 1992 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+Copyright (C) 2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from the XFree86 Project.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..8b2cc90
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,642 @@
+commit 0ec072963f5964e09fbf84f4cd7d7ff8a9f3291f
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed Mar 7 21:05:41 2012 -0800
+
+ libXScrnSaver 1.2.2
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 7d4e80e24773cd961d3c5d04031873017a1551a2
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 10 21:41:58 2011 -0800
+
+ Fix gcc -Wwrite-strings warning
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 1cd2ab96550b6b7d3abf92f76fe112798af727a4
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Sep 16 22:52:51 2011 -0700
+
+ Strip trailing whitespace
+
+ Performed with: find * -type f | xargs perl -i -p -e 's{[ \t]+$}{}'
+ git diff -w & git diff -b show no diffs from this change
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit cfd6e22a3722514beefb39c73970715e2037b3ea
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 11:43:40 2011 -0500
+
+ config: comment, minor upgrade, quote and layout configure.ac
+
+ Group statements per section as per Autoconf standard layout
+ Quote statements where appropriate.
+ Autoconf recommends not using dnl instead of # for comments
+
+ Use AC_CONFIG_FILES to replace the deprecated AC_OUTPUT with parameters.
+ Add AC_CONFIG_SRCDIR([Makefile.am])
+
+ This helps automated maintenance and release activities.
+ Details can be found in http://wiki.x.org/wiki/NewModuleGuidelines
+
+commit 49b025eff5d5d343ae11c6bfea7731ca8bcbe332
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Jan 28 19:41:37 2011 -0500
+
+ config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit ca2fc82f17a2bbe104b44ac33298377db0299c43
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Thu Jan 27 18:50:15 2011 -0500
+
+ config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
+
+ XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
+ AC_PROG_C_C99. This sets gcc with -std=gnu99.
+ If AC_PROG_CC macro is called afterwards, it resets CC to gcc.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit aa25c745b032608c9cdc8006ed351d8ef435bf18
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Oct 29 22:20:54 2010 -0700
+
+ libXScrnSaver 1.2.1
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit f8b5e67d5b9fe5f6d8ff75561d66ac6a4bc16df2
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Oct 29 22:18:40 2010 -0700
+
+ Sun's copyrights now belong to Oracle
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 3ef4f63bf542411aa01e62ef5e8c8120afe255be
+Author: Jesse Adkins <jesserayadkins@gmail.com>
+Date: Tue Sep 28 13:30:02 2010 -0700
+
+ Purge cvs tags.
+
+ Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 25c4abc730f7d2407c33fcd5c48a6a82c541c921
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue Aug 17 09:00:28 2010 -0400
+
+ man: store shadow man pages in git rather than generating them
+
+ Simplify the build process and the makefile.
+
+ Local fix in CVS for bug 5628 is not required
+ as the problem has been fixed in
+ util-macros d9062e4077ebfd0985baf8418f3d0f111b9ddbba
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 1fb51a78ae5a063aa384b0b6b6fb7b11e972fcfa
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Jul 8 15:04:20 2010 -0700
+
+ Use make rules instead of shell for loops to generate shadow man pages
+
+ Allows parallel make and simpler build logs/error reporting
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 2f5b75f49528c4bf57100b5d8fb83788013f7da9
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Jul 8 15:01:36 2010 -0700
+
+ config: upgrade to util-macros 1.8 for additional man page support
+
+ Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS
+ The value of MAN_SUBST is the same for all X.Org packages.
+
+ Use AC_PROG_SED now supplied by XORG_DEFAULT_OPTIONS
+ The existing statement can now be removed from the configuration file.
+
+ Use automake provided $(AM_V_GEN) and XORG_DEFAULT_OPTIONS provided $(SED)
+ Enables silent rule and use platform appropriate version of sed.
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit d1a4b97476efc64d9c47202b877c72c8b0fed14d
+Author: Fernando Carrijo <fcarrijo@yahoo.com.br>
+Date: Thu Jul 1 07:04:31 2010 -0300
+
+ Purge macros NEED_EVENTS and NEED_REPLIES
+
+ Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
+ Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit bd46f8e115caeb4f48af64fc235d2b317f01b41f
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Mon Mar 29 16:50:33 2010 -0400
+
+ config: update AC_PREREQ statement to 2.60
+
+ Unrelated to the previous patches, the new value simply reflects
+ the reality that the minimum level for autoconf to configure
+ all x.org modules is 2.60 dated June 2006.
+
+ ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit d665b35a9b33b7b0a80b557115240ff5514bd8cf
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Mon Mar 29 14:53:48 2010 -0400
+
+ config: remove the pkgconfig pc.in file from EXTRA_DIST
+
+ Automake always includes it in the tarball.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 00e9520738c8660451cdf21e5a3b530924855822
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue Feb 16 10:37:21 2010 -0500
+
+ config: move CWARNFLAGS from configure.ac to Makefile.am
+
+ Compiler warning flags should be explicitly set in the makefile
+ rather than being merged with other packages compiler flags.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 0b90e128718f269be334b9e60aa5b50604b1dc8c
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Thu Jan 14 21:09:04 2010 -0800
+
+ Update Sun license notices to current X.Org standard form
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 2f58888d29d779cb84072d1895934dfcee683f4c
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Nov 27 20:56:03 2009 -0500
+
+ Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+
+ Now that the INSTALL file is generated.
+ Allows running make maintainer-clean.
+
+commit 27972a511fb73bad74dd0309487af050a6a99c42
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Oct 28 14:09:10 2009 -0400
+
+ INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
+
+ Add missing INSTALL file. Use standard GNU file on building tarball
+ README may have been updated
+ Remove AUTHORS file as it is empty and no content available yet.
+ Remove NEWS file as it is empty and no content available yet.
+
+commit fe1b6951a8e6ac4006b4f488121746cf71e4771d
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue Oct 27 15:07:26 2009 -0400
+
+ Deploy the new XORG_DEFAULT_OPTIONS #24242
+
+ This macro aggregate a number of existing macros that sets commmon
+ X.Org components configuration options. It shields the configuration file from
+ future changes.
+
+commit 7c8ac21a9485beab00560764d16e41a4c26cfc02
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Mon Oct 26 22:08:42 2009 -0400
+
+ Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+
+ ChangeLog filename is known to Automake and requires no further
+ coding in the makefile.
+
+commit b0b29818e4893fcf97a67fab58640740f285ad25
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Thu Oct 22 12:34:19 2009 -0400
+
+ .gitignore: use common defaults with custom section # 24239
+
+ Using common defaults will reduce errors and maintenance.
+ Only the very small or inexistent custom section need periodic maintenance
+ when the structure of the component changes. Do not edit defaults.
+
+commit b27442666e132a521c5ce8c2aaa8de97abfa54b1
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Wed Oct 21 12:47:23 2009 -0700
+
+ This is not a GNU project, so declare it foreign.
+
+ On Wed, 2009-10-21 at 13:36 +1000, Peter Hutterer wrote:
+ > On Tue, Oct 20, 2009 at 08:23:55PM -0700, Jeremy Huddleston wrote:
+ > > I noticed an INSTALL file in xlsclients and libXvMC today, and it
+ > > was quite annoying to work around since 'autoreconf -fvi' replaces
+ > > it and git wants to commit it. Should these files even be in git?
+ > > Can I nuke them for the betterment of humanity and since they get
+ > > created by autoreconf anyways?
+ >
+ > See https://bugs.freedesktop.org/show_bug.cgi?id=24206
+
+ As an interim measure, replace AM_INIT_AUTOMAKE([dist-bzip2]) with
+ AM_INIT_AUTOMAKE([foreign dist-bzip2]). This will prevent the generation
+ of the INSTALL file. It is also part of the 24206 solution.
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
+
+commit aa162e709338904604b3f945999956044bcbc7cb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Aug 25 18:47:04 2009 +1000
+
+ Bump to 1.2.0
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 1fd39b3fa18a3a315bf339f56a5fd9fb7a279f60
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Aug 25 18:48:26 2009 +1000
+
+ Require scrnsaverproto 1.2 to avoid header file conflicts.
+
+ scrnsaverproto <= 1.1 provided screensaver.h.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit fb54ab90058f187f32c0679da35684accf8043c7
+Author: Julien Cristau <jcristau@debian.org>
+Date: Thu Aug 20 23:31:47 2009 +0200
+
+ Fix man vs header mismatch
+
+ the manpage says the last member of XScreenSaverInfo is called
+ event_mask when in fact it is called eventMask in the header file.
+
+ Debian bug#542698 <http://bugs.debian.org/542698>
+
+commit 486af8df83765525d8c77bfa42b56fb193950c8a
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Feb 2 20:34:31 2009 -0800
+
+ Add README with pointers to mailing list, bugzilla & git repos
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit ed5bba86f67fdadeeaff584818d10864f3609e1a
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date: Fri Jan 30 17:18:09 2009 -0200
+
+ Janitor: make distcheck, compiler warnings.
+
+commit f755643f48e780c6582132269ca8d5fb750c53bf
+Author: Peter Hutterer <peter@cs.unisa.edu.au>
+Date: Mon May 19 22:53:40 2008 +0930
+
+ Change AM_CFLAGS to pull in new header.
+
+commit 85762a27e0203aa380c4ed26dc08c7f1181d5210
+Author: Peter Hutterer <peter@cs.unisa.edu.au>
+Date: Mon May 19 20:11:56 2008 +0930
+
+ Add screensaver.h to includedir.
+
+ This header is a pure Xlib header and was moved here from the protocol module.
+ The history of the file can be found in the protocol module.
+ git://anongit.freedesktop.org/git/xorg/proto/scrnsaverproto
+
+commit ff9c27b08754c160256fe4d75cc4fbe07083f9d4
+Author: Peter Hutterer <peter@cs.unisa.edu.au>
+Date: Mon May 19 18:49:26 2008 +0930
+
+ Rename parameters to clarify QueryVersion/QueryExtension.
+
+ These parameters are not treated as input. Rename them to make the
+ inner workings slightly more obvious.
+
+ X.Org Bug 14511 <http://bugs.freedesktop.org/show_bug.cgi?id=14511>
+
+commit e3af1209b9c1fdb032d01e00b300d57278b81189
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Mar 17 18:28:14 2008 -0700
+
+ Version bump: 1.1.3
+
+commit a9208d44e5123c2f688097c2833abba7e6bcfc71
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date: Tue Mar 4 18:51:25 2008 -0300
+
+ libXScrnSaver ansification.
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit b805b9ebb2f981a507d16fc5524f573b8187e5f1
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Mar 17 18:05:32 2008 -0700
+
+ Add hooks to check code with sparse/lint/etc.
+
+commit ae5c253a13cbb408cb41e173bffb993ec6aa6310
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sun Mar 9 00:21:17 2008 +0100
+
+ Makefile.am: nuke RCS Id
+
+commit f641875615739ae6431e59b4fc47bb52fdce6381
+Author: James Cloos <cloos@jhcloos.com>
+Date: Thu Dec 6 15:51:14 2007 -0500
+
+ Add missing PHONY line for automatic ChangeLog generation
+
+commit ec5ca1927558d686c4957f2ae8c8c50c722cd87b
+Author: Daniel Drake <ddrake@brontes3d.com>
+Date: Tue May 29 10:07:00 2007 -0800
+
+ Bug #11084: libXScrnSaver COPYING file
+
+ X.Org Bugzilla #11084 <https://bugs.freedesktop.org/show_bug.cgi?id=11084>
+
+commit 8eced0dc1e259777bcda00539c0c59a57fa4a49d
+Author: James Cloos <cloos@jhcloos.com>
+Date: Mon Sep 3 05:53:34 2007 -0400
+
+ Add *~ to .gitignore to skip patch/emacs droppings
+
+commit 36205d276fd8f783898abae4c32f72ab4eaab3c4
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Dec 16 01:35:45 2006 +0200
+
+ bump to 1.1.2
+
+commit 116299e6274c0c1bdd20b517fcc59ad95c438025
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Wed Dec 6 18:56:33 2006 +0200
+
+ Makefile.am: make ChangeLog hook safer
+ Make ChangeLog hook as safe as possible.
+
+commit 39fd9561a1cf899e933859279a2220b11e729548
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Fri Oct 13 16:29:20 2006 -0400
+
+ Bump to 1.1.1
+
+commit 3705540d62bab68c5d41b73b59e2a7a23b001118
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Thu Oct 12 20:25:51 2006 -0400
+
+ Fix the ChangeLog hook to distcheck.
+
+commit be1d6f234b8366be9cc81bbc6e1774243102cb6d
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sat Jul 29 21:30:25 2006 +0200
+
+ Remove ChangeLog. Add a rule in Makefile.am to generate it using git-log.
+
+commit 27ce5ef4924cd162f9313d2c444d2830dc71e9ae
+Author: Federico G. Schwindt <fgsch@openbsd.org>
+Date: Sat Jul 29 21:24:50 2006 +0200
+
+ correct header path.
+
+commit 5cbdc1b7dc3dedf341afdf6c7df741c015ceb6fa
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Thu Jul 13 14:58:47 2006 -0700
+
+ renamed: .cvsignore -> .gitignore
+
+commit a183fb1a70d48155b67d98fb4e4aaca825842f12
+Author: Fredrik Höglund <fredrik@kde.org>
+Date: Fri Mar 31 18:43:09 2006 +0000
+
+ Update the package version number to 1.1. Require scrnsaverproto >= 1.1.
+ Update the manpage to document the new XScreenSaverSuspend function.
+ Add the implementation of XScreenSaverSuspend.
+
+commit 8bc4acacd1079637be310b71fb5b74a5b0717cc2
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sun Feb 12 18:19:21 2006 +0000
+
+ Bug #5628 <https://bugs.freedesktop.org/show_bug.cgi?id=5628> Shadow pages
+ not created correctly when MANDIR & MANSUFFIX don't match.
+
+commit 10b822d58304884aad0f9b321b7e97f354bb0601
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Dec 21 02:30:05 2005 +0000
+
+ Update package version for X11R7 release.
+
+commit e81e373c1263fb6934253661aaa4631456ca2766
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Dec 19 16:28:26 2005 +0000
+
+ Stub COPYING files
+
+commit d939ce79b74a502e2c66a9049f8c9daf4c47bbf6
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Dec 15 00:24:28 2005 +0000
+
+ Update package version number for final X11R7 release candidate.
+
+commit a7fe9e9fa7e2d358788758fe1031595d322d874f
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Dec 6 22:48:42 2005 +0000
+
+ Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
+
+commit 0e2a03621d3779ebc922b3629b4239bc311e690c
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 05:49:42 2005 +0000
+
+ Update package version number for X11R7 RC3 release.
+
+commit c7e4c70be3431073765fad255d81f02e390a92d0
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 04:41:48 2005 +0000
+
+ Add check and cflags for malloc(0) returning NULL.
+
+commit 754c50dc72c217f8cd4a9da36f42dd2e55407733
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Nov 28 22:03:05 2005 +0000
+
+ Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
+ update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
+
+commit d0b21d4a6ad67657b8a24f2bfaf4eaaddcf9f757
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Nov 20 23:17:40 2005 +0000
+
+ Add/improve libs .cvsignores.
+
+commit b58dced9ca72778438a1a57a314d18450891b7a5
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Nov 19 07:15:40 2005 +0000
+
+ Update pkgconfig files to separate library build-time dependencies from
+ application build-time dependencies, and update package deps to work
+ with separate build roots.
+
+commit 73316750771ef55c3d9723be3c321221a482f584
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Oct 19 02:48:09 2005 +0000
+
+ Update package version number for RC1 release.
+
+commit abb8966bbb2b78d16032bff72d5e2c53bbaaeca4
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Oct 18 00:00:08 2005 +0000
+
+ Use @LIB_MAN_SUFFIX@ instead of $(LIB_MAN_SUFFIX) in macro substitutions to
+ work better with BSD make
+
+commit e5b2cfc00086fbc28cbcff0c25a5f6cc648974b2
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Oct 17 21:13:15 2005 +0000
+
+ Rename .shadows.DONE to shadows.DONE to avoid some make's thinking it's a
+ suffix rule (reported by Matthieu Herrb)
+
+commit a90094021482a3e4093a4adc9a013c4084bd8712
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Thu Oct 13 04:25:46 2005 +0000
+
+ Add generated man pages to .cvsignores
+
+commit 572497b3413a67795306fc0df9554c4cb6c974fb
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Thu Oct 13 02:13:37 2005 +0000
+
+ [lib/XScrnSaver manpage cleanup]
+ Use sed to fill in variables in man page Add shadow man pages for man pages
+ that document multiple functions.
+
+commit 3aa74d1b757936676dbd8bd640b51d72d5c28da1
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Aug 28 19:59:15 2005 +0000
+
+ Bug #4149: Keep the soname as libXss and the version at 1.0.0, for monolith
+ compatibility. Bump to 0.99.1. (Christophe Saout)
+
+commit d0080f2f901247d12b78f90c747d543a1c96c8ab
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Aug 3 03:28:00 2005 +0000
+
+ Do PKG_CHECK_MODULES on a unique token instead of on "DEP", so builds with
+ a global configure cache don't get confused.
+
+commit 2581b891b58754e29a2af759c3ca277bf5a06d97
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Jul 29 21:22:50 2005 +0000
+
+ Various changes preparing packages for RC0:
+ - Verify and update package version numbers as needed
+ - Implement versioning scheme
+ - Change bug address to point to bugzilla bug entry form
+ - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
+ reenable it)
+ - Fix makedepend to use pkgconfig and pass distcheck
+ - Update build script to build macros first
+ - Update modular Xorg version
+
+commit f00570af369d1a516062fec225095cc94e6fab53
+Author: Keith Packard <keithp@keithp.com>
+Date: Sat Jul 9 06:04:32 2005 +0000
+
+ Add .cvsignore files
+
+commit 3817722549db9a2377f034b0af5768f8c36bbf62
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Wed Jun 22 22:46:39 2005 +0000
+
+ Apply these patches from Theo van Klaveren:
+ lib-dmx.patch lib-FS.patch lib-X11.patch lib-XRes.patch
+ lib-XScrnSaver.patch lib-xtrans.patch
+ to make the libraries distcheck.
+
+commit 1d4fab032a4b9924adbc6853798e98b4101c96d8
+Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>
+Date: Tue Jun 21 15:41:36 2005 +0000
+
+ lib/XScrnSaver/configure.ac
+ lib/XScrnSaver/src/Makefile.am
+ lib/Xfontcache/configure.ac
+ lib/Xfontcache/src/Makefile.am
+ lib/Xinerama/configure.ac
+ lib/Xinerama/src/Makefile.am
+ lib/Xtst/configure.ac
+ lib/Xv/configure.ac
+ lib/XvMC/configure.ac
+ lib/dmx/configure.ac Add missing xext.pc and xextproto.pc Add DEP_CFLAGS to
+ src/Makefile.am
+
+commit 21286ccdf3418566b424a9f086289994ac0877f1
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Fri Jun 10 19:57:07 2005 +0000
+
+ Build system for XScrnSaver
+
+commit c3a1a641b1a003ac7b4558b7897e77f0d0f0fdfa
+Author: Egbert Eich <eich@suse.de>
+Date: Fri Apr 23 18:43:51 2004 +0000
+
+ Merging XORG-CURRENT into trunk
+
+commit 903b9ea09dadfd395120db1e844ce0fe374dfcef
+Author: Egbert Eich <eich@suse.de>
+Date: Sun Mar 14 08:32:25 2004 +0000
+
+ Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
+
+commit d5b14ebddf3dd3ca09a98f9c185fcb76822d3644
+Author: Egbert Eich <eich@suse.de>
+Date: Wed Mar 3 12:11:30 2004 +0000
+
+ Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
+
+commit fa532ec60428670bbcb68c9a5caee8c85da97e8b
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 13:35:33 2004 +0000
+
+ readding XFree86's cvs IDs
+
+commit a1af44719975f0c2e00b0d4b74a19ac308ae9832
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 09:22:44 2004 +0000
+
+ Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
+
+commit b518e5d7bd7970dc558b3218b5f5ff13cd4f5bca
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Thu Dec 4 22:02:57 2003 +0000
+
+ XFree86 4.3.99.901 (RC 1)
+
+commit b48caae437787a65e83c1b1f914ae0871bdc19f8
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Tue Nov 25 19:28:15 2003 +0000
+
+ XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
+
+commit 444958cdf3fae56c7a82fa9086db33c095db511f
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Tue Nov 25 19:28:15 2003 +0000
+
+ Initial revision
+
+commit 1c910af9cb665120abbbf03b3c351853715a34f8
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:48:49 2003 +0000
+
+ XFree86 4.3.0.1
+
+commit 4a9983332a9f46ae835c1fbcb14b88ad24dc56f7
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:48:49 2003 +0000
+
+ Initial revision
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..8b82ade
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,291 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008 Free Software Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..907af39
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,43 @@
+#
+# Copyright 2005 Red Hat, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIRS = src man
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = xscrnsaver.pc
+
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+ $(INSTALL_CMD)
+
+ChangeLog:
+ $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog INSTALL
+
+if LINT
+# Check source code with tools like lint & sparse
+lint:
+ (cd src && $(MAKE) $(MFLAGS) lint)
+endif LINT
diff --git a/README b/README
new file mode 100644
index 0000000..9e96bde
--- /dev/null
+++ b/README
@@ -0,0 +1,25 @@
+XScreenSaver - X11 Screen Saver extension client library
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+Please submit bug reports to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/lib/libXScrnSaver
+
+ http://cgit.freedesktop.org/xorg/lib/libXScrnSaver
+
+For patch submission instructions, see:
+
+ http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..0f52477
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,55 @@
+
+# Copyright 2005 Red Hat, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+
+# Initialize Autoconf
+AC_PREREQ([2.60])
+AC_INIT([libXScrnSaver], [1.2.2],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXScrnSaver])
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([config.h])
+
+# Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
+
+# Initialize libtool
+AC_PROG_LIBTOOL
+
+# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.8)
+XORG_DEFAULT_OPTIONS
+XORG_CHECK_MALLOC_ZERO
+
+# Obtain compiler/linker options for depedencies
+PKG_CHECK_MODULES(XSCRNSAVER, x11 xext xextproto [scrnsaverproto >= 1.2])
+
+# Allow checking code with lint, sparse, etc.
+XORG_WITH_LINT
+XORG_LINT_LIBRARY([Xss])
+
+AC_CONFIG_FILES([Makefile
+ src/Makefile
+ man/Makefile
+ xscrnsaver.pc])
+AC_OUTPUT
diff --git a/include/X11/extensions/scrnsaver.h b/include/X11/extensions/scrnsaver.h
new file mode 100644
index 0000000..654aef6
--- /dev/null
+++ b/include/X11/extensions/scrnsaver.h
@@ -0,0 +1,134 @@
+/*
+ *
+Copyright (c) 1992 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+ *
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _SCRNSAVER_H_
+#define _SCRNSAVER_H_
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/saver.h>
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came frome a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* screen saver window */
+ Window root; /* root window of event screen */
+ int state; /* ScreenSaverOff, ScreenSaverOn, ScreenSaverCycle*/
+ int kind; /* ScreenSaverBlanked, ...Internal, ...External */
+ Bool forced; /* extents of new region */
+ Time time; /* event timestamp */
+} XScreenSaverNotifyEvent;
+
+typedef struct {
+ Window window; /* screen saver window - may not exist */
+ int state; /* ScreenSaverOff, ScreenSaverOn, ScreenSaverDisabled*/
+ int kind; /* ScreenSaverBlanked, ...Internal, ...External */
+ unsigned long til_or_since; /* time til or since screen saver */
+ unsigned long idle; /* total time since last user input */
+ unsigned long eventMask; /* currently selected events for this client */
+} XScreenSaverInfo;
+
+_XFUNCPROTOBEGIN
+
+extern Bool XScreenSaverQueryExtension (
+ Display* /* display */,
+ int* /* event_base */,
+ int* /* error_base */
+);
+
+extern Status XScreenSaverQueryVersion (
+ Display* /* display */,
+ int* /* major_version */,
+ int* /* minor_version */
+);
+
+extern XScreenSaverInfo *XScreenSaverAllocInfo (
+ void
+);
+
+extern Status XScreenSaverQueryInfo (
+ Display* /* display */,
+ Drawable /* drawable */,
+ XScreenSaverInfo* /* info */
+);
+
+extern void XScreenSaverSelectInput (
+ Display* /* display */,
+ Drawable /* drawable */,
+ unsigned long /* eventMask */
+);
+
+extern void XScreenSaverSetAttributes (
+ Display* /* display */,
+ Drawable /* drawable */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* border_width */,
+ int /* depth */,
+ unsigned int /* class */,
+ Visual * /* visual */,
+ unsigned long /* valuemask */,
+ XSetWindowAttributes * /* attributes */
+);
+
+extern void XScreenSaverUnsetAttributes (
+ Display* /* display */,
+ Drawable /* drawable */
+);
+
+extern Status XScreenSaverRegister (
+ Display* /* display */,
+ int /* screen */,
+ XID /* xid */,
+ Atom /* type */
+);
+
+extern Status XScreenSaverUnregister (
+ Display* /* display */,
+ int /* screen */
+);
+
+extern Status XScreenSaverGetRegistered (
+ Display* /* display */,
+ int /* screen */,
+ XID* /* xid */,
+ Atom* /* type */
+);
+
+extern void XScreenSaverSuspend (
+ Display* /* display */,
+ Bool /* suspend */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _SCRNSAVER_H_ */
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644
index 0000000..e711937
--- /dev/null
+++ b/man/Makefile.am
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+libmandir = $(LIB_MAN_DIR)
+
+libman_PRE = \
+ Xss.man \
+ $(Xss_shadows:=.man)
+
+Xss_shadows = \
+ XScreenSaverQueryExtension \
+ XScreenSaverQueryVersion \
+ XScreenSaverAllocInfo \
+ XScreenSaverQueryInfo \
+ XScreenSaverSelectInput \
+ XScreenSaverSetAttributes \
+ XScreenSaverUnsetAttributes \
+ XScreenSaverRegister \
+ XScreenSaverUnregister \
+ XScreenSaverGetRegistered \
+ XScreenSaverSuspend
+
+EXTRA_DIST = $(libman_PRE)
+CLEANFILES = $(libman_DATA)
+
+libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@)
+
+SUFFIXES = .$(LIB_MAN_SUFFIX) .man
+
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+.man.$(LIB_MAN_SUFFIX):
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
diff --git a/man/XScreenSaverAllocInfo.man b/man/XScreenSaverAllocInfo.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverAllocInfo.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverGetRegistered.man b/man/XScreenSaverGetRegistered.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverGetRegistered.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryExtension.man b/man/XScreenSaverQueryExtension.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverQueryExtension.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryInfo.man b/man/XScreenSaverQueryInfo.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverQueryInfo.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryVersion.man b/man/XScreenSaverQueryVersion.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverQueryVersion.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverRegister.man b/man/XScreenSaverRegister.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverRegister.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSelectInput.man b/man/XScreenSaverSelectInput.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverSelectInput.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSetAttributes.man b/man/XScreenSaverSetAttributes.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverSetAttributes.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSuspend.man b/man/XScreenSaverSuspend.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverSuspend.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverUnregister.man b/man/XScreenSaverUnregister.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverUnregister.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverUnsetAttributes.man b/man/XScreenSaverUnsetAttributes.man
new file mode 100644
index 0000000..0b94d09
--- /dev/null
+++ b/man/XScreenSaverUnsetAttributes.man
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/Xss.man b/man/Xss.man
new file mode 100644
index 0000000..91f0ccf
--- /dev/null
+++ b/man/Xss.man
@@ -0,0 +1,363 @@
+.\"
+.\" Copyright (C) 2003 The XFree86 Project, Inc. All Rights Reserved.
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining
+.\" a copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be
+.\" included in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+.\" IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES
+.\" OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of the XFree86 Project
+.\" shall not be used in advertising or otherwise to promote the sale, use
+.\" or other dealings in this Software without prior written authorization
+.\" from the XFree86 Project.
+.\"
+.TH XScreenSaver __libmansuffix__ __vendorversion__
+.SH NAME
+XScreenSaver \- X11 Screen Saver extension client library
+.SH SYNOPSIS
+.B #include <X11/extensions/scrnsaver.h>
+.PP
+.nf
+.ta .5i 2i
+typedef struct {
+ Window window; /\(** screen saver window */
+ int state; /\(** ScreenSaver{Off,On,Disabled} */
+ int kind; /\(** ScreenSaver{Blanked,Internal,External} */
+ unsigned long til_or_since; /\(** milliseconds */
+ unsigned long idle; /\(** milliseconds */
+ unsigned long eventMask; /\(** events */
+.br
+} XScreenSaverInfo;
+
+typedef struct {
+ int type; /\(** of event */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came frome a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** screen saver window */
+ Window root; /\(** root window of event screen */
+ int state; /\(** ScreenSaver{Off,On,Cycle} */
+ int kind; /\(** ScreenSaver{Blanked,Internal,External} */
+ Bool forced; /\(** extents of new region */
+ Time time; /\(** event timestamp */
+.br
+} XScreenSaverNotifyEvent;
+.fi
+.HP
+Bool XScreenSaverQueryExtension(Display *\fIdpy\fP,
+int *\fIevent_base_return\fP, int *\fIerror_base_return\fP\^);
+.HP
+Status XScreenSaverQueryVersion(Display *\fIdpy\fP,
+int *\fImajor_version_return\fP, int *\fIminor_version_return\fP\^);
+.HP
+XScreenSaverInfo *XScreenSaverAllocInfo(\^void\^);
+.HP
+Status XScreenSaverQueryInfo(\^Display *\fIdpy\fP, Drawable \fIdrawable\fP,
+XScreenSaverInfo *\fIsaver_info\fP\^);
+.HP
+void XScreenSaverSelectInput(Display *\fIdpy\fP, Drawable \fIdrawable\fP,
+unsigned long \fImask\fp\^);
+.HP
+void XScreenSaverSetAttributes(Display *\fIdpy\fP, Drawable \fIdrawable\fP,
+int \fIx\fP,
+int \fIy\fP,
+unsigned int \fIwidth\fP,
+unsigned int \fIheight\fP,
+unsigned int \fIborder_width\fP,
+int \fIdepth\fP,
+unsigned int \fIclass\fP,
+Visual *\fIvisual\fP,
+unsigned long \fIvaluemask\fP,
+XSetWindowAttributes *\fIattributes\fP\^);
+.HP
+void XScreenSaverUnsetAttributes(Display *\fIdpy\fP,
+Drawable \fIdrawable\fP\^);
+.HP
+void XScreenSaverSaverRegister(Display *\fIdpy\fP, int \fIscreen\fP,
+XID \fIxid\fP, Atom \fItype\fP\^);
+.HP
+Status XScreenSaverUnregister(Display *\fIdpy\fP, int \fIscreen\fP\^);
+.HP
+Status XScreenSaverGetRegistered(Display *\fIdpy\fP, int \fIscreen\fP,
+XID *\fIxid\fP, Atom *\fItype\fP\^);
+.HP
+void XScreenSaverSuspend(Display *\fIdpy\fP, Bool \fIsuspend\fP\^);
+.PP
+.SH DESCRIPTION
+The X Window System provides support for changing the image on a
+display screen after a user-settable period of inactivity to avoid
+burning the cathode ray tube phosphors.
+However, no interfaces are provided for the user to control the image
+that is drawn.
+This extension allows an external ``screen saver'' client to detect
+when the alternate image is to be displayed and to provide the
+graphics.
+.PP
+Current X server implementations typically provide at least one form of
+``screen saver'' image.
+Historically, this has been a copy of the X logo drawn against the
+root background pattern.
+However, many users have asked for the mechanism to allow them to
+write screen saver programs that provide capabilities similar to those
+provided by other window systems.
+In particular, such users often wish to be able to display corporate
+logos, instructions on how to reactivate the screen, and automatic
+screen-locking utilities.
+This extension provides a means for writing such clients.
+.SS Assumptions
+This extension exports the notion of a special screen saver window that is
+mapped above all other windows on a display.
+This window has the \fIoverride-redirect\fP attribute set so that it
+is not subject to manipulation by the window manager.
+Furthermore, the X identifier for the window is never returned by
+\fBQueryTree\fP requests on the root window, so it is typically not
+visible to other clients.
+.PP
+.B XScreenSaverQueryExtension
+returns
+.B True
+if the
+.I XScreenSaver
+extension is available on the given display.
+A client must call
+.B XScreenSaverQueryExtension
+before calling any other XScreenSaver function in order
+to negotiate a compatible protocol version; otherwise the client will
+get undefined behavior (XScreenSaver may or may not work).
+.PP
+If the extension is supported, the event number for
+.I ScreenSaverNotify
+events is returned in the value pointed to by \fIevent_base\fP.
+Since no additional errors are defined by this extension, the results
+of \fIerror_base\fP are not defined.
+.PP
+.B XScreenSaverQueryVersion
+returns
+.B True
+if the request succeeded; the values of the major and minor protocol
+versions supported by the server are returned in
+.I major_version_return
+and
+.I minor_version_return .
+.PP
+.B XScreenSaverAllocInfo
+allocates and returns an \fBXScreenSaverInfo\fP structure
+for use in calls to \fBXScreenSaverQueryInfo\fP.
+All fields in the structure are initialized to zero.
+If insufficient memory is available, NULL is returned.
+The results of this routine can be released using \fIXFree\fP.
+.PP
+.B XScreenSaverQueryInfo
+returns information about the current state of the
+screen server in \fIsaver_info\fP and a non-zero value is
+returned.
+If the extension is not supported, \fIsaver_info\fP is not changed and 0
+is returned.
+.PP
+The \fIstate\fP field specifies whether or not the screen saver is currently
+active and how the \fItil-or-since\fP value should be interpreted:
+.TP 4
+.I Off
+The screen is not currently being saved; \fItil-or-since\fP
+specifies the number of milliseconds until the screen saver is expected to
+activate.
+.TP 4
+.I On
+The screen is currently being saved; \fItil-or-since\fP specifies
+the number of milliseconds since the screen saver activated.
+.TP 4
+.I Disabled
+The screen saver is currently disabled; \fItil-or-since\fP is zero.
+.PP
+The \fIkind\fP field specifies the mechanism that either is currently being
+used or would have been were the screen being saved:
+.TP 4
+.I Blanked
+The video signal to the display monitor was disabled.
+.TP 4
+.I Internal
+A server-dependent, built-in screen saver image was displayed; either no
+client had set the screen saver window attributes or a different client
+had the server grabbed when the screen saver activated.
+.TP 4
+.I External
+The screen saver window was mapped with attributes set by a
+client using the \fBScreenSaverSetAttributes\fP request.
+.PP
+The \fIidle\fP field specifies the number of milliseconds since the last
+input was received from the user on any of the input devices.
+.br
+The \fIevent-mask\fP field specifies which, if any, screen saver
+events this client has requested using \fBScreenSaverSelectInput\fP.
+.PP
+.B XScreenSaverSelectInput
+asks that events related to
+the screen saver be generated for this client.
+If
+no bits are set in \fIevent-mask\fP, then no events will be generated.
+Otherwise, any combination of the following bits may be set:
+.TP 8
+.B ScreenSaverNotify
+If this bit is set, \fBScreenSaverNotify\fP events are generated whenever
+the screen saver is activated or deactivated.
+.TP 8
+.B ScreenSaverCycle
+If this bit is set, \fBScreenSaverNotify\fP events are generated whenever
+the screen saver cycle interval passes.
+.PP
+.B XScreenSaverSetAttributes
+sets the attributes to be used
+the next time the external screen saver is activated.
+If another client currently has the attributes set,
+a BadAccess error is generated and the request is ignored.
+.br
+Otherwise, the specified window attributes are checked as if
+they were used in a core \fBCreateWindow\fP request whose
+parent is the root.
+The \fIoverride-redirect\fP field is ignored as it is implicitly set
+to True.
+If the window attributes result in an error according to the rules for
+\fBCreateWindow\fP, the request is ignored.
+.br
+Otherwise, the attributes are stored and will take effect on the next
+activation that occurs when the server is not grabbed by another client.
+Any resources specified for the
+\fIbackground-pixmap\fP or \fIcursor\fP attributes may be
+freed immediately.
+The server is free to copy the \fIbackground-pixmap\fP or \fIcursor\fP
+resources or to use them in place; therefore, the effect of changing
+the contents of those resources is undefined.
+If the specified \fIcolormap\fP no longer exists when the screen saver
+activates, the parent's colormap is used instead.
+If no errors are generated by this request, any previous screen saver
+window attributes set by this client are released.
+.br
+When the screen saver next activates and the server is not grabbed by
+another client, the screen saver window is
+created, if necessary, and set to the specified attributes and events
+are generated as usual.
+The colormap associated with the screen saver window is installed.
+Finally, the screen saver window is mapped.
+.br
+The window remains mapped and at the top of the stacking order
+until the screen saver is deactivated in response to activity on
+any of the user input devices, a \fBForceScreenSaver\fP request with
+a value of Reset, or any request that would cause the window to be
+unmapped.
+.br
+If the screen saver activates while the server is grabbed by another
+client, the internal saver mechanism is used.
+The \fBForceScreenSaver\fP request may be used with a value of Active
+to deactivate the internal saver and activate the external saver.
+.br
+If the screen saver client's connection to the server is broken
+while the screen saver is activated and the client's close down mode has not
+been RetainPermanent or RetainTemporary, the current screen saver
+is deactivated and the internal screen saver is immediately activated.
+.br
+When the screen saver deactivates, the screen saver window's colormap
+is uninstalled and the window is unmapped (except as described below).
+The screen saver XID is disassociated
+with the window and the server may, but is not required to,
+destroy the window along with any children.
+.br
+When the screen saver is being deactivated and then immediately
+reactivated (such as when switching screen savers), the server
+may leave the screen saver window mapped (typically to avoid
+generating exposures).
+.PP
+.B XScreenSaverUnsetAttributes
+instructs the server to discard
+any previous screen saver window attributes set by this client.
+.PP
+.B XScreenSaverRegister
+stores the given \fIXID\fP in the \fB_SCREEN_SAVER_ID\fP
+property (of the given \fItype\fP) on the
+root window of the specified \fIscreen\fP.
+It returns zero if an error is encountered and the property is not
+changed, otherwise it returns non-zero.
+.PP
+.B XScreenSaverUnregister
+removes any \fB_SCREEN_SAVER_ID\fP from the
+root window of the specified \fIscreen\fP.
+It returns zero if an error is encountered and the property is
+changed, otherwise it returns non-zero.
+.PP
+.B XScreenSaverGetRegistered
+returns the \fIXID\fP and \fItype\fP stored in
+the \fB_SCREEN_SAVER_ID\fP property on the
+root window of the specified \fIscreen\fP.
+It returns zero if an error is encountered or if the property does not
+exist or is not of the correct format; otherwise it returns non-zero.
+.PP
+.B XScreenSaverSuspend
+temporarily suspends the screensaver and DPMS timer if \fIsuspend\fP
+is 'True', and restarts the timer if \fIsuspend\fP is 'False'.
+.br
+This function should be used by applications that don't want the
+screensaver or DPMS to become activated while they're for example in
+the process of playing a media sequence, or are otherwise continuously
+presenting visual information to the user while in a non-interactive
+state. This function is not intended to be called by an external
+screensaver application.
+.br
+If \fBXScreenSaverSuspend\fP is called multiple times with \fIsuspend\fP
+set to 'True', it must be called an equal number of times with
+\fIsuspend\fP set to 'False' in order for the screensaver timer to be
+restarted. This request has no affect if a client tries to resume the
+screensaver without first having suspended it.
+\fBXScreenSaverSuspend\fP can thus not be used by one client to resume
+the screensaver if it's been suspended by another client.
+.br
+If a client that has suspended the screensaver becomes disconnected from
+the X server, the screensaver timer will automatically be restarted, unless
+it's still suspended by another client. Suspending the screensaver timer
+doesn't prevent the screensaver from being forceably activated with the
+\fBForceScreenSaver\fP request, or a DPMS mode from being set with the
+\fBDPMSForceLevel\fP request.
+.br
+\fBXScreenSaverSuspend\fP also doesn't deactivate the screensaver or DPMS
+if either is active at the time the request to suspend them is received by
+the X server. But once they've been deactivated, they won't automatically
+be activated again, until the client has canceled the suspension.
+.SH "ERRORS"
+.B XScreenSaverSelectInput,
+.B XScreenSaverQueryInfo,
+.B XScreenSaverSetAttributes
+and
+.B XScreenSaverUnsetAttributes
+will generate a
+.I BadDrawable
+error if \fIdrawable\fP is not a valid drawable identifier.
+If any undefined bits are set in \fIevent-mask\fP,
+a BadValue error is generated by
+.B XScreenSaverSelectInput .
+.PP
+.SH AVAILABILITY
+\fBXScreenSaverSuspend\fP is available in version 1.1 and later versions
+of the X Screen Saver Extension. Version 1.1 was first released with
+X11R7.1.
+.PP
+.SH "SEE ALSO"
+X(__miscmansuffix__)
+.SH AUTHORS
+Jim Fulton and Keith Packard.
+.SH STABILITY
+This API is considered as experimental.
+The Xss library major revision may be incremented whenever
+incompatible changes are done to the API without notice.
+Use with care.
diff --git a/packaging/libXScrnSaver.spec b/packaging/libXScrnSaver.spec
new file mode 100644
index 0000000..4b3117a
--- /dev/null
+++ b/packaging/libXScrnSaver.spec
@@ -0,0 +1,64 @@
+Summary: X.Org X11 libXss runtime library
+Name: libXScrnSaver
+Version: 1.2.2
+Release: 1
+License: MIT
+Group: System Environment/Libraries
+URL: http://www.x.org
+
+Source0: %{name}-%{version}.tar.gz
+
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(xorg-macros)
+BuildRequires: pkgconfig(xproto)
+BuildRequires: pkgconfig(scrnsaverproto)
+BuildRequires: libX11-devel
+BuildRequires: libXext-devel
+
+%description
+X.Org X11 libXss runtime library
+
+%package devel
+Summary: X.Org X11 libXScrnSaver development package
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Provides: libxscrnsaver-devel
+
+%description devel
+X.Org X11 libXss development package
+
+%prep
+%setup -q
+
+%build
+# FIXME: XScrnSaver.c:429: warning: dereferencing type-punned pointer will break strict-aliasing rules
+export CFLAGS="${CFLAGS} $RPM_OPT_FLAGS -fno-strict-aliasing"
+%reconfigure --disable-static \
+ LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p %{buildroot}/usr/share/license
+cp -af COPYING %{buildroot}/usr/share/license/%{name}
+make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
+find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+
+%remove_docs
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+/usr/share/license/%{name}
+%doc COPYING README ChangeLog
+%{_libdir}/libXss.so.1
+%{_libdir}/libXss.so.1.0.0
+
+%files devel
+%defattr(-,root,root,-)
+%{_libdir}/libXss.so
+%{_libdir}/pkgconfig/xscrnsaver.pc
+#%{_mandir}/man3/*.3*
+%{_includedir}/X11/extensions/scrnsaver.h
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..aa923b1
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,35 @@
+AM_CFLAGS = -I$(top_srcdir)/include \
+ -I$(top_srcdir)/include/X11 \
+ -I$(top_srcdir)/include/X11/extensions \
+ $(XSCRNSAVER_CFLAGS) \
+ $(MALLOC_ZERO_CFLAGS) \
+ $(CWARNFLAGS)
+
+lib_LTLIBRARIES = libXss.la
+
+libXss_la_SOURCES = \
+ XScrnSaver.c
+
+libXss_la_LIBADD = $(XSCRNSAVER_LIBS)
+
+libXss_la_LDFLAGS = -version-info 1:0:0 -no-undefined
+
+libXScrnSaverincludedir = $(includedir)/X11/extensions
+libXScrnSaverinclude_HEADERS = $(top_srcdir)/include/X11/extensions/scrnsaver.h
+
+if LINT
+ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+
+lint:
+ $(LINT) $(ALL_LINT_FLAGS) $(libXss_la_SOURCES)
+endif LINT
+
+if MAKE_LINT_LIB
+lintlibdir = $(libdir)
+
+lintlib_DATA = $(LINTLIB)
+
+$(LINTLIB): $(libXss_la_SOURCES)
+ $(LINT) -y -oXss -x $(ALL_LINT_FLAGS) $(libXss_la_SOURCES)
+endif MAKE_LINT_LIB
diff --git a/src/XScrnSaver.c b/src/XScrnSaver.c
new file mode 100644
index 0000000..2a89246
--- /dev/null
+++ b/src/XScrnSaver.c
@@ -0,0 +1,470 @@
+/*
+ *
+Copyright (c) 1992 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+ *
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#include <X11/Xlibint.h>
+#include <X11/Xutil.h>
+#include <X11/extensions/Xext.h>
+#include <X11/extensions/extutil.h>
+#include <X11/extensions/saverproto.h>
+#include <X11/extensions/scrnsaver.h>
+
+
+static XExtensionInfo _screen_saver_info_data;
+static XExtensionInfo *screen_saver_info = &_screen_saver_info_data;
+static const char *screen_saver_extension_name = ScreenSaverName;
+
+#define ScreenSaverCheckExtension(dpy,i,val) \
+ XextCheckExtension (dpy, i, screen_saver_extension_name, val)
+#define ScreenSaverSimpleCheckExtension(dpy,i) \
+ XextSimpleCheckExtension (dpy, i, screen_saver_extension_name)
+
+static int close_display(
+ Display * /* dpy */,
+ XExtCodes * /* codes */
+);
+
+static Bool wire_to_event(
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+);
+
+static Status event_to_wire(
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+);
+
+static /* const */ XExtensionHooks screen_saver_extension_hooks = {
+ NULL, /* create_gc */
+ NULL, /* copy_gc */
+ NULL, /* flush_gc */
+ NULL, /* free_gc */
+ NULL, /* create_font */
+ NULL, /* free_font */
+ close_display, /* close_display */
+ wire_to_event, /* wire_to_event */
+ event_to_wire, /* event_to_wire */
+ NULL, /* error */
+ NULL, /* error_string */
+};
+
+static XEXT_GENERATE_FIND_DISPLAY (find_display, screen_saver_info,
+ screen_saver_extension_name,
+ &screen_saver_extension_hooks,
+ ScreenSaverNumberEvents, NULL)
+
+static XEXT_GENERATE_CLOSE_DISPLAY (close_display, screen_saver_info)
+
+
+static Bool wire_to_event (
+ Display *dpy,
+ XEvent *re,
+ xEvent *event)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ XScreenSaverNotifyEvent *se;
+ xScreenSaverNotifyEvent *sevent;
+
+ ScreenSaverCheckExtension (dpy, info, False);
+
+ switch ((event->u.u.type & 0x7f) - info->codes->first_event) {
+ case ScreenSaverNotify:
+ se = (XScreenSaverNotifyEvent *) re;
+ sevent = (xScreenSaverNotifyEvent *) event;
+ se->type = sevent->type & 0x7f;
+ se->serial = _XSetLastRequestRead(dpy,(xGenericReply *) event);
+ se->send_event = (sevent->type & 0x80) != 0;
+ se->display = dpy;
+ se->window = sevent->window;
+ se->window = sevent->root;
+ se->state = sevent->state;
+ se->kind = sevent->kind;
+ se->forced = True;
+ if (sevent->forced == xFalse)
+ se->forced = False;
+ se->time = sevent->timestamp;
+ return True;
+ }
+ return False;
+}
+
+static Status event_to_wire (
+ Display *dpy,
+ XEvent *re,
+ xEvent *event)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ XScreenSaverNotifyEvent *se;
+ xScreenSaverNotifyEvent *sevent;
+
+ ScreenSaverCheckExtension (dpy, info, 0);
+
+ switch ((re->type & 0x7f) - info->codes->first_event) {
+ case ScreenSaverNotify:
+ se = (XScreenSaverNotifyEvent *) re;
+ sevent = (xScreenSaverNotifyEvent *) event;
+ sevent->type = se->type | (se->send_event ? 0x80 : 0);
+ sevent->sequenceNumber = se->serial & 0xffff;
+ sevent->root = se->root;
+ sevent->window = se->window;
+ sevent->state = se->state;
+ sevent->kind = se->kind;
+ sevent->forced = xFalse;
+ if (se->forced == True)
+ sevent->forced = xTrue;
+ sevent->timestamp = se->time;
+ return 1;
+ }
+ return 0;
+}
+
+/****************************************************************************
+ * *
+ * ScreenSaver public interfaces *
+ * *
+ ****************************************************************************/
+
+Bool XScreenSaverQueryExtension (
+ Display *dpy,
+ int *event_base_return,
+ int *error_base_return)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+
+ if (XextHasExtension(info)) {
+ *event_base_return = info->codes->first_event;
+ *error_base_return = info->codes->first_error;
+ return True;
+ } else {
+ return False;
+ }
+}
+
+
+Status XScreenSaverQueryVersion(
+ Display *dpy,
+ int *major_version_return,
+ int *minor_version_return)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ xScreenSaverQueryVersionReply rep;
+ register xScreenSaverQueryVersionReq *req;
+
+ ScreenSaverCheckExtension (dpy, info, 0);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverQueryVersion, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverQueryVersion;
+ req->clientMajor = ScreenSaverMajorVersion;
+ req->clientMinor = ScreenSaverMinorVersion;
+ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+ UnlockDisplay (dpy);
+ SyncHandle ();
+ return 0;
+ }
+ *major_version_return = rep.majorVersion;
+ *minor_version_return = rep.minorVersion;
+ UnlockDisplay (dpy);
+ SyncHandle ();
+ return 1;
+}
+
+XScreenSaverInfo *XScreenSaverAllocInfo (void)
+{
+ return (XScreenSaverInfo *) Xmalloc (sizeof (XScreenSaverInfo));
+}
+
+Status XScreenSaverQueryInfo (
+ Display *dpy,
+ Drawable drawable,
+ XScreenSaverInfo *saver_info)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ xScreenSaverQueryInfoReply rep;
+ register xScreenSaverQueryInfoReq *req;
+
+ ScreenSaverCheckExtension (dpy, info, 0);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverQueryInfo, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverQueryInfo;
+ req->drawable = drawable;
+ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+ UnlockDisplay (dpy);
+ SyncHandle ();
+ return 0;
+ }
+ UnlockDisplay (dpy);
+ SyncHandle ();
+ saver_info->window = rep.window;
+ saver_info->state = rep.state;
+ saver_info->kind = rep.kind;
+ saver_info->til_or_since = rep.tilOrSince;
+ saver_info->idle = rep.idle;
+ saver_info->eventMask = rep.eventMask;
+ return 1;
+}
+
+void XScreenSaverSelectInput (
+ register Display *dpy,
+ Drawable drawable,
+ unsigned long mask)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ register xScreenSaverSelectInputReq *req;
+
+ ScreenSaverSimpleCheckExtension (dpy, info);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverSelectInput, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverSelectInput;
+ req->drawable = drawable;
+ req->eventMask = mask;
+ UnlockDisplay (dpy);
+ SyncHandle ();
+}
+
+static void
+XScreenSaverProcessWindowAttributes (
+ register Display *dpy,
+ xChangeWindowAttributesReq *req,
+ register unsigned long valuemask,
+ register XSetWindowAttributes *attributes)
+ {
+ unsigned long values[32];
+ register unsigned long *value = values;
+ unsigned int nvalues;
+
+ if (valuemask & CWBackPixmap)
+ *value++ = attributes->background_pixmap;
+
+ if (valuemask & CWBackPixel)
+ *value++ = attributes->background_pixel;
+
+ if (valuemask & CWBorderPixmap)
+ *value++ = attributes->border_pixmap;
+
+ if (valuemask & CWBorderPixel)
+ *value++ = attributes->border_pixel;
+
+ if (valuemask & CWBitGravity)
+ *value++ = attributes->bit_gravity;
+
+ if (valuemask & CWWinGravity)
+ *value++ = attributes->win_gravity;
+
+ if (valuemask & CWBackingStore)
+ *value++ = attributes->backing_store;
+
+ if (valuemask & CWBackingPlanes)
+ *value++ = attributes->backing_planes;
+
+ if (valuemask & CWBackingPixel)
+ *value++ = attributes->backing_pixel;
+
+ if (valuemask & CWOverrideRedirect)
+ *value++ = attributes->override_redirect;
+
+ if (valuemask & CWSaveUnder)
+ *value++ = attributes->save_under;
+
+ if (valuemask & CWEventMask)
+ *value++ = attributes->event_mask;
+
+ if (valuemask & CWDontPropagate)
+ *value++ = attributes->do_not_propagate_mask;
+
+ if (valuemask & CWColormap)
+ *value++ = attributes->colormap;
+
+ if (valuemask & CWCursor)
+ *value++ = attributes->cursor;
+
+ req->length += (nvalues = value - values);
+
+ nvalues <<= 2; /* watch out for macros... */
+ Data32 (dpy, (long *) values, (long)nvalues);
+
+ }
+
+void XScreenSaverSetAttributes (
+ Display *dpy,
+ Drawable drawable,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height,
+ unsigned int border_width,
+ int depth,
+ unsigned int class,
+ Visual *visual,
+ unsigned long valuemask,
+ XSetWindowAttributes *attributes)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ register xScreenSaverSetAttributesReq *req;
+
+ ScreenSaverSimpleCheckExtension (dpy, info);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverSetAttributes, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverSetAttributes;
+ req->drawable = drawable;
+ req->x = x;
+ req->y = y;
+ req->width = width;
+ req->height = height;
+ req->borderWidth = border_width;
+ req->c_class = class;
+ req->depth = depth;
+ if (visual == (Visual *)CopyFromParent)
+ req->visualID = CopyFromParent;
+ else
+ req->visualID = visual->visualid;
+ /* abuse an Xlib internal interface - is this legal for us? */
+ if ((req->mask = valuemask))
+ XScreenSaverProcessWindowAttributes (dpy,
+ (xChangeWindowAttributesReq *)req,
+ valuemask, attributes);
+ UnlockDisplay (dpy);
+ SyncHandle ();
+}
+
+
+void XScreenSaverUnsetAttributes (
+ register Display *dpy,
+ Drawable drawable)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ register xScreenSaverUnsetAttributesReq *req;
+
+ ScreenSaverSimpleCheckExtension (dpy, info);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverUnsetAttributes, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverUnsetAttributes;
+ req->drawable = drawable;
+ UnlockDisplay (dpy);
+ SyncHandle ();
+}
+
+
+Status XScreenSaverRegister (
+ Display *dpy,
+ int screen,
+ XID xid,
+ Atom type)
+{
+ Atom prop;
+ unsigned long ul;
+
+ prop = XInternAtom (dpy, ScreenSaverPropertyName, False);
+ if (!prop)
+ return 0;
+
+ ul = (unsigned long) xid;
+ XChangeProperty (dpy, RootWindow(dpy,screen), prop, type, 32,
+ PropModeReplace, (unsigned char *) &ul, 1);
+ return 1;
+}
+
+
+
+Status XScreenSaverUnregister (
+ Display *dpy,
+ int screen)
+{
+ Atom prop;
+
+ prop = XInternAtom (dpy, ScreenSaverPropertyName, False);
+ if (!prop)
+ return 0;
+
+ XDeleteProperty (dpy, RootWindow(dpy,screen), prop);
+ return 1;
+}
+
+
+
+Status XScreenSaverGetRegistered (
+ Display *dpy,
+ int screen,
+ XID *xid,
+ Atom *type)
+{
+ Atom actual_type = None;
+ int actual_format;
+ unsigned long nitems, bytesafter;
+ unsigned long *ulp = (unsigned long *) 0;
+ Atom prop;
+ int retval = 0;
+
+ prop = XInternAtom (dpy, ScreenSaverPropertyName, False);
+ if (!prop)
+ return retval;
+
+ if (XGetWindowProperty (dpy, RootWindow(dpy,screen), prop, 0L, 1L, False,
+ AnyPropertyType, &actual_type, &actual_format,
+ &nitems, &bytesafter, (unsigned char **) &ulp)
+ != Success)
+ return retval;
+
+ if (ulp) {
+ if (actual_format == 32) {
+ *xid = (XID) ulp[0];
+ *type = actual_type;
+ retval = 1;
+ }
+ XFree ((char *) ulp);
+ }
+ return retval;
+}
+
+void
+XScreenSaverSuspend (Display *dpy, Bool suspend)
+{
+ XExtDisplayInfo *info = find_display (dpy);
+ xScreenSaverSuspendReq *req;
+
+ ScreenSaverSimpleCheckExtension (dpy, info);
+
+ LockDisplay (dpy);
+ GetReq (ScreenSaverSuspend, req);
+ req->reqType = info->codes->major_opcode;
+ req->saverReqType = X_ScreenSaverSuspend;
+ req->suspend = suspend;
+ UnlockDisplay (dpy);
+ SyncHandle ();
+}
+
diff --git a/xscrnsaver.pc.in b/xscrnsaver.pc.in
new file mode 100644
index 0000000..67e0f63
--- /dev/null
+++ b/xscrnsaver.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XScrnSaver
+Description: The XScrnSaver Library
+Version: @PACKAGE_VERSION@
+Requires: scrnsaverproto
+Requires.private: x11 xext
+Cflags: -I${includedir}
+Libs: -L${libdir} -lXss