[X2Go-Commits] [nx-libs] 05/45: imake cleanup: Drop all references to XprtServer and BuildXprint*.

git-admin at x2go.org git-admin at x2go.org
Mon Apr 27 04:50:13 CEST 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit f5f280417cb0af489406c8c3234e4ad69b008c74
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Mar 4 13:29:02 2015 +0100

    imake cleanup: Drop all references to XprtServer and BuildXprint*.
---
 debian/rules                                 |    1 -
 nx-X11/config/cf/README                      |    8 -
 nx-X11/config/cf/X11.tmpl                    |   35 +-
 nx-X11/config/cf/host.def                    |   17 -
 nx-X11/config/cf/xf86site.def                |    6 -
 nx-X11/config/cf/xfree86.cf                  |    4 -
 nx-X11/config/cf/xorgsite.def                |    6 -
 nx-X11/include/extensions/Imakefile          |    1 -
 nx-X11/include/extensions/Print.h            |  552 ------
 nx-X11/include/extensions/Printstr.h         |  783 --------
 nx-X11/lib/Imakefile                         |    6 +-
 nx-X11/programs/Imakefile                    |    7 -
 nx-X11/programs/Xserver/Imakefile            |   76 -
 nx-X11/programs/Xserver/Xext/Imakefile       |   11 +-
 nx-X11/programs/Xserver/Xext/xprint.c        | 2760 --------------------------
 nx-X11/programs/Xserver/dix/Imakefile        |    6 +-
 nx-X11/programs/Xserver/dix/main.c           |    9 -
 nx-X11/programs/Xserver/dix/xpstubs.c        |   27 -
 nx-X11/programs/Xserver/hw/nxagent/Imakefile |    3 +
 nx-X11/programs/Xserver/mi/miinitext.c       |   45 -
 nx-X11/programs/Xserver/os/Imakefile         |    2 +-
 nx-X11/programs/Xserver/os/utils.c           |   13 -
 nx-libs.spec                                 |    2 -
 23 files changed, 12 insertions(+), 4368 deletions(-)

diff --git a/debian/rules b/debian/rules
index d3532b3..445f015 100755
--- a/debian/rules
+++ b/debian/rules
@@ -48,7 +48,6 @@ override_dh_install:
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XK*.h
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/*Xv*.h
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xtrap*.h
-	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/Print*.h
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XRes*.h
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/record*.h
 	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86vmode.h
diff --git a/nx-X11/config/cf/README b/nx-X11/config/cf/README
index 051d587..e1b65a3 100644
--- a/nx-X11/config/cf/README
+++ b/nx-X11/config/cf/README
@@ -325,14 +325,6 @@ X11.tmpl provides defaults for the following variables:
 	XdmDir			directory in which to install xdm files
 	XdmServersType		type of xdm Xservers file to install
 	XinitDir		directory in which to install xinit files
-	XPrintDir		parent of X Print server config directory
-	XprtServer		build the X Print server
-	XpRasterDDX		include the raster print ddx driver
-	XpColorPclDDX		include the color PCL print ddx driver
-	XpMonoPclDDX		include the monochrome PCL print ddx driver
-	XpPostScriptDDX		include the PostScript print ddx driver
-	XpPdfDDX		include the PDF print ddx driver
-	XpSvgDDX		include the SVG print ddx driver
 	XmanLocalSearchPath	non-standard path for man pages
 	XtErrorPrefix		leading text in XtError() msg; eg. 'X Toolkit '
 	XtWarningPrefix		leading text in XtWarning()msg, same as above
diff --git a/nx-X11/config/cf/X11.tmpl b/nx-X11/config/cf/X11.tmpl
index 09dbc8f..71a5d26 100644
--- a/nx-X11/config/cf/X11.tmpl
+++ b/nx-X11/config/cf/X11.tmpl
@@ -373,8 +373,7 @@ XORGRELSTRING = XorgManVersionString
 #if (!defined(XF86Server) || !XF86Server) && (!defined (XorgServer) || !XorgServer)
 #define BuildFontLib		(BuildLibraries || BuildServer)
 #else
-#define BuildFontLib		(BuildLibraries || \
-				 (BuildServer && !DoLoadableServer) || XprtServer)
+#define BuildFontLib		(BuildLibraries || (BuildServer && !DoLoadableServer))
 #endif
 #endif
 #ifndef BuildFontCache
@@ -486,19 +485,6 @@ XORGRELSTRING = XorgManVersionString
 #define XpSvgDDX                YES
 #endif
 
-#ifndef BuildXprint
-#define BuildXprint		YES
-#endif
-#ifndef XprtServer
-#define XprtServer		(BuildServer && BuildXprint)
-#endif
-#ifndef BuildXprintLib
-#define BuildXprintLib		(!BuildServersOnly && BuildXprint)
-#endif
-#ifndef BuildXprintClients
-#define BuildXprintClients	BuildXprintLib
-#endif
-
 #ifndef BuildScreenSaverExt
 #define BuildScreenSaverExt	NO
 #endif
@@ -978,17 +964,6 @@ FCHOWN_DEFINES = -DHAS_FCHOWN
 #ifndef PrintOnlyServer
 #define PrintOnlyServer YES
 #endif
-#ifndef XprintDefines
-#if BuildXprint
-#if PrintOnlyServer
-#define XprintDefines -DXPRINT -DPIXPRIV
-#else
-#define XprintDefines -DXPRINT -DLOADABLEPRINTDDX -DPIXPRIV
-#endif
-#else
-#define XprintDefines /**/
-#endif
-#endif
 #ifndef XkbDefines
 #if BuildXKB
 #define XkbDefines -DXKB
@@ -1221,7 +1196,7 @@ FCHOWN_DEFINES = -DHAS_FCHOWN
 	ShapeDefines XInputDefines XkbDefines LbxDefines AppgroupDefines \
 	XCSecurityDefines CupDefines PervasiveDBEDefines \
 	XF86BigfontExtensionDefines DPMSDefines \
-	XprintDefines XineramaDefines \
+	XineramaDefines \
 	SitePervasiveExtensionDefines RenderDefines RandRDefines \
 	XfixesDefines XDamageDefines CompositeDefines XevieDefines \
 	RootlessDefines
@@ -1522,9 +1497,6 @@ FCHOWN_DEFINES = -DHAS_FCHOWN
 #ifndef ServerConfigDir
 #define ServerConfigDir $(LIBDIR)/xserver
 #endif
-#ifndef XPrintDir
-#define XPrintDir ServerConfigDir
-#endif
 #ifndef EtcX11Directory
 #define EtcX11Directory /etc/X11
 #endif
@@ -1657,7 +1629,6 @@ XCOMM X Window System make variables; these need to be coordinated with rules
        XLOCALEDIR = XLocaleDir		/* locale files */
       LBXPROXYDIR = LbxproxyDir		/* lbxproxy files */
   PROXYMANAGERDIR = ProxyManagerDir	/* proxy manager config files */
-        XPRINTDIR = XPrintDir		/* print config file root */
       XAPPLOADDIR = XAppLoadDir		/* application default resource dir */
        FONTCFLAGS = FontCompilerFlags
 
@@ -2908,7 +2879,7 @@ UnsharedLibReferences(XA,NX_Xa,$(XALIBSRC))
 #endif
 
 #ifndef BuildXaw
-#define BuildXaw (BuildXprintLib && !BuildServersOnly)
+#define BuildXaw !BuildServersOnly
 #endif
 
        /* AWIDGETSRC is needed by libXaw6 and libXaw7 */
diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def
index 4a5f4b2..cae87f1 100644
--- a/nx-X11/config/cf/host.def
+++ b/nx-X11/config/cf/host.def
@@ -76,21 +76,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
 #define XorgServer		NO
 
 /*
- * To disable building Xprt, uncomment this.
- *
-#define XprtServer NO
- */
-#define XprtServer NO
-
-/*
- * Xprint is needed by Xprt. You can disable it if
- * you are not going to build Xprt.
- *
-#define BuildXprint		NO
- */
-#define BuildXprint		NO
-
-/*
  * Building libraries with NX enhancements is disabled
  * by default. You should enable this in your host.def.
  *
@@ -949,8 +934,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
 #define BuildServersOnly            YES
 #define DefaultFontPath             /usr/NX/share/fonts/misc/,/usr/NX/share/fonts/TTF/
 #define DefaultRGBDatabase          /usr/NX/share/rgb
-#define XprtServer                  NO
-#define BuildXprint                 NO
 #define BuildFontServer             NO
 #define BuildFreeType               NO
 #define BuildXTrueType              NO
diff --git a/nx-X11/config/cf/xf86site.def b/nx-X11/config/cf/xf86site.def
index ca429c9..db89ffe 100644
--- a/nx-X11/config/cf/xf86site.def
+++ b/nx-X11/config/cf/xf86site.def
@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
  */
 
 /*
- * To disable building Xprt, uncomment this.
- *
-#define XprtServer NO
- */
-
-/*
  * Set the default server (ie the one that gets the sym-link to "X")
  *
 #define ServerToInstall		XFree86
diff --git a/nx-X11/config/cf/xfree86.cf b/nx-X11/config/cf/xfree86.cf
index ea82a9d..5832096 100644
--- a/nx-X11/config/cf/xfree86.cf
+++ b/nx-X11/config/cf/xfree86.cf
@@ -1876,10 +1876,6 @@ IPLAN2P8_DEFS = -DUSE_IPLAN2P8
 # define UseServerLock	YES
 #endif
 
-#ifndef XprtServer
-# define XprtServer			YES
-#endif
-
 #ifndef ServerExtraDefines
 # define ServerExtraDefines	XFree86ServerDefines
 #endif
diff --git a/nx-X11/config/cf/xorgsite.def b/nx-X11/config/cf/xorgsite.def
index ee0c5db..6083ce5 100644
--- a/nx-X11/config/cf/xorgsite.def
+++ b/nx-X11/config/cf/xorgsite.def
@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
  */
 
 /*
- * To disable building Xprt, uncomment this.
- *
-#define XprtServer NO
- */
-
-/*
  * Set the default server (ie the one that gets the sym-link to "X")
  *
 #define ServerToInstall		Xorg
diff --git a/nx-X11/include/extensions/Imakefile b/nx-X11/include/extensions/Imakefile
index 269b8bb..63b9365 100644
--- a/nx-X11/include/extensions/Imakefile
+++ b/nx-X11/include/extensions/Imakefile
@@ -92,7 +92,6 @@ HEADERS = Xext.h \
 	security.h securstr.h \
 	shape.h shapestr.h \
 	sync.h syncstr.h \
-	Print.h Printstr.h \
 	Xcup.h Xcupstr.h \
 	dpms.h dpmsstr.h \
 	XEVI.h XEVIstr.h
diff --git a/nx-X11/include/extensions/Print.h b/nx-X11/include/extensions/Print.h
deleted file mode 100644
index 2d45082..0000000
--- a/nx-X11/include/extensions/Print.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/* $Xorg: Print.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
-/******************************************************************************
- ******************************************************************************
- **
- ** File:         Print.h
- **
- ** Description:  Definitions needed by the server, library, and
- **               clients.  Subportion restricted to library and
- **               clients.
- **
- **               Server, Library, Client portion has:
- **                  o All sz_* defines
- **                  o Revision and Name defines
- **                  o Common defines and constants (e.g. Keywords, Masks)
- **                  o Extension version structure
- **               
- **               Library and client subportion has:
- **                  o Convience Marcos
- **                  o Client side data structures
- **                  o Client side event structures (non wire)
- **                  o Library function prototypes
- **                  o some private stuff denoted with _whatever
- **
- **               Printstr.h for server and library, but NOT clients.
- **
- ******************************************************************************
- **
- ** (c) Copyright 1996 Hewlett-Packard Company
- ** (c) Copyright 1996 International Business Machines Corp.
- ** (c) Copyright 1996 Sun Microsystems, Inc.
- ** (c) Copyright 1996 Novell, Inc.
- ** (c) Copyright 1996 Digital Equipment Corp.
- ** (c) Copyright 1996 Fujitsu Limited
- ** (c) Copyright 1996 Hitachi, Ltd.
- ** 
- ** 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
- ** 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.
- **
- ** Except as contained in this notice, the names of the copyright holders shall
- ** not be used in advertising or otherwise to promote the sale, use or other
- ** dealings in this Software without prior written authorization from said
- ** copyright holders.
- **
- ******************************************************************************
- *****************************************************************************/
-/* $XFree86: xc/include/extensions/Print.h,v 1.4 2000/01/25 18:37:31 dawes Exp $ */
-
-#ifndef _XpPrint_H_
-#define _XpPrint_H_
-
-#ifndef _XP_PRINT_SERVER_
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-#include <X11/Xauth.h>
-#endif /* _XP_PRINT_SERVER_ */
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-/******************************************************************************
- *
- * Definitions used by the server, library and client.
- */
-
-/********************************************************************
- *
- * Naming and versioning information.
- */
-#define XP_PRINTNAME  "XpExtension"
-
-/*
- * Add a define below for each major extension release.
- */
-#define XP_DONT_CHECK		0
-#define XP_INITIAL_RELEASE	1
-
-/*
- * For each single entry above, create one major/minor pair.
- */
-#define XP_PROTO_MAJOR		1
-#define XP_PROTO_MINOR		0
-
-/*
- * Identify current version.
- */
-#define XP_MAJOR_VERSION	XP_PROTO_MAJOR
-#define XP_MINOR_VERSION	XP_PROTO_MINOR
-
-/*
- * Misc version defines.
- */
-#define XP_ABSENT		0	/* Prior to XP Print support */
-#define XP_PRESENT		1	/* With XP Print support */
-
-/********************************************************************
- *
- * Xp Print Error codes.
- */
-#define XP_ERRORS		3	/* number of error types */
-
-#define XPBadContext		0	/* Print Context invalid or missing */
-#define XPBadSequence		1	/* Illegal sequence of XP operations */
-#define XPBadResourceID		2	/* X-resource not valid */
-
-/********************************************************************
- *
- * Xp Print Event masks and codes.
- *
- */
-#define XP_EVENTS		2	/* number of event types */
-
-#define XPNoEventMask		0	/* not an event - just a null mask */
-#define XPPrintMask		(1L<<0)
-#define XPAttributeMask		(1L<<1)
-
-#define XPPrintNotify		0	/* contains "detail" - see below */
-#define XPAttributeNotify	1	/* contains "detail" - see below */
-
-#define XPStartJobNotify	0	/* value for "detail" in XPPrintNotify*/
-#define XPEndJobNotify		1
-#define XPStartDocNotify	2
-#define XPEndDocNotify		3
-#define XPStartPageNotify	4
-#define XPEndPageNotify		5
-
-/********************************************************************
- *
- * Xp Print Attribute Object codes (subset of ISO DPA 10175).  The
- * Xp Server can get and set any of the values, while the Xp Library
- * may only be able to set a subset of the attribute objects.
- *
- * note: the codes are also used as "detail" for XPAttributeNotify
- *
- * note: XPPageAttr is not defined in ISO DPA 10175.  It is unique
- * to Xp, and its attributes are a proper subset of XPDocAttr.
- */
-typedef unsigned char XPAttributes;	/* type of Xp*Attr codes */
-
-#define XP_ATTRIBUTES		5	/* those attrs currently supported */
-
-#define XPJobAttr		1	/* get/set */
-#define XPDocAttr		2	/* get/set */
-#define XPPageAttr		3	/* get/set - subset of XPDocAttr */
-#define XPPrinterAttr		4	/* get only (library) */
-#define XPServerAttr		5	/* get only (library), no
-					   context needed */
-
-/*
- * note: ISO DPA 10175 defines a number of "attribute objects", of
- *       which POSIX 1387.4 and the SI Xp will only support a
- *       subset.
- */
-#define XPMediumAttr		6	/* DPA-Object Medium */
-#define XPFontAttr		7	/* DPA-Object Font */
-#define XPResAttr		8	/* DPA-Object Resource */
-#define XPTransAttr		9	/* DPA-Object Transfer method */
-#define XPDelAttr		10	/* DPA-Object Delivery method */
-#define XPAuxSPkg		11	/* DPA-Object Auxiliary sheet package */
-#define XPAuxS			12	/* DPA-Object Auxiliary sheet */
-#define XPFinishAttr		13	/* DPA-Object Finishing */
-#define XPOutputAttr		14	/* DPA-Object Output method */
-#define XPImpAttr		15	/* DPA-Object Imposition */
-#define XPSchedAttr		16	/* DPA-Object Scheduler */
-#define XPIntJobAttr		17	/* DPA-Object Initial value job */
-#define XPIntDocAttr		18	/* DPA-Object Initial value document */
-#define XPResConAttr		19	/* DPA-Object Resource context */
-
-
-/*
- * Replacement rules for XpSetAttributes
- */
-typedef unsigned char XPAttrReplacement;
-#define	XPAttrReplace		1
-#define XPAttrMerge		2
-
-
-/*
- * Return codes for XpGetDocumentData
- */
-typedef unsigned char XPGetDocStatus;
-#define XPGetDocFinished	0	/* normal termination */
-#define XPGetDocSecondConsumer	1	/* setup error */
-#define XPGetDocError		2	/* runtime error, see generated error */
-
-
-/*
- * Save data types for XpStartJob.
- */
-typedef unsigned char XPSaveData;
-#define XPSpool			1	/* Job data sent to spooler */
-#define XPGetData		2	/* Job data via XpGetDocumentData */
-
-
-/*
- * Document types for XpStartDoc.
- */
-typedef unsigned char XPDocumentType;
-#define	XPDocNormal		1	/* Doc data handled by Xserver */
-#define	XPDocRaw		2	/* Doc data passed through Xserver */
-
-
-/********************************************************************
- *
- * Xp Print Property Names
- */
-
-
-#ifndef _XP_PRINT_SERVER_
-
-/******************************************************************************
- *
- * Definitions used by the library and clients only.
- */
-
-/*******************************************************************
- *
- * General API defines and such.
- */
-
-/*
- * Print Context for XpInitContext and related calls.
- */
-typedef XID XPContext;
-
-/*
- * Struct for XpGetPrinterList.
- */
-typedef struct {
-    char	*name;		/* name */
-    char	*desc;		/* localized description */
-} XPPrinterRec, *XPPrinterList;
-
-/*
- * Typedefs for XpGetDocumentData
- */
-typedef void (*XPSaveProc)( Display *display,
-                            XPContext context,
-                            unsigned char *data,
-                            unsigned int data_len,
-                            XPointer client_data);
-
-typedef void (*XPFinishProc)( Display *display,
-                              XPContext context,
-                              XPGetDocStatus status,
-                              XPointer client_data);
-
-/*
- * Typedefs for XpSetLocaleHinter and XpGetLocaleHinter
- */
-typedef char * (*XPHinterProc)(void);
-
-#if 0
-/*******************************************************************
- *
- * Extension version structures.
- *
- **** this structure is now defined localy in the one file that uses it
- **** in order to avoid clashes with its definition in XI.h
- */
-typedef struct {
-        int     present;
-        short   major_version;
-        short   minor_version;
-} XExtensionVersion;
-#endif
-
-/********************************************************************
- *
- * Event structs for clients.
- *
- * note: these events are relative to a print context, and
- * not to a window as in core X.
- */
-typedef struct {
-    int            type;       /* base + XPPrintNotify */
-    unsigned long  serial;     /* # of last request processed by server */
-    Bool           send_event; /* true if from a SendEvent request */
-    Display        *display;   /* Display the event was read from */
-    XPContext      context;    /* print context where operation was requested */
-    Bool           cancel;     /* was detailed event canceled */
-    int            detail;     /* XPStartJobNotify, XPEndJobNotify,
-                                  XPStartDocNotify, XPEndDocNotify,
-                                  XPStartPageNotify, XPEndPageNotify */
-} XPPrintEvent;
-
-typedef struct {
-    int            type;       /* base + XPAttributeNotify */
-    unsigned long  serial;     /* # of last request processed by server */
-    Bool           send_event; /* true if from a SendEvent request */
-    Display        *display;   /* Display the event was read from */
-    XPContext      context;    /* print context where operation was requested */
-    int            detail;     /* XPJobAttr, XPDocAttr, XPPageAttr,
-                                  XPPrinterAttr, XPSpoolerAttr,
-                                  XPMediumAttr, XPServerAttr */
-} XPAttributeEvent;
-
-typedef struct {
-    int            type;       /* base + XPDataReadyNotify */
-    unsigned long  serial;     /* # of last request processed by server */
-    Bool           send_event; /* true if from a SendEvent request */
-    Display        *display;   /* Display the event was read from */
-    XPContext      context;    /* print context where operation was requested */
-    unsigned long  available;  /* bytes available for retrieval */
-} XPDataReadyEvent;
-
-
-/**********************************************************
- *
- * Function prototypes for library side.
- */
-
-extern XPContext XpCreateContext (
-    Display		*display,
-    char		*printer_name
-);
-
-extern void XpSetContext (
-    Display		*display,
-    XPContext     	print_context
-);
-
-extern XPContext XpGetContext (
-    Display		*display
-);
-
-extern void XpDestroyContext (
-    Display		*display,
-    XPContext     	print_context
-);
-
-extern Screen *XpGetScreenOfContext (
-    Display		*display,
-    XPContext     	print_context
-);
-
-extern Status XpGetPageDimensions (
-    Display		*display,
-    XPContext     	print_context,
-    unsigned short	*width,			/* return value */
-    unsigned short	*height,		/* return value */
-    XRectangle		*reproducible_area	/* return value */
-);
-
-extern void XpStartJob (
-    Display		*display,
-    XPSaveData		save_data
-);
-
-extern void XpEndJob (
-    Display		*display
-);
-
-extern void XpCancelJob (
-    Display		*display,
-    Bool		discard
-);
-
-extern void XpStartDoc (
-    Display		*display,
-    XPDocumentType	type
-);
-
-extern void XpEndDoc (
-    Display		*display
-);
-
-extern void XpCancelDoc (
-    Display		*display,
-    Bool		discard
-);
-
-extern void XpPutDocumentData (
-    Display		*display,
-    Drawable		drawable,
-    unsigned char	*data,
-    int			data_len,
-    char		*doc_fmt,
-    char		*options
-);
-
-extern Status XpGetDocumentData (
-    Display		*display,
-    XPContext		context,
-    XPSaveProc		save_proc,
-    XPFinishProc	finish_proc,
-    XPointer		client_data
-);
-
-extern void XpStartPage (
-    Display		*display,
-    Window		window
-);
-
-extern void XpEndPage (
-    Display		*display
-);
-
-extern void XpCancelPage (
-    Display		*display,
-    Bool		discard
-);
-
-extern void XpSelectInput (
-    Display		*display,
-    XPContext     	print_context,
-    unsigned long	event_mask
-);
-
-extern unsigned long XpInputSelected (
-    Display		*display,
-    XPContext     	print_context,
-    unsigned long	*all_events_mask
-);
-
-extern Bool XpSetImageResolution (
-    Display		*display,
-    XPContext     	print_context,
-    int			image_res,
-    int			*prev_res
-);
-
-extern int XpGetImageResolution (
-    Display		*display,
-    XPContext     	print_context
-);
-
-extern char *XpGetAttributes (
-    Display		*display,
-    XPContext     	print_context,
-    XPAttributes	type
-);
-
-extern void XpSetAttributes (
-    Display		*display,
-    XPContext     	print_context,
-    XPAttributes	type,
-    char		*pool,
-    XPAttrReplacement	replacement_rule
-);
-
-extern char *XpGetOneAttribute (
-    Display		*display,
-    XPContext     	print_context,
-    XPAttributes	type,
-    char		*attribute_name
-);
-
-extern XPPrinterList XpGetPrinterList (
-    Display		*display,
-    char		*printer_name,
-    int			*list_count		/* return value */
-);
-
-extern void XpFreePrinterList (
-    XPPrinterList	printer_list
-);
-
-extern void XpRehashPrinterList (
-    Display		*display
-);
-
-extern Status XpQueryVersion (
-    Display		*display,
-    short		*major_version,		/* return value */
-    short		*minor_version		/* return value */
-);
-
-extern Bool XpQueryExtension (
-    Display		*display,
-    int			*event_base_return,	/* return value */
-    int			*error_base_return	/* return value */
-);
-
-extern Screen **XpQueryScreens (
-    Display		*display,
-    int			*list_count		/* return value */
-);
-
-extern Status XpGetPdmStartParams (
-    Display		*print_display,
-    Window		print_window,
-    XPContext		print_context,
-    Display		*video_display,
-    Window		video_window,
-    Display		**selection_display,	/* return value */
-    Atom		*selection,		/* return value */
-    Atom		*type,			/* return value */
-    int			*format,		/* return value */
-    unsigned char	**data,			/* return value */
-    int			*nelements		/* return value */
-);
-
-extern Status XpGetAuthParams (
-    Display		*print_display,
-    Display		*video_display,
-    Display		**selection_display,	/* return value */
-    Atom		*selection,		/* return value */
-    Atom		*target			/* return value */
-);
-
-extern Status XpSendAuth (
-    Display		*display,
-    Window		window
-);
-
-extern Status XpSendOneTicket (
-    Display		*display,
-    Window		window,
-    Xauth		*ticket,
-    Bool		more
-);
-
-extern void XpSetLocaleHinter (
-    XPHinterProc hinter_proc,
-    char         *hinter_desc
-);
-
-extern char *XpGetLocaleHinter (
-    XPHinterProc *hinter_proc
-);
-
-extern char *XpGetLocaleNetString(void);
-
-extern char *XpNotifyPdm (
-    Display		*print_display,
-    Window		print_window,
-    XPContext     	print_context,
-    Display		*video_display,
-    Window		video_window,
-    Bool		auth_flag
-);
-
-#endif /* _XP_PRINT_SERVER_ */
-
-_XFUNCPROTOEND
-
-#endif /* _XpPrint_H_ */
diff --git a/nx-X11/include/extensions/Printstr.h b/nx-X11/include/extensions/Printstr.h
deleted file mode 100644
index 45ac7a5..0000000
--- a/nx-X11/include/extensions/Printstr.h
+++ /dev/null
@@ -1,783 +0,0 @@
-/* $Xorg: Printstr.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
-/******************************************************************************
- ******************************************************************************
- **
- ** File:         Printstr.h
- **
- ** Description: Definitions needed by the server and library, but
- **              not clients.
- **
- **              Print.h for server, library and clients.
- **
- ******************************************************************************
- **
- ** (c) Copyright 1996 Hewlett-Packard Company
- ** (c) Copyright 1996 International Business Machines Corp.
- ** (c) Copyright 1996 Sun Microsystems, Inc.
- ** (c) Copyright 1996 Novell, Inc.
- ** (c) Copyright 1996 Digital Equipment Corp.
- ** (c) Copyright 1996 Fujitsu Limited
- ** (c) Copyright 1996 Hitachi, Ltd.
- ** 
- ** 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
- ** 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.
- **
- ** Except as contained in this notice, the names of the copyright holders shall
- ** not be used in advertising or otherwise to promote the sale, use or other
- ** dealings in this Software without prior written authorization from said
- ** copyright holders.
- **
- ******************************************************************************
- *****************************************************************************/
-/* $XFree86: xc/include/extensions/Printstr.h,v 1.5 2001/08/01 00:44:35 tsi Exp $ */
-
-
-#ifndef _XpPrintstr_H_
-#define _XpPrintstr_H_
-
-/*
- * NEED_EVENTS and NEED_REPLIES are hacks to limit the linker symbol-table
- * size.   When function prototypes are needed from Print.h, this sets up
- * a cascading dependency on Printstr.h and eventually Xproto.h to provide
- * the event and reply struct definitions.
- */
-#ifndef NEED_EVENTS
-#define NEED_EVENTS
-#endif /* NEED_EVENTS */
-
-#define NEED_REPLIES
-
-#include <X11/Xproto.h>
-#ifndef _XP_PRINT_SERVER_
-#include <X11/Xlib.h>
-#endif /* _XP_PRINT_SERVER_ */
-
-/*
- * Pull in other definitions.  Print.h will hide some things if we're
- * doing server side work.
- */
-#include <X11/extensions/Print.h>
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-/******************************************************************************
- *
- * Protocol requests constants and alignment values
- *
- * Note: Xlib macro's expect X_ABC where ABC is the name of the
- * protocol request.
- */
-#define X_PrintQueryVersion		0
-#define X_PrintGetPrinterList		1
-#define X_PrintCreateContext		2
-#define X_PrintSetContext		3
-#define X_PrintGetContext		4
-#define X_PrintDestroyContext		5
-#define X_PrintGetContextScreen		6
-#define X_PrintStartJob			7
-#define X_PrintEndJob			8
-#define X_PrintStartDoc			9
-#define X_PrintEndDoc			10
-#define X_PrintPutDocumentData		11
-#define X_PrintGetDocumentData		12
-#define X_PrintStartPage		13
-#define X_PrintEndPage			14
-#define X_PrintSelectInput		15
-#define X_PrintInputSelected		16
-#define X_PrintGetAttributes		17
-#define X_PrintSetAttributes		18
-#define X_PrintGetOneAttribute		19
-#define X_PrintRehashPrinterList	20
-#define X_PrintGetPageDimensions	21
-#define X_PrintQueryScreens		22
-#define X_PrintSetImageResolution	23
-#define X_PrintGetImageResolution	24
-
-/********************************************************************
- *
- * Protocol data types
- */
-#define PCONTEXT CARD32
-#define WINDOW   CARD32
-#define DRAWABLE CARD32
-#define BITMASK  CARD32
-
-/******************************************************************************
- *
- * Event wire struct definitions
- *
- * Note: Xlib macro's expect xABC struct names and sz_xABC size
- * constants where ABC is the name of the protocol request.
- */
-
-
-/*********************************************************************
- *
- * Events.
- *
- * See Print.h for the protocol "type" values.
- */
-typedef struct _xPrintPrintEvent {
-	BYTE type;		/* XPPrintNotify + extEntry->eventBase */
-	BYTE detail;		/* XPStartJobNotify, XPEndJobNotify,
-				   XPStartDocNotify, XPEndDocNotify,
-				   XPStartPageNotify, XPEndPageNotify */
-	CARD16 sequenceNumber B16;
-	PCONTEXT printContext B32; /* print context */
-	BOOL   cancel;		/* canceled flag */
-	CARD8  pad1;		/* rest is unused */
-	CARD16 pad2 B16;
-	CARD32 pad3 B32;
-	CARD32 pad4 B32;
-	CARD32 pad5 B32;
-	CARD32 pad6 B32;
-	CARD32 pad7 B32;
-} xPrintPrintEvent;
-#define sz_xPrintPrintEvent 32;
-
-typedef struct _xPrintAttributeEvent {
-	BYTE   type;		/* XPAttributeNotify + extEntry->eventBase */
-	BYTE   detail;		/* XPJobAttr, XPDocAttr, XPPageAttr,
-				   XPPrinterAttr, XPSpoolerAttr,
-				   XPMediumAttr, XPServerAttr */
-	CARD16 sequenceNumber B16;
-	PCONTEXT printContext B32; /* print context */
-	CARD32 pad1 B32;
-	CARD32 pad2 B32;
-	CARD32 pad3 B32;
-	CARD32 pad4 B32;
-	CARD32 pad5 B32;
-	CARD32 pad6 B32;
-} xPrintAttributeEvent;
-#define sz_xPrintAttributeEvent 32;
-
-
-/*********************************************************************
- *
- * Requests
- */
-typedef struct _PrintQueryVersion {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintQueryVersion */
-	CARD16	length B16;
-} xPrintQueryVersionReq;
-#define sz_xPrintQueryVersionReq	4
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD16	majorVersion B16;	/* major version of Xp protocol */
-	CARD16	minorVersion B16;	/* minor version of Xp protocol */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-} xPrintQueryVersionReply;
-#define sz_xPrintQueryVersionReply	32
-
-
-typedef struct _PrintGetPrinterList {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetPrinterList */
-	CARD16	length B16;
-	CARD32	printerNameLen B32;	/* length of printer name */
-	CARD32	localeLen B32;		/* length of locale string */
-
-	/* variable portion *****************************************
-	STRING8	printerName;		 * printer name *
-	BYTE	pad(printerNameLen)	 * unused *
-	STRING8	locale;			 * locale *
-	BYTE	pad(localeLen)		 * unused *
-	************************************************************/
-} xPrintGetPrinterListReq;
-#define sz_xPrintGetPrinterListReq	12
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD32	listCount B32;		/* of PRINTER recs below */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-
-	/* variable portion *****************************************
-	CARD32	nameLen B32;		* length of name in bytes *
-	STRING8	name;			* name *
-	BYTE	pad(nameLen)		* unused *
-
-	CARD32	descLen B32;		* length of desc in bytes *
-	STRING8	desc;			* localized description *
-	BYTE	pad(descLen)		* unused *
-	************************************************************/
-} xPrintGetPrinterListReply;
-#define sz_xPrintGetPrinterListReply	32
-
-
-typedef struct _PrintRehashPrinterList {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintRehashPrinterList */
-	CARD16	length B16;
-} xPrintRehashPrinterListReq;
-#define sz_xPrintRehashPrinterListReq	4
-
-
-typedef struct _PrintCreateContext {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintInitSetContext */
-	CARD16	length B16;
-	CARD32	contextID B32;		/* ID for context */
-	CARD32	printerNameLen B32;	/* length of printerName in bytes */
-	CARD32	localeLen B32;		/* length of locale in bytes */
-
-	/* variable portion *****************************************
-	STRING8	printerName		 * printer name *
-	BYTE	pad(printerNameLen)	 * unused *
-	STRING8	locale			 * locale *
-	BYTE	pad(locale)		 * unused *
-	************************************************************/
-} xPrintCreateContextReq;		
-#define sz_xPrintCreateContextReq	16
-
-
-typedef struct _PrintSetContext {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintSetContext */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintSetContextReq;		
-#define sz_xPrintSetContextReq		8
-
-
-typedef struct _PrintGetContext {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetContext */
-	CARD16	length B16;
-} xPrintGetContextReq;		
-#define sz_xPrintGetContextReq		4
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	PCONTEXT printContext B32;	/* print context */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-} xPrintGetContextReply;
-#define sz_xPrintGetContextReply	32
-
-
-typedef struct _PrintDestroyContext {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintDestroyContext */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintDestroyContextReq;		
-#define sz_xPrintDestroyContextReq	8
-
-
-typedef struct _PrintGetContextScreen {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetContextScreen */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintGetContextScreenReq;		
-#define sz_xPrintGetContextScreenReq	8
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	WINDOW  rootWindow;		/* screenPtr represented as rootWin */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-} xPrintGetContextScreenReply;
-#define sz_xPrintGetContextScreenReply	32
-
-
-typedef struct _PrintStartJob {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintStartJob */
-	CARD16	length B16;
-	CARD8	saveData;		/* save data boolean */
-	CARD8	pad1;
-	CARD16	pad2 B16;
-} xPrintStartJobReq;		
-#define sz_xPrintStartJobReq		8
-
-typedef struct _PrintEndJob {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintEndJob */
-	CARD16	length B16;
-	BOOL	cancel;			/* cancel boolean */
-	CARD8	pad1;
-	CARD16	pad2 B16;
-} xPrintEndJobReq;
-#define sz_xPrintEndJobReq		8
-
-
-typedef struct _PrintStartDoc {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintStartDoc */
-	CARD16	length B16;
-	CARD8	type;			/* type for document */
-	CARD8	pad1;
-	CARD16	pad2 B16;
-} xPrintStartDocReq;		
-#define sz_xPrintStartDocReq		8
-
-typedef struct _PrintEndDoc {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintEndDoc */
-	CARD16	length B16;
-	BOOL	cancel;			/* cancel boolean */
-	CARD8	pad1;
-	CARD16	pad2 B16;
-} xPrintEndDocReq;
-#define sz_xPrintEndDocReq		8
-
-
-typedef struct _PrintPutDocumentData {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintPutDocumentData */
-	CARD16	length B16;
-	DRAWABLE drawable B32;		/* target drawable */
-	CARD32	len_data B32;		/* big len in bytes */
-	CARD16	len_fmt;		/* len in bytes */
-	CARD16	len_options;		/* len in bytes */
-
-	/* variable portion *****************************************
-	LISTofBYTE	data;		 * data *
-	BYTE		pad(len_data)	 * unused *
-	STRING8		doc_fmt;	 * ISO compliant desc of data type *
-	BYTE		pad(len_fmt)	 * unused *
-	STRING8		options;	 * additional device-dependent desc *
-	BYTE		pad(len_options) * unused *
-	************************************************************/
-} xPrintPutDocumentDataReq;
-#define sz_xPrintPutDocumentDataReq	16
-
-
-typedef struct _PrintGetDocumentData {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetDocumentData */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-	CARD32	maxBufferSize B32;	/* maximum buffer size requested */
-} xPrintGetDocumentDataReq;		
-#define sz_xPrintGetDocumentDataReq	12
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD32	statusCode B32;		/* status code for reply */
-	CARD32	finishedFlag B32;	/* is this the last reply */
-	CARD32	dataLen B32;		/* data length */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-
-	/* variable portion *****************************************
-	LISTofBYTE	data;		 * data *
-	BYTE		pad(count)	 * unused *
-	************************************************************/
-} xPrintGetDocumentDataReply;
-#define sz_xPrintGetDocumentDataReply	32
-
-
-typedef struct _PrintStartPage {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintStartPage */
-	CARD16	length B16;
-	WINDOW	window B32;		/* window */
-} xPrintStartPageReq;		
-#define sz_xPrintStartPageReq		8
-
-typedef struct _PrintEndPage {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintEndPage */
-	CARD16	length B16;
-	BOOL	cancel;			/* cancel boolean */
-	CARD8	pad1;
-	CARD16	pad2 B16;
-} xPrintEndPageReq;
-#define sz_xPrintEndPageReq		8
-
-
-typedef struct _PrintSelectInput {
-        CARD8   reqType;        	/* always PrintReqCode */
-	CARD8   printReqType;		/* always X_PrintSelectInput */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-	BITMASK	eventMask B32;
-} xPrintSelectInputReq;
-#define sz_xPrintSelectInputReq		12
-
-
-typedef struct _PrintInputSelected {
-        CARD8   reqType;        	/* always PrintReqCode */
-	CARD8   printReqType;		/* always X_PrintInputSelected */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintInputSelectedReq;
-#define sz_xPrintInputSelectedReq	8
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	BITMASK	eventMask B32;		/* your event mask */
-	BITMASK	allEventsMask B32;	/* all event mask */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-} xPrintInputSelectedReply;
-#define sz_xPrintInputSelectedReply	32
-
-typedef struct _PrintGetAttributes {
-        CARD8   reqType;        	/* always PrintReqCode */
-	CARD8   printReqType;		/* always X_PrintGetAttributes */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-        CARD8   type;			/* type */
-        CARD8   pad1;			/* unused */
-        CARD16  pad2 B16;		/* unused */
-} xPrintGetAttributesReq;
-#define sz_xPrintGetAttributesReq	12
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD32	stringLen B32;		/* length of xrm db string */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-
-        /* variable portion *****************************************
-	STRING8	string;                  * xrm db as a string *
-	BYTE	pad(stringLen)           * unused *
-        ************************************************************/
-} xPrintGetAttributesReply;
-#define sz_xPrintGetAttributesReply	32
-
-
-typedef struct _PrintSetAttributes {
-        CARD8   reqType;        	/* always PrintReqCode */
-	CARD8   printReqType;		/* always X_PrintSetAttributes */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-	CARD32	stringLen B32;		/* length of xrm db string */
-        CARD8   type;                   /* type */
-	CARD8   rule;			/* replacement rule */
-	CARD16  pad1 B16;		/* unused */
-
-        /* variable portion *****************************************
-	STRING8	string;                  * xrm db as a string *
-	BYTE	pad(stringLen)           * unused *
-        ************************************************************/
-} xPrintSetAttributesReq;
-#define sz_xPrintSetAttributesReq	16
-
-
-typedef struct _PrintGetOneAttribute {
-        CARD8   reqType;        	/* always PrintReqCode */
-	CARD8   printReqType;		/* always X_PrintGetOneAttribute */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-	CARD32	nameLen;		/* length of name string */
-        CARD8   type;			/* type */
-        CARD8   pad1;			/* unused */
-        CARD16  pad2 B16;		/* unused */
-
-        /* variable portion *****************************************
-	STRING8	name;			 * name as a string *
-	BYTE	pad(name)		 * unused *
-        ************************************************************/
-} xPrintGetOneAttributeReq;
-#define sz_xPrintGetOneAttributeReq	16
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD32	valueLen B32;		/* length of value string */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-
-        /* variable portion *****************************************
-	STRING8	value;			 * value as a string *
-	BYTE	pad(value)		 * unused *
-        ************************************************************/
-} xPrintGetOneAttributeReply;
-#define sz_xPrintGetOneAttributeReply	32
-
-
-typedef struct _PrintGetPageDimensions {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetPageDimensions */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintGetPageDimensionsReq;		
-#define sz_xPrintGetPageDimensionsReq	8
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD16	width;			/* total pixel width */
-	CARD16	height;			/* total pixel height */
-	CARD16	rx;			/* reproducable x pixel offset */
-	CARD16	ry;			/* reproducable y pixel offset */
-	CARD16	rwidth;			/* reproducable x pixel width */
-	CARD16	rheight;		/* reproducable y pixel width */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-} xPrintGetPageDimensionsReply;
-#define sz_xPrintGetPageDimensionsReply	32
-
-
-typedef struct _PrintQueryScreens {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintQueryScreens */
-	CARD16	length B16;
-} xPrintQueryScreensReq;		
-#define sz_xPrintQueryScreensReq	4
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;			/* not used */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD32	listCount;		/* number of screens following */
-	CARD32	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-
-        /* variable portion *****************************************
-	WINDOW	rootWindow;		 * root window of screen *
-        ************************************************************/
-} xPrintQueryScreensReply;
-#define sz_xPrintQueryScreensReply	32
-
-typedef struct _PrintSetImageResolution {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintSetImageResolution */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-	CARD16 imageRes B16;		/* image resolution */
-	CARD16 pad1 B16;
-} xPrintSetImageResolutionReq;
-#define sz_xPrintSetImageResolutionReq	12
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	BOOL	status;			/* accepted or not */
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD16	prevRes B16;		/* previous resolution */
-	CARD16	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-	CARD32	pad6 B32;
-} xPrintSetImageResolutionReply;
-#define sz_xPrintSetImageResolutionReply 32
-
-typedef struct _PrintGetImageResolution {
-	CARD8	reqType;		/* always PrintReqCode */
-	CARD8	printReqType;		/* always X_PrintGetImageResolution */
-	CARD16	length B16;
-	PCONTEXT printContext B32;	/* print context */
-} xPrintGetImageResolutionReq;
-#define sz_xPrintGetImageResolutionReq	8
-
-typedef struct {
-	BYTE	type;			/* X_Reply */
-	CARD8	unused;
-	CARD16	sequenceNumber B16;
-	CARD32	length B32;
-	CARD16	imageRes B16;		/* image resolution */
-	CARD16	pad1 B32;
-	CARD32	pad2 B32;
-	CARD32	pad3 B32;
-	CARD32	pad4 B32;
-	CARD32	pad5 B32;
-	CARD32	pad6 B32;
-} xPrintGetImageResolutionReply;
-#define sz_xPrintGetImageResolutionReply 32
-
-#ifndef _XP_PRINT_SERVER_
-/***********************************************************************
- *
- * Library-only definitions.
- */
-extern XPHinterProc  _xp_hinter_proc;
-extern char         *_xp_hinter_desc;
-extern int           _xp_hinter_init;
-
-#else /* _XP_PRINT_SERVER_ */
-
-/***********************************************************************
- *
- * Server-only definitions shared between the extension and DDX layers.
- *
- */
- 
-/*
- * Internal return code used to indicate that the requesting
- * client has been suspended.
- */
-#define Suspended 84
-
-struct _XpContext;
-
-extern void XpRegisterPrinterScreen(
-    ScreenPtr pScreen,
-    int (*CreateContext)(struct _XpContext *));
-
-typedef struct _xpprintFuncs {
-    int (*StartJob)(
-	struct _XpContext *	/* pContext */,
-	Bool			/* sendClientData */,
-	ClientPtr		/* client */);
-    int (*EndJob)(struct _XpContext *, int);
-    int (*StartDoc)(
-	struct _XpContext *	/* pContext */,
-	XPDocumentType		/* type */);
-    int (*EndDoc)(struct _XpContext *, int);
-    int (*StartPage)(
-	struct _XpContext *	/* pContext */,
-	WindowPtr		/* pWin */);
-    int (*EndPage)(
-	struct _XpContext *	/* pContext */,
-	WindowPtr		/* pWin */);
-    int (*PutDocumentData)(
-	struct _XpContext *	/* pContext */,
-    	DrawablePtr		/* pDraw */,
-	char *			/* pData */,
-	int			/* len_data */,
-	char *			/* pDoc_fmt */,
-	int			/* len_fmt */,
-	char *			/* pOptions */,
-	int			/* len_options */,
-	ClientPtr		/* client */);
-    int (*GetDocumentData)(
-	struct _XpContext *	/* pContext */,
-	ClientPtr		/* client */,
-	int			/* maxBufferSize */);
-    int (*DestroyContext)(
-	struct _XpContext *);	/* pContext */
-    char *(*GetAttributes)(
-	struct _XpContext *,
-	XPAttributes 		/* pool */);
-    char *(*GetOneAttribute)(
-	struct _XpContext *	/* pContext */,
-	XPAttributes 		/* pool */,
-	char *			/* attrs */);
-    int (*SetAttributes)(
-	struct _XpContext *	/* pContext */,
-	XPAttributes 		/* pool */,
-	char *			/* attrs */);
-    int (*AugmentAttributes)(
-	struct _XpContext *	/* pContext */,
-	XPAttributes 		/* pool */,
-	char *			/* attrs */);
-    int (*GetMediumDimensions)(
-	struct _XpContext *	/* pPrintContext */,
-	CARD16 *		/* pWidth */,
-	CARD16 *		/* pHeight */);
-    int (*GetReproducibleArea)(
-	struct _XpContext *	/* pPrintContext */,
-	xRectangle *		/* pRect */);
-    int (*SetImageResolution)(
-	struct _XpContext *	/* pPrintContext */,
-	int			/* imageRes */,
-	Bool *			/* pStatus */);
-} XpDriverFuncs, *XpDriverFuncsPtr;
-
-/*
- * Each print context is represented by one of the following structs
- * associated with a resource ID of type RTcontext .  A pointer to
- * the context is placed in the Xp extension's devPrivates
- * element in each client * which establishes a context via
- * either initContext or setContext.
- * The context pointer is also placed in the struct indicated by the
- * RTpage resource associated with each StartPage'd window.
- */
-typedef struct _XpContext {
-        XID contextID;
-        char *printerName;
-        int screenNum;          /* screen containing the printer */
-        struct _XpClient *clientHead; /* list of clients */
-        CARD32 state;
-        VisualID pageWin;
-        DevUnion *devPrivates;
-        XpDriverFuncs funcs;
-	ClientPtr clientSlept;
-	int imageRes;
-} XpContextRec, *XpContextPtr;
-
-#include <X11/fonts/fontstruct.h>	/* FontResolutionPtr */
-
-extern Bool XpAllocateContextPrivate(int, unsigned);
-extern FontResolutionPtr XpGetClientResolutions(ClientPtr, int *);
-extern XpContextPtr XpContextOfClient(ClientPtr);
-extern XpContextPtr XpGetPrintContext(ClientPtr);
-extern int XpAllocateContextPrivateIndex(void);
-extern int XpRehashPrinterList(void);
-extern void XpSetFontResFunc(ClientPtr);
-extern void XpUnsetFontResFunc(ClientPtr);
-extern void XpRegisterInitFunc(ScreenPtr, char *, int (*)(struct _XpContext *));
-
-#endif /* _XP_PRINT_SERVER_ */
-
-_XFUNCPROTOEND
-
-#endif /* _XpPrintstr_H_ */
diff --git a/nx-X11/lib/Imakefile b/nx-X11/lib/Imakefile
index 1266724..721d3ff 100644
--- a/nx-X11/lib/Imakefile
+++ b/nx-X11/lib/Imakefile
@@ -181,10 +181,6 @@ REGEXDIR = regex
 XALIBDIR = Xa
 #endif
 
-#if BuildXprintLib
-XPRINTLIBDIRS = Xp XprintUtil XprintAppUtil
-#endif
-
 #if BuildFontCacheLib
 FONTCACHELIBDIR = Xfontcache
 #endif
@@ -221,7 +217,7 @@ LINTSUBDIRS = $(XAULIBDIR) $(XDMCPLIBDIR) $(X11LIBDIR) \
              $(OLDXLIBDIR) $(ICELIBDIR) $(SMLIBDIR) $(XEXTLIBDIR) $(XTLIBDIR) \
              $(SSLIBDIR) $(XF86MISCLIBDIR) $(XF86VMLIBDIR) $(XF86DGALIBDIR) \
              $(XF86RUSHLIBDIR) $(XMULIBDIR) $(XMUULIBDIR) $(XPMLIBDIR) \
-             $(XPRINTLIBDIRS) $(XAW6LIBDIR) $(XAW7LIBDIR) $(XAWLIBDIR) \
+             $(XAW6LIBDIR) $(XAW7LIBDIR) $(XAWLIBDIR) \
              $(XINPUTLIBDIR) $(XTSTLIBDIR) $(FSLIBDIR) $(XKBLIBDIR) \
              $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) $(EXPATBUILDDIR) \
              $(XVLIBDIR) $(GLXLIBDIR) $(GLULIBDIR) $(GLWLIBDIR) \
diff --git a/nx-X11/programs/Imakefile b/nx-X11/programs/Imakefile
index 9480baf..acecc3b 100644
--- a/nx-X11/programs/Imakefile
+++ b/nx-X11/programs/Imakefile
@@ -57,9 +57,6 @@ SCREENSAVESRCDIR = beforelight
 #if BuildLBX
   LBXPROXYSRCDIR = lbxproxy
 #endif
-#if BuildXprintClients
-  XPSRCDIRS = xplsprinters xprehashprinterlist xphelloworld xpr
-#endif
   PROXYMGRSRCDIR = proxymngr
     RSTARTSRCDIR = rstart
    SMPROXYSRCDIR = smproxy
@@ -109,10 +106,6 @@ XTRAPCLIENTDIRS = xtrap
 #if BuildDPSClients
      DPSCLIENTDIRS = dpsinfo dpsexec texteroids
 #endif
-#if BuildDBElib && BuildXprintClients
-     DBECLIENTDIRS = xdbedizzy
-#endif
-
    XPMCLIENTDIRS = cxpm sxpm
 
 #if BuildGLXLibrary
diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile
index 979a946..c251033 100644
--- a/nx-X11/programs/Xserver/Imakefile
+++ b/nx-X11/programs/Xserver/Imakefile
@@ -158,49 +158,6 @@ INSTPGMFLAGS =
     LIBCWRAPPER = os/libcwrapper.o
 #endif
 
-#if BuildXprint
-
-XPCONFIGDIR = XpConfig
-
-#ifndef XpRasterDDX
-#define XpRasterDDX YES
-#endif
-#ifndef XpColorPclDDX
-#define XpColorPclDDX YES
-#endif
-#ifndef XpMonoPclDDX
-#define XpMonoPclDDX NO
-#endif
-#ifndef XpPostScriptDDX
-#define XpPostScriptDDX YES
-#endif
-
-#if XpRasterDDX
-XPRASTLIB = Xprint/raster/LibraryTargetName(raster)
-#endif
-#if XpColorPclDDX
-XPPCLLIB = Xprint/pcl/LibraryTargetName(pcl)
-#endif
-#if XpMonoPclDDX
-XPMPCLLIB = Xprint/pcl-mono/LibraryTargetName(pcl)
-#endif
-#if XpPostScriptDDX
-XPPSLIB = Xprint/ps/LibraryTargetName(ps)
-#endif
-
-XPDDXLIBS = Xprint/LibraryTargetName(printer) \
-	    $(XPRASTLIB) $(XPPCLLIB) $(XPMPCLLIB) $(XPPSLIB)
-XPDDXFBLIBS = $(MFB) $(CFB32)
-#if !PrintOnlyServer
-      XPFBLIBS = $(XPDDXFBLIBS)
-      XPDDX = $(XPDDXLIBS)
-#endif
-      XPDDXDIR = Xprint
-#endif
-#if !BuildXprint || PrintOnlyServer
-XPFBLIBS = dix/LibraryTargetName(xpstubs)
-#endif
-
 #if BuildRender
       RENDERDIR = render
       RENDERLIB = $(RENDERDIR)/librender.a
@@ -834,39 +791,6 @@ ServerDriverSDKTarget(Xorg)
 #endif
 #endif        /* XorgServer */
 
-#if defined(XprtServer) && XprtServer
-XCOMM
-XCOMM Print Server
-XCOMM
-MFBSUBDIR  = mfb
-CFB8SUBDIR = cfb
-CFB32SUBDIR = cfb32
-MIDAMAGEDIR = miext/damage
-XPSUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB32DIR) $(DEPDIRS) \
-	    $(MIDAMAGEDIR)
-XPOBJS = Xprint/ddxInit.o Xprint/dpmsstubs.o Xprint/miinitext.o
-#if PrintOnlyServer
-XPLIBS = PreFbLibs $(XPDDXLIBS) $(XPDDXFBLIBS) PostFbLibs
-#else
-XPLIBS = PreFbLibs PostFbLibs
-#endif
-#if (defined(SunArchitecture) || defined(SparcArchitecture)) && \
-    defined(SVR4Architecture)
-XPSYSLIBS = $(FONTLIBS) $(CBRT) $(SYSLIBS) $(XONLYLIB) -lw
-#else
-XPSYSLIBS = $(FONTLIBS) $(CBRT) $(SYSLIBS) $(XONLYLIB)
-#endif
-#if HasParallelMake
-MakeMutex($(XPSUBDIRS) $(XPOBJS) $(XPLIBS) $(XPSYSLIBS))
-#endif
-#if ForceServerRemake
-$(XPOBJS) $(XPLIBS) $(XPSYSLIBS):: $(XPSUBDIRS)
-	@if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi
-#endif
-ServerTarget(Xprt,$(XPSUBDIRS),$(XPOBJS), \
-	$(LIBCWRAPPER) $(XPLIBS) $(LOADABLEEXTS),$(XPSYSLIBS))
-#endif	/* XprtServer */
-
 #if defined(NXAgentServer) && NXAgentServer
 XCOMM
 XCOMM Nested server with NXlib-based ddx and compressed transport.
diff --git a/nx-X11/programs/Xserver/Xext/Imakefile b/nx-X11/programs/Xserver/Xext/Imakefile
index 6846c28..6c2c060 100644
--- a/nx-X11/programs/Xserver/Xext/Imakefile
+++ b/nx-X11/programs/Xserver/Xext/Imakefile
@@ -131,16 +131,11 @@ XF86BIGFOBJS = xf86bigfont.o
        XEVIEOBJS = xevie.o
 #endif
 
-#if BuildXprint
-      XPRINTSRCS = xprint.c
-      XPRINTOBJS = xprint.o
-#endif
-
        SRCS = shape.c $(SHMSRCS) $(MULTIBUFSRC) \
               mitmisc.c xtest.c xtest1di.c xtest1dd.c sleepuntil.c \
 	      bigreq.c sync.c $(SCRNSAVSRC) xcmisc.c $(VIDMODESRCS) \
 	      $(XF86MISCSRCS) $(XF86BIGFSRCS) $(XF86DGASRCS) $(SECURITYSRCS) \
-	      $(APPGROUPSRCS) $(XPRINTSRCS) $(CUPSRCS) $(PNRXSRCS) $(DPMSSRCS) \
+	      $(APPGROUPSRCS) $(CUPSRCS) $(PNRXSRCS) $(DPMSSRCS) \
 	      $(XEVIESRCS) \
 	      $(EVISRCS) $(XVSRCS) $(FONTCACHESRCS) $(XRESSRCS) $(DMXSRCS)
 
@@ -148,11 +143,11 @@ XF86BIGFOBJS = xf86bigfont.o
               mitmisc.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o \
               bigreq.o sync.o $(SCRNSAVOBJ) xcmisc.o $(VIDMODEOBJS) \
 	      $(XF86MISCOBJS) $(XF86BIGFOBJS) $(XF86DGAOBJS) $(SECURITYOBJS) \
-	      $(APPGROUPOBJS) $(XPRINTOBJS) $(CUPOBJS) $(PNRXOBJS) $(DPMSOBJS) \
+	      $(APPGROUPOBJS) $(CUPOBJS) $(PNRXOBJS) $(DPMSOBJS) \
 	      $(XEVIEOBJS) \
 	      $(EVIOBJS) $(XVOBJS) $(FONTCACHEOBJS) $(XRESOBJS) $(DMXOBJS)
 
-      SOBJS = $(SHMOBJS) $(APPGROUPOBJS) $(SECURITYOBJS) $(XPRINTOBJS) \
+      SOBJS = $(SHMOBJS) $(APPGROUPOBJS) $(SECURITYOBJS) \
 	      shape.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o $(PNRXOBJS) \
 	      $(XEVIEOBJS) \
 	      $(XF86BIGFOBJS)
diff --git a/nx-X11/programs/Xserver/Xext/xprint.c b/nx-X11/programs/Xserver/Xext/xprint.c
deleted file mode 100644
index 60512d3..0000000
--- a/nx-X11/programs/Xserver/Xext/xprint.c
+++ /dev/null
@@ -1,2760 +0,0 @@
-/* $Xorg: xprint.c,v 1.5 2001/03/05 20:42:26 pookie Exp $ */
-/*
-(c) Copyright 1996 Hewlett-Packard Company
-(c) Copyright 1996 International Business Machines Corp.
-(c) Copyright 1996 Sun Microsystems, Inc.
-(c) Copyright 1996 Novell, Inc.
-(c) Copyright 1996 Digital Equipment Corp.
-(c) Copyright 1996 Fujitsu Limited
-(c) Copyright 1996 Hitachi, Ltd.
-
-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
-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.
-
-Except as contained in this notice, the names of the copyright holders shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from said
-copyright holders.
-*/
-/*******************************************************************
-**
-**    *********************************************************
-**    *
-**    *  File:          xprint.c
-**    *
-**    *  Copyright:     Copyright 1993, 1995 Hewlett-Packard Company
-**    *
-**    *		Copyright 1989 by The Massachusetts Institute of Technology
-**    *
-**    *		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 permission notice appear in supporting
-**    *		documentation, and that the name of MIT not be used in
-**    *		advertising or publicity pertaining to distribution of the
-**    *		software without specific prior written permission.
-**    *		M.I.T. makes no representation about the suitability of
-**    *		this software for any purpose. It is provided "as is"
-**    *		without any express or implied warranty.
-**    *
-**    *		MIT DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-**    *		INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-**    *		NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MIT BE  LI-
-**    *		ABLE  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.
-**    *
-**    *********************************************************
-**
-********************************************************************/
-/* $XFree86: xc/programs/Xserver/Xext/xprint.c,v 1.14tsi Exp $ */
-
-#define _XP_PRINT_SERVER_
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xos.h>
-#define NEED_EVENTS
-#include <X11/Xproto.h>
-#undef NEED_EVENTS
-#include "misc.h"
-#include "windowstr.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "extnsionst.h"
-#include "dixstruct.h"
-#include <X11/Xatom.h>
-#include <X11/extensions/Print.h>
-#include <X11/extensions/Printstr.h>
-#include "../Xprint/DiPrint.h"
-#include "../Xprint/attributes.h"
-#include "modinit.h"
-
-static void XpResetProc(ExtensionEntry *);
-
-static int ProcXpDispatch(ClientPtr);
-static int ProcXpSwappedDispatch(ClientPtr);
-
-static int ProcXpQueryVersion(ClientPtr);
-static int ProcXpGetPrinterList(ClientPtr);
-static int ProcXpCreateContext(ClientPtr);
-static int ProcXpSetContext(ClientPtr);
-static int ProcXpGetContext(ClientPtr);
-static int ProcXpDestroyContext(ClientPtr);
-static int ProcXpGetContextScreen(ClientPtr);
-static int ProcXpStartJob(ClientPtr);
-static int ProcXpEndJob(ClientPtr);
-static int ProcXpStartDoc(ClientPtr);
-static int ProcXpEndDoc(ClientPtr);
-static int ProcXpStartPage(ClientPtr);
-static int ProcXpEndPage(ClientPtr);
-static int ProcXpSelectInput(ClientPtr);
-static int ProcXpInputSelected(ClientPtr);
-static int ProcXpPutDocumentData(ClientPtr);
-static int ProcXpGetDocumentData(ClientPtr);
-static int ProcXpGetAttributes(ClientPtr);
-static int ProcXpGetOneAttribute(ClientPtr);
-static int ProcXpSetAttributes(ClientPtr);
-static int ProcXpRehashPrinterList(ClientPtr);
-static int ProcXpQueryScreens(ClientPtr);
-static int ProcXpGetPageDimensions(ClientPtr);
-static int ProcXpSetImageResolution(ClientPtr);
-static int ProcXpGetImageResolution(ClientPtr);
-
-static void SwapXpNotifyEvent(xPrintPrintEvent *, xPrintPrintEvent *);
-static void SwapXpAttributeEvent(xPrintAttributeEvent *, xPrintAttributeEvent *);
-
-static int SProcXpGetPrinterList(ClientPtr);
-static int SProcXpCreateContext(ClientPtr);
-static int SProcXpSetContext(ClientPtr);
-static int SProcXpGetContext(ClientPtr);
-static int SProcXpDestroyContext(ClientPtr);
-static int SProcXpGetContextScreen(ClientPtr);
-static int SProcXpStartJob(ClientPtr);
-static int SProcXpEndJob(ClientPtr);
-static int SProcXpStartDoc(ClientPtr);
-static int SProcXpEndDoc(ClientPtr);
-static int SProcXpStartPage(ClientPtr);
-static int SProcXpEndPage(ClientPtr);
-static int SProcXpSelectInput(ClientPtr);
-static int SProcXpInputSelected(ClientPtr);
-static int SProcXpPutDocumentData(ClientPtr);
-static int SProcXpGetDocumentData(ClientPtr);
-static int SProcXpGetAttributes(ClientPtr);
-static int SProcXpGetOneAttribute(ClientPtr);
-static int SProcXpSetAttributes(ClientPtr);
-static int SProcXpRehashPrinterList(ClientPtr);
-static int SProcXpGetPageDimensions(ClientPtr);
-static int SProcXpSetImageResolution(ClientPtr);
-static int SProcXpGetImageResolution(ClientPtr);
-
-static void SendXpNotify(XpContextPtr, int, int);
-static void SendAttributeNotify(XpContextPtr, int);
-static int XpFreeClient(pointer, XID);
-static int XpFreeContext(pointer, XID);
-static int XpFreePage(pointer, XID);
-static Bool XpCloseScreen(int, ScreenPtr);
-static CARD32 GetAllEventMasks(XpContextPtr);
-static struct _XpClient *CreateXpClient(ClientPtr);
-static void InitContextPrivates(XpContextPtr);
-static void ResetContextPrivates(void);
-static struct _XpClient *FindClient(XpContextPtr, ClientPtr);
-static struct _XpClient *AcquireClient(XpContextPtr, ClientPtr);
-
-typedef struct _driver {
-    struct _driver *next;
-    char *name;
-    int (* CreateContext)(XpContextPtr);
-} XpDriverRec, *XpDriverPtr;
-
-typedef struct  _xpScreen {
-    Bool (* CloseScreen)(int, ScreenPtr);
-    struct _driver *drivers;
-} XpScreenRec, *XpScreenPtr;
-
-/*
- * Each context has a list of XpClients indicating which clients have
- * associated this context with their connection.
- * Each such client has a RTclient resource allocated for it,
- * and this per-client
- * resource is used to delete the XpClientRec if/when the client closes
- * its connection.
- * The list of XpClients is also walked if/when the context is destroyed
- * so that the ContextPtr can be removed from the client's devPrivates.
- */
-typedef struct _XpClient {
-	struct _XpClient *pNext;
-	ClientPtr	client;
-	XpContextPtr	context;
-	CARD32		eventMask;
-	XID		contextClientID; /* unneeded sanity check? */
-} XpClientRec, *XpClientPtr;
-
-static void FreeXpClient(XpClientPtr, Bool);
-
-/*
- * Each StartPage request specifies a window which forms the top level
- * window of the page.  One of the following structs is created as a
- * RTpage resource with the same ID as the window itself.  This enables 
- * us to clean up when/if the window is destroyed, and to prevent the
- * same window from being simultaneously referenced in multiple contexts.
- * The page resource is created at the first StartPage on a given window,
- * and is only destroyed when/if the window is destroyed.  When the
- * EndPage is recieved (or an EndDoc or EndJob) the context field is
- * set to NULL, but the resource remains alive.
- */
-typedef struct _XpPage {
-	XpContextPtr	context;
-} XpPageRec, *XpPagePtr;
-
-typedef struct _XpStPageRec {
-    XpContextPtr pContext;
-    Bool slept;
-    XpPagePtr pPage;
-    WindowPtr pWin;
-} XpStPageRec, *XpStPagePtr;
-
-typedef struct _XpStDocRec {
-    XpContextPtr pContext;
-    Bool slept;
-    CARD8 type;
-} XpStDocRec, *XpStDocPtr;
-
-#define QUADPAD(x) ((((x)+3)>>2)<<2)
-
-/*
- * Possible bit-mask values in the "state" field of a XpContextRec.
- */
-#define JOB_STARTED (1 << 0)
-#define DOC_RAW_STARTED (1 << 1)
-#define DOC_COOKED_STARTED (1 << 2)
-#define PAGE_STARTED (1 << 3)
-#define GET_DOC_DATA_STARTED (1 << 4)
-#define JOB_GET_DATA (1 << 5)
-    
-static XpScreenPtr XpScreens[MAXSCREENS];
-static unsigned char XpReqCode;
-static int XpEventBase;
-static int XpErrorBase;
-static unsigned long XpGeneration = 0;
-static int XpClientPrivateIndex;
-
-/* Variables for the context private machinery. 
- * These must be initialized at compile time because
- * main() calls InitOutput before InitExtensions, and the
- * output drivers are likely to call AllocateContextPrivate.
- * These variables are reset at CloseScreen time.  CloseScreen
- * is used because it occurs after FreeAllResources, and before
- * the next InitOutput cycle.
- */
-static int  contextPrivateCount = 0;
-static int contextPrivateLen = 0;
-static unsigned *contextPrivateSizes = (unsigned *)NULL;
-static unsigned totalContextSize = sizeof(XpContextRec);
-
-/*
- * There are three types of resources involved.  One is the resource associated
- * with the context itself, with an ID specified by a printing client.  The
- * next is a resource created by us on the client's behalf (and unknown to
- * the client) when a client inits or sets a context which allows us to 
- * track each client's interest in events
- * on a particular context, and also allows us to clean up this interest
- * record when/if the client's connection is closed.  Finally, there is
- * a resource created for each window that's specified in a StartPage.  This
- * resource carries the same ID as the window itself, and enables us to
- * easily prevent the same window being referenced in multiple contexts
- * simultaneously, and enables us to clean up if the window is destroyed
- * before the EndPage.
- */
-static RESTYPE RTclient, RTcontext, RTpage;
-
-/*
- * allEvents is the OR of all the legal event mask bits.
- */
-static CARD32 allEvents = XPPrintMask | XPAttributeMask;
-
-
-/*******************************************************************************
- *
- * ExtensionInit, Driver Init functions, QueryVersion, and Dispatch procs
- *
- ******************************************************************************/
-
-/*
- * XpExtensionInit
- *
- * Called from InitExtensions in main() usually through miinitextension
- *
- */
-
-void
-XpExtensionInit(INITARGS)
-{
-    ExtensionEntry *extEntry;
-    int i;
-
-    RTclient = CreateNewResourceType(XpFreeClient);
-    RTcontext = CreateNewResourceType(XpFreeContext);
-    RTpage = CreateNewResourceType(XpFreePage);
-    if (RTclient && RTcontext && RTpage &&
-        (extEntry = AddExtension(XP_PRINTNAME, XP_EVENTS, XP_ERRORS,
-                               ProcXpDispatch, ProcXpSwappedDispatch,
-                               XpResetProc, StandardMinorOpcode)))
-    {
-        XpReqCode = (unsigned char)extEntry->base;
-        XpEventBase = extEntry->eventBase;
-        XpErrorBase = extEntry->errorBase;
-        EventSwapVector[XpEventBase] = (EventSwapPtr) SwapXpNotifyEvent;
-        EventSwapVector[XpEventBase+1] = (EventSwapPtr) SwapXpAttributeEvent;
-    }
-
-    if(XpGeneration != serverGeneration)
-    {
-	XpClientPrivateIndex = AllocateClientPrivateIndex();
-	/*
-	 * We allocate 0 length & simply stuff a pointer to the
-	 * ContextRec in the DevUnion.
-	 */
-	if(AllocateClientPrivate(XpClientPrivateIndex, 0) != TRUE)
-	{
-		/* we can't alloc a client private, should we bail??? XXX */
-	}
-	XpGeneration = serverGeneration;
-    }
-
-    for(i = 0; i < MAXSCREENS; i++)
-    {
-	/*
-	 * If a screen has registered with our extension, then we
-	 * wrap the screen's CloseScreen function to allow us to
-	 * reset our ContextPrivate stuff.  Note that this
-	 * requires a printing DDX to call XpRegisterInitFunc
-	 * _before_ this extension is initialized - i.e. at screen init
-	 * time, _not_ at root window creation time.
-	 */
-	if(XpScreens[i] != (XpScreenPtr)NULL)
-	{
-	    XpScreens[i]->CloseScreen = screenInfo.screens[i]->CloseScreen;
-	    screenInfo.screens[i]->CloseScreen = XpCloseScreen;
-	}
-    }
-    DeclareExtensionSecurity(XP_PRINTNAME, TRUE);
-}
-
-static void
-XpResetProc(ExtensionEntry *extEntry)
-{
-    /*
-     * We can't free up the XpScreens recs here, because extensions are
-     * closed before screens, and our CloseScreen function uses the XpScreens
-     * recs.
-
-    int i;
-
-    for(i = 0; i < MAXSCREENS; i++)
-    {
-	if(XpScreens[i] != (XpScreenPtr)NULL)
-	    Xfree(XpScreens[i]);
-	XpScreens[i] = (XpScreenPtr)NULL;
-    }
-    */
-}
-
-static Bool
-XpCloseScreen(int index, ScreenPtr pScreen)
-{
-    Bool (* CloseScreen)(int, ScreenPtr);
-
-    CloseScreen = XpScreens[index]->CloseScreen;
-    if(XpScreens[index] != (XpScreenPtr)NULL)
-    {
-	XpDriverPtr pDriv, nextDriv;
-
-	pDriv = XpScreens[index]->drivers;
-	while(pDriv != (XpDriverPtr)NULL)
-	{
-	    nextDriv = pDriv->next;
-            Xfree(pDriv);
-	    pDriv = nextDriv;
-	}
-	Xfree(XpScreens[index]);
-    }
-    XpScreens[index] = (XpScreenPtr)NULL;
-
-    /*
-     * It's wasteful to call ResetContextPrivates() at every CloseScreen, 
-     * but it's the best we know how to do for now.  We do this because we
-     * have to wait until after all resources have been freed (so we know
-     * how to free the ContextRecs), and before the next InitOutput cycle.
-     * See dix/main.c for the order of initialization and reset.
-     */
-    ResetContextPrivates();
-    return (*CloseScreen)(index, pScreen);
-}
-
-#if 0 /* NOT USED */
-static void
-FreeScreenEntry(XpScreenPtr pScreenEntry)
-{
-    XpDriverPtr pDriver;
-
-    pDriver = pScreenEntry->drivers; 
-    while(pDriver != (XpDriverPtr)NULL)
-    {
-	XpDriverPtr tmp;
-
-	tmp = pDriver->next;
-	xfree(pDriver);
-	pDriver = tmp;
-    }
-    xfree(pScreenEntry);
-}
-#endif
-
-/*
- * XpRegisterInitFunc tells the print extension which screens
- * are printers as opposed to displays, and what drivers are
- * supported on each screen.  This eliminates the need of
- * allocating print-related private structures on windows on _all_ screens.
- * It also hands the extension a pointer to the routine to be called
- * whenever a context gets created for a particular driver on this screen.
- */
-void
-XpRegisterInitFunc(ScreenPtr pScreen, char *driverName, int (*initContext)(struct _XpContext *))
-{
-    XpDriverPtr pDriver;
-
-    if(XpScreens[pScreen->myNum] == 0)
-    {
-        if((XpScreens[pScreen->myNum] =
-           (XpScreenPtr) Xalloc(sizeof(XpScreenRec))) == 0)
-            return;
-	XpScreens[pScreen->myNum]->CloseScreen = 0;
-	XpScreens[pScreen->myNum]->drivers = 0;
-    }
-
-    if((pDriver = (XpDriverPtr)Xalloc(sizeof(XpDriverRec))) == 0)
-	return;
-    pDriver->next = XpScreens[pScreen->myNum]->drivers;
-    pDriver->name = driverName;
-    pDriver->CreateContext = initContext;
-    XpScreens[pScreen->myNum]->drivers = pDriver;
-}
-
-static int 
-ProcXpDispatch(ClientPtr client)
-{
-    REQUEST(xReq);
-
-    switch(stuff->data)
-    {
-	case X_PrintQueryVersion:
-            return ProcXpQueryVersion(client);
-	case X_PrintGetPrinterList:
-	    return ProcXpGetPrinterList(client);
-	case X_PrintCreateContext:
-	    return ProcXpCreateContext(client);
-	case X_PrintSetContext:
-	    return ProcXpSetContext(client);
-	case X_PrintGetContext:
-	    return ProcXpGetContext(client);
-	case X_PrintDestroyContext:
-	    return ProcXpDestroyContext(client);
-	case X_PrintGetContextScreen:
-	    return ProcXpGetContextScreen(client);
-	case X_PrintStartJob:
-            return ProcXpStartJob(client);
-	case X_PrintEndJob:
-            return ProcXpEndJob(client);
-	case X_PrintStartDoc:
-            return ProcXpStartDoc(client);
-	case X_PrintEndDoc:
-            return ProcXpEndDoc(client);
-	case X_PrintStartPage:
-            return ProcXpStartPage(client);
-	case X_PrintEndPage:
-            return ProcXpEndPage(client);
-	case X_PrintSelectInput:
-            return ProcXpSelectInput(client);
-	case X_PrintInputSelected:
-            return ProcXpInputSelected(client);
-	case X_PrintPutDocumentData:
-            return ProcXpPutDocumentData(client);
-	case X_PrintGetDocumentData:
-            return ProcXpGetDocumentData(client);
-	case X_PrintSetAttributes:
-	    return ProcXpSetAttributes(client);
-	case X_PrintGetAttributes:
-	    return ProcXpGetAttributes(client);
-	case X_PrintGetOneAttribute:
-	    return ProcXpGetOneAttribute(client);
-	case X_PrintRehashPrinterList:
-	    return ProcXpRehashPrinterList(client);
-	case X_PrintQueryScreens:
-            return ProcXpQueryScreens(client);
-	case X_PrintGetPageDimensions:
-            return ProcXpGetPageDimensions(client);
-	case X_PrintSetImageResolution:
-            return ProcXpSetImageResolution(client);
-	case X_PrintGetImageResolution:
-            return ProcXpGetImageResolution(client);
-	default:
-	    return BadRequest;
-    }
-}
-
-static int 
-ProcXpSwappedDispatch(ClientPtr client)
-{
-    int temp;
-    REQUEST(xReq);
-
-    switch(stuff->data)
-    {
-	case X_PrintQueryVersion:
-	    swaps(&stuff->length, temp);
-            return ProcXpQueryVersion(client);
-	case X_PrintGetPrinterList:
-	    return SProcXpGetPrinterList(client);
-	case X_PrintCreateContext:
-	    return SProcXpCreateContext(client);
-	case X_PrintSetContext:
-	    return SProcXpSetContext(client);
-	case X_PrintGetContext:
-	    return SProcXpGetContext(client);
-	case X_PrintDestroyContext:
-	    return SProcXpDestroyContext(client);
-	case X_PrintGetContextScreen:
-	    return SProcXpGetContextScreen(client);
-	case X_PrintStartJob:
-            return SProcXpStartJob(client);
-	case X_PrintEndJob:
-            return SProcXpEndJob(client);
-	case X_PrintStartDoc:
-            return SProcXpStartDoc(client);
-	case X_PrintEndDoc:
-            return SProcXpEndDoc(client);
-	case X_PrintStartPage:
-            return SProcXpStartPage(client);
-	case X_PrintEndPage:
-            return SProcXpEndPage(client);
-	case X_PrintSelectInput:
-	    return SProcXpSelectInput(client);
-	case X_PrintInputSelected:
-	    return SProcXpInputSelected(client);
-	case X_PrintPutDocumentData:
-            return SProcXpPutDocumentData(client);
-	case X_PrintGetDocumentData:
-            return SProcXpGetDocumentData(client);
-	case X_PrintSetAttributes:
-	    return SProcXpSetAttributes(client);
-	case X_PrintGetAttributes:
-	    return SProcXpGetAttributes(client);
-	case X_PrintGetOneAttribute:
-	    return SProcXpGetOneAttribute(client);
-	case X_PrintRehashPrinterList:
-	    return SProcXpRehashPrinterList(client);
-	case X_PrintQueryScreens:
-	    swaps(&stuff->length, temp);
-            return ProcXpQueryScreens(client);
-	case X_PrintGetPageDimensions:
-            return SProcXpGetPageDimensions(client);
-	case X_PrintSetImageResolution:
-            return SProcXpSetImageResolution(client);
-	case X_PrintGetImageResolution:
-            return SProcXpGetImageResolution(client);
-	default:
-	    return BadRequest;
-    }
-}
-
-static int
-ProcXpQueryVersion(ClientPtr client)
-{
-    /* REQUEST(xPrintQueryVersionReq); */
-    xPrintQueryVersionReply rep;
-    register int n;
-    long l;
-
-    REQUEST_SIZE_MATCH(xPrintQueryVersionReq);
-    rep.type = X_Reply;
-    rep.length = 0;
-    rep.sequenceNumber = client->sequence;
-    rep.majorVersion = XP_MAJOR_VERSION;
-    rep.minorVersion = XP_MINOR_VERSION;
-    if (client->swapped) {
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swaps(&rep.majorVersion, n);
-        swaps(&rep.minorVersion, n);
-    }
-    WriteToClient(client, sz_xPrintQueryVersionReply, (char *)&rep);
-    return client->noClientException;
-}
-
-/*******************************************************************************
- *
- * GetPrinterList : Return a list of all printers associated with this
- *                  server.  Calls XpDiGetPrinterList, which is defined in
- *		    the device-independent code in Xserver/Xprint.
- *
- ******************************************************************************/
-
-static int
-ProcXpGetPrinterList(ClientPtr client)
-{
-    REQUEST(xPrintGetPrinterListReq);
-    int totalSize;
-    int numEntries;
-    XpDiListEntry **pList;
-    xPrintGetPrinterListReply *rep;
-    int n, i, totalBytes;
-    long l;
-    char *curByte;
-
-    REQUEST_AT_LEAST_SIZE(xPrintGetPrinterListReq);
-
-    totalSize = ((sz_xPrintGetPrinterListReq) >> 2) +
-                ((stuff->printerNameLen + 3) >> 2) +
-                ((stuff->localeLen + 3) >> 2);
-    if(totalSize != client->req_len)
-	 return BadLength;
-
-    pList = XpDiGetPrinterList(stuff->printerNameLen, (char *)(stuff + 1), 
-			       stuff->localeLen, (char *)((stuff + 1) + 
-			       QUADPAD(stuff->printerNameLen)));
-
-    for(numEntries = 0, totalBytes = sz_xPrintGetPrinterListReply;
-	pList[numEntries] != (XpDiListEntry *)NULL;
-	numEntries++)
-    {
-	totalBytes += 2 * sizeof(CARD32); 
-	totalBytes += QUADPAD(strlen(pList[numEntries]->name));
-	totalBytes += QUADPAD(strlen(pList[numEntries]->description));
-    }
-
-    if((rep = (xPrintGetPrinterListReply *)xalloc(totalBytes)) == 
-       (xPrintGetPrinterListReply *)NULL)
-	return BadAlloc;
-
-    rep->type = X_Reply;
-    rep->length = (totalBytes - sz_xPrintGetPrinterListReply) >> 2;
-    rep->sequenceNumber = client->sequence;
-    rep->listCount = numEntries;
-    if (client->swapped) {
-        swaps(&rep->sequenceNumber, n);
-        swapl(&rep->length, l);
-        swapl(&rep->listCount, l);
-    }
-
-    for(i = 0, curByte = (char *)(rep + 1); i < numEntries; i++)
-    {
-	CARD32 *pCrd;
-	int len;
-
-	pCrd = (CARD32 *)curByte;
-	len = strlen(pList[i]->name);
-	*pCrd = len;
-        if (client->swapped)
-            swapl((long *)curByte, l);
-	curByte += sizeof(CARD32);
-	strncpy(curByte, pList[i]->name, len);
-	curByte += QUADPAD(len);
-
-	pCrd = (CARD32 *)curByte;
-	len = strlen(pList[i]->description);
-	*pCrd = len;
-        if (client->swapped)
-            swapl((long *)curByte, l);
-	curByte += sizeof(CARD32);
-	strncpy(curByte, pList[i]->description, len);
-	curByte += QUADPAD(len);
-    }
-
-    XpDiFreePrinterList(pList);
-
-    WriteToClient(client, totalBytes, (char *)rep);
-    xfree(rep);
-    return client->noClientException;
-}
-
-/*******************************************************************************
- *
- * QueryScreens: Returns the list of screens which are associated with
- *               print drivers.
- *
- ******************************************************************************/
-
-static int
-ProcXpQueryScreens(ClientPtr client)
-{
-    /* REQUEST(xPrintQueryScreensReq); */
-    int i, numPrintScreens, totalSize;
-    WINDOW *pWinId;
-    xPrintQueryScreensReply *rep;
-    long l;
-
-    REQUEST_SIZE_MATCH(xPrintQueryScreensReq);
-
-    rep = (xPrintQueryScreensReply *)xalloc(sz_xPrintQueryScreensReply);
-    pWinId = (WINDOW *)(rep + 1);
-
-    for(i = 0, numPrintScreens = 0, totalSize = sz_xPrintQueryScreensReply; 
-	i < MAXSCREENS; i++)
-    {
-	/*
-	 * If a screen has registered with our extension, then it's
-	 * a printer screen.
-	 */
-	if(XpScreens[i] != (XpScreenPtr)NULL)
-	{
-	    numPrintScreens++;
-	    totalSize += sizeof(WINDOW);
-	    rep = (xPrintQueryScreensReply *)xrealloc(rep, totalSize);
-	    /* fix of bug: pWinId should be set again after reallocate rep */
-	    pWinId = (WINDOW *)(rep + 1);
-	    *pWinId = WindowTable[i]->drawable.id;
-            if (client->swapped)
-                swapl((long *)pWinId, l);
-	}
-    }
-
-    rep->type = X_Reply;
-    rep->sequenceNumber = client->sequence;
-    rep->length = (totalSize - sz_xPrintQueryScreensReply) >> 2;
-    rep->listCount = numPrintScreens;
-    if (client->swapped)
-    {
-	int n;
-
-        swaps(&rep->sequenceNumber, n);
-        swapl(&rep->length, l);
-        swapl(&rep->listCount, l);
-    }
-
-    WriteToClient(client, totalSize, (char *)rep);
-    xfree(rep);
-    return client->noClientException;
-}
-
-static int 
-ProcXpGetPageDimensions(ClientPtr client)
-{
-    REQUEST(xPrintGetPageDimensionsReq);
-    CARD16 width, height;
-    xRectangle rect;
-    xPrintGetPageDimensionsReply rep;
-    XpContextPtr pContext;
-    int result;
-
-    REQUEST_SIZE_MATCH(xPrintGetPageDimensionsReq);
-
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityReadAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    if((pContext->funcs.GetMediumDimensions == 0) ||
-       (pContext->funcs.GetReproducibleArea == 0))
-        return BadImplementation;
-
-    result = pContext->funcs.GetMediumDimensions(pContext, &width, &height);
-    if(result != Success)
-        return result;
-
-        result = pContext->funcs.GetReproducibleArea(pContext, &rect);
-    if(result != Success)
-        return result;
-
-    rep.type = X_Reply;
-    rep.sequenceNumber = client->sequence;
-    rep.length = 0;
-    rep.width = width;
-    rep.height = height;
-    rep.rx = rect.x;
-    rep.ry = rect.y;
-    rep.rwidth = rect.width;
-    rep.rheight = rect.height;
-
-    if(client->swapped)
-    {
-	int n;
-	long l;
-
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swaps(&rep.width, n);
-        swaps(&rep.height, n);
-        swaps(&rep.rx, n);
-        swaps(&rep.ry, n);
-        swaps(&rep.rwidth, n);
-        swaps(&rep.rheight, n);
-    }
-
-    WriteToClient(client, sz_xPrintGetPageDimensionsReply, (char *)&rep);
-    return client->noClientException;
-}
-
-static int 
-ProcXpSetImageResolution(ClientPtr client)
-{
-    REQUEST(xPrintSetImageResolutionReq);
-    xPrintSetImageResolutionReply rep;
-    XpContextPtr pContext;
-    Bool status;
-    int result;
-
-    REQUEST_SIZE_MATCH(xPrintSetImageResolutionReq);
-
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityWriteAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    rep.prevRes = pContext->imageRes;
-    if(pContext->funcs.SetImageResolution != 0) {
-        result = pContext->funcs.SetImageResolution(pContext,
-						    (int)stuff->imageRes,
-						    &status);
-	if(result != Success)
-	    status = FALSE;
-    } else
-        status = FALSE;
-
-    rep.type = X_Reply;
-    rep.sequenceNumber = client->sequence;
-    rep.length = 0;
-    rep.status = status;
-
-    if(client->swapped)
-    {
-	int n;
-	long l;
-
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swaps(&rep.prevRes, n);
-    }
-
-    WriteToClient(client, sz_xPrintSetImageResolutionReply, (char *)&rep);
-    return client->noClientException;
-}
-
-static int 
-ProcXpGetImageResolution(ClientPtr client)
-{
-    REQUEST(xPrintGetImageResolutionReq);
-    xPrintGetImageResolutionReply rep;
-    XpContextPtr pContext;
-
-    REQUEST_SIZE_MATCH(xPrintGetImageResolutionReq);
-
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityReadAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    rep.type = X_Reply;
-    rep.sequenceNumber = client->sequence;
-    rep.length = 0;
-    rep.imageRes = pContext->imageRes;
-
-    if(client->swapped)
-    {
-	int n;
-	long l;
-
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swaps(&rep.imageRes, n);
-    }
-
-    WriteToClient(client, sz_xPrintGetImageResolutionReply, (char *)&rep);
-    return client->noClientException;
-}
-
-/*******************************************************************************
- *
- * RehashPrinterList : Cause the server's list of printers to be rebuilt.
- *                     This allows new printers to be added, or old ones
- *		       deleted without needing to restart the server.
- *
- ******************************************************************************/
-
-static int
-ProcXpRehashPrinterList(ClientPtr client)
-{
-    /* REQUEST(xPrintRehashPrinterListReq); */
-
-    REQUEST_SIZE_MATCH(xPrintRehashPrinterListReq);
-
-    return XpRehashPrinterList();
-}
-
-/******************************************************************************
- *
- * Context functions: Init, Set, Destroy, FreeContext
- *			AllocateContextPrivateIndex, AllocateContextPrivate
- *			and supporting functions.
- *
- *     Init creates a context, creates a XpClientRec for the calling
- *     client, and stores the contextPtr in the client's devPrivates.
- *
- *     Set creates a XpClientRec for the calling client, and stores the
- *     contextPtr in the client's devPrivates unless the context is None.
- *     If the context is None, then the client's connection association
- *     with any context is removed.
- *
- *     Destroy frees any and all XpClientRecs associated with the context,
- *     frees the context itself, and removes the contextPtr from any
- *     relevant client devPrivates.
- *
- *     FreeContext is called by FreeResource to free up a context.
- *
- ******************************************************************************/
-
-/*
- * CreateContext creates and initializes the memory for the context itself.
- * The driver's CreateContext function
- * is then called.
- */
-static int
-ProcXpCreateContext(ClientPtr client)
-{
-    REQUEST(xPrintCreateContextReq);
-    XpScreenPtr pPrintScreen;
-    WindowPtr pRoot;
-    char *driverName;
-    XpContextPtr pContext;
-    int result = Success;
-    XpDriverPtr pDriver;
-
-    REQUEST_AT_LEAST_SIZE(xPrintCreateContextReq);
-
-    LEGAL_NEW_RESOURCE(stuff->contextID, client);
-
-    /*
-     * Check to see if the printer name is valid.
-     */
-    if((pRoot = XpDiValidatePrinter((char *)(stuff + 1), stuff->printerNameLen)) == 
-       (WindowPtr)NULL)
-	return BadMatch;
-
-    pPrintScreen = XpScreens[pRoot->drawable.pScreen->myNum];
-
-    /*
-     * Allocate and add the context resource.
-     */
-    if((pContext = (XpContextPtr) xalloc(totalContextSize)) == 
-       (XpContextPtr) NULL)
-	return BadAlloc;
-
-    InitContextPrivates(pContext);
-
-    if(AddResource(stuff->contextID, RTcontext, (pointer) pContext)
-       != TRUE)
-    {
-       xfree(pContext);
-       return BadAlloc;
-    }
-
-    pContext->contextID = stuff->contextID;
-    pContext->clientHead = (XpClientPtr)NULL;
-    pContext->screenNum = pRoot->drawable.pScreen->myNum;
-    pContext->state = 0;
-    pContext->clientSlept = (ClientPtr)NULL;
-    pContext->imageRes = 0;
-
-    pContext->funcs.DestroyContext = 0;
-    pContext->funcs.StartJob = 0;
-    pContext->funcs.EndJob = 0;
-    pContext->funcs.StartDoc = 0;
-    pContext->funcs.EndDoc = 0;
-    pContext->funcs.StartPage = 0;
-    pContext->funcs.EndPage = 0;
-    pContext->funcs.PutDocumentData = 0;
-    pContext->funcs.GetDocumentData = 0;
-    pContext->funcs.GetAttributes = 0;
-    pContext->funcs.GetOneAttribute = 0;
-    pContext->funcs.SetAttributes = 0;
-    pContext->funcs.AugmentAttributes = 0;
-    pContext->funcs.GetMediumDimensions = 0;
-    pContext->funcs.GetReproducibleArea = 0;
-    pContext->funcs.SetImageResolution = 0;
-
-    if((pContext->printerName = (char *)xalloc(stuff->printerNameLen + 1)) == 
-       (char *)NULL)
-    {
-	/* Freeing the context also causes the XpClients to be freed. */
-	FreeResource(stuff->contextID, RT_NONE);
-	return BadAlloc;
-    }
-    strncpy(pContext->printerName, (char *)(stuff + 1), stuff->printerNameLen);
-    pContext->printerName[stuff->printerNameLen] = (char)'\0';
-
-    driverName = XpDiGetDriverName(pRoot->drawable.pScreen->myNum, 
-				   pContext->printerName);
-    
-    for(pDriver = pPrintScreen->drivers; 
-	pDriver != (XpDriverPtr)NULL;
-	pDriver = pDriver->next)
-    {
-	if(!strcmp(driverName, pDriver->name))
-	{
-	    if(pDriver->CreateContext != 0)
-	        pDriver->CreateContext(pContext);
-	    else
-	        return BadImplementation;
-	    break;
-	}
-    }
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-	return result;
-}
-
-/*
- * SetContext creates the calling client's contextClient resource,
- * and stashes the contextID in the client's devPrivate.
- */
-static int
-ProcXpSetContext(ClientPtr client)
-{
-    REQUEST(xPrintSetContextReq);
-
-    XpContextPtr pContext;
-    XpClientPtr pPrintClient;
-    int result = Success;
-
-    REQUEST_AT_LEAST_SIZE(xPrintSetContextReq);
-
-    if((pContext = client->devPrivates[XpClientPrivateIndex].ptr) != 
-       (pointer)NULL)
-    {
-	/*
-	 * Erase this client's knowledge of its old context, if any.
-	 */
-        if((pPrintClient = FindClient(pContext, client)) != (XpClientPtr)NULL)
-        {
-	    XpUnsetFontResFunc(client);
-	    
-	    if(pPrintClient->eventMask == 0)
-		FreeXpClient(pPrintClient, TRUE);
-        }
-
-        client->devPrivates[XpClientPrivateIndex].ptr = (pointer)NULL;
-    }
-    if(stuff->printContext == None)
-        return Success;
-
-    /*
-     * Check to see that the supplied XID is really a valid print context
-     * in this server.
-     */
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityWriteAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    if((pPrintClient = AcquireClient(pContext, client)) == (XpClientPtr)NULL)
-        return BadAlloc;
-
-    client->devPrivates[XpClientPrivateIndex].ptr = pContext;
-
-    XpSetFontResFunc(client);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-	return result;
-}
-
-XpContextPtr
-XpGetPrintContext(ClientPtr client)
-{
-    return (client->devPrivates[XpClientPrivateIndex].ptr);
-}
-
-static int
-ProcXpGetContext(ClientPtr client)
-{
-    /* REQUEST(xPrintGetContextReq); */
-    xPrintGetContextReply rep;
-
-    XpContextPtr pContext;
-    register int n;
-    register long l;
-
-    REQUEST_SIZE_MATCH(xPrintGetContextReq);
-
-    if((pContext = client->devPrivates[XpClientPrivateIndex].ptr) == 
-       (pointer)NULL)
-	rep.printContext = None;
-    else
-        rep.printContext = pContext->contextID;
-    rep.type = X_Reply;
-    rep.length = 0;
-    rep.sequenceNumber = client->sequence;
-    if (client->swapped) {
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swapl(&rep.printContext, l);
-    }
-    WriteToClient(client, sz_xPrintGetContextReply, (char *)&rep);
-    return client->noClientException;
-}
-
-
-/*
- * DestroyContext frees the context associated with the calling client.
- * It operates by freeing the context resource ID, thus causing XpFreeContext
- * to be called.
- */
-static int
-ProcXpDestroyContext(ClientPtr client)
-{
-    REQUEST(xPrintDestroyContextReq);
-
-    XpContextPtr pContext;
-
-    REQUEST_SIZE_MATCH(xPrintDestroyContextReq);
-
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityDestroyAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    XpUnsetFontResFunc(client);
-	    
-    FreeResource(pContext->contextID, RT_NONE);
-
-    return Success;
-}
-
-static int
-ProcXpGetContextScreen(ClientPtr client)
-{
-    REQUEST(xPrintGetContextScreenReq);
-    xPrintGetContextScreenReply rep;
-    XpContextPtr pContext;
-    int n;
-    long l;
-
-    if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
-						       stuff->printContext,
-						       RTcontext,
-						       SecurityReadAccess))
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadContext;
-    
-    rep.type = X_Reply;
-    rep.sequenceNumber = client->sequence;
-    rep.length = 0;
-    rep.rootWindow = WindowTable[pContext->screenNum]->drawable.id;
-
-    if (client->swapped) {
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swapl(&rep.rootWindow, l);
-    }
-
-    WriteToClient(client, sz_xPrintGetContextScreenReply, (char *)&rep);
-    return client->noClientException;
-}
-
-/*
- * XpFreeContext is the routine called by dix:FreeResource when a context
- * resource ID is freed.
- * It checks to see if there's a partial job pending on the context, and
- * if so it calls the appropriate End procs with the cancel flag set.
- * It calls the driver's DestroyContext routine to allow the driver to clean
- * up any context-related memory or state.
- * It calls FreeXpClient to free all the 
- * associated XpClientRecs and to set all the client->devPrivates to NULL.
- * It frees the printer name string, and frees the context
- * itself.
- */
-static int
-XpFreeContext(pointer data, XID id)
-{
-    XpContextPtr pContext = (XpContextPtr)data;
-
-    /* Clean up any pending job on this context */
-    if(pContext->state != 0)
-    {
-	if(pContext->state & PAGE_STARTED)
-	{
-	    WindowPtr pWin = (WindowPtr )LookupIDByType(
-				       pContext->pageWin, RT_WINDOW);
-	    XpPagePtr pPage = (XpPagePtr)LookupIDByType(
-				       pContext->pageWin, RTpage);
-
-	    pContext->funcs.EndPage(pContext, pWin);
-	    SendXpNotify(pContext, XPEndPageNotify, TRUE);
-	    pContext->state &= ~PAGE_STARTED;
-	    if(pPage)
-	        pPage->context = (XpContextPtr)NULL;
-	}
-	if((pContext->state & DOC_RAW_STARTED) || 
-	   (pContext->state & DOC_COOKED_STARTED))
-	{
-	    pContext->funcs.EndDoc(pContext, TRUE);
-	    SendXpNotify(pContext, XPEndDocNotify, TRUE);
-	    pContext->state &= ~DOC_RAW_STARTED;
-	    pContext->state &= ~DOC_COOKED_STARTED;
-	}
-	if(pContext->funcs.EndJob != 0)
-	{
-	    pContext->funcs.EndJob(pContext, TRUE);
-	    SendXpNotify(pContext, XPEndJobNotify, TRUE);
-	    pContext->state &= ~JOB_STARTED;
-	    pContext->state &= ~GET_DOC_DATA_STARTED;
-	}
-    }
-
-    /* 
-     * Tell the driver we're destroying the context
-     * This allows the driver to free and ContextPrivate data
-     */
-    if(pContext->funcs.DestroyContext != 0)
-	pContext->funcs.DestroyContext(pContext);
-
-    /* Free up all the XpClientRecs */
-    while(pContext->clientHead != (XpClientPtr)NULL)
-    {
-	FreeXpClient(pContext->clientHead, TRUE);
-    }
-
-    xfree(pContext->printerName);
-    xfree(pContext);
-    return Success; /* ??? */
-}
-
-/*
- * XpFreeClient is the routine called by dix:FreeResource when a RTclient
- * is freed.  It simply calls the FreeXpClient routine to do the work.
- */
-static int
-XpFreeClient(pointer data, XID id)
-{
-    FreeXpClient((XpClientPtr)data, TRUE);
-    return Success;
-}
-
-/*
- * FreeXpClient 
- * frees the ClientRec passed in, and sets the client->devPrivates to NULL
- * if the client->devPrivates points to the same context as the XpClient.
- * Called from XpFreeContext(from FreeResource), and 
- * XpFreeClient.  The boolean freeResource specifies whether or not to call
- * FreeResource for the XpClientRec's XID.  We should free it except if we're
- * called from XpFreeClient (which is itself called from FreeResource for the
- * XpClientRec's XID).
- */
-static void
-FreeXpClient(XpClientPtr pXpClient, Bool freeResource)
-{
-    XpClientPtr pCurrent, pPrev;
-    XpContextPtr pContext = pXpClient->context;
-
-    /*
-     * If we're freeing the clientRec associated with the context tied
-     * to the client's devPrivates, then we need to clear the devPrivates.
-     */
-    if(pXpClient->client->devPrivates[XpClientPrivateIndex].ptr == 
-       pXpClient->context)
-    {
-        pXpClient->client->devPrivates[XpClientPrivateIndex].ptr = 
-					(pointer)NULL;
-    }
-
-    for(pPrev = (XpClientPtr)NULL, pCurrent = pContext->clientHead; 
-	pCurrent != (XpClientPtr)NULL; 
-	pCurrent = pCurrent->pNext)
-    {
-	if(pCurrent == pXpClient)
-	{
-	    if(freeResource == TRUE)
-                FreeResource (pCurrent->contextClientID, RTclient);
-
-            if (pPrev != (XpClientPtr)NULL)
-                pPrev->pNext = pCurrent->pNext;
-            else
-                pContext->clientHead = pCurrent->pNext;
-
-            xfree (pCurrent);
-	    break;
-	}
-	pPrev = pCurrent;
-    }
-}
-
-/*
- * CreateXpClient takes a ClientPtr and returns a pointer to a
- * XpClientRec which it allocates.  It also initializes the Rec,
- * including adding a resource on behalf of the client to enable the
- * freeing of the Rec when the client's connection is closed.
- */
-static XpClientPtr
-CreateXpClient(ClientPtr client)
-{
-    XpClientPtr pNewPrintClient;
-    XID clientResource;
-
-    if((pNewPrintClient = (XpClientPtr)xalloc(sizeof(XpClientRec))) ==
-      (XpClientPtr)NULL)
-        return (XpClientPtr)NULL;
-
-    clientResource = FakeClientID(client->index);
-    if(!AddResource(clientResource, RTclient, (pointer)pNewPrintClient))
-    {
-        xfree (pNewPrintClient);
-        return (XpClientPtr)NULL;
-    }
-
-    pNewPrintClient->pNext = (XpClientPtr)NULL;
-    pNewPrintClient->client = client;
-    pNewPrintClient->context = (XpContextPtr)NULL;
-    pNewPrintClient->eventMask = 0;
-    pNewPrintClient->contextClientID = clientResource;
-
-    return pNewPrintClient;
-}
-
-/*
- * XpFreePage is the routine called by dix:FreeResource to free the page
- * resource built with the same ID as a page window.  It checks to see
- * if we're in the middle of a page, and if so calls the driver's EndPage
- * function with 'cancel' set TRUE.  It frees the memory associated with
- * the page resource.
- */
-static int
-XpFreePage(pointer data, XID id)
-{
-    XpPagePtr page = (XpPagePtr)data;
-    int result = Success;
-    WindowPtr pWin = (WindowPtr )LookupIDByType(id, RT_WINDOW);
-
-    /* Check to see if the window's being deleted in the middle of a page */
-    if(page->context != (XpContextPtr)NULL && 
-       page->context->state & PAGE_STARTED)
-    {
-	if(page->context->funcs.EndPage != 0)
-	    result = page->context->funcs.EndPage(page->context, pWin);
-        SendXpNotify(page->context, XPEndPageNotify, (int)TRUE);
-	page->context->pageWin = 0; /* None, NULL??? XXX */
-    }
-
-    xfree(page);
-    return result;
-}
-
-/*
- * ContextPrivate machinery.
- * Context privates are intended for use by the drivers, allowing the
- * drivers to maintain context-specific data.  The driver should free
- * the associated data at DestroyContext time.
- */
-
-static void
-InitContextPrivates(XpContextPtr context)
-{
-    register char *ptr;
-    DevUnion *ppriv;
-    register unsigned *sizes;
-    register unsigned size;
-    register int i;
-
-    if (totalContextSize == sizeof(XpContextRec))
-        ppriv = (DevUnion *)NULL;
-    else 
-        ppriv = (DevUnion *)(context + 1);
-
-    context->devPrivates = ppriv;
-    sizes = contextPrivateSizes;
-    ptr = (char *)(ppriv + contextPrivateLen);
-    for (i = contextPrivateLen; --i >= 0; ppriv++, sizes++)
-    {
-        if ( (size = *sizes) )
-        {
-            ppriv->ptr = (pointer)ptr;
-            ptr += size;
-        }
-        else
-            ppriv->ptr = (pointer)NULL;
-    }
-}
-
-static void
-ResetContextPrivates(void)
-{
-    contextPrivateCount = 0;
-    contextPrivateLen = 0;
-    xfree(contextPrivateSizes);
-    contextPrivateSizes = (unsigned *)NULL;
-    totalContextSize = sizeof(XpContextRec);
-
-}
-
-int
-XpAllocateContextPrivateIndex(void)
-{
-    return contextPrivateCount++;
-}
-
-Bool
-XpAllocateContextPrivate(int index, unsigned amount)
-{
-    unsigned oldamount;
-
-    if (index >= contextPrivateLen)
-    {
-        unsigned *nsizes;
-        nsizes = (unsigned *)xrealloc(contextPrivateSizes,
-                                      (index + 1) * sizeof(unsigned));
-        if (!nsizes)
-            return FALSE;
-        while (contextPrivateLen <= index)
-        {
-            nsizes[contextPrivateLen++] = 0;
-            totalContextSize += sizeof(DevUnion);
-        }
-        contextPrivateSizes = nsizes;
-    }
-    oldamount = contextPrivateSizes[index];
-    if (amount > oldamount)
-    {
-        contextPrivateSizes[index] = amount;
-        totalContextSize += (amount - oldamount);
-    }
-    return TRUE;
-}
-
-static XpClientPtr
-AcquireClient(XpContextPtr pContext, ClientPtr client)
-{
-    XpClientPtr pXpClient;
-
-    if((pXpClient = FindClient(pContext, client)) != (XpClientPtr)NULL)
-	return pXpClient;
-
-    if((pXpClient = CreateXpClient(client)) == (XpClientPtr)NULL)
-	    return (XpClientPtr)NULL;
-
-    pXpClient->context = pContext;
-    pXpClient->pNext = pContext->clientHead;
-    pContext->clientHead = pXpClient;
-
-    return pXpClient;
-}
-
-static XpClientPtr
-FindClient(XpContextPtr pContext, ClientPtr client)
-{
-    XpClientPtr pXpClient;
-
-    for(pXpClient = pContext->clientHead; pXpClient != (XpClientPtr)NULL;
-	pXpClient = pXpClient->pNext)
-    {
-	if(pXpClient->client == client)  return pXpClient;
-    }
-    return (XpClientPtr)NULL;
-}
-
-
-/******************************************************************************
- *
- * Start/End Functions: StartJob, EndJob, StartDoc, EndDoc, StartPage, EndPage
- *
- ******************************************************************************/
-
-static int
-ProcXpStartJob(ClientPtr client)
-{
-    REQUEST(xPrintStartJobReq);
-    XpContextPtr pContext;
-    int result = Success;
-
-    REQUEST_SIZE_MATCH(xPrintStartJobReq);
-
-    /* Check to see that a context has been established by this client. */
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadContext;
-
-    if(pContext->state != 0)
-	return XpErrorBase+XPBadSequence;
-
-    if(stuff->saveData != XPSpool && stuff->saveData != XPGetData)
-    {
-	client->errorValue = stuff->saveData;
-	return BadValue;
-    }
-
-    if(pContext->funcs.StartJob != 0)
-        result = pContext->funcs.StartJob(pContext, 
-			 (stuff->saveData == XPGetData)? TRUE:FALSE,
-			 client);
-    else
-        return BadImplementation;
-
-    pContext->state = JOB_STARTED;
-    if(stuff->saveData == XPGetData)
-	pContext->state |= JOB_GET_DATA;
-
-    SendXpNotify(pContext, XPStartJobNotify, FALSE);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static int
-ProcXpEndJob(ClientPtr client)
-{
-    REQUEST(xPrintEndJobReq);
-    int result = Success;
-    XpContextPtr pContext;
-
-    REQUEST_SIZE_MATCH(xPrintEndJobReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & JOB_STARTED))
-	return XpErrorBase+XPBadSequence;
-    
-    /* Check for missing EndDoc */
-    if((pContext->state & DOC_RAW_STARTED) || 
-       (pContext->state & DOC_COOKED_STARTED))
-    {
-	if(pContext->state & PAGE_STARTED)
-	{
-	    WindowPtr pWin = (WindowPtr )LookupIDByType(
-					   pContext->pageWin, RT_WINDOW);
-	    XpPagePtr pPage = (XpPagePtr)LookupIDByType(
-				       pContext->pageWin, RTpage);
-
-	    if(stuff->cancel != TRUE)
-	        return XpErrorBase+XPBadSequence;
-
-            if(pContext->funcs.EndPage != 0)
-                result = pContext->funcs.EndPage(pContext, pWin);
-            else
-	        return BadImplementation;
-
-	    SendXpNotify(pContext, XPEndPageNotify, TRUE);
-
-	    pContext->state &= ~PAGE_STARTED;
-
-	    if(pPage)
-	        pPage->context = (XpContextPtr)NULL;
-
-	    if(result != Success) return result;
-	}
-
-        if(pContext->funcs.EndDoc != 0)
-            result = pContext->funcs.EndDoc(pContext, stuff->cancel);
-        else
-	    return BadImplementation;
-
-        SendXpNotify(pContext, XPEndDocNotify, stuff->cancel);
-    }
-
-    if(pContext->funcs.EndJob != 0)
-        result = pContext->funcs.EndJob(pContext, stuff->cancel);
-    else
-	return BadImplementation;
-
-    pContext->state = 0;
-
-    SendXpNotify(pContext, XPEndJobNotify, stuff->cancel);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static Bool
-DoStartDoc(ClientPtr client, XpStDocPtr c)
-{
-    XpContextPtr pContext = c->pContext;
-
-    if(c->pContext->state & JOB_GET_DATA && 
-       !(c->pContext->state & GET_DOC_DATA_STARTED))
-    {
-	if(!c->slept)
-	{
-	    c->slept = TRUE;
-	    ClientSleep(client, (ClientSleepProcPtr)DoStartDoc, (pointer) c);
-	    c->pContext->clientSlept = client;
-	}
-	return TRUE;
-    }
-    
-    if(pContext->funcs.StartDoc != 0)
-        (void) pContext->funcs.StartDoc(pContext, c->type);
-    else
-    {
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			      BadImplementation);
-	    return TRUE;
-    }
-
-    if(c->type == XPDocNormal)
-        pContext->state |= DOC_COOKED_STARTED;
-    else
-	pContext->state |= DOC_RAW_STARTED;
-
-    SendXpNotify(pContext, XPStartDocNotify, (int)FALSE);
-
-    xfree(c);
-    return TRUE;
-}
-
-static int
-ProcXpStartDoc(ClientPtr client)
-{
-    REQUEST(xPrintStartDocReq);
-    int result = Success;
-    XpContextPtr pContext;
-    XpStDocPtr c;
-
-    REQUEST_SIZE_MATCH(xPrintStartDocReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & JOB_STARTED) || 
-       pContext->state & DOC_RAW_STARTED ||
-       pContext->state & DOC_COOKED_STARTED)
-	return XpErrorBase+XPBadSequence;
-
-    if(stuff->type != XPDocNormal && stuff->type != XPDocRaw)
-    {
-	client->errorValue = stuff->type;
-	return BadValue;
-    }
-
-    c = (XpStDocPtr)xalloc(sizeof(XpStDocRec));
-    c->pContext = pContext;
-    c->type = stuff->type;
-    c->slept = FALSE;
-    (void)DoStartDoc(client, c);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static int
-ProcXpEndDoc(ClientPtr client)
-{
-    REQUEST(xPrintEndDocReq);
-    XpContextPtr pContext;
-    int result = Success;
-
-    REQUEST_SIZE_MATCH(xPrintEndDocReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & DOC_RAW_STARTED) &&
-       !(pContext->state & DOC_COOKED_STARTED))
-	return XpErrorBase+XPBadSequence;
-    
-    if(pContext->state & PAGE_STARTED)
-    {
-	if(stuff->cancel == TRUE)
-	{
-	    WindowPtr pWin = (WindowPtr )LookupIDByType(
-					   pContext->pageWin, RT_WINDOW);
-	    XpPagePtr pPage = (XpPagePtr)LookupIDByType(
-				       pContext->pageWin, RTpage);
-
-            if(pContext->funcs.EndPage != 0)
-                result = pContext->funcs.EndPage(pContext, pWin);
-            else
-	        return BadImplementation;
-
-	    SendXpNotify(pContext, XPEndPageNotify, TRUE);
-
-	    if(pPage)
-	        pPage->context = (XpContextPtr)NULL;
-	}
-	else
-	    return XpErrorBase+XPBadSequence;
-	if(result != Success)
-	    return result;
-    }
-
-    if(pContext->funcs.EndDoc != 0)
-        result = pContext->funcs.EndDoc(pContext, stuff->cancel);
-    else
-	return BadImplementation;
-
-    pContext->state &= ~DOC_RAW_STARTED;
-    pContext->state &= ~DOC_COOKED_STARTED;
-
-    SendXpNotify(pContext, XPEndDocNotify, stuff->cancel);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static Bool
-DoStartPage(
-    ClientPtr client,
-    XpStPagePtr c)
-{
-    WindowPtr pWin = c->pWin;
-    int result = Success;
-    XpContextPtr pContext = c->pContext;
-    XpPagePtr pPage;
-
-    if(c->pContext->state & JOB_GET_DATA && 
-       !(c->pContext->state & GET_DOC_DATA_STARTED))
-    {
-	if(!c->slept)
-	{
-	    c->slept = TRUE;
-	    ClientSleep(client, (ClientSleepProcPtr)DoStartPage, (pointer) c);
-	    c->pContext->clientSlept = client;
-	}
-	return TRUE;
-    }
-
-    if(!(pContext->state & DOC_COOKED_STARTED))
-    {
-	/* Implied StartDoc if it was omitted */
-        if(pContext->funcs.StartDoc != 0)
-            result = pContext->funcs.StartDoc(pContext, XPDocNormal);
-        else
-	{
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			      BadImplementation);
-	    return TRUE;
-	}
-
-	if(result != Success) 
-	{
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, result);
-	    return TRUE;
-	}
-
-        pContext->state |= DOC_COOKED_STARTED;
-        SendXpNotify(pContext, XPStartDocNotify, (int)FALSE);
-    }
-
-    /* ensure the window's not already being used as a page */
-    if((pPage = (XpPagePtr)LookupIDByType(c->pWin->drawable.id, RTpage)) != 
-       (XpPagePtr)NULL)
-    {
-        if(pPage->context != (XpContextPtr)NULL)
-	{
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			      BadWindow);
-	    return TRUE;
-	}
-    }
-    else
-    {
-        if((pPage = (XpPagePtr)xalloc(sizeof(XpPageRec))) == (XpPagePtr)NULL)
-	{
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			      BadAlloc);
-	    return TRUE;
-	}
-        if(AddResource(c->pWin->drawable.id, RTpage, pPage) == FALSE)
-        {
-	    xfree(pPage);
-	    SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			      BadAlloc);
-	    return TRUE;
-        }
-    }
-
-    pPage->context = pContext;
-    pContext->pageWin = c->pWin->drawable.id;
-
-    if(pContext->funcs.StartPage != 0)
-        result = pContext->funcs.StartPage(pContext, pWin);
-    else
-    {
-	SendErrorToClient(client, XpReqCode, X_PrintStartPage, 0, 
-			  BadImplementation);
-	return TRUE;
-    }
-
-    pContext->state |= PAGE_STARTED;
-
-    (void)MapWindow(pWin, client);
-
-    SendXpNotify(pContext, XPStartPageNotify, (int)FALSE);
-
-    return TRUE;
-}
-
-static int
-ProcXpStartPage(ClientPtr client)
-{
-    REQUEST(xPrintStartPageReq);
-    WindowPtr pWin;
-    int result = Success;
-    XpContextPtr pContext;
-    XpStPagePtr c;
-
-    REQUEST_SIZE_MATCH(xPrintStartPageReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & JOB_STARTED))
-	return XpErrorBase+XPBadSequence;
-
-    /* can't have pages in a raw documented */
-    if(pContext->state & DOC_RAW_STARTED)
-	return XpErrorBase+XPBadSequence;
-    
-    if(pContext->state & PAGE_STARTED)
-	return XpErrorBase+XPBadSequence;
-
-    pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
-					   SecurityWriteAccess);
-    if (!pWin || pWin->drawable.pScreen->myNum != pContext->screenNum)
-	return BadWindow;
-
-    if((c = (XpStPagePtr)xalloc(sizeof(XpStPageRec))) == (XpStPagePtr)NULL)
-	return BadAlloc;
-    c->pContext = pContext;
-    c->slept = FALSE;
-    c->pWin = pWin;
-
-    (void)DoStartPage(client, c);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static int
-ProcXpEndPage(ClientPtr client)
-{
-    REQUEST(xPrintEndPageReq);
-    int result = Success;
-    XpContextPtr pContext;
-    XpPagePtr page;
-    WindowPtr pWin;
-
-    REQUEST_SIZE_MATCH(xPrintEndPageReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & PAGE_STARTED))
-	return XpErrorBase+XPBadSequence;
-
-    pWin = (WindowPtr )LookupIDByType(pContext->pageWin, RT_WINDOW);
-
-    /* Call the ddx's EndPage proc. */
-    if(pContext->funcs.EndPage != 0)
-        result = pContext->funcs.EndPage(pContext, pWin);
-    else
-	return BadImplementation;
-
-    if((page = (XpPagePtr)LookupIDByType(pContext->pageWin, RTpage)) !=
-       (XpPagePtr)NULL)
-	page->context = (XpContextPtr)NULL;
-
-    pContext->state &= ~PAGE_STARTED;
-    pContext->pageWin = 0; /* None, NULL??? XXX */
-
-    (void)UnmapWindow(pWin, FALSE);
-
-    SendXpNotify(pContext, XPEndPageNotify, stuff->cancel);
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-/*******************************************************************************
- *
- * Document Data Functions: PutDocumentData, GetDocumentData
- *
- ******************************************************************************/
-
-static int
-ProcXpPutDocumentData(ClientPtr client)
-{
-    REQUEST(xPrintPutDocumentDataReq);
-    XpContextPtr pContext;
-    DrawablePtr pDraw;
-    int result = Success;
-    unsigned totalSize;
-    char *pData, *pDoc_fmt, *pOptions;
-
-    REQUEST_AT_LEAST_SIZE(xPrintPutDocumentDataReq);
-
-    if((pContext = (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr)
-       == (XpContextPtr)NULL)
-        return XpErrorBase+XPBadSequence;
-
-    if(!(pContext->state & DOC_RAW_STARTED) &&
-       !(pContext->state & DOC_COOKED_STARTED))
-        return XpErrorBase+XPBadSequence;
-
-    if (stuff->drawable) {
-	if (pContext->state & DOC_RAW_STARTED)
-	    return BadDrawable;
-	pDraw = (DrawablePtr)LookupDrawable(stuff->drawable, client);
-	if (!pDraw || pDraw->pScreen->myNum != pContext->screenNum)
-	    return BadDrawable;
-    } else {
-	if (pContext->state & DOC_COOKED_STARTED)
-	    return BadDrawable;
-	pDraw = NULL;
-    }
-
-    pData = (char *)(&stuff[1]);
-
-    totalSize = (stuff->len_data + 3) >> 2;
-    pDoc_fmt = pData + (totalSize << 2);
-
-    totalSize += (stuff->len_fmt + 3) >> 2;
-    pOptions = pData + (totalSize << 2);
-
-    totalSize += (stuff->len_options + 3) >> 2;
-    if((totalSize + (sz_xPrintPutDocumentDataReq >> 2)) != client->req_len)
-	 return BadLength;
-    
-    if(pContext->funcs.PutDocumentData != 0)
-    {
-        result = (*pContext->funcs.PutDocumentData)(pContext, pDraw,
-					  pData, stuff->len_data,
-				          pDoc_fmt, stuff->len_fmt,
-				          pOptions, stuff->len_options,
-					  client);
-    }
-    else
-	return BadImplementation;
-
-    if (client->noClientException != Success)
-        return client->noClientException;
-    else
-        return result;
-}
-
-static int
-ProcXpGetDocumentData(ClientPtr client)
-{
-    REQUEST(xPrintGetDocumentDataReq);
-    xPrintGetDocumentDataReply rep;
-    XpContextPtr pContext;
-    int result = Success;
-
-    REQUEST_SIZE_MATCH(xPrintGetDocumentDataReq);
-
-    if((pContext = (XpContextPtr)SecurityLookupIDByType(client,
-							stuff->printContext, 
-							RTcontext,
-							SecurityWriteAccess))
-       == (XpContextPtr)NULL)
-    {
-        client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    if(pContext->funcs.GetDocumentData == 0)
-	return BadImplementation;
-
-    if(!(pContext->state & JOB_GET_DATA) || 
-       pContext->state & GET_DOC_DATA_STARTED)
-	return XpErrorBase+XPBadSequence;
-
-    if(stuff->maxBufferSize <= 0)
-    {
-	client->errorValue = stuff->maxBufferSize;
-        return BadValue; /* gotta have a positive buffer size */
-    }
-
-    result = (*pContext->funcs.GetDocumentData)(pContext, client, 
-						stuff->maxBufferSize);
-    if(result != Success)
-    {
-	rep.type = X_Reply;
-	rep.sequenceNumber = client->sequence;
-	rep.length = 0;
-	rep.dataLen = 0;
-	rep.statusCode = 1;
-	rep.finishedFlag = TRUE;
-        if (client->swapped) {
-            int n;
-            long l;
-
-            swaps(&rep.sequenceNumber, n);
-            swapl(&rep.statusCode, l); /* XXX Why are these longs??? */
-            swapl(&rep.finishedFlag, l); /* XXX Why are these longs??? */
-        }
-	(void)WriteToClient(client,sz_xPrintGetDocumentDataReply,(char *)&rep);
-    }
-    else
-        pContext->state |= GET_DOC_DATA_STARTED;
-
-    if(pContext->clientSlept != (ClientPtr)NULL)
-    {
-	ClientSignal(pContext->clientSlept);
-	ClientWakeup(pContext->clientSlept);
-	pContext->clientSlept = (ClientPtr)NULL;
-    }
-
-    return result;
-}
-
-/*******************************************************************************
- *
- * Attribute requests: GetAttributes, SetAttributes, GetOneAttribute
- *
- ******************************************************************************/
-
-static int 
-ProcXpGetAttributes(ClientPtr client)
-{
-    REQUEST(xPrintGetAttributesReq);
-    XpContextPtr pContext;
-    char *attrs;
-    xPrintGetAttributesReply *pRep;
-    int totalSize, n;
-    unsigned long l;
-
-    REQUEST_SIZE_MATCH(xPrintGetAttributesReq);
-
-    if(stuff->type < XPJobAttr || stuff->type > XPServerAttr)
-    {
-	client->errorValue = stuff->type;
-	return BadValue;
-    }
-
-    if(stuff->type != XPServerAttr)
-    {
-        if((pContext = (XpContextPtr)SecurityLookupIDByType(
-						client,
-						stuff->printContext,
-						RTcontext,
-						SecurityReadAccess))
-	   == (XpContextPtr)NULL)
-        {
-	    client->errorValue = stuff->printContext;
-            return XpErrorBase+XPBadContext;
-        }
-
-        if(pContext->funcs.GetAttributes == 0)
-	    return BadImplementation;
-        if((attrs = (*pContext->funcs.GetAttributes)(pContext, stuff->type)) == 
-           (char *)NULL) 
-	    return BadAlloc;
-    }
-    else
-    {
-	if((attrs = XpGetAttributes((XpContextPtr)NULL, XPServerAttr)) ==
-	   (char *)NULL)
-	    return BadAlloc;
-    }
-
-    totalSize = sz_xPrintGetAttributesReply + QUADPAD(strlen(attrs));
-    if((pRep = (xPrintGetAttributesReply *)malloc(totalSize)) ==
-       (xPrintGetAttributesReply *)NULL)
-	return BadAlloc;
-
-    pRep->type = X_Reply;
-    pRep->length = (totalSize - sz_xPrintGetAttributesReply) >> 2;
-    pRep->sequenceNumber = client->sequence;
-    pRep->stringLen = strlen(attrs);
-
-    if (client->swapped) {
-        swaps(&pRep->sequenceNumber, n);
-        swapl(&pRep->length, l);
-        swapl(&pRep->stringLen, l);
-    }
-
-    strncpy((char*)(pRep + 1), attrs, strlen(attrs));
-    xfree(attrs);
-
-    WriteToClient(client, totalSize, (char *)pRep);
-
-    xfree(pRep);
-
-    return client->noClientException;
-}
-
-static int 
-ProcXpSetAttributes(ClientPtr client)
-{
-    REQUEST(xPrintSetAttributesReq);
-    int result = Success;
-    XpContextPtr pContext;
-    char *attr;
-
-    REQUEST_AT_LEAST_SIZE(xPrintSetAttributesReq);
-
-    if(stuff->type < XPJobAttr || stuff->type > XPServerAttr)
-    {
-	client->errorValue = stuff->type;
-	return BadValue;
-    }
-
-    /*
-     * Disallow changing of read-only attribute pools
-     */
-    if(stuff->type == XPPrinterAttr || stuff->type == XPServerAttr)
-	return BadMatch;
-
-    if((pContext = (XpContextPtr)SecurityLookupIDByType(
-					client,
-					stuff->printContext,
-					RTcontext,
-					SecurityWriteAccess))
-       == (XpContextPtr)NULL)
-    {
-        client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    if(pContext->funcs.SetAttributes == 0)
-	return BadImplementation;
-    
-    /* 
-     * Check for attributes being set after their relevant phase
-     * has already begun (e.g. Job attributes set after StartJob).
-     */
-    if((pContext->state & JOB_STARTED) && stuff->type == XPJobAttr)
-	return XpErrorBase+XPBadSequence;
-    if(((pContext->state & DOC_RAW_STARTED) || 
-       (pContext->state & DOC_COOKED_STARTED)) && stuff->type == XPDocAttr)
-	return XpErrorBase+XPBadSequence;
-    if((pContext->state & PAGE_STARTED) && stuff->type == XPPageAttr)
-	return XpErrorBase+XPBadSequence;
-
-    if((attr = (char *)malloc(stuff->stringLen + 1)) == (char *)NULL)
-	return BadAlloc;
-
-    strncpy(attr, (char *)(stuff + 1), stuff->stringLen);
-    attr[stuff->stringLen] = (char)'\0';
-
-    if(stuff->rule == XPAttrReplace)
-        (*pContext->funcs.SetAttributes)(pContext, stuff->type, attr);
-    else if(stuff->rule == XPAttrMerge)
-        (*pContext->funcs.AugmentAttributes)(pContext, stuff->type, attr);
-    else
-    {
-	client->errorValue = stuff->rule;
-	result = BadValue;
-    }
-
-    xfree(attr);
-
-    SendAttributeNotify(pContext, stuff->type);
-
-    return result;
-}
-
-static int 
-ProcXpGetOneAttribute(ClientPtr client)
-{
-    REQUEST(xPrintGetOneAttributeReq);
-    XpContextPtr pContext;
-    char *value, *attrName;
-    xPrintGetOneAttributeReply *pRep;
-    int totalSize;
-    int n;
-    unsigned long l;
-
-    REQUEST_AT_LEAST_SIZE(xPrintGetOneAttributeReq);
-
-    totalSize = ((sz_xPrintGetOneAttributeReq) >> 2) +
-                ((stuff->nameLen + 3) >> 2);
-    if(totalSize != client->req_len)
-	 return BadLength;
-
-    if(stuff->type < XPJobAttr || stuff->type > XPServerAttr)
-    {
-	client->errorValue = stuff->type;
-	return BadValue;
-    }
-    
-    if((attrName = (char *)malloc(stuff->nameLen + 1)) == (char *)NULL)
-	return BadAlloc;
-    strncpy(attrName, (char *)(stuff+1), stuff->nameLen);
-    attrName[stuff->nameLen] = (char)'\0';
-
-    if(stuff->type != XPServerAttr)
-    {
-        if((pContext = (XpContextPtr)SecurityLookupIDByType(
-						client,
-						stuff->printContext, 
-						RTcontext,
-						SecurityReadAccess))
-	   == (XpContextPtr)NULL)
-        {
-	    client->errorValue = stuff->printContext;
-            return XpErrorBase+XPBadContext;
-        }
-
-        if(pContext->funcs.GetOneAttribute == 0)
-	    return BadImplementation;
-        if((value = (*pContext->funcs.GetOneAttribute)(pContext, stuff->type,
-           attrName)) == (char *)NULL) 
-	    return BadAlloc;
-    }
-    else
-    {
-	if((value = XpGetOneAttribute((XpContextPtr)NULL, XPServerAttr,
-	    attrName)) == (char *)NULL)
-	    return BadAlloc;
-    }
-
-    free(attrName);
-
-    totalSize = sz_xPrintGetOneAttributeReply + QUADPAD(strlen(value));
-    if((pRep = (xPrintGetOneAttributeReply *)malloc(totalSize)) ==
-       (xPrintGetOneAttributeReply *)NULL)
-	return BadAlloc;
-
-    pRep->type = X_Reply;
-    pRep->length = (totalSize - sz_xPrintGetOneAttributeReply) >> 2;
-    pRep->sequenceNumber = client->sequence;
-    pRep->valueLen = strlen(value);
-
-    if (client->swapped) {
-        swaps(&pRep->sequenceNumber, n);
-        swapl(&pRep->length, l);
-        swapl(&pRep->valueLen, l);
-    }
-
-    strncpy((char*)(pRep + 1), value, strlen(value));
-
-    WriteToClient(client, totalSize, (char *)pRep);
-
-    xfree(pRep);
-
-    return client->noClientException;
-}
-
-/*******************************************************************************
- *
- * Print Event requests: SelectInput InputSelected, SendXpNotify
- *
- ******************************************************************************/
-
-
-static int
-ProcXpSelectInput(ClientPtr client)
-{
-    REQUEST(xPrintSelectInputReq);
-    int result = Success;
-    XpContextPtr pContext;
-    XpClientPtr pPrintClient;
-
-    REQUEST_SIZE_MATCH(xPrintSelectInputReq);
-
-    /*
-     * Check to see that the supplied XID is really a valid print context
-     * in this server.
-     */
-    if((pContext=(XpContextPtr)SecurityLookupIDByType(client,
-						      stuff->printContext,
-						      RTcontext,
-						      SecurityWriteAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    if(stuff->eventMask & ~allEvents)
-    {
-	client->errorValue = stuff->eventMask;
-        return BadValue; /* bogus event mask bits */
-    }
-
-    if((pPrintClient = AcquireClient(pContext, client)) == (XpClientPtr)NULL)
-	return BadAlloc;
-
-    pPrintClient->eventMask = stuff->eventMask;
-
-    return result;
-}
-
-static int
-ProcXpInputSelected(ClientPtr client)
-{
-    REQUEST(xPrintInputSelectedReq);
-    xPrintInputSelectedReply rep;
-    register int n;
-    long l;
-    XpClientPtr pXpClient;
-    XpContextPtr pContext;
-
-    REQUEST_SIZE_MATCH(xPrintInputSelectedReq);
-
-    if((pContext=(XpContextPtr)SecurityLookupIDByType(client,
-						      stuff->printContext,
-						      RTcontext,
-						      SecurityReadAccess))
-       == (XpContextPtr)NULL)
-    {
-	client->errorValue = stuff->printContext;
-        return XpErrorBase+XPBadContext;
-    }
-
-    pXpClient = FindClient(pContext, client);
-
-    rep.type = X_Reply;
-    rep.length = 0;
-    rep.sequenceNumber = client->sequence;
-    rep.eventMask = (pXpClient != (XpClientPtr)NULL)? pXpClient->eventMask : 0;
-    rep.allEventsMask = GetAllEventMasks(pContext);
-
-    if (client->swapped) {
-        swaps(&rep.sequenceNumber, n);
-        swapl(&rep.length, l);
-        swapl(&rep.eventMask, l);
-        swapl(&rep.allEventsMask, l);
-    }
-
-    WriteToClient(client, sz_xPrintInputSelectedReply, (char *)&rep);
-    return client->noClientException;
-}
-
-static void
-SendAttributeNotify(XpContextPtr pContext, int which)
-{
-    XpClientPtr        pXpClient;
-    xPrintAttributeEvent   ae;
-    ClientPtr	client;
-
-    pXpClient = pContext->clientHead;
-    if(pXpClient == (XpClientPtr)NULL) 
-        return; /* Nobody's interested in the events (or this context). */
-
-    for (pXpClient = pContext->clientHead; 
-         pXpClient != (XpClientPtr)NULL; 
-         pXpClient = pXpClient->pNext)
-    {
-        client = pXpClient->client;
-        if (client == serverClient || client->clientGone || 
-	    !(pXpClient->eventMask & XPAttributeMask))
-            continue;
-        ae.type = XPAttributeNotify + XpEventBase;
-        ae.detail = which;
-        ae.printContext = pContext->contextID;
-        ae.sequenceNumber = client->sequence;
-        WriteEventsToClient (client, 1, (xEvent *) &ae);
-    }
-}
-
-static void
-SendXpNotify(XpContextPtr pContext, int which, int val)
-{
-    XpClientPtr        pXpClient;
-    xPrintPrintEvent   pe;
-    ClientPtr	client;
-
-    pXpClient = pContext->clientHead;
-    if(pXpClient == (XpClientPtr)NULL) 
-        return; /* Nobody's interested in the events (or this context). */
-
-    for (pXpClient = pContext->clientHead; 
-         pXpClient != (XpClientPtr)NULL; 
-         pXpClient = pXpClient->pNext)
-    {
-        client = pXpClient->client;
-        if (client == serverClient || client->clientGone || 
-	    !(pXpClient->eventMask & XPPrintMask))
-            continue;
-        pe.type = XPPrintNotify + XpEventBase;
-        pe.detail = which;
-        pe.printContext = pContext->contextID;
-	pe.cancel = (Bool)val;
-        pe.sequenceNumber = client->sequence;
-        WriteEventsToClient (client, 1, (xEvent *) &pe);
-    }
-}
-
-static CARD32
-GetAllEventMasks(XpContextPtr pContext)
-{
-    XpClientPtr pPrintClient;
-    CARD32 totalMask = (CARD32)0;
-    
-    for (pPrintClient = pContext->clientHead;
-         pPrintClient != (XpClientPtr)NULL;
-         pPrintClient = pPrintClient->pNext)
-    {
-        totalMask |= pPrintClient->eventMask;
-    }
-    return totalMask;
-}
-
-/*
- * XpContextOfClient - returns the XpContextPtr to the context
- * associated with the specified client, or NULL if the client
- * does not currently have a context set.
- */
-XpContextPtr
-XpContextOfClient(ClientPtr client)
-{
-    return (XpContextPtr)client->devPrivates[XpClientPrivateIndex].ptr;
-}
-
-
-/*******************************************************************************
- *
- * Swap-request functions
- *
- ******************************************************************************/
-
-static int
-SProcXpCreateContext(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintCreateContextReq);
-
-    swaps(&stuff->length, i);
-    swapl(&stuff->contextID, n);
-    swapl(&stuff->printerNameLen, n);
-    swapl(&stuff->localeLen, n);
-    return ProcXpCreateContext(client);
-}
-
-static int
-SProcXpGetPrinterList(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintGetPrinterListReq);
-
-    swaps(&stuff->length, i);
-    swapl(&stuff->printerNameLen, n);
-    swapl(&stuff->localeLen, n);
-    return ProcXpGetPrinterList(client);
-}
-
-static int
-SProcXpRehashPrinterList(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintRehashPrinterListReq);
-    swaps(&stuff->length, i);
-    return ProcXpRehashPrinterList(client);
-}
-
-static int
-SProcXpSetContext(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintSetContextReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, i);
-    return ProcXpSetContext(client);
-}
-
-static int
-SProcXpGetContext(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintGetContextReq);
-    swaps(&stuff->length, i);
-    return ProcXpGetContext(client);
-}
-
-static int
-SProcXpDestroyContext(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintDestroyContextReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpDestroyContext(client);
-}
-
-static int
-SProcXpGetContextScreen(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintGetContextScreenReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpGetContextScreen(client);
-}
-
-static int
-SProcXpInputSelected(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintInputSelectedReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpInputSelected(client);
-}
-
-static int
-SProcXpStartJob(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintStartJobReq);
-    swaps(&stuff->length, i);
-    return ProcXpStartJob(client);
-}
-
-static int
-SProcXpEndJob(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintEndJobReq);
-    swaps(&stuff->length, i);
-    return ProcXpEndJob(client);
-}
-
-static int
-SProcXpStartDoc(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintStartDocReq);
-    swaps(&stuff->length, i);
-    return ProcXpStartDoc(client);
-}
-
-static int
-SProcXpEndDoc(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintEndDocReq);
-    swaps(&stuff->length, i);
-    return ProcXpEndDoc(client);
-}
-
-static int
-SProcXpStartPage(ClientPtr client)
-{
-    int i;
-    long n;
-
-    REQUEST(xPrintStartPageReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->window, n);
-    return ProcXpStartPage(client);
-}
-
-static int
-SProcXpEndPage(ClientPtr client)
-{
-    int i;
-
-    REQUEST(xPrintEndPageReq);
-    swaps(&stuff->length, i);
-    return ProcXpEndPage(client);
-}
-
-static int
-SProcXpPutDocumentData(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintPutDocumentDataReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->drawable, n);
-    swapl(&stuff->len_data, n);
-    swaps(&stuff->len_fmt, i);
-    swaps(&stuff->len_options, i);
-    return ProcXpPutDocumentData(client);
-}
-
-static int
-SProcXpGetDocumentData(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintGetDocumentDataReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    swapl(&stuff->maxBufferSize, n);
-    return ProcXpGetDocumentData(client);
-}
-
-static int
-SProcXpGetAttributes(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintGetAttributesReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpGetAttributes(client);
-}
-
-static int
-SProcXpSetAttributes(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintSetAttributesReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    swapl(&stuff->stringLen, n);
-    return ProcXpSetAttributes(client);
-}
-
-static int
-SProcXpGetOneAttribute(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintGetOneAttributeReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    swapl(&stuff->nameLen, n);
-    return ProcXpGetOneAttribute(client);
-}
-
-static int
-SProcXpSelectInput(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintSelectInputReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->eventMask, n);
-    swapl(&stuff->printContext, n);
-    return ProcXpSelectInput(client);
-}
-
-static int 
-SProcXpGetPageDimensions(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintGetPageDimensionsReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpGetPageDimensions(client);
-}
-
-static int 
-SProcXpSetImageResolution(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintSetImageResolutionReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    swaps(&stuff->imageRes, i);
-    return ProcXpSetImageResolution(client);
-}
-
-static int 
-SProcXpGetImageResolution(ClientPtr client)
-{
-    long n;
-    int i;
-
-    REQUEST(xPrintGetImageResolutionReq);
-    swaps(&stuff->length, i);
-    swapl(&stuff->printContext, n);
-    return ProcXpGetImageResolution(client);
-}
-
-static void
-SwapXpNotifyEvent(xPrintPrintEvent *src, xPrintPrintEvent *dst)
-{
-    /*
-     * Swap the sequence number and context fields.
-     */
-    cpswaps(src->sequenceNumber, dst->sequenceNumber);
-    cpswapl(src->printContext, dst->printContext);
-
-    /*
-     * Copy the byte-long fields.
-     */
-    dst->type = src->type;
-    dst->detail = src->detail;
-    dst->cancel = src->cancel;
-}
-
-static void
-SwapXpAttributeEvent(xPrintAttributeEvent *src, xPrintAttributeEvent *dst)
-{
-    /*
-     * Swap the sequence number and context fields.
-     */
-    cpswaps(src->sequenceNumber, dst->sequenceNumber);
-    cpswapl(src->printContext, dst->printContext);
-
-    /*
-     * Copy the byte-long fields.
-     */
-    dst->type = src->type;
-    dst->detail = src->detail;
-}
diff --git a/nx-X11/programs/Xserver/dix/Imakefile b/nx-X11/programs/Xserver/dix/Imakefile
index 529e562..a0d4208 100644
--- a/nx-X11/programs/Xserver/dix/Imakefile
+++ b/nx-X11/programs/Xserver/dix/Imakefile
@@ -7,10 +7,8 @@ XCOMM $XFree86: xc/programs/Xserver/dix/Imakefile,v 3.17 2003/04/15 18:30:43 ala
 
 #include <Server.tmpl>
 
-#if !BuildXprint || PrintOnlyServer
 XPSRC = xpstubs.c
 XPOBJ = xpstubs.o
-#endif
 
 #if !HasFfs
 FFS_SRC = ffs.c
@@ -27,7 +25,7 @@ OBJS = atom.o colormap.o cursor.o devices.o dispatch.o dixutils.o events.o \
 	tables.o window.o initatoms.o dixfonts.o privates.o pixmap.o $(FFS_OBJ)
 
     INCLUDES = -I../include -I$(XINCLUDESRC) -I$(FONTINCSRC) -I$(EXTINCSRC) \
-	       -I$(SERVERSRC)/Xext -I$(SERVERSRC)/lbx -I../Xprint
+	       -I$(SERVERSRC)/Xext -I$(SERVERSRC)/lbx
     LINTLIBS = ../os/llib-los.ln
 
 /*
@@ -94,8 +92,6 @@ SpecialCObjectRule(pixmap,$(ICONFIGFILES),$(_NOOP_))
 SpecialCObjectRule(privates,$(ICONFIGFILES),$(_NOOP_))
 SpecialCObjectRule(window,$(ICONFIGFILES),$(QUARTZ_DEFINES))
 
-#if !BuildXprint || PrintOnlyServer
 NormalLibraryTarget(xpstubs,$(XPOBJ))
-#endif
 
 DependTarget()
diff --git a/nx-X11/programs/Xserver/dix/main.c b/nx-X11/programs/Xserver/dix/main.c
index 6a8f79a..270de6c 100644
--- a/nx-X11/programs/Xserver/dix/main.c
+++ b/nx-X11/programs/Xserver/dix/main.c
@@ -104,9 +104,6 @@ Equipment Corporation.
 #include "site.h"
 #include "dixfont.h"
 #include "extnsionst.h"
-#ifdef XPRINT
-#include "DiPrint.h"
-#endif
 #ifdef PANORAMIX
 #include "panoramiXsrv.h"
 #else
@@ -255,9 +252,6 @@ main(int argc, char *argv[], char *envp[])
     display = "0";
 
     InitGlobals();
-#ifdef XPRINT
-    PrinterInitGlobals();
-#endif
 
     /* Quartz support on Mac OS X requires that the Cocoa event loop be in
      * the main thread. This allows the X server main to be called again
@@ -370,9 +364,6 @@ main(int argc, char *argv[], char *envp[])
 	InitCallbackManager();
 	InitVisualWrap();
 	InitOutput(&screenInfo, argc, argv);
-#ifdef XPRINT
-	PrinterInitOutput(&screenInfo, argc, argv);
-#endif
 
 	if (screenInfo.numScreens < 1)
 	    FatalError("no screens found");
diff --git a/nx-X11/programs/Xserver/dix/xpstubs.c b/nx-X11/programs/Xserver/dix/xpstubs.c
index 5135cc3..89481c6 100644
--- a/nx-X11/programs/Xserver/dix/xpstubs.c
+++ b/nx-X11/programs/Xserver/dix/xpstubs.c
@@ -33,9 +33,6 @@ from The Open Group.
 
 #include "misc.h"
 #include <X11/fonts/font.h>
-#ifdef XPRINT
-#include "DiPrint.h"
-#endif
 
 Bool
 XpClientIsBitmapClient(
@@ -51,27 +48,3 @@ XpClientIsPrintClient(
 {
     return FALSE;
 }
-#ifdef XPRINT
-int
-PrinterOptions(
-    int argc,
-    char **argv,
-    int i)
-{
-    return i;
-}
-void
-PrinterInitOutput(
-     ScreenInfo *pScreenInfo,
-     int argc,
-     char **argv)
-{
-}
-void PrinterUseMsg(void)
-{
-}
-void PrinterInitGlobals(void)
-{
-}
-#endif /* XPRINT */
-
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile
index 6c075fa..874e825 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile
+++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile
@@ -66,6 +66,7 @@ SRCS =  NXwindow.c \
 	Composite.c \
 	Pixels.c \
 	stubs.c \
+	xpstubs.c \
 	miinitext.c \
 	$(SRCS1)
 
@@ -128,6 +129,7 @@ OBJS =  NXwindow.o \
 	Composite.o \
 	Pixels.o \
 	stubs.o \
+	xpstubs.o \
 	miinitext.o \
 	$(OBJS1)
 
@@ -220,6 +222,7 @@ DEFINES = -g $(OS_DEFINES) $(EXT_DEFINES) $(UPG_DEFINES) $(NX_DEFINES) \
 all:: $(OBJS)
 
 LinkSourceFile(stubs.c,$(SERVERSRC)/Xi)
+LinkSourceFile(xpstubs.c,$(SERVERSRC)/dix)
 SpecialCObjectRule(Init,$(ICONFIGFILES),$(_NOOP_))
 LinkSourceFile(miinitext.c,$(SERVERSRC)/mi)
 SpecialCObjectRule(miinitext,$(ICONFIGFILES), $(_NOOP_))
diff --git a/nx-X11/programs/Xserver/mi/miinitext.c b/nx-X11/programs/Xserver/mi/miinitext.c
index f3be9da..b70a6a6 100644
--- a/nx-X11/programs/Xserver/mi/miinitext.c
+++ b/nx-X11/programs/Xserver/mi/miinitext.c
@@ -73,34 +73,6 @@ SOFTWARE.
 #undef GLXEXT
 #endif
 
-/* Make sure Xprt only announces extensions it supports */
-#ifdef PRINT_ONLY_SERVER
-#undef MITSHM /* this is incompatible to the vector-based Xprint DDX */
-#undef XKB
-#undef PANORAMIX
-#undef RES
-#undef XINPUT
-#undef XV
-#undef SCREENSAVER
-#undef XIDLE
-#undef XRECORD
-#undef XF86VIDMODE
-#undef XF86MISC
-#undef XFreeXDGA
-#undef XF86DRI
-#undef DPMSExtension
-#undef DPSEXT
-#undef FONTCACHE
-#undef DAMAGE
-#undef XFIXES
-#undef XEVIE
-#else
-#ifndef LOADABLEPRINTDDX
-#undef XPRINT
-#endif /* LOADABLEPRINTDDX */
-#endif /* PRINT_ONLY_SERVER */
-
-
 extern Bool noTestExtensions;
 
 #ifdef BIGREQS
@@ -232,9 +204,6 @@ typedef void (*InitExtension)(INITARGS);
 #define _XLBX_SERVER_
 #include <X11/extensions/lbxstr.h>
 #endif
-#ifdef XPRINT
-#include "Print.h"
-#endif
 #ifdef XAPPGROUP
 #define _XAG_SERVER_
 #include <X11/extensions/Xagstr.h>
@@ -321,9 +290,6 @@ extern void XagExtensionInit(INITARGS);
 #ifdef XCSECURITY
 extern void SecurityExtensionInit(INITARGS);
 #endif
-#ifdef XPRINT
-extern void XpExtensionInit(INITARGS);
-#endif
 #ifdef XF86BIGFONT
 extern void XFree86BigfontExtensionInit(INITARGS);
 #endif
@@ -606,9 +572,6 @@ InitExtensions(argc, argv)
 #ifdef XCSECURITY
     if (!noSecurityExtension) SecurityExtensionInit();
 #endif
-#ifdef XPRINT
-    XpExtensionInit(); /* server-specific extension, cannot be disabled */
-#endif
 #ifdef TOGCUP
     if (!noXcupExtension) XcupExtensionInit();
 #endif
@@ -642,11 +605,6 @@ InitExtensions(argc, argv)
     if (!noGlxExtension) DarwinGlxExtensionInit();
 #endif
 #endif
-#ifdef DPSEXT
-#ifndef XPRINT
-    if (!noDPSExtension) DPSExtensionInit();
-#endif
-#endif
 #ifdef XFIXES
     /* must be before Render to layer DisplayCursor correctly */
     if (!noXFixesExtension) XFixesExtensionInit();
@@ -717,9 +675,6 @@ static ExtensionModule staticExtensions[] = {
 #ifdef XCSECURITY
     { SecurityExtensionInit, SECURITY_EXTENSION_NAME, &noSecurityExtension, NULL, NULL },
 #endif
-#ifdef XPRINT
-    { XpExtensionInit, XP_PRINTNAME, NULL, NULL, NULL },
-#endif
 #ifdef PANORAMIX
     { PanoramiXExtensionInit, PANORAMIX_PROTOCOL_NAME, &noPanoramiXExtension, NULL, NULL },
 #endif
diff --git a/nx-X11/programs/Xserver/os/Imakefile b/nx-X11/programs/Xserver/os/Imakefile
index 22be060..55f8e41 100644
--- a/nx-X11/programs/Xserver/os/Imakefile
+++ b/nx-X11/programs/Xserver/os/Imakefile
@@ -166,7 +166,7 @@ BOOTSTRAPCFLAGS =
 		  $(RANDOM_DEFINES) $(BUGMSG) $(XTRANS_FAILDEFINES) $(NX_DEFINES)
        INCLUDES = -I. -I../include -I$(XINCLUDESRC) -I$(EXTINCSRC) \
 		  -I$(SERVERSRC)/Xext -I$(FONTINCSRC) -I$(SERVERSRC)/render \
-		  -I$(TOP)/lib/Xau -I../lbx -I../Xprint Krb5Includes $(NX_INCLUDES)
+		  -I$(TOP)/lib/Xau -I../lbx Krb5Includes $(NX_INCLUDES)
  DEPEND_DEFINES = $(DBM_DEFINES) $(XDMCP_DEFINES) $(EXT_DEFINES) \
 		  $(TRANS_INCLUDES) $(CONNECTION_FLAGS) $(GETPEER_DEFINES) \
 		  DependDefines
diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c
index 79e49d5..5f189c9 100644
--- a/nx-X11/programs/Xserver/os/utils.c
+++ b/nx-X11/programs/Xserver/os/utils.c
@@ -147,10 +147,6 @@ OR PERFORMANCE OF THIS SOFTWARE.
 #include "picture.h"
 #endif
 
-#ifdef XPRINT
-#include "DiPrint.h"
-#endif
-
 Bool noTestExtensions;
 #ifdef BIGREQS
 Bool noBigReqExtension = FALSE;
@@ -691,9 +687,6 @@ void UseMsg(void)
 #ifdef XCSECURITY
     ErrorF("-sp file               security policy file\n");
 #endif
-#ifdef XPRINT
-    PrinterUseMsg();
-#endif
     ErrorF("-su                    disable any save under support\n");
     ErrorF("-t #                   mouse threshold (pixels)\n");
     ErrorF("-terminate             terminate at server reset\n");
@@ -1102,12 +1095,6 @@ ProcessCommandLine(int argc, char *argv[])
 	    i = skip - 1;
 	}
 #endif
-#ifdef XPRINT
-	else if ((skip = PrinterOptions(argc, argv, i)) != i)
-	{
-	    i = skip - 1;
-	}
-#endif
 #ifdef XCSECURITY
 	else if ((skip = XSecurityOptions(argc, argv, i)) != i)
 	{
diff --git a/nx-libs.spec b/nx-libs.spec
index ad9a09b..2e6c5da 100644
--- a/nx-libs.spec
+++ b/nx-libs.spec
@@ -1005,8 +1005,6 @@ ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama
 %{_includedir}/nx/X11/ap_keysym.h
 %{_includedir}/nx/X11/keysym.h
 %{_includedir}/nx/X11/keysymdef.h
-%{_includedir}/nx/X11/extensions/Print.h
-%{_includedir}/nx/X11/extensions/Printstr.h
 %{_includedir}/nx/X11/extensions/XI.h
 %{_includedir}/nx/X11/extensions/XIproto.h
 %{_includedir}/nx/X11/extensions/XResproto.h

--
Alioth's /srv/git/code.x2go.org/nx-libs.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list