upload tizen2.0 source 2.0alpha master 2.0_alpha submit/master/20120920.151139
authorBoram Park <boram1288.park@samsung.com>
Tue, 21 Aug 2012 09:03:30 +0000 (18:03 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 21 Aug 2012 09:03:30 +0000 (18:03 +0900)
24 files changed:
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
README [new file with mode: 0644]
configure.ac [new file with mode: 0644]
include/X11/extensions/scrnsaver.h [new file with mode: 0644]
man/Makefile.am [new file with mode: 0644]
man/XScreenSaverAllocInfo.man [new file with mode: 0644]
man/XScreenSaverGetRegistered.man [new file with mode: 0644]
man/XScreenSaverQueryExtension.man [new file with mode: 0644]
man/XScreenSaverQueryInfo.man [new file with mode: 0644]
man/XScreenSaverQueryVersion.man [new file with mode: 0644]
man/XScreenSaverRegister.man [new file with mode: 0644]
man/XScreenSaverSelectInput.man [new file with mode: 0644]
man/XScreenSaverSetAttributes.man [new file with mode: 0644]
man/XScreenSaverSuspend.man [new file with mode: 0644]
man/XScreenSaverUnregister.man [new file with mode: 0644]
man/XScreenSaverUnsetAttributes.man [new file with mode: 0644]
man/Xss.man [new file with mode: 0644]
packaging/libXScrnSaver.spec [new file with mode: 0644]
src/Makefile.am [new file with mode: 0644]
src/XScrnSaver.c [new file with mode: 0644]
xscrnsaver.pc.in [new file with mode: 0644]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
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 (file)
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 (file)
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 (file)
index 0000000..907af39
--- /dev/null
@@ -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 (file)
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 (file)
index 0000000..0f52477
--- /dev/null
@@ -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 (file)
index 0000000..654aef6
--- /dev/null
@@ -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 (file)
index 0000000..e711937
--- /dev/null
@@ -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 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverGetRegistered.man b/man/XScreenSaverGetRegistered.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryExtension.man b/man/XScreenSaverQueryExtension.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryInfo.man b/man/XScreenSaverQueryInfo.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverQueryVersion.man b/man/XScreenSaverQueryVersion.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverRegister.man b/man/XScreenSaverRegister.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSelectInput.man b/man/XScreenSaverSelectInput.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSetAttributes.man b/man/XScreenSaverSetAttributes.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverSuspend.man b/man/XScreenSaverSuspend.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverUnregister.man b/man/XScreenSaverUnregister.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/XScreenSaverUnsetAttributes.man b/man/XScreenSaverUnsetAttributes.man
new file mode 100644 (file)
index 0000000..0b94d09
--- /dev/null
@@ -0,0 +1 @@
+.so man__libmansuffix__/Xss.__libmansuffix__
diff --git a/man/Xss.man b/man/Xss.man
new file mode 100644 (file)
index 0000000..91f0ccf
--- /dev/null
@@ -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 (file)
index 0000000..e15883d
--- /dev/null
@@ -0,0 +1,60 @@
+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
+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,-)
+%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 (file)
index 0000000..aa923b1
--- /dev/null
@@ -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 (file)
index 0000000..2a89246
--- /dev/null
@@ -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 (file)
index 0000000..67e0f63
--- /dev/null
@@ -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