diff options
Diffstat (limited to 'add-proto-files.patch')
-rw-r--r-- | add-proto-files.patch | 1407 |
1 files changed, 1407 insertions, 0 deletions
diff --git a/add-proto-files.patch b/add-proto-files.patch new file mode 100644 index 0000000..af8d952 --- /dev/null +++ b/add-proto-files.patch @@ -0,0 +1,1407 @@ +diff -up libXp-1.0.3/configure.ac.jx libXp-1.0.3/configure.ac +--- libXp-1.0.3/configure.ac.jx 2015-02-21 17:04:36.000000000 -0500 ++++ libXp-1.0.3/configure.ac 2018-07-05 12:11:30.955684590 -0400 +@@ -42,11 +42,12 @@ XORG_DEFAULT_OPTIONS + AC_PROG_LIBTOOL + + # Check for X and print proto +-PKG_CHECK_MODULES(XPRINT, [x11 >= 1.6] xext xextproto xau printproto) ++PKG_CHECK_MODULES(XPRINT, [x11 >= 1.6] xext xextproto xau) + + AC_CONFIG_FILES([Makefile + src/Makefile + man/Makefile ++ printproto.pc + xp.pc]) + AC_OUTPUT + +diff -up libXp-1.0.3/include/X11/extensions/Print.h.jx libXp-1.0.3/include/X11/extensions/Print.h +--- libXp-1.0.3/include/X11/extensions/Print.h.jx 2018-07-05 12:11:12.281385412 -0400 ++++ libXp-1.0.3/include/X11/extensions/Print.h 2018-07-05 12:11:12.281385412 -0400 +@@ -0,0 +1,552 @@ ++/* $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 -up libXp-1.0.3/include/X11/extensions/Printstr.h.jx libXp-1.0.3/include/X11/extensions/Printstr.h +--- libXp-1.0.3/include/X11/extensions/Printstr.h.jx 2018-07-05 12:11:12.282385427 -0400 ++++ libXp-1.0.3/include/X11/extensions/Printstr.h 2018-07-05 12:11:12.282385427 -0400 +@@ -0,0 +1,783 @@ ++/* $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 -up libXp-1.0.3/Makefile.am.jx libXp-1.0.3/Makefile.am +--- libXp-1.0.3/Makefile.am.jx 2015-02-21 17:02:53.000000000 -0500 ++++ libXp-1.0.3/Makefile.am 2018-07-05 12:11:12.279385380 -0400 +@@ -23,10 +23,15 @@ AM_CFLAGS = $(XPRINT_CFLAGS) + + SUBDIRS = src man + ++printdir = $(includedir)/X11/extensions ++print_HEADERS = \ ++ $(top_srcdir)/include/X11/extensions/Print.h \ ++ $(top_srcdir)/include/X11/extensions/Printstr.h ++ + pkgconfigdir = $(libdir)/pkgconfig +-pkgconfig_DATA = xp.pc ++pkgconfig_DATA = xp.pc printproto.pc + +-EXTRA_DIST = xp.pc.in ChangeLog ++EXTRA_DIST = xp.pc.in printproto.pc.in ChangeLog + MAINTAINERCLEANFILES = ChangeLog + + .PHONY: ChangeLog +diff -up libXp-1.0.3/printproto.pc.in.jx libXp-1.0.3/printproto.pc.in +--- libXp-1.0.3/printproto.pc.in.jx 2018-07-05 12:11:12.283385443 -0400 ++++ libXp-1.0.3/printproto.pc.in 2018-07-05 12:11:12.282385427 -0400 +@@ -0,0 +1,10 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: PrintProto ++Description: Print extension headers ++Version: @PACKAGE_VERSION@ ++Requires: xau ++Cflags: -I${includedir} +diff -up libXp-1.0.3/src/Makefile.am.jx libXp-1.0.3/src/Makefile.am +--- libXp-1.0.3/src/Makefile.am.jx 2015-02-21 17:02:53.000000000 -0500 ++++ libXp-1.0.3/src/Makefile.am 2018-07-05 12:11:12.283385443 -0400 +@@ -24,7 +24,7 @@ libXp_la_LIBADD = $(XPRINT_LIBS) + + AM_CFLAGS = $(CWARNFLAGS) $(XPRINT_CFLAGS) $(MALLOC_ZERO_CFLAGS) + +-AM_CPPFLAGS = -I$(top_srcdir)/include/X11/extensions ++AM_CPPFLAGS = -I$(top_srcdir)/include/ + + # + # Library version number. This must match old versions on |