vroot-h stable port information

Package: vroot-h
Version: 1.4.1jwz
Revision: 1
Description: Virtual root window handling header file
DescDetail: <<
This header file redefines the X11 macros RootWindow and DefaultRootWindow,
making them look for a virtual root window as provided by certain `virtual'
window managers like swm and tvtwm. If none is found, the ordinary root
window is returned, thus retaining backward compatibility with standard
window managers.
<<
DescUsage: <<
Include the header file as or and pass
"-I/sw/include/vroot" to your compiler.
<<
DescPackaging: <<
I can't find a simple dist of either this header or a *small* full
program that uses it, so the file is copied from xscreensaver (4.08)
and brought into Fink as a .patch.
<<
DescPort: <<
Install in a subdir of include so that its use isn't automatic.
Perhaps some packages have ./configure that checks for vroot.h,
which will make these have different binaries depending on if
vroot.h is found. So we'll install in include/vroot so package
maintainers can affirmatively choose to use it if they so desire.
DescUsage: Read README and README.Fink
<<
License: BSD
Maintainer: Daniel Macks
BuildDepends: fink (>= 0.24.12-1)
BuildDependsOnly: true
Type: nosource
NoSourceDirectory: true
PatchFile: %n.patch
PatchFile-MD5: cb1ec2249ad4d1e75a5f9e49cdc85925
PatchScript: <<
%{default_script}
head -n 25 vroot.h > Copyright
sed -ne '26,55p' vroot.h > README
echo "Changes by jwz (Jamie Zawinski ) as noted" >> README
( echo "Set a BuildDepends on vroot-h." ; echo "Include the header file as or and pass" ; echo "-I%p/include/vroot to your compiler." ) > README.Fink
<<
CompileScript: echo "nothing to compile"
InstallScript: <<
install -d -m 0755 %i/include/vroot/X11
install -m 0644 vroot.h %i/include/vroot/X11
ln -s X11/vroot.h %i/include/vroot
<<
DocFiles: Copyright README README.Fink

vroot-h stable port .patch

diff -Nurd -x'*~' vroot-h-1.4.1jwz.orig/vroot.h vroot-h-1.4.1jwz/vroot.h
--- vroot-h-1.4.1jwz.orig/vroot.h 1969-12-31 19:00:00.000000000 -0500
+++ vroot-h-1.4.1jwz/vroot.h 2003-03-17 09:23:54.000000000 -0500
@@ -0,0 +1,126 @@
+/*****************************************************************************/
+/** Copyright 1991 by Andreas Stolcke **/
+/** Copyright 1990 by Solbourne Computer Inc. **/
+/** Longmont, Colorado **/
+/** **/
+/** All Rights Reserved **/
+/** **/
+/** Permission to use, copy, modify, and distribute this software and **/
+/** its documentation for any purpose and without fee is hereby **/
+/** granted, provided that the above copyright notice appear in all **/
+/** copies and that both that copyright notice and this permis- **/
+/** sion notice appear in supporting documentation, and that the **/
+/** name of Solbourne not be used in advertising **/
+/** in publicity pertaining to distribution of the software without **/
+/** specific, written prior permission. **/
+/** **/
+/** ANDREAS STOLCKE AND SOLBOURNE COMPUTER INC. DISCLAIMS ALL WARRANTIES **/
+/** WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF **/
+/** MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ANDREAS STOLCKE **/
+/** OR SOLBOURNE 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. **/
+/*****************************************************************************/
+/*
+ * vroot.h -- Virtual Root Window handling header file
+ *
+ * This header file redefines the X11 macros RootWindow and DefaultRootWindow,
+ * making them look for a virtual root window as provided by certain `virtual'
+ * window managers like swm and tvtwm. If none is found, the ordinary root
+ * window is returned, thus retaining backward compatibility with standard
+ * window managers.
+ * The function implementing the virtual root lookup remembers the result of
+ * its last invocation to avoid overhead in the case of repeated calls
+ * on the same display and screen arguments.
+ * The lookup code itself is taken from Tom LaStrange's ssetroot program.
+ *
+ * Most simple root window changing X programs can be converted to using
+ * virtual roots by just including
+ *
+ * #include
+ *
+ * after all the X11 header files. It has been tested on such popular
+ * X clients as xphoon, xfroot, xloadimage, and xaqua.
+ * It also works with the core clients xprop, xwininfo, xwd, and editres
+ * (and is necessary to get those clients working under tvtwm).
+ * It does NOT work with xsetroot; get the xsetroot replacement included in
+ * the tvtwm distribution instead.
+ *
+ * Andreas Stolcke , 9/7/90
+ * - replaced all NULL's with properly cast 0's, 5/6/91
+ * - free children list (suggested by Mark Martin ), 5/16/91
+ * - include X11/Xlib.h and support RootWindowOfScreen, too 9/17/91
+ */
+
+#ifndef _VROOT_H_
+#define _VROOT_H_
+
+#if !defined(lint) && !defined(SABER)
+static const char vroot_rcsid[] = "#Id: vroot.h,v 1.4 1991/09/30 19:23:16 stolcke Exp stolcke #";
+#endif
+
+#include
+#include
+#include
+
+static Window
+#ifdef __STDC__ /* ANSIfication added by jwz, to avoid superfluous warnings. */
+VirtualRootWindowOfScreen(Screen *screen)
+#else /* !__STDC__ */
+VirtualRootWindowOfScreen(screen) Screen *screen;
+#endif /* !__STDC__ */
+{
+ static Screen *save_screen = (Screen *)0;
+ static Window root = (Window)0;
+
+ if (screen != save_screen) {
+ Display *dpy = DisplayOfScreen(screen);
+ Atom __SWM_VROOT = None;
+ int i;
+ Window rootReturn, parentReturn, *children;
+ unsigned int numChildren;
+
+ root = RootWindowOfScreen(screen);
+
+ /* go look for a virtual root */
+ __SWM_VROOT = XInternAtom(dpy, "__SWM_VROOT", False);
+ if (XQueryTree(dpy, root, &rootReturn, &parentReturn,
+ &children, &numChildren)) {
+ for (i = 0; i < numChildren; i++) {
+ Atom actual_type;
+ int actual_format;
+ unsigned long nitems, bytesafter;
+ Window *newRoot = (Window *)0;
+
+ if (XGetWindowProperty(dpy, children[i],
+ __SWM_VROOT, 0, 1, False, XA_WINDOW,
+ &actual_type, &actual_format,
+ &nitems, &bytesafter,
+ (unsigned char **) &newRoot) == Success
+ && newRoot) {
+ root = *newRoot;
+ break;
+ }
+ }
+ if (children)
+ XFree((char *)children);
+ }
+
+ save_screen = screen;
+ }
+
+ return root;
+}
+
+#undef RootWindowOfScreen
+#define RootWindowOfScreen(s) VirtualRootWindowOfScreen(s)
+
+#undef RootWindow
+#define RootWindow(dpy,screen) VirtualRootWindowOfScreen(ScreenOfDisplay(dpy,screen))
+
+#undef DefaultRootWindow
+#define DefaultRootWindow(dpy) VirtualRootWindowOfScreen(DefaultScreenOfDisplay(dpy))
+
+#endif /* _VROOT_H_ */

vroot-h _unstable_ port .patch