Closed michaelrsweet closed 14 years ago
CUPS.org User: mike
(Reduced priority to 2)
We need to map the Adobe names back to the corresponding PPD page size, if available, in cupsMarkOptions.
Note that multiple page sizes with the same dimensions are NOT WELL SUPPORTED IN ANY ENVIRONMENT, and doing so ensures that there will be problems like this on all operating systems.
CUPS.org User: mike
When fixing this I'll also update the libpaper code to get the PPD size mapping for A4 or Letter and use the corresponding size.
CUPS.org User: mike
Changes are now in trunk. I opted to set the PageSize, InputSlot, and MediaType values in the scheduler so they are available to filters without using libcups.
The patch is rather large (almost 7400 lines)...
CUPS.org User: mike
Fixed in Subversion repository.
"str3394.patch":
Property changes on: cups
Modified: svn:ignore
--- cups/pwg-media.c (revision 9039) +++ cups/pwg-media.c (working copy) @@ -1,10 +1,9 @@ /*
Contents: *
/*
-#include "pwgmedia.h" +#include "pwg-private.h"
@@ -37,228 +43,445 @@
-#define _CUPS_SIZE_IN(p,l,x,y) {p, l, x * 72.0, y * 72.0} -#define _CUPS_SIZE_MM(p,l,x,y) {p, l, x / 25.4 * 72.0, y / 25.4 * 72.0} +#define _PWG_MEDIA_IN(p,l,a,x,y) {p, l, a, (int)(x * 2540), (int)(y * 2540)} +#define _PWG_MEDIA_MM(p,l,a,x,y) {p, l, a, (int)(x * 100), (int)(y * 100)}
/*
-static int compare_legacy(_cups_pwg_media_t a, _cups_pwg_media_t b); -static int compare_pwg(_cups_pwg_media_t a, _cups_pwg_media_t b); +static int pwg_compare_legacy(_pwg_media_t a, _pwg_media_t b); +static int pwg_compare_pwg(_pwg_media_t a, _pwg_media_t b); +static int pwg_compare_ppd(_pwg_media_t a, _pwg_media_t b);
/*
-static _cups_pwg_media_t const cups_pwg_media[] = +static _pwg_media_t const cups_pwgmedia[] = { /* Media size lookup table / /_ North American Standard Sheet Media Sizes */
_PWG_MEDIA_IN("na_f_44x68in", NULL, NULL, 44, 68),
/* Chinese Standard Sheet Media Inch Sizes */
_PWG_MEDIA_IN("roc_8k_10.75x15.5in", NULL, NULL, 10.75, 15.5),
/* ISO Standard Sheet Media Sizes */
_PWG_MEDIA_MM("iso_sra0_900x1280mm", "iso-sra0", NULL, 900, 1280),
/* Japanese Standard Sheet Media Sizes */
_PWG_MEDIA_MM("jpn_kaku2_240x332mm", NULL, "EnvKaku2", 240, 332),
/* Chinese Standard Sheet Media Sizes */
_PWG_MEDIA_MM("prc_10_324x458mm", NULL, "EnvPRC10", 324, 458),
/* Other Metric Standard Sheet Media Sizes */
_PWG_MEDIA_MM("om_invite_220x220mm", NULL, "EnvInvite", 220, 220) };
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -_cupsPWGMediaByLegacy( +void +pwgGenerateSize(char *keyword, / I - Keyword buffer */
_cups_globals_t _cg = cupsGlobals(); / Global data */
/*
/*
if (!cg->leg_size_lut) { int i; /* Looping var */
NULL);
for (i = (int)(sizeof(cups_pwg_media) / sizeof(cups_pwg_media[0])),
size = (_pwg_media_t *)cups_pwg_media;
i > 0; i --, size ++) if (size->legacy) @@ -270,36 +493,87 @@ */
key.legacy = legacy;
return ((_pwg_media_t *)cupsArrayFind(cg->leg_size_lut, &key)); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaByName(const char *pwg) / I - PWG size name _/ +_pwg_mediat * / O - Matching size or NULL _/ +pwgMediaForPPD(const char *ppd) / I - PPD size name */ {
_cups_globals_t _cg = cupsGlobals(); / Global data */
/*
cg->pwg_size_lut = cupsArrayNew((cups_array_func_t)pwg_compare_pwg, NULL);
for (i = (int)(sizeof(cups_pwg_media) / sizeof(cups_pwg_media[0])),
size = (_pwg_media_t *)cups_pwg_media;
i > 0; i --, size ++) cupsArrayAdd(cg->pwg_size_lut, size); @@ -310,63 +584,101 @@ */
key.pwg = pwg;
return ((_pwg_media_t *)cupsArrayFind(cg->pwg_size_lut, &key)); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaBySize(double width, / I - Width in points */
return (media);
}
return (&(cg->pwg_media)); }
/*
static int /* O - Result of comparison _/ -compare_legacy(_cups_pwg_mediat *a, / I - First size */
_pwg_media_t *b) /* I - Second size */
{ return (strcmp(a->legacy, b->legacy)); }
/*
static int /* O - Result of comparison _/ -compare_pwg(_cups_pwg_mediat *a, / I - First size */
--- cups/pwg-ppd.c (revision 9039) +++ cups/pwg-ppd.c (working copy) @@ -1,10 +1,9 @@ /*
Contents: *
/*
-#include "pwgmedia.h" +#include "pwg-private.h"
@@ -34,343 +47,903 @@
/*
-#define _CUPS_SIZE_IN(p,l,x,y) {p, l, x * 72.0, y * 72.0} -#define _CUPS_SIZE_MM(p,l,x,y) {p, l, x / 25.4 * 72.0, y / 25.4 * 72.0} +static void pwg_ppdize_name(const char ipp, char name, size_t namesize); +static void pwg_unppdize_name(const char ppd, char name, size_t namesize);
/*
-static int compare_legacy(_cups_pwg_media_t _a, _cups_pwg_media_t b); -static int compare_pwg(_cups_pwg_media_t a, _cups_pwg_media_t b); +_pwgt * / O - PWG mapping data _/ +_pwgCreateWithPPD(ppd_file_t ppd) /_ I - PPD file */ +{
-/*
-static _cups_pwg_media_t const cups_pwg_media[] = -{ /* Media size lookup table */
-/*
-_cups_pwg_media_t * /* O - Matching size or NULL */ -_cupsPWGMediaByLegacy(
continue;
} }
/*
return (NULL); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaByName(const char *pwg) / I - PWG size name / +const char * / O - PPD InputSlot or NULL _/ +_pwgGetInputSlot(_pwgt *pwg, / I - PWG mapping data */
*media_type; /* media-type attribute */
return (NULL); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaBySize(double width, / I - Width in points */
return (size);
+ return (NULL); }
/*
-static int /* O - Result of comparison _/ -compare_legacy(_cups_pwg_mediat *a, / I - First size */
return (NULL); }
/*
-static int /* O - Result of comparison _/ -compare_pwg(_cups_pwg_mediat *a, / I - First size */
return (NULL); }
/*
ptr = '\0'; +} + + +/
--- cups/test.ppd (revision 9039) +++ cups/test.ppd (working copy) @@ -2,7 +2,7 @@ % % "$Id$" % -% Test PPD file for the Common UNIX Printing System (CUPS). +% Test PPD file for CUPS. % % This file is used to test the CUPS PPD API functions and cannot be % used with any known printers. Look on the CUPS web site for working PPD @@ -12,7 +12,7 @@ % to create your PPD files - not only will it save you time, it produces % consistently high-quality files. % -% Copyright 2007-2009 by Apple Inc. +% Copyright 2007-2010 by Apple Inc. % Copyright 2002-2006 by Easy Software Products. % % These coded instructions, statements, and computer programs are the @@ -65,6 +65,9 @@ PageSize Letter/US Letter: "PageSize=Letter" fr.PageSize Letter/French US Letter: "" fr_CA.PageSize Letter/French Canadian US Letter: "" +_PageSize Letter.Fullbleed/US Letter Borderless: "PageSize=Letter.Fullbleed" +_fr.PageSize Letter.Fullbleed/French US Letter Borderless: "" +_fr_CA.PageSize Letter.Fullbleed/French Canadian US Letter Borderless: "" _PageSize A4/A4: "PageSize=A4" fr.PageSize A4/French A4: "" fr_CA.PageSize A4/French Canadian A4: "" @@ -78,27 +81,32 @@ OrderDependency: 10 AnySetup PageRegion DefaultPageRegion: Letter PageRegion Letter/US Letter: "PageRegion=Letter" +_PageRegion Letter.Fullbleed/US Letter Borderless: "PageRegion=Letter.Fullbleed" PageRegion A4/A4: "PageRegion=A4" PageRegion Env10/#10 Envelope: "PageRegion=Env10" CloseUI: *PageRegion
_fr.Translation PageRegion/French Page Region: "" fr.PageRegion Letter/French US Letter: "" +_fr.PageRegion Letter.Fullbleed/French US Letter Borderless: "" fr.PageRegion A4/French A4: "" *fr.PageRegion Env10/French #10 Envelope: ""
_fr_CA.Translation PageRegion/French Canadian Page Region: "" fr_CA.PageRegion Letter/French Canadian US Letter: "" +_fr_CA.PageRegion Letter.Fullbleed/French Canadian US Letter Borderless: "" fr_CA.PageRegion A4/French Canadian A4: "" *fr_CA.PageRegion Env10/French Canadian #10 Envelope: ""
_DefaultImageableArea: Letter ImageableArea Letter: "18 36 594 756" +_ImageableArea Letter.Fullbleed: "0 0 612 792" ImageableArea A4: "18 36 577 806" *ImageableArea Env10: "18 36 279 648"
_DefaultPaperDimension: Letter PaperDimension Letter: "612 792" +_PaperDimension Letter.Fullbleed: "612 792" PaperDimension A4: "595 842" *PaperDimension Env10: "297 684"
@@ -120,6 +128,15 @@ InputSlot Envelope/Envelope Feed: "InputSlot=Envelope" CloseUI: *InputSlot
+_OpenUI MediaType/Media Type: PickOne +_OrderDependency: 25 AnySetup _MediaType +_DefaultMediaType: Plain +_MediaType Plain/Plain Paper: "MediaType=Plain" +_MediaType Matte/Matte Photo: "MediaType=Matte" +_MediaType Glossy/Glossy Photo: "MediaType=Glossy" +_MediaType Transparency/Transparency Film: "MediaType=Transparency" +CloseUI: MediaType + OpenUI Duplex/2-Sided Printing: PickOne OrderDependency: 10 DocumentSetup Duplex DefaultDuplex: None
--- cups/ppd.c (revision 9039) +++ cups/ppd.c (working copy) @@ -1,9 +1,9 @@ /*
These coded instructions, statements, and computer programs are the @@ -60,6 +60,7 @@ */
+#include "pwg-private.h"
@@ -314,6 +315,13 @@ }
/*
--- cups/ppd.h (revision 9039) +++ cups/ppd.h (working copy) @@ -1,10 +1,9 @@ /*
These coded instructions, statements, and computer programs are the @@ -334,6 +333,9 @@
/** New in CUPS 1.4/Mac OS X 10.6 *_/ cups_array_t cupsuiconstraints; / cupsUIConstraints @since CUPS 1.4/Mac OS X 10.6@ @private@ / +
--- cups/mark.c (revision 9039) +++ cups/mark.c (working copy) @@ -34,8 +34,6 @@
conflicts.
/* @@ -45,7 +43,7 @@
-#include "pwgmedia.h" +#include "pwg-private.h"
/ @@ -61,7 +59,6 @@ static void ppd_mark_choices(ppd_file_t ppd, const char s); static void ppd_mark_option(ppd_file_t ppd, const char option, const char choice); -static void ppd_mark_size(ppd_file_t ppd, const char size);
/ @@ -83,8 +80,8 @@ s[255]; /* Temporary string _/ const char val, / Pointer into value / media, /_ media option /
/*
media = cupsGetOption("media", num_options, options);
if (!page_size || !page_size[0])
if (cupsGetOption("InputSlot", num_options, options) == NULL)
if (cupsGetOption("MediaColor", num_options, options) == NULL)
@@ -241,8 +184,7 @@ */
for (i = num_options, optptr = options; i > 0; i --, optptr ++)
if (!strcasecmp(optptr->name, "media")) continue; else if (!strcasecmp(optptr->name, "sides")) { @@ -1204,106 +1146,5 @@
/*
-static void -ppd_mark_size(ppd_file_t ppd, / I - PPD file */
- -/*
--- cups/Makefile (revision 9039) +++ cups/Makefile (working copy) @@ -56,7 +56,9 @@ options.o \ page.o \ ppd.o \
@@ -130,6 +133,7 @@ testlang \ testoptions \ testppd \
testpwg \
testsnmp
TARGETS = \ @@ -506,6 +510,18 @@
# +# testpwg (dependency on static CUPS library is intentional) +# + +testpwg: testpwg.o $(LIBCUPSSTATIC) test.ppd
#
--- cups/dest.c (revision 9039) +++ cups/dest.c (working copy) @@ -53,7 +53,7 @@
-#include "pwgmedia.h" +#include "pwg-private.h"
@@ -1095,8 +1095,8 @@ appleGetPaperSize(char name, / I - Paper size name buffer / int namesize) / I - Size of buffer */ {
_pwg_media_t pwgmedia; / PWG media size */
defaultPaperID = CFPreferencesCopyAppValue(kDefaultPaperIDKey, @@ -1106,7 +1106,7 @@ !CFStringGetCString(defaultPaperID, name, namesize, kCFStringEncodingUTF8)) name[0] = '\0';
else if ((pwgmedia = _pwgMediaForLegacy(name)) != NULL) strlcpy(name, pwgmedia->pwg, namesize);
if (defaultPaperID)
--- cups/pwgmedia.c (revision 9039) +++ cups/pwgmedia.c (working copy) @@ -1,376 +0,0 @@ -/*
-/*
-#include "pwgmedia.h" -#include "globals.h" -#include "string.h" -#include "debug.h"
-/*
-#define _CUPS_SIZE_IN(p,l,x,y) {p, l, x * 72.0, y * 72.0}
-/*
-static int compare_legacy(_cups_pwg_media_t a, _cups_pwg_media_t b);
-/*
-static _cups_pwg_media_t const cups_pwg_media[] = -{ /* Media size lookup table */
- -/*
-_cups_pwg_media_t * /* O - Matching size or NULL */ -_cupsPWGMediaByLegacy(
- -/_
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaByName(const char *pwg) / I - PWG size name */ -{
- -/_
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaBySize(double width, / I - Width in points */
- -/*
-static int /* O - Result of comparison _/ -compare_legacy(_cups_pwg_mediat *a, / I - First size */
- -/*
-static int /* O - Result of comparison _/ -compare_pwg(_cups_pwg_mediat *a, / I - First size */
- -/*
--- cups/pwgmedia.h (revision 9039) +++ cups/pwgmedia.h (working copy) @@ -1,59 +0,0 @@ -/_
-#ifndef _CUPS_PWGMEDIAH
-/*
-# ifdef __cplusplus -extern "C" {
-/*
-typedef struct _cups_pwg_media_s /\ Common media size data **/ -{
- -/_
-extern _cups_pwg_media_t _cupsPWGMediaByLegacy(const char legacy); -extern _cups_pwg_media_t _cupsPWGMediaByName(const char pwg); -extern _cups_pwg_media_t *_cupsPWGMediaBySize(double width,
-# ifdef __cplusplus -}
-/*
--- cups/pwg-private.h (revision 9039) +++ cups/pwg-private.h (working copy) @@ -1,22 +1,31 @@ /_
-#ifndef _CUPS_PWGMEDIAH -# define _CUPS_PWGMEDIAH +#ifndef _CUPS_PWG_PRIVATEH +# define _CUPS_PWG_PRIVATEH
/*
@@ -26,33 +35,105 @@
/*
-typedef struct _cups_pwg_medias /** Common media size data */ +typedef struct _pwg_medias /*** Common media size data **_/ { const char pwg, /_ PWG 5101.1 "self describing" name */
+typedef struct _pwg_map_s /*** Map element - PPD to/from PWG / +{
+typedef struct _pwg_size_s /*** Size element - PPD to/from PWG / +{
-extern _cups_pwg_media_t _cupsPWGMediaByLegacy(const char legacy); -extern _cups_pwg_media_t _cupsPWGMediaByName(const char pwg); -extern _cups_pwg_media_t *_cupsPWGMediaBySize(double width,
char *name, size_t namesize);
+extern int _pwgWriteFile(_pwg_t pwg, const char filename);
}
-#endif /* !_CUPS_PWGMEDIAH / +#endif / !_CUPS_PWG_PRIVATEH */
/*
--- cups/pwg-file.c (revision 9039) +++ cups/pwg-file.c (working copy) @@ -1,10 +1,9 @@ /*
Contents: *
/*
-#include "pwgmedia.h" +#include "pwg-private.h"
@@ -34,340 +32,457 @@
/*
-#define _CUPS_SIZE_IN(p,l,x,y) {p, l, x * 72.0, y * 72.0} -#define _CUPS_SIZE_MM(p,l,x,y) {p, l, x / 25.4 * 72.0, y / 25.4 * 72.0} +_pwgt * /* O - PWG mapping data / +pwgCreateWithFile(const char *filename)/ I - File to read */ +{
-/*
-static int compare_legacy(_cups_pwg_media_t a, _cups_pwg_media_t b); -static int compare_pwg(_cups_pwg_media_t a, _cups_pwg_media_t b);
-/*
-static _cups_pwg_media_t const cups_pwg_media[] = -{ /* Media size lookup table */
line, value, linenum));
-/*
-_cups_pwg_media_t * /* O - Matching size or NULL */ -_cupsPWGMediaByLegacy(
}
size = pwg->sizes + pwg->num_sizes;
}
return (NULL); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaByName(const char *pwg) / I - PWG size name _/ +void +_pwgDestroy(_pwgt *pwg) / I - PWG mapping data */ {
_pwg_size_t size; / Current size */
/*
free(pwg); }
/*
-_cups_pwg_mediat * /* O - Matching size or NULL / -cupsPWGMediaBySize(double width, / I - Width in points */
-/*
-static int /* O - Result of comparison _/ -compare_legacy(_cups_pwg_mediat *a, / I - First size */
pwg->custom_size.right, pwg->custom_size.top);
-/*
-static int /* O - Result of comparison _/ -compare_pwg(_cups_pwg_mediat *a, / I - First size */
--- cups/page.c (revision 9039) +++ cups/page.c (working copy) @@ -44,7 +44,7 @@ { int i; /* Looping var _/ ppd_sizet *size; / Current page size */
* Custom.WIDTHxLENGTHm - Size in meters
loc = localeconv();
w = _cupsStrScand(name + 7, &nameptr, loc);
if (!nameptr || *nameptr != 'x') return (NULL);
l = (float)_cupsStrScand(nameptr + 1, &nameptr, loc);
l = _cupsStrScand(nameptr + 1, &nameptr, loc);
if (!nameptr) return (NULL);
if (!strcasecmp(nameptr, "in")) {
l *= 72.0 / 0.0254;
}
size->width = w;
size->top = (float)(l - ppd->custom_margins[3]);
/*
--- cups/testpwg.c (revision 9039) +++ cups/testpwg.c (working copy) @@ -1,10 +1,9 @@ /*
/*
-#include
/*
-static const char *default_code =
-static const char *custom_code =
-static const char *default2_code =
/*
'main()' - Main entry. */
int /* O - Exit status / -main(int argc, / I - Number of command-line arguments / +main(int argc, / I - Number of command-line args / char *argv[]) / I - Command-line arguments */ {
status = 0;
status ++;
/*
*map2; /* Map from saved */
puts("FAIL");
pwg->num_sizes);
puts("FAIL");
"size->map.pwg=\"%s\"\n", size2->map.pwg, size->map.pwg);
"size->map.ppd=\"%s\"\n", size2->map.ppd, size->map.ppd);
size2->width, size->width);
size2->length, size->length);
size2->left, size->left);
size2->bottom, size->bottom);
size2->right, size->right);
size2->top, size->top);
puts("FAIL");
map2->pwg, map->pwg);
map2->ppd, map->ppd);
puts("FAIL");
for (k = 0; k < option->num_choices; k ++)
map2->pwg, map->pwg);
if ((coption = ppdFindCustomOption(ppd, option->keyword)) != NULL)
map2->ppd, map->ppd);
case PPD_CUSTOM_INT :
attr->text, attr->value ? attr->value : "");
}
-#ifdef APPLE
return (status); }
--- cups/Dependencies (revision 9039) +++ cups/Dependencies (working copy) @@ -2,112 +2,131 @@
adminutil.o: adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h adminutil.o: file.h language.h globals.h string.h ../config.h http-private.h -adminutil.o: md5.h ipp-private.h i18n.h transcode.h debug.h +adminutil.o: md5.h ipp-private.h i18n.h transcode.h pwg-private.h +adminutil.o: ../cups/cups.h debug.h array.o: array.h versioning.h string.h ../config.h debug.h attr.o: ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h attr.o: language.h debug.h string.h ../config.h auth.o: globals.h string.h ../config.h http-private.h http.h versioning.h auth.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -auth.o: i18n.h transcode.h debug.h +auth.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h backchannel.o: cups.h ipp.h http.h versioning.h ppd.h array.h file.h backchannel.o: language.h backend.o: backend.h versioning.h globals.h string.h ../config.h backend.o: http-private.h http.h md5.h ipp-private.h ipp.h cups.h ppd.h -backend.o: array.h file.h language.h i18n.h transcode.h +backend.o: array.h file.h language.h i18n.h transcode.h pwg-private.h +backend.o: ../cups/cups.h conflicts.o: ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h conflicts.o: file.h language.h string.h ../config.h debug.h custom.o: globals.h string.h ../config.h http-private.h http.h versioning.h custom.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -custom.o: i18n.h transcode.h debug.h +custom.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h debug.o: globals.h string.h ../config.h http-private.h http.h versioning.h debug.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -debug.o: i18n.h transcode.h debug.h +debug.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h dest.o: debug.h globals.h string.h ../config.h http-private.h http.h dest.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h -dest.o: language.h i18n.h transcode.h pwgmedia.h +dest.o: language.h i18n.h transcode.h pwg-private.h ../cups/cups.h dir.o: dir.h versioning.h string.h ../config.h debug.h emit.o: ppd.h array.h versioning.h file.h string.h ../config.h debug.h encode.o: cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h encode.o: ipp-private.h string.h ../config.h debug.h file.o: file-private.h http-private.h ../config.h http.h versioning.h md5.h file.o: ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h file.h -file.o: language.h i18n.h transcode.h debug.h +file.o: language.h i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h getdevices.o: globals.h string.h ../config.h http-private.h http.h getdevices.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getdevices.o: file.h language.h i18n.h transcode.h debug.h +getdevices.o: file.h language.h i18n.h transcode.h pwg-private.h +getdevices.o: ../cups/cups.h debug.h getifaddrs.o: http-private.h ../config.h http.h versioning.h md5.h getifaddrs.o: ipp-private.h ipp.h getputfile.o: globals.h string.h ../config.h http-private.h http.h getputfile.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getputfile.o: file.h language.h i18n.h transcode.h debug.h +getputfile.o: file.h language.h i18n.h transcode.h pwg-private.h +getputfile.o: ../cups/cups.h debug.h globals.o: http-private.h ../config.h http.h versioning.h md5.h ipp-private.h globals.o: ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -globals.o: i18n.h transcode.h +globals.o: i18n.h transcode.h pwg-private.h ../cups/cups.h http.o: http-private.h ../config.h http.h versioning.h md5.h ipp-private.h http.o: ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -http.o: i18n.h transcode.h debug.h +http.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h http-addr.o: http-private.h ../config.h http.h versioning.h md5.h http-addr.o: ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addr.o: file.h language.h i18n.h transcode.h debug.h +http-addr.o: file.h language.h i18n.h transcode.h pwg-private.h +http-addr.o: ../cups/cups.h debug.h http-addrlist.o: http-private.h ../config.h http.h versioning.h md5.h http-addrlist.o: ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addrlist.o: file.h language.h i18n.h transcode.h debug.h +http-addrlist.o: file.h language.h i18n.h transcode.h pwg-private.h +http-addrlist.o: ../cups/cups.h debug.h http-support.o: debug.h globals.h string.h ../config.h http-private.h http.h http-support.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -http-support.o: file.h language.h i18n.h transcode.h +http-support.o: file.h language.h i18n.h transcode.h pwg-private.h +http-support.o: ../cups/cups.h ipp.o: http-private.h ../config.h http.h versioning.h md5.h ipp-private.h ipp.o: ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h -ipp.o: transcode.h debug.h +ipp.o: transcode.h pwg-private.h ../cups/cups.h debug.h ipp-support.o: globals.h string.h ../config.h http-private.h http.h ipp-support.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -ipp-support.o: file.h language.h i18n.h transcode.h debug.h +ipp-support.o: file.h language.h i18n.h transcode.h pwg-private.h +ipp-support.o: ../cups/cups.h debug.h langprintf.o: globals.h string.h ../config.h http-private.h http.h langprintf.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -langprintf.o: file.h language.h i18n.h transcode.h +langprintf.o: file.h language.h i18n.h transcode.h pwg-private.h +langprintf.o: ../cups/cups.h language.o: globals.h string.h ../config.h http-private.h http.h versioning.h language.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -language.o: i18n.h transcode.h debug.h +language.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h localize.o: globals.h string.h ../config.h http-private.h http.h versioning.h localize.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -localize.o: i18n.h transcode.h ppd-private.h debug.h +localize.o: i18n.h transcode.h pwg-private.h ../cups/cups.h ppd-private.h +localize.o: debug.h mark.o: cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h -mark.o: string.h ../config.h debug.h pwgmedia.h +mark.o: string.h ../config.h debug.h pwg-private.h ../cups/cups.h md5.o: md5.h string.h ../config.h md5passwd.o: http-private.h ../config.h http.h versioning.h md5.h md5passwd.o: ipp-private.h ipp.h string.h notify.o: globals.h string.h ../config.h http-private.h http.h versioning.h notify.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -notify.o: i18n.h transcode.h +notify.o: i18n.h transcode.h pwg-private.h ../cups/cups.h options.o: cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h options.o: string.h ../config.h debug.h page.o: ppd.h array.h versioning.h file.h string.h ../config.h debug.h ppd.o: ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h -ppd.o: language.h globals.h string.h ../config.h http-private.h md5.h -ppd.o: ipp-private.h i18n.h transcode.h debug.h -pwgmedia.o: pwgmedia.h globals.h string.h ../config.h http-private.h http.h -pwgmedia.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -pwgmedia.o: file.h language.h i18n.h transcode.h debug.h +ppd.o: language.h pwg-private.h ../cups/cups.h globals.h string.h ../config.h +ppd.o: http-private.h md5.h ipp-private.h i18n.h transcode.h debug.h +pwg-file.o: pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-file.o: http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-file.o: cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h +pwg-media.o: pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-media.o: http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-media.o: cups.h ppd.h array.h file.h language.h i18n.h transcode.h +pwg-media.o: debug.h +pwg-ppd.o: pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-ppd.o: http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-ppd.o: cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h request.o: globals.h string.h ../config.h http-private.h http.h versioning.h request.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -request.o: i18n.h transcode.h debug.h +request.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h sidechannel.o: sidechannel.h versioning.h string.h ../config.h debug.h snmp.o: globals.h string.h ../config.h http-private.h http.h versioning.h snmp.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -snmp.o: i18n.h transcode.h debug.h snmp-private.h +snmp.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h +snmp.o: snmp-private.h snprintf.o: string.h ../config.h string.o: array.h versioning.h debug.h string.h ../config.h tempfile.o: globals.h string.h ../config.h http-private.h http.h versioning.h tempfile.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -tempfile.o: i18n.h transcode.h debug.h +tempfile.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h transcode.o: globals.h string.h ../config.h http-private.h http.h transcode.o: versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -transcode.o: file.h language.h i18n.h transcode.h debug.h +transcode.o: file.h language.h i18n.h transcode.h pwg-private.h +transcode.o: ../cups/cups.h debug.h usersys.o: http-private.h ../config.h http.h versioning.h md5.h ipp-private.h usersys.o: ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -usersys.o: i18n.h transcode.h debug.h +usersys.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h util.o: globals.h string.h ../config.h http-private.h http.h versioning.h util.o: md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -util.o: i18n.h transcode.h debug.h +util.o: i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h testadmin.o: adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h testadmin.o: file.h language.h string.h ../config.h testarray.o: ../cups/string.h ../config.h string.h array.h versioning.h dir.h @@ -127,119 +146,138 @@ testoptions.o: array.h file.h language.h testlang.o: i18n.h transcode.h language.h array.h versioning.h string.h testlang.o: ../config.h -testppd.o: ../cups/string.h ../config.h string.h cups.h ipp.h http.h -testppd.o: versioning.h ppd.h array.h file.h language.h pwgmedia.h +testppd.o: ../cups/cups.h ../cups/string.h ../config.h string.h +testpwg.o: pwg-private.h ../cups/cups.h testsnmp.o: string.h ../config.h snmp-private.h http.h versioning.h
adminutil.32.o: adminutil.c adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h adminutil.32.o: adminutil.c file.h language.h globals.h string.h ../config.h http-private.h -adminutil.32.o: adminutil.c md5.h ipp-private.h i18n.h transcode.h debug.h +adminutil.32.o: adminutil.c md5.h ipp-private.h i18n.h transcode.h pwg-private.h +adminutil.32.o: adminutil.c ../cups/cups.h debug.h array.32.o: array.c array.h versioning.h string.h ../config.h debug.h attr.32.o: attr.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h attr.32.o: attr.c language.h debug.h string.h ../config.h auth.32.o: auth.c globals.h string.h ../config.h http-private.h http.h versioning.h auth.32.o: auth.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -auth.32.o: auth.c i18n.h transcode.h debug.h +auth.32.o: auth.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h backchannel.32.o: backchannel.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h backchannel.32.o: backchannel.c language.h backend.32.o: backend.c backend.h versioning.h globals.h string.h ../config.h
backend.32.o: backend.c http-private.h http.h md5.h ipp-private.h ipp.h cups.h ppd.h -backend.32.o: backend.c array.h file.h language.h i18n.h transcode.h +backend.32.o: backend.c array.h file.h language.h i18n.h transcode.h pwg-private.h +backend.32.o: backend.c ../cups/cups.h conflicts.32.o: conflicts.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h conflicts.32.o: conflicts.c file.h language.h string.h ../config.h debug.h custom.32.o: custom.c globals.h string.h ../config.h http-private.h http.h versioning.h custom.32.o: custom.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -custom.32.o: custom.c i18n.h transcode.h debug.h +custom.32.o: custom.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h debug.32.o: debug.c globals.h string.h ../config.h http-private.h http.h versioning.h debug.32.o: debug.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -debug.32.o: debug.c i18n.h transcode.h debug.h +debug.32.o: debug.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h dest.32.o: dest.c debug.h globals.h string.h ../config.h http-private.h http.h dest.32.o: dest.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h -dest.32.o: dest.c language.h i18n.h transcode.h pwgmedia.h +dest.32.o: dest.c language.h i18n.h transcode.h pwg-private.h ../cups/cups.h dir.32.o: dir.c dir.h versioning.h string.h ../config.h debug.h emit.32.o: emit.c ppd.h array.h versioning.h file.h string.h ../config.h debug.h encode.32.o: encode.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h encode.32.o: encode.c ipp-private.h string.h ../config.h debug.h file.32.o: file.c file-private.h http-private.h ../config.h http.h versioning.h md5.h file.32.o: file.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h file.h -file.32.o: file.c language.h i18n.h transcode.h debug.h +file.32.o: file.c language.h i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h getdevices.32.o: getdevices.c globals.h string.h ../config.h http-private.h http.h getdevices.32.o: getdevices.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getdevices.32.o: getdevices.c file.h language.h i18n.h transcode.h debug.h +getdevices.32.o: getdevices.c file.h language.h i18n.h transcode.h pwg-private.h +getdevices.32.o: getdevices.c ../cups/cups.h debug.h getifaddrs.32.o: getifaddrs.c http-private.h ../config.h http.h versioning.h md5.h getifaddrs.32.o: getifaddrs.c ipp-private.h ipp.h getputfile.32.o: getputfile.c globals.h string.h ../config.h http-private.h http.h getputfile.32.o: getputfile.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getputfile.32.o: getputfile.c file.h language.h i18n.h transcode.h debug.h +getputfile.32.o: getputfile.c file.h language.h i18n.h transcode.h pwg-private.h +getputfile.32.o: getputfile.c ../cups/cups.h debug.h globals.32.o: globals.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h globals.32.o: globals.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -globals.32.o: globals.c i18n.h transcode.h +globals.32.o: globals.c i18n.h transcode.h pwg-private.h ../cups/cups.h http.32.o: http.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h http.32.o: http.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -http.32.o: http.c i18n.h transcode.h debug.h +http.32.o: http.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h http-addr.32.o: http-addr.c http-private.h ../config.h http.h versioning.h md5.h http-addr.32.o: http-addr.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addr.32.o: http-addr.c file.h language.h i18n.h transcode.h debug.h +http-addr.32.o: http-addr.c file.h language.h i18n.h transcode.h pwg-private.h +http-addr.32.o: http-addr.c ../cups/cups.h debug.h http-addrlist.32.o: http-addrlist.c http-private.h ../config.h http.h versioning.h md5.h http-addrlist.32.o: http-addrlist.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addrlist.32.o: http-addrlist.c file.h language.h i18n.h transcode.h debug.h +http-addrlist.32.o: http-addrlist.c file.h language.h i18n.h transcode.h pwg-private.h +http-addrlist.32.o: http-addrlist.c ../cups/cups.h debug.h http-support.32.o: http-support.c debug.h globals.h string.h ../config.h http-private.h http.h http-support.32.o: http-support.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -http-support.32.o: http-support.c file.h language.h i18n.h transcode.h +http-support.32.o: http-support.c file.h language.h i18n.h transcode.h pwg-private.h +http-support.32.o: http-support.c ../cups/cups.h ipp.32.o: ipp.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h ipp.32.o: ipp.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h -ipp.32.o: ipp.c transcode.h debug.h +ipp.32.o: ipp.c transcode.h pwg-private.h ../cups/cups.h debug.h ipp-support.32.o: ipp-support.c globals.h string.h ../config.h http-private.h http.h ipp-support.32.o: ipp-support.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -ipp-support.32.o: ipp-support.c file.h language.h i18n.h transcode.h debug.h +ipp-support.32.o: ipp-support.c file.h language.h i18n.h transcode.h pwg-private.h +ipp-support.32.o: ipp-support.c ../cups/cups.h debug.h langprintf.32.o: langprintf.c globals.h string.h ../config.h http-private.h http.h langprintf.32.o: langprintf.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -langprintf.32.o: langprintf.c file.h language.h i18n.h transcode.h +langprintf.32.o: langprintf.c file.h language.h i18n.h transcode.h pwg-private.h +langprintf.32.o: langprintf.c ../cups/cups.h language.32.o: language.c globals.h string.h ../config.h http-private.h http.h versioning.h language.32.o: language.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -language.32.o: language.c i18n.h transcode.h debug.h +language.32.o: language.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h localize.32.o: localize.c globals.h string.h ../config.h http-private.h http.h versioning.h localize.32.o: localize.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -localize.32.o: localize.c i18n.h transcode.h ppd-private.h debug.h +localize.32.o: localize.c i18n.h transcode.h pwg-private.h ../cups/cups.h ppd-private.h +localize.32.o: localize.c debug.h mark.32.o: mark.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h -mark.32.o: mark.c string.h ../config.h debug.h pwgmedia.h +mark.32.o: mark.c string.h ../config.h debug.h pwg-private.h ../cups/cups.h md5.32.o: md5.c md5.h string.h ../config.h md5passwd.32.o: md5passwd.c http-private.h ../config.h http.h versioning.h md5.h md5passwd.32.o: md5passwd.c ipp-private.h ipp.h string.h notify.32.o: notify.c globals.h string.h ../config.h http-private.h http.h versioning.h notify.32.o: notify.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -notify.32.o: notify.c i18n.h transcode.h +notify.32.o: notify.c i18n.h transcode.h pwg-private.h ../cups/cups.h options.32.o: options.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h options.32.o: options.c string.h ../config.h debug.h page.32.o: page.c ppd.h array.h versioning.h file.h string.h ../config.h debug.h ppd.32.o: ppd.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h -ppd.32.o: ppd.c language.h globals.h string.h ../config.h http-private.h md5.h -ppd.32.o: ppd.c ipp-private.h i18n.h transcode.h debug.h -pwgmedia.32.o: pwgmedia.c pwgmedia.h globals.h string.h ../config.h http-private.h http.h -pwgmedia.32.o: pwgmedia.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -pwgmedia.32.o: pwgmedia.c file.h language.h i18n.h transcode.h debug.h +ppd.32.o: ppd.c language.h pwg-private.h ../cups/cups.h globals.h string.h ../config.h +ppd.32.o: ppd.c http-private.h md5.h ipp-private.h i18n.h transcode.h debug.h +pwg-file.32.o: pwg-file.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-file.32.o: pwg-file.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-file.32.o: pwg-file.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h +pwg-media.32.o: pwg-media.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-media.32.o: pwg-media.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-media.32.o: pwg-media.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h +pwg-media.32.o: pwg-media.c debug.h +pwg-ppd.32.o: pwg-ppd.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-ppd.32.o: pwg-ppd.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-ppd.32.o: pwg-ppd.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h request.32.o: request.c globals.h string.h ../config.h http-private.h http.h versioning.h request.32.o: request.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -request.32.o: request.c i18n.h transcode.h debug.h +request.32.o: request.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h sidechannel.32.o: sidechannel.c sidechannel.h versioning.h string.h ../config.h debug.h snmp.32.o: snmp.c globals.h string.h ../config.h http-private.h http.h versioning.h snmp.32.o: snmp.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -snmp.32.o: snmp.c i18n.h transcode.h debug.h snmp-private.h +snmp.32.o: snmp.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h +snmp.32.o: snmp.c snmp-private.h snprintf.32.o: snprintf.c string.h ../config.h string.32.o: string.c array.h versioning.h debug.h string.h ../config.h tempfile.32.o: tempfile.c globals.h string.h ../config.h http-private.h http.h versioning.h tempfile.32.o: tempfile.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -tempfile.32.o: tempfile.c i18n.h transcode.h debug.h +tempfile.32.o: tempfile.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h transcode.32.o: transcode.c globals.h string.h ../config.h http-private.h http.h transcode.32.o: transcode.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -transcode.32.o: transcode.c file.h language.h i18n.h transcode.h debug.h +transcode.32.o: transcode.c file.h language.h i18n.h transcode.h pwg-private.h +transcode.32.o: transcode.c ../cups/cups.h debug.h usersys.32.o: usersys.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h usersys.32.o: usersys.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -usersys.32.o: usersys.c i18n.h transcode.h debug.h +usersys.32.o: usersys.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h util.32.o: util.c globals.h string.h ../config.h http-private.h http.h versioning.h util.32.o: util.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -util.32.o: util.c i18n.h transcode.h debug.h +util.32.o: util.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h testadmin.32.o: testadmin.c adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h testadmin.32.o: testadmin.c file.h language.h string.h ../config.h testarray.32.o: testarray.c ../cups/string.h ../config.h string.h array.h versioning.h dir.h @@ -259,119 +297,138 @@ testoptions.32.o: testoptions.c array.h file.h language.h testlang.32.o: testlang.c i18n.h transcode.h language.h array.h versioning.h string.h testlang.32.o: testlang.c ../config.h -testppd.32.o: testppd.c ../cups/string.h ../config.h string.h cups.h ipp.h http.h -testppd.32.o: testppd.c versioning.h ppd.h array.h file.h language.h pwgmedia.h +testppd.32.o: testppd.c ../cups/cups.h ../cups/string.h ../config.h string.h +testpwg.32.o: testpwg.c pwg-private.h ../cups/cups.h testsnmp.32.o: testsnmp.c string.h ../config.h snmp-private.h http.h versioning.h
adminutil.64.o: adminutil.c adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h adminutil.64.o: adminutil.c file.h language.h globals.h string.h ../config.h http-private.h -adminutil.64.o: adminutil.c md5.h ipp-private.h i18n.h transcode.h debug.h +adminutil.64.o: adminutil.c md5.h ipp-private.h i18n.h transcode.h pwg-private.h +adminutil.64.o: adminutil.c ../cups/cups.h debug.h array.64.o: array.c array.h versioning.h string.h ../config.h debug.h attr.64.o: attr.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h attr.64.o: attr.c language.h debug.h string.h ../config.h auth.64.o: auth.c globals.h string.h ../config.h http-private.h http.h versioning.h auth.64.o: auth.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -auth.64.o: auth.c i18n.h transcode.h debug.h +auth.64.o: auth.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h backchannel.64.o: backchannel.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h backchannel.64.o: backchannel.c language.h backend.64.o: backend.c backend.h versioning.h globals.h string.h ../config.h backend.64.o: backend.c http-private.h http.h md5.h ipp-private.h ipp.h cups.h ppd.h -backend.64.o: backend.c array.h file.h language.h i18n.h transcode.h +backend.64.o: backend.c array.h file.h language.h i18n.h transcode.h pwg-private.h +backend.64.o: backend.c ../cups/cups.h conflicts.64.o: conflicts.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h conflicts.64.o: conflicts.c file.h language.h string.h ../config.h debug.h custom.64.o: custom.c globals.h string.h ../config.h http-private.h http.h versioning.h custom.64.o: custom.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -custom.64.o: custom.c i18n.h transcode.h debug.h +custom.64.o: custom.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h debug.64.o: debug.c globals.h string.h ../config.h http-private.h http.h versioning.h debug.64.o: debug.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -debug.64.o: debug.c i18n.h transcode.h debug.h +debug.64.o: debug.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h dest.64.o: dest.c debug.h globals.h string.h ../config.h http-private.h http.h dest.64.o: dest.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h -dest.64.o: dest.c language.h i18n.h transcode.h pwgmedia.h +dest.64.o: dest.c language.h i18n.h transcode.h pwg-private.h ../cups/cups.h dir.64.o: dir.c dir.h versioning.h string.h ../config.h debug.h emit.64.o: emit.c ppd.h array.h versioning.h file.h string.h ../config.h debug.h encode.64.o: encode.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h encode.64.o: encode.c ipp-private.h string.h ../config.h debug.h file.64.o: file.c file-private.h http-private.h ../config.h http.h versioning.h md5.h file.64.o: file.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h file.h -file.64.o: file.c language.h i18n.h transcode.h debug.h +file.64.o: file.c language.h i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h getdevices.64.o: getdevices.c globals.h string.h ../config.h http-private.h http.h getdevices.64.o: getdevices.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getdevices.64.o: getdevices.c file.h language.h i18n.h transcode.h debug.h +getdevices.64.o: getdevices.c file.h language.h i18n.h transcode.h pwg-private.h +getdevices.64.o: getdevices.c ../cups/cups.h debug.h getifaddrs.64.o: getifaddrs.c http-private.h ../config.h http.h versioning.h md5.h getifaddrs.64.o: getifaddrs.c ipp-private.h ipp.h getputfile.64.o: getputfile.c globals.h string.h ../config.h http-private.h http.h getputfile.64.o: getputfile.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -getputfile.64.o: getputfile.c file.h language.h i18n.h transcode.h debug.h +getputfile.64.o: getputfile.c file.h language.h i18n.h transcode.h pwg-private.h +getputfile.64.o: getputfile.c ../cups/cups.h debug.h globals.64.o: globals.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h globals.64.o: globals.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -globals.64.o: globals.c i18n.h transcode.h +globals.64.o: globals.c i18n.h transcode.h pwg-private.h ../cups/cups.h http.64.o: http.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h http.64.o: http.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -http.64.o: http.c i18n.h transcode.h debug.h +http.64.o: http.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h http-addr.64.o: http-addr.c http-private.h ../config.h http.h versioning.h md5.h http-addr.64.o: http-addr.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addr.64.o: http-addr.c file.h language.h i18n.h transcode.h debug.h +http-addr.64.o: http-addr.c file.h language.h i18n.h transcode.h pwg-private.h +http-addr.64.o: http-addr.c ../cups/cups.h debug.h http-addrlist.64.o: http-addrlist.c http-private.h ../config.h http.h versioning.h md5.h http-addrlist.64.o: http-addrlist.c ipp-private.h ipp.h globals.h string.h cups.h ppd.h array.h -http-addrlist.64.o: http-addrlist.c file.h language.h i18n.h transcode.h debug.h +http-addrlist.64.o: http-addrlist.c file.h language.h i18n.h transcode.h pwg-private.h +http-addrlist.64.o: http-addrlist.c ../cups/cups.h debug.h http-support.64.o: http-support.c debug.h globals.h string.h ../config.h http-private.h http.h http-support.64.o: http-support.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -http-support.64.o: http-support.c file.h language.h i18n.h transcode.h +http-support.64.o: http-support.c file.h language.h i18n.h transcode.h pwg-private.h +http-support.64.o: http-support.c ../cups/cups.h ipp.64.o: ipp.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h ipp.64.o: ipp.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h -ipp.64.o: ipp.c transcode.h debug.h +ipp.64.o: ipp.c transcode.h pwg-private.h ../cups/cups.h debug.h ipp-support.64.o: ipp-support.c globals.h string.h ../config.h http-private.h http.h ipp-support.64.o: ipp-support.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -ipp-support.64.o: ipp-support.c file.h language.h i18n.h transcode.h debug.h +ipp-support.64.o: ipp-support.c file.h language.h i18n.h transcode.h pwg-private.h +ipp-support.64.o: ipp-support.c ../cups/cups.h debug.h langprintf.64.o: langprintf.c globals.h string.h ../config.h http-private.h http.h langprintf.64.o: langprintf.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -langprintf.64.o: langprintf.c file.h language.h i18n.h transcode.h +langprintf.64.o: langprintf.c file.h language.h i18n.h transcode.h pwg-private.h +langprintf.64.o: langprintf.c ../cups/cups.h language.64.o: language.c globals.h string.h ../config.h http-private.h http.h versioning.h language.64.o: language.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -language.64.o: language.c i18n.h transcode.h debug.h +language.64.o: language.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h localize.64.o: localize.c globals.h string.h ../config.h http-private.h http.h versioning.h localize.64.o: localize.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -localize.64.o: localize.c i18n.h transcode.h ppd-private.h debug.h +localize.64.o: localize.c i18n.h transcode.h pwg-private.h ../cups/cups.h ppd-private.h +localize.64.o: localize.c debug.h mark.64.o: mark.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h -mark.64.o: mark.c string.h ../config.h debug.h pwgmedia.h +mark.64.o: mark.c string.h ../config.h debug.h pwg-private.h ../cups/cups.h md5.64.o: md5.c md5.h string.h ../config.h md5passwd.64.o: md5passwd.c http-private.h ../config.h http.h versioning.h md5.h md5passwd.64.o: md5passwd.c ipp-private.h ipp.h string.h notify.64.o: notify.c globals.h string.h ../config.h http-private.h http.h versioning.h notify.64.o: notify.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -notify.64.o: notify.c i18n.h transcode.h +notify.64.o: notify.c i18n.h transcode.h pwg-private.h ../cups/cups.h options.64.o: options.c cups.h ipp.h http.h versioning.h ppd.h array.h file.h language.h options.64.o: options.c string.h ../config.h debug.h page.64.o: page.c ppd.h array.h versioning.h file.h string.h ../config.h debug.h ppd.64.o: ppd.c ppd-private.h cups.h ipp.h http.h versioning.h ppd.h array.h file.h -ppd.64.o: ppd.c language.h globals.h string.h ../config.h http-private.h md5.h -ppd.64.o: ppd.c ipp-private.h i18n.h transcode.h debug.h -pwgmedia.64.o: pwgmedia.c pwgmedia.h globals.h string.h ../config.h http-private.h http.h -pwgmedia.64.o: pwgmedia.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -pwgmedia.64.o: pwgmedia.c file.h language.h i18n.h transcode.h debug.h +ppd.64.o: ppd.c language.h pwg-private.h ../cups/cups.h globals.h string.h ../config.h +ppd.64.o: ppd.c http-private.h md5.h ipp-private.h i18n.h transcode.h debug.h +pwg-file.64.o: pwg-file.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-file.64.o: pwg-file.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-file.64.o: pwg-file.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h +pwg-media.64.o: pwg-media.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-media.64.o: pwg-media.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-media.64.o: pwg-media.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h +pwg-media.64.o: pwg-media.c debug.h +pwg-ppd.64.o: pwg-ppd.c pwg-private.h ../cups/cups.h globals.h string.h ../config.h +pwg-ppd.64.o: pwg-ppd.c http-private.h http.h versioning.h md5.h ipp-private.h ipp.h +pwg-ppd.64.o: pwg-ppd.c cups.h ppd.h array.h file.h language.h i18n.h transcode.h debug.h request.64.o: request.c globals.h string.h ../config.h http-private.h http.h versioning.h request.64.o: request.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -request.64.o: request.c i18n.h transcode.h debug.h +request.64.o: request.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h sidechannel.64.o: sidechannel.c sidechannel.h versioning.h string.h ../config.h debug.h snmp.64.o: snmp.c globals.h string.h ../config.h http-private.h http.h versioning.h snmp.64.o: snmp.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -snmp.64.o: snmp.c i18n.h transcode.h debug.h snmp-private.h +snmp.64.o: snmp.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h +snmp.64.o: snmp.c snmp-private.h snprintf.64.o: snprintf.c string.h ../config.h string.64.o: string.c array.h versioning.h debug.h string.h ../config.h tempfile.64.o: tempfile.c globals.h string.h ../config.h http-private.h http.h versioning.h tempfile.64.o: tempfile.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -tempfile.64.o: tempfile.c i18n.h transcode.h debug.h +tempfile.64.o: tempfile.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h transcode.64.o: transcode.c globals.h string.h ../config.h http-private.h http.h transcode.64.o: transcode.c versioning.h md5.h ipp-private.h ipp.h cups.h ppd.h array.h -transcode.64.o: transcode.c file.h language.h i18n.h transcode.h debug.h +transcode.64.o: transcode.c file.h language.h i18n.h transcode.h pwg-private.h +transcode.64.o: transcode.c ../cups/cups.h debug.h usersys.64.o: usersys.c http-private.h ../config.h http.h versioning.h md5.h ipp-private.h usersys.64.o: usersys.c ipp.h globals.h string.h cups.h ppd.h array.h file.h language.h -usersys.64.o: usersys.c i18n.h transcode.h debug.h +usersys.64.o: usersys.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h util.64.o: util.c globals.h string.h ../config.h http-private.h http.h versioning.h util.64.o: util.c md5.h ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h -util.64.o: util.c i18n.h transcode.h debug.h +util.64.o: util.c i18n.h transcode.h pwg-private.h ../cups/cups.h debug.h testadmin.64.o: testadmin.c adminutil.h cups.h ipp.h http.h versioning.h ppd.h array.h testadmin.64.o: testadmin.c file.h language.h string.h ../config.h testarray.64.o: testarray.c ../cups/string.h ../config.h string.h array.h versioning.h dir.h @@ -391,6 +448,6 @@ testoptions.64.o: testoptions.c array.h file.h language.h testlang.64.o: testlang.c i18n.h transcode.h language.h array.h versioning.h string.h testlang.64.o: testlang.c ../config.h -testppd.64.o: testppd.c ../cups/string.h ../config.h string.h cups.h ipp.h http.h -testppd.64.o: testppd.c versioning.h ppd.h array.h file.h language.h pwgmedia.h +testppd.64.o: testppd.c ../cups/cups.h ../cups/string.h ../config.h string.h +testpwg.64.o: testpwg.c pwg-private.h ../cups/cups.h testsnmp.64.o: testsnmp.c string.h ../config.h snmp-private.h http.h versioning.h
--- cups/testppd.c (revision 9039) +++ cups/testppd.c (working copy) @@ -3,7 +3,7 @@ *
+#include <cups/cups.h> +#include <cups/string.h>
-#include <cups/string.h>
-#include "cups.h" -#include "pwgmedia.h"
@@ -58,6 +57,11 @@ "%%EndFeature\n" "} stopped cleartomark\n" "[{\n"
_cups_pwg_media_t pwgmedia; / PWG media size */
status = 0; @@ -437,20 +445,6 @@ else puts("PASS");
/*
* Test localization...
*/
--- cups/globals.h (revision 9039) +++ cups/globals.h (working copy) @@ -26,6 +26,7 @@
+# include "pwg-private.h"
@@ -103,9 +104,12 @@ int ppdline; /* Current line number / ppd_conform_t ppdconform; / Level of conformance required */
char pwg_name[65]; /* PWG media name for custom size */
/* snmp.c */ char snmp_community[255];
--- cups/testipp.c (revision 9039) +++ cups/testipp.c (working copy) @@ -3,7 +3,7 @@ *
+#include <cups/file.h>
@@ -82,6 +83,32 @@ 0x00, 0x00, /* No value _/ IPP_TAGMEMBERNAME, / memberAttrName tag / 0x00, 0x00, / No name */
@@ -180,14 +237,27 @@ "printer-uri", NULL, "ipp://localhost/printers/foo");
cols[0] = ippNew();
"plain");
cols[1] = ippNew();
"glossy");
(const ipp_t **)cols);
length = ippLength(request); if (length != sizeof(collection)) @@ -225,7 +295,11 @@ } else if (memcmp(wbuffer, collection, wused)) {
printf("FAIL - output does not match baseline at 0x%04x!\n", i);
hex_dump("Bytes Written", wbuffer, wused); hex_dump("Baseline", collection, sizeof(collection)); status = 1; @@ -271,13 +345,148 @@ else puts("PASS");
} + ippDelete(request);
/*
fputs("_ippFindOption(printer-type): ", stdout); if (_ippFindOption("printer-type")) puts("PASS"); else @@ -305,7 +514,7 @@
for (i = 1; i < argc; i ++) {
if ((fp = cupsFileOpen(argv[i], "r")) == NULL)
{ printf("Unable to open \"%s\" - %s\n", argv[i], strerror(errno)); status = 1; @@ -313,7 +522,8 @@ }
request = ippNew();
request)) == IPP_ATTRIBUTE);
if (state != IPP_DATA) { @@ -327,7 +537,7 @@ }
ippDelete(request);
--- test/get-printer-attributes-2.0.test (revision 9039) +++ test/get-printer-attributes-2.0.test (working copy) @@ -17,6 +17,7 @@ ATTR charset attributes-charset utf-8 ATTR language attributes-natural-language en ATTR uri printer-uri $uri
ATTR keyword requested-attributes printer-defaults,printer-description,media-col-database
STATUS successful-ok
--- test/print-job-media-col.test (revision 9039) +++ test/print-job-media-col.test (working copy) @@ -22,8 +22,8 @@ ATTR collection media-col { MEMBER collection media-size {
--- scheduler/ipp.c (revision 9039) +++ scheduler/ipp.c (working copy) @@ -1347,6 +1347,11 @@ int kbytes; /* Size of print file / int i; / Looping var / int lowerpagerange; / Page range bound */
ipp_t _unsupcol; / media-col in unsupported response */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", @@ -1513,6 +1518,62 @@ }
/*
@@ -2883,6 +2944,10 @@ printer->name); unlink(cache_name);
/*
@@ -4683,11 +4749,14 @@ { / \ Don't send collection attributes by default to IPP/1.x clients
* media-col-database unless specifically requested by the client.
*/
if (fromattr->value_tag == IPP_TAG_BEGIN_COLLECTION &&
!strcmp(fromattr->name, "media-col-database")))
continue;
copyattribute(to, fromattr, quickcopy); @@ -5052,6 +5121,7 @@ int i; /* Looping var / char option[PPD_MAXNAME], / Option name _/ choice[PPD_MAXNAME]; / Choice name */
ppd_size_t size; / Default size _/ int numdefaults; / Number of default options _/ cups_optiont *defaults; / Default options */ char cups_protocol[PPD_MAX_LINE]; @@ -5224,19 +5294,19 @@
cupsFileClose(dst); }
@@ -6373,6 +6443,9 @@ snprintf(filename, sizeof(filename), "%s/%s.ipp2", CacheDir, printer->name); unlink(filename);
/*
--- scheduler/printers.c (revision 9039) +++ scheduler/printers.c (working copy) @@ -51,6 +51,7 @@
-#include <cups/pwgmedia.h>
/ @@ -80,6 +80,8 @@ static void delete_printer_filters(cupsd_printer_t _p); static void delete_string_array(cups_array_t _a); static void load_ppd(cupsd_printer_t p); +static ipp_t new_media_col(_pwg_size_t size, const char source,
static void write_irix_config(cupsd_printer_t p); static void write_irix_state(cupsd_printer_t p); @@ -356,9 +358,12 @@ }; static const char * const media_colsupported[] = { / media-col-supported values */
"output-bin",
"orientation-requested",
"page-ranges",
"print-quality",
@@ -459,6 +486,12 @@ "ipp-versions-supported", sizeof(versions) / sizeof(versions[0]), NULL, versions);
margins[16]; /* media-*-margin-supported values */
static const char * const sides[3] = /* sides-supported values */ { "one-sided", @@ -3941,6 +3979,10 @@ if (stat(cache_name, &cache_info)) cache_info.st_mtime = 0;
if (cache_info.st_mtime >= ppd_info.st_mtime && p->pwg && (cache = cupsFileOpen(cache_name, "r")) != NULL) { /* @@ -3973,6 +4021,9 @@
cupsdMarkDirty(CUPSD_DIRTY_PRINTERS);
p->pwg = NULL; + cupsdLogMessage(CUPSD_LOG_DEBUG, "load_ppd: Loading %s...", ppd_name);
delete_string_array(&(p->filters)); @@ -3990,6 +4041,8 @@
p->pwg = _pwgCreateWithPPD(ppd); + ppdMarkDefaults(ppd);
if (ppd->color_device) @@ -4080,7 +4133,7 @@
if (ppd->num_sizes == 0 || !p->pwg) { if (!ppdFindAttr(ppd, "APScannerOnly", NULL)) cupsdLogMessage(CUPSD_LOG_CRIT, @@ -4088,104 +4141,284 @@ "options and is therefore invalid!", p->name);
ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
*/
attr = ippAddStrings(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
{
val = attr->values;
for (i = ppd->num_sizes, size = ppd->sizes; i > 0; i --, size ++)
}
if (size->marked)
*/
ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
}
/*
*/
media_size = ippNew();
}
media_col_default = ippNew();
*/
ippAddCollection(p->ppd_attrs, IPP_TAG_PRINTER,
break;
val ++;
}
if (ppd->variable_sizes)
val->collection = new_media_col(pwgsize, NULL, NULL);
val ++;
snprintf(custom_in, sizeof(custom_in), "custom_max_%gx%gin",
@@ -4684,7 +4917,7 @@ ippAddInteger(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_ENUM, "finishings-default", IPP_FINISHINGS_NONE);
if (ppd && (cache = cupsFileOpen(cache_name, "w9")) != NULL) { /*
cupsFileClose(cache); +
+/*
* 'new_media_col()' - Create a media-col collection value.
_/ + +static ippt * / O - Collection value _/ +new_media_col(_pwg_sizet *size, / I - media-size/margin values */
const char source, / I - media-source value */
const char type) / I - media-type value */ +{
ipp_t _mediacol, / Collection value */
_mediasize; / media-size value */ + +
media_col = ippNew(); +
media_size = ippNew();
ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"x-dimension", size->width);
ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"y-dimension", size->length); +
ippAddCollection(media_col, IPP_TAG_PRINTER, "media-size", media_size);
ippAddInteger(media_col, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"media-bottom-margin", size->bottom);
ippAddInteger(media_col, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"media-left-margin", size->left);
ippAddInteger(media_col, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"media-right-margin", size->right);
ippAddInteger(media_col, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"media-top-margin", size->top); +
if (source)
ippAddString(media_col, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "media-source",
NULL, source); +
if (type)
ippAddString(media_col, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "media-type",
NULL, type); +
return (media_col); +} + +
/*
--- scheduler/printers.h (revision 9039) +++ scheduler/printers.h (working copy) @@ -16,7 +16,9 @@
+#include <cups/pwg-private.h>
/*
Quota data... _/ @@ -94,6 +96,7 @@ time_t markertime; / Last time marker attributes were updated _/ cups_arrayt *filters, / Filters for queue _/ prefilters; / Pre-filters for queue /
char _regname, / Name used for service registration */
--- scheduler/Dependencies (revision 9039) +++ scheduler/Dependencies (working copy) @@ -6,104 +6,107 @@ auth.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h auth.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h auth.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h auth.h -auth.o: client.h policy.h printers.h classes.h job.h conf.h banners.h -auth.o: dirsvc.h network.h subscriptions.h +auth.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h +auth.o: conf.h banners.h dirsvc.h network.h subscriptions.h banners.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h banners.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h banners.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h banners.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h banners.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h banners.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -banners.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -banners.o: banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h +banners.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h +banners.o: classes.h job.h conf.h banners.h dirsvc.h network.h +banners.o: subscriptions.h ../cups/dir.h cert.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h cert.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h cert.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h cert.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h cert.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h cert.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h auth.h -cert.o: client.h policy.h printers.h classes.h job.h conf.h banners.h -cert.o: dirsvc.h network.h subscriptions.h +cert.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h +cert.o: conf.h banners.h dirsvc.h network.h subscriptions.h classes.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h classes.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h classes.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h classes.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h classes.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h classes.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -classes.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -classes.o: banners.h dirsvc.h network.h subscriptions.h +classes.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h +classes.o: classes.h job.h conf.h banners.h dirsvc.h network.h +classes.o: subscriptions.h client.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h client.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h client.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h client.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h client.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h client.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -client.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -client.o: banners.h dirsvc.h network.h subscriptions.h +client.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +client.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h conf.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h conf.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h conf.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h conf.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h conf.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h conf.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h auth.h -conf.o: client.h policy.h printers.h classes.h job.h conf.h banners.h -conf.o: dirsvc.h network.h subscriptions.h +conf.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h +conf.o: conf.h banners.h dirsvc.h network.h subscriptions.h dirsvc.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h dirsvc.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h dirsvc.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h dirsvc.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h dirsvc.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h dirsvc.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -dirsvc.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -dirsvc.o: banners.h dirsvc.h network.h subscriptions.h +dirsvc.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +dirsvc.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h env.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h env.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h env.o: ../cups/string.h ../cups/array.h ../cups/cups.h ../cups/ppd.h env.o: ../cups/array.h ../cups/file.h ../cups/language.h mime.h ../cups/ipp.h env.o: ../cups/file.h ../cups/http.h ../cups/i18n.h ../cups/transcode.h env.o: ../cups/debug.h sysman.h statbuf.h cert.h auth.h client.h policy.h -env.o: printers.h classes.h job.h conf.h banners.h dirsvc.h network.h -env.o: subscriptions.h +env.o: printers.h ../cups/pwg-private.h classes.h job.h conf.h banners.h +env.o: dirsvc.h network.h subscriptions.h main.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h main.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h main.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h main.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h main.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h main.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h auth.h -main.o: client.h policy.h printers.h classes.h job.h conf.h banners.h -main.o: dirsvc.h network.h subscriptions.h ../cups/dir.h +main.o: client.h policy.h printers.h ../cups/pwg-private.h classes.h job.h +main.o: conf.h banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h ipp.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h ipp.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h ipp.o: ../cups/string.h ../cups/array.h ../cups/cups.h ../cups/ppd.h ipp.o: ../cups/array.h ../cups/file.h ../cups/language.h mime.h ../cups/ipp.h ipp.o: ../cups/file.h ../cups/http.h ../cups/i18n.h ../cups/transcode.h ipp.o: ../cups/debug.h sysman.h statbuf.h cert.h auth.h client.h policy.h -ipp.o: printers.h classes.h job.h conf.h banners.h dirsvc.h network.h -ipp.o: subscriptions.h ../cups/ppd-private.h ../cups/cups.h +ipp.o: printers.h ../cups/pwg-private.h classes.h job.h conf.h banners.h +ipp.o: dirsvc.h network.h subscriptions.h ../cups/ppd-private.h +ipp.o: ../cups/cups.h listen.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h listen.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h listen.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h listen.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h listen.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h listen.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -listen.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -listen.o: banners.h dirsvc.h network.h subscriptions.h +listen.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +listen.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h job.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h job.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h job.o: ../cups/string.h ../cups/array.h ../cups/cups.h ../cups/ppd.h job.o: ../cups/array.h ../cups/file.h ../cups/language.h mime.h ../cups/ipp.h job.o: ../cups/file.h ../cups/http.h ../cups/i18n.h ../cups/transcode.h job.o: ../cups/debug.h sysman.h statbuf.h cert.h auth.h client.h policy.h -job.o: printers.h classes.h job.h conf.h banners.h dirsvc.h network.h -job.o: subscriptions.h ../cups/backend.h ../cups/dir.h +job.o: printers.h ../cups/pwg-private.h classes.h job.h conf.h banners.h +job.o: dirsvc.h network.h subscriptions.h ../cups/backend.h ../cups/dir.h log.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h log.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h log.o: ../cups/string.h ../cups/array.h ../cups/cups.h ../cups/ppd.h log.o: ../cups/array.h ../cups/file.h ../cups/language.h mime.h ../cups/ipp.h log.o: ../cups/file.h ../cups/http.h ../cups/i18n.h ../cups/transcode.h log.o: ../cups/debug.h sysman.h statbuf.h cert.h auth.h client.h policy.h -log.o: printers.h classes.h job.h conf.h banners.h dirsvc.h network.h -log.o: subscriptions.h +log.o: printers.h ../cups/pwg-private.h classes.h job.h conf.h banners.h +log.o: dirsvc.h network.h subscriptions.h network.o: ../cups/http-private.h ../config.h ../cups/http.h network.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h network.o: ../cups/ipp.h cupsd.h ../cups/string.h ../cups/array.h @@ -111,57 +114,59 @@ network.o: ../cups/language.h mime.h ../cups/ipp.h ../cups/file.h network.o: ../cups/http.h ../cups/i18n.h ../cups/transcode.h ../cups/debug.h network.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h -network.o: classes.h job.h conf.h banners.h dirsvc.h network.h -network.o: subscriptions.h +network.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h +network.o: network.h subscriptions.h policy.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h policy.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h policy.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h policy.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h policy.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h policy.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -policy.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -policy.o: banners.h dirsvc.h network.h subscriptions.h +policy.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +policy.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h printers.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h printers.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h printers.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h printers.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h printers.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h printers.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -printers.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -printers.o: banners.h dirsvc.h network.h subscriptions.h ../cups/dir.h -printers.o: ../cups/pwgmedia.h +printers.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h +printers.o: classes.h job.h conf.h banners.h dirsvc.h network.h +printers.o: subscriptions.h ../cups/dir.h process.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h process.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h process.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h process.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h process.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h process.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -process.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -process.o: banners.h dirsvc.h network.h subscriptions.h +process.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h +process.o: classes.h job.h conf.h banners.h dirsvc.h network.h +process.o: subscriptions.h quotas.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h quotas.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h quotas.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h quotas.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h quotas.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h quotas.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -quotas.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -quotas.o: banners.h dirsvc.h network.h subscriptions.h +quotas.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +quotas.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h removefile.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h removefile.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h removefile.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h removefile.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h removefile.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h removefile.o: ../cups/i18n.h ../cups/transcode.h ../cups/debug.h sysman.h -removefile.o: statbuf.h cert.h auth.h client.h policy.h printers.h classes.h -removefile.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h +removefile.o: statbuf.h cert.h auth.h client.h policy.h printers.h +removefile.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h +removefile.o: network.h subscriptions.h select.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h select.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h select.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h select.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h select.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h select.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -select.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -select.o: banners.h dirsvc.h network.h subscriptions.h +select.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +select.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h server.o: ../cups/http-private.h ../config.h ../cups/http.h server.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h server.o: ../cups/ipp.h cupsd.h ../cups/string.h ../cups/array.h @@ -169,15 +174,17 @@ server.o: ../cups/language.h mime.h ../cups/ipp.h ../cups/file.h server.o: ../cups/http.h ../cups/i18n.h ../cups/transcode.h ../cups/debug.h server.o: sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h -server.o: classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h +server.o: ../cups/pwg-private.h classes.h job.h conf.h banners.h dirsvc.h +server.o: network.h subscriptions.h statbuf.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h statbuf.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h statbuf.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h statbuf.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h statbuf.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h statbuf.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -statbuf.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -statbuf.o: banners.h dirsvc.h network.h subscriptions.h +statbuf.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h +statbuf.o: classes.h job.h conf.h banners.h dirsvc.h network.h +statbuf.o: subscriptions.h subscriptions.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h subscriptions.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h subscriptions.o: ../cups/ipp.h ../cups/string.h ../cups/array.h @@ -185,16 +192,16 @@ subscriptions.o: ../cups/language.h mime.h ../cups/ipp.h ../cups/file.h subscriptions.o: ../cups/http.h ../cups/i18n.h ../cups/transcode.h subscriptions.o: ../cups/debug.h sysman.h statbuf.h cert.h auth.h client.h -subscriptions.o: policy.h printers.h classes.h job.h conf.h banners.h -subscriptions.o: dirsvc.h network.h subscriptions.h +subscriptions.o: policy.h printers.h ../cups/pwg-private.h classes.h job.h +subscriptions.o: conf.h banners.h dirsvc.h network.h subscriptions.h sysman.o: cupsd.h ../cups/http-private.h ../config.h ../cups/http.h sysman.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h sysman.o: ../cups/ipp.h ../cups/string.h ../cups/array.h ../cups/cups.h sysman.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h sysman.o: mime.h ../cups/ipp.h ../cups/file.h ../cups/http.h ../cups/i18n.h sysman.o: ../cups/transcode.h ../cups/debug.h sysman.h statbuf.h cert.h -sysman.o: auth.h client.h policy.h printers.h classes.h job.h conf.h -sysman.o: banners.h dirsvc.h network.h subscriptions.h +sysman.o: auth.h client.h policy.h printers.h ../cups/pwg-private.h classes.h +sysman.o: job.h conf.h banners.h dirsvc.h network.h subscriptions.h filter.o: ../cups/debug.h ../cups/string.h ../config.h mime.h ../cups/array.h filter.o: ../cups/versioning.h ../cups/ipp.h ../cups/file.h mime.o: ../cups/debug.h ../cups/dir.h ../cups/versioning.h ../cups/string.h @@ -211,7 +218,8 @@ cups-deviced.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/globals.h cups-deviced.o: ../cups/string.h ../cups/cups.h ../cups/i18n.h cups-deviced.o: ../cups/transcode.h ../cups/language.h ../cups/array.h -cups-deviced.o: ../cups/debug.h ../cups/array.h ../cups/dir.h +cups-deviced.o: ../cups/pwg-private.h ../cups/cups.h ../cups/ppd.h +cups-deviced.o: ../cups/file.h ../cups/debug.h ../cups/array.h ../cups/dir.h cups-lpd.o: ../cups/http-private.h ../config.h ../cups/http.h cups-lpd.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h cups-lpd.o: ../cups/ipp.h ../cups/cups.h ../cups/ppd.h ../cups/array.h @@ -241,11 +249,14 @@ util.o: ../cups/http.h ../cups/versioning.h ../cups/md5.h util.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/globals.h util.o: ../cups/string.h ../cups/cups.h ../cups/i18n.h ../cups/transcode.h -util.o: ../cups/language.h ../cups/array.h ../cups/debug.h +util.o: ../cups/language.h ../cups/array.h ../cups/pwg-private.h +util.o: ../cups/cups.h ../cups/ppd.h ../cups/file.h ../cups/debug.h cups-driverd.o: util.h ../cups/file-private.h ../cups/http-private.h cups-driverd.o: ../config.h ../cups/http.h ../cups/versioning.h ../cups/md5.h cups-driverd.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/globals.h cups-driverd.o: ../cups/string.h ../cups/cups.h ../cups/i18n.h cups-driverd.o: ../cups/transcode.h ../cups/language.h ../cups/array.h -cups-driverd.o: ../cups/debug.h ../cups/dir.h ../cups/transcode.h -cups-driverd.o: ../cups/ppd-private.h ../ppdc/ppdc.h ../cups/file.h +cups-driverd.o: ../cups/pwg-private.h ../cups/cups.h ../cups/ppd.h +cups-driverd.o: ../cups/file.h ../cups/debug.h ../cups/dir.h +cups-driverd.o: ../cups/transcode.h ../cups/ppd-private.h ../ppdc/ppdc.h +cups-driverd.o: ../cups/file.h
Version: 1.4.1 CUPS.org User: till.kamppeter
The attached PPD file I got from HP for testing. It contains page sizes with several margin variants: A4, A4.Duplex, A4.FB (full-bleed). It is no problem to select these by the command line or the equivalent IPP attributes on a per-job basis ("lpr -o PageSize=A4.Duplex ...").
The problem is to use them as PPD defaults. If the PPD file contains
... DefaultPageSize: A4.Duplex ... DefaultPageRegion: A4.Duplex ... DefaultImageableArea: A4.Duplex ... DefaultPaperDimension: A4.Duplex ...
and no page size is specified for the job, CUPS adds "media=adobe_A4.Duplex_XXXxYYYmm" (XXX and YYY is the paper size as defined in the PPD file) to the job attributes/filter command line and then none of the filters recognize the page size. The job comes out with a random or unwished paper size (or perhaps the default one for some drivers).
It looks like that the paper size is converted to some form of standardized size name (PWG?) but this is not needed or wished here, as the size is well defined in the PPD file.
The dot notation is defined in the Adobe specs for PPDs and is exactly what we are having here: Slightly differing variants of a choice. The PPD file also does not complain about A4.Duplex, and the warnings for the other page sizes make the impression that cupstestppd understands the dot notation.