From: jlovell CUPS PDF files (application/vnd.cups-pdf) are device-dependent
+PDF/A files that contain a job ticket information. These files
+are typically produced by the CUPS More information will be posted here as the PDF workflow
+filters are added to CUPS.pdftopdf filter
+which handles job ticket generation, imposition, page labeling,
+scaling, and other formatting options requested by the user. CUPS
+PDF files are intended for direct consumption by a PDF-capable
+printer, PDF RIP, or the pdftops filter.
| Bytes | Type | Description | Values | |||
|---|---|---|---|---|---|---|
| 0-63 | C String | @@ -284,9 +288,9 @@ for that page.400-403 | Unsigned Integer | cupsColorSpace | -0 = white - 1 = RGB - 2 = RGBA + | 0 = white (sRGB) + 1 = RGB (sRGB) + 2 = RGBA (sRGB) 3 = black 4 = CMY 5 = YMC @@ -301,22 +305,22 @@ for that page. 14 = SILVER 15 = CIE XYZ 16 = CIE Lab - 17 = RGBW - 32 = ICC1 - 33 = ICC2 - 34 = ICC3 - 35 = ICC4 - 36 = ICC5 - 37 = ICC6 - 38 = ICC7 - 39 = ICC8 - 40 = ICC9 - 41 = ICCA (10) - 42 = ICCB (11) - 43 = ICCC (12) - 44 = ICCD (13) - 45 = ICCE (14) - 46 = ICCF (15) + 17 = RGBW (sRGB) + 32 = ICC1 (CIE Lab with hint for 1 color) + 33 = ICC2 (CIE Lab with hint for 2 colors) + 34 = ICC3 (CIE Lab with hint for 3 colors) + 35 = ICC4 (CIE Lab with hint for 4 colors) + 36 = ICC5 (CIE Lab with hint for 5 colors) + 37 = ICC6 (CIE Lab with hint for 6 colors) + 38 = ICC7 (CIE Lab with hint for 7 colors) + 39 = ICC8 (CIE Lab with hint for 8 colors) + 40 = ICC9 (CIE Lab with hint for 9 colors) + 41 = ICCA (CIE Lab with hint for 10 colors) + 42 = ICCB (CIE Lab with hint for 11 colors) + 43 = ICCC (CIE Lab with hint for 12 colors) + 44 = ICCD (CIE Lab with hint for 13 colors) + 45 = ICCE (CIE Lab with hint for 14 colors) + 46 = ICCF (CIE Lab with hint for 15 colors) |
| cupsRowStep | Driver-specific 0 to 232 - 1 |
| Bytes | Type | Description | Values |
|---|---|---|---|
| 0-419 | Version 1 header data | @@ -436,6 +444,7 @@ for that page.cupsPageSizeName | Page size name/keyword string from PPD |
cupsColorOrder
setting:
| cupsColorOrder | Bytes per color value | @@ -475,9 +485,205 @@ colors are encoded using an initial byte of "257 - count" followed by the color value bytes. +||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bits | +1-color | +3-color | +4-color | +6-color | +
|---|---|---|---|---|
| 1 | +W/W/W/W/W/W/W/W | +0RGB/0RGB | +CMYK/CMYK | +00KCMYcm | +
| 2 | +WW/WW/WW/WW | +00RRGGBB | +CCMMYYKK | +N/A | +
| 4 | +WWWW/WWWW | +0000RRRRGGGGBBBB + (multi-byte) |
+ CCCCMMMMYYYYKKKK + (multi-byte) |
+ N/A | +
The banded order provides each color as a separate line of
+data. Each color plane for a line is written in sequence, e.g.
+for the CUPS_CSPACE_CMYK colorspace you would see
+all of the cyan pixels for a line followed by the magenta,
+yellow, and black pixels for that line. This is repeated for all
+of the lines on the page. Color values are packed starting with
+the most-significant bit (MSB) first.
The planar order provides each color as a separate page of
+data using a shared page header. Each color plane for a page is
+written in sequence, e.g. for the CUPS_CSPACE_CMYK
+colorspace you would see all of the cyan pixels for a page
+followed by the magenta, yellow, and black pixels for that page.
+Color values are packed starting with the most-significant bit
+(MSB) first. Each line starts on an 8-bit boundary.
These colorspaces use the sRGB colorspace definition and +whitepoint.
+ +When cupsBitsPerColor is 1, 6 color planes are
+provided - black, cyan, magenta, yellow, light cyan, and light
+magenta. When cupsBitsPerColor is greater than 1, 4
+color planes are provided using the CUPS_CSPACE_KCMY
+colorspace instead.
When cupsColorOrder is
+CUPS_ORDER_CHUNKED, bit 5 corresponds to black and
+bit 0 corresponds to light magenta. For
+CUPS_ORDER_BANDED and
+CUPS_ORDER_PLANAR, each color plane is encoded
+separately.
These colorspaces map a CIE Lab color value with a D65
+whitepoint to either a 8- or 16-bit per color chunked
+(CUPS_ORDER_CHUNKED) format; the banded
+(CUPS_ORDER_BANDED) and planar
+(CUPS_ORDER_PLANAR) color orders are not
+supported.
The values are encoded and decoded using the following +formulas:
+ +These colorspaces map a CIE XYZ color value with a D65
+whitepoint to either a 8- or 16-bit per color chunked
+(CUPS_ORDER_CHUNKED) format; the banded
+(CUPS_ORDER_BANDED) and planar
+(CUPS_ORDER_PLANAR) color orders are not
+supported.
The values are encoded and decoded using the following +formulas:
+ +The scaling factor for XYZ values is 1/1.1, or 231.8181 for +8-bit values and 59577.2727 for 16-bit values. This allows for a +slight overflow of XYZ values when converting from RGB, improving +accuracy.
+Poprzez te strony internetowe możesz kontrolowaÄ swoje drukarki i wydruki, ale także -administrowaÄ systemem wydruku. Klikaj na zakÅadki powyżej lub poniższe przyciski aby wykonaÄ odpowiednie zadania.
+Te strony WWW pozwalajÄ na monitorowanie drukarek i zadaÅ oraz +przeprowadzanie zadaÅ administracyjnych systemu. NaciÅnij na dowolnÄ +powyższÄ kartÄ lub poniższy przycisk, aby przeprowadziÄ zadanie.
-JeÅli zostaniesz poproszony o nazwÄ użytkownika i hasÅo, wprowadź swój login i hasÅo -lub login "root" i hasÅo tego użytkownika.
+JeÅli zostaniesz poproszony o nazwÄ użytkownika i hasÅo, podaj +swój login i hasÅo lub nazwÄ użytkownika "root" i hasÅo.
-
+STYLE="padding-right: 10px;" ALT="SzczÄÅliwy komputer i drukarka">
-CUPS zapewnia przenoÅnÄ
warstwÄ drukowania dla systemów bazujÄ
cych na
-UNIX®. Jest rozbudowywany pod opiekÄ
Easy Software
-Products by promowaÄ standard drukowania. CUPS jest domyÅlnym systemem drukowania używanym w MacOS® X i wiÄkszoÅci dystrybucji Linuksa®.
CUPS stosuje Internetowy ProtokóŠDrukowania ("IPP") jako podstawy do zarzÄ
dzania wydrukami i ich kolejkami oraz umożliwia przeglÄ
danie drukarek sieciowych i wydruki w oparciu o PostScriptowe Opisy Drukarek ("PPD") by wspieraÄ w drukowaniu każdego użytkownika.
CUPS używa Internetowego protokoÅu drukowania ("IPP")
+jako podstawÄ zarzÄ
dzania zadaniami drukowania i kolejkami oraz
+dodaje sieciowe przeglÄ
danie drukarek, a także oparte na
+PostScriptowym opisie drukarek ("PPD") opcje drukowania do
+obsÅugi prawdziwego drukowania.
Odwiedź oficjalnÄ stronÄ CUPS site aby pobraÄ sterowniki i uzyskaÄ wsparcie:
+Odwiedź oficjalnÄ stronÄ CUPS, aby uzyskaÄ sterowniki drukarek i pomoc technicznÄ :
www.cups.org
-Komercyjne wsparcie i rozszerzona wersja CUPS zwana ESP Print Pro jest dostÄpna tu:
+Komercyjne wsparcie i ulepszona wersja CUPS o nazwie ESP Print Pro sÄ +dostÄpne na:
www.easysw.com
@@ -116,10 +126,10 @@ HREF="http://www.easysw.com/printpro/">ESP Print Pro jest dostÄpna tu:
WIDTH="15" HEIGHT="15" ALT="">
-The Common UNIX Printing System, CUPS, and the CUPS logo are the
-trademark property of Easy Software
-Products. CUPS is copyright 1997-2006 by Easy Software Products,
-All Rights Reserved.
+Common UNIX Printing System, CUPS i logo CUPS sÄ
+zarejestrowanymi znakami towarowymi Easy Software
+Products. Copyright 1997-2006 Easy Software Products,
+wszelkie prawa zastrzeżone.
diff --git a/filter/Makefile b/filter/Makefile
index 57c8625ade..2a4dfeadf5 100644
--- a/filter/Makefile
+++ b/filter/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $"
+# "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $"
#
# Filter makefile for the Common UNIX Printing System (CUPS).
#
@@ -65,7 +65,7 @@ all: $(TARGETS)
clean:
$(RM) $(OBJS) $(TARGETS)
$(RM) libcupsimage.so libcupsimage.sl libcupsimage.dylib
- $(RM) libcupsimage.32.so libcupsimage.64.so
+ $(RM) -r 32bit 64bit
#
@@ -117,12 +117,12 @@ installhdrs:
install32bit:
$(INSTALL_DIR) -m 755 $(LIB32DIR)
- $(INSTALL_LIB) libcupsimage.32.so.2 $(LIB32DIR)/libcupsimage.so.2
+ $(INSTALL_LIB) 32bit/libcupsimage.so.2 $(LIB32DIR)/libcupsimage.so.2
$(LN) libcupsimage.so $(LIB32DIR)/libcupsimage.so.2
install64bit:
$(INSTALL_DIR) -m 755 $(LIB64DIR)
- $(INSTALL_LIB) libcupsimage.64.so.2 $(LIB64DIR)/libcupsimage.so.2
+ $(INSTALL_LIB) 64bit/libcupsimage.so.2 $(LIB64DIR)/libcupsimage.so.2
$(LN) libcupsimage.so $(LIB64DIR)/libcupsimage.so.2
@@ -212,23 +212,25 @@ libcupsimage.so.2 libcupsimage.sl.2: $(IMAGEOBJS)
#
-# libcupsimage.32.so.2
+# 32bit/libcupsimage.so.2
#
-libcupsimage.32.so.2: $(IMAGE32OBJS)
+32bit/libcupsimage.so.2: $(IMAGE32OBJS)
echo Linking 32-bit $@...
- $(DSO) $(ARCH32FLAGS) $(DSOFLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) \
- -L../cups $(LINKCUPS) -lm
+ -mkdir 32bit
+ $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) \
+ -L../cups/32bit $(LINKCUPS) -lm
#
-# libcupsimage.64.so.2
+# 64bit/libcupsimage.so.2
#
-libcupsimage.64.so.2: $(IMAGE64OBJS)
+64bit/libcupsimage.so.2: $(IMAGE64OBJS)
echo Linking 64-bit $@...
- $(DSO) $(ARCH64FLAGS) $(DSOFLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) \
- -L../cups $(LINKCUPS) -lm
+ -mkdir 64bit
+ $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) \
+ -L../cups/64bit $(LINKCUPS) -lm
#
@@ -375,5 +377,5 @@ include Dependencies
#
-# End of "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $".
+# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $".
#
diff --git a/filter/image-bmp.c b/filter/image-bmp.c
index 9a20ec8c4e..1dc5247632 100644
--- a/filter/image-bmp.c
+++ b/filter/image-bmp.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-bmp.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $"
*
* BMP image routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -202,10 +202,7 @@ _cupsImageReadBMP(
for (y = img->ysize - 1; y >= 0; y --)
{
- if (img->colorspace == CUPS_IMAGE_RGB)
- ptr = out;
- else
- ptr = in;
+ ptr = in;
switch (depth)
{
@@ -442,37 +439,33 @@ _cupsImageReadBMP(
break;
}
- if (img->colorspace == CUPS_IMAGE_RGB)
- {
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(out, img->xsize, saturation, hue);
- }
- else
+ if (saturation != 100 || hue != 0)
+ cupsImageRGBAdjust(in, img->xsize, saturation, hue);
+
+ switch (img->colorspace)
{
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
-
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
-
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
-
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
if (lut)
@@ -542,5 +535,5 @@ read_long(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-bmp.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-colorspace.c b/filter/image-colorspace.c
index d390d779ab..cc442944ea 100644
--- a/filter/image-colorspace.c
+++ b/filter/image-colorspace.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-colorspace.c 4767 2005-10-10 19:23:23Z mike $"
+ * "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $"
*
* Colorspace conversions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* The color saturation/hue matrix stuff is provided thanks to Mr. Paul
* Haeberli at "http://www.sgi.com/grafica/matrix/index.html".
@@ -423,7 +423,8 @@ cupsImageCMYKToRGB(
else
*out++ = 0;
- if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
+ if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+ cupsImageColorSpace >= CUPS_CSPACE_ICC1)
rgb_to_lab(out - 3);
else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
rgb_to_xyz(out - 3);
@@ -852,14 +853,22 @@ cupsImageRGBToRGB(
if (in != out)
memcpy(out, in, count * 3);
- if (cupsImageColorSpace >= CUPS_CSPACE_CIEXYZ)
+ if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+ cupsImageColorSpace >= CUPS_CSPACE_ICC1)
{
while (count > 0)
{
- if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
- rgb_to_lab(out);
- else
- rgb_to_xyz(out);
+ rgb_to_lab(out);
+
+ out += 3;
+ count --;
+ }
+ }
+ else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
+ {
+ while (count > 0)
+ {
+ rgb_to_xyz(out);
out += 3;
count --;
@@ -958,13 +967,15 @@ cupsImageSetRasterColorSpace(
* Set the destination colorspace...
*/
- cupsImageColorSpace = cs;
+ cupsImageColorSpace = cs;
/*
* Don't use color profiles in colorimetric colorspaces...
*/
- if (cs >= CUPS_CSPACE_CIEXYZ)
+ if (cs == CUPS_CSPACE_CIEXYZ ||
+ cs == CUPS_CSPACE_CIELab ||
+ cs >= CUPS_CSPACE_ICC1)
cupsImageHaveProfile = 0;
}
@@ -1084,7 +1095,8 @@ cupsImageWhiteToRGB(
*out++ = *in;
*out++ = *in++;
- if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
+ if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+ cupsImageColorSpace >= CUPS_CSPACE_ICC1)
rgb_to_lab(out - 3);
else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
rgb_to_xyz(out - 3);
@@ -1283,9 +1295,9 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
* Convert sRGB to linear RGB...
*/
- r = pow(val[0] / 255.0, 0.58823529412);
- g = pow(val[1] / 255.0, 0.58823529412);
- b = pow(val[2] / 255.0, 0.58823529412);
+ r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
+ g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
+ b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
/*
* Convert to CIE XYZ...
@@ -1315,9 +1327,9 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
* numbers are from 0 to 255.
*/
- ciel *= 2.55;
- ciea += 128;
- cieb += 128;
+ ciel = ciel * 2.55 + 0.5;
+ ciea += 128.5;
+ cieb += 128.5;
/*
* Output 8-bit values...
@@ -1331,14 +1343,14 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
val[0] = 255;
if (ciea < 0.0)
- val[1] = 128;
+ val[1] = 0;
else if (ciea < 255.0)
val[1] = (int)ciea;
else
val[1] = 255;
if (cieb < 0.0)
- val[2] = 128;
+ val[2] = 0;
else if (cieb < 255.0)
val[2] = (int)cieb;
else
@@ -1365,9 +1377,9 @@ rgb_to_xyz(cups_ib_t *val) /* IO - Color value */
* Convert sRGB to linear RGB...
*/
- r = pow(val[0] / 255.0, 0.58823529412);
- g = pow(val[1] / 255.0, 0.58823529412);
- b = pow(val[2] / 255.0, 0.58823529412);
+ r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
+ g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
+ b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
/*
* Convert to CIE XYZ...
@@ -1378,27 +1390,27 @@ rgb_to_xyz(cups_ib_t *val) /* IO - Color value */
ciez = 0.019334 * r + 0.119193 * g + 0.950227 * b;
/*
- * Output 8-bit values...
+ * Encode as 8-bit XYZ...
*/
- if (ciex < 0.0)
+ if (ciex < 0.0f)
val[0] = 0;
- else if (ciex < 255.0)
- val[0] = (int)ciex;
+ else if (ciex < 1.1f)
+ val[0] = (int)(231.8181f * ciex + 0.5);
else
val[0] = 255;
- if (ciey < 0.0)
+ if (ciey < 0.0f)
val[1] = 0;
- else if (ciey < 255.0)
- val[1] = (int)ciey;
+ else if (ciey < 1.1f)
+ val[1] = (int)(231.8181f * ciey + 0.5);
else
val[1] = 255;
- if (ciez < 0.0)
+ if (ciez < 0.0f)
val[2] = 0;
- else if (ciez < 255.0)
- val[2] = (int)ciez;
+ else if (ciez < 1.1f)
+ val[2] = (int)(231.8181f * ciez + 0.5);
else
val[2] = 255;
}
@@ -1561,5 +1573,5 @@ zshear(float mat[3][3], /* I - Matrix */
/*
- * End of "$Id: image-colorspace.c 4767 2005-10-10 19:23:23Z mike $".
+ * End of "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $".
*/
diff --git a/filter/image-gif.c b/filter/image-gif.c
index d8c30d1bfd..09784a60eb 100644
--- a/filter/image-gif.c
+++ b/filter/image-gif.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-gif.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $"
*
* GIF image routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -220,6 +220,8 @@ _cupsImageReadGIF(
break;
case CUPS_IMAGE_RGB :
case CUPS_IMAGE_RGB_CMYK :
+ for (i = ncolors - 1; i >= 0; i --)
+ cupsImageRGBToRGB(cmap[i], cmap[i], 1);
break;
}
@@ -693,5 +695,5 @@ gif_read_lzw(FILE *fp, /* I - File to read from */
/*
- * End of "$Id: image-gif.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-jpeg.c b/filter/image-jpeg.c
index 6b1dc9c26f..5a07a7bbd1 100644
--- a/filter/image-jpeg.c
+++ b/filter/image-jpeg.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-jpeg.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $"
*
* JPEG image routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -195,7 +195,6 @@ _cupsImageReadJPEG(
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
if ((img->colorspace == CUPS_IMAGE_WHITE && cinfo.out_color_space == JCS_GRAYSCALE) ||
- (img->colorspace == CUPS_IMAGE_RGB && cinfo.out_color_space == JCS_RGB) ||
(img->colorspace == CUPS_IMAGE_CMYK && cinfo.out_color_space == JCS_CMYK))
{
#ifdef DEBUG
@@ -255,6 +254,9 @@ _cupsImageReadJPEG(
default :
break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
case CUPS_IMAGE_WHITE :
cupsImageRGBToWhite(in, out, img->xsize);
break;
@@ -318,5 +320,5 @@ _cupsImageReadJPEG(
/*
- * End of "$Id: image-jpeg.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-photocd.c b/filter/image-photocd.c
index 4e77ea9e09..00171ecc1f 100644
--- a/filter/image-photocd.c
+++ b/filter/image-photocd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-photocd.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $"
*
* PhotoCD routines for the Common UNIX Printing System (CUPS).
*
@@ -7,7 +7,7 @@
* is only YCC encoded. Support for the higher resolution images will
* require a lot of extra code...
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -272,39 +272,29 @@ _cupsImageReadPhotoCD(
* put it in the image...
*/
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(rgb, 768 * 3, lut);
-
- if (rotation)
- _cupsImagePutCol(img, 511 - y - pass, 0, 768, rgb);
- else
- _cupsImagePutRow(img, 0, y + pass, 768, rgb);
+ default :
+ break;
+
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(rgb, out, 768);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(rgb, out, 768);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(rgb, out, 768);
+ break;
}
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(rgb, out, 768);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(rgb, out, 768);
- break;
- }
- if (lut)
- cupsImageLut(out, 768 * bpp, lut);
+ if (lut)
+ cupsImageLut(out, 768 * bpp, lut);
- if (rotation)
- _cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
- else
- _cupsImagePutRow(img, 0, y + pass, 768, out);
- }
+ if (rotation)
+ _cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
+ else
+ _cupsImagePutRow(img, 0, y + pass, 768, out);
}
}
}
@@ -323,5 +313,5 @@ _cupsImageReadPhotoCD(
/*
- * End of "$Id: image-photocd.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-pix.c b/filter/image-pix.c
index 2a326cd98a..ac471669dd 100644
--- a/filter/image-pix.c
+++ b/filter/image-pix.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-pix.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $"
*
* Alias PIX image routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -159,10 +159,7 @@ _cupsImageReadPIX(
{
for (count = 0, y = 0, r = 0, g = 0, b = 0; y < img->ysize; y ++)
{
- if (img->colorspace == CUPS_IMAGE_RGB)
- ptr = out;
- else
- ptr = in;
+ ptr = in;
for (x = img->xsize; x > 0; x --, count --)
{
@@ -179,34 +176,29 @@ _cupsImageReadPIX(
*ptr++ = b;
}
- if (img->colorspace == CUPS_IMAGE_RGB)
- {
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(out, img->xsize, saturation, hue);
- }
- else
- {
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
+ if (saturation != 100 || hue != 0)
+ cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
+ switch (img->colorspace)
+ {
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
if (lut)
@@ -240,5 +232,5 @@ read_short(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-pix.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-png.c b/filter/image-png.c
index 45faeb5f99..3b4469bc98 100644
--- a/filter/image-png.c
+++ b/filter/image-png.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-png.c 5452 2006-04-22 22:17:32Z mike $"
+ * "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $"
*
* PNG image routines for the Common UNIX Printing System (CUPS).
*
@@ -216,7 +216,7 @@ _cupsImageReadPNG(
break;
case CUPS_IMAGE_RGB :
case CUPS_IMAGE_RGB_CMYK :
- memcpy(out, inptr, img->xsize * 3);
+ cupsImageRGBToRGB(inptr, out, img->xsize);
break;
case CUPS_IMAGE_BLACK :
cupsImageRGBToBlack(inptr, out, img->xsize);
@@ -280,5 +280,5 @@ _cupsImageReadPNG(
/*
- * End of "$Id: image-png.c 5452 2006-04-22 22:17:32Z mike $".
+ * End of "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-pnm.c b/filter/image-pnm.c
index 3cfe664413..dab288032a 100644
--- a/filter/image-pnm.c
+++ b/filter/image-pnm.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-pnm.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $"
*
* Portable Any Map file routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -261,39 +261,32 @@ _cupsImageReadPNM(
if ((saturation != 100 || hue != 0) && bpp > 1)
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, in);
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * bpp, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
break;
}
}
@@ -308,5 +301,5 @@ _cupsImageReadPNM(
/*
- * End of "$Id: image-pnm.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-sgi.c b/filter/image-sgi.c
index 4ea91ce63a..288af26187 100644
--- a/filter/image-sgi.c
+++ b/filter/image-sgi.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-sgi.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $"
*
* SGI image file routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -236,45 +236,35 @@ _cupsImageReadSGI(
}
else
{
- if (img->colorspace == CUPS_IMAGE_RGB)
- {
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
+ if ((saturation != 100 || hue != 0) && bpp > 1)
+ cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- _cupsImagePutRow(img, 0, y, img->xsize, in);
- }
- else
+ switch (img->colorspace)
{
- if ((saturation != 100 || hue != 0) && bpp > 1)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
+ }
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * bpp, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
}
}
@@ -289,5 +279,5 @@ _cupsImageReadSGI(
/*
- * End of "$Id: image-sgi.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-sun.c b/filter/image-sun.c
index f49fac157a..a7aa39a8ae 100644
--- a/filter/image-sun.c
+++ b/filter/image-sun.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-sun.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $"
*
* Sun Raster image file routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -330,45 +330,32 @@ _cupsImageReadSunRaster(
}
else
{
- if (img->colorspace == CUPS_IMAGE_RGB)
- {
- if (saturation != 100 || hue != 0)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
+ if ((saturation != 100 || hue != 0) && bpp > 1)
+ cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- _cupsImagePutRow(img, 0, y, img->xsize, in);
- }
- else
+ switch (img->colorspace)
{
- if ((saturation != 100 || hue != 0) && bpp > 1)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
+ }
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * bpp, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
}
}
@@ -402,5 +389,5 @@ read_unsigned(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-sun.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/image-tiff.c b/filter/image-tiff.c
index 7a61e72845..184cf96217 100644
--- a/filter/image-tiff.c
+++ b/filter/image-tiff.c
@@ -1,9 +1,9 @@
/*
- * "$Id: image-tiff.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $"
*
* TIFF file routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2005 by Easy Software Products.
+ * Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -783,39 +783,32 @@ _cupsImageReadTIFF(
}
}
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, in);
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * bpp, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
}
}
else
@@ -923,40 +916,33 @@ _cupsImageReadTIFF(
}
}
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->ysize * 3, lut);
-
- _cupsImagePutCol(img, x, 0, img->ysize, in);
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->ysize);
+ break;
}
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->ysize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->ysize);
- break;
- }
- if (lut)
- cupsImageLut(out, img->ysize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->ysize * bpp, lut);
- _cupsImagePutCol(img, x, 0, img->ysize, out);
- }
- }
+ _cupsImagePutCol(img, x, 0, img->ysize, out);
+ }
}
break;
@@ -1074,39 +1060,32 @@ _cupsImageReadTIFF(
if ((saturation != 100 || hue != 0) && bpp > 1)
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, in);
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * bpp, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
}
}
else
@@ -1222,39 +1201,32 @@ _cupsImageReadTIFF(
if ((saturation != 100 || hue != 0) && bpp > 1)
cupsImageRGBAdjust(in, img->ysize, saturation, hue);
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->ysize * 3, lut);
-
- _cupsImagePutCol(img, x, 0, img->ysize, in);
- }
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->ysize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->ysize);
- break;
- }
+ default :
+ break;
+
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->ysize);
+ break;
+ }
- if (lut)
- cupsImageLut(out, img->ysize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->ysize * bpp, lut);
- _cupsImagePutCol(img, x, 0, img->ysize, out);
- }
+ _cupsImagePutCol(img, x, 0, img->ysize, out);
}
}
break;
@@ -1469,39 +1441,32 @@ _cupsImageReadTIFF(
if ((saturation != 100 || hue != 0) && bpp > 1)
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->xsize * 3, lut);
+ default :
+ break;
- _cupsImagePutRow(img, 0, y, img->xsize, in);
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->xsize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->xsize);
+ break;
}
- else if (img->colorspace == CUPS_IMAGE_WHITE)
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
- if (lut)
- cupsImageLut(out, img->xsize * 3, lut);
+ if (lut)
+ cupsImageLut(out, img->xsize * 3, lut);
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
+ _cupsImagePutRow(img, 0, y, img->xsize, out);
}
}
else
@@ -1698,39 +1663,32 @@ _cupsImageReadTIFF(
if ((saturation != 100 || hue != 0) && bpp > 1)
cupsImageRGBAdjust(in, img->ysize, saturation, hue);
- if (img->colorspace == CUPS_IMAGE_RGB)
+ switch (img->colorspace)
{
- if (lut)
- cupsImageLut(in, img->ysize * 3, lut);
+ default :
+ break;
- _cupsImagePutCol(img, x, 0, img->ysize, in);
- }
- else if (img->colorspace == CUPS_IMAGE_WHITE)
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->ysize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->ysize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->ysize);
- break;
- }
+ case CUPS_IMAGE_WHITE :
+ cupsImageRGBToWhite(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_BLACK :
+ cupsImageRGBToBlack(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMY :
+ cupsImageRGBToCMY(in, out, img->ysize);
+ break;
+ case CUPS_IMAGE_CMYK :
+ cupsImageRGBToCMYK(in, out, img->ysize);
+ break;
+ }
- if (lut)
- cupsImageLut(out, img->ysize * bpp, lut);
+ if (lut)
+ cupsImageLut(out, img->ysize * bpp, lut);
- _cupsImagePutCol(img, x, 0, img->ysize, out);
- }
+ _cupsImagePutCol(img, x, 0, img->ysize, out);
}
}
@@ -1762,5 +1720,5 @@ _cupsImageReadTIFF(
/*
- * End of "$Id: image-tiff.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $".
*/
diff --git a/filter/imagetoraster.c b/filter/imagetoraster.c
index 0c7d705a22..db92982314 100644
--- a/filter/imagetoraster.c
+++ b/filter/imagetoraster.c
@@ -1,5 +1,5 @@
/*
- * "$Id: imagetoraster.c 5485 2006-05-02 23:59:56Z mike $"
+ * "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $"
*
* Image file to raster filter for the Common UNIX Printing System (CUPS).
*
@@ -26,6 +26,7 @@
* Contents:
*
* main() - Main entry...
+ * blank_line() - Clear a line buffer to the blank value...
* format_CMY() - Convert image data to CMY.
* format_CMYK() - Convert image data to CMYK.
* format_K() - Convert image data to black.
@@ -59,7 +60,7 @@ int Flip = 0, /* Flip/mirror pages */
YPosition = 0, /* Vertical position on page */
Collate = 0, /* Collate copies? */
Copies = 1; /* Number of copies */
-int Floyd16xc16[16][16] = /* Traditional Floyd ordered dither */
+int Floyd16x16[16][16] = /* Traditional Floyd ordered dither */
{
{ 0, 128, 32, 160, 8, 136, 40, 168,
2, 130, 34, 162, 10, 138, 42, 170 },
@@ -115,62 +116,13 @@ int Floyd4x4[4][4] =
cups_ib_t OnPixels[256], /* On-pixel LUT */
OffPixels[256]; /* Off-pixel LUT */
-int Planes[] = /* Number of planes for each colorspace */
- {
- 1, /* CUPS_CSPACE_W */
- 3, /* CUPS_CSPACE_RGB */
- 4, /* CUPS_CSPACE_RGBA */
- 1, /* CUPS_CSPACE_K */
- 3, /* CUPS_CSPACE_CMY */
- 3, /* CUPS_CSPACE_YMC */
- 4, /* CUPS_CSPACE_CMYK */
- 4, /* CUPS_CSPACE_YMCK */
- 4, /* CUPS_CSPACE_KCMY */
- 6, /* CUPS_CSPACE_KCMYcm */
- 4, /* CUPS_CSPACE_GMCK */
- 4, /* CUPS_CSPACE_GMCS */
- 1, /* CUPS_CSPACE_WHITE */
- 1, /* CUPS_CSPACE_GOLD */
- 1, /* CUPS_CSPACE_SILVER */
- 3, /* CUPS_CSPACE_CIEXYZ */
- 3, /* CUPS_CSPACE_CIELab */
- 4, /* CUPS_CSPACE_RGBW */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 0, /* ... reserved ... */
- 3, /* CUPS_CSPACE_ICC1 */
- 3, /* CUPS_CSPACE_ICC2 */
- 3, /* CUPS_CSPACE_ICC3 */
- 3, /* CUPS_CSPACE_ICC4 */
- 3, /* CUPS_CSPACE_ICC5 */
- 3, /* CUPS_CSPACE_ICC6 */
- 3, /* CUPS_CSPACE_ICC7 */
- 3, /* CUPS_CSPACE_ICC8 */
- 3, /* CUPS_CSPACE_ICC9 */
- 3, /* CUPS_CSPACE_ICCA */
- 3, /* CUPS_CSPACE_ICCB */
- 3, /* CUPS_CSPACE_ICCC */
- 3, /* CUPS_CSPACE_ICCD */
- 3, /* CUPS_CSPACE_ICCE */
- 3 /* CUPS_CSPACE_ICCF */
- };
/*
* Local functions...
*/
-
+
+static void blank_line(cups_page_header2_t *header, unsigned char *row);
static void format_CMY(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
static void format_CMYK(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
static void format_K(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
@@ -242,8 +194,7 @@ main(int argc, /* I - Number of command-line arguments */
iy, /* Current Y coordinate in image */
last_iy, /* Previous Y coordinate in image */
yerr0, /* Top Y error value */
- yerr1, /* Bottom Y error value */
- blank; /* Blank value */
+ yerr1; /* Bottom Y error value */
cups_ib_t lut[256]; /* Gamma/brightness LUT */
int plane, /* Current color plane */
num_planes; /* Number of color planes */
@@ -530,16 +481,32 @@ main(int argc, /* I - Number of command-line arguments */
switch (header.cupsColorSpace)
{
case CUPS_CSPACE_W :
- primary = CUPS_IMAGE_WHITE;
- secondary = CUPS_IMAGE_WHITE;
+ if (header.cupsBitsPerColor >= 8)
+ {
+ primary = CUPS_IMAGE_WHITE;
+ secondary = CUPS_IMAGE_WHITE;
+ }
+ else
+ {
+ primary = CUPS_IMAGE_BLACK;
+ secondary = CUPS_IMAGE_BLACK;
+ }
break;
default :
case CUPS_CSPACE_RGB :
case CUPS_CSPACE_RGBA :
case CUPS_CSPACE_RGBW :
- primary = CUPS_IMAGE_RGB;
- secondary = CUPS_IMAGE_RGB;
+ if (header.cupsBitsPerColor >= 8)
+ {
+ primary = CUPS_IMAGE_RGB;
+ secondary = CUPS_IMAGE_RGB;
+ }
+ else
+ {
+ primary = CUPS_IMAGE_CMY;
+ secondary = CUPS_IMAGE_CMY;
+ }
break;
case CUPS_CSPACE_K :
@@ -553,20 +520,10 @@ main(int argc, /* I - Number of command-line arguments */
case CUPS_CSPACE_CMYK :
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_KCMY :
+ case CUPS_CSPACE_KCMYcm :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
- primary = CUPS_IMAGE_CMYK;
- secondary = CUPS_IMAGE_CMYK;
- break;
-
- case CUPS_CSPACE_CMY :
- case CUPS_CSPACE_YMC :
- primary = CUPS_IMAGE_CMY;
- secondary = CUPS_IMAGE_CMY;
- break;
-
- case CUPS_CSPACE_KCMYcm :
- if (header.cupsBitsPerPixel == 1)
+ if (header.cupsBitsPerColor == 1)
{
primary = CUPS_IMAGE_CMY;
secondary = CUPS_IMAGE_CMY;
@@ -577,6 +534,13 @@ main(int argc, /* I - Number of command-line arguments */
secondary = CUPS_IMAGE_CMYK;
}
break;
+
+ case CUPS_CSPACE_CMY :
+ case CUPS_CSPACE_YMC :
+ primary = CUPS_IMAGE_CMY;
+ secondary = CUPS_IMAGE_CMY;
+ break;
+ break;
}
/*
@@ -656,7 +620,12 @@ main(int argc, /* I - Number of command-line arguments */
fputs("INFO: Loading image file...\n", stderr);
- img = cupsImageOpen(filename, primary, secondary, sat, hue, lut);
+ if (header.cupsColorSpace == CUPS_CSPACE_CIEXYZ ||
+ header.cupsColorSpace == CUPS_CSPACE_CIELab ||
+ header.cupsColorSpace >= CUPS_CSPACE_ICC1)
+ img = cupsImageOpen(filename, primary, secondary, sat, hue, NULL);
+ else
+ img = cupsImageOpen(filename, primary, secondary, sat, hue, lut);
if (argc == 6)
unlink(filename);
@@ -899,8 +868,12 @@ main(int argc, /* I - Number of command-line arguments */
* Set the new custom size...
*/
- header.PageSize[0] = width + 0.5;
- header.PageSize[1] = length + 0.5;
+ strcpy(header.cupsPageSizeName, "Custom");
+
+ header.cupsPageSize[0] = width + 0.5;
+ header.cupsPageSize[1] = length + 0.5;
+ header.PageSize[0] = width + 0.5;
+ header.PageSize[1] = length + 0.5;
/*
* Update page variables...
@@ -926,13 +899,12 @@ main(int argc, /* I - Number of command-line arguments */
header.cupsWidth = width * header.HWResolution[0] / 72.0;
header.cupsHeight = length * header.HWResolution[1] / 72.0;
- }
- else
- {
- header.cupsWidth = (PageRight - PageLeft) * header.HWResolution[0] / 72.0;
- header.cupsHeight = (PageTop - PageBottom) * header.HWResolution[1] / 72.0;
- header.PageSize[0] = PageWidth;
- header.PageSize[1] = PageLength;
+
+ header.cupsBytesPerLine = (header.cupsBitsPerPixel *
+ header.cupsWidth + 7) / 8;
+
+ if (header.cupsColorOrder == CUPS_ORDER_BANDED)
+ header.cupsBytesPerLine *= header.cupsNumColors;
}
header.Margins[0] = PageLeft;
@@ -947,32 +919,32 @@ main(int argc, /* I - Number of command-line arguments */
switch (XPosition)
{
case -1 :
- header.ImagingBoundingBox[0] = PageLeft;
- header.ImagingBoundingBox[2] = PageLeft + xprint * 72;
+ header.cupsImagingBBox[0] = PageLeft;
+ header.cupsImagingBBox[2] = PageLeft + xprint * 72;
break;
default :
- header.ImagingBoundingBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
- header.ImagingBoundingBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
+ header.cupsImagingBBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
+ header.cupsImagingBBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
break;
case 1 :
- header.ImagingBoundingBox[0] = PageRight - xprint * 72;
- header.ImagingBoundingBox[2] = PageRight;
+ header.cupsImagingBBox[0] = PageRight - xprint * 72;
+ header.cupsImagingBBox[2] = PageRight;
break;
}
switch (YPosition)
{
case -1 :
- header.ImagingBoundingBox[1] = PageBottom;
- header.ImagingBoundingBox[3] = PageBottom + yprint * 72;
+ header.cupsImagingBBox[1] = PageBottom;
+ header.cupsImagingBBox[3] = PageBottom + yprint * 72;
break;
default :
- header.ImagingBoundingBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
- header.ImagingBoundingBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
+ header.cupsImagingBBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
+ header.cupsImagingBBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
break;
case 1 :
- header.ImagingBoundingBox[1] = PageTop - yprint * 72;
- header.ImagingBoundingBox[3] = PageTop;
+ header.cupsImagingBBox[1] = PageTop - yprint * 72;
+ header.cupsImagingBBox[3] = PageTop;
break;
}
break;
@@ -981,32 +953,32 @@ main(int argc, /* I - Number of command-line arguments */
switch (XPosition)
{
case -1 :
- header.ImagingBoundingBox[0] = PageBottom;
- header.ImagingBoundingBox[2] = PageBottom + yprint * 72;
+ header.cupsImagingBBox[0] = PageBottom;
+ header.cupsImagingBBox[2] = PageBottom + yprint * 72;
break;
default :
- header.ImagingBoundingBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
- header.ImagingBoundingBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
+ header.cupsImagingBBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
+ header.cupsImagingBBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
break;
case 1 :
- header.ImagingBoundingBox[0] = PageTop - yprint * 72;
- header.ImagingBoundingBox[2] = PageTop;
+ header.cupsImagingBBox[0] = PageTop - yprint * 72;
+ header.cupsImagingBBox[2] = PageTop;
break;
}
switch (YPosition)
{
case -1 :
- header.ImagingBoundingBox[1] = PageLeft;
- header.ImagingBoundingBox[3] = PageLeft + xprint * 72;
+ header.cupsImagingBBox[1] = PageLeft;
+ header.cupsImagingBBox[3] = PageLeft + xprint * 72;
break;
default :
- header.ImagingBoundingBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
- header.ImagingBoundingBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
+ header.cupsImagingBBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
+ header.cupsImagingBBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
break;
case 1 :
- header.ImagingBoundingBox[1] = PageRight - xprint * 72;
- header.ImagingBoundingBox[3] = PageRight;
+ header.cupsImagingBBox[1] = PageRight - xprint * 72;
+ header.cupsImagingBBox[3] = PageRight;
break;
}
break;
@@ -1015,32 +987,32 @@ main(int argc, /* I - Number of command-line arguments */
switch (XPosition)
{
case 1 :
- header.ImagingBoundingBox[0] = PageLeft;
- header.ImagingBoundingBox[2] = PageLeft + xprint * 72;
+ header.cupsImagingBBox[0] = PageLeft;
+ header.cupsImagingBBox[2] = PageLeft + xprint * 72;
break;
default :
- header.ImagingBoundingBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
- header.ImagingBoundingBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
+ header.cupsImagingBBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
+ header.cupsImagingBBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
break;
case -1 :
- header.ImagingBoundingBox[0] = PageRight - xprint * 72;
- header.ImagingBoundingBox[2] = PageRight;
+ header.cupsImagingBBox[0] = PageRight - xprint * 72;
+ header.cupsImagingBBox[2] = PageRight;
break;
}
switch (YPosition)
{
case 1 :
- header.ImagingBoundingBox[1] = PageBottom;
- header.ImagingBoundingBox[3] = PageBottom + yprint * 72;
+ header.cupsImagingBBox[1] = PageBottom;
+ header.cupsImagingBBox[3] = PageBottom + yprint * 72;
break;
default :
- header.ImagingBoundingBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
- header.ImagingBoundingBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
+ header.cupsImagingBBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
+ header.cupsImagingBBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
break;
case -1 :
- header.ImagingBoundingBox[1] = PageTop - yprint * 72;
- header.ImagingBoundingBox[3] = PageTop;
+ header.cupsImagingBBox[1] = PageTop - yprint * 72;
+ header.cupsImagingBBox[3] = PageTop;
break;
}
break;
@@ -1049,68 +1021,51 @@ main(int argc, /* I - Number of command-line arguments */
switch (XPosition)
{
case 1 :
- header.ImagingBoundingBox[0] = PageBottom;
- header.ImagingBoundingBox[2] = PageBottom + yprint * 72;
+ header.cupsImagingBBox[0] = PageBottom;
+ header.cupsImagingBBox[2] = PageBottom + yprint * 72;
break;
default :
- header.ImagingBoundingBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
- header.ImagingBoundingBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
+ header.cupsImagingBBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
+ header.cupsImagingBBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
break;
case -1 :
- header.ImagingBoundingBox[0] = PageTop - yprint * 72;
- header.ImagingBoundingBox[2] = PageTop;
+ header.cupsImagingBBox[0] = PageTop - yprint * 72;
+ header.cupsImagingBBox[2] = PageTop;
break;
}
switch (YPosition)
{
case 1 :
- header.ImagingBoundingBox[1] = PageLeft;
- header.ImagingBoundingBox[3] = PageLeft + xprint * 72;
+ header.cupsImagingBBox[1] = PageLeft;
+ header.cupsImagingBBox[3] = PageLeft + xprint * 72;
break;
default :
- header.ImagingBoundingBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
- header.ImagingBoundingBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
+ header.cupsImagingBBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
+ header.cupsImagingBBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
break;
case -1 :
- header.ImagingBoundingBox[1] = PageRight - xprint * 72;
- header.ImagingBoundingBox[3] = PageRight;
+ header.cupsImagingBBox[1] = PageRight - xprint * 72;
+ header.cupsImagingBBox[3] = PageRight;
break;
}
break;
}
- switch (header.cupsColorOrder)
- {
- default :
- header.cupsBytesPerLine = (header.cupsBitsPerPixel *
- header.cupsWidth + 7) / 8;
- num_planes = 1;
- break;
-
- case CUPS_ORDER_BANDED :
- if (header.cupsColorSpace == CUPS_CSPACE_KCMYcm &&
- header.cupsBitsPerColor > 1)
- header.cupsBytesPerLine = (header.cupsBitsPerPixel *
- header.cupsWidth + 7) / 8 * 4;
- else
- header.cupsBytesPerLine = (header.cupsBitsPerPixel *
- header.cupsWidth + 7) / 8 *
- Planes[header.cupsColorSpace];
- num_planes = 1;
- break;
+ header.ImagingBoundingBox[0] = header.cupsImagingBBox[0];
+ header.ImagingBoundingBox[1] = header.cupsImagingBBox[1];
+ header.ImagingBoundingBox[2] = header.cupsImagingBBox[2];
+ header.ImagingBoundingBox[3] = header.cupsImagingBBox[3];
- case CUPS_ORDER_PLANAR :
- header.cupsBytesPerLine = (header.cupsBitsPerPixel *
- header.cupsWidth + 7) / 8;
- num_planes = Planes[header.cupsColorSpace];
- break;
- }
+ if (header.cupsColorOrder == CUPS_ORDER_PLANAR)
+ num_planes = header.cupsNumColors;
+ else
+ num_planes = 1;
- if (header.cupsBitsPerColor >= 8)
- zoom_type = CUPS_IZOOM_NORMAL;
- else
- zoom_type = CUPS_IZOOM_FAST;
+ if (header.cupsBitsPerColor >= 8)
+ zoom_type = CUPS_IZOOM_NORMAL;
+ else
+ zoom_type = CUPS_IZOOM_FAST;
/*
* See if we need to collate, and if so how we need to do it...
@@ -1159,8 +1114,6 @@ main(int argc, /* I - Number of command-line arguments */
OnPixels[i] = 17 * (i / 17 + 1);
OffPixels[i] = 17 * (i / 16);
}
-
- OnPixels[255] = OffPixels[255] = 0xff;
break;
}
@@ -1177,9 +1130,8 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header.cupsColorSpace);
fprintf(stderr, "DEBUG: img->colorspace = %d\n", img->colorspace);
- row = malloc(2 * header.cupsBytesPerLine);
- ras = cupsRasterOpen(1, CUPS_RASTER_WRITE);
- blank = img->colorspace < 0 ? 0 : ~0;
+ row = malloc(2 * header.cupsBytesPerLine);
+ ras = cupsRasterOpen(1, CUPS_RASTER_WRITE);
for (i = 0, page = 1; i < Copies; i ++)
for (xpage = 0; xpage < xpages; xpage ++)
@@ -1218,10 +1170,10 @@ main(int argc, /* I - Number of command-line arguments */
if (Flip)
z = _cupsImageZoomNew(img, xc0, yc0, xc1, yc1, -xtemp, ytemp,
- Orientation & 1, zoom_type);
+ Orientation & 1, zoom_type);
else
z = _cupsImageZoomNew(img, xc0, yc0, xc1, yc1, xtemp, ytemp,
- Orientation & 1, zoom_type);
+ Orientation & 1, zoom_type);
/*
* Write leading blank space as needed...
@@ -1229,12 +1181,14 @@ main(int argc, /* I - Number of command-line arguments */
if (header.cupsHeight > z->ysize && YPosition <= 0)
{
- memset(row, blank, header.cupsBytesPerLine);
+ blank_line(&header, row);
y = header.cupsHeight - z->ysize;
if (YPosition == 0)
y /= 2;
+ fprintf(stderr, "DEBUG: Writing %d leading blank lines...\n", y);
+
for (; y > 0; y --)
{
if (cupsRasterWritePixels(ras, row, header.cupsBytesPerLine) <
@@ -1269,7 +1223,7 @@ main(int argc, /* I - Number of command-line arguments */
* Format this line of raster data for the printer...
*/
- memset(row, blank, header.cupsBytesPerLine);
+ blank_line(&header, row);
r0 = z->rows[z->row];
r1 = z->rows[1 - z->row];
@@ -1315,14 +1269,17 @@ main(int argc, /* I - Number of command-line arguments */
format_YMCK(&header, row, y, plane, z->xsize, z->ysize,
yerr0, yerr1, r0, r1);
break;
+ case CUPS_CSPACE_KCMYcm :
+ if (header.cupsBitsPerColor == 1)
+ {
+ format_KCMYcm(&header, row, y, plane, z->xsize, z->ysize,
+ yerr0, yerr1, r0, r1);
+ break;
+ }
case CUPS_CSPACE_KCMY :
format_KCMY(&header, row, y, plane, z->xsize, z->ysize,
yerr0, yerr1, r0, r1);
break;
- case CUPS_CSPACE_KCMYcm :
- format_KCMYcm(&header, row, y, plane, z->xsize, z->ysize,
- yerr0, yerr1, r0, r1);
- break;
}
/*
@@ -1358,12 +1315,14 @@ main(int argc, /* I - Number of command-line arguments */
if (header.cupsHeight > z->ysize && YPosition >= 0)
{
- memset(row, blank, header.cupsBytesPerLine);
+ blank_line(&header, row);
y = header.cupsHeight - z->ysize;
if (YPosition == 0)
y = y - y / 2;
+ fprintf(stderr, "DEBUG: Writing %d trailing blank lines...\n", y);
+
for (; y > 0; y --)
{
if (cupsRasterWritePixels(ras, row, header.cupsBytesPerLine) <
@@ -1397,6 +1356,78 @@ main(int argc, /* I - Number of command-line arguments */
}
+/*
+ * 'blank_line()' - Clear a line buffer to the blank value...
+ */
+
+static void
+blank_line(cups_page_header2_t *header, /* I - Page header */
+ unsigned char *row) /* I - Row buffer */
+{
+ int count; /* Remaining bytes */
+
+
+ count = header->cupsBytesPerLine;
+
+ switch (header->cupsColorSpace)
+ {
+ case CUPS_CSPACE_CIEXYZ :
+ while (count > 2)
+ {
+ *row++ = 242;
+ *row++ = 255;
+ *row++ = 255;
+ count -= 3;
+ }
+ break;
+
+ case CUPS_CSPACE_CIELab :
+ case CUPS_CSPACE_ICC1 :
+ case CUPS_CSPACE_ICC2 :
+ case CUPS_CSPACE_ICC3 :
+ case CUPS_CSPACE_ICC4 :
+ case CUPS_CSPACE_ICC5 :
+ case CUPS_CSPACE_ICC6 :
+ case CUPS_CSPACE_ICC7 :
+ case CUPS_CSPACE_ICC8 :
+ case CUPS_CSPACE_ICC9 :
+ case CUPS_CSPACE_ICCA :
+ case CUPS_CSPACE_ICCB :
+ case CUPS_CSPACE_ICCC :
+ case CUPS_CSPACE_ICCD :
+ case CUPS_CSPACE_ICCE :
+ case CUPS_CSPACE_ICCF :
+ while (count > 2)
+ {
+ *row++ = 255;
+ *row++ = 128;
+ *row++ = 128;
+ count -= 3;
+ }
+ break;
+
+ case CUPS_CSPACE_K :
+ case CUPS_CSPACE_CMY :
+ case CUPS_CSPACE_CMYK :
+ case CUPS_CSPACE_YMC :
+ case CUPS_CSPACE_YMCK :
+ case CUPS_CSPACE_KCMY :
+ case CUPS_CSPACE_KCMYcm :
+ case CUPS_CSPACE_GMCK :
+ case CUPS_CSPACE_GMCS :
+ case CUPS_CSPACE_WHITE :
+ case CUPS_CSPACE_GOLD :
+ case CUPS_CSPACE_SILVER :
+ memset(row, 0, count);
+ break;
+
+ default :
+ memset(row, 255, count);
+ break;
+ }
+}
+
+
/*
* 'format_CMY()' - Convert image data to CMY.
*/
@@ -1447,7 +1478,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 64 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --)
{
@@ -1535,7 +1566,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
@@ -1559,7 +1590,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -1583,7 +1614,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -1653,7 +1684,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
@@ -1708,7 +1739,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
@@ -1723,7 +1754,7 @@ format_CMY(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -1797,6 +1828,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
int bandwidth; /* Width of a color band */
int x, /* Current X coordinate on page */
*dither; /* Pointer into dither array */
+ int pc, pm, py; /* CMY pixels */
switch (XPosition)
@@ -1822,24 +1854,33 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 128 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --)
{
- if (*r0++ > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
- if (*r0++ > dither[x & 15])
+ if (pc && pm && py)
+ {
+ bitmask >>= 3;
*ptr ^= bitmask;
- bitmask >>= 1;
+ }
+ else
+ {
+ if (pc)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
- if (*r0++ > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ if (pm)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
- if (*r0++ > dither[x & 15])
- *ptr ^= bitmask;
+ if (py)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -1857,9 +1898,9 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
for (x = xsize ; x > 0; x --, r0 += 4)
{
if ((r0[0] & 63) > dither[x & 7])
- *ptr ^= (0x0 & OnPixels[r0[0]]);
+ *ptr ^= (0xc0 & OnPixels[r0[0]]);
else
- *ptr ^= (0x0 & OffPixels[r0[0]]);
+ *ptr ^= (0xc0 & OffPixels[r0[0]]);
if ((r0[1] & 63) > dither[x & 7])
*ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -1925,18 +1966,25 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
- if (*r0++ > dither[x & 15])
- *cptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *mptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *yptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *kptr ^= bitmask;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if (pc && pm && py)
+ *kptr ^= bitmask;
+ else
+ {
+ if (pc)
+ *cptr ^= bitmask;
+ if (pm)
+ *mptr ^= bitmask;
+ if (py)
+ *yptr ^= bitmask;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -1952,7 +2000,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -1981,7 +2029,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -2063,12 +2111,16 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
- r0 += z;
+ dither = Floyd16x16[y & 15];
- for (x = xsize; x > 0; x --, r0 += 4)
+ for (x = xsize; x > 0; x --)
{
- if (*r0 > dither[x & 15])
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if ((pc && pm && py && z == 3) ||
+ (pc && z == 0) || (pm && z == 1) || (py && z == 2))
*ptr ^= bitmask;
if (bitmask > 1)
@@ -2082,7 +2134,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
@@ -2097,7 +2149,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -2189,7 +2241,7 @@ format_K(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
@@ -2207,7 +2259,7 @@ format_K(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -2221,7 +2273,7 @@ format_K(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -2289,6 +2341,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
int bandwidth; /* Width of a color band */
int x, /* Current X coordinate on page */
*dither; /* Pointer into dither array */
+ int pc, pm, py; /* CMY pixels */
switch (XPosition)
@@ -2314,24 +2367,33 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 128 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
- for (x = xsize ; x > 0; x --, r0 += 4)
+ for (x = xsize ; x > 0; x --)
{
- if (r0[3] > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
- if (r0[0] > dither[x & 15])
+ if (pc && pm && py)
+ {
*ptr ^= bitmask;
- bitmask >>= 1;
+ bitmask >>= 3;
+ }
+ else
+ {
+ bitmask >>= 1;
+ if (pc)
+ *ptr ^= bitmask;
- if (r0[1] > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ bitmask >>= 1;
+ if (pm)
+ *ptr ^= bitmask;
- if (r0[2] > dither[x & 15])
- *ptr ^= bitmask;
+ bitmask >>= 1;
+ if (py)
+ *ptr ^= bitmask;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -2349,9 +2411,9 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
for (x = xsize ; x > 0; x --, r0 += 4)
{
if ((r0[3] & 63) > dither[x & 7])
- *ptr ^= (0x0 & OnPixels[r0[3]]);
+ *ptr ^= (0xc0 & OnPixels[r0[3]]);
else
- *ptr ^= (0x0 & OffPixels[r0[3]]);
+ *ptr ^= (0xc0 & OffPixels[r0[3]]);
if ((r0[0] & 63) > dither[x & 7])
*ptr ^= (0x30 & OnPixels[r0[0]]);
@@ -2434,18 +2496,25 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
- if (*r0++ > dither[x & 15])
- *cptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *mptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *yptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *kptr ^= bitmask;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if (pc && pm && py)
+ *kptr ^= bitmask;
+ else
+ {
+ if (pc)
+ *cptr ^= bitmask;
+ if (pm)
+ *mptr ^= bitmask;
+ if (py)
+ *yptr ^= bitmask;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -2461,7 +2530,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -2490,7 +2559,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -2572,15 +2641,16 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
- if (z == 0)
- r0 += 3;
- else
- r0 += z - 1;
+ dither = Floyd16x16[y & 15];
- for (x = xsize; x > 0; x --, r0 += 4)
+ for (x = xsize; x > 0; x --)
{
- if (*r0 > dither[x & 15])
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if ((pc && pm && py && z == 0) ||
+ (pc && z == 1) || (pm && z == 2) || (py && z == 3))
*ptr ^= bitmask;
if (bitmask > 1)
@@ -2594,7 +2664,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
if (z == 0)
r0 += 3;
@@ -2612,7 +2682,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -2716,68 +2786,37 @@ format_KCMYcm(
break;
}
- ptr = row + bitoffset / 8;
- if (header->cupsBitsPerColor == 1)
- bandwidth = header->cupsBytesPerLine / 6;
- else
- bandwidth = header->cupsBytesPerLine / 4;
+ ptr = row + bitoffset / 8;
+ bandwidth = header->cupsBytesPerLine / 6;
switch (header->cupsColorOrder)
{
case CUPS_ORDER_CHUNKED :
- switch (header->cupsBitsPerColor)
- {
- case 1 :
- dither = Floyd16xc16[y & 15];
-
- for (x = xsize ; x > 0; x --)
- {
- pc = *r0++ > dither[x & 15];
- pm = *r0++ > dither[x & 15];
- py = *r0++ > dither[x & 15];
- pk = *r0++ > dither[x & 15];
-
- if (pk)
- *ptr++ ^= 32; /* Black */
- else if (pc && pm)
- *ptr++ ^= 17; /* Blue (cyan + light magenta) */
- else if (pc && py)
- *ptr++ ^= 6; /* Green (light cyan + yellow) */
- else if (pm && py)
- *ptr++ ^= 12; /* Red (magenta + yellow) */
- else if (pc)
- *ptr++ ^= 16;
- else if (pm)
- *ptr++ ^= 8;
- else if (py)
- *ptr++ ^= 4;
- }
- break;
-
- case 8 :
- for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
- {
- if (r0[3] == r1[3])
- *ptr++ = r0[3];
- else
- *ptr++ = (r0[3] * yerr0 + r1[3] * yerr1) / ysize;
-
- if (r0[0] == r1[0])
- *ptr++ = r0[0];
- else
- *ptr++ = (r0[0] * yerr0 + r1[0] * yerr1) / ysize;
-
- if (r0[1] == r1[1])
- *ptr++ = r0[1];
- else
- *ptr++ = (r0[1] * yerr0 + r1[1] * yerr1) / ysize;
+ dither = Floyd16x16[y & 15];
- if (r0[2] == r1[2])
- *ptr++ = r0[2];
- else
- *ptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
- }
- break;
+ for (x = xsize ; x > 0; x --)
+ {
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+ pk = pc && pm && py;
+
+ if (pk)
+ *ptr++ ^= 32; /* Black */
+ else if (pc && pm)
+ *ptr++ ^= 17; /* Blue (cyan + light magenta) */
+ else if (pc && py)
+ *ptr++ ^= 6; /* Green (light cyan + yellow) */
+ else if (pm && py)
+ *ptr++ ^= 12; /* Red (magenta + yellow) */
+ else if (pc)
+ *ptr++ ^= 16;
+ else if (pm)
+ *ptr++ ^= 8;
+ else if (py)
+ *ptr++ ^= 4;
+ else
+ ptr ++;
}
break;
@@ -2789,221 +2828,89 @@ format_KCMYcm(
lcptr = ptr + 4 * bandwidth;
lmptr = ptr + 5 * bandwidth;
- switch (header->cupsBitsPerColor)
- {
- case 1 :
- bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
-
- for (x = xsize; x > 0; x --)
- {
- pc = *r0++ > dither[x & 15];
- pm = *r0++ > dither[x & 15];
- py = *r0++ > dither[x & 15];
- pk = *r0++ > dither[x & 15];
-
- if (pk)
- *kptr ^= bitmask; /* Black */
- else if (pc && pm)
- {
- *cptr ^= bitmask; /* Blue (cyan + light magenta) */
- *lmptr ^= bitmask;
- }
- else if (pc && py)
- {
- *lcptr ^= bitmask; /* Green (light cyan + yellow) */
- *yptr ^= bitmask;
- }
- else if (pm && py)
- {
- *mptr ^= bitmask; /* Red (magenta + yellow) */
- *yptr ^= bitmask;
- }
- else if (pc)
- *cptr ^= bitmask;
- else if (pm)
- *mptr ^= bitmask;
- else if (py)
- *yptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- cptr ++;
- mptr ++;
- yptr ++;
- kptr ++;
- lcptr ++;
- lmptr ++;
- }
- }
- break;
-
- case 8 :
- for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
- {
- if (r0[0] == r1[0])
- *cptr++ = r0[0];
- else
- *cptr++ = (r0[0] * yerr0 + r1[0] * yerr1) / ysize;
-
- if (r0[1] == r1[1])
- *mptr++ = r0[1];
- else
- *mptr++ = (r0[1] * yerr0 + r1[1] * yerr1) / ysize;
+ bitmask = 0x80 >> (bitoffset & 7);
+ dither = Floyd16x16[y & 15];
- if (r0[2] == r1[2])
- *yptr++ = r0[2];
- else
- *yptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
+ for (x = xsize; x > 0; x --)
+ {
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+ pk = pc && pm && py;
+
+ if (pk)
+ *kptr ^= bitmask; /* Black */
+ else if (pc && pm)
+ {
+ *cptr ^= bitmask; /* Blue (cyan + light magenta) */
+ *lmptr ^= bitmask;
+ }
+ else if (pc && py)
+ {
+ *lcptr ^= bitmask; /* Green (light cyan + yellow) */
+ *yptr ^= bitmask;
+ }
+ else if (pm && py)
+ {
+ *mptr ^= bitmask; /* Red (magenta + yellow) */
+ *yptr ^= bitmask;
+ }
+ else if (pc)
+ *cptr ^= bitmask;
+ else if (pm)
+ *mptr ^= bitmask;
+ else if (py)
+ *yptr ^= bitmask;
- if (r0[3] == r1[3])
- *kptr++ = r0[3];
- else
- *kptr++ = (r0[3] * yerr0 + r1[3] * yerr1) / ysize;
- }
- break;
- }
+ if (bitmask > 1)
+ bitmask >>= 1;
+ else
+ {
+ bitmask = 0x80;
+ cptr ++;
+ mptr ++;
+ yptr ++;
+ kptr ++;
+ lcptr ++;
+ lmptr ++;
+ }
+ }
break;
case CUPS_ORDER_PLANAR :
- switch (header->cupsBitsPerColor)
- {
- case 1 :
- bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
-
- switch (z)
- {
- case 0 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[3] > dither[x & 15])
- *ptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
-
- case 1 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[0] > dither[x & 15] &&
- r0[2] < dither[x & 15])
- *ptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
-
- case 2 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[1] > dither[x & 15] &&
- (r0[0] < dither[x & 15] ||
- r0[2] > dither[x & 15]))
- *ptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
-
- case 3 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[2] > dither[x & 15] &&
- (r0[0] < dither[x & 15] ||
- r0[1] < dither[x & 15]))
- *ptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
-
- case 4 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[0] > dither[x & 15] &&
- r0[2] > dither[x & 15])
- *ptr ^= bitmask;
-
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
-
- case 5 :
- for (x = xsize; x > 0; x --, r0 += 4)
- {
- if (r0[0] > dither[x & 15] &&
- r0[1] > dither[x & 15] &&
- r0[2] < dither[x & 15])
- *ptr ^= bitmask;
+ bitmask = 0x80 >> (bitoffset & 7);
+ dither = Floyd16x16[y & 15];
- if (bitmask > 1)
- bitmask >>= 1;
- else
- {
- bitmask = 0x80;
- ptr ++;
- }
- }
- break;
- }
- break;
+ for (x = xsize; x > 0; x --)
+ {
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+ pk = pc && pm && py;
- case 8 :
- if (z == 0)
- {
- r0 += 3;
- r1 += 3;
- }
- else
- {
- r0 += z - 1;
- r1 += z - 1;
- }
+ if (pk && z == 0)
+ *ptr ^= bitmask;
+ else if (pc && pm && (z == 1 || z == 5))
+ *ptr ^= bitmask; /* Blue (cyan + light magenta) */
+ else if (pc && py && (z == 3 || z == 4))
+ *ptr ^= bitmask; /* Green (light cyan + yellow) */
+ else if (pm && py && (z == 2 || z == 3))
+ *ptr ^= bitmask; /* Red (magenta + yellow) */
+ else if (pc && z == 1)
+ *ptr ^= bitmask;
+ else if (pm && z == 2)
+ *ptr ^= bitmask;
+ else if (py && z == 3)
+ *ptr ^= bitmask;
- for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
- {
- if (*r0 == *r1)
- *ptr++ = *r0;
- else
- *ptr++ = (*r0 * yerr0 + *r1 * yerr1) / ysize;
- }
- break;
- }
+ if (bitmask > 1)
+ bitmask >>= 1;
+ else
+ {
+ bitmask = 0x80;
+ ptr ++;
+ }
+ }
break;
}
}
@@ -3059,7 +2966,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 128 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --)
{
@@ -3075,14 +2982,11 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
*ptr ^= bitmask;
if (bitmask > 2)
- {
- *ptr ^= 16;
bitmask >>= 2;
- }
else
{
bitmask = 128;
- *ptr++ ^= 1;
+ ptr ++;
}
}
break;
@@ -3093,9 +2997,9 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
for (x = xsize ; x > 0; x --, r0 += 3)
{
if ((r0[0] & 63) > dither[x & 7])
- *ptr ^= (0x0 & OnPixels[r0[0]]);
+ *ptr ^= (0xc0 & OnPixels[r0[0]]);
else
- *ptr ^= (0x0 & OffPixels[r0[0]]);
+ *ptr ^= (0xc0 & OffPixels[r0[0]]);
if ((r0[1] & 63) > dither[x & 7])
*ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -3107,7 +3011,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
else
*ptr ^= (0x0c & OffPixels[r0[2]]);
- *ptr++ ^= 0x03;
+ ptr ++;
}
break;
@@ -3131,7 +3035,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
else
*ptr ^= (0xf0 & OffPixels[r0[2]]);
- *ptr++ ^= 0x0f;
+ ptr ++;
}
break;
@@ -3153,7 +3057,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
else
*ptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
- *ptr++ = 255;
+ ptr ++;
}
break;
}
@@ -3170,7 +3074,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
@@ -3194,7 +3098,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -3218,7 +3122,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -3294,7 +3198,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
@@ -3349,7 +3253,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
@@ -3364,7 +3268,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -3456,7 +3360,7 @@ format_W(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
@@ -3474,7 +3378,7 @@ format_W(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -3488,7 +3392,7 @@ format_W(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -3580,7 +3484,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 64 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --, r0 += 3)
{
@@ -3680,7 +3584,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
@@ -3704,7 +3608,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -3728,7 +3632,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -3798,7 +3702,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
@@ -3853,7 +3757,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
z = 2 - z;
r0 += z;
@@ -3869,7 +3773,7 @@ format_YMC(cups_page_header2_t *header, /* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -3945,6 +3849,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
int bandwidth; /* Width of a color band */
int x, /* Current X coordinate on page */
*dither; /* Pointer into dither array */
+ int pc, pm, py; /* CMY pixels */
switch (XPosition)
@@ -3970,24 +3875,33 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 128 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
- for (x = xsize ; x > 0; x --, r0 += 4)
+ for (x = xsize ; x > 0; x --)
{
- if (r0[2] > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
- if (r0[1] > dither[x & 15])
+ if (pc && pm && py)
+ {
+ bitmask >>= 3;
*ptr ^= bitmask;
- bitmask >>= 1;
+ }
+ else
+ {
+ if (py)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
- if (r0[0] > dither[x & 15])
- *ptr ^= bitmask;
- bitmask >>= 1;
+ if (pm)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
- if (r0[3] > dither[x & 15])
- *ptr ^= bitmask;
+ if (pc)
+ *ptr ^= bitmask;
+ bitmask >>= 1;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -4006,9 +3920,9 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
for (x = xsize ; x > 0; x --, r0 += 4)
{
if ((r0[2] & 63) > dither[x & 7])
- *ptr ^= (0x0 & OnPixels[r0[2]]);
+ *ptr ^= (0xc0 & OnPixels[r0[2]]);
else
- *ptr ^= (0x0 & OffPixels[r0[2]]);
+ *ptr ^= (0xc0 & OffPixels[r0[2]]);
if ((r0[1] & 63) > dither[x & 7])
*ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -4091,18 +4005,25 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
- if (*r0++ > dither[x & 15])
- *cptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *mptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *yptr ^= bitmask;
- if (*r0++ > dither[x & 15])
- *kptr ^= bitmask;
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if (pc && pm && py)
+ *kptr ^= bitmask;
+ else
+ {
+ if (pc)
+ *cptr ^= bitmask;
+ if (pm)
+ *mptr ^= bitmask;
+ if (py)
+ *yptr ^= bitmask;
+ }
if (bitmask > 1)
bitmask >>= 1;
@@ -4119,7 +4040,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
@@ -4148,7 +4069,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
@@ -4230,16 +4151,16 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
-
- if (z < 3)
- r0 += 2 - z;
- else
- r0 += z;
+ dither = Floyd16x16[y & 15];
- for (x = xsize; x > 0; x --, r0 += 4)
+ for (x = xsize; x > 0; x --)
{
- if (*r0 > dither[x & 15])
+ pc = *r0++ > dither[x & 15];
+ pm = *r0++ > dither[x & 15];
+ py = *r0++ > dither[x & 15];
+
+ if ((pc && pm && py && z == 3) ||
+ (pc && z == 2) || (pm && z == 1) || (py && z == 0))
*ptr ^= bitmask;
if (bitmask > 1)
@@ -4253,7 +4174,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
if (z == 3)
r0 += 3;
@@ -4271,7 +4192,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
@@ -4389,5 +4310,5 @@ raster_cb(
/*
- * End of "$Id: imagetoraster.c 5485 2006-05-02 23:59:56Z mike $".
+ * End of "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $".
*/
diff --git a/filter/interpret.c b/filter/interpret.c
index 047431d41f..a5c1c57b45 100644
--- a/filter/interpret.c
+++ b/filter/interpret.c
@@ -1,5 +1,5 @@
/*
- * "$Id: interpret.c 5497 2006-05-06 00:24:22Z mike $"
+ * "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $"
*
* PPD command interpreter for the Common UNIX Printing System (CUPS).
*
@@ -296,7 +296,7 @@ cupsRasterInterpretPPD(
break;
case CUPS_CSPACE_KCMYcm :
- if (h->cupsBitsPerPixel == 1)
+ if (h->cupsBitsPerColor == 1)
{
if (h->cupsColorOrder == CUPS_ORDER_CHUNKED)
h->cupsBitsPerPixel = 8;
@@ -608,5 +608,5 @@ exec_code(
/*
- * End of "$Id: interpret.c 5497 2006-05-06 00:24:22Z mike $".
+ * End of "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $".
*/
diff --git a/filter/pstops.c b/filter/pstops.c
index 305c798d85..23469f3e35 100644
--- a/filter/pstops.c
+++ b/filter/pstops.c
@@ -1,5 +1,5 @@
/*
- * "$Id: pstops.c 5382 2006-04-07 14:58:44Z mike $"
+ * "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $"
*
* PostScript filter for the Common UNIX Printing System (CUPS).
*
@@ -184,7 +184,11 @@ static size_t copy_trailer(cups_file_t *fp, pstops_doc_t *doc,
size_t linelen, size_t linesize);
static void do_prolog(pstops_doc_t *doc, ppd_file_t *ppd);
static void do_setup(pstops_doc_t *doc, ppd_file_t *ppd);
-static void doc_printf(pstops_doc_t *doc, const char *format, ...);
+static void doc_printf(pstops_doc_t *doc, const char *format, ...)
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 2, 3)))
+#endif /* __GNUC__ */
+;
static void doc_puts(pstops_doc_t *doc, const char *s);
static void doc_write(pstops_doc_t *doc, const char *s, size_t len);
static void end_nup(pstops_doc_t *doc, int number);
@@ -886,6 +890,13 @@ copy_dsc(cups_file_t *fp, /* I - File to read from */
}
}
+ /*
+ * Restore the old showpage operator as needed...
+ */
+
+ if (doc->use_ESPshowpage)
+ puts("userdict/showpage/ESPshowpage load put\n");
+
/*
* Write/copy the trailer...
*/
@@ -1061,6 +1072,13 @@ copy_non_dsc(cups_file_t *fp, /* I - File to read from */
}
}
}
+
+ /*
+ * Restore the old showpage operator as needed...
+ */
+
+ if (doc->use_ESPshowpage)
+ puts("userdict/showpage/ESPshowpage load put\n");
}
@@ -1685,6 +1703,14 @@ static void
do_setup(pstops_doc_t *doc, /* I - Document information */
ppd_file_t *ppd) /* I - PPD file */
{
+ /*
+ * Disable CTRL-D so that embedded files don't cause printing
+ * errors...
+ */
+
+ puts("% Disable CTRL-D as an end-of-file marker...");
+ puts("userdict dup(\\004)cvn{}put (\\004\\004)cvn{}put");
+
/*
* Mark any options from %%IncludeFeature: comments...
*/
@@ -1830,7 +1856,7 @@ end_nup(pstops_doc_t *doc, /* I - Document information */
int number) /* I - Page number */
{
if (doc->mirror || Orientation || doc->number_up > 1)
- puts("userdict /ESPsave get restore");
+ puts("userdict/ESPsave get restore");
switch (doc->number_up)
{
@@ -2711,13 +2737,12 @@ start_nup(pstops_doc_t *doc, /* I - Document information */
ty = 0.5 * (pagew - 3 * l);
if (doc->normal_landscape)
- doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
+ doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
else
- doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
+ doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
- tx + x * y * pagel * 0.5, ty + pagew * 0.333,
- w / bboxw, l / bboxl);
+ tx + x * w, ty + y * l, l / bboxl, w / bboxw);
}
else
{
@@ -2753,17 +2778,17 @@ start_nup(pstops_doc_t *doc, /* I - Document information */
l = w * bboxl / bboxw;
}
- tx = 0.5 * (pagel - 3 * w);
- ty = 0.5 * (pagew - 2 * l);
+ tx = 0.5 * (pagel - 3 * w);
+ ty = 0.5 * (pagew - 2 * l);
if (doc->normal_landscape)
- doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
+ doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
else
- doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
+ doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
- tx + x * pagel * 0.333, ty + y * pagew * 0.5,
- w / bboxw, l / bboxl);
+ tx + w * x, ty + l * y, w / bboxw, l / bboxl);
+
}
break;
@@ -2910,5 +2935,5 @@ start_nup(pstops_doc_t *doc, /* I - Document information */
/*
- * End of "$Id: pstops.c 5382 2006-04-07 14:58:44Z mike $".
+ * End of "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $".
*/
diff --git a/filter/raster.c b/filter/raster.c
index 607deb1a6a..8206a44224 100644
--- a/filter/raster.c
+++ b/filter/raster.c
@@ -1,5 +1,5 @@
/*
- * "$Id: raster.c 5192 2006-02-27 03:08:47Z mike $"
+ * "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $"
*
* Raster file routines for the Common UNIX Printing System (CUPS).
*
@@ -70,6 +70,24 @@
#endif /* WIN32 || __EMX__ */
+/*
+ * Private structures...
+ */
+
+struct _cups_raster_s /**** Raster stream data ****/
+{
+ unsigned sync; /* Sync word from start of stream */
+ int fd; /* File descriptor */
+ cups_mode_t mode; /* Read/write mode */
+ cups_page_header2_t header; /* Raster header for current page */
+ int count, /* Current row run-length count */
+ remaining, /* Remaining rows in page image */
+ bpp; /* Bytes per pixel/color */
+ unsigned char *pixels, /* Pixels for current row */
+ *pend, /* End of pixel buffer */
+ *pcurrent; /* Current byte in pixel buffer */
+};
+
/*
* Local functions...
*/
@@ -335,7 +353,9 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */
}
}
- if (r->header.cupsBitsPerColor == 16 &&
+ if ((r->header.cupsBitsPerColor == 16 ||
+ r->header.cupsBitsPerPixel == 12 ||
+ r->header.cupsBitsPerPixel == 16) &&
(r->sync == CUPS_RASTER_REVSYNC || r->sync == CUPS_RASTER_REVSYNCv1))
{
/*
@@ -478,12 +498,16 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
unsigned remaining; /* Bytes remaining */
+#ifdef DEBUG
+ fprintf(stderr, "cupsRasterWritePixels(r=%p, p=%p, len=%u), remaining=%u\n",
+ r, p, len, r->remaining);
+#endif /* DEBUG */
+
if (r == NULL || r->mode != CUPS_RASTER_WRITE || r->remaining == 0)
return (0);
- remaining = len;
+ for (remaining = len; remaining > 0; remaining -= bytes, p += bytes)
- while (remaining > 0)
{
/*
* Figure out the number of remaining bytes on the current line...
@@ -527,14 +551,19 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
*/
r->remaining --;
+
if (r->remaining == 0)
return (cups_raster_write(r));
else if (r->count == 256)
{
- cups_raster_write(r);
+ if (cups_raster_write(r) == 0)
+ return (0);
+
r->count = 0;
}
}
+
+ continue;
}
}
@@ -562,13 +591,11 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
*/
r->remaining --;
+
if (r->remaining == 0)
return (cups_raster_write(r));
}
}
-
- remaining -= bytes;
- p += bytes;
}
return (len);
@@ -640,7 +667,8 @@ cups_raster_read_header(
static void
cups_raster_update(cups_raster_t *r) /* I - Raster stream */
{
- if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1)
+ if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1 ||
+ r->header.cupsNumColors == 0)
{
/*
* Set the "cupsNumColors" field according to the colorspace...
@@ -653,20 +681,29 @@ cups_raster_update(cups_raster_t *r) /* I - Raster stream */
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
- case CUPS_CSPACE_ICC1 :
r->header.cupsNumColors = 1;
break;
- case CUPS_CSPACE_ICC2 :
- r->header.cupsNumColors = 2;
- break;
-
case CUPS_CSPACE_RGB :
case CUPS_CSPACE_CMY :
case CUPS_CSPACE_YMC :
case CUPS_CSPACE_CIEXYZ :
case CUPS_CSPACE_CIELab :
+ case CUPS_CSPACE_ICC1 :
+ case CUPS_CSPACE_ICC2 :
case CUPS_CSPACE_ICC3 :
+ case CUPS_CSPACE_ICC4 :
+ case CUPS_CSPACE_ICC5 :
+ case CUPS_CSPACE_ICC6 :
+ case CUPS_CSPACE_ICC7 :
+ case CUPS_CSPACE_ICC8 :
+ case CUPS_CSPACE_ICC9 :
+ case CUPS_CSPACE_ICCA :
+ case CUPS_CSPACE_ICCB :
+ case CUPS_CSPACE_ICCC :
+ case CUPS_CSPACE_ICCD :
+ case CUPS_CSPACE_ICCE :
+ case CUPS_CSPACE_ICCF :
r->header.cupsNumColors = 3;
break;
@@ -677,7 +714,6 @@ cups_raster_update(cups_raster_t *r) /* I - Raster stream */
case CUPS_CSPACE_KCMY :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
- case CUPS_CSPACE_ICC4 :
r->header.cupsNumColors = 4;
break;
@@ -687,21 +723,6 @@ cups_raster_update(cups_raster_t *r) /* I - Raster stream */
else
r->header.cupsNumColors = 4;
break;
-
- case CUPS_CSPACE_ICC5 :
- case CUPS_CSPACE_ICC6 :
- case CUPS_CSPACE_ICC7 :
- case CUPS_CSPACE_ICC8 :
- case CUPS_CSPACE_ICC9 :
- case CUPS_CSPACE_ICCA :
- case CUPS_CSPACE_ICCB :
- case CUPS_CSPACE_ICCC :
- case CUPS_CSPACE_ICCD :
- case CUPS_CSPACE_ICCE :
- case CUPS_CSPACE_ICCF :
- r->header.cupsNumColors = r->header.cupsColorSpace -
- CUPS_CSPACE_ICC1 + 1;
- break;
}
}
@@ -750,6 +771,10 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
int count; /* Count */
+#ifdef DEBUG
+ fprintf(stderr, "cups_raster_write(r=%p)\n", r);
+#endif /* DEBUG */
+
/*
* Write the row repeat count...
*/
@@ -757,7 +782,14 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
byte = r->count - 1;
if (cups_write(r->fd, &byte, 1) < 1)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write row repeat count...\n",
+ stderr);
+#endif /* DEBUG */
+
return (0);
+ }
/*
* Write using a modified TIFF "packbits" compression...
@@ -776,10 +808,22 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
byte = 0;
if (cups_write(r->fd, &byte, 1) < 1)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write last pixel count...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
if (cups_write(r->fd, start, r->bpp) < r->bpp)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write last pixel data...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
}
else if (!memcmp(start, ptr, r->bpp))
{
@@ -796,10 +840,22 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
byte = count - 1;
if (cups_write(r->fd, &byte, 1) < 1)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write repeated pixel count...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
if (cups_write(r->fd, start, r->bpp) < r->bpp)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write repeated pixel data...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
}
else
{
@@ -820,12 +876,24 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
byte = 257 - count;
if (cups_write(r->fd, &byte, 1) < 1)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write non-repeating pixel count...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
count *= r->bpp;
if (cups_write(r->fd, start, count) < count)
+ {
+#ifdef DEBUG
+ fputs("cups_raster_write: Unable to write non-repeating pixel data...\n", stderr);
+#endif /* DEBUG */
+
return (0);
+ }
}
}
@@ -896,5 +964,5 @@ cups_write(int fd, /* I - File descriptor */
/*
- * End of "$Id: raster.c 5192 2006-02-27 03:08:47Z mike $".
+ * End of "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $".
*/
diff --git a/filter/raster.h b/filter/raster.h
index afd9f73070..3c5b671181 100644
--- a/filter/raster.h
+++ b/filter/raster.h
@@ -1,5 +1,5 @@
/*
- * "$Id: raster.h 5485 2006-05-02 23:59:56Z mike $"
+ * "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $"
*
* Raster file definitions for the Common UNIX Printing System (CUPS).
*
@@ -303,19 +303,8 @@ typedef struct cups_page_header2_s /**** Version 2 Page Header @since CUPS 1.2@
char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2@ */
} cups_page_header2_t;
-typedef struct _cups_raster_s /**** Raster stream data ****/
-{
- unsigned sync; /* Sync word from start of stream */
- int fd; /* File descriptor */
- cups_mode_t mode; /* Read/write mode */
- cups_page_header2_t header; /* Raster header for current page */
- int count, /* Current row run-length count */
- remaining, /* Remaining rows in page image */
- bpp; /* Bytes per pixel/color */
- unsigned char *pixels, /* Pixels for current row */
- *pend, /* End of pixel buffer */
- *pcurrent; /* Current byte in pixel buffer */
-} cups_raster_t;
+typedef struct _cups_raster_s cups_raster_t;
+ /**** Raster stream data ****/
typedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits);
@@ -353,5 +342,5 @@ extern unsigned cupsRasterWriteHeader2(cups_raster_t *r,
#endif /* !_CUPS_RASTER_H_ */
/*
- * End of "$Id: raster.h 5485 2006-05-02 23:59:56Z mike $".
+ * End of "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $".
*/
diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c
index 90de48f824..4b8ee4a051 100644
--- a/filter/rastertolabel.c
+++ b/filter/rastertolabel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $"
+ * "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $"
*
* Label printer filter for the Common UNIX Printing System (CUPS).
*
@@ -30,6 +30,7 @@
* EndPage() - Finish a page of graphics.
* CancelJob() - Cancel the current job...
* OutputLine() - Output a line of graphics.
+ * PCLCompress() - Output a PCL (mode 3) compressed line.
* ZPLCompress() - Output a run-length compression sequence.
* main() - Main entry and processing of driver.
*/
@@ -48,16 +49,20 @@
/*
- * This driver filter currently supports Dymo and Zebra label printers.
+ * This driver filter currently supports Dymo, Intellitech, and Zebra
+ * label printers.
*
* The Dymo portion of the driver has been tested with the 300, 330,
- * and 330 Turbo label printers; it may also work with older models.
+ * and 330 Turbo label printers; it may also work with other models.
* The Dymo printers support printing at 136, 203, and 300 DPI.
*
- * The Zebra portion of the driver has been tested with the LP-2844Z label
- * printer; it may also work with other models. The driver supports EPL
- * line mode, EPL page mode, ZPL, and CPCL as defined in Zebra's on-line
- * developer documentation.
+ * The Intellitech portion of the driver has been tested with the
+ * Intellibar 408, 412, and 808 and supports their PCL variant.
+ *
+ * The Zebra portion of the driver has been tested with the LP-2844,
+ * LP-2844Z, QL-320, and QL-420 label printers; it may also work with
+ * other models. The driver supports EPL line mode, EPL page mode,
+ * ZPL, and CPCL as defined in Zebra's on-line developer documentation.
*/
/*
@@ -71,13 +76,15 @@
#define ZEBRA_ZPL 0x12 /* Zebra ZPL-based printers */
#define ZEBRA_CPCL 0x13 /* Zebra CPCL-based printers */
+#define INTELLITECH_PCL 0x20 /* Intellitech PCL-based printers */
+
/*
* Globals...
*/
unsigned char *Buffer; /* Output buffer */
-char *CompBuffer; /* Compression buffer */
+unsigned char *CompBuffer; /* Compression buffer */
unsigned char *LastBuffer; /* Last buffer */
int LastSet; /* Number of repeat characters */
int ModelNumber, /* cupsModelNumber attribute */
@@ -95,6 +102,7 @@ void StartPage(ppd_file_t *ppd, cups_page_header_t *header);
void EndPage(ppd_file_t *ppd, cups_page_header_t *header);
void CancelJob(int sig);
void OutputLine(ppd_file_t *ppd, cups_page_header_t *header, int y);
+void PCLCompress(unsigned char *line, int length);
void ZPLCompress(char repeat_char, int repeat_count);
@@ -147,6 +155,15 @@ Setup(ppd_file_t *ppd) /* I - PPD file */
case ZEBRA_CPCL :
break;
+
+ case INTELLITECH_PCL :
+ /*
+ * Send a PCL reset sequence.
+ */
+
+ putchar(0x1b);
+ putchar('E');
+ break;
}
}
@@ -213,6 +230,9 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */
fprintf(stderr, "DEBUG: cupsColorOrder = %d\n", header->cupsColorOrder);
fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header->cupsColorSpace);
fprintf(stderr, "DEBUG: cupsCompression = %d\n", header->cupsCompression);
+ fprintf(stderr, "DEBUG: cupsRowCount = %d\n", header->cupsRowCount);
+ fprintf(stderr, "DEBUG: cupsRowFeed = %d\n", header->cupsRowFeed);
+ fprintf(stderr, "DEBUG: cupsRowStep = %d\n", header->cupsRowStep);
/*
* Register a signal handler to eject the current page if the
@@ -353,6 +373,108 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */
header->HWResolution[1], header->cupsHeight,
header->NumCopies);
break;
+
+ case INTELLITECH_PCL :
+ /*
+ * Set the media size...
+ */
+
+ printf("\033&l6D\033&k12H"); /* Set 6 LPI, 10 CPI */
+ printf("\033&l0O"); /* Set portrait orientation */
+
+ switch (header->PageSize[1])
+ {
+ case 540 : /* Monarch Envelope */
+ printf("\033&l80A"); /* Set page size */
+ break;
+
+ case 624 : /* DL Envelope */
+ printf("\033&l90A"); /* Set page size */
+ break;
+
+ case 649 : /* C5 Envelope */
+ printf("\033&l91A"); /* Set page size */
+ break;
+
+ case 684 : /* COM-10 Envelope */
+ printf("\033&l81A"); /* Set page size */
+ break;
+
+ case 756 : /* Executive */
+ printf("\033&l1A"); /* Set page size */
+ break;
+
+ case 792 : /* Letter */
+ printf("\033&l2A"); /* Set page size */
+ break;
+
+ case 842 : /* A4 */
+ printf("\033&l26A"); /* Set page size */
+ break;
+
+ case 1008 : /* Legal */
+ printf("\033&l3A"); /* Set page size */
+ break;
+
+ default : /* Custom size */
+ printf("\033!f%dZ", header->PageSize[1] * 300 / 72);
+ break;
+ }
+
+ printf("\033&l%dP", /* Set page length */
+ header->PageSize[1] / 12);
+ printf("\033&l0E"); /* Set top margin to 0 */
+ printf("\033&l%dX", header->NumCopies);
+ /* Set number copies */
+ printf("\033&l0L"); /* Turn off perforation skip */
+
+ /*
+ * Print settings...
+ */
+
+ if (Page == 1)
+ {
+ if (header->cupsRowFeed) /* inPrintRate */
+ printf("\033!p%dS", header->cupsRowFeed);
+
+ if (header->cupsCompression != ~0)
+ /* inPrintDensity */
+ printf("\033&d%dA", 30 * header->cupsCompression / 100 - 15);
+
+ if (header->cupsRowCount != ~0)
+ /* inTearInterval */
+ printf("\033!n%dT", header->cupsRowCount);
+
+ if (header->cupsRowStep != ~0)
+ /* inCutInterval */
+ printf("\033!n%dC", header->cupsRowStep);
+ }
+
+ /*
+ * Setup graphics...
+ */
+
+ printf("\033*t%dR", header->HWResolution[0]);
+ /* Set resolution */
+
+ printf("\033*r%dS", header->cupsWidth);
+ /* Set width */
+ printf("\033*r%dT", header->cupsHeight);
+ /* Set height */
+
+ printf("\033&a0H"); /* Set horizontal position */
+ printf("\033&a0V"); /* Set vertical position */
+ printf("\033*r1A"); /* Start graphics */
+ printf("\033*b3M"); /* Set compression */
+
+ /*
+ * Allocate compression buffers...
+ */
+
+ CompBuffer = malloc(2 * header->cupsBytesPerLine + 1);
+ LastBuffer = malloc(header->cupsBytesPerLine);
+ LastSet = 0;
+ break;
}
/*
@@ -591,6 +713,11 @@ EndPage(ppd_file_t *ppd, /* I - PPD file */
puts("FORM\r");
puts("PRINT\r");
break;
+
+ case INTELLITECH_PCL :
+ printf("\033*rB"); /* End GFX */
+ printf("\014"); /* Eject current page */
+ break;
}
fflush(stdout);
@@ -788,10 +915,163 @@ OutputLine(ppd_file_t *ppd, /* I - PPD file */
fflush(stdout);
}
break;
+
+ case INTELLITECH_PCL :
+ if (Buffer[0] ||
+ memcmp(Buffer, Buffer + 1, header->cupsBytesPerLine - 1))
+ {
+ if (Feed)
+ {
+ printf("\033*b%dY", Feed);
+ Feed = 0;
+ LastSet = 0;
+ }
+
+ PCLCompress(Buffer, header->cupsBytesPerLine);
+ }
+ else
+ Feed ++;
+ break;
}
}
+/*
+ * 'PCLCompress()' - Output a PCL (mode 3) compressed line.
+ */
+
+void
+PCLCompress(unsigned char *line, /* I - Line to compress */
+ int length) /* I - Length of line */
+{
+ unsigned char *line_ptr, /* Current byte pointer */
+ *line_end, /* End-of-line byte pointer */
+ *comp_ptr, /* Pointer into compression buffer */
+ *start, /* Start of compression sequence */
+ *seed; /* Seed buffer pointer */
+ int count, /* Count of bytes for output */
+ offset; /* Offset of bytes for output */
+
+
+ /*
+ * Do delta-row compression...
+ */
+
+ line_ptr = line;
+ line_end = line + length;
+
+ comp_ptr = CompBuffer;
+ seed = LastBuffer;
+
+ while (line_ptr < line_end)
+ {
+ /*
+ * Find the next non-matching sequence...
+ */
+
+ start = line_ptr;
+
+ if (!LastSet)
+ {
+ /*
+ * The seed buffer is invalid, so do the next 8 bytes, max...
+ */
+
+ offset = 0;
+
+ if ((count = line_end - line_ptr) > 8)
+ count = 8;
+
+ line_ptr += count;
+ }
+ else
+ {
+ /*
+ * The seed buffer is valid, so compare against it...
+ */
+
+ while (*line_ptr == *seed &&
+ line_ptr < line_end)
+ {
+ line_ptr ++;
+ seed ++;
+ }
+
+ if (line_ptr == line_end)
+ break;
+
+ offset = line_ptr - start;
+
+ /*
+ * Find up to 8 non-matching bytes...
+ */
+
+ start = line_ptr;
+ count = 0;
+ while (*line_ptr != *seed &&
+ line_ptr < line_end &&
+ count < 8)
+ {
+ line_ptr ++;
+ seed ++;
+ count ++;
+ }
+ }
+
+ /*
+ * Place mode 3 compression data in the buffer; see HP manuals
+ * for details...
+ */
+
+ if (offset >= 31)
+ {
+ /*
+ * Output multi-byte offset...
+ */
+
+ *comp_ptr++ = ((count - 1) << 5) | 31;
+
+ offset -= 31;
+ while (offset >= 255)
+ {
+ *comp_ptr++ = 255;
+ offset -= 255;
+ }
+
+ *comp_ptr++ = offset;
+ }
+ else
+ {
+ /*
+ * Output single-byte offset...
+ */
+
+ *comp_ptr++ = ((count - 1) << 5) | offset;
+ }
+
+ memcpy(comp_ptr, start, count);
+ comp_ptr += count;
+ }
+
+ line_ptr = CompBuffer;
+ line_end = comp_ptr;
+
+ /*
+ * Set the length of the data and write it...
+ */
+
+ printf("\033*b%dW", comp_ptr - CompBuffer);
+ fwrite(CompBuffer, comp_ptr - CompBuffer, 1, stdout);
+
+ /*
+ * Save this line as a "seed" buffer for the next...
+ */
+
+ memcpy(LastBuffer, line, length);
+ LastSet = 1;
+}
+
+
/*
* 'ZPLCompress()' - Output a run-length compression sequence.
*/
@@ -873,7 +1153,7 @@ main(int argc, /* I - Number of command-line arguments */
* and return.
*/
- fputs("ERROR: rastertodymo job-id user title copies options [file]\n", stderr);
+ fputs("ERROR: rastertolabel job-id user title copies options [file]\n", stderr);
return (1);
}
@@ -1003,5 +1283,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $".
+ * End of "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $".
*/
diff --git a/locale/cups.pot b/locale/cups.pot
index 6b9ac5ba0f..a74569ef57 100644
--- a/locale/cups.pot
+++ b/locale/cups.pot
@@ -29,7 +29,7 @@ msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-04-14 14:35-0400\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -2599,6 +2599,15 @@ msgid ""
" Note: this program only validates the DSC comments, not the PostScript itself.\n"
msgstr ""
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+
#
# End of "$Id$".
diff --git a/locale/cups_es.po b/locale/cups_es.po
index bbcb8a2be5..eeb6713741 100644
--- a/locale/cups_es.po
+++ b/locale/cups_es.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-04-14 14:35-0400\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
"PO-Revision-Date: 2006-03-25 21:48+0100\n"
"Last-Translator: Juan Pablo González Riopedre \n"
"Language-Team: Spanish\n"
@@ -2990,3 +2990,15 @@ msgstr ""
"\n"
" Nota: este programa sólo valida los comentarios DSC, no el PostScript en "
"sà mismo.\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FALLO** Preferencia %s incorrecta %s.\n"
+" REF: Página 122, sección 5.17\n"
diff --git a/locale/cups_ja.po b/locale/cups_ja.po
index 3b68a7d156..464407aba9 100644
--- a/locale/cups_ja.po
+++ b/locale/cups_ja.po
@@ -25,7 +25,7 @@ msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-04-14 14:35-0400\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
"PO-Revision-Date: 2006-03-29 23:44+0900\n"
"Last-Translator: Kenshi Muto \n"
"Language-Team: Japanese \n"
@@ -2926,3 +2926,15 @@ msgstr ""
"\n"
" 注æ: ãã®ããã°ã©ã 㯠DSC ã³ã¡ã³ããæ¤è¨¼ããã ãã§ãPostScript èªèº«ãæ¤"
"証ãããã®ã§ã¯ããã¾ããã\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FAIL** 䏿£ãª %s ã %s ãé¸ãã§ãã¾ã!\n"
+" REF: 122 ãã¼ã¸ãã»ã¯ã·ã§ã³ 5.17\n"
diff --git a/locale/cups_pl.po b/locale/cups_pl.po
new file mode 100644
index 0000000000..49c815145e
--- /dev/null
+++ b/locale/cups_pl.po
@@ -0,0 +1,2949 @@
+#
+# "$Id$"
+#
+# Message catalog template for the Common UNIX Printing System (CUPS).
+#
+# Copyright 2005-2006 by Easy Software Products.
+#
+# These coded instructions, statements, and computer programs are the
+# property of Easy Software Products and are protected by Federal
+# copyright law. Distribution and use rights are outlined in the file
+# "LICENSE.txt" which should have been included with this file. If this
+# file is missing or damaged please contact Easy Software Products
+# at:
+#
+# Attn: CUPS Licensing Information
+# Easy Software Products
+# 44141 Airport View Drive, Suite 204
+# Hollywood, Maryland 20636 USA
+#
+# Voice: (301) 373-9600
+# EMail: cups-info@cups.org
+# WWW: http://www.cups.org
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CUPS 1.2\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
+"PO-Revision-Date: 2006-05-09 17:20+0200\n"
+"Last-Translator: Piotr DrÄ
g \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Options Installed"
+msgstr "Zainstalowane opcje"
+
+msgid "Class"
+msgstr "Klasa"
+
+msgid "Printer"
+msgstr "Drukarka"
+
+msgid "Extra"
+msgstr "Dodatkowe"
+
+msgid "General"
+msgstr "Ogólne"
+
+msgid "Media Size"
+msgstr "Rozmiar noÅnika"
+
+msgid "Media Type"
+msgstr "Typ noÅnika"
+
+msgid "Media Source"
+msgstr "ŹródÅo noÅnika"
+
+msgid "Output Mode"
+msgstr "Tryb wyjÅcia"
+
+msgid "Resolution"
+msgstr "RozdzielczoÅÄ"
+
+msgid "Variable"
+msgstr "Zmienna"
+
+msgid "Yes"
+msgstr "Tak"
+
+msgid "No"
+msgstr "Nie"
+
+msgid "Auto"
+msgstr "Automatycznie"
+
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Podaj swojÄ
nazwÄ użytkownika i hasÅo lub nazwÄ użytkownika root i hasÅo, "
+"aby uzyskaÄ dostÄp do tej strony."
+
+msgid "You must use a https: URL to access this page."
+msgstr "Musisz użyÄ URL-a https:, aby uzyskaÄ dostÄp do tej strony."
+
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "BÅÄdny numer wersji żÄ
dania %d.%d!"
+
+msgid "No attributes in request!"
+msgstr "Brak wÅaÅciwoÅci w żÄ
daniu!"
+
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Grupy wÅaÅciwoÅci sÄ
nieuporzÄ
dkowane (%x < %x)!"
+
+msgid "Missing required attributes!"
+msgstr "Brakuje wymaganych wÅaÅciwoÅci!"
+
+#, c-format
+msgid "%s not supported!"
+msgstr "%s jest nieobsÅugiwane!"
+
+msgid "The printer or class was not found."
+msgstr "Drukarka lub klasa nie zostaÅa znaleziona."
+
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"printer-uri musi byÄ w formie \"ipp://NAZWAKOMPUTERA/classes/NAZWAKLASY\"."
+
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "printer-uri \"%s\" zawiera nieprawidÅowe znaki."
+
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Drukarka o nazwie \"%s\" już istnieje!"
+
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Spróbowano ustawiÄ printer-state %s na bÅÄdnÄ
wartoÅÄ %d!"
+
+#, c-format
+msgid "add_class: Unknown printer-op-policy \"%s\"."
+msgstr "add_class: nieznane \"%s\" printer-op-policy."
+
+#, c-format
+msgid "add_class: Unknown printer-error-policy \"%s\"."
+msgstr "add_class: nieznane \"%s\" printer-error-policy."
+
+msgid "Unable to allocate memory for file types!"
+msgstr "Nie można przydzieliÄ pamiÄci dla typów plików!"
+
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Zestaw znaków \"%s\" jest nieobsÅugiwany!"
+
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "JÄzyk \"%s\" jest nieobsÅugiwany!"
+
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "WartoÅÄ notify-user-data jest za duża (%d > 63 oktety)!"
+
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"WÅaÅciwoÅÄ notify-lease-duration nie może byÄ używana z subskrypcjami zadaÅ."
+
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"printer-uri musi byÄ w formie \"ipp://NAZWAKOMPUTERA/printers/NAZWADRUKARKI"
+"\"."
+
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr "Klasa o nazwie \"%s\" już istnieje!"
+
+#, c-format
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"URI pliku urzÄ
dzenia zostaÅo wyÅÄ
czone! Aby wÅÄ
czyÄ, zobacz dyrektywÄ "
+"FileDevice w \"%s/cupsd.conf\"."
+
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "BÅÄdne \"%s\" device-uri!"
+
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "BÅÄdne \"%s\" port-monitor!"
+
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "BÅÄdne %d printer-state value!"
+
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "Nieznane \"%s\" printer-op-policy."
+
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "Nieznane \"%s\" printer-error-polic!"
+
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Nie można skopiowaÄ skryptu interfejsu - %s!"
+
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Nie można skopiowaÄ pliku PPD - %s!"
+
+msgid "Unable to copy PPD file!"
+msgstr "Nie można skopiowaÄ pliku PPD!"
+
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Otrzymano wÅaÅciwoÅÄ printer-uri, ale bez job-id!"
+
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "BÅÄdna wÅaÅciwoÅÄ \"%s\" job-uri!"
+
+#, c-format
+msgid "Job #%d doesn't exist!"
+msgstr "Zadanie #%d nie istnieje!"
+
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "Zadanie #%d nie zostaÅo wstrzymane do uwierzytelnienia!"
+
+#, c-format
+msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do uwierzytelnienia zadania #%d należÄ
cego do \"%s\"!"
+
+msgid "The printer-uri attribute is required!"
+msgstr "Wymagana jest wÅaÅciwoÅÄ printer-uri!"
+
+msgid "Missing requesting-user-name attribute!"
+msgstr "Brakuje wÅaÅciwoÅci requesting-user-name!"
+
+#, c-format
+msgid "The printer-uri \"%s\" is not valid."
+msgstr "\"%s\" printer-uri jest nieprawidÅowe."
+
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Brak aktywnych zadaÅ na %s!"
+
+#, c-format
+msgid "You are not authorized to delete job #%d owned by \"%s\"!"
+msgstr "Nie jesteÅ upoważniony do usuniÄcia zadania #%d należÄ
cego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is already %s - can't cancel."
+msgstr "Zadanie #%d jest już %s - nie można anulowaÄ."
+
+msgid "The printer or class is not shared!"
+msgstr "Drukarka lub klasa nie jest wspóÅdzielona!"
+
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "Cel \"%s\" nie akceptuje zadaÅ."
+
+#, c-format
+msgid "Bad copies value %d."
+msgstr "BÅÄdna wartoÅÄ kopii %d."
+
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "BÅÄdne wartoÅci %d-%d page-ranges."
+
+msgid "Too many active jobs."
+msgstr "Za dużo aktywnych zadaÅ."
+
+msgid "Quota limit reached."
+msgstr "Przekroczono limit Quoty."
+
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Nie można dodaÄ zadania do celu \"%s\"!"
+
+msgid "No subscription attributes in request!"
+msgstr "Brak wÅaÅciwoÅci subskrypcji w żÄ
daniu!"
+
+msgid "notify-events not specified!"
+msgstr "notify-even jest nieokreÅlone!"
+
+#, c-format
+msgid "Job %d not found!"
+msgstr "Nie znaleziono zadania %d!"
+
+msgid "No default printer"
+msgstr "Brak domyÅlnej drukarki"
+
+msgid "cups-deviced failed to execute."
+msgstr "Nie powiodÅo siÄ wykonanie cups-deviced."
+
+msgid "cups-driverd failed to execute."
+msgstr "Nie powiodÅo siÄ wykonanie cups-driverd."
+
+msgid "No destinations added."
+msgstr "Nie dodano celów."
+
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "%d notify-subscription-id nie dobre!"
+
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "Zadanie #%s nie istnieje!"
+
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "Zadanie #%d nie istnieje!"
+
+msgid "No subscriptions found."
+msgstr "Nie znaleziono subskrypcji."
+
+#, c-format
+msgid "Not authorized to hold job #%d owned by \"%s\"!"
+msgstr "Nie upoważniony do wstrzymania zadania #%d należÄ
cego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "Zadanie #%d zostaÅo zakoÅczone i nie może zostaÄ zmienione!"
+
+#, c-format
+msgid "You are not authorized to move job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do przeniesienia zadania #%d należÄ
cego do \"%s\"!"
+
+msgid "job-printer-uri attribute missing!"
+msgstr "Brakuje wÅaÅciwoÅci job-printer-uri!"
+
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "NieobsÅugiwana kompresja \"%s\"!"
+
+msgid "No file!?!"
+msgstr "Brak pliku?!?"
+
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Nie można przeskanowaÄ typu \"%s\"!"
+
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "NieobsÅugiwany format \"%s/%s\"!"
+
+msgid "Printer not shared!"
+msgstr "Drukarka nie jest wspóÅdzielona!"
+
+#, c-format
+msgid "Too many jobs - %d jobs, max jobs is %d."
+msgstr "Za dużo zadaÅ - jest %d zadaÅ, maksymalnie może byÄ %d."
+
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "Zadanie #%d nie zostaÅo wstrzymane!"
+
+#, c-format
+msgid "You are not authorized to release job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do zwolnienia ID zadania %d należÄ
cego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "Zadanie #%d nie zostaÅo zakoÅczone!"
+
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "Zadanie #%d nie może zostaÄ ponownie uruchomione - brak plików!"
+
+#, c-format
+msgid "You are not authorized to restart job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do ponownego uruchomienia ID zadania %d należÄ
cego do "
+"\"%s\"!"
+
+#, c-format
+msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do wysÅania dokumentu do zadania %d należÄ
cego do \"%s"
+"\"!"
+
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "BÅÄdne \"%s\" document-format!"
+
+#, c-format
+msgid "You are not authorized to alter job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteÅ upoważniony do zmienienia ID zadania %d należÄ
cego do \"%s\"!"
+
+#, c-format
+msgid "%s cannot be changed."
+msgstr "%s nie może zostaÄ zmienione."
+
+msgid "Bad job-priority value!"
+msgstr "BÅÄdna wartoÅÄ job-priority!"
+
+msgid "Job is completed and cannot be changed."
+msgstr "Zadanie zostaÅo zakoÅczone i nie może zostaÄ zmienione."
+
+msgid "Bad job-state value!"
+msgstr "BÅÄdna wartoÅÄ job-state!"
+
+msgid "Job state cannot be changed."
+msgstr "Stan zadania nie może zostaÄ zmieniony."
+
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "NieobsÅugiwana wartoÅÄ kompresji %s!"
+
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "NieobsÅugiwany format \"%s\"!"
+
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "%s nie jest zaimplementowane przez lpc w wersji CUPS.\n"
+
+msgid ""
+"Commands may be abbreviated. Commands are:\n"
+"\n"
+"exit help quit status ?\n"
+msgstr ""
+"Polecenia mogÄ
byÄ skracane. Poleceniami sÄ
:\n"
+"\n"
+"exit help quit status ?\n"
+
+msgid "help\t\tget help on commands\n"
+msgstr "help\t\tpomoc o poleceniach\n"
+
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\twyÅwietla stan demonów i kolejki\n"
+
+msgid "?Invalid help command unknown\n"
+msgstr "?NieprawidÅowe, nieznane polecenie pomocy\n"
+
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tdrukarka jest na urzÄ
dzeniu \"%s\" prÄdkoÅÄ -1\n"
+
+msgid "\tqueuing is enabled\n"
+msgstr "\tkolejkowanie jest wÅÄ
czone\n"
+
+msgid "\tqueuing is disabled\n"
+msgstr "\tkolejkowanie jest wyÅÄ
czone\n"
+
+msgid "\tprinting is enabled\n"
+msgstr "\tdrukowanie jest wÅÄ
czone\n"
+
+msgid "\tprinting is disabled\n"
+msgstr "\tdrukowanie jest wyÅÄ
czone"
+
+msgid "\tno entries\n"
+msgstr "\tbrak wpisów\n"
+
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d wpisów\n"
+
+msgid "\tdaemon present\n"
+msgstr "\tdemon jest obecny\n"
+
+msgid "lpq: Unable to contact server!\n"
+msgstr "lpq: nie można skontaktowaÄ siÄ z serwerem!\n"
+
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: przepraszam, nie wkompilowano obsÅugi szyfowania!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s/%s\"!\n"
+msgstr "lpq: nieznany cel \"%s/%s\"!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s\"!\n"
+msgstr "lpq: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lp: bÅÄ
d - %s nazw zmiennych Årodowiskowych z nieistniejÄ
cym celem \"%s\"!\n"
+
+msgid "lpq: error - no default destination available.\n"
+msgstr "lpq: bÅÄ
d - brak dostÄpnego domyÅlnego celu.\n"
+
+#, c-format
+msgid "lpq: get-jobs failed: %s\n"
+msgstr "lpq: get-jobs nie powiodÅo siÄ: %s\n"
+
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
+msgstr ""
+"Kolejka WÅaÅciciel Drukowanie Zadanie "
+"Pliki CaÅkowity rozmiar\n"
+
+msgid "Rank Owner Job File(s) Total Size\n"
+msgstr ""
+"Kolejka WÅaÅciciel Zadanie Pliki CaÅkowity "
+"rozmiar\n"
+
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [zadanie %d localhost]\n"
+
+#, c-format
+msgid " %-39.39s %.0f bytes\n"
+msgstr " %-39.39s %.0f bajtów\n"
+
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bajtów"
+
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bajtów\n"
+
+msgid "no entries\n"
+msgstr "brak wpisów\n"
+
+#, c-format
+msgid "lpq: get-printer-attributes failed: %s\n"
+msgstr "lpq: get-printer-attributes nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s jest gotowe\n"
+
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s jest gotowe i drukuje\n"
+
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s nie jest gotowe\n"
+
+msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
+msgstr "Użycie: lpq [-P cel] [-l] [+odstÄp]\n"
+
+#, c-format
+msgid "lpr: error - expected value after -%c option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwana wartoÅÄ po opcji -%c!\n"
+
+#, c-format
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr - ostrzeżenie - modyfikator formatu \"%c\" jest nieobsÅugiwany - wyjÅcie "
+"może nie byÄ poprawne!"
+
+msgid "lpr: error - expected option=value after -o option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwana opcja=wartoÅÄ po opcji -o!\n"
+
+msgid "lpr: warning - email notification is not currently supported!\n"
+msgstr ""
+"lpr: ostrzeżenie - powiadamianie na e-mail nie jest teraz obsÅugiwane!\n"
+
+msgid "lpr: error - expected destination after -P option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwany cel po opcji -P!\n"
+
+msgid "lpr: error - expected copy count after -# option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwany licznik kopiowania po opcji -#!\n"
+
+#, c-format
+msgid "lpr: error - expected name after -%c option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwana nazwa po opcji -%c!\n"
+
+msgid "lpr: error - expected username after -U option!\n"
+msgstr "lpr: bÅÄ
d - oczekiwana nazwa użytkownika po opcji -U!\n"
+
+#, c-format
+msgid "lpr: error - unknown option '%c'!\n"
+msgstr "lpr: bÅÄ
d - nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpr: error - unable to access \"%s\" - %s\n"
+msgstr "lpr: bÅÄ
d - nie można uzyskaÄ dostÄpu \"%s\" - %s\n"
+
+#, c-format
+msgid "lpr: error - too many files - \"%s\"\n"
+msgstr "lpr: bÅÄ
d - za dużo plików - \"%s\"\n"
+
+#, c-format
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpr: bÅÄ
d - %s nazw zmiennych Årodowiskowych z nieistniejÄ
cym celem \"%s\"!\n"
+
+msgid "lpr: error - no default destination available.\n"
+msgstr "lpr: bÅÄ
d - brak dostÄpnego domyÅlnego celu.\n"
+
+msgid "lpr: error - scheduler not responding!\n"
+msgstr "lpr: bÅÄ
d - planista nie odpowiada!\n"
+
+#, c-format
+msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lpr: bÅÄ
d - nie można utworzyÄ pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lpr: bÅÄ
d - nie można zapisaÄ do pliku tymczasowego \"%s\" - %s\n"
+
+msgid "lpr: error - stdin is empty, so no job has been sent.\n"
+msgstr ""
+"lpr: bÅÄ
d - standardowe wejÅcie jest puste, wiÄc żadne zadanie nie zostaÅo "
+"wysÅane.\n"
+
+#, c-format
+msgid "lpr: error - unable to print file: %s\n"
+msgstr "lpr: bÅÄ
d - nie można wydrukowaÄ pliku: %s\n"
+
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: nie można skontaktowaÄ siÄ z serwerem!\n"
+
+#, c-format
+msgid "lprm: Unknown destination \"%s\"!\n"
+msgstr "lprm: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "lprm: Unknown option '%c'!\n"
+msgstr "lprm: nieznana opcja \"%c\"!\n"
+
+msgid "lprm: Job or printer not found!\n"
+msgstr "lprm: zadanie lub drukarka nie zostaÅa znaleziona!\n"
+
+msgid "lprm: Not authorized to lprm job(s)!\n"
+msgstr "lprm: nie upoważniony do zadaŠlprm!\n"
+
+#, c-format
+msgid "lprm: You don't own job ID %d!\n"
+msgstr "lprm: nie jesteÅ wÅaÅcicielem zadania o ID %d!\n"
+
+msgid "lprm: Unable to lprm job(s)!\n"
+msgstr "lprm: nie można usunÄ
Ä zadaÅ używajÄ
c lprm!\n"
+
+msgid "lprm: Unable to cancel job(s)!\n"
+msgstr "lprm: nie można anulowaÄ zadaÅ!\n"
+
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: nie wiem co robiÄ!\n"
+
+#, c-format
+msgid "%s: Expected server name after -h!\n"
+msgstr "%s: oczekiwana nazwa serwera po -h!\n"
+
+#, c-format
+msgid "%s: Expected reason text after -r!\n"
+msgstr "%s: oczekiwany warunek tekstu po -r!\n"
+
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: nie można poÅÄ
czyÄ siÄ z serwerem: %s\n"
+
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: operacja nie powiodÅa siÄ: %s\n"
+
+msgid "cancel: Error - expected hostname after '-h' option!\n"
+msgstr "cancel: bÅÄ
d - oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+msgid "cancel: Error - expected username after '-u' option!\n"
+msgstr "cancel: bÅÄ
d - oczekiwana nazwa użytkownika po opcji \"-u\"!\n"
+
+#, c-format
+msgid "cancel: Unknown option '%c'!\n"
+msgstr "cancel: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "cancel: Unknown destination \"%s\"!\n"
+msgstr "cancel: nieznany cel \"%s\"!\n"
+
+msgid "cancel: Unable to contact server!\n"
+msgstr "cancel: nie można skontaktowaÄ siÄ z serwerem!\n"
+
+#, c-format
+msgid "cancel: %s failed: %s\n"
+msgstr "cancel: %s nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing value on line %d!\n"
+msgstr "cupsaddsmb: brakujÄ
ca wartoÅÄ w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing double quote on line %d!\n"
+msgstr "cupsaddsmb: brakujÄ
cy cudzysÅów w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Bad option + choice on line %d!\n"
+msgstr "cupsaddsmb: bÅÄdna opcja + wybór w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
+msgstr "cupsaddsmb: nie można poÅÄ
czyÄ siÄ z serwerem %s\" dla %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
+msgstr "cupsaddsmb: brak pliku PPD dla drukarki \"%s\" - pomijanie!\n"
+
+#, c-format
+msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
+msgstr "cupsaddsmb: get-printer-attributes nie powiodÅo siÄ dla \"%s\": %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
+msgstr "cupsaddsmb: nie można przekonwertowaÄ pliku PPD dla %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można skopiowaÄ plików sterownika drukarki Windows 2000 (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można skopiowaÄ plików sterownika drukarki CUPS (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można zainstalowaÄ plików sterownika drukarki Windows 2000 (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można skopiowaÄ plików sterownika drukarki Windows 9x (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można zainstalowaÄ plików sterownika drukarki Windows 9x (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
+msgstr "cupsaddsmb: nie można ustawiÄ sterownika drukarki Windows (%d)!\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Użycie: cupsaddsmb [opcje] drukarka1 ... drukarkaN\n"
+" cupsaddsmb [opcje] -a\n"
+"\n"
+"Opcje:\n"
+" -H serwer-samby Używa nazwanego serwera Samby\n"
+" -U użytkownik-samba Uwierzytelnia używajÄ
c nazwanego użytkownika Samby\n"
+" -a Eksportuje wszystkie drukarki\n"
+" -h serwer-cups Używa nazwanego serwera CUPS\n"
+" -v (wyÅwietla polecenia)\n"
+
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: opcja -q jest niezgodna z opcjÄ
-v.\n"
+
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: opcja -v jest niezgodna z opcjÄ
-q.\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+msgstr ""
+" ZAWIÃDÅ\n"
+" **ZAWIÃDÅ** Nie można otworzyÄ pliku PPD - %s\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" ZAWIÃDÅ\n"
+" **ZAWIÃDÅ** Nie można otworzyÄ pliku PPD - %s w wierszu %d.\n"
+
+msgid " REF: Page 42, section 5.2.\n"
+msgstr " REF: strona 42, sekcja 5.2.\n"
+
+msgid " REF: Page 20, section 3.4.\n"
+msgstr " REF: strona 20, sekcja 3.4.\n"
+
+msgid " REF: Pages 45-46, section 5.2.\n"
+msgstr " REF: strony 45-46, sekcja 5.2.\n"
+
+msgid " REF: Pages 42-45, section 5.2.\n"
+msgstr " REF: strony 42-45, sekcja 5.2.\n"
+
+msgid " REF: Pages 48-49, section 5.2.\n"
+msgstr " REF: strony 48-49, sekcja 5.2.\n"
+
+msgid " REF: Pages 52-54, section 5.2.\n"
+msgstr " REF: strony 52-54, sekcja 5.2.\n"
+
+msgid " REF: Page 15, section 3.2.\n"
+msgstr " REF: strona 15, sekcja 3.2.\n"
+
+msgid " REF: Page 15, section 3.1.\n"
+msgstr " REF: strona 15, sekcja 3.1.\n"
+
+msgid " REF: Pages 16-17, section 3.2.\n"
+msgstr " REF: strony 16-17, sekcja 3.2.\n"
+
+msgid " REF: Page 19, section 3.3.\n"
+msgstr " REF: strona 19, sekcja 3.3.\n"
+
+msgid " REF: Page 27, section 3.5.\n"
+msgstr " REF: strona 27, sekcja 3.5.\n"
+
+msgid ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+" SZCZEGÃÅOWE WYNIKI TESTU ZGODNOÅCI\n"
+
+#, c-format
+msgid " WARN %s has no corresponding options!\n"
+msgstr " OSTRZEÅ»ENIE %s nie posiada odpowiadajÄ
cych opcji!\n"
+
+msgid " FAIL\n"
+msgstr " ZAWIÃDÅ\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE DefaultImageableArea\n"
+" REF: strona 102, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE DefaultImageableArea %s!\n"
+" REF: strona 102, sekcja 5.15.\n"
+
+msgid " PASS DefaultImageableArea\n"
+msgstr " POWODZENIE DefaultImageableArea\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE DefaultPaperDimension\n"
+" REF: strona 103, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE DefaultPaperDimension %s!\n"
+" REF: strona 103, sekcja 5.15.\n"
+
+msgid " PASS DefaultPaperDimension\n"
+msgstr " POWODZENIE DefaultPaperDimension\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE Default%s %s\n"
+" REF: strona 40, sekcja 4.5.\n"
+
+#, c-format
+msgid " PASS Default%s\n"
+msgstr " POWODZENIE Default%s\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE Default%s\n"
+" REF: strona 40, sekcja 4.5.\n"
+
+msgid " PASS FileVersion\n"
+msgstr " POWODZENIE FileVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE FileVersion\n"
+" REF: strona 56, sekcja 5.3.\n"
+
+msgid " PASS FormatVersion\n"
+msgstr " POWODZENIE FormatVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE FormatVersion\n"
+" REF: strona 56, sekcja 5.3.\n"
+
+msgid " PASS LanguageEncoding\n"
+msgstr " POWODZENIE LanguageEncoding\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE LanguageEncoding\n"
+" REF: strony 56-57, sekcja 5.3.\n"
+
+msgid " PASS LanguageVersion\n"
+msgstr " POWODZENIE LanguageVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE LanguageVersion\n"
+" REF: strony 57-58, sekcja 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE Manufacturer (powinno byÄ \"HP\")\n"
+" REF: strona 211, tablica D.1.\n"
+
+msgid " PASS Manufacturer\n"
+msgstr " POWODZENIE Manufacturer\n"
+
+msgid ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE Manufacturer\n"
+" REF: strony 58-59, sekcja 5.3.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE ModelName - \"%c\" nie jest zezwolone w sÄ
gu "
+"znaków.\n"
+" REF: strony 59-60, sekcja 5.3.\n"
+
+msgid " PASS ModelName\n"
+msgstr " POWODZENIE ModelName\n"
+
+msgid ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE ModelName\n"
+" REF: strony 59-60, sekcja 5.3.\n"
+
+msgid " PASS NickName\n"
+msgstr " POWODZENIE NickName\n"
+
+msgid ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE NickName\n"
+" REF: strona 60, sekcja 5.3.\n"
+
+msgid " PASS PageSize\n"
+msgstr " POWODZENIE PageSize\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PageSize\n"
+" REF: strony 99-100, sekcja 5.14.\n"
+
+msgid " PASS PageRegion\n"
+msgstr " POWODZENIE PageRegion\n"
+
+msgid ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PageRegion\n"
+" REF: strona 100, sekcja 5.14.\n"
+
+msgid " PASS PCFileName\n"
+msgstr " POWODZENIE PCFileName\n"
+
+msgid ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PCFileName\n"
+" REF: strony 61-62, sekcja 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **** BÅÄDNE Product - nie jest \"(string)\".\n"
+" REF: strona 62, sekcja 5.3.\n"
+
+msgid " PASS Product\n"
+msgstr " PASS Product\n"
+
+msgid ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE Product\n"
+" REF: strona 62, sekcja 5.3.\n"
+
+msgid ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE PSVersion - nie jest \"(string) int\".\n"
+" REF: strony 62-64, sekcja 5.3.\n"
+
+msgid " PASS PSVersion\n"
+msgstr " POWODZENIE PSVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PSVersion\n"
+" REF: strony 62-64, sekcja 5.3.\n"
+
+msgid ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE ShortNickName - dÅuższe niż 31 znaków.\n"
+" REF: strony 64-65, sekcja 5.3.\n"
+
+msgid " PASS ShortNickName\n"
+msgstr " POWODZENIE ShortNickName\n"
+
+msgid ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE ShortNickName\n"
+" REF: strony 64-65, sekcja 5.3.\n"
+
+msgid ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄDNE JobPatchFile wÅaÅciwoÅÄ w pliku\n"
+" REF: strona 24, sekcja 3.4.\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 99, section 5.14.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PageSize\n"
+" REF: strona 41, sekcja 5.\n"
+" REF: strona 99, sekcja 5.14.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE ImageableArea for PageSize %s\n"
+" REF: strona 41, sekcja 5.\n"
+" REF: strona 102, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE PaperDimension dla PageSize %s\n"
+" REF: strona 41, sekcja 5.\n"
+" REF: strona 103, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄdny %s wybór %s %s!\n"
+" REF: strona 84, sekcja 5.9\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **ZAWIÃDÅ** WYMAGANE %s nie okreÅla braku wyboru!\n"
+" REF: Page 122, section 5.17\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄdny %s wybór %s!\n"
+" REF: strona 122, sekcja 5.17\n"
+
+msgid " PASS\n"
+msgstr " POWODZENIE\n"
+
+#, c-format
+msgid ""
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" OSTRZEÅ»ENIE Nazwa sÅowa kluczowego dupleksu %s powinna byÄ "
+"nazwana Duplex lub JCLDuplex!\n"
+" REF: strona 122, sekcja 5.17\n"
+
+msgid " WARN Default choices conflicting!\n"
+msgstr " OSTRZEÅ»ENIE Konfliktowe domyÅlne wybory!\n"
+
+#, c-format
+msgid ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+msgstr ""
+" OSTRZEÅ»ENIE PrzestarzaÅa wersja PPD %.1f!\n"
+" REF: strona 42, sekcja 5.2.\n"
+
+msgid ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" OSTRZEÅ»ENIE LanguageEncoding jest wymagane przez specyfikacjÄ PPD "
+"4.3.\n"
+" REF: strony 56-57, sekcja 5.3.\n"
+
+msgid ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" OSTRZEÅ»ENIE Manufacturer jest wymagane przez specyfikacjÄ PPD "
+"4.3.\n"
+" REF: strony 58-59, sekcja 5.3.\n"
+
+msgid ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" OSTRZEÅ»ENIE PCFileName dÅuższe niż 8.3 narusza specyfikacjÄ PPD.\n"
+" REF: strony 61-62, sekcja 5.3.\n"
+
+msgid ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" OSTRZEÅ»ENIE ShortNickName jest wymagane przez specyfikacjÄ PPD "
+"4.3.\n"
+" REF: strony 64-65, sekcja 5.3.\n"
+
+msgid ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" OSTRZEÅ»ENIE ProtokoÅy zawierajÄ
zarówno PJL jak i BCP, oczekiwano "
+"TBCP.\n"
+" REF: strony 78-79, sekcja 5.7.\n"
+
+msgid ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" OSTRZEÅ»ENIE ProtokoÅy zawierajÄ
PJL, ale wÅaÅciwoÅci JCL nie sÄ
"
+"ustawione.\n"
+" REF: strony 78-79, sekcja 5.7.\n"
+
+#, c-format
+msgid ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+msgstr ""
+" OSTRZEÅ»ENIE %s wspóÅdzieli wspólny przedrostek z %s %s\n"
+" REF: strona 15, sekcja 3.2.\n"
+
+#, c-format
+msgid " %d ERROR%s FOUND\n"
+msgstr " ZNALEZIONO %d BÅÄDÃW%s\n"
+
+msgid " NO ERRORS FOUND\n"
+msgstr " NIE ZNALEZIONO BÅÄDÃW\n"
+
+#, c-format
+msgid ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+" OSTRZEŻENIE \"%s %s\" jest w konflikcie z \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+
+msgid ""
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
+" program | cupstestppd [-q] [-r] [-v[v]] -\n"
+msgstr ""
+"Użycie: cupstestppd [-q] [-r] [-v[v]] nazwapliku1.ppd[.gz] [... nazwaplikuN."
+"ppd[.gz]]\n"
+" program | cupstestppd [-q] [-r] [-v[v]] -\n"
+
+msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
+msgstr "lpstat: wymagane jest \"completed\" lub \"not-completed\" po -W!\n"
+
+msgid "lpstat: The -b option requires a destination argument.\n"
+msgstr "lpstat: opcja -b wymaga argumentu docelowego.\n"
+
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "BÅÄ
d: wymagana jest nazwa komputera po opcji \"-h\"!\n"
+
+#, c-format
+msgid "lpstat: Unknown option '%c'!\n"
+msgstr "lpstat: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpstat: Invalid destination name in list \"%s\"!\n"
+msgstr "lpstat: nieprawidÅowa nazwa celu na liÅcie \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unknown destination \"%s\"!\n"
+msgstr "lpstat: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
+msgstr "lpstat: nie można poÅÄ
czyÄ siÄ z serwerem %s na porcie %d: %s\n"
+
+#, c-format
+msgid "lpstat: get-printers failed: %s\n"
+msgstr "lpstat: get-printers nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "%s accepting requests since Jan 01 00:00\n"
+msgstr "%s zaakceptowanych żÄ
daÅ od stycznia 01 00:00"
+
+#, c-format
+msgid ""
+"%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s nie zaakceptowanych żÄ
daÅ od stycznia 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since Jan 01 00:00\n"
+msgstr "%s/%s zaakceptowanych żÄ
daÅ od stycznia 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s nie zaakceptowanych żÄ
daÅ od stycznia 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "lpstat: get-classes failed: %s\n"
+msgstr "lpstat: get-classes nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "members of class %s:\n"
+msgstr "elementy klasy %s:\n"
+
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "domyÅlny cel systemowy: %s/%s\n"
+
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "domyÅlny cel systemowy: %s\n"
+
+#, c-format
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
+msgstr ""
+"lpstat: bÅÄ
d - %s nazw zmiennych Årodowiskowych z nieistniejÄ
cym celem \"%s"
+"\"!\n"
+
+msgid "no system default destination\n"
+msgstr "brak domyÅlnego celu systemowego\n"
+
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr "WyjÅcie dla drukarki % zostaÅo wysÅane do zdalnej drukarki %s na %s\n"
+
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "WyjÅcie dla drukarki % zostaÅo wysÅane do %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr ""
+"WyjÅcie dla drukarki %/%s zostaÅo wysÅane do zdalnej drukarki %s na %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "WyjÅcie dla drukarki %/%s zostaÅo wysÅane do %s\n"
+
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "urzÄ
dzenie dla %s: %s\n"
+
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "urzÄ
dzenie dla %s/%s: %s\n"
+
+#, c-format
+msgid "lpstat: get-jobs failed: %s\n"
+msgstr "lpstat: get-jobs nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tzakolejkowane dla%s\n"
+
+#, c-format
+msgid "printer %s is idle. enabled since %s\n"
+msgstr "drukarka %s jest bezczynna. wÅÄ
czona od %s\n"
+
+#, c-format
+msgid "printer %s now printing %s-%d. enabled since %s\n"
+msgstr "drukarka %s drukuje teraz %s-%d. wÅÄ
czona od %s\n"
+
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "drukarka %s jest wyÅÄ
czona od %s -\n"
+
+msgid "\treason unknown\n"
+msgstr "\tnieznana przyczyna\n"
+
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tZamontowana od:\n"
+"\tTypy zawartoÅci: każde\n"
+"\tTypy drukarek: nieznane\n"
+
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tOpis: %s\n"
+
+msgid "\tAlerts:"
+msgstr "\tAlarmy:"
+
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tPoÅożenie: %s\n"
+
+msgid "\tConnection: remote\n"
+msgstr "\tPoÅÄ
czenie: zdalne\n"
+
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tInterfejs: %s.ppd\n"
+
+msgid "\tConnection: direct\n"
+msgstr "\tPoÅÄ
czenie: bezpoÅrednie\n"
+
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tInterfejs: %s/interfejsy/%s\n"
+
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tInterfejs: %s/ppd/%s.ppd\n"
+
+msgid "\tOn fault: no alert\n"
+msgstr "\tPrzy niepowodzeniu: brak alarmu\n"
+
+msgid "\tAfter fault: continue\n"
+msgstr "\tPo niepowodzeniu: kontynuuj\n"
+
+msgid "\tUsers allowed:\n"
+msgstr "\tZezwoleni użytkownicy:\n"
+
+msgid "\tUsers denied:\n"
+msgstr "\tZabronieni użytkownicy:\n"
+
+msgid "\t\t(all)\n"
+msgstr "\t\t(wszystko)\n"
+
+msgid "\tForms allowed:\n"
+msgstr "\tZezwolone formy:\n"
+
+msgid "\t\t(none)\n"
+msgstr "\t\t(brak)\n"
+
+msgid "\tBanner required\n"
+msgstr "\tBanner jest wymagany\n"
+
+msgid "\tCharset sets:\n"
+msgstr "\tZestawy znaków:\n"
+
+msgid "\tDefault pitch:\n"
+msgstr "\tDomyÅlny stopieÅ:\n"
+
+msgid "\tDefault page size:\n"
+msgstr "\tDomyÅlny rozmiar strony:\n"
+
+msgid "\tDefault port settings:\n"
+msgstr "\tDomyÅlne ustawienia portu:\n"
+
+#, c-format
+msgid "printer %s/%s is idle. enabled since %s\n"
+msgstr "drkarka %s/%s jest bezczynna. wÅÄ
czona od %s\n"
+
+#, c-format
+msgid "printer %s/%s now printing %s-%d. enabled since %s\n"
+msgstr "drukarka %s/%s drukuje teraz %s-%d. wÅÄ
czona od %s\n"
+
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "drukarka %s/%s jest wyÅÄ
czona od %s -\n"
+
+msgid "scheduler is running\n"
+msgstr "planista jest uruchomiony\n"
+
+msgid "scheduler is not running\n"
+msgstr "planista nie jest uruchomiony"
+
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: nie można poÅÄ
czyÄ siÄ do serwera: %s\n"
+
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można dodaÄ drukarki do klasy:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: oczekiwana nazwa klasy po opcji \"-c\"!\n"
+
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: nazwa klasy może zawieraÄ tylko drukowalne znaki!\n"
+
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: oczekiwana nazw drukarki po opcji \"-d\"!\n"
+
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: nazwa drukaki może zawieraÄ tylko drukowalne znaki!\n"
+
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ skryptu interfejsu:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: oczekiwany interfejs po opcji \"-i\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ skrypt interfejsu lub pliku PPD:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: oczekiwany model po opcji \"-m\"!\n"
+
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: oczekiwana nazwa=wartoÅÄ po opcji \"-o\"!\n"
+
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: oczekiwana drukarka po opcji \"-p\"!\n"
+
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można usunÄ
Ä drukarki z klasy:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: oczekiwana klasa po opcji \"-r\"!\n"
+
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr "lpadmin: oczekiwane allow/deny:userlist po opcji \"-u\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: nieznana opcja zezwól/zabroŠ\"%s\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ URI urzÄ
dzenia:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: oczekiwane URI urzÄ
dzenia po opcji \"-v\"!\n"
+
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: oczekiwana drukarka lub klasa po opcji \"-x\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Unable to set the printer description:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: oczekiwany opis po pocji \"-D\"!\n"
+
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: oczekiwane typy plików po opcji \"-I\"!\n"
+
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: ostrzeżenie - lista typów zawartoÅci zostaÅa zignorowana!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ poÅożenia drukarki:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: oczekiwane poÅożenie po opcji \"-L\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ pliku PPD:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: oczekiwany PPD po opcji \"-P\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: nieznany argument \"%s\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawiÄ opcji drukarki:\n"
+" Najpierw musi zostaÄ okreÅlona nazwa drukarki!\n"
+
+msgid ""
+"Usage:\n"
+"\n"
+" lpadmin [-h server] -d destination\n"
+" lpadmin [-h server] -x destination\n"
+" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
+" [-r remove-class] [-v device] [-D description]\n"
+" [-P ppd-file] [-o name=value]\n"
+" [-u allow:user,user] [-u deny:user,user]\n"
+"\n"
+msgstr ""
+"Użycie:\n"
+"\n"
+" lpadmin [-h serwer] -d cel\n"
+" lpadmin [-h serwer] -x cel\n"
+" lpadmin [-h serwer] -p drukarka [-c dodaj-klasÄ] [-i interfejs] [-m "
+"model]\n"
+" [-r usuÅ-klasÄ] [-v urzÄ
dzenie] [-D opis]\n"
+" [-P plik-ppd] [-o nazwa=wartoÅÄ]\n"
+" [-u zezwól:użytkownik,użytkownik] [-u zabroÅ:"
+"użytkownik,użytkownik]\n"
+"\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: nie można utworzyÄ pliku tymczasowego: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: nie można otworzyÄ pliku \"%s\": %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set model) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie modelu) nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set description) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie opisu) nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set location) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie poÅożenia) nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: nie można utworzyÄ pliku tymczasowego - %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: nie można utworzyÄ pliku PPD \"%s\" - %s\n"
+
+#, c-format
+msgid "lpadmin: %s failed: %s\n"
+msgstr "lpadmin: %s nie powiodÅo siÄ: %s\n"
+
+msgid "lp: Expected destination after -d option!\n"
+msgstr "lp: oczekiwany cel po opcji -d!\n"
+
+msgid "lp: Expected form after -f option!\n"
+msgstr "lp: oczekiwana forma po opcji -f!\n"
+
+msgid "lp: Expected hostname after -h option!\n"
+msgstr "lp: oczekiwana nazwa komputera po opcji -h!\n"
+
+msgid "lp: Expected job ID after -i option!\n"
+msgstr "lp: oczekiwany ID zadania po opcji -i!\n"
+
+msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr ""
+"lp: bÅÄ
d - nie można jednoczeÅnie drukowaÄ plików i zmieniaÄ zadania!\n"
+
+msgid "lp: Error - bad job ID!\n"
+msgstr "lp: bÅÄ
d - bÅÄdne ID zadania!\n"
+
+msgid "lp: Expected copies after -n option!\n"
+msgstr "lp: oczekiwane kopie po opcji -n!\n"
+
+msgid "lp: Expected option string after -o option!\n"
+msgstr "lp: oczekiwany ÅaÅcuch opcji po opcji -o!\n"
+
+#, c-format
+msgid "lp: Expected priority after -%c option!\n"
+msgstr "lp: oczekiwany priorytet po opcji -%c!\n"
+
+msgid "lp: Priority must be between 1 and 100.\n"
+msgstr "lp: priorytet musi byÄ miÄdzy 1 a 100.\n"
+
+msgid "lp: Expected title after -t option!\n"
+msgstr "lp: oczekiwany tytuÅ po opcji -t!\n"
+
+msgid "lp: Expected mode list after -y option!\n"
+msgstr "lp: oczekiwana lista trybów po opcji -y!\n"
+
+msgid "lp: Warning - mode option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja trybu zostaÅa zignorowana!\n"
+
+msgid "lp: Expected hold name after -H option!\n"
+msgstr "lp: oczekiwana wstrzymana nazwa po opcji -H!\n"
+
+msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
+msgstr "lp: wymagany ID zadania (-) przed \"-H restart\"!\n"
+
+msgid "lp: Expected page list after -P option!\n"
+msgstr "lp: oczekiwana lista stron po opcji -P!\n"
+
+msgid "lp: Expected character set after -S option!\n"
+msgstr "lp: oczekiwany zestaw znaków po opcji -S!\n"
+
+msgid "lp: Warning - character set option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja zestawu znaków zostaÅa zignorowana!\n"
+
+msgid "lp: Expected content type after -T option!\n"
+msgstr "lp: oczekiwany typ zawartoÅci po opcji -T!\n"
+
+msgid "lp: Warning - content type option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja typu zawartoÅci zostaÅa zignorowana!\n"
+
+#, c-format
+msgid "lp: Unknown option '%c'!\n"
+msgstr "lp: nieznana opcja \"%c\"!\n"
+
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: bÅÄ
d - nie można drukowaÄ ze standardowego wejÅcia, jeÅli dostarczone sÄ
"
+"pliki lub ID zadania!\n"
+
+#, c-format
+msgid "lp: Unable to access \"%s\" - %s\n"
+msgstr "lp: nie można uzyskaÄ dostÄpu do \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: Too many files - \"%s\"\n"
+msgstr "lp: za dużo plików - \"%s\"\n"
+
+msgid "lp: error - no default destination available.\n"
+msgstr "lp: bÅÄ
d - brak dostÄpnego domyÅlnego celu.\n"
+
+msgid "lp: error - scheduler not responding!\n"
+msgstr "lp: bÅÄ
d - planista nie odpowiada!\n"
+
+#, c-format
+msgid "lp: unable to create temporary file \"%s\" - %s\n"
+msgstr "lp: nie można utworzyÄ pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lp: bÅÄ
d - nie można zapisaÄ do pliku tymczasowego \"%s\" - %s\n"
+
+msgid "lp: stdin is empty, so no job has been sent.\n"
+msgstr ""
+"lp: standardowe wejÅcie jest puste, wiÄc żadne zadanie nie zostaÅo wysÅane.\n"
+
+#, c-format
+msgid "lp: unable to print file: %s\n"
+msgstr "lp: nie można wydrukowaÄ pliku: %s\n"
+
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "ID żÄ
dania to %s-%d (%d plików)\n"
+
+#, c-format
+msgid "lp: restart-job failed: %s\n"
+msgstr "lp: restart-job nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "lp: set-job-attributes failed: %s\n"
+msgstr "lp: set-job-attributes nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: nie można poÅÄ
czyÄ siÄ do serwera: %s\n"
+
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: nieznany argument \"%s\"!\n"
+
+#, c-format
+msgid "lpinfo: cups-get-devices failed: %s\n"
+msgstr "lpinfo: cups-get-devices nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"UrzÄ
dzenie: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+
+#, c-format
+msgid "lpinfo: cups-get-ppds failed: %s\n"
+msgstr "lpinfo: cups-get-ppds nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: nieznany argument \"%s\"!\n"
+
+msgid "Usage: lpmove job dest\n"
+msgstr "Użycie: lpmove zadanie cel"
+
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: nie można poÅÄ
czyÄ siÄ z serwerem: %s\n"
+
+#, c-format
+msgid "lpmove: move-job failed: %s\n"
+msgstr "lpmove: move-job nie powiodÅo siÄ: %s\n"
+
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: nieznana drukarka lub klasa!\n"
+
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: brak drukarek?!?\n"
+
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: nie można dodaÄ drukarki lub przykÅadu: %s\n"
+
+#, c-format
+msgid "lpoptions: Destination %s has no PPD file!\n"
+msgstr "lpopotions: cel %s nie posiada pliku PPD!\n"
+
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: nie można otworzyÄ pliku PPD dla %s!\n"
+
+msgid ""
+"Usage: lpoptions [-h server] [-E] -d printer\n"
+" lpoptions [-h server] [-E] [-p printer] -l\n"
+" lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
+" lpoptions [-h server] [-E] -x printer\n"
+msgstr ""
+"Użycie: lpoptions [-h serwer] [-E] -d drukarka\n"
+" lpoptions [-h serwer] [-E] [-p drukarka] -l\n"
+" lpoptions [-h serwer] [-E] -p drukarka -o opcja[=wartoÅÄ] ...\n"
+" lpoptions [-h serwer] [-E] -x drukarka\n"
+
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: tylko root może dodaÄ lub usunÄ
Ä hasÅa!\n"
+
+msgid "Enter old password:"
+msgstr "Podaj stare hasÅo:"
+
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: nie można skopiowaÄ ÅaÅcucha hasÅa: %s\n"
+
+msgid "Enter password:"
+msgstr "Podaj hasÅo:"
+
+msgid "Enter password again:"
+msgstr "Powtórz hasÅo:"
+
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: przepraszam, hasÅa siÄ nie zgadzajÄ
!\n"
+
+msgid ""
+"lppasswd: Sorry, password rejected.\n"
+"Your password must be at least 6 characters long, cannot contain\n"
+"your username, and must contain at least one letter and number.\n"
+msgstr ""
+"lppasswd: przepraszam, hasÅo zostaÅo odrzucone.\n"
+"HasÅo musi mieÄ co najmniej 6 znaków, nie może zawieraÄ nazwy\n"
+"użytkownika i musi zawieraÄ co najmniej jednÄ
literÄ i liczbÄ.\n"
+
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: plik hasÅa jest zajÄty!\n"
+
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: nie można otworzyÄ pliku hasÅa: %s\n"
+
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: nie można zapisaÄ do pliku hasÅa: %s\n"
+
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: użytkownik \"%s\" i grupa \"%s\" nie istniejÄ
.\n"
+
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: przepraszam, hasÅa siÄ nie zgadzajÄ
!\n"
+
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: plik hasÅa nie zostaÅ zaktualizowany!\n"
+
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr ""
+"lppasswd: utworzenie kopii zapasowej starego pliku hasÅa nie powiodÅo siÄ: %"
+"s\n"
+
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: zmiana nazwy pliku hasÅa nie powiodÅa siÄ: %s\n"
+
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Użycie: lppasswd [-g nazwagrupy]\n"
+
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+" lppasswd [-g groupname] -a [username]\n"
+" lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Użycie: lppasswd [-g nazwagrupy] [nazwaużytkownika]\n"
+" lppasswd [-g nazwagrupy] -a [nazwaużytkownika]\n"
+" lppasswd [-g nazwagrupy] -x [nazwaużytkownika]\n"
+
+msgid "Start Printer"
+msgstr "Uruchom drukarkÄ"
+
+msgid "Stop Printer"
+msgstr "Zatrzymaj drukarkÄ"
+
+msgid "Start Class"
+msgstr "Uruchom klasÄ"
+
+msgid "Stop Class"
+msgstr "Zatrzymaj klasÄ"
+
+msgid "Accept Jobs"
+msgstr "Zaakceptuj zadania"
+
+msgid "Reject Jobs"
+msgstr "OdrzuÄ zadania"
+
+msgid "Purge Jobs"
+msgstr "WyczyÅÄ zadania"
+
+msgid "Set As Default"
+msgstr "Ustaw jako domyÅlnÄ
"
+
+msgid "Administration"
+msgstr "Administracja"
+
+msgid "Modify Class"
+msgstr "Zmodyfikuj klasÄ"
+
+msgid "Add Class"
+msgstr "Dodaj klasÄ"
+
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nazwa klasy może zawieraÄ tylko do 127 drukowalnych znaków i nie może "
+"zawieraÄ spacji, ukoÅników (/) lub znaku #."
+
+msgid "Unable to modify class:"
+msgstr "Nie można zmodyfikowaÄ klasy:"
+
+msgid "Unable to add class:"
+msgstr "Nie można dodaÄ klasy:"
+
+msgid "Modify Printer"
+msgstr "Zmodyfikuj drukarkÄ"
+
+msgid "Add Printer"
+msgstr "Dodaj drukarkÄ"
+
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nazwa drukarki może zawieraÄ tylko do 127 drukowalnych znaków i nie może "
+"zawieraÄ spacji, ukoÅników (/) lub znaku #."
+
+msgid "Unable to get list of printer drivers:"
+msgstr "Nie można uzyskaÄ listy sterowników drukarek:"
+
+msgid "Unable to modify printer:"
+msgstr "Nie można zmodyfikowaÄ drukarki:"
+
+msgid "Unable to add printer:"
+msgstr "Nie można dodaÄ drukarki:"
+
+msgid "Set Printer Options"
+msgstr "Ustaw opcje drukarki"
+
+msgid "Missing form variable!"
+msgstr "BrakujÄ
ca zmienna formy!"
+
+msgid "Unable to get PPD file!"
+msgstr "Nie można uzyskaÄ pliku PPD!"
+
+msgid "Unable to open PPD file:"
+msgstr "Nie można otworzyÄ pliku PPD:"
+
+msgid "Banners"
+msgstr "Bannery"
+
+msgid "Starting Banner"
+msgstr "Uruchamianie bannerów"
+
+msgid "Ending Banner"
+msgstr "ZakoÅczenie bannerów"
+
+msgid "Policies"
+msgstr "Polityki"
+
+msgid "Error Policy"
+msgstr "BÅÄ
d polityki"
+
+msgid "Operation Policy"
+msgstr "Polityka operacji"
+
+msgid "PS Binary Protocol"
+msgstr "Binarny protokóŠPS"
+
+msgid "None"
+msgstr "Brak"
+
+msgid "Unable to set options:"
+msgstr "Nie można ustawiÄ opcji:"
+
+msgid "Change Settings"
+msgstr "ZmieÅ ustawienia"
+
+msgid "Unable to change server settings:"
+msgstr "Nie można zmieniÄ ustawieÅ serwera:"
+
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Nie można wysÅaÄ pliku cupsd.conf:"
+
+msgid "Edit Configuration File"
+msgstr "Edytuj plik konfiguracji"
+
+msgid "Unable to create temporary file:"
+msgstr "Nie można utworzyÄ pliku tymczasowego:"
+
+msgid "Unable to access cupsd.conf file:"
+msgstr "Nie można uzyskaÄ dostÄpu do pliku cupsd.conf:"
+
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Nie można modyfikowaÄ plików cupsd.conf dÅuższych niż 1MB!"
+
+msgid "Delete Class"
+msgstr "UsuÅ klasÄ"
+
+msgid "Unable to delete class:"
+msgstr "Nie można usunÄ
Ä klasy:"
+
+msgid "Delete Printer"
+msgstr "UsuÅ drukarkÄ"
+
+msgid "Unable to delete printer:"
+msgstr "Nie można usunÄ
Ä drukarki:"
+
+msgid "Export Printers to Samba"
+msgstr "Wyeksportuj drukarki do Samby"
+
+msgid "Unable to fork process!"
+msgstr "Nie można rozdzieliÄ procesu!"
+
+msgid "Unable to connect to server!"
+msgstr "Nie można poÅÄ
czyÄ siÄ do serwera!"
+
+msgid "Unable to get printer attributes!"
+msgstr "Nie można uzyskaÄ wÅaÅciwoÅci drukarki!"
+
+msgid "Unable to convert PPD file!"
+msgstr "Nie można przekonwertowaÄ pliku PPD!"
+
+msgid "Unable to copy Windows 2000 printer driver files!"
+msgstr "Nie można skopiowaÄ plików sterownika drukarki Windows 2000!"
+
+msgid "Unable to install Windows 2000 printer driver files!"
+msgstr "Nie można zainstalowaÄ plików sterownika drukarki Windows 2000!"
+
+msgid "Unable to copy Windows 9x printer driver files!"
+msgstr "Nie można skopiowaÄ plików sterownika drukarki Windows 9x!"
+
+msgid "Unable to install Windows 9x printer driver files!"
+msgstr "Nie można zainstalowaÄ plików sterownika drukarki Windows 9x!"
+
+msgid "Unable to set Windows printer driver!"
+msgstr "Nie można ustawiÄ sterownika drukarki Windows!"
+
+msgid "No printer drivers found!"
+msgstr "Nie znaleziono sterowników drukarki!"
+
+msgid "Unable to execute cupsaddsmb command!"
+msgstr "Nie można wykonaÄ polecenia cupsaddsmb!"
+
+#, c-format
+msgid "cupsaddsmb failed with status %d"
+msgstr "cupsaddsmb nie powiodÅo siÄ ze stanem %d"
+
+#, c-format
+msgid "cupsaddsmb crashed on signal %d"
+msgstr "cupsaddsmb wywaliÅ siÄ na sygnale %d"
+
+msgid "A Samba username is required to export printer drivers!"
+msgstr ""
+"Nazwa użytkownika Samby jest wymagana, aby wyeksportowaÄ sterowniki drukarek!"
+
+msgid "A Samba password is required to export printer drivers!"
+msgstr "HasÅo Samby jest wymagany, aby wyeksportowaÄ sterowniki drukarek!"
+
+msgid "Unable to open cupsd.conf file:"
+msgstr "Nie można otworzyÄ pliku cupsd.conf:"
+
+msgid "Unable to change printer:"
+msgstr "Nie można zmieniÄ drukarki:"
+
+msgid "Set Allowed Users"
+msgstr "Ustaw zezwolonych użytkowników"
+
+msgid "Unable to get printer attributes:"
+msgstr "Nie można uzyskaÄ wÅaÅciwoÅci drukarki:"
+
+msgid "Set Publishing"
+msgstr "Ustaw publikowanie"
+
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Nie można zmieniÄ wÅaÅciwoÅci printer-is-shared:"
+
+msgid "Classes"
+msgstr "Klasy"
+
+msgid "Unable to get class list:"
+msgstr "Nie można uzyskaÄ listy klas:"
+
+msgid "Unable to get class status:"
+msgstr "Nie można uzyskaÄ stanu klasy:"
+
+msgid "Move Job"
+msgstr "PrzenieÅ zadanie"
+
+msgid "Unable to find destination for job!"
+msgstr "Nie można znaleÅºÄ celu dla zadania!"
+
+msgid "Move All Jobs"
+msgstr "PrzenieÅ wszystkie zadania"
+
+msgid "Unable to move job"
+msgstr "Nie można przenieÅÄ zadania"
+
+msgid "Unable to move jobs"
+msgstr "Nie można przenieÅÄ zadaÅ"
+
+msgid "Print Test Page"
+msgstr "Wypróbuj stronÄ próbnÄ
"
+
+msgid "Unable to print test page:"
+msgstr "Nie można wydrukowaÄ strony testowej:"
+
+msgid "Jobs"
+msgstr "Zadania"
+
+msgid "Job operation failed:"
+msgstr "Operacja zadania nie powiodÅa siÄ:"
+
+msgid "Printers"
+msgstr "Drukarki"
+
+msgid "Unable to get printer list:"
+msgstr "Nie można uzyskaÄ listy drukarek:"
+
+msgid "Unable to get printer status:"
+msgstr "Nie można uzyskaÄ stanu drukarki:"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Unable to open PPD file"
+msgstr "Nie można otworzyÄ pliku PPD"
+
+msgid "NULL PPD file pointer"
+msgstr "PUSTY wskaźnik pliku PPD"
+
+msgid "Memory allocation error"
+msgstr "BÅÄ
d przydziaÅu pamiÄci"
+
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "BrakujÄ
cy nagÅówek PPD-Adobe-4.x"
+
+msgid "Missing value string"
+msgstr "BrakujÄ
cy ÅaÅcuch wartoÅci"
+
+msgid "Internal error"
+msgstr "BÅÄ
d wewnÄtrzny"
+
+msgid "Bad OpenGroup"
+msgstr "BÅÄdne OpenGroup"
+
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup najpierw bez CloseGroup"
+
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "BÅÄdne OpenUI/JCLOpenUI"
+
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI najpierw bez CloseUI/JCLCloseUI"
+
+msgid "Bad OrderDependency"
+msgstr "BÅÄdne OrderDependency"
+
+msgid "Bad UIConstraints"
+msgstr "BÅÄdne OrderDependency"
+
+msgid "Missing asterisk in column 1"
+msgstr "BrakujÄ
ca gwiazdka w kolumnie 1"
+
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Wiersz dÅuższy niż maksymalnie dozwolony (255 znaków)"
+
+msgid "Illegal control character"
+msgstr "Niedozwolony znak kontrolny"
+
+msgid "Illegal main keyword string"
+msgstr "Niedozwolony gÅówny ÅaÅcuch sÅowa kluczowego"
+
+msgid "Illegal option keyword string"
+msgstr "Niedozwolony ÅaÅcuch sÅowa kluczowego opcji"
+
+msgid "Illegal translation string"
+msgstr "Niedozwolony ÅaÅcuch tÅumaczenia"
+
+msgid "Illegal whitespace character"
+msgstr "Niedozwolony biaÅy znak"
+
+msgid "Bad custom parameter"
+msgstr "BÅÄdny wÅasny parametr"
+
+msgid "Unknown"
+msgstr "Nieznane"
+
+msgid "Custom"
+msgstr "WÅasne"
+
+msgid "JCL"
+msgstr "JCL"
+
+msgid "No authentication information provided!"
+msgstr "Nie dostarczono informacji o uwierzytelnianiu!"
+
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Wymagane jest hasÅo dla %s, aby uzyskaÄ dostÄp do %s przez SambÄ: "
+
+#, c-format
+msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
+msgstr "Uruchomione polecenie: %s %s -N -U \"%s%%%s\" -c \"%s\"\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: nie można uruchomiÄ \"%s\": %s\n"
+
+msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
+msgstr "cupsaddsmb: nie ma zainstalowanych sterowników drukarek Windows!\n"
+
+msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr ""
+"cupsaddsmb: ostrzeżenie, nie ma zainstalowanych sterowników drukarek Windows "
+"2000!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: drukarka %s jest już elementem klasy %s.\n"
+
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: nie zobaczono żadnych nazw elementów!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: drukarka %s nie jest elementem klasy %s.\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"UrzÄ
dzenie: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Użycie: lpmove zadanie/źródÅo cel\n"
+
+msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
+msgstr ""
+"lpstat: wymagane jest \"completed\", \"not-completed\" lub \"all\" po -W!\n"
+
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s zaakceptowanych żÄ
daÅ od %s\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s nie zaakceptowanych żÄ
daÅ od %s -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s zaakceptowanych żÄ
daÅ od %s\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s nie zaakceptowanych żÄ
daÅ od %s -\n"
+"\t%s\n"
+
+msgid "lpc> "
+msgstr "lpc> "
+
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: nie można skontaktowaÄ siÄ z serwerem!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana nazwa użytkownika po opcji \"-U\"!\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: bÅÄ
d - nieznany cel \"%s/%s\"!\n"
+
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+#, c-format
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: bÅÄ
d - %s nazw zmiennych Årodowiskowych z nieistniejÄ
cym celem \"%s\"!\n"
+
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: bÅÄ
d - brak dostÄpnego domyÅlnego celu.\n"
+
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Użycie: lpq [-P cel] [-U nazwaużytkownika] [-h nazwakomputera[:port]] [-l] "
+"[+przerwanie]\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana nazwa komputera po opcji \"-H\"!\n"
+
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana wartoÅÄ po opcji \"-%c\"!\n"
+
+#, c-format
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: ostrzeżenie - modyfikator formatu \"%c\" jest nieobsÅugiwany - wyjÅcie "
+"może nie byÄ prawidÅowe!\n"
+
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana opcja=wartoÅÄ po opcji \"-o\"!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany cel po opcji \"-P\"!\n"
+
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany licznik kopii po opcji \"-#\"!\n"
+
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana nazwa po opcji \"-%c\"!\n"
+
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: bÅÄ
d - nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: bÅÄ
d - nie można uzyskaÄ dostÄpu do \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: bÅÄ
d - za dużo plików - \"%s\"\n"
+
+#, c-format
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: bÅÄ
d - %s nazw zmiennych Årodowiskowych z nieistniejÄ
cym celem \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: bÅÄ
d - brak dostÄpnego domyÅlnego celu.\n"
+
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: bÅÄ
d - planista nie odpowiada!\n"
+
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: bÅÄ
d - nie można utworzyÄ pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: bÅÄ
d - nie można zapisaÄ do pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr ""
+"%s: bÅÄ
d - standardowe wejÅcie jest puste, wiÄc żadne zadanie nie zostaÅo "
+"wysÅane.\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: bÅÄ
d - nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany tekst przyczyny po opcji \"-r\"!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana nazwa komputera po opcji \"-u\"!\n"
+
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr "%s: %s nie powiodÅo siÄ: %s\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany cel po opcji \"-d\"!\n"
+
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana forma po opcji \"-f\"!\n"
+
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja formy zostaÅa zignorowana!\n"
+
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: oczekiwany ID zadania po opcji \"-i\"!\n"
+
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr ""
+"%s: bÅÄ
d - nie można jednoczeÅnie drukowaÄ plików i zmieniaÄ zadania!\n"
+
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%: bÅÄ
d - bÅÄdny ID zadania!\n"
+
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%: bÅÄ
d - oczekiwane kopie po opcji \"-n\"!\n"
+
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany ÅaÅcuch tekstowy opcji po opcji \"-o\"!\n"
+
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany priorytet po opcji \"-%c\"!\n"
+
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: bÅÄ
d - priorytet musi byÄ miÄdzy 1 a 100.\n"
+
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany tytuÅ po opcji \"-t\"!\n"
+
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana lista trybów po opcji \"-y\"!\n"
+
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja trybu zostaÅa zignorowana!\n"
+
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwana wstrzymana nazwa po opcji \"-H\"!\n"
+
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: wymagany jest ID zadania (\"-i idzadania\") po \"-H restart\"!"
+
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%: bÅÄ
d - oczekiwana lista stron po opcji \"-P\"!\n"
+
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany zestaw znaków po opcji \"-S\"!\n"
+
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja zestawu znaków zostaÅa zignorowana!\n"
+
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: bÅÄ
d - oczekiwany typ zawartoÅci po opcji \"-T\"!\n"
+
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja typu zawartoÅci zostaÅa zignorowana!\n"
+
+#, c-format
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: bÅÄ
d - nie można drukowaÄ ze standardowego wejÅcia, jeÅli dostarczone sÄ
"
+"pliki lub ID zadania!\n"
+
+#, c-format
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: bÅÄ
d - wymagane jest \"completed\", \"not-completed\" lub \"all\" po -"
+"W!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%: bÅÄ
d - oczekiwany cel po opcji \"-b\"!\n"
+
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: nieprawidÅowa nazwa celu na liÅcie \"%s\"!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: nie można poÅÄ
czyÄ siÄ z serwerem\n"
+
+msgid "Print Job:"
+msgstr "Zadanie drukowania:"
+
+msgid "pending"
+msgstr "oczekujÄ
ce"
+
+msgid "held"
+msgstr "wstrzymane"
+
+msgid "processing"
+msgstr "przetwarzane"
+
+msgid "stopped"
+msgstr "zatrzymane"
+
+msgid "canceled"
+msgstr "anlowane"
+
+msgid "aborted"
+msgstr "przerwane"
+
+msgid "completed"
+msgstr "zakoÅczone"
+
+msgid "unknown"
+msgstr "nieznane"
+
+msgid "untitled"
+msgstr "nienazwane"
+
+msgid "Printer:"
+msgstr "Drukarka:"
+
+msgid "idle"
+msgstr "bezczynna"
+
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "BrakujÄ
ca wÅaÅciwoÅÄ notify-subscription-ids!"
+
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Subskrypcje zadania nie mogÄ
zostaÄ ponowione!"
+
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: oczekiwana nazwa pliku konfiguracji po opcji \"-c\"!\n"
+
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr ""
+"cupsd: obsÅuga launchd(8) nie zostaÅa wkompilowana, uruchamianie w normalnym "
+"trybie.\n"
+
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: nieznana opcja \"%c\" - przerywanie!\n"
+
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: nieznany argument \"%s\" - przerywanie!\n"
+
+msgid ""
+"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c config-file Load alternate configuration file\n"
+"-f Run in the foreground\n"
+"-F Run in the foreground but detach\n"
+"-h Show this usage message\n"
+"-l Run cupsd from launchd(8)\n"
+msgstr ""
+"Użycie: cupsd [-c plik-konfiguracji] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c plik-konfiguracji Wczytuje alternatywny plik konfiguracji\n"
+"-f Uruchamia na przednim planie\n"
+"-F Uruchamia na przednim planie, ale odÅÄ
czone\n"
+"-h WyÅwietla wiadomoÅci o użyciu\n"
+"-l Uruchamia cupsd z launchd(8)\n"
+
+#, c-format
+msgid " WARN Line %d only contains whitespace!\n"
+msgstr " OSTRZEÅ»ENIE Wiersz %d zawiera wyÅÄ
cznie biaÅe znaki!\n"
+
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+" OSTRZEÅ»ENIE Plik zawiera mieszaninÄ zakoÅczeÅ wierszy CR, LF i CR "
+"LF!\n"
+
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" OSTRZEÅ»ENIE Pliki PPD nie pochodzÄ
ce z Windows powinny używaÄ "
+"tylko zakoÅczeÅ wierszy LF, nie CR LF!"
+
+msgid "Printer Maintenance"
+msgstr "Konserwacja drukarki"
+
+msgid "Unable to send maintenance job:"
+msgstr "Nie można wysÅaÄ zadania konserwacji:"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: brak pliku PPD dla drukarki \"%s\" - %s\n"
+
+#, c-format
+msgid " **FAIL** %s %s does not exist!\n"
+msgstr " **ZAWIÃDÅ** %s %s nie istnieje!\n"
+
+#, c-format
+msgid " **FAIL** Bad language \"%s\"!\n"
+msgstr " **ZAWIÃDÅ** BÅÄdny jÄzyk \"%s\"!\n"
+
+#, c-format
+msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
+msgstr ""
+" **ZAWIÃDÅ** BrakujÄ
cy ÅaÅcuch tekstowy tÅumaczenia \"%s\" dla opcji %"
+"s!\n"
+
+#, c-format
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **ZAWIÃDÅ** DomyÅlny ÅaÅcuch tekstowy tÅumaczenia dla opcji %s "
+"zawiera 8 bitowe znaki!\n"
+
+#, c-format
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+" **ZAWIÃDÅ** BrakujÄ
cy ÅaÅcuch tekstowy tÅumaczenia \"%s\" dla opcji %"
+"s, wybierz %s!\n"
+
+#, c-format
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **ZAWIÃDÅ** DomyÅlny ÅaÅcuch tekstowy tÅumaczenia dla opcji %s wyboru "
+"%s zawiera 8 bitowe znaki!\n"
+
+#, c-format
+msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
+msgstr " **ZAWIÃDÅ** BÅÄdna wartoÅÄ cupsFilter \"%s\"!\n"
+
+msgid "Help"
+msgstr "Pomoc"
+
+#, c-format
+msgid "Missing value on line %d!\n"
+msgstr "BrakujÄ
ca wartoÅÄ w wierszu %d!\n"
+
+#, c-format
+msgid "Missing double quote on line %d!\n"
+msgstr "BrakujÄ
cy cudzysÅów w wierszu %d!\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!\n"
+msgstr "BÅÄdna opcja + wybór w wierszu %d!\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "Nie można skopiowaÄ plików sterownika drukarki Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "Nie można skopiowaÄ plików sterownika drukarki CUPS (%d)!\n"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "Nie można zainstalowaÄ plików sterownika drukarki Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "Nie można skopiowaÄ plików sterownika drukarki Windows 9x (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "Nie można zainstalowaÄ plików sterownika drukarki Windows 9x (%d)!"
+
+msgid "No Windows printer drivers are installed!\n"
+msgstr "Brak zainstalowanych sterowników drukarek Windows!\n"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "Ostrzeżenie, brak zainstalowanych sterowników drukarek Windows 2000!\n"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!\n"
+msgstr "Nie można ustawiÄ sterownika drukarki Windows (%d)!\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -E Encrypt the connection to the server\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Użycie: cupsaddsmb [opcje] drukarka1 ... drukarkaN\n"
+" cupsaddsmb [opcje] -a\n"
+"\n"
+"Opcje:\n"
+" -H serwer-samby Używa nazwanego serwera Samby\n"
+" -U użytkownik-samby Uwierzytelnia używajÄ
c nazwanego użytkownika Samby\n"
+" -a Eksportuje wszystkie drukarki\n"
+" -h serwer-cups Używa nazwanego serwera CUPS\n"
+" -v (wyÅwietla polecenia)\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Nie można skopiowaÄ plików sterowników drukarek Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Nie można skopiowaÄ plików sterowników drukarek CUPS (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Nie można zainstalowaÄ plików sterowników drukarek Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Nie można skopiowaÄ plików sterowników drukarek Windows 9x (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Nie można zainstalowaÄ plików sterowników drukarek Windows 9x (%d)!"
+
+msgid "No Windows printer drivers are installed!"
+msgstr "Brak zainstalowanych sterowników drukarek!"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Ostrzeżenie, brak zainstalowanych sterowników drukarek Windows 2000!"
+
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "otwarcie z %s nie powiodÅo siÄ: %s"
+
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Uruchamianie poleceÅ: %s %s -N -A %s -c \"%s\"\n"
+
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "użycie stat z %s nie powiodÅo siÄ: %s"
+
+#, c-format
+msgid "Job #%d is already cancelled - can't cancel."
+msgstr "Zadanie #%d zostaÅo już anulowane - nie można anulowaÄ."
+
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "Zadanie #%d zostaÅo już przerwane - nie można anulowaÄ."
+
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "Zadanie #%d zostaÅo już zakoÅczone - nie można anulowaÄ."
+
+#, c-format
+msgid ""
+"You must access this page using the URL https://%"
+"s:%d%s."
+msgstr ""
+"Aby uzyskaÄ dostÄp do tej strony, użyj URL-a https://%s:%d%s."
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "NieobsÅugiwany format \"%s\"!"
+
+msgid "FAIL\n"
+msgstr "ZAWIÃDÅ\n"
+
+#, c-format
+msgid ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+msgstr ""
+
+msgid ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+" BrakujÄ
ce %!PS-Adobe-3.0 w pierwszym wierszu!\n"
+" REF: strona 17, 3.1 PodporzÄ
dkowywanie dokumentów\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+msgstr ""
+" BÅÄdne %%%%Pages: w wierszu %d!\n"
+" REF: strona 43, %%%%Pages:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+" BÅÄdne %%%%BoundingBox: w wierszu %d!\n"
+" REF: strona 39, %%%%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+msgstr ""
+" BÅÄdne %%%%Page: w wierszu %d!\n"
+" REF: strona 53, %%%%Page:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+" BrakujÄ
ce lub bÅÄdne %%BoundingBox: komentarz!\n"
+" REF: strona 39, %%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+msgstr ""
+" BrakujÄ
ce lub bÅÄdne %%Pages: komentarz!\n"
+" REF: strona 43, %%Pages:\n"
+
+#, c-format
+msgid ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+msgstr ""
+" BrakujÄ
cy komentarz %%EndComments!\n"
+" REF: strona 41, %%EndComments\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+msgstr ""
+" BrakujÄ
ce lub bÅÄdne %%Page: kometarze!\n"
+" REF: strona 53, %%Page:\n"
+
+#, c-format
+msgid " Too many %%EndDocument comments!\n"
+msgstr " Za dużo komentarzy %%EndDocument!\n"
+
+#, c-format
+msgid " Too many %%BeginDocument comments!\n"
+msgstr " Za dużo komentarzy %%BeginDocument!\n"
+
+#, c-format
+msgid " Saw %d lines that exceeded 255 characters!\n"
+msgstr " Zobaczono %d wierszy przekraczajÄ
cych 255 znaków!\n"
+
+msgid "PASS\n"
+msgstr "POWODZENIE\n"
+
+msgid " Warning: file contains binary data!\n"
+msgstr " Ostrzeżenie: plik zawiera dane binarne!\n"
+
+#, c-format
+msgid " Warning: obsolete DSC version %.1f in file!\n"
+msgstr " Ostrzeżenie: przestarzaÅa wersja DSC %.1f w pliku!\n"
+
+#, c-format
+msgid " Warning: no %%EndComments comment in file!\n"
+msgstr " Ostrzeżenie: brak komentarza %%EndComments w pliku!\n"
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+" cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -h Show program usage\n"
+"\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
+msgstr ""
+"Użycie: cupstestdsc [opcje] nazwapliku.ps [... nazwapliku.ps]\n"
+" cupstestdsc [opcje] -\n"
+"\n"
+"Opcje:\n"
+"\n"
+" -h WyÅwietla użycie programu\n"
+"\n"
+" Uwaga: ten program sprawdza tylko komentarze DSC, nie PostScriptowe..\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **ZAWIÃDÅ** BÅÄdny %s wybór %s!\n"
+" REF: strona 122, sekcja 5.17\n"
diff --git a/locale/cups_sv.po b/locale/cups_sv.po
index 27d0ed065f..a245aa8139 100644
--- a/locale/cups_sv.po
+++ b/locale/cups_sv.po
@@ -28,12 +28,12 @@ msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-03-23 21:52-0500\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
"PO-Revision-Date: 2006-04-16 00:55+0100\n"
"Last-Translator: Daniel Nylander \n"
"Language-Team: Swedish \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Options Installed"
@@ -78,8 +78,12 @@ msgstr "Nej"
msgid "Auto"
msgstr "Auto"
-msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för att komma åt denna sida."
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för "
+"att komma åt denna sida."
msgid "You must use a https: URL to access this page."
msgstr "Du måste använda en https:-url för att komma åt denna sida."
@@ -105,8 +109,10 @@ msgstr "%s stöds inte!"
msgid "The printer or class was not found."
msgstr "Skrivaren eller klassen hittades inte."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr "Printer-uri mÃ¥ste vara i formatet \"ipp://VÃRDNAMN/classes/KLASSNAMN\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"Printer-uri mÃ¥ste vara i formatet \"ipp://VÃRDNAMN/classes/KLASSNAMN\"."
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
@@ -143,19 +149,27 @@ msgstr "Språket \"%s\" stöds inte!"
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "Värdet för notify-user-data är för stort (%d > 63 okteter)!"
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr "Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "Printer-uri mÃ¥ste vara i formatet \"ipp://VÃRDNAMN/printers/SKRIVARNAMN\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"Printer-uri mÃ¥ste vara i formatet \"ipp://VÃRDNAMN/printers/SKRIVARNAMN\"."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "En klass med namnet \"%s\" finns redan!"
#, c-format
-msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
-msgstr "Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet FileDevice i \"%s/cupsd.conf\"."
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet "
+"FileDevice i \"%s/cupsd.conf\"."
#, c-format
msgid "Bad device-uri \"%s\"!"
@@ -448,7 +462,8 @@ msgid "lpq: Unknown destination \"%s\"!\n"
msgstr "lpq: Okänt mål \"%s\"!\n"
#, c-format
-msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lp: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
@@ -458,11 +473,14 @@ msgstr "lpq: fel - inget standardmål tillgängligt.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs misslyckades: %s\n"
-msgid "Rank Owner Pri Job Files Total Size\n"
-msgstr "Rank Ãgare Pri Jobb Filer Total storlek\n"
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
+msgstr ""
+"Rank Ãgare Pri Jobb Filer Total storlek\n"
msgid "Rank Owner Job File(s) Total Size\n"
-msgstr "Rank Ãgare Jobb Fil(er) Total storlek\n"
+msgstr ""
+"Rank Ãgare Jobb Fil(er) Total storlek\n"
#, c-format
msgid "%s: %-33.33s [job %d localhost]\n"
@@ -507,8 +525,12 @@ msgid "lpr: error - expected value after -%c option!\n"
msgstr "lpr: fel - förväntade värde efter flaggan -%c!\n"
#, c-format
-msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte blir korrekt!\n"
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte "
+"blir korrekt!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: fel - förväntade alternativ=värde efter flaggan -o!\n"
@@ -542,7 +564,8 @@ msgid "lpr: error - too many files - \"%s\"\n"
msgstr "lpr: fel - för många filer - \"%s\"\n"
#, c-format
-msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lpr: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
@@ -668,7 +691,9 @@ msgstr "cupsaddsmb: Kunde inte konvertera PPD-fil för %s - %s\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
@@ -676,15 +701,20 @@ msgstr "cupsaddsmb: Kunde inte kopiera filer för CUPS-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
@@ -1067,10 +1097,12 @@ msgstr " OK\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller JCLDuplex!\n"
+" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller "
+"JCLDuplex!\n"
" REF: Sida 122, sektion 5.17\n"
msgid " WARN Default choices conflicting!\n"
@@ -1123,7 +1155,8 @@ msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" VARN Protokollen innehåller PJL men JCL-attributen är inte inställda.\n"
+" VARN Protokollen innehåller PJL men JCL-attributen är inte "
+"inställda.\n"
" REF: Sidorna 78-79, sektion 5.7.\n"
#, c-format
@@ -1150,10 +1183,12 @@ msgstr ""
" (begränsare=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd[.gz]]\n"
+"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd"
+"[.gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
@@ -1226,7 +1261,9 @@ msgid "system default destination: %s\n"
msgstr "systemstandardmål: %s\n"
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
msgstr "lpstat: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "no system default destination\n"
@@ -1520,10 +1557,12 @@ msgstr ""
"\n"
" lpadmin [-h server] -d mål\n"
" lpadmin [-h server] -x mål\n"
-" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m modell]\n"
+" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m "
+"modell]\n"
" [-r ta-bort-klass] [-v enhet] [-D beskrivning]\n"
" [-P ppd-fil] [-o namn=värde]\n"
-" [-u allow:användare,användare] [-u deny:användare,användare]\n"
+" [-u allow:användare,användare] [-u deny:användare,"
+"användare]\n"
"\n"
#, c-format
@@ -1623,8 +1662,11 @@ msgstr "lp: Varning - flagga för innehållstyp ignorerades!\n"
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: Okänd flagga \"%c\"!\n"
-msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
+"anges!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
@@ -1808,7 +1850,8 @@ msgstr "lppasswd: Lösenordsfil inte uppdaterad!\n"
#, c-format
msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr "lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
+msgstr ""
+"lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
#, c-format
msgid "lppasswd: failed to rename password file: %s\n"
@@ -1859,8 +1902,12 @@ msgstr "Ãndra klass"
msgid "Add Class"
msgstr "Lägg till klass"
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte "
+"innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to modify class:"
msgstr "Kunde inte ändra klass:"
@@ -1874,8 +1921,12 @@ msgstr "Ãndra skrivare"
msgid "Add Printer"
msgstr "Lägg till skrivare"
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får "
+"inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to get list of printer drivers:"
msgstr "Kunde inte få tag på listan av skrivardrivrutiner:"
@@ -2162,7 +2213,8 @@ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
msgstr "cupsaddsmb: Inga Windows-skrivardrivrutiner är installerade!\n"
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-msgstr "cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
+msgstr ""
+"cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s.\n"
@@ -2205,7 +2257,8 @@ msgid "Usage: lpmove job/src dest\n"
msgstr "Användning: lpmove jobb/källa mål\n"
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-msgstr "lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
+msgstr ""
+"lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
#, c-format
msgid "%s accepting requests since %s\n"
@@ -2255,15 +2308,19 @@ msgid "%s: Error - expected hostname after '-h' option!\n"
msgstr "%s: Fel - förväntade värdnamn efter flaggan \"-h\"!\n"
#, c-format
-msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: fel - inget standardmål tillgängligt.\n"
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr "Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] [+intervall]\n"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] "
+"[+intervall]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
@@ -2274,8 +2331,12 @@ msgid "%s: Error - expected value after '-%c' option!\n"
msgstr "%s: Fel - förväntade värde efter flaggan \"-%c\"!\n"
#, c-format
-msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte blir korrekt!\n"
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte "
+"blir korrekt!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
@@ -2306,7 +2367,8 @@ msgid "%s: Error - too many files - \"%s\"\n"
msgstr "%s: Fel - för många filer - \"%s\"\n"
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: Fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
@@ -2426,12 +2488,19 @@ msgid "%s: Warning - content type option ignored!\n"
msgstr "%s: Varning - flagga för innehållstyp ignorerades!\n"
#, c-format
-msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
+"anges!\n"
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
-msgstr "%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter flaggan \"-W\"!\n"
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter "
+"flaggan \"-W\"!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
@@ -2522,11 +2591,17 @@ msgstr ""
msgid " WARN Line %d only contains whitespace!\n"
msgstr " VARN Rad %d innehåller endast blanktecken!\n"
-msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr " VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+" VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
-msgstr " VARN Icke-Windows PPD-filer bör använda radslut med endast LF, inte CR LF!\n"
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" VARN Icke-Windows PPD-filer bör använda radslut med endast LF, "
+"inte CR LF!\n"
msgid "Printer Maintenance"
msgstr "Skrivarunderhåll"
@@ -2551,16 +2626,26 @@ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
-msgstr " **FEL** Standardöversättningssträng för flaggan %s innehåller 8-bitars tecken!\n"
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **FEL** Standardöversättningssträng för flaggan %s innehåller 8-"
+"bitars tecken!\n"
#, c-format
-msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+" **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
-msgstr " **FEL** Standardöversättningssträng för flaggan %s val %s innehåller 8-bitars tecken!\n"
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **FEL** Standardöversättningssträng för flaggan %s val %s innehåller "
+"8-bitars tecken!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
@@ -2591,7 +2676,8 @@ msgstr "Kunde inte kopiera filer för CUPS-skrivardrivrutiner (%d)!\n"
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
+msgstr ""
+"Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
@@ -2685,8 +2771,12 @@ msgid "Job #%d is already completed - can't cancel."
msgstr "Jobb #%d är redan färdigt - kan inte avbryta."
#, c-format
-msgid "You must access this page using the URL https://%s:%d%s."
-msgstr "Du måste komma åt sidan med url:en https://%s:%d%s."
+msgid ""
+"You must access this page using the URL https://%"
+"s:%d%s."
+msgstr ""
+"Du måste komma åt sidan med url:en https://%s:%d%"
+"s."
#, c-format
msgid "Unsupported format '%s'!"
@@ -2800,7 +2890,8 @@ msgid ""
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
msgstr ""
"Användning: cupstestdsc [flaggor] filnamn.ps [... filnamn.ps]\n"
" cupstestdsc [flaggor] -\n"
@@ -2809,5 +2900,17 @@ msgstr ""
"\n"
" -h Visa programanvändning\n"
"\n"
-" Notera: detta program validerar endast DSC-kommentarer, inte själva PostScript.\n"
+" Notera: detta program validerar endast DSC-kommentarer, inte själva "
+"PostScript.\n"
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FEL** Felaktigt %s val %s!\n"
+" REF: Sida 122, sektion 5.17\n"
diff --git a/ppd/intelbar.ppd b/ppd/intelbar.ppd
new file mode 100644
index 0000000000..f2af1a3d55
--- /dev/null
+++ b/ppd/intelbar.ppd
@@ -0,0 +1,219 @@
+*PPD-Adobe: "4.3"
+*%
+*% "$Id$"
+*%
+*% Sample IntelliBar label printer driver PPD file for the Common UNIX
+*% Printing System (CUPS).
+*%
+*% Copyright 2001-2006 by Easy Software Products.
+*%
+*% These coded instructions, statements, and computer programs are the
+*% property of Easy Software Products and are protected by Federal
+*% copyright law. Distribution and use rights are outlined in the file
+*% "LICENSE.txt" which should have been included with this file. If this
+*% file is missing or damaged please contact Easy Software Products
+*% at:
+*%
+*% Attn: CUPS Licensing Information
+*% Easy Software Products
+*% 44141 Airport View Drive, Suite 204
+*% Hollywood, Maryland 20636 USA
+*%
+*% Voice: (301) 373-9600
+*% EMail: cups-info@cups.org
+*% WWW: http://www.cups.org
+*%
+*FormatVersion: "4.3"
+*FileVersion: "1.2"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "INTELBAR.PPD"
+*Manufacturer: "Intellitech"
+*Product: "(GNU Ghostscript)"
+*Product: "(ESP Ghostscript)"
+*cupsVersion: 1.2
+*cupsManualCopies: False
+*cupsFilter: "application/vnd.cups-raster 0 rastertolabel"
+*cupsModelNumber: 32
+*ModelName: "Intellitech IntelliBar Series Label Printer"
+*ShortNickName: "Intellitech IntelliBar Series"
+*NickName: "Intellitech IntelliBar Series Label Printer v1.2"
+*PSVersion: "(3010.000) 81501"
+*LanguageLevel: "3"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: False
+*Throughput: "8"
+*LandscapeOrientation: Plus90
+*TTRasterizer: Type42
+
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: w288h432
+*PageSize w288h432/Label - 4.00x6.00": "<>setpagedevice"
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: w288h432
+*PageRegion w288h432/Label - 4.00x6.00": "<>setpagedevice"
+*CloseUI: *PageRegion
+
+*DefaultImageableArea: w288h432
+*ImageableArea w288h432/Label - 4.00x6.00": "0 5.76 288 426.24"
+
+*DefaultPaperDimension: w288h432
+*PaperDimension w288h432/Label - 4.00x6.00": "288 432"
+
+*MaxMediaWidth: "630"
+*MaxMediaHeight: "7128"
+*HWMargins: 0 5.76 0 5.76
+*CustomPageSize True: "pop pop pop <>setpagedevice"
+*ParamCustomPageSize Width: 1 points 36 630
+*ParamCustomPageSize Height: 2 points 36 7128
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 0
+
+*OpenUI *Resolution/Output Resolution: PickOne
+*OrderDependency: 20 AnySetup *Resolution
+*DefaultResolution: 300dpi
+*Resolution 300dpi/300 DPI: "<>setpagedevice"
+*CloseUI: *Resolution
+
+*OpenGroup: PrinterSettings/Printer Settings
+*OpenUI *inPrintDensity/Print Density: PickOne
+*OrderDependency: 20 DocumentSetup *inPrintDensity
+*DefaultinPrintDensity: Default
+*inPrintDensity Default/PrinterDefault: "<>setpagedevice"
+*inPrintDensity -15: "< >setpagedevice"
+*inPrintDensity -14: "<>setpagedevice"
+*inPrintDensity -13: "<>setpagedevice"
+*inPrintDensity -12: "<>setpagedevice"
+*inPrintDensity -11: "<>setpagedevice"
+*inPrintDensity -10: "<>setpagedevice"
+*inPrintDensity -9: "<>setpagedevice"
+*inPrintDensity -8: "<>setpagedevice"
+*inPrintDensity -7: "<>setpagedevice"
+*inPrintDensity -6: "<>setpagedevice"
+*inPrintDensity -5: "<>setpagedevice"
+*inPrintDensity -4: "<>setpagedevice"
+*inPrintDensity -3: "<>setpagedevice"
+*inPrintDensity -2: "<>setpagedevice"
+*inPrintDensity -1: "<>setpagedevice"
+*inPrintDensity 0: "<>setpagedevice"
+*inPrintDensity 1: "<>setpagedevice"
+*inPrintDensity 2: "<>setpagedevice"
+*inPrintDensity 3: "<>setpagedevice"
+*inPrintDensity 4: "<>setpagedevice"
+*inPrintDensity 5: "<>setpagedevice"
+*inPrintDensity 6: "<>setpagedevice"
+*inPrintDensity 7: "<>setpagedevice"
+*inPrintDensity 8: "<>setpagedevice"
+*inPrintDensity 9: "<>setpagedevice"
+*inPrintDensity 10: "<>setpagedevice"
+*inPrintDensity 11: "<>setpagedevice"
+*inPrintDensity 12: "<>setpagedevice"
+*inPrintDensity 13: "<>setpagedevice"
+*inPrintDensity 14: "<>setpagedevice"
+*inPrintDensity 15: "<>setpagedevice"
+*CloseUI: *inPrintDensity
+
+*OpenUI *inPrintRate/Print Speed: PickOne
+*OrderDependency: 20 DocumentSetup *inPrintRate
+*DefaultinPrintRate: Default
+*inPrintRate Default/PrinterDefault: "<>setpagedevice"
+*inPrintRate 15/15 mm/sec.: "<>setpagedevice"
+*inPrintRate 20/20 mm/sec.: "<>setpagedevice"
+*inPrintRate 30/30 mm/sec.: "<>setpagedevice"
+*inPrintRate 40/40 mm/sec.: "<>setpagedevice"
+*inPrintRate 60/60 mm/sec.: "<>setpagedevice"
+*inPrintRate 80/80 mm/sec.: "<>setpagedevice"
+*inPrintRate 100/100 mm/sec.: "<>setpagedevice"
+*inPrintRate 120/120 mm/sec.: "<>setpagedevice"
+*inPrintRate 150/150 mm/sec.: "<>setpagedevice"
+*inPrintRate 200/200 mm/sec.: "<>setpagedevice"
+*inPrintRate 250/250 mm/sec.: "<>setpagedevice"
+*inPrintRate 300/300 mm/sec.: "<>setpagedevice"
+*CloseUI: *inPrintRate
+
+*OpenUI *inTearInterval/Print and Tear: PickOne
+*OrderDependency: 20 DocumentSetup *inTearInterval
+*DefaultinTearInterval: Default
+*inTearInterval Default/PrinterDefault: "<>setpagedevice"
+*inTearInterval None/Disabled: "<>setpagedevice"
+*inTearInterval 1/Every Label: "<>setpagedevice"
+*inTearInterval 2/Every 2 Labels: "<>setpagedevice"
+*inTearInterval 3/Every 3 Labels: "<>setpagedevice"
+*inTearInterval 4/Every 4 Labels: "<>setpagedevice"
+*inTearInterval 5/Every 5 Labels: "<>setpagedevice"
+*inTearInterval 6/Every 6 Labels: "<>setpagedevice"
+*inTearInterval 7/Every 7 Labels: "<>setpagedevice"
+*inTearInterval 8/Every 8 Labels: "<>setpagedevice"
+*inTearInterval 9/Every 9 Labels: "<>setpagedevice"
+*inTearInterval 10/Every 10 Labels: "<>setpagedevice"
+*CloseUI: *inTearInterval
+
+*CustominTearInterval True: "<>setpagedevice"
+*ParamCustominTearInterval Interval: 1 int 1 99
+
+*OpenUI *inCutInterval/Print and Cut: PickOne
+*OrderDependency: 20 DocumentSetup *inCutInterval
+*DefaultinCutInterval: Default
+*inCutInterval Default/PrinterDefault: "<>setpagedevice"
+*inCutInterval None/Disabled: "<>setpagedevice"
+*inCutInterval 1/Every Label: "<>setpagedevice"
+*inCutInterval 2/Every 2 Labels: "<>setpagedevice"
+*inCutInterval 3/Every 3 Labels: "<>setpagedevice"
+*inCutInterval 4/Every 4 Labels: "<>setpagedevice"
+*inCutInterval 5/Every 5 Labels: "<>setpagedevice"
+*inCutInterval 6/Every 6 Labels: "<>setpagedevice"
+*inCutInterval 7/Every 7 Labels: "<>setpagedevice"
+*inCutInterval 8/Every 8 Labels: "<>setpagedevice"
+*inCutInterval 9/Every 9 Labels: "<>setpagedevice"
+*inCutInterval 10/Every 10 Labels: "<>setpagedevice"
+*CloseUI: *inCutInterval
+
+*CustominCutInterval True: "<>setpagedevice"
+*ParamCustominCutInterval Interval: 1 int 1 99
+*CloseGroup: *PrinterSettings
+
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
+*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: Standard "(001.004S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Courier: Standard "(002.004S)" Standard ROM
+*Font Courier-Bold: Standard "(002.004S)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
+*Font Helvetica: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
+*Font Symbol: Special "(001.007S)" Special ROM
+*Font Times-Bold: Standard "(001.007S)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
+*Font Times-Italic: Standard "(001.007S)" Standard ROM
+*Font Times-Roman: Standard "(001.007S)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
+*Font ZapfDingbats: Special "(001.004S)" Standard ROM
+*%
+*% End of "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $".
+*%
diff --git a/ppd/zebra.ppd b/ppd/zebra.ppd
index 7d07230c1c..c478eda0f7 100644
--- a/ppd/zebra.ppd
+++ b/ppd/zebra.ppd
@@ -1,6 +1,6 @@
*PPD-Adobe: "4.3"
*%
-*% "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $"
+*% "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $"
*%
*% Sample Zebra label printer driver PPD file for the Common UNIX Printing
*% System (CUPS).
@@ -255,7 +255,7 @@
*MediaType Saved/PrinterDefault: ""
*MediaType Thermal/Thermal Transfer Media: "<>setpagedevice"
*MediaType Direct/Direct Thermal Media: "<>setpagedevice"
-*CloseUI: *zeMediaType
+*CloseUI: *MediaType
*OpenGroup: PrinterSettings/Printer Settings
*OpenUI *Darkness/Media Darkness: PickOne
@@ -479,5 +479,5 @@
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Standard ROM
*%
-*% End of "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $".
+*% End of "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $".
*%
diff --git a/ppd/zebracpl.ppd b/ppd/zebracpl.ppd
index 6958f4045f..db46f8d032 100644
--- a/ppd/zebracpl.ppd
+++ b/ppd/zebracpl.ppd
@@ -160,7 +160,7 @@
*OpenUI *zePrintRate/Print Rate: PickOne
*OrderDependency: 20 AnySetup *zePrintRate
*DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
*zePrintRate 1/1 inch/sec.: ""
*zePrintRate 2/2 inches/sec.: ""
*zePrintRate 3/3 inches/sec.: ""
diff --git a/ppd/zebraep1.ppd b/ppd/zebraep1.ppd
index 817e4e8a37..1e157654bb 100644
--- a/ppd/zebraep1.ppd
+++ b/ppd/zebraep1.ppd
@@ -281,7 +281,7 @@
*OpenUI *zePrintRate/Print Rate: PickOne
*OrderDependency: 20 AnySetup *zePrintRate
*DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
*zePrintRate 1/1 inch/sec.: ""
*zePrintRate 1.5/1.5 inch/sec.: ""
*zePrintRate 2/2 inches/sec.: ""
diff --git a/ppd/zebraep2.ppd b/ppd/zebraep2.ppd
index e4ad8ca1d5..6bd7747130 100644
--- a/ppd/zebraep2.ppd
+++ b/ppd/zebraep2.ppd
@@ -247,7 +247,7 @@
*MediaType Saved/PrinterDefault: ""
*MediaType Thermal/Thermal Transfer Media: "<>setpagedevice"
*MediaType Direct/Direct Thermal Media: "<>setpagedevice"
-*CloseUI: *zeMediaType
+*CloseUI: *MediaType
*OpenGroup: PrinterSettings/Printer Settings
*OpenUI *Darkness/Media Darkness: PickOne
@@ -289,7 +289,7 @@
*OpenUI *zePrintRate/Print Rate: PickOne
*OrderDependency: 20 AnySetup *zePrintRate
*DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
*zePrintRate 1/1 inch/sec.: ""
*zePrintRate 1.5/1.5 inch/sec.: ""
*zePrintRate 2/2 inches/sec.: ""
diff --git a/scheduler/auth.c b/scheduler/auth.c
index 78e82d52ec..895a14225d 100644
--- a/scheduler/auth.c
+++ b/scheduler/auth.c
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.c 5464 2006-04-26 01:34:14Z mike $"
+ * "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $"
*
* Authorization routines for the Common UNIX Printing System (CUPS).
*
@@ -119,7 +119,7 @@ typedef struct cupsd_authdata_s /**** Authentication data ****/
* Local globals...
*/
-#if defined(__hpux) && defined(HAVE_LIBPAM)
+#if defined(__hpux) && HAVE_LIBPAM
static cupsd_authdata_t *auth_data; /* Current client being authenticated */
#endif /* __hpux && HAVE_LIBPAM */
@@ -1497,7 +1497,8 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"cupsdIsAuthorized: con->uri=\"%s\", con->best=%p(%s)",
- con->uri, con->best, con->best ? con->best->location : "");
+ con->uri, con->best, con->best ? con->best->location ?
+ con->best->location : "(null)" : "");
if (owner)
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"cupsdIsAuthorized: owner=\"%s\"", owner);
@@ -2167,5 +2168,5 @@ to64(char *s, /* O - Output string */
/*
- * End of "$Id: auth.c 5464 2006-04-26 01:34:14Z mike $".
+ * End of "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $".
*/
diff --git a/scheduler/client.c b/scheduler/client.c
index e174223db2..a08f91fc98 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -1,5 +1,5 @@
/*
- * "$Id: client.c 5491 2006-05-04 20:53:35Z mike $"
+ * "$Id: client.c 5567 2006-05-22 15:33:11Z mike $"
*
* Client routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -1376,7 +1376,8 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"cupsdReadClient: %d command=\"%s\", "
"options = \"%s\"",
- con->http.fd, con->command, con->options);
+ con->http.fd, con->command,
+ con->options ? con->options : "(null)");
if (con->http.version <= HTTP_1_0)
con->http.keep_alive = HTTP_KEEPALIVE_OFF;
@@ -3507,7 +3508,7 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"pipe_command: command=\"%s\", options=\"%s\"",
- command, options);
+ command, options ? options : "(null)");
argv[0] = command;
query_string = NULL;
@@ -3824,5 +3825,5 @@ write_file(cupsd_client_t *con, /* I - Client connection */
/*
- * End of "$Id: client.c 5491 2006-05-04 20:53:35Z mike $".
+ * End of "$Id: client.c 5567 2006-05-22 15:33:11Z mike $".
*/
diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
index e1fd525c08..b27ac8c41c 100644
--- a/scheduler/dirsvc.c
+++ b/scheduler/dirsvc.c
@@ -1,5 +1,5 @@
/*
- * "$Id: dirsvc.c 5448 2006-04-22 03:57:26Z mike $"
+ * "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $"
*
* Directory services routines for the Common UNIX Printing System (CUPS).
*
@@ -665,10 +665,10 @@ cupsdSendBrowseDelete(
* Announce the deletion...
*/
- if (BrowseLocalProtocols & BROWSE_CUPS)
+ if ((BrowseLocalProtocols & BROWSE_CUPS) && BrowseSocket >= 0)
send_cups_browse(p);
#ifdef HAVE_LIBSLP
- if (BrowseLocalProtocols & BROWSE_SLP)
+ if ((BrowseLocalProtocols & BROWSE_SLP) && BrowseSLPHandle)
slp_dereg_printer(p);
#endif /* HAVE_LIBSLP */
}
@@ -934,6 +934,8 @@ cupsdStartBrowsing(void)
BrowseSLPRefresh = 0;
}
+ else
+ BrowseSLPHandle = NULL;
#endif /* HAVE_LIBSLP */
#ifdef HAVE_OPENLDAP
@@ -1161,7 +1163,7 @@ cupsdStopBrowsing(void)
}
#endif /* HAVE_LIBSLP */
-#ifdef HAVE_OPENDAP
+#ifdef HAVE_OPENLDAP
if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_LDAP) &&
BrowseLDAPHandle)
{
@@ -3128,5 +3130,5 @@ slp_url_callback(
/*
- * End of "$Id: dirsvc.c 5448 2006-04-22 03:57:26Z mike $".
+ * End of "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $".
*/
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
index b3a5f58ebc..0a78c9d6c5 100644
--- a/scheduler/ipp.c
+++ b/scheduler/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 5438 2006-04-19 21:21:05Z mike $"
+ * "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $"
*
* IPP routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -126,8 +126,7 @@ static void accept_jobs(cupsd_client_t *con, ipp_attribute_t *uri);
static void add_class(cupsd_client_t *con, ipp_attribute_t *uri);
static int add_file(cupsd_client_t *con, cupsd_job_t *job,
mime_type_t *filetype, int compression);
-static cupsd_job_t *add_job(cupsd_client_t *con, ipp_attribute_t *uri,
- cupsd_printer_t **dprinter,
+static cupsd_job_t *add_job(cupsd_client_t *con, cupsd_printer_t *printer,
mime_type_t *filetype);
static void add_job_state_reasons(cupsd_client_t *con, cupsd_job_t *job);
static void add_job_subscriptions(cupsd_client_t *con, cupsd_job_t *job);
@@ -627,6 +626,15 @@ cupsdProcessIPPRequest(
if (cupsdSendHeader(con, HTTP_OK, "application/ipp"))
{
+#ifdef CUPSD_USE_CHUNKING
+ /*
+ * Because older versions of CUPS (1.1.17 and older) and some IPP
+ * clients do not implement chunking properly, we should not use
+ * chunking by default. This may become the default in future
+ * CUPS releases, or we might add a configuration directive for
+ * it.
+ */
+
if (con->http.version == HTTP_1_1)
{
con->http.data_encoding = HTTP_ENCODE_CHUNKED;
@@ -634,6 +642,7 @@ cupsdProcessIPPRequest(
httpPrintf(HTTP(con), "Transfer-Encoding: chunked\r\n\r\n");
}
else
+#endif /* CUPSD_USE_CHUNKING */
{
con->http.data_encoding = HTTP_ENCODE_LENGTH;
con->http.data_remaining = ippLength(con->response);
@@ -690,12 +699,6 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */
{
http_status_t status; /* Policy status */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI], /* Method portion of URI */
- username[HTTP_MAX_URI], /* Username portion of URI */
- host[HTTP_MAX_URI], /* Host portion of URI */
- resource[HTTP_MAX_URI]; /* Resource portion of URI */
- int port; /* Port portion of URI */
- const char *name; /* Printer name */
cupsd_printer_t *printer; /* Printer data */
@@ -706,11 +709,7 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -741,12 +740,19 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */
cupsdAddPrinterHistory(printer);
if (dtype & CUPS_PRINTER_CLASS)
+ {
cupsdSaveAllClasses();
+
+ cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" now accepting jobs (\"%s\").",
+ printer->name, get_username(con));
+ }
else
+ {
cupsdSaveAllPrinters();
- cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").", name,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").",
+ printer->name, get_username(con));
+ }
/*
* Everything was ok, so return OK status...
@@ -774,7 +780,6 @@ add_class(cupsd_client_t *con, /* I - Client connection */
cupsd_printer_t *pclass, /* Class */
*member; /* Member printer/class */
cups_ptype_t dtype; /* Destination type */
- const char *dest; /* Printer or class name */
ipp_attribute_t *attr; /* Printer attribute */
int modify; /* Non-zero if we just modified */
char newname[IPP_MAX_NAME]; /* New class name */
@@ -993,11 +998,7 @@ add_class(cupsd_client_t *con, /* I - Client connection */
* Search for the printer or class URI...
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[i].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &member)) == NULL)
+ if (!cupsdValidateDest(attr->values[i].string.text, &dtype, &member))
{
/*
* Bad URI...
@@ -1134,54 +1135,24 @@ add_file(cupsd_client_t *con, /* I - Connection to client */
static cupsd_job_t * /* O - Job object */
add_job(cupsd_client_t *con, /* I - Client connection */
- ipp_attribute_t *uri, /* I - printer-uri */
- cupsd_printer_t **dprinter, /* I - Destination printer */
+ cupsd_printer_t *printer, /* I - Destination printer */
mime_type_t *filetype) /* I - First print file type, if any */
{
http_status_t status; /* Policy status */
ipp_attribute_t *attr; /* Current attribute */
- const char *dest; /* Destination */
- cups_ptype_t dtype; /* Destination type (printer or class) */
const char *val; /* Default option value */
int priority; /* Job priority */
char *title; /* Job name/title */
cupsd_job_t *job; /* Current job */
- char job_uri[HTTP_MAX_URI], /* Job URI */
- method[HTTP_MAX_URI], /* Method portion of URI */
- username[HTTP_MAX_URI], /* Username portion of URI */
- host[HTTP_MAX_URI], /* Host portion of URI */
- resource[HTTP_MAX_URI]; /* Resource portion of URI */
- int port; /* Port portion of URI */
- cupsd_printer_t *printer; /* Printer data */
+ char job_uri[HTTP_MAX_URI]; /* Job URI */
int kbytes; /* Size of print file */
int i; /* Looping var */
int lowerpagerange; /* Page range bound */
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %s)", con,
- con->http.fd, uri->values[0].string.text);
-
- /*
- * Is the destination valid?
- */
-
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
- {
- /*
- * Bad URI...
- */
-
- send_ipp_status(con, IPP_NOT_FOUND,
- _("The printer or class was not found."));
- return (NULL);
- }
-
- if (dprinter)
- *dprinter = printer;
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
+ con, con->http.fd, printer, printer->name,
+ filetype, filetype->super, filetype->type);
/*
* Check remote printing to non-shared printer...
@@ -1219,7 +1190,7 @@ add_job(cupsd_client_t *con, /* I - Client connection */
{
send_ipp_status(con, IPP_NOT_ACCEPTING,
_("Destination \"%s\" is not accepting jobs."),
- dest);
+ printer->name);
return (NULL);
}
@@ -1286,7 +1257,7 @@ add_job(cupsd_client_t *con, /* I - Client connection */
if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs)
cupsdCleanJobs();
- if (cupsArrayCount(Jobs) >= MaxJobs && MaxJobs)
+ if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs)
{
send_ipp_status(con, IPP_NOT_POSSIBLE,
_("Too many active jobs."));
@@ -1328,11 +1299,13 @@ add_job(cupsd_client_t *con, /* I - Client connection */
if ((job = cupsdAddJob(priority, printer->name)) == NULL)
{
send_ipp_status(con, IPP_INTERNAL_ERROR,
- _("Unable to add job for destination \"%s\"!"), dest);
+ _("Unable to add job for destination \"%s\"!"),
+ printer->name);
return (NULL);
}
- job->dtype = dtype;
+ job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+ CUPS_PRINTER_REMOTE);
job->attrs = con->request;
con->request = NULL;
@@ -2757,11 +2730,10 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *uri) /* I - Job or Printer URI */
{
http_status_t status; /* Policy status */
- const char *dest; /* Destination */
cups_ptype_t dtype; /* Destination type */
- char method[HTTP_MAX_URI], /* Method portion of URI */
+ char scheme[HTTP_MAX_URI], /* Scheme portion of URI */
userpass[HTTP_MAX_URI], /* Username portion of URI */
- host[HTTP_MAX_URI], /* Host portion of URI */
+ hostname[HTTP_MAX_URI], /* Host portion of URI */
resource[HTTP_MAX_URI]; /* Resource portion of URI */
int port; /* Port portion of URI */
ipp_attribute_t *attr; /* Attribute in request */
@@ -2820,16 +2792,17 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */
* And if the destination is valid...
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), userpass, sizeof(userpass), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI?
*/
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text,
+ scheme, sizeof(scheme), userpass, sizeof(userpass),
+ hostname, sizeof(hostname), &port,
+ resource, sizeof(resource));
+
if ((!strncmp(resource, "/printers/", 10) && resource[10]) ||
(!strncmp(resource, "/classes/", 9) && resource[9]))
{
@@ -2837,13 +2810,6 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */
_("The printer or class was not found."));
return;
}
- else if (strcmp(resource, "/printers/"))
- {
- send_ipp_status(con, IPP_NOT_FOUND,
- _("The printer-uri \"%s\" is not valid."),
- uri->values[0].string.text);
- return;
- }
/*
* Check policy...
@@ -2870,7 +2836,8 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */
* Check policy...
*/
- if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+ if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+ NULL)) != HTTP_OK)
{
send_http_error(con, status);
return;
@@ -2880,10 +2847,11 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */
* Cancel all of the jobs on the named printer...
*/
- cupsdCancelJobs(dest, username, purge);
+ cupsdCancelJobs(printer->name, username, purge);
cupsdLogMessage(CUPSD_LOG_INFO, "All jobs on \"%s\" were %s by \"%s\".",
- dest, purge ? "purged" : "cancelled", get_username(con));
+ printer->name, purge ? "purged" : "cancelled",
+ get_username(con));
}
con->response->request.status.status_code = IPP_OK;
@@ -2900,13 +2868,12 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
{
ipp_attribute_t *attr; /* Current attribute */
int jobid; /* Job ID */
- char method[HTTP_MAX_URI], /* Method portion of URI */
+ char scheme[HTTP_MAX_URI], /* Scheme portion of URI */
username[HTTP_MAX_URI], /* Username portion of URI */
host[HTTP_MAX_URI], /* Host portion of URI */
resource[HTTP_MAX_URI]; /* Resource portion of URI */
int port; /* Port portion of URI */
cupsd_job_t *job; /* Job information */
- const char *dest; /* Destination */
cups_ptype_t dtype; /* Destination type (printer or class) */
cupsd_printer_t *printer; /* Printer data */
@@ -2938,11 +2905,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
* Find the current job on the specified printer...
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -2969,7 +2932,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
job;
job = (cupsd_job_t *)cupsArrayNext(ActiveJobs))
if (job->state_value <= IPP_JOB_PROCESSING &&
- !strcasecmp(job->dest, dest))
+ !strcasecmp(job->dest, printer->name))
break;
if (job)
@@ -2977,7 +2940,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
else
{
send_ipp_status(con, IPP_NOT_POSSIBLE, _("No active jobs on %s!"),
- dest);
+ printer->name);
return;
}
}
@@ -2989,8 +2952,8 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
* Got a job URI; parse it to get the job ID...
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+ sizeof(scheme), username, sizeof(username), host,
sizeof(host), &port, resource, sizeof(resource));
if (strncmp(resource, "/jobs/", 6))
@@ -4449,17 +4412,33 @@ static void
create_job(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *uri) /* I - Printer URI */
{
- cupsd_job_t *job; /* New job */
+ cupsd_printer_t *printer; /* Printer */
+ cupsd_job_t *job; /* New job */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "create_job(%p[%d], %s)", con,
con->http.fd, uri->values[0].string.text);
+ /*
+ * Is the destination valid?
+ */
+
+ if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer))
+ {
+ /*
+ * Bad URI...
+ */
+
+ send_ipp_status(con, IPP_NOT_FOUND,
+ _("The printer or class was not found."));
+ return;
+ }
+
/*
* Create the job object...
*/
- if ((job = add_job(con, uri, NULL, NULL)) == NULL)
+ if ((job = add_job(con, printer, NULL)) == NULL)
return;
/*
@@ -4605,8 +4584,8 @@ create_requested_array(ipp_t *request) /* I - IPP request */
cupsArrayAdd(ra, "notify-lease-duration-default");
cupsArrayAdd(ra, "notify-lease-duration-supported");
cupsArrayAdd(ra, "notify-max-events-supported");
- cupsArrayAdd(ra, "notify-notify-events-default");
- cupsArrayAdd(ra, "notify-notify-events-supported");
+ cupsArrayAdd(ra, "notify-events-default");
+ cupsArrayAdd(ra, "notify-events-supported");
cupsArrayAdd(ra, "notify-pull-method-supported");
cupsArrayAdd(ra, "notify-schemes-supported");
cupsArrayAdd(ra, "operations-supported");
@@ -4730,7 +4709,8 @@ create_subscription(
dtype = CUPS_PRINTER_CLASS;
printer = NULL;
}
- else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype,
+ &printer)) == NULL)
{
/*
* Bad URI...
@@ -4747,7 +4727,8 @@ create_subscription(
if (printer)
{
- if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+ if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+ NULL)) != HTTP_OK)
{
send_http_error(con, status);
return;
@@ -4951,13 +4932,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *uri) /* I - URI of printer or class */
{
http_status_t status; /* Policy status */
- const char *dest; /* Destination */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI], /* Method portion of URI */
- username[HTTP_MAX_URI], /* Username portion of URI */
- host[HTTP_MAX_URI], /* Host portion of URI */
- resource[HTTP_MAX_URI]; /* Resource portion of URI */
- int port; /* Port portion of URI */
cupsd_printer_t *printer; /* Printer/class */
char filename[1024]; /* Script/PPD filename */
@@ -4969,11 +4944,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
* Do we have a valid URI?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -4998,7 +4969,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
* Remove old jobs...
*/
- cupsdCancelJobs(dest, NULL, 1);
+ cupsdCancelJobs(printer->name, NULL, 1);
/*
* Remove old subscriptions and send a "deleted printer" event...
@@ -5007,7 +4978,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
cupsdAddEvent(CUPSD_EVENT_PRINTER_DELETED, printer, NULL,
"%s \"%s\" deleted by \"%s\".",
(dtype & CUPS_PRINTER_CLASS) ? "Class" : "Printer",
- dest, get_username(con));
+ printer->name, get_username(con));
cupsdExpireSubscriptions(printer, NULL);
@@ -5015,24 +4986,26 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
* Remove any old PPD or script files...
*/
- snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot, dest);
+ snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot,
+ printer->name);
unlink(filename);
- snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot, dest);
+ snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot,
+ printer->name);
unlink(filename);
if (dtype & CUPS_PRINTER_CLASS)
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".", dest,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".",
+ printer->name, get_username(con));
cupsdDeletePrinter(printer, 0);
cupsdSaveAllClasses();
}
else
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".", dest,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".",
+ printer->name, get_username(con));
cupsdDeletePrinter(printer, 0);
cupsdSaveAllPrinters();
@@ -5275,7 +5248,7 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */
const char *dest; /* Destination */
cups_ptype_t dtype; /* Destination type (printer or class) */
cups_ptype_t dmask; /* Destination type mask */
- char method[HTTP_MAX_URI], /* Method portion of URI */
+ char scheme[HTTP_MAX_URI], /* Scheme portion of URI */
username[HTTP_MAX_URI], /* Username portion of URI */
host[HTTP_MAX_URI], /* Host portion of URI */
resource[HTTP_MAX_URI]; /* Resource portion of URI */
@@ -5297,8 +5270,8 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+ sizeof(scheme), username, sizeof(username), host,
sizeof(host), &port, resource, sizeof(resource));
if (!strcmp(resource, "/") ||
@@ -5323,7 +5296,8 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */
dmask = CUPS_PRINTER_CLASS;
printer = NULL;
}
- else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype,
+ &printer)) == NULL)
{
/*
* Bad URI...
@@ -5342,7 +5316,8 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */
if (printer)
{
- if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+ if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+ NULL)) != HTTP_OK)
{
send_http_error(con, status);
return;
@@ -5678,17 +5653,7 @@ get_printer_attrs(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *uri) /* I - Printer URI */
{
http_status_t status; /* Policy status */
- const char *dest; /* Destination */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
- username[HTTP_MAX_URI],
- /* Username portion of URI */
- host[HTTP_MAX_URI],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
cupsd_printer_t *printer; /* Printer/class */
cups_array_t *ra; /* Requested attributes array */
@@ -5700,11 +5665,7 @@ get_printer_attrs(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -5967,8 +5928,8 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */
cups_array_t *ra; /* Requested attributes array */
ipp_attribute_t *attr; /* Attribute */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
+ char scheme[HTTP_MAX_URI],
+ /* Scheme portion of URI */
username[HTTP_MAX_URI],
/* Username portion of URI */
host[HTTP_MAX_URI],
@@ -5988,8 +5949,8 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+ sizeof(scheme), username, sizeof(username), host,
sizeof(host), &port, resource, sizeof(resource));
if (!strcmp(resource, "/") ||
@@ -6012,7 +5973,7 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */
return;
}
}
- else if (!cupsdValidateDest(host, resource, &dtype, &printer))
+ else if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -6271,7 +6232,7 @@ move_job(cupsd_client_t *con, /* I - Client connection */
*dest; /* Destination */
cups_ptype_t stype, /* Source type (printer or class) */
dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI], /* Method portion of URI */
+ char scheme[HTTP_MAX_URI], /* Scheme portion of URI */
username[HTTP_MAX_URI], /* Username portion of URI */
host[HTTP_MAX_URI], /* Host portion of URI */
resource[HTTP_MAX_URI]; /* Resource portion of URI */
@@ -6299,11 +6260,8 @@ move_job(cupsd_client_t *con, /* I - Client connection */
return;
}
- httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &dtype, &dprinter)) == NULL)
+ if ((dest = cupsdValidateDest(attr->values[0].string.text, &dtype,
+ &dprinter)) == NULL)
{
/*
* Bad URI...
@@ -6318,7 +6276,8 @@ move_job(cupsd_client_t *con, /* I - Client connection */
* Check policy...
*/
- if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con, NULL)) != HTTP_OK)
+ if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con,
+ NULL)) != HTTP_OK)
{
send_http_error(con, status);
return;
@@ -6328,8 +6287,8 @@ move_job(cupsd_client_t *con, /* I - Client connection */
* See if we have a job URI or a printer URI...
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+ sizeof(scheme), username, sizeof(username), host,
sizeof(host), &port, resource, sizeof(resource));
if (!strcmp(uri->name, "printer-uri"))
@@ -6345,7 +6304,8 @@ move_job(cupsd_client_t *con, /* I - Client connection */
* Move all jobs...
*/
- if ((src = cupsdValidateDest(host, resource, &stype, &sprinter)) == NULL)
+ if ((src = cupsdValidateDest(uri->values[0].string.text, &stype,
+ &sprinter)) == NULL)
{
/*
* Bad URI...
@@ -6643,6 +6603,7 @@ print_job(cupsd_client_t *con, /* I - Client connection */
{
ipp_attribute_t *attr; /* Current attribute */
ipp_attribute_t *format; /* Document-format attribute */
+ const char *default_format; /* document-format-default value */
cupsd_job_t *job; /* New job */
char filename[1024]; /* Job filename */
mime_type_t *filetype; /* Type of file */
@@ -6699,6 +6660,21 @@ print_job(cupsd_client_t *con, /* I - Client connection */
return;
}
+ /*
+ * Is the destination valid?
+ */
+
+ if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer))
+ {
+ /*
+ * Bad URI...
+ */
+
+ send_ipp_status(con, IPP_NOT_FOUND,
+ _("The printer or class was not found."));
+ return;
+ }
+
/*
* Is it a format we support?
*/
@@ -6710,7 +6686,8 @@ print_job(cupsd_client_t *con, /* I - Client connection */
* Grab format from client...
*/
- if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super, type) != 2)
+ if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super,
+ type) != 2)
{
send_ipp_status(con, IPP_BAD_REQUEST,
_("Could not scan type \"%s\"!"),
@@ -6718,10 +6695,26 @@ print_job(cupsd_client_t *con, /* I - Client connection */
return;
}
}
+ else if ((default_format = cupsGetOption("document-format",
+ printer->num_options,
+ printer->options)) != NULL)
+ {
+ /*
+ * Use default document format...
+ */
+
+ if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2)
+ {
+ send_ipp_status(con, IPP_BAD_REQUEST,
+ _("Could not scan type \"%s\"!"),
+ default_format);
+ return;
+ }
+ }
else
{
/*
- * No document format attribute? Auto-type it!
+ * Auto-type it!
*/
strcpy(super, "application");
@@ -6744,32 +6737,35 @@ print_job(cupsd_client_t *con, /* I - Client connection */
doc_name ? doc_name->values[0].string.text : NULL,
&compression);
- if (filetype)
- {
- /*
- * Replace the document-format attribute value with the auto-typed one.
- */
+ if (!filetype)
+ filetype = mimeType(MimeDatabase, super, type);
+ }
+ else
+ filetype = mimeType(MimeDatabase, super, type);
+
+ if (filetype &&
+ (!format ||
+ (!strcmp(super, "application") && !strcmp(type, "octet-stream"))))
+ {
+ /*
+ * Replace the document-format attribute value with the auto-typed or
+ * default one.
+ */
- snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
- filetype->type);
+ snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+ filetype->type);
- if (format)
- {
- _cupsStrFree(format->values[0].string.text);
+ if (format)
+ {
+ _cupsStrFree(format->values[0].string.text);
- format->values[0].string.text = _cupsStrAlloc(mimetype);
- }
- else
- ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
- "document-format", NULL, mimetype);
+ format->values[0].string.text = _cupsStrAlloc(mimetype);
}
else
- filetype = mimeType(MimeDatabase, super, type);
+ ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
+ "document-format", NULL, mimetype);
}
- else
- filetype = mimeType(MimeDatabase, super, type);
-
- if (!filetype)
+ else if (!filetype)
{
send_ipp_status(con, IPP_DOCUMENT_FORMAT,
_("Unsupported format \'%s/%s\'!"), super, type);
@@ -6798,7 +6794,7 @@ print_job(cupsd_client_t *con, /* I - Client connection */
* Create the job object...
*/
- if ((job = add_job(con, uri, &printer, filetype)) == NULL)
+ if ((job = add_job(con, printer, filetype)) == NULL)
return;
/*
@@ -6832,8 +6828,10 @@ print_job(cupsd_client_t *con, /* I - Client connection */
* See if we need to add the ending sheet...
*/
+ attr = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
+
if (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
- attr->num_values > 1)
+ attr && attr->num_values > 1)
{
/*
* Yes...
@@ -7061,12 +7059,6 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */
{
http_status_t status; /* Policy status */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI], /* Method portion of URI */
- username[HTTP_MAX_URI], /* Username portion of URI */
- host[HTTP_MAX_URI], /* Host portion of URI */
- resource[HTTP_MAX_URI]; /* Resource portion of URI */
- int port; /* Port portion of URI */
- const char *name; /* Printer name */
cupsd_printer_t *printer; /* Printer data */
ipp_attribute_t *attr; /* printer-state-message text */
@@ -7078,11 +7070,7 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -7123,14 +7111,14 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */
cupsdSaveAllClasses();
cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" rejecting jobs (\"%s\").",
- name, get_username(con));
+ printer->name, get_username(con));
}
else
{
cupsdSaveAllPrinters();
cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" rejecting jobs (\"%s\").",
- name, get_username(con));
+ printer->name, get_username(con));
}
/*
@@ -7586,6 +7574,7 @@ send_document(cupsd_client_t *con, /* I - Client connection */
{
ipp_attribute_t *attr; /* Current attribute */
ipp_attribute_t *format; /* Document-format attribute */
+ const char *default_format;/* document-format-default value */
int jobid; /* Job ID number */
cupsd_job_t *job; /* Current job */
char job_uri[HTTP_MAX_URI],
@@ -7675,6 +7664,8 @@ send_document(cupsd_client_t *con, /* I - Client connection */
return;
}
+ printer = cupsdFindDest(job->dest);
+
/*
* See if the job is owned by the requesting user...
*/
@@ -7742,6 +7733,22 @@ send_document(cupsd_client_t *con, /* I - Client connection */
return;
}
}
+ else if ((default_format = cupsGetOption("document-format",
+ printer->num_options,
+ printer->options)) != NULL)
+ {
+ /*
+ * Use default document format...
+ */
+
+ if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2)
+ {
+ send_ipp_status(con, IPP_BAD_REQUEST,
+ _("Could not scan type \"%s\"!"),
+ default_format);
+ return;
+ }
+ }
else
{
/*
@@ -7768,31 +7775,35 @@ send_document(cupsd_client_t *con, /* I - Client connection */
doc_name ? doc_name->values[0].string.text : NULL,
&compression);
- if (filetype)
- {
- /*
- * Replace the document-format attribute value with the auto-typed one.
- */
-
- snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
- filetype->type);
-
- if (format)
- {
- _cupsStrFree(format->values[0].string.text);
- format->values[0].string.text = _cupsStrAlloc(mimetype);
- }
- else
- ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
- "document-format", NULL, mimetype);
- }
- else
+ if (!filetype)
filetype = mimeType(MimeDatabase, super, type);
}
else
filetype = mimeType(MimeDatabase, super, type);
- if (!filetype)
+ if (filetype &&
+ (!format ||
+ (!strcmp(super, "application") && !strcmp(type, "octet-stream"))))
+ {
+ /*
+ * Replace the document-format attribute value with the auto-typed or
+ * default one.
+ */
+
+ snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+ filetype->type);
+
+ if (format)
+ {
+ _cupsStrFree(format->values[0].string.text);
+
+ format->values[0].string.text = _cupsStrAlloc(mimetype);
+ }
+ else
+ ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
+ "document-format", NULL, mimetype);
+ }
+ else if (!filetype)
{
send_ipp_status(con, IPP_DOCUMENT_FORMAT,
_("Unsupported format \'%s/%s\'!"), super, type);
@@ -7806,8 +7817,6 @@ send_document(cupsd_client_t *con, /* I - Client connection */
return;
}
- printer = cupsdFindDest(job->dest);
-
if (printer->filetypes && !cupsArrayFind(printer->filetypes, filetype))
{
snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
@@ -8034,16 +8043,6 @@ set_default(cupsd_client_t *con, /* I - Client connection */
{
http_status_t status; /* Policy status */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
- username[HTTP_MAX_URI],
- /* Username portion of URI */
- host[HTTP_MAX_URI],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
- const char *name; /* Printer name */
cupsd_printer_t *printer; /* Printer */
@@ -8054,11 +8053,7 @@ set_default(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -8091,8 +8086,8 @@ set_default(cupsd_client_t *con, /* I - Client connection */
cupsdWritePrintcap();
cupsdLogMessage(CUPSD_LOG_INFO,
- "Default destination set to \"%s\" by \"%s\".", name,
- get_username(con));
+ "Default destination set to \"%s\" by \"%s\".",
+ printer->name, get_username(con));
/*
* Everything was ok, so return OK status...
@@ -8594,9 +8589,8 @@ set_printer_defaults(
attr->values[0].string.text);
cupsdSetString(&printer->error_policy, attr->values[0].string.text);
}
- else if (!strcmp(attr->name, "document-format-default") ||
- !strcmp(attr->name, "notify-lease-duration-default") ||
- !strcmp(attr->name, "notify-notify-events-default"))
+ else if (!strcmp(attr->name, "notify-lease-duration-default") ||
+ !strcmp(attr->name, "notify-events-default"))
continue;
/*
@@ -8698,16 +8692,6 @@ start_printer(cupsd_client_t *con, /* I - Client connection */
{
http_status_t status; /* Policy status */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
- username[HTTP_MAX_URI],
- /* Username portion of URI */
- host[HTTP_MAX_URI],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
- const char *name; /* Printer name */
cupsd_printer_t *printer; /* Printer data */
@@ -8718,11 +8702,7 @@ start_printer(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -8753,17 +8733,19 @@ start_printer(cupsd_client_t *con, /* I - Client connection */
if (dtype & CUPS_PRINTER_CLASS)
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".", name,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".",
+ printer->name, get_username(con));
cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
- "Class \"%s\" started by \"%s\".", name, get_username(con));
+ "Class \"%s\" started by \"%s\".", printer->name,
+ get_username(con));
}
else
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".", name,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".",
+ printer->name, get_username(con));
cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
- "Printer \"%s\" started by \"%s\".", name, get_username(con));
+ "Printer \"%s\" started by \"%s\".", printer->name,
+ get_username(con));
}
cupsdCheckJobs();
@@ -8786,16 +8768,6 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */
{
http_status_t status; /* Policy status */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
- username[HTTP_MAX_URI],
- /* Username portion of URI */
- host[HTTP_MAX_URI],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
- const char *name; /* Printer name */
cupsd_printer_t *printer; /* Printer data */
ipp_attribute_t *attr; /* printer-state-message attribute */
@@ -8807,11 +8779,7 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -8849,17 +8817,19 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */
if (dtype & CUPS_PRINTER_CLASS)
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".", name,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".",
+ printer->name, get_username(con));
cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
- "Class \"%s\" stopped by \"%s\".", name, get_username(con));
+ "Class \"%s\" stopped by \"%s\".", printer->name,
+ get_username(con));
}
else
{
- cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".", name,
- get_username(con));
+ cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".",
+ printer->name, get_username(con));
cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
- "Printer \"%s\" stopped by \"%s\".", name, get_username(con));
+ "Printer \"%s\" stopped by \"%s\".", printer->name,
+ get_username(con));
}
/*
@@ -8986,15 +8956,6 @@ validate_job(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *attr; /* Current attribute */
ipp_attribute_t *format; /* Document-format attribute */
cups_ptype_t dtype; /* Destination type (printer or class) */
- char method[HTTP_MAX_URI],
- /* Method portion of URI */
- username[HTTP_MAX_URI],
- /* Username portion of URI */
- host[HTTP_MAX_URI],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
char super[MIME_MAX_SUPER],
/* Supertype of file */
type[MIME_MAX_TYPE];
@@ -9054,11 +9015,7 @@ validate_job(cupsd_client_t *con, /* I - Client connection */
* Is the destination valid?
*/
- httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
- sizeof(method), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if (cupsdValidateDest(host, resource, &dtype, &printer) == NULL)
+ if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
@@ -9158,5 +9115,5 @@ validate_user(cupsd_job_t *job, /* I - Job */
/*
- * End of "$Id: ipp.c 5438 2006-04-19 21:21:05Z mike $".
+ * End of "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $".
*/
diff --git a/scheduler/job.c b/scheduler/job.c
index dae8361580..de0d6005cf 100644
--- a/scheduler/job.c
+++ b/scheduler/job.c
@@ -1,5 +1,5 @@
/*
- * "$Id: job.c 5494 2006-05-05 17:44:36Z mike $"
+ * "$Id: job.c 5543 2006-05-18 20:51:33Z mike $"
*
* Job management routines for the Common UNIX Printing System (CUPS).
*
@@ -865,13 +865,6 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
cups_file_t *fp; /* Job file */
int fileid; /* Current file ID */
ipp_attribute_t *attr; /* Job attribute */
- char scheme[32], /* Scheme portion of URI */
- username[64], /* Username portion of URI */
- host[HTTP_MAX_HOST],
- /* Host portion of URI */
- resource[HTTP_MAX_URI];
- /* Resource portion of URI */
- int port; /* Port portion of URI */
const char *dest; /* Destination */
mime_type_t **filetypes; /* New filetypes array */
int *compressions; /* New compressions array */
@@ -879,7 +872,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if (job->attrs)
{
- if (job->state_value >= IPP_JOB_STOPPED)
+ if (job->state_value > IPP_JOB_STOPPED)
job->access_time = time(NULL);
return;
@@ -955,11 +948,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
return;
}
- httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, scheme,
- sizeof(scheme), username, sizeof(username), host,
- sizeof(host), &port, resource, sizeof(resource));
-
- if ((dest = cupsdValidateDest(host, resource, &(job->dtype),
+ if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype),
NULL)) == NULL)
{
cupsdLogMessage(CUPSD_LOG_ERROR,
@@ -2027,7 +2016,7 @@ load_job_cache(const char *filename) /* I - job.cache filename */
{
cupsArrayAdd(Jobs, job);
- if (job->state_value < IPP_JOB_STOPPED)
+ if (job->state_value <= IPP_JOB_STOPPED)
{
cupsArrayAdd(ActiveJobs, job);
cupsdLoadJob(job);
@@ -2285,7 +2274,7 @@ load_request_root(void)
cupsArrayAdd(Jobs, job);
- if (job->state_value < IPP_JOB_STOPPED)
+ if (job->state_value <= IPP_JOB_STOPPED)
cupsArrayAdd(ActiveJobs,job);
else
unload_job(job);
@@ -2643,8 +2632,23 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (job->current_file == 0)
{
+ /*
+ * Set the processing time...
+ */
+
set_time(job, "time-at-processing");
+
+ /*
+ * Create the backchannel pipes and make them non-blocking...
+ */
+
cupsdOpenPipe(job->back_pipes);
+
+ fcntl(job->back_pipes[0], F_SETFL,
+ fcntl(job->back_pipes[0], F_GETFL) | O_NONBLOCK);
+
+ fcntl(job->back_pipes[1], F_SETFL,
+ fcntl(job->back_pipes[1], F_GETFL) | O_NONBLOCK);
}
/*
@@ -3440,5 +3444,5 @@ unload_job(cupsd_job_t *job) /* I - Job */
/*
- * End of "$Id: job.c 5494 2006-05-05 17:44:36Z mike $".
+ * End of "$Id: job.c 5543 2006-05-18 20:51:33Z mike $".
*/
diff --git a/scheduler/printers.c b/scheduler/printers.c
index b5a715d3a3..1beabcf1fd 100644
--- a/scheduler/printers.c
+++ b/scheduler/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c 5491 2006-05-04 20:53:35Z mike $"
+ * "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $"
*
* Printer routines for the Common UNIX Printing System (CUPS).
*
@@ -406,10 +406,6 @@ cupsdCreateCommonData(void)
/* copies-supported */
ippAddRange(CommonData, IPP_TAG_PRINTER, "copies-supported", 1, MaxCopies);
- /* document-format-default */
- ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
- "document-format-default", NULL, "application/octet-stream");
-
/* generated-natural-language-supported */
ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE,
"generated-natural-language-supported", NULL, DefaultLanguage);
@@ -2404,18 +2400,25 @@ cupsdUpdatePrinters(void)
const char * /* O - Printer or class name */
cupsdValidateDest(
- const char *hostname, /* I - Host name */
- const char *resource, /* I - Resource name */
+ const char *uri, /* I - Printer URI */
cups_ptype_t *dtype, /* O - Type (printer or class) */
cupsd_printer_t **printer) /* O - Printer pointer */
{
cupsd_printer_t *p; /* Current printer */
char localname[1024],/* Localized hostname */
*lptr, /* Pointer into localized hostname */
- *sptr; /* Pointer into server name */
-
-
- DEBUG_printf(("cupsdValidateDest(\"%s\", \"%s\", %p, %p)\n", hostname, resource,
+ *sptr, /* Pointer into server name */
+ *rptr, /* Pointer into resource */
+ scheme[32], /* Scheme portion of URI */
+ username[64], /* Username portion of URI */
+ hostname[HTTP_MAX_HOST],
+ /* Host portion of URI */
+ resource[HTTP_MAX_URI];
+ /* Resource portion of URI */
+ int port; /* Port portion of URI */
+
+
+ DEBUG_printf(("cupsdValidateDest(uri=\"%s\", dtype=%p, printer=%p)\n", uri,
dtype, printer));
/*
@@ -2425,7 +2428,16 @@ cupsdValidateDest(
if (printer)
*printer = NULL;
- *dtype = (cups_ptype_t)0;
+ if (dtype)
+ *dtype = (cups_ptype_t)0;
+
+ /*
+ * Pull the hostname and resource from the URI...
+ */
+
+ httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme),
+ username, sizeof(username), hostname, sizeof(hostname),
+ &port, resource, sizeof(resource));
/*
* See if the resource is a class or printer...
@@ -2437,7 +2449,7 @@ cupsdValidateDest(
* Class...
*/
- resource += 9;
+ rptr = resource + 9;
}
else if (!strncmp(resource, "/printers/", 10))
{
@@ -2445,7 +2457,7 @@ cupsdValidateDest(
* Printer...
*/
- resource += 10;
+ rptr = resource + 10;
}
else
{
@@ -2460,17 +2472,19 @@ cupsdValidateDest(
* See if the printer or class name exists...
*/
- p = cupsdFindDest(resource);
+ p = cupsdFindDest(rptr);
- if (p == NULL && strchr(resource, '@') == NULL)
+ if (p == NULL && strchr(rptr, '@') == NULL)
return (NULL);
else if (p != NULL)
{
if (printer)
*printer = p;
- *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
- CUPS_PRINTER_REMOTE);
+ if (dtype)
+ *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+ CUPS_PRINTER_REMOTE);
+
return (p->name);
}
@@ -2479,7 +2493,7 @@ cupsdValidateDest(
*/
if (!strcasecmp(hostname, "localhost"))
- hostname = ServerName;
+ strlcpy(hostname, ServerName, sizeof(hostname));
strlcpy(localname, hostname, sizeof(localname));
@@ -2521,13 +2535,15 @@ cupsdValidateDest(
p;
p = (cupsd_printer_t *)cupsArrayNext(Printers))
if (!strcasecmp(p->hostname, localname) &&
- !strcasecmp(p->name, resource))
+ !strcasecmp(p->name, rptr))
{
if (printer)
*printer = p;
- *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
- CUPS_PRINTER_REMOTE);
+ if (dtype)
+ *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+ CUPS_PRINTER_REMOTE);
+
return (p->name);
}
@@ -2776,6 +2792,10 @@ add_printer_defaults(cupsd_printer_t *p)/* I - Printer */
ippAddInteger(p->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "copies-default",
1);
+ if (!cupsGetOption("document-format", p->num_options, p->options))
+ ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
+ "document-format-default", NULL, "application/octet-stream");
+
if (!cupsGetOption("job-hold-until", p->num_options, p->options))
ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
"job-hold-until-default", NULL, "no-hold");
@@ -2924,10 +2944,6 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
type;
type = mimeNextType(MimeDatabase))
{
- if (!strcasecmp(type->super, "application") &&
- !strcasecmp(type->type, "octet-stream"))
- continue;
-
snprintf(mimetype, sizeof(mimetype), "%s/%s", type->super, type->type);
if ((filters = mimeFilter(MimeDatabase, type, p->filetype, NULL)) != NULL)
@@ -2953,14 +2969,20 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
* Add the file formats that can be filtered...
*/
+ if ((type = mimeType(MimeDatabase, "application", "octet-stream")) == NULL ||
+ !cupsArrayFind(p->filetypes, type))
+ i = 1;
+ else
+ i = 0;
attr = ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
"document-format-supported",
cupsArrayCount(p->filetypes) + 1, NULL, NULL);
- attr->values[0].string.text = _cupsStrAlloc("application/octet-stream");
+ if (i)
+ attr->values[0].string.text = _cupsStrAlloc("application/octet-stream");
- for (i = 1, type = (mime_type_t *)cupsArrayFirst(p->filetypes);
+ for (type = (mime_type_t *)cupsArrayFirst(p->filetypes);
type;
i ++, type = (mime_type_t *)cupsArrayNext(p->filetypes))
{
@@ -3033,7 +3055,7 @@ write_irix_config(cupsd_printer_t *p) /* I - Printer to update */
{
char filename[1024]; /* Interface script filename */
cups_file_t *fp; /* Interface script file */
-
+ ipp_attribute_t *attr; /* Attribute data */
/*
@@ -3278,5 +3300,5 @@ write_irix_state(cupsd_printer_t *p) /* I - Printer to update */
/*
- * End of "$Id: printers.c 5491 2006-05-04 20:53:35Z mike $".
+ * End of "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $".
*/
diff --git a/scheduler/printers.h b/scheduler/printers.h
index ef8b347090..7d502b681e 100644
--- a/scheduler/printers.h
+++ b/scheduler/printers.h
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $"
+ * "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $"
*
* Printer definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -135,8 +135,7 @@ extern void cupsdStopPrinter(cupsd_printer_t *p, int update);
extern void cupsdUpdatePrinters(void);
extern cupsd_quota_t *cupsdUpdateQuota(cupsd_printer_t *p, const char *username,
int pages, int k);
-extern const char *cupsdValidateDest(const char *hostname,
- const char *resource,
+extern const char *cupsdValidateDest(const char *uri,
cups_ptype_t *dtype,
cupsd_printer_t **printer);
extern void cupsdWritePrintcap(void);
@@ -146,5 +145,5 @@ extern char *cupsdSanitizeURI(const char *uri, char *buffer,
/*
- * End of "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $".
+ * End of "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $".
*/
diff --git a/scheduler/testmime.c b/scheduler/testmime.c
index 7efb1c6a88..64897975c6 100644
--- a/scheduler/testmime.c
+++ b/scheduler/testmime.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testmime.c 5061 2006-02-03 16:32:18Z mike $"
+ * "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $"
*
* MIME test program for the Common UNIX Printing System (CUPS).
*
@@ -98,6 +98,8 @@ main(int argc, /* I - Number of command-line args */
if (src)
printf("%s: %s/%s%s\n", argv[i], src->super, src->type,
compression ? " (gzipped)" : "");
+ else if ((src = mimeType(mime, "application", "octet-stream")) != NULL)
+ printf("%s: application/octet-stream\n", argv[i]);
else
{
printf("%s: unknown\n", argv[i]);
@@ -158,7 +160,8 @@ main(int argc, /* I - Number of command-line args */
filter->dst->super, filter->dst->type,
filter->filter, filter->cost);
- type_dir(mime, "..");
+ type_dir(mime, "../doc");
+ type_dir(mime, "../man");
}
return (0);
@@ -280,6 +283,9 @@ type_dir(mime_t *mime, /* I - MIME database */
while ((dent = cupsDirRead(dir)) != NULL)
{
+ if (dent->filename[0] == '.')
+ continue;
+
snprintf(filename, sizeof(filename), "%s/%s", dirname, dent->filename);
if (S_ISDIR(dent->fileinfo.st_mode))
@@ -325,5 +331,5 @@ type_dir(mime_t *mime, /* I - MIME database */
/*
- * End of "$Id: testmime.c 5061 2006-02-03 16:32:18Z mike $".
+ * End of "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $".
*/
diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c
index f5885d82b4..0177cc7eb3 100644
--- a/systemv/cupstestppd.c
+++ b/systemv/cupstestppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupstestppd.c 5422 2006-04-18 15:16:00Z mike $"
+ * "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
@@ -1176,7 +1176,8 @@ main(int argc, /* I - Number of command-line arguments */
}
}
- if (ppdFindAttr(ppd, "1284DeviceId", NULL))
+ if ((attr = ppdFindAttr(ppd, "1284DeviceID", NULL)) &&
+ strcmp(attr->name, "1284DeviceID"))
{
if (verbose >= 0)
{
@@ -1729,5 +1730,5 @@ usage(void)
/*
- * End of "$Id: cupstestppd.c 5422 2006-04-18 15:16:00Z mike $".
+ * End of "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $".
*/
diff --git a/systemv/lpadmin.c b/systemv/lpadmin.c
index 35498d904a..1d60982536 100644
--- a/systemv/lpadmin.c
+++ b/systemv/lpadmin.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpadmin.c 5154 2006-02-23 01:36:15Z mike $"
+ * "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $"
*
* "lpadmin" command for the Common UNIX Printing System (CUPS).
*
@@ -466,6 +466,25 @@ main(int argc, /* I - Number of command-line arguments */
return (1);
break;
+ case 'U' : /* Username */
+ if (argv[i][2] != '\0')
+ cupsSetUser(argv[i] + 2);
+ else
+ {
+ i ++;
+ if (i >= argc)
+ {
+ _cupsLangPrintf(stderr,
+ _("%s: Error - expected username after "
+ "\'-U\' option!\n"),
+ argv[0]);
+ return (1);
+ }
+
+ cupsSetUser(argv[i]);
+ }
+ break;
+
case 'u' : /* Allow/deny users */
if (argv[i][2])
val = argv[i] + 2;
@@ -1965,5 +1984,5 @@ validate_name(const char *name) /* I - Name to check */
/*
- * End of "$Id: lpadmin.c 5154 2006-02-23 01:36:15Z mike $".
+ * End of "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $".
*/
diff --git a/systemv/lpstat.c b/systemv/lpstat.c
index bce318bc1d..5a6f317279 100644
--- a/systemv/lpstat.c
+++ b/systemv/lpstat.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $"
+ * "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $"
*
* "lpstat" command for the Common UNIX Printing System (CUPS).
*
@@ -235,10 +235,10 @@ main(int argc, /* I - Number of command-line arguments */
}
else
{
- _cupsLangPuts(stderr,
- _("%s: Error - expected destination after "
- "\'-b\' option!\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("%s: Error - expected destination after "
+ "\'-b\' option!\n"),
+ argv[0]);
return (1);
}
@@ -2248,5 +2248,5 @@ show_scheduler(http_t *http) /* I - HTTP connection to server */
/*
- * End of "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $".
+ * End of "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $".
*/
diff --git a/templates/es/jobs.tmpl b/templates/es/jobs.tmpl
index 9e36defe52..97cc2bef03 100644
--- a/templates/es/jobs.tmpl
+++ b/templates/es/jobs.tmpl
@@ -18,7 +18,7 @@
{job_k_octets}k
{job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}}
{job_state=3?pendiente desde
{time_at_creation}:{job_state=4?retenido desde
{time_at_creation}:
-{job_state=5?en proceso desde
{time_at_processing}:{job_state=6?parado el
{time_at_completed}:
+{job_state=5?en proceso desde
{time_at_processing}:{job_state=6?parado:
{job_state=7?cancelado el
{time_at_completed}:{job_state=8?abandonado:completado el
{time_at_completed}}}}}}}
{job_preserved>0?
diff --git a/templates/ja/jobs.tmpl b/templates/ja/jobs.tmpl
index 371bc30beb..be029120e6 100644
--- a/templates/ja/jobs.tmpl
+++ b/templates/ja/jobs.tmpl
@@ -18,7 +18,7 @@
{job_k_octets}k
{job_media_sheets_completed=0?䏿:{?job_media_sheets_completed}}
{job_state=3?{time_at_creation}
ããä¿çä¸:{job_state=4?{time_at_creation}
ãããã¼ã«ãä¸:
-{job_state=5?{time_at_processing}
ããå¦çä¸:{job_state=6?{time_at_completed}
ã«åæ¢:
+{job_state=5?{time_at_processing}
ããå¦çä¸:{job_state=6?ã«åæ¢:
{job_state=7?{time_at_completed}
ã«ãã£ã³ã»ã«:{time_at_completed}
{job_state=8?ã«ä¸æ:ã«å®äº}}}}}}
{job_preserved>0?
diff --git a/templates/jobs.tmpl b/templates/jobs.tmpl
index 4f22096f31..08d2078496 100644
--- a/templates/jobs.tmpl
+++ b/templates/jobs.tmpl
@@ -18,7 +18,7 @@
{job_k_octets}k
{job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}}
{job_state=3?pending since
{time_at_creation}:{job_state=4?held since
{time_at_creation}:
-{job_state=5?processing since
{time_at_processing}:{job_state=6?stopped at
{time_at_completed}:
+{job_state=5?processing since
{time_at_processing}:{job_state=6?stopped:
{job_state=7?cancelled at
{time_at_completed}:{job_state=8?aborted:completed at
{time_at_completed}}}}}}}
{job_preserved>0?
diff --git a/templates/pl/add-class.tmpl b/templates/pl/add-class.tmpl
index 3400683961..6120c878d2 100644
--- a/templates/pl/add-class.tmpl
+++ b/templates/pl/add-class.tmpl
@@ -1,7 +1,7 @@