summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-06-27 20:26:20 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-06-27 20:26:20 +0000
commit75bd9771f6e44fdd887ee90faac46f403aefc0fc (patch)
tree354e3067522df9490e905772f73b72bfed8733ae
parentdd1abb6b5f145c5e5f279d8848b5f3ec161fd227 (diff)
downloadcups-75bd9771f6e44fdd887ee90faac46f403aefc0fc.tar.gz
Merge changes from CUPS 1.4svn-r7696.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@818 a1ca3aef-8c08-0410-bb20-df032aa958be
-rw-r--r--CHANGES-1.3.txt2
-rw-r--r--CHANGES.txt5
-rw-r--r--Makedefs.in5
-rw-r--r--Makefile4
-rw-r--r--backend/Makefile8
-rw-r--r--backend/backend-private.h4
-rw-r--r--backend/ieee1284.c6
-rw-r--r--backend/ipp.c4
-rw-r--r--backend/lpd.c4
-rw-r--r--backend/pap.c2
-rw-r--r--backend/parallel.c4
-rw-r--r--backend/runloop.c4
-rw-r--r--backend/scsi.c4
-rw-r--r--backend/serial.c4
-rw-r--r--backend/snmp.c4
-rw-r--r--backend/socket.c4
-rw-r--r--backend/test1284.c4
-rw-r--r--backend/usb-darwin.c4
-rw-r--r--backend/usb-libusb.c680
-rw-r--r--backend/usb-unix.c7
-rw-r--r--backend/usb.c19
-rw-r--r--berkeley/Makefile4
-rw-r--r--berkeley/lpc.c4
-rw-r--r--berkeley/lpq.c4
-rw-r--r--berkeley/lprm.c4
-rw-r--r--cgi-bin/Makefile4
-rw-r--r--cgi-bin/admin.c4
-rw-r--r--cgi-bin/classes.c4
-rw-r--r--cgi-bin/help-index.c4
-rw-r--r--cgi-bin/help-index.h4
-rw-r--r--cgi-bin/ipp-var.c4
-rw-r--r--cgi-bin/jobs.c4
-rw-r--r--cgi-bin/printers.c4
-rw-r--r--cgi-bin/search.c4
-rw-r--r--cgi-bin/template.c4
-rw-r--r--cgi-bin/var.c4
-rw-r--r--conf/Makefile4
-rw-r--r--conf/cupsd.conf.in13
-rw-r--r--conf/mime.types4
-rw-r--r--config-scripts/cups-common.m438
-rw-r--r--config-scripts/cups-compiler.m44
-rw-r--r--config-scripts/cups-defaults.m44
-rw-r--r--config-scripts/cups-dnssd.m44
-rw-r--r--config-scripts/cups-ldap.m44
-rw-r--r--config-scripts/cups-network.m44
-rw-r--r--config-scripts/cups-pam.m44
-rw-r--r--config-scripts/cups-pdf.m44
-rw-r--r--config-scripts/cups-sharedlibs.m44
-rw-r--r--config-scripts/cups-slp.m44
-rw-r--r--config-scripts/cups-ssl.m44
-rw-r--r--config.h.in11
-rw-r--r--configure.in4
-rwxr-xr-xcups-config.in4
-rw-r--r--cups/Makefile4
-rw-r--r--cups/adminutil.c4
-rw-r--r--cups/adminutil.h4
-rw-r--r--cups/api-array.header2
-rw-r--r--cups/api-array.shtml2
-rw-r--r--cups/api-cups.header2
-rw-r--r--cups/api-cups.shtml2
-rw-r--r--cups/api-filedir.header2
-rw-r--r--cups/api-filedir.shtml2
-rw-r--r--cups/api-filter.header2
-rw-r--r--cups/api-filter.shtml11
-rw-r--r--cups/api-httpipp.header2
-rw-r--r--cups/api-httpipp.shtml4
-rw-r--r--cups/api-ppd.header2
-rw-r--r--cups/api-ppd.shtml2
-rw-r--r--cups/array.c4
-rw-r--r--cups/array.h4
-rw-r--r--cups/auth.c4
-rw-r--r--cups/backchannel.c4
-rw-r--r--cups/backend.c4
-rw-r--r--cups/backend.h4
-rw-r--r--cups/cups.h4
-rw-r--r--cups/debug.h4
-rw-r--r--cups/dest.c4
-rw-r--r--cups/dir.c4
-rw-r--r--cups/dir.h4
-rw-r--r--cups/emit.c4
-rw-r--r--cups/encode.c5
-rw-r--r--cups/file.c57
-rw-r--r--cups/file.h4
-rw-r--r--cups/getputfile.c4
-rw-r--r--cups/globals.c4
-rw-r--r--cups/globals.h4
-rw-r--r--cups/http-addrlist.c4
-rw-r--r--cups/http-private.h4
-rw-r--r--cups/http.c4
-rw-r--r--cups/http.h4
-rw-r--r--cups/i18n.h4
-rw-r--r--cups/ipp-private.h4
-rw-r--r--cups/ipp-support.c4
-rw-r--r--cups/ipp.c4
-rw-r--r--cups/ipp.h4
-rw-r--r--cups/langprintf.c4
-rw-r--r--cups/language.c4
-rw-r--r--cups/libcups.exp1
-rw-r--r--cups/localize.c44
-rw-r--r--cups/mark.c4
-rw-r--r--cups/notify.c4
-rw-r--r--cups/options.c4
-rw-r--r--cups/ppd.c4
-rw-r--r--cups/ppd.h6
-rw-r--r--cups/request.c4
-rw-r--r--cups/sidechannel.c4
-rw-r--r--cups/sidechannel.h4
-rw-r--r--cups/string.c4
-rw-r--r--cups/tempfile.c4
-rw-r--r--cups/test.ppd4
-rw-r--r--cups/testfile.c4
-rw-r--r--cups/testhttp.c6
-rw-r--r--cups/testi18n.c4
-rw-r--r--cups/testppd.c4
-rw-r--r--cups/transcode.c4
-rw-r--r--cups/transcode.h4
-rw-r--r--cups/usersys.c4
-rw-r--r--cups/util.c4
-rw-r--r--data/Makefile4
-rw-r--r--data/testprint.ps2
-rw-r--r--doc/Makefile2
-rw-r--r--doc/help/api-array.html2
-rw-r--r--doc/help/api-filter.html13
-rw-r--r--doc/help/api-httpipp.html2
-rw-r--r--doc/help/api-ppd.html28
-rw-r--r--doc/help/api-raster.html4
-rw-r--r--doc/help/spec-ipp.html10
-rw-r--r--doc/help/spec-ppd.html22
-rw-r--r--driver/api-driver.header0
-rw-r--r--driver/api-driver.shtml0
-rw-r--r--driver/testdriver.c4
-rw-r--r--filter/Makefile4
-rw-r--r--filter/api-raster.shtml4
-rw-r--r--filter/commandtops.c11
-rw-r--r--filter/error.c4
-rw-r--r--filter/hpgl-input.c4
-rw-r--r--filter/image-bmp.c4
-rw-r--r--filter/image-gif.c4
-rw-r--r--filter/image-jpeg.c4
-rw-r--r--filter/image-photocd.c4
-rw-r--r--filter/image-pix.c4
-rw-r--r--filter/image-png.c4
-rw-r--r--filter/image-pnm.c4
-rw-r--r--filter/image-private.h4
-rw-r--r--filter/image-sgi.c4
-rw-r--r--filter/image-sgilib.c4
-rw-r--r--filter/image-sun.c4
-rw-r--r--filter/image.c4
-rw-r--r--filter/image.h4
-rw-r--r--filter/imagetoraster.c4
-rw-r--r--filter/interpret.c4
-rw-r--r--filter/pstops.c56
-rw-r--r--filter/raster.c4
-rw-r--r--filter/rasterbench.c4
-rw-r--r--filter/rastertoepson.c4
-rw-r--r--filter/rastertohp.c4
-rw-r--r--filter/rastertolabel.c4
-rw-r--r--filter/testraster.c4
-rw-r--r--fonts/Makefile4
-rw-r--r--locale/Makefile4
-rw-r--r--locale/checkpo.c4
-rw-r--r--locale/cups_id.po3894
-rw-r--r--locale/ppdc_id.po592
-rw-r--r--man/Makefile4
-rw-r--r--man/accept.man4
-rw-r--r--man/backend.man4
-rw-r--r--man/cancel.man4
-rw-r--r--man/classes.conf.man4
-rw-r--r--man/commandtoescpx.man4
-rw-r--r--man/commandtopclx.man4
-rw-r--r--man/cups-config.man4
-rw-r--r--man/cups-deviced.man.in4
-rw-r--r--man/cups-driverd.man.in4
-rw-r--r--man/cups-lpd.man.in4
-rw-r--r--man/cups-polld.man4
-rw-r--r--man/cups-snmp.conf.man4
-rw-r--r--man/cupsaddsmb.man.in4
-rw-r--r--man/cupsctl.man4
-rw-r--r--man/cupsd.conf.man.in4
-rw-r--r--man/cupsd.man.in4
-rw-r--r--man/cupsenable.man4
-rw-r--r--man/cupsfilter.man4
-rw-r--r--man/cupstestdsc.man4
-rw-r--r--man/cupstestppd.man4
-rw-r--r--man/filter.man4
-rw-r--r--man/lp.man4
-rw-r--r--man/lpadmin.man4
-rw-r--r--man/lpc.man4
-rw-r--r--man/lpinfo.man4
-rw-r--r--man/lpmove.man4
-rw-r--r--man/lpoptions.man.in4
-rw-r--r--man/lppasswd.man4
-rw-r--r--man/lpq.man4
-rw-r--r--man/lpr.man4
-rw-r--r--man/lprm.man4
-rw-r--r--man/lpstat.man4
-rw-r--r--man/mailto.conf.man4
-rw-r--r--man/mantohtml.c4
-rw-r--r--man/mime.convs.man4
-rw-r--r--man/mime.types.man4
-rw-r--r--man/ppdc.man4
-rw-r--r--man/ppdcfile.man4
-rw-r--r--man/ppdhtml.man4
-rw-r--r--man/ppdi.man4
-rw-r--r--man/ppdmerge.man4
-rw-r--r--man/ppdpo.man4
-rw-r--r--man/printers.conf.man4
-rw-r--r--man/rastertoescpx.man4
-rw-r--r--man/rastertopclx.man4
-rw-r--r--man/subscriptions.conf.man4
-rw-r--r--monitor/Makefile4
-rw-r--r--notifier/Makefile4
-rw-r--r--notifier/mailto.c4
-rw-r--r--notifier/rss.c4
-rw-r--r--packaging/cups.list.in86
-rw-r--r--packaging/cups.spec.in7
-rw-r--r--scheduler/Makefile4
-rw-r--r--scheduler/auth.c16
-rw-r--r--scheduler/auth.h4
-rw-r--r--scheduler/banners.c4
-rw-r--r--scheduler/cert.c8
-rw-r--r--scheduler/cert.h4
-rw-r--r--scheduler/classes.c4
-rw-r--r--scheduler/client.c8
-rw-r--r--scheduler/client.h4
-rw-r--r--scheduler/conf.c21
-rw-r--r--scheduler/conf.h10
-rw-r--r--scheduler/cups-deviced.c4
-rw-r--r--scheduler/cups-driverd.c4
-rw-r--r--scheduler/cups-lpd.c4
-rw-r--r--scheduler/cups-polld.c4
-rw-r--r--scheduler/cupsd.h4
-rw-r--r--scheduler/cupsfilter.c22
-rw-r--r--scheduler/dirsvc.c45
-rw-r--r--scheduler/dirsvc.h5
-rw-r--r--scheduler/env.c6
-rw-r--r--scheduler/filter.c6
-rw-r--r--scheduler/ipp.c142
-rw-r--r--scheduler/job.c449
-rw-r--r--scheduler/job.h4
-rw-r--r--scheduler/libcupsmime.exp4
-rw-r--r--scheduler/listen.c6
-rw-r--r--scheduler/log.c338
-rw-r--r--scheduler/main.c6
-rw-r--r--scheduler/mime.c152
-rw-r--r--scheduler/mime.h10
-rw-r--r--scheduler/policy.c6
-rw-r--r--scheduler/printers.c30
-rw-r--r--scheduler/printers.h4
-rw-r--r--scheduler/process.c4
-rw-r--r--scheduler/select.c4
-rw-r--r--scheduler/server.c4
-rw-r--r--scheduler/statbuf.c81
-rw-r--r--scheduler/statbuf.h8
-rw-r--r--scheduler/subscriptions.c6
-rw-r--r--scheduler/subscriptions.h4
-rw-r--r--scheduler/sysman.c346
-rw-r--r--scheduler/sysman.h5
-rw-r--r--scheduler/testmime.c4
-rw-r--r--scheduler/testspeed.c14
-rw-r--r--scheduler/type.c44
-rw-r--r--scheduler/util.c4
-rw-r--r--scheduler/util.h4
-rw-r--r--scripting/php/phpcups.c4
-rw-r--r--standards/Makefile4
-rw-r--r--standards/pwg5107.1.pdfbin0 -> 150688 bytes
-rw-r--r--standards/wd-ippstate10-20061107.pdfbin0 -> 97402 bytes
-rw-r--r--systemv/Makefile4
-rw-r--r--systemv/accept.c4
-rw-r--r--systemv/cupsaddsmb.c4
-rw-r--r--systemv/cupstestppd.c4
-rw-r--r--systemv/lpadmin.c4
-rw-r--r--systemv/lpinfo.c4
-rw-r--r--systemv/lpmove.c4
-rw-r--r--systemv/lpoptions.c4
-rw-r--r--systemv/lpstat.c4
-rw-r--r--templates/Makefile4
-rw-r--r--test/4.3-job-ops.test4
-rw-r--r--test/5.1-lpadmin.sh4
-rw-r--r--test/5.5-lp.sh4
-rw-r--r--test/5.6-lpr.sh4
-rw-r--r--test/5.7-lprm.sh4
-rw-r--r--test/5.8-cancel.sh4
-rw-r--r--test/Makefile4
-rw-r--r--test/ipptest.c4
-rwxr-xr-xtest/run-stp-tests.sh25
-rw-r--r--test/testfile.jpgbin598930 -> 204156 bytes
-rw-r--r--test/testfile.pdfbin80513 -> 279746 bytes
-rwxr-xr-xtools/checkglobals6
289 files changed, 6953 insertions, 1389 deletions
diff --git a/CHANGES-1.3.txt b/CHANGES-1.3.txt
index aa85f31d2..ba2785712 100644
--- a/CHANGES-1.3.txt
+++ b/CHANGES-1.3.txt
@@ -4,6 +4,8 @@ CHANGES-1.3.txt
CHANGES IN CUPS V1.3.8
- Documentation updates (STR #2785, STR #2861, STR #2862)
+ - The scheduler would crash if you started a printer that
+ pointed to a backend that did not exist (STR #2865)
- The ppdLocalize functions incorrectly mapped all generic
locales to country-specific locales.
- The cups-driverd program did not support Simplified Chinese
diff --git a/CHANGES.txt b/CHANGES.txt
index 5ada0f3be..410b57e12 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,8 +1,11 @@
-CHANGES.txt - 2008-06-17
+CHANGES.txt - 2008-06-25
------------------------
CHANGES IN CUPS V1.4b1
+ - The USB backend now uses libusb when available (STR #1575)
+ - Added ppdLocalizeAttr function to get the localized version
+ of an attribute.
- MIME types now support a priority() attribute (STR #2719)
- The standard MIME types are now installed in
DataDir/mime (STR #2719)
diff --git a/Makedefs.in b/Makedefs.in
index 27fc8351e..0e5068553 100644
--- a/Makedefs.in
+++ b/Makedefs.in
@@ -1,5 +1,5 @@
#
-# "$Id: Makedefs.in 7016 2007-10-10 22:07:51Z mike $"
+# "$Id: Makedefs.in 7687 2008-06-24 01:28:36Z mike $"
#
# Common makefile definitions for the Common UNIX Printing System (CUPS).
#
@@ -91,6 +91,7 @@ LIBPNG = @LIBPNG@
LIBSLP = @LIBSLP@
LIBGSSAPI = @LIBGSSAPI@
LIBTIFF = @LIBTIFF@
+LIBUSB = @LIBUSB@
LIBZ = @LIBZ@
#
@@ -279,5 +280,5 @@ DBUSDIR = @DBUSDIR@
#
-# End of "$Id: Makedefs.in 7016 2007-10-10 22:07:51Z mike $"
+# End of "$Id: Makedefs.in 7687 2008-06-24 01:28:36Z mike $"
#
diff --git a/Makefile b/Makefile
index 1c83cc513..67fd9d84f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6897 2007-08-30 06:11:59Z mike $"
+# "$Id: Makefile 7613 2008-05-22 23:27:52Z mike $"
#
# Top-level Makefile for the Common UNIX Printing System (CUPS).
#
@@ -325,5 +325,5 @@ dist: all
#
-# End of "$Id: Makefile 6897 2007-08-30 06:11:59Z mike $".
+# End of "$Id: Makefile 7613 2008-05-22 23:27:52Z mike $".
#
diff --git a/backend/Makefile b/backend/Makefile
index a5e1db3a7..a2d4b1ed0 100644
--- a/backend/Makefile
+++ b/backend/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $"
+# "$Id: Makefile 7687 2008-06-24 01:28:36Z mike $"
#
# Backend makefile for the Common UNIX Printing System (CUPS).
#
@@ -251,8 +251,8 @@ socket: socket.o ../cups/$(LIBCUPS) libbackend.a
usb: usb.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o usb usb.o libbackend.a $(BACKLIBS) $(LIBS)
-usb.o: usb.c usb-darwin.c usb-unix.c
+ $(CC) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) $(BACKLIBS) $(LIBS)
+usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c
#
@@ -263,5 +263,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $".
+# End of "$Id: Makefile 7687 2008-06-24 01:28:36Z mike $".
#
diff --git a/backend/backend-private.h b/backend/backend-private.h
index 84feb6b6a..b7912d59d 100644
--- a/backend/backend-private.h
+++ b/backend/backend-private.h
@@ -1,5 +1,5 @@
/*
- * "$Id: backend-private.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: backend-private.h 7586 2008-05-16 23:39:39Z mike $"
*
* Backend support definitions for the Common UNIX Printing System (CUPS).
*
@@ -272,5 +272,5 @@ extern int backendSNMPSupplies(int snmp_fd, http_addr_t *addr,
/*
- * End of "$Id: backend-private.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: backend-private.h 7586 2008-05-16 23:39:39Z mike $".
*/
diff --git a/backend/ieee1284.c b/backend/ieee1284.c
index 8b8579d80..ebbd5d18b 100644
--- a/backend/ieee1284.c
+++ b/backend/ieee1284.c
@@ -1,9 +1,9 @@
/*
- * "$Id: ieee1284.c 7019 2007-10-10 22:48:52Z mike $"
+ * "$Id: ieee1284.c 7687 2008-06-24 01:28:36Z mike $"
*
* IEEE-1284 support functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -442,5 +442,5 @@ backendGetMakeModel(
/*
- * End of "$Id: ieee1284.c 7019 2007-10-10 22:48:52Z mike $".
+ * End of "$Id: ieee1284.c 7687 2008-06-24 01:28:36Z mike $".
*/
diff --git a/backend/ipp.c b/backend/ipp.c
index 83c0dc669..9944220a2 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 7018 2007-10-10 22:14:03Z mike $"
+ * "$Id: ipp.c 7583 2008-05-16 17:47:16Z mike $"
*
* IPP backend for the Common UNIX Printing System (CUPS).
*
@@ -1818,5 +1818,5 @@ sigterm_handler(int sig) /* I - Signal */
/*
- * End of "$Id: ipp.c 7018 2007-10-10 22:14:03Z mike $".
+ * End of "$Id: ipp.c 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/backend/lpd.c b/backend/lpd.c
index e8233ab28..76123b32d 100644
--- a/backend/lpd.c
+++ b/backend/lpd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpd.c 6910 2007-09-04 20:34:29Z mike $"
+ * "$Id: lpd.c 7583 2008-05-16 17:47:16Z mike $"
*
* Line Printer Daemon backend for the Common UNIX Printing System (CUPS).
*
@@ -1378,5 +1378,5 @@ sigterm_handler(int sig) /* I - Signal */
/*
- * End of "$Id: lpd.c 6910 2007-09-04 20:34:29Z mike $".
+ * End of "$Id: lpd.c 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/backend/pap.c b/backend/pap.c
index f89047e1d..f0f194e73 100644
--- a/backend/pap.c
+++ b/backend/pap.c
@@ -1,5 +1,5 @@
/*
-* "$Id: pap.c 7010 2007-10-10 21:08:51Z mike $"
+* "$Id: pap.c 7318 2008-02-15 23:24:41Z mike $"
*
* Copyright 2004-2008 Apple Inc. All rights reserved.
*
diff --git a/backend/parallel.c b/backend/parallel.c
index 84addcb05..bba472095 100644
--- a/backend/parallel.c
+++ b/backend/parallel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: parallel.c 7019 2007-10-10 22:48:52Z mike $"
+ * "$Id: parallel.c 7343 2008-02-25 19:02:09Z mike $"
*
* Parallel port backend for the Common UNIX Printing System (CUPS).
*
@@ -678,5 +678,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: parallel.c 7019 2007-10-10 22:48:52Z mike $".
+ * End of "$Id: parallel.c 7343 2008-02-25 19:02:09Z mike $".
*/
diff --git a/backend/runloop.c b/backend/runloop.c
index fbb14fdab..03aa956fe 100644
--- a/backend/runloop.c
+++ b/backend/runloop.c
@@ -1,5 +1,5 @@
/*
- * "$Id: runloop.c 6834 2007-08-22 18:29:25Z mike $"
+ * "$Id: runloop.c 7647 2008-06-16 17:39:40Z mike $"
*
* Common run loop APIs for the Common UNIX Printing System (CUPS).
*
@@ -404,5 +404,5 @@ backendRunLoop(
/*
- * End of "$Id: runloop.c 6834 2007-08-22 18:29:25Z mike $".
+ * End of "$Id: runloop.c 7647 2008-06-16 17:39:40Z mike $".
*/
diff --git a/backend/scsi.c b/backend/scsi.c
index 548332772..7040d4bda 100644
--- a/backend/scsi.c
+++ b/backend/scsi.c
@@ -1,5 +1,5 @@
/*
- * "$Id: scsi.c 6834 2007-08-22 18:29:25Z mike $"
+ * "$Id: scsi.c 7193 2008-01-07 23:01:40Z mike $"
*
* SCSI printer backend for the Common UNIX Printing System (CUPS).
*
@@ -227,5 +227,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
- * End of "$Id: scsi.c 6834 2007-08-22 18:29:25Z mike $".
+ * End of "$Id: scsi.c 7193 2008-01-07 23:01:40Z mike $".
*/
diff --git a/backend/serial.c b/backend/serial.c
index 3ac7ff659..25dfc8c4f 100644
--- a/backend/serial.c
+++ b/backend/serial.c
@@ -1,5 +1,5 @@
/*
- * "$Id: serial.c 6910 2007-09-04 20:34:29Z mike $"
+ * "$Id: serial.c 7647 2008-06-16 17:39:40Z mike $"
*
* Serial port backend for the Common UNIX Printing System (CUPS).
*
@@ -1297,5 +1297,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: serial.c 6910 2007-09-04 20:34:29Z mike $".
+ * End of "$Id: serial.c 7647 2008-06-16 17:39:40Z mike $".
*/
diff --git a/backend/snmp.c b/backend/snmp.c
index 0364ee2a2..b7bafbf56 100644
--- a/backend/snmp.c
+++ b/backend/snmp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: snmp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: snmp.c 7506 2008-04-29 04:38:47Z mike $"
*
* SNMP discovery backend for the Common UNIX Printing System (CUPS).
*
@@ -1311,5 +1311,5 @@ update_cache(snmp_cache_t *device, /* I - Device */
/*
- * End of "$Id: snmp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: snmp.c 7506 2008-04-29 04:38:47Z mike $".
*/
diff --git a/backend/socket.c b/backend/socket.c
index 6f2c80ddf..5992fc5f7 100644
--- a/backend/socket.c
+++ b/backend/socket.c
@@ -1,5 +1,5 @@
/*
- * "$Id: socket.c 6910 2007-09-04 20:34:29Z mike $"
+ * "$Id: socket.c 7583 2008-05-16 17:47:16Z mike $"
*
* AppSocket backend for the Common UNIX Printing System (CUPS).
*
@@ -499,5 +499,5 @@ wait_bc(int device_fd, /* I - Socket */
/*
- * End of "$Id: socket.c 6910 2007-09-04 20:34:29Z mike $".
+ * End of "$Id: socket.c 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/backend/test1284.c b/backend/test1284.c
index 2f2766b42..5c9b99963 100644
--- a/backend/test1284.c
+++ b/backend/test1284.c
@@ -1,5 +1,5 @@
/*
- * "$Id: test1284.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: test1284.c 7465 2008-04-18 16:20:11Z mike $"
*
* IEEE-1284 support functions test program for the Common UNIX Printing
* System (CUPS).
@@ -83,5 +83,5 @@ main(int argc, /* I - Number of command-line args */
/*
- * End of "$Id: test1284.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: test1284.c 7465 2008-04-18 16:20:11Z mike $".
*/
diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c
index f9197173e..28d45f29f 100644
--- a/backend/usb-darwin.c
+++ b/backend/usb-darwin.c
@@ -1,5 +1,5 @@
/*
-* "$Id: usb-darwin.c 6993 2007-09-28 18:05:28Z mike $"
+* "$Id: usb-darwin.c 7460 2008-04-16 02:19:54Z mike $"
*
* Copyright 2005-2008 Apple Inc. All rights reserved.
*
@@ -2036,5 +2036,5 @@ static void get_device_id(cups_sc_status_t *status,
/*
- * End of "$Id: usb-darwin.c 6993 2007-09-28 18:05:28Z mike $".
+ * End of "$Id: usb-darwin.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
new file mode 100644
index 000000000..a2ec1fa57
--- /dev/null
+++ b/backend/usb-libusb.c
@@ -0,0 +1,680 @@
+/*
+ * "$Id$"
+ *
+ * Libusb interface code for the Common UNIX Printing System (CUPS).
+ *
+ * Copyright 2007-2008 by Apple Inc.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. 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
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ *
+ * Contents:
+ *
+ */
+
+/*
+ * Include necessary headers...
+ */
+
+#include <usb.h>
+
+
+/*
+ * Local types...
+ */
+
+typedef struct usb_printer_s /**** USB Printer Data ****/
+{
+ struct usb_device *device; /* Device info */
+ int conf, /* Configuration */
+ iface, /* Interface */
+ altset, /* Alternate setting */
+ write_endp, /* Write endpoint */
+ read_endp; /* Read endpoint */
+ struct usb_dev_handle *handle; /* Open handle to device */
+} usb_printer_t;
+
+typedef int (*usb_cb_t)(usb_printer_t *, const char *, const char *,
+ const void *);
+
+
+/*
+ * Local functions...
+ */
+
+static int close_device(usb_printer_t *printer);
+static usb_printer_t *find_device(usb_cb_t cb, const void *data);
+static int get_device_id(usb_printer_t *printer, char *buffer,
+ size_t bufsize);
+static int list_cb(usb_printer_t *printer, const char *device_uri,
+ const char *device_id, const void *data);
+static char *make_device_uri(usb_printer_t *printer,
+ const char *device_id,
+ char *uri, size_t uri_size);
+static int open_device(usb_printer_t *printer, int verbose);
+static int print_cb(usb_printer_t *printer, const char *device_uri,
+ const char *device_id, const void *data);
+
+
+/*
+ * 'list_devices()' - List the available printers.
+ */
+
+void
+list_devices(void)
+{
+ fputs("DEBUG: list_devices\n", stderr);
+ find_device(list_cb, NULL);
+}
+
+
+/*
+ * 'print_device()' - Print a file to a USB device.
+ */
+
+int /* O - Exit status */
+print_device(const char *uri, /* I - Device URI */
+ const char *hostname, /* I - Hostname/manufacturer */
+ const char *resource, /* I - Resource/modelname */
+ char *options, /* I - Device options/serial number */
+ int print_fd, /* I - File descriptor to print */
+ int copies, /* I - Copies to print */
+ int argc, /* I - Number of command-line arguments (6 or 7) */
+ char *argv[]) /* I - Command-line arguments */
+{
+ usb_printer_t *printer; /* Printer */
+ ssize_t bytes, /* Bytes read/written */
+ tbytes; /* Total bytes written */
+ char buffer[8192]; /* Print data buffer */
+ struct sigaction action; /* Actions for POSIX signals */
+ int read_endp, /* Read endpoint */
+ write_endp; /* Write endpoint */
+
+
+ fputs("DEBUG: print_device\n", stderr);
+
+ /*
+ * Connect to the printer...
+ */
+
+ while ((printer = find_device(print_cb, uri)) == NULL)
+ {
+ _cupsLangPuts(stderr,
+ _("INFO: Waiting for printer to become available...\n"));
+ sleep(5);
+ }
+
+ read_endp = printer->device->config[printer->conf].
+ interface[printer->iface].
+ altsetting[printer->altset].
+ endpoint[printer->read_endp].bEndpointAddress;
+ write_endp = printer->device->config[printer->conf].
+ interface[printer->iface].
+ altsetting[printer->altset].
+ endpoint[printer->write_endp].bEndpointAddress;
+
+ /*
+ * If we are printing data from a print driver on stdin, ignore SIGTERM
+ * so that the driver can finish out any page data, e.g. to eject the
+ * current page. We only do this for stdin printing as otherwise there
+ * is no way to cancel a raw print job...
+ */
+
+ if (!print_fd)
+ {
+ memset(&action, 0, sizeof(action));
+
+ sigemptyset(&action.sa_mask);
+ action.sa_handler = SIG_IGN;
+ sigaction(SIGTERM, &action, NULL);
+ }
+
+ tbytes = 0;
+
+ while (copies > 0 && tbytes >= 0)
+ {
+ copies --;
+
+ if (print_fd != 0)
+ {
+ fputs("PAGE: 1 1\n", stderr);
+ lseek(print_fd, 0, SEEK_SET);
+ }
+
+ /*
+ * TODO: Add side-channel and back-channel support, along with better
+ * error handling for writes.
+ */
+
+ while ((bytes = read(print_fd, buffer, sizeof(buffer))) > 0)
+ {
+ while (usb_bulk_write(printer->handle, write_endp, buffer, bytes,
+ 5000) < 0)
+ {
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to write %d bytes to printer!\n"),
+ (int)bytes);
+ tbytes = -1;
+ break;
+ }
+
+ tbytes += bytes;
+ }
+ }
+
+ /*
+ * Close our connection and return...
+ */
+
+ close_device(printer);
+
+ return (CUPS_BACKEND_OK);
+}
+
+
+/*
+ * 'close_device()' - Close the connection to the USB printer.
+ */
+
+static int /* I - 0 on success, -1 on failure */
+close_device(usb_printer_t *printer) /* I - Printer */
+{
+ if (printer->handle)
+ {
+ usb_close(printer->handle);
+ printer->handle = NULL;
+ }
+
+ return (0);
+}
+
+
+/*
+ * 'find_device()' - Find or enumerate USB printers.
+ */
+
+static usb_printer_t * /* O - Found printer */
+find_device(usb_cb_t cb, /* I - Callback function */
+ const void *data) /* I - User data for callback */
+{
+ struct usb_bus *bus; /* Current bus */
+ struct usb_device *device; /* Current device */
+ struct usb_config_descriptor *confptr;/* Pointer to current configuration */
+ struct usb_interface *ifaceptr; /* Pointer to current interface */
+ struct usb_interface_descriptor *altptr;
+ /* Pointer to current alternate setting */
+ struct usb_endpoint_descriptor *endpptr;
+ /* Pointer to current endpoint */
+ int conf, /* Current configuration */
+ iface, /* Current interface */
+ altset, /* Current alternate setting */
+ protocol, /* Current protocol */
+ endp, /* Current endpoint */
+ read_endp, /* Current read endpoint */
+ write_endp; /* Current write endpoint */
+ char device_id[1024],/* IEEE-1284 device ID */
+ device_uri[1024];
+ /* Device URI */
+ static usb_printer_t printer; /* Current printer */
+
+
+ /*
+ * Initialize libusb...
+ */
+
+ usb_init();
+ fprintf(stderr, "DEBUG: usb_find_busses=%d\n", usb_find_busses());
+ fprintf(stderr, "DEBUG: usb_find_devices=%d\n", usb_find_devices());
+
+ /*
+ * Then loop through the devices it found...
+ */
+
+ for (bus = usb_get_busses(); bus; bus = bus->next)
+ for (device = bus->devices; device; device = device->next)
+ {
+ /*
+ * Ignore devices with no configuration data and anything that is not
+ * a printer...
+ */
+
+ if (!device->config || !device->descriptor.idVendor ||
+ !device->descriptor.idProduct)
+ continue;
+
+ for (conf = 0, confptr = device->config;
+ conf < device->descriptor.bNumConfigurations;
+ conf ++, confptr ++)
+ for (iface = 0, ifaceptr = confptr->interface;
+ iface < confptr->bNumInterfaces;
+ iface ++, ifaceptr ++)
+ {
+ /*
+ * Some printers offer multiple interfaces...
+ */
+
+ protocol = 0;
+
+ for (altset = 0, altptr = ifaceptr->altsetting;
+ altset < ifaceptr->num_altsetting;
+ altset ++, altptr ++)
+ {
+ /*
+ * Currently we only support unidirectional and bidirectional
+ * printers. Future versions of this code will support the
+ * 1284.4 (packet mode) protocol as well.
+ */
+
+ if (altptr->bInterfaceClass != USB_CLASS_PRINTER ||
+ altptr->bInterfaceSubClass != 1 ||
+ (altptr->bInterfaceProtocol != 1 && /* Unidirectional */
+ altptr->bInterfaceProtocol != 2) || /* Bidirectional */
+ altptr->bInterfaceProtocol < protocol)
+ continue;
+
+ read_endp = -1;
+ write_endp = -1;
+
+ for (endp = 0, endpptr = altptr->endpoint;
+ endp < altptr->bNumEndpoints;
+ endp ++, endpptr ++)
+ if ((endpptr->bmAttributes & USB_ENDPOINT_TYPE_MASK) ==
+ USB_ENDPOINT_TYPE_BULK)
+ {
+ if (endpptr->bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ read_endp = endp;
+ else
+ write_endp = endp;
+ }
+
+ if (write_endp >= 0)
+ {
+ /*
+ * Save the best match so far...
+ */
+
+ protocol = altptr->bInterfaceProtocol;
+ printer.altset = altset;
+ printer.write_endp = write_endp;
+ printer.read_endp = read_endp;
+ }
+ }
+
+ if (protocol > 0)
+ {
+ printer.device = device;
+ printer.conf = conf;
+ printer.iface = iface;
+ printer.handle = NULL;
+
+ if (!open_device(&printer, data != NULL))
+ {
+ if (!get_device_id(&printer, device_id, sizeof(device_id)))
+ {
+ make_device_uri(&printer, device_id, device_uri,
+ sizeof(device_uri));
+
+ if ((*cb)(&printer, device_uri, device_id, data))
+ return (&printer);
+ }
+
+ close_device(&printer);
+ }
+ }
+ }
+ }
+
+ /*
+ * If we get this far without returning, then we haven't found a printer
+ * to print to...
+ */
+
+ return (NULL);
+}
+
+
+/*
+ * 'get_device_id()' - Get the IEEE-1284 device ID for the printer.
+ */
+
+static int /* O - 0 on success, -1 on error */
+get_device_id(usb_printer_t *printer, /* I - Printer */
+ char *buffer, /* I - String buffer */
+ size_t bufsize) /* I - Number of bytes in buffer */
+{
+ int length; /* Length of device ID */
+
+
+ if (usb_control_msg(printer->handle,
+ USB_TYPE_CLASS | USB_ENDPOINT_IN | USB_RECIP_INTERFACE,
+ 0, 0,
+ (printer->iface << 8) |
+ printer->device->config[printer->conf].
+ interface[printer->iface].
+ altsetting[printer->altset].bAlternateSetting,
+ buffer, bufsize, 5000) < 0)
+ {
+ *buffer = '\0';
+ return (-1);
+ }
+
+ /*
+ * Extract the length of the device ID string from the first two
+ * bytes. The 1284 spec says the length is stored MSB first...
+ */
+
+ length = (((unsigned)buffer[0] & 255) << 8) +
+ ((unsigned)buffer[1] & 255);
+
+ /*
+ * Check to see if the length is larger than our buffer; first
+ * assume that the vendor incorrectly implemented the 1284 spec,
+ * and then limit the length to the size of our buffer...
+ */
+
+ if (length > (bufsize - 2))
+ length = (((unsigned)buffer[1] & 255) << 8) +
+ ((unsigned)buffer[0] & 255);
+
+ if (length > (bufsize - 2))
+ length = bufsize - 2;
+
+ /*
+ * Copy the device ID text to the beginning of the buffer and
+ * nul-terminate.
+ */
+
+ memmove(buffer, buffer + 2, length);
+ buffer[length] = '\0';
+
+ return (0);
+}
+
+
+/*
+ * 'list_cb()' - List USB printers for discovery.
+ */
+
+static int /* O - 0 to continue, 1 to stop */
+list_cb(usb_printer_t *printer, /* I - Printer */
+ const char *device_uri, /* I - Device URI */
+ const char *device_id, /* I - IEEE-1284 device ID */
+ const void *data) /* I - User data (not used) */
+{
+ char make_model[1024]; /* Make and model */
+
+
+ /*
+ * Get the device URI and make/model strings...
+ */
+
+ backendGetMakeModel(device_id, make_model, sizeof(make_model));
+
+ /*
+ * Report the printer...
+ */
+
+ printf("direct %s \"%s\" \"%s USB\" \"%s\"\n", device_uri, make_model,
+ make_model, device_id);
+ fflush(stdout);
+
+ /*
+ * Keep going...
+ */
+
+ return (0);
+}
+
+
+/*
+ * 'make_device_uri()' - Create a device URI for a USB printer.
+ */
+
+static char * /* O - Device URI */
+make_device_uri(
+ usb_printer_t *printer, /* I - Printer */
+ const char *device_id, /* I - IEEE-1284 device ID */
+ char *uri, /* I - Device URI buffer */
+ size_t uri_size) /* I - Size of device URI buffer */
+{
+ char options[1024]; /* Device URI options */
+ int num_values; /* Number of 1284 parameters */
+ cups_option_t *values; /* 1284 parameters */
+ const char *mfg, /* Manufacturer */
+ *mdl, /* Model */
+ *des, /* Description */
+ *sern; /* Serial number */
+ char tempmfg[256], /* Temporary manufacturer string */
+ tempsern[256], /* Temporary serial number string */
+ *tempptr; /* Pointer into temp string */
+
+
+ /*
+ * Get the make, model, and serial numbers...
+ */
+
+ num_values = _ppdGet1284Values(device_id, &values);
+
+ if ((sern = cupsGetOption("SERIALNUMBER", num_values, values)) == NULL)
+ if ((sern = cupsGetOption("SERN", num_values, values)) == NULL)
+ if ((sern = cupsGetOption("SN", num_values, values)) == NULL)
+ {
+ /*
+ * Try getting the serial number from the device itself...
+ */
+
+ int length = usb_get_string_simple(printer->handle,
+ printer->device->descriptor.
+ iSerialNumber,
+ tempsern, sizeof(tempsern) - 1);
+ if (length > 0)
+ {
+ tempsern[length] = '\0';
+ sern = tempsern;
+ }
+ }
+
+ if ((mfg = cupsGetOption("MANUFACTURER", num_values, values)) == NULL)
+ mfg = cupsGetOption("MFG", num_values, values);
+
+ if ((mdl = cupsGetOption("MODEL", num_values, values)) == NULL)
+ mdl = cupsGetOption("MDL", num_values, values);
+
+#ifdef __APPLE__
+ /*
+ * To maintain compatibility with the original IOKit-based backend on Mac OS X,
+ * don't map manufacturer names...
+ */
+
+ if (!mfg)
+
+#else
+ /*
+ * To maintain compatibility with the original character device backend on
+ * Linux and *BSD, map manufacturer names...
+ */
+
+ if (mfg)
+ {
+ if (!strcasecmp(mfg, "Hewlett-Packard"))
+ mfg = "HP";
+ else if (!strcasecmp(mfg, "Lexmark International"))
+ mfg = "Lexmark";
+ }
+ else
+#endif /* __APPLE__ */
+ {
+ /*
+ * No manufacturer? Use the model string or description...
+ */
+
+ if (mdl)
+ _ppdNormalizeMakeAndModel(mdl, tempmfg, sizeof(tempmfg));
+ else if ((des = cupsGetOption("DESCRIPTION", num_values, values)) != NULL ||
+ (des = cupsGetOption("DES", num_values, values)) != NULL)
+ _ppdNormalizeMakeAndModel(des, tempmfg, sizeof(tempmfg));
+ else
+ strlcpy(tempmfg, "Unknown", sizeof(tempmfg));
+
+ if ((tempptr = strchr(tempmfg, ' ')) != NULL)
+ *tempptr = '\0';
+
+ mfg = tempmfg;
+ }
+
+ /*
+ * Generate the device URI from the manufacturer, model, serial number,
+ * and interface number...
+ */
+
+ if (sern)
+ {
+ if (printer->iface > 0)
+ snprintf(options, sizeof(options), "?serial=%s&interface=%d", sern,
+ printer->iface);
+ else
+ snprintf(options, sizeof(options), "?serial=%s", sern);
+ }
+ else if (printer->iface > 0)
+ snprintf(options, sizeof(options), "?interface=%d", printer->iface);
+ else
+ options[0] = '\0';
+
+ httpAssembleURIf(HTTP_URI_CODING_ALL, uri, uri_size, "usb", NULL, mfg, 0,
+ "/%s%s", mdl, options);
+
+ cupsFreeOptions(num_values, values);
+
+ return (uri);
+}
+
+
+/*
+ * 'open_device()' - Open a connection to the USB printer.
+ */
+
+static int /* O - 0 on success, -1 on error */
+open_device(usb_printer_t *printer, /* I - Printer */
+ int verbose) /* I - Update connecting-to-device state? */
+{
+ int number; /* Configuration/interface/altset numbers */
+
+
+ /*
+ * Return immediately if we are already connected...
+ */
+
+ if (printer->handle)
+ return (0);
+
+ /*
+ * Try opening the printer...
+ */
+
+ if ((printer->handle = usb_open(printer->device)) == NULL)
+ return (-1);
+
+ /*
+ * Then set the desired configuration...
+ */
+
+ if (verbose)
+ fputs("STATE: +connecting-to-device\n", stderr);
+
+ number = printer->device->config[printer->conf].bConfigurationValue;
+ while (usb_set_configuration(printer->handle, number) < 0)
+ {
+ if (errno != EBUSY)
+ fprintf(stderr, "DEBUG: Failed to set configuration %d for %04x:%04x\n",
+ number, printer->device->descriptor.idVendor,
+ printer->device->descriptor.idProduct);
+
+ goto error;
+ }
+
+ /*
+ * Claim interfaces as needed...
+ */
+
+ number = printer->device->config[printer->conf].interface[printer->iface].
+ altsetting[printer->altset].bInterfaceNumber;
+ while (usb_claim_interface(printer->handle, number) < 0)
+ {
+ if (errno != EBUSY)
+ fprintf(stderr, "DEBUG: Failed to claim interface %d for %04x:%04x\n",
+ number, printer->device->descriptor.idVendor,
+ printer->device->descriptor.idProduct);
+
+ goto error;
+ }
+
+ if (number != 0)
+ while (usb_claim_interface(printer->handle, 0) < 0)
+ {
+ if (errno != EBUSY)
+ fprintf(stderr, "DEBUG: Failed to claim interface 0 for %04x:%04x\n",
+ printer->device->descriptor.idVendor,
+ printer->device->descriptor.idProduct);
+
+ goto error;
+ }
+
+ /*
+ * Set alternate setting...
+ */
+
+ number = printer->device->config[printer->conf].interface[printer->iface].
+ altsetting[printer->altset].bAlternateSetting;
+ while (usb_set_altinterface(printer->handle, number) < 0)
+ {
+ if (errno != EBUSY)
+ fprintf(stderr,
+ "DEBUG: Failed to set alternate interface %d for %04x:%04x\n",
+ number, printer->device->descriptor.idVendor,
+ printer->device->descriptor.idProduct);
+
+ goto error;
+ }
+
+ if (verbose)
+ fputs("STATE: -connecting-to-device\n", stderr);
+
+ return (0);
+
+ /*
+ * If we get here, there was a hard error...
+ */
+
+ error:
+
+ if (verbose)
+ fputs("STATE: -connecting-to-device\n", stderr);
+
+ usb_close(printer->handle);
+ printer->handle = NULL;
+
+ return (-1);
+}
+
+
+/*
+ * 'print_cb()' - Find a USB printer for printing.
+ */
+
+static int /* O - 0 to continue, 1 to stop (found) */
+print_cb(usb_printer_t *printer, /* I - Printer */
+ const char *device_uri, /* I - Device URI */
+ const char *device_id, /* I - IEEE-1284 device ID */
+ const void *data) /* I - User data (make, model, S/N) */
+{
+ return (!strcmp((char *)data, device_uri));
+}
+
+
+/*
+ * End of "$Id$".
+ */
+
diff --git a/backend/usb-unix.c b/backend/usb-unix.c
index f18061065..5fbed6ecd 100644
--- a/backend/usb-unix.c
+++ b/backend/usb-unix.c
@@ -1,11 +1,11 @@
/*
- * "$Id: usb-unix.c 6910 2007-09-04 20:34:29Z mike $"
+ * "$Id: usb-unix.c 7687 2008-06-24 01:28:36Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
* This file is included from "usb.c" when compiled on UNIX/Linux.
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -28,7 +28,6 @@
* Include necessary headers.
*/
-#include "ieee1284.c"
#include <sys/select.h>
@@ -611,5 +610,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: usb-unix.c 6910 2007-09-04 20:34:29Z mike $".
+ * End of "$Id: usb-unix.c 7687 2008-06-24 01:28:36Z mike $".
*/
diff --git a/backend/usb.c b/backend/usb.c
index 396f95ac1..fddd21d2b 100644
--- a/backend/usb.c
+++ b/backend/usb.c
@@ -1,9 +1,9 @@
/*
- * "$Id: usb.c 6910 2007-09-04 20:34:29Z mike $"
+ * "$Id: usb.c 7687 2008-06-24 01:28:36Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -30,14 +30,7 @@
# include <ApplicationServices/ApplicationServices.h>
#endif /* __APPLE__ */
-#include <cups/backend.h>
-#include <cups/cups.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <cups/string.h>
-#include <cups/i18n.h>
-#include <signal.h>
+#include "backend-private.h"
#ifdef WIN32
# include <io.h>
@@ -62,7 +55,9 @@ int print_device(const char *uri, const char *hostname,
* Include the vendor-specific USB implementation...
*/
-#ifdef __APPLE__
+#ifdef HAVE_USB_H
+# include "usb-libusb.c"
+#elif defined(__APPLE__)
# include "usb-darwin.c"
#elif defined(__linux) || defined(__sun) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
# include "usb-unix.c"
@@ -266,5 +261,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
- * End of "$Id: usb.c 6910 2007-09-04 20:34:29Z mike $".
+ * End of "$Id: usb.c 7687 2008-06-24 01:28:36Z mike $".
*/
diff --git a/berkeley/Makefile b/berkeley/Makefile
index 7531c01dd..7852f245f 100644
--- a/berkeley/Makefile
+++ b/berkeley/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Berkeley commands makefile for the Common UNIX Printing System (CUPS).
#
@@ -153,5 +153,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/berkeley/lpc.c b/berkeley/lpc.c
index 947186782..a18eb0e71 100644
--- a/berkeley/lpc.c
+++ b/berkeley/lpc.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpc.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpc.c 7079 2007-11-30 01:58:31Z mike $"
*
* "lpc" command for the Common UNIX Printing System (CUPS).
*
@@ -450,5 +450,5 @@ show_status(http_t *http, /* I - HTTP connection to server */
/*
- * End of "$Id: lpc.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpc.c 7079 2007-11-30 01:58:31Z mike $".
*/
diff --git a/berkeley/lpq.c b/berkeley/lpq.c
index 7ffb2a8e9..db089867e 100644
--- a/berkeley/lpq.c
+++ b/berkeley/lpq.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpq.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpq.c 7460 2008-04-16 02:19:54Z mike $"
*
* "lpq" command for the Common UNIX Printing System (CUPS).
*
@@ -667,5 +667,5 @@ usage(void)
/*
- * End of "$Id: lpq.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpq.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/berkeley/lprm.c b/berkeley/lprm.c
index d00372c55..eeeca538b 100644
--- a/berkeley/lprm.c
+++ b/berkeley/lprm.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lprm.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lprm.c 7261 2008-01-28 23:09:31Z mike $"
*
* "lprm" command for the Common UNIX Printing System (CUPS).
*
@@ -223,5 +223,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: lprm.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lprm.c 7261 2008-01-28 23:09:31Z mike $".
*/
diff --git a/cgi-bin/Makefile b/cgi-bin/Makefile
index d0c0c0155..53911d845 100644
--- a/cgi-bin/Makefile
+++ b/cgi-bin/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# CGI makefile for the Common UNIX Printing System (CUPS).
#
@@ -398,5 +398,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c
index b54d27fdc..3f94b8826 100644
--- a/cgi-bin/admin.c
+++ b/cgi-bin/admin.c
@@ -1,5 +1,5 @@
/*
- * "$Id: admin.c 7012 2007-10-10 21:22:45Z mike $"
+ * "$Id: admin.c 7438 2008-04-09 03:27:37Z mike $"
*
* Administration CGI for the Common UNIX Printing System (CUPS).
*
@@ -3449,5 +3449,5 @@ match_string(const char *a, /* I - First string */
/*
- * End of "$Id: admin.c 7012 2007-10-10 21:22:45Z mike $".
+ * End of "$Id: admin.c 7438 2008-04-09 03:27:37Z mike $".
*/
diff --git a/cgi-bin/classes.c b/cgi-bin/classes.c
index 39e2d1562..09a3cc64c 100644
--- a/cgi-bin/classes.c
+++ b/cgi-bin/classes.c
@@ -1,5 +1,5 @@
/*
- * "$Id: classes.c 6889 2007-08-29 22:23:35Z mike $"
+ * "$Id: classes.c 7301 2008-02-13 00:27:52Z mike $"
*
* Class status CGI for the Common UNIX Printing System (CUPS).
*
@@ -432,5 +432,5 @@ show_class(http_t *http, /* I - Connection to server */
/*
- * End of "$Id: classes.c 6889 2007-08-29 22:23:35Z mike $".
+ * End of "$Id: classes.c 7301 2008-02-13 00:27:52Z mike $".
*/
diff --git a/cgi-bin/help-index.c b/cgi-bin/help-index.c
index f1d96832f..cb88aee17 100644
--- a/cgi-bin/help-index.c
+++ b/cgi-bin/help-index.c
@@ -1,5 +1,5 @@
/*
- * "$Id: help-index.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: help-index.c 7615 2008-05-25 07:17:07Z mike $"
*
* Online help index routines for the Common UNIX Printing System (CUPS).
*
@@ -1327,5 +1327,5 @@ help_sort_words(help_word_t *w1, /* I - Second word */
/*
- * End of "$Id: help-index.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: help-index.c 7615 2008-05-25 07:17:07Z mike $".
*/
diff --git a/cgi-bin/help-index.h b/cgi-bin/help-index.h
index d92abbea2..0e6b0b1c7 100644
--- a/cgi-bin/help-index.h
+++ b/cgi-bin/help-index.h
@@ -1,5 +1,5 @@
/*
- * "$Id: help-index.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: help-index.h 7615 2008-05-25 07:17:07Z mike $"
*
* Online help index definitions for the Common UNIX Printing System (CUPS).
*
@@ -71,5 +71,5 @@ extern help_index_t *helpSearchIndex(help_index_t *hi, const char *query,
#endif /* !_CUPS_HELP_INDEX_H_ */
/*
- * End of "$Id: help-index.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: help-index.h 7615 2008-05-25 07:17:07Z mike $".
*/
diff --git a/cgi-bin/ipp-var.c b/cgi-bin/ipp-var.c
index 79cfaf947..4ee9ef867 100644
--- a/cgi-bin/ipp-var.c
+++ b/cgi-bin/ipp-var.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp-var.c 6889 2007-08-29 22:23:35Z mike $"
+ * "$Id: ipp-var.c 7541 2008-05-05 21:22:58Z mike $"
*
* CGI <-> IPP variable routines for the Common UNIX Printing System (CUPS).
*
@@ -1384,5 +1384,5 @@ cgiText(const char *message) /* I - Message */
/*
- * End of "$Id: ipp-var.c 6889 2007-08-29 22:23:35Z mike $".
+ * End of "$Id: ipp-var.c 7541 2008-05-05 21:22:58Z mike $".
*/
diff --git a/cgi-bin/jobs.c b/cgi-bin/jobs.c
index 41d58a038..9af1dd744 100644
--- a/cgi-bin/jobs.c
+++ b/cgi-bin/jobs.c
@@ -1,5 +1,5 @@
/*
- * "$Id: jobs.c 6889 2007-08-29 22:23:35Z mike $"
+ * "$Id: jobs.c 7237 2008-01-22 01:38:39Z mike $"
*
* Job status CGI for the Common UNIX Printing System (CUPS).
*
@@ -209,5 +209,5 @@ do_job_op(http_t *http, /* I - HTTP connection */
/*
- * End of "$Id: jobs.c 6889 2007-08-29 22:23:35Z mike $".
+ * End of "$Id: jobs.c 7237 2008-01-22 01:38:39Z mike $".
*/
diff --git a/cgi-bin/printers.c b/cgi-bin/printers.c
index de4d769f5..f90632866 100644
--- a/cgi-bin/printers.c
+++ b/cgi-bin/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c 6889 2007-08-29 22:23:35Z mike $"
+ * "$Id: printers.c 7301 2008-02-13 00:27:52Z mike $"
*
* Printer status CGI for the Common UNIX Printing System (CUPS).
*
@@ -612,5 +612,5 @@ show_printer(http_t *http, /* I - Connection to server */
/*
- * End of "$Id: printers.c 6889 2007-08-29 22:23:35Z mike $".
+ * End of "$Id: printers.c 7301 2008-02-13 00:27:52Z mike $".
*/
diff --git a/cgi-bin/search.c b/cgi-bin/search.c
index 4dc725859..d8f023c28 100644
--- a/cgi-bin/search.c
+++ b/cgi-bin/search.c
@@ -1,5 +1,5 @@
/*
- * "$Id: search.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: search.c 7420 2008-04-01 20:32:00Z mike $"
*
* Search routines for the Common UNIX Printing System (CUPS).
*
@@ -370,5 +370,5 @@ cgiFreeSearch(void *search) /* I - Search context */
/*
- * End of "$Id: search.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: search.c 7420 2008-04-01 20:32:00Z mike $".
*/
diff --git a/cgi-bin/template.c b/cgi-bin/template.c
index 661f6395b..f20a7a950 100644
--- a/cgi-bin/template.c
+++ b/cgi-bin/template.c
@@ -1,5 +1,5 @@
/*
- * "$Id: template.c 6986 2007-09-25 15:34:52Z mike $"
+ * "$Id: template.c 7219 2008-01-14 22:00:02Z mike $"
*
* CGI template function.
*
@@ -706,5 +706,5 @@ cgi_puturi(const char *s, /* I - String to output */
/*
- * End of "$Id: template.c 6986 2007-09-25 15:34:52Z mike $".
+ * End of "$Id: template.c 7219 2008-01-14 22:00:02Z mike $".
*/
diff --git a/cgi-bin/var.c b/cgi-bin/var.c
index 596b24d0d..7ceb3ecaa 100644
--- a/cgi-bin/var.c
+++ b/cgi-bin/var.c
@@ -1,5 +1,5 @@
/*
- * "$Id: var.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: var.c 7460 2008-04-16 02:19:54Z mike $"
*
* CGI form variable and array functions.
*
@@ -1039,5 +1039,5 @@ cgi_unlink_file(void)
/*
- * End of "$Id: var.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: var.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/conf/Makefile b/conf/Makefile
index 4bb31c9ed..8d4ffbf2f 100644
--- a/conf/Makefile
+++ b/conf/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7670 2008-06-17 22:42:08Z mike $"
#
# Configuration file makefile for the Common UNIX Printing System (CUPS).
#
@@ -136,5 +136,5 @@ uninstall:
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7670 2008-06-17 22:42:08Z mike $".
#
diff --git a/conf/cupsd.conf.in b/conf/cupsd.conf.in
index 8939b8a4b..c48b70626 100644
--- a/conf/cupsd.conf.in
+++ b/conf/cupsd.conf.in
@@ -1,5 +1,5 @@
#
-# "$Id: cupsd.conf.in 6720 2007-07-25 00:40:03Z mike $"
+# "$Id: cupsd.conf.in 7680 2008-06-20 17:37:43Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler. See "man cupsd.conf" for a complete description of this
@@ -82,10 +82,9 @@ DefaultAuthType Basic
<Policy authenticated>
# Job-related operations must be done by the owner or an administrator...
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job CUPS-Get-Document>
+ AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
- AuthType Default
- Satisfy any
</Limit>
# All administration operations require an administrator to authenticate...
@@ -104,19 +103,17 @@ DefaultAuthType Basic
# Only the owner or an administrator can cancel or authenticate a job...
<Limit Cancel-Job CUPS-Authenticate-Job>
+ AuthType Default
Require user @OWNER @CUPS_DEFAULT_PRINTADMIN_AUTH@
Order deny,allow
- AuthType Default
- Satisfy any
</Limit>
<Limit All>
- Order deny,allow
AuthType Default
- Satisfy any
+ Order deny,allow
</Limit>
</Policy>
#
-# End of "$Id: cupsd.conf.in 6720 2007-07-25 00:40:03Z mike $".
+# End of "$Id: cupsd.conf.in 7680 2008-06-20 17:37:43Z mike $".
#
diff --git a/conf/mime.types b/conf/mime.types
index 1852d460c..83a079a77 100644
--- a/conf/mime.types
+++ b/conf/mime.types
@@ -1,5 +1,5 @@
#
-# "$Id: mime.types 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: mime.types 7670 2008-06-17 22:42:08Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -173,5 +173,5 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
application/octet-stream
#
-# End of "$Id: mime.types 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: mime.types 7670 2008-06-17 22:42:08Z mike $".
#
diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4
index 6e81ea526..a88692f35 100644
--- a/config-scripts/cups-common.m4
+++ b/config-scripts/cups-common.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $"
+dnl "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -83,14 +83,11 @@ LIBMALLOC=""
AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
if test x$enable_mallinfo = xyes; then
- AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
- if test "$ac_cv_lib_c_mallinfo" = "no"; then
- AC_CHECK_LIB(malloc,mallinfo,
- LIBS="$LIBS"
- LIBMALLOC="-lmalloc"
- AC_DEFINE(HAVE_MALLINFO),
- LIBS="$LIBS")
- fi
+ SAVELIBS="$LIBS"
+ LIBS=""
+ AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
+ LIBMALLOC="$LIBS"
+ LIBS="$SAVELIBS"
fi
AC_SUBST(LIBMALLOC)
@@ -170,6 +167,27 @@ AC_TRY_COMPILE([#include <time.h>],[struct tm t;
dnl See if we have the removefile(3) function for securely removing files
AC_CHECK_FUNCS(removefile)
+dnl See if we have libusb...
+AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing, default=auto])
+
+LIBUSB=""
+AC_SUBST(LIBUSB)
+
+if test x$enable_libusb = xyes; then
+ check_libusb=yes
+elif test x$enable_libusb != xno -a $uname != Darwin; then
+ check_libusb=yes
+else
+ check_libusb=no
+fi
+
+if test $check_libusb = yes; then
+ AC_CHECK_LIB(usb, usb_init,[
+ AC_CHECK_HEADER(usb.h,
+ AC_DEFINE(HAVE_USB_H)
+ LIBUSB="-lusb")])
+fi
+
dnl Flags for "ar" command...
case $uname in
Darwin* | *BSD*)
@@ -282,5 +300,5 @@ AC_SUBST(FONTS)
AC_SUBST(LEGACY_BACKENDS)
dnl
-dnl End of "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $".
+dnl End of "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z mike $".
dnl
diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4
index 51a5daa6f..8598aebb9 100644
--- a/config-scripts/cups-compiler.m4
+++ b/config-scripts/cups-compiler.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-compiler.m4 6975 2007-09-18 20:37:09Z mike $"
+dnl "$Id: cups-compiler.m4 7644 2008-06-16 17:15:47Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -543,5 +543,5 @@ case $uname in
esac
dnl
-dnl End of "$Id: cups-compiler.m4 6975 2007-09-18 20:37:09Z mike $".
+dnl End of "$Id: cups-compiler.m4 7644 2008-06-16 17:15:47Z mike $".
dnl
diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4
index f2cff3c2e..80287e806 100644
--- a/config-scripts/cups-defaults.m4
+++ b/config-scripts/cups-defaults.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-defaults.m4 6754 2007-08-01 19:00:07Z mike $"
+dnl "$Id: cups-defaults.m4 7649 2008-06-16 17:46:57Z mike $"
dnl
dnl Default cupsd configuration settings for the Common UNIX Printing System
dnl (CUPS).
@@ -395,5 +395,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
-dnl End of "$Id: cups-defaults.m4 6754 2007-08-01 19:00:07Z mike $".
+dnl End of "$Id: cups-defaults.m4 7649 2008-06-16 17:46:57Z mike $".
dnl
diff --git a/config-scripts/cups-dnssd.m4 b/config-scripts/cups-dnssd.m4
index 6ef18a702..79997d71f 100644
--- a/config-scripts/cups-dnssd.m4
+++ b/config-scripts/cups-dnssd.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id$"
+dnl "$Id: cups-dnssd.m4 7585 2008-05-16 23:13:47Z mike $"
dnl
dnl DNS Service Discovery (aka Bonjour) stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -52,5 +52,5 @@ AC_SUBST(DNSSDLIBS)
AC_SUBST(MDNS)
dnl
-dnl End of "$Id$".
+dnl End of "$Id: cups-dnssd.m4 7585 2008-05-16 23:13:47Z mike $".
dnl
diff --git a/config-scripts/cups-ldap.m4 b/config-scripts/cups-ldap.m4
index 14fd549d8..3f5adec23 100644
--- a/config-scripts/cups-ldap.m4
+++ b/config-scripts/cups-ldap.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-ldap.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-ldap.m4 7241 2008-01-22 22:34:52Z mike $"
dnl
dnl LDAP configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -36,5 +36,5 @@ AC_SUBST(LIBLDAP)
dnl
-dnl End of "$Id: cups-ldap.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-ldap.m4 7241 2008-01-22 22:34:52Z mike $".
dnl
diff --git a/config-scripts/cups-network.m4 b/config-scripts/cups-network.m4
index 347dc9a52..f36318575 100644
--- a/config-scripts/cups-network.m4
+++ b/config-scripts/cups-network.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-network.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-network.m4 7127 2007-12-17 18:05:32Z mike $"
dnl
dnl Networking stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -66,5 +66,5 @@ AC_CHECK_HEADERS(AppleTalk/at_proto.h,AC_DEFINE(HAVE_APPLETALK_AT_PROTO_H),,
[#include <netat/appletalk.h>])
dnl
-dnl End of "$Id: cups-network.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-network.m4 7127 2007-12-17 18:05:32Z mike $".
dnl
diff --git a/config-scripts/cups-pam.m4 b/config-scripts/cups-pam.m4
index b100053e8..9b49e7ad6 100644
--- a/config-scripts/cups-pam.m4
+++ b/config-scripts/cups-pam.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-pam.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-pam.m4 7149 2007-12-19 19:38:37Z mike $"
dnl
dnl PAM stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -86,5 +86,5 @@ AC_SUBST(PAMLIBS)
AC_SUBST(PAMMOD)
dnl
-dnl End of "$Id: cups-pam.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-pam.m4 7149 2007-12-19 19:38:37Z mike $".
dnl
diff --git a/config-scripts/cups-pdf.m4 b/config-scripts/cups-pdf.m4
index e980f1de5..eaa004f59 100644
--- a/config-scripts/cups-pdf.m4
+++ b/config-scripts/cups-pdf.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-pdf.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-pdf.m4 7449 2008-04-14 18:27:53Z mike $"
dnl
dnl PDF filter configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -47,5 +47,5 @@ fi
AC_SUBST(PDFTOPS)
dnl
-dnl End of "$Id: cups-pdf.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-pdf.m4 7449 2008-04-14 18:27:53Z mike $".
dnl
diff --git a/config-scripts/cups-sharedlibs.m4 b/config-scripts/cups-sharedlibs.m4
index f3962ab85..e4ca18dc0 100644
--- a/config-scripts/cups-sharedlibs.m4
+++ b/config-scripts/cups-sharedlibs.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-sharedlibs.m4 7630 2008-06-09 22:31:44Z mike $"
dnl
dnl Shared library support for the Common UNIX Printing System (CUPS).
dnl
@@ -244,5 +244,5 @@ AC_SUBST(IMGLIBS)
AC_SUBST(EXPORT_LDFLAGS)
dnl
-dnl End of "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-sharedlibs.m4 7630 2008-06-09 22:31:44Z mike $".
dnl
diff --git a/config-scripts/cups-slp.m4 b/config-scripts/cups-slp.m4
index cbeb48527..89f87468c 100644
--- a/config-scripts/cups-slp.m4
+++ b/config-scripts/cups-slp.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-slp.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-slp.m4 7241 2008-01-22 22:34:52Z mike $"
dnl
dnl OpenSLP configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -34,5 +34,5 @@ AC_SUBST(LIBSLP)
dnl
-dnl End of "$Id: cups-slp.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-slp.m4 7241 2008-01-22 22:34:52Z mike $".
dnl
diff --git a/config-scripts/cups-ssl.m4 b/config-scripts/cups-ssl.m4
index cacf94bef..f5335562c 100644
--- a/config-scripts/cups-ssl.m4
+++ b/config-scripts/cups-ssl.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-ssl.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $"
dnl
dnl OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -123,5 +123,5 @@ AC_SUBST(EXPORT_SSLLIBS)
dnl
-dnl End of "$Id: cups-ssl.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $".
dnl
diff --git a/config.h.in b/config.h.in
index 5e0c08af1..7c54621fc 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,5 +1,5 @@
/*
- * "$Id: config.h.in 6930 2007-09-08 00:28:06Z mike $"
+ * "$Id: config.h.in 7687 2008-06-24 01:28:36Z mike $"
*
* Configuration file for the Common UNIX Printing System (CUPS).
*
@@ -571,8 +571,15 @@
#undef HAVE_LRAND48
+/*
+ * Do we have libusb?
+ */
+
+#undef HAVE_USB_H
+
+
#endif /* !_CUPS_CONFIG_H_ */
/*
- * End of "$Id: config.h.in 6930 2007-09-08 00:28:06Z mike $".
+ * End of "$Id: config.h.in 7687 2008-06-24 01:28:36Z mike $".
*/
diff --git a/configure.in b/configure.in
index 769c53cb9..0425660be 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: configure.in 6717 2007-07-24 23:47:12Z mike $"
+dnl "$Id: configure.in 7600 2008-05-20 21:06:23Z mike $"
dnl
dnl Configuration script for the Common UNIX Printing System (CUPS).
dnl
@@ -75,5 +75,5 @@ AC_OUTPUT(Makedefs packaging/cups.list init/cups.sh init/cups-lpd cups-config
chmod +x cups-config
dnl
-dnl End of "$Id: configure.in 6717 2007-07-24 23:47:12Z mike $".
+dnl End of "$Id: configure.in 7600 2008-05-20 21:06:23Z mike $".
dnl
diff --git a/cups-config.in b/cups-config.in
index 7f53c60ba..1a68a12c7 100755
--- a/cups-config.in
+++ b/cups-config.in
@@ -1,6 +1,6 @@
#! /bin/sh
#
-# "$Id: cups-config.in 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: cups-config.in 7394 2008-03-21 23:41:43Z mike $"
#
# CUPS configuration utility.
#
@@ -151,5 +151,5 @@ while test $# -gt 0; do
done
#
-# End of "$Id: cups-config.in 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: cups-config.in 7394 2008-03-21 23:41:43Z mike $".
#
diff --git a/cups/Makefile b/cups/Makefile
index 3bf135002..6d4a68481 100644
--- a/cups/Makefile
+++ b/cups/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7589 2008-05-19 00:13:23Z mike $"
#
# API library Makefile for the Common UNIX Printing System (CUPS).
#
@@ -600,5 +600,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7589 2008-05-19 00:13:23Z mike $".
#
diff --git a/cups/adminutil.c b/cups/adminutil.c
index e3adf54b4..95393afd0 100644
--- a/cups/adminutil.c
+++ b/cups/adminutil.c
@@ -1,5 +1,5 @@
/*
- * "$Id: adminutil.c 6930 2007-09-08 00:28:06Z mike $"
+ * "$Id: adminutil.c 7576 2008-05-15 21:05:14Z mike $"
*
* Administration utility API definitions for the Common UNIX Printing
* System (CUPS).
@@ -2382,5 +2382,5 @@ write_option(cups_file_t *dstfp, /* I - PPD file */
/*
- * End of "$Id: adminutil.c 6930 2007-09-08 00:28:06Z mike $".
+ * End of "$Id: adminutil.c 7576 2008-05-15 21:05:14Z mike $".
*/
diff --git a/cups/adminutil.h b/cups/adminutil.h
index 8613a3be4..145dfa0f7 100644
--- a/cups/adminutil.h
+++ b/cups/adminutil.h
@@ -1,5 +1,5 @@
/*
- * "$Id: adminutil.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: adminutil.h 7026 2007-10-19 00:57:45Z mike $"
*
* Administration utility API definitions for the Common UNIX Printing
* System (CUPS).
@@ -77,5 +77,5 @@ extern int cupsAdminSetServerSettings(http_t *http,
#endif /* !_CUPS_ADMINUTIL_H_ */
/*
- * End of "$Id: adminutil.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: adminutil.h 7026 2007-10-19 00:57:45Z mike $".
*/
diff --git a/cups/api-array.header b/cups/api-array.header
index 34b796f4c..c4d28b464 100644
--- a/cups/api-array.header
+++ b/cups/api-array.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-array.header 7266 2008-01-29 02:15:29Z mike $"
Array API header for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-array.shtml b/cups/api-array.shtml
index ae2787fec..bacf48307 100644
--- a/cups/api-array.shtml
+++ b/cups/api-array.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-array.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
Array API introduction for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-cups.header b/cups/api-cups.header
index a706b55af..c95b611fd 100644
--- a/cups/api-cups.header
+++ b/cups/api-cups.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-cups.header 7279 2008-01-31 01:50:44Z mike $"
CUPS API header for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-cups.shtml b/cups/api-cups.shtml
index bc9a05286..7a653d4a8 100644
--- a/cups/api-cups.shtml
+++ b/cups/api-cups.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-cups.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-cups.shtml 7337 2008-02-22 04:44:04Z mike $"
CUPS API introduction for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-filedir.header b/cups/api-filedir.header
index 755311511..e4c7994f5 100644
--- a/cups/api-filedir.header
+++ b/cups/api-filedir.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-filedir.header 7279 2008-01-31 01:50:44Z mike $"
File and Directory API header for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-filedir.shtml b/cups/api-filedir.shtml
index 2b19efa8a..843812ce5 100644
--- a/cups/api-filedir.shtml
+++ b/cups/api-filedir.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-filedir.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-filedir.shtml 7279 2008-01-31 01:50:44Z mike $"
File and directory API introduction for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-filter.header b/cups/api-filter.header
index 368364ae8..bfe1a73aa 100644
--- a/cups/api-filter.header
+++ b/cups/api-filter.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-filter.header 7616 2008-05-28 00:34:13Z mike $"
Filter and backend programming header for the Common UNIX Printing System
(CUPS).
diff --git a/cups/api-filter.shtml b/cups/api-filter.shtml
index 2be3b2bf6..90d86342d 100644
--- a/cups/api-filter.shtml
+++ b/cups/api-filter.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-filter.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-filter.shtml 7677 2008-06-19 23:22:19Z mike $"
Filter and backend programming introduction for the Common UNIX Printing
System (CUPS).
@@ -185,10 +185,11 @@ prefix strings:</p>
<dt>ATTR: attribute=value [attribute=value]</dt>
<dd>Sets the named printer or job attribute(s). Typically this is used
to set the <code>marker-colors</code>, <code>marker-levels</code>,
- <code>marker-names</code>, <code>marker-types</code>,
- <code>printer-alert</code>, and <code>printer-alert-description</code>
- printer attributes. Standard <code>marker-types</code> values are
- listed in <a href='#TABLE1'>Table 1</a>.</dd>
+ <code>marker-message</code>, <code>marker-names</code>,
+ <code>marker-types</code>, <code>printer-alert</code>, and
+ <code>printer-alert-description</code> printer attributes. Standard
+ <code>marker-types</code> values are listed in <a href='#TABLE1'>Table
+ 1</a>.</dd>
<dt>CRIT: message</dt>
<dd>Sets the printer-state-message attribute and adds the specified
diff --git a/cups/api-httpipp.header b/cups/api-httpipp.header
index 03d5a8def..4bb1b3d57 100644
--- a/cups/api-httpipp.header
+++ b/cups/api-httpipp.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-httpipp.header 7258 2008-01-28 00:15:05Z mike $"
HTTP and IPP API header for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-httpipp.shtml b/cups/api-httpipp.shtml
index b755b7ded..ed559efaf 100644
--- a/cups/api-httpipp.shtml
+++ b/cups/api-httpipp.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-httpipp.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-httpipp.shtml 7684 2008-06-23 16:47:38Z mike $"
HTTP and IPP API introduction for the Common UNIX Printing System (CUPS).
@@ -293,7 +293,7 @@ tempfd = cupsTempFd(tempfile, sizeof(tempfile));
/* Loop for authentication */
do
{
- status = a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
+ status = <a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
if (status == HTTP_UNAUTHORIZED)
{
diff --git a/cups/api-ppd.header b/cups/api-ppd.header
index 60f6ff0d2..8ec2f7593 100644
--- a/cups/api-ppd.header
+++ b/cups/api-ppd.header
@@ -1,5 +1,5 @@
<!--
- "$Id$"
+ "$Id: api-ppd.header 7616 2008-05-28 00:34:13Z mike $"
PPD API header for the Common UNIX Printing System (CUPS).
diff --git a/cups/api-ppd.shtml b/cups/api-ppd.shtml
index c411c6844..ad393e106 100644
--- a/cups/api-ppd.shtml
+++ b/cups/api-ppd.shtml
@@ -1,5 +1,5 @@
<!--
- "$Id: api-ppd.shtml 6649 2007-07-11 21:46:42Z mike $"
+ "$Id: api-ppd.shtml 7616 2008-05-28 00:34:13Z mike $"
PPD API introduction for the Common UNIX Printing System (CUPS).
diff --git a/cups/array.c b/cups/array.c
index 19f97819d..ae45eeba0 100644
--- a/cups/array.c
+++ b/cups/array.c
@@ -1,5 +1,5 @@
/*
- * "$Id: array.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: array.c 7616 2008-05-28 00:34:13Z mike $"
*
* Sorted array routines for the Common UNIX Printing System (CUPS).
*
@@ -1142,5 +1142,5 @@ cups_array_find(cups_array_t *a, /* I - Array */
/*
- * End of "$Id: array.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: array.c 7616 2008-05-28 00:34:13Z mike $".
*/
diff --git a/cups/array.h b/cups/array.h
index ae5752195..029e2e996 100644
--- a/cups/array.h
+++ b/cups/array.h
@@ -1,5 +1,5 @@
/*
- * "$Id: array.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: array.h 7266 2008-01-29 02:15:29Z mike $"
*
* Sorted array definitions for the Common UNIX Printing System (CUPS).
*
@@ -80,5 +80,5 @@ extern void *cupsArrayUserData(cups_array_t *a) _CUPS_API_1_2;
#endif /* !_CUPS_ARRAY_H_ */
/*
- * End of "$Id: array.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: array.h 7266 2008-01-29 02:15:29Z mike $".
*/
diff --git a/cups/auth.c b/cups/auth.c
index d3d38b47e..561756215 100644
--- a/cups/auth.c
+++ b/cups/auth.c
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $"
+ * "$Id: auth.c 7460 2008-04-16 02:19:54Z mike $"
*
* Authentication functions for the Common UNIX Printing System (CUPS).
*
@@ -683,5 +683,5 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
/*
- * End of "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $".
+ * End of "$Id: auth.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/backchannel.c b/cups/backchannel.c
index 4eb1947ed..c2b53bb49 100644
--- a/cups/backchannel.c
+++ b/cups/backchannel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: backchannel.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: backchannel.c 7616 2008-05-28 00:34:13Z mike $"
*
* Backchannel functions for the Common UNIX Printing System (CUPS).
*
@@ -195,5 +195,5 @@ cups_setup(fd_set *set, /* I - Set for select() */
/*
- * End of "$Id: backchannel.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: backchannel.c 7616 2008-05-28 00:34:13Z mike $".
*/
diff --git a/cups/backend.c b/cups/backend.c
index db17bda70..477d38ecd 100644
--- a/cups/backend.c
+++ b/cups/backend.c
@@ -1,5 +1,5 @@
/*
- * "$Id: backend.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: backend.c 7583 2008-05-16 17:47:16Z mike $"
*
* Backend functions for the Common UNIX Printing System (CUPS).
*
@@ -58,5 +58,5 @@ cupsBackendDeviceURI(char **argv) /* I - Command-line arguments */
/*
- * End of "$Id: backend.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: backend.c 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/cups/backend.h b/cups/backend.h
index 67d5e8115..77bf57569 100644
--- a/cups/backend.h
+++ b/cups/backend.h
@@ -1,5 +1,5 @@
/*
- * "$Id: backend.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: backend.h 7282 2008-01-31 08:37:11Z mike $"
*
* Backend definitions for the Common UNIX Printing System (CUPS).
*
@@ -53,5 +53,5 @@ extern const char *cupsBackendDeviceURI(char **argv) _CUPS_API_1_2;
#endif /* !_CUPS_BACKEND_H_ */
/*
- * End of "$Id: backend.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: backend.h 7282 2008-01-31 08:37:11Z mike $".
*/
diff --git a/cups/cups.h b/cups/cups.h
index 6ef70f647..e80b1665a 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -1,5 +1,5 @@
/*
- * "$Id: cups.h 6870 2007-08-27 21:13:35Z mike $"
+ * "$Id: cups.h 7616 2008-05-28 00:34:13Z mike $"
*
* API definitions for the Common UNIX Printing System (CUPS).
*
@@ -308,5 +308,5 @@ extern http_status_t cupsWriteRequestData(http_t *http, const char *buffer,
#endif /* !_CUPS_CUPS_H_ */
/*
- * End of "$Id: cups.h 6870 2007-08-27 21:13:35Z mike $".
+ * End of "$Id: cups.h 7616 2008-05-28 00:34:13Z mike $".
*/
diff --git a/cups/debug.h b/cups/debug.h
index 756c4773d..8b91d9366 100644
--- a/cups/debug.h
+++ b/cups/debug.h
@@ -1,5 +1,5 @@
/*
- * "$Id: debug.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: debug.h 7460 2008-04-16 02:19:54Z mike $"
*
* Debugging macros for the Common UNIX Printing System (CUPS).
*
@@ -53,5 +53,5 @@ extern void _cups_debug_puts(const char *s);
#endif /* !_CUPS_DEBUG_H_ */
/*
- * End of "$Id: debug.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: debug.h 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/dest.c b/cups/dest.c
index a4c826413..185bd1a50 100644
--- a/cups/dest.c
+++ b/cups/dest.c
@@ -1,5 +1,5 @@
/*
- * "$Id: dest.c 6943 2007-09-10 23:00:33Z mike $"
+ * "$Id: dest.c 7460 2008-04-16 02:19:54Z mike $"
*
* User-defined destination (and option) support for the Common UNIX
* Printing System (CUPS).
@@ -1831,5 +1831,5 @@ cups_get_sdests(http_t *http, /* I - Connection to server or CUPS_HTTP_DEFA
/*
- * End of "$Id: dest.c 6943 2007-09-10 23:00:33Z mike $".
+ * End of "$Id: dest.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/dir.c b/cups/dir.c
index 1ef2046b7..b55cfc8c6 100644
--- a/cups/dir.c
+++ b/cups/dir.c
@@ -1,5 +1,5 @@
/*
- * "$Id$"
+ * "$Id: dir.c 7279 2008-01-31 01:50:44Z mike $"
*
* Public directory routines for the Common UNIX Printing System (CUPS).
*
@@ -469,5 +469,5 @@ cupsDirRewind(cups_dir_t *dp) /* I - Directory pointer */
#endif /* WIN32 */
/*
- * End of "$Id$".
+ * End of "$Id: dir.c 7279 2008-01-31 01:50:44Z mike $".
*/
diff --git a/cups/dir.h b/cups/dir.h
index 5a4f8d6d0..85dd8076a 100644
--- a/cups/dir.h
+++ b/cups/dir.h
@@ -1,5 +1,5 @@
/*
- * "$Id$"
+ * "$Id: dir.h 7026 2007-10-19 00:57:45Z mike $"
*
* Public directory definitions for the Common UNIX Printing System (CUPS).
*
@@ -65,5 +65,5 @@ extern void cupsDirRewind(cups_dir_t *dp) _CUPS_API_1_2;
#endif /* !_CUPS_DIR_H_ */
/*
- * End of "$Id$".
+ * End of "$Id: dir.h 7026 2007-10-19 00:57:45Z mike $".
*/
diff --git a/cups/emit.c b/cups/emit.c
index 636f3e7fb..3e78be539 100644
--- a/cups/emit.c
+++ b/cups/emit.c
@@ -1,5 +1,5 @@
/*
- * "$Id: emit.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: emit.c 7493 2008-04-24 00:10:34Z mike $"
*
* PPD code emission routines for the Common UNIX Printing System (CUPS).
*
@@ -1010,5 +1010,5 @@ ppd_handle_media(ppd_file_t *ppd)
/*
- * End of "$Id: emit.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: emit.c 7493 2008-04-24 00:10:34Z mike $".
*/
diff --git a/cups/encode.c b/cups/encode.c
index 335623eae..f486d7d07 100644
--- a/cups/encode.c
+++ b/cups/encode.c
@@ -1,5 +1,5 @@
/*
- * "$Id: encode.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: encode.c 7696 2008-06-26 00:54:42Z mike $"
*
* Option encoding routines for the Common UNIX Printing System (CUPS).
*
@@ -64,6 +64,7 @@ static const _ipp_option_t ipp_options[] =
{ 0, "gamma-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "hue", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "hue-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
+ { 0, "job-impressions", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-k-limit", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-page-limit", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-priority", IPP_TAG_INTEGER, IPP_TAG_JOB },
@@ -588,5 +589,5 @@ compare_ipp_options(_ipp_option_t *a, /* I - First option */
/*
- * End of "$Id: encode.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: encode.c 7696 2008-06-26 00:54:42Z mike $".
*/
diff --git a/cups/file.c b/cups/file.c
index d3726cf53..815e1d3c5 100644
--- a/cups/file.c
+++ b/cups/file.c
@@ -1,5 +1,5 @@
/*
- * "$Id: file.c 6962 2007-09-17 20:35:47Z mike $"
+ * "$Id: file.c 7672 2008-06-18 22:03:02Z mike $"
*
* File functions for the Common UNIX Printing System (CUPS).
*
@@ -119,6 +119,9 @@ struct _cups_file_s /**** CUPS file structure... ****/
Bytef cbuf[4096]; /* (De)compression buffer */
uLong crc; /* (De)compression CRC */
#endif /* HAVE_LIBZ */
+
+ char *printf_buffer; /* cupsFilePrintf buffer */
+ size_t printf_size; /* Size of cupsFilePrintf buffer */
};
@@ -242,6 +245,9 @@ cupsFileClose(cups_file_t *fp) /* I - CUPS file */
mode = fp->mode;
is_stdio = fp->is_stdio;
+ if (fp->printf_buffer)
+ free(fp->printf_buffer);
+
free(fp);
/*
@@ -1111,7 +1117,6 @@ cupsFilePrintf(cups_file_t *fp, /* I - CUPS file */
{
va_list ap; /* Argument list */
ssize_t bytes; /* Formatted size */
- char buf[8192]; /* Formatted text */
DEBUG_printf(("cupsFilePrintf(fp=%p, format=\"%s\", ...)\n", fp, format));
@@ -1119,16 +1124,48 @@ cupsFilePrintf(cups_file_t *fp, /* I - CUPS file */
if (!fp || !format || (fp->mode != 'w' && fp->mode != 's'))
return (-1);
+ if (!fp->printf_buffer)
+ {
+ /*
+ * Start with an 1k printf buffer...
+ */
+
+ if ((fp->printf_buffer = malloc(1024)) == NULL)
+ return (-1);
+
+ fp->printf_size = 1024;
+ }
+
va_start(ap, format);
- bytes = vsnprintf(buf, sizeof(buf), format, ap);
+ bytes = vsnprintf(fp->printf_buffer, fp->printf_size, format, ap);
va_end(ap);
- if (bytes >= sizeof(buf))
- return (-1);
+ if (bytes >= fp->printf_size)
+ {
+ /*
+ * Expand the printf buffer...
+ */
+
+ char *temp; /* Temporary buffer pointer */
+
+
+ if (bytes > 65535)
+ return (-1);
+
+ if ((temp = realloc(fp->printf_buffer, bytes + 1)) == NULL)
+ return (-1);
+
+ fp->printf_buffer = temp;
+ fp->printf_size = bytes + 1;
+
+ va_start(ap, format);
+ bytes = vsnprintf(fp->printf_buffer, fp->printf_size, format, ap);
+ va_end(ap);
+ }
if (fp->mode == 's')
{
- if (cups_write(fp, buf, bytes) < 0)
+ if (cups_write(fp, fp->printf_buffer, bytes) < 0)
return (-1);
fp->pos += bytes;
@@ -1150,14 +1187,14 @@ cupsFilePrintf(cups_file_t *fp, /* I - CUPS file */
{
#ifdef HAVE_LIBZ
if (fp->compressed)
- return (cups_compress(fp, buf, bytes));
+ return (cups_compress(fp, fp->printf_buffer, bytes));
else
#endif /* HAVE_LIBZ */
- return (cups_write(fp, buf, bytes));
+ return (cups_write(fp, fp->printf_buffer, bytes));
}
else
{
- memcpy(fp->ptr, buf, bytes);
+ memcpy(fp->ptr, fp->printf_buffer, bytes);
fp->ptr += bytes;
return (bytes);
}
@@ -2294,5 +2331,5 @@ cups_write(cups_file_t *fp, /* I - CUPS file */
/*
- * End of "$Id: file.c 6962 2007-09-17 20:35:47Z mike $".
+ * End of "$Id: file.c 7672 2008-06-18 22:03:02Z mike $".
*/
diff --git a/cups/file.h b/cups/file.h
index 05a32cc71..53356d68a 100644
--- a/cups/file.h
+++ b/cups/file.h
@@ -1,5 +1,5 @@
/*
- * "$Id: file.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: file.h 7460 2008-04-16 02:19:54Z mike $"
*
* Public file definitions for the Common UNIX Printing System (CUPS).
*
@@ -105,5 +105,5 @@ extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes) _C
#endif /* !_CUPS_FILE_H_ */
/*
- * End of "$Id: file.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: file.h 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/getputfile.c b/cups/getputfile.c
index 6af7b56b1..31dde6ca7 100644
--- a/cups/getputfile.c
+++ b/cups/getputfile.c
@@ -1,5 +1,5 @@
/*
- * "$Id: getputfile.c 6720 2007-07-25 00:40:03Z mike $"
+ * "$Id: getputfile.c 7359 2008-02-29 19:01:35Z mike $"
*
* Get/put file functions for the Common UNIX Printing System (CUPS).
*
@@ -494,5 +494,5 @@ cupsPutFile(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DE
/*
- * End of "$Id: getputfile.c 6720 2007-07-25 00:40:03Z mike $".
+ * End of "$Id: getputfile.c 7359 2008-02-29 19:01:35Z mike $".
*/
diff --git a/cups/globals.c b/cups/globals.c
index 6849f424c..d104f1b50 100644
--- a/cups/globals.c
+++ b/cups/globals.c
@@ -1,5 +1,5 @@
/*
- * "$Id: globals.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: globals.c 7460 2008-04-16 02:19:54Z mike $"
*
* Global variable access routines for the Common UNIX Printing System (CUPS).
*
@@ -205,5 +205,5 @@ _cupsGlobals(void)
/*
- * End of "$Id: globals.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: globals.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/globals.h b/cups/globals.h
index 2110dbcd2..1629ec35e 100644
--- a/cups/globals.h
+++ b/cups/globals.h
@@ -1,5 +1,5 @@
/*
- * "$Id: globals.h 6712 2007-07-24 00:13:05Z mike $"
+ * "$Id: globals.h 7583 2008-05-16 17:47:16Z mike $"
*
* Global variable definitions for the Common UNIX Printing System (CUPS).
*
@@ -156,5 +156,5 @@ extern void _cupsSetHTTPError(http_status_t status);
#endif /* !_CUPS_GLOBALS_H_ */
/*
- * End of "$Id: globals.h 6712 2007-07-24 00:13:05Z mike $".
+ * End of "$Id: globals.h 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c
index 6d645053c..effe2e6a8 100644
--- a/cups/http-addrlist.c
+++ b/cups/http-addrlist.c
@@ -1,5 +1,5 @@
/*
- * "$Id: http-addrlist.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: http-addrlist.c 7460 2008-04-16 02:19:54Z mike $"
*
* HTTP address list routines for the Common UNIX Printing System (CUPS).
*
@@ -599,5 +599,5 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
/*
- * End of "$Id: http-addrlist.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: http-addrlist.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/http-private.h b/cups/http-private.h
index c933f45cf..415f25a9e 100644
--- a/cups/http-private.h
+++ b/cups/http-private.h
@@ -1,5 +1,5 @@
/*
- * "$Id: http-private.h 6933 2007-09-10 16:45:59Z mike $"
+ * "$Id: http-private.h 7583 2008-05-16 17:47:16Z mike $"
*
* Private HTTP definitions for the Common UNIX Printing System (CUPS).
*
@@ -268,5 +268,5 @@ extern const char *_httpResolveURI(const char *uri, char *resolved_uri,
#endif /* !_CUPS_HTTP_PRIVATE_H_ */
/*
- * End of "$Id: http-private.h 6933 2007-09-10 16:45:59Z mike $".
+ * End of "$Id: http-private.h 7583 2008-05-16 17:47:16Z mike $".
*/
diff --git a/cups/http.c b/cups/http.c
index b70139108..8baf29119 100644
--- a/cups/http.c
+++ b/cups/http.c
@@ -1,5 +1,5 @@
/*
- * "$Id: http.c 6724 2007-07-25 20:39:33Z mike $"
+ * "$Id: http.c 7661 2008-06-16 21:46:51Z mike $"
*
* HTTP routines for the Common UNIX Printing System (CUPS).
*
@@ -3239,5 +3239,5 @@ http_write_ssl(http_t *http, /* I - Connection to server */
/*
- * End of "$Id: http.c 6724 2007-07-25 20:39:33Z mike $".
+ * End of "$Id: http.c 7661 2008-06-16 21:46:51Z mike $".
*/
diff --git a/cups/http.h b/cups/http.h
index 552bab98a..169a1575c 100644
--- a/cups/http.h
+++ b/cups/http.h
@@ -1,5 +1,5 @@
/*
- * "$Id: http.h 6722 2007-07-25 17:19:09Z mike $"
+ * "$Id: http.h 7026 2007-10-19 00:57:45Z mike $"
*
* Hyper-Text Transport Protocol definitions for the Common UNIX Printing
* System (CUPS).
@@ -447,5 +447,5 @@ extern void httpSetAuthString(http_t *http, const char *scheme,
#endif /* !_CUPS_HTTP_H_ */
/*
- * End of "$Id: http.h 6722 2007-07-25 17:19:09Z mike $".
+ * End of "$Id: http.h 7026 2007-10-19 00:57:45Z mike $".
*/
diff --git a/cups/i18n.h b/cups/i18n.h
index 71eb9f64d..2329de8ee 100644
--- a/cups/i18n.h
+++ b/cups/i18n.h
@@ -1,5 +1,5 @@
/*
- * "$Id: i18n.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: i18n.h 7363 2008-03-03 22:19:24Z mike $"
*
* (Private) localization support for the Common UNIX Printing System (CUPS).
*
@@ -111,5 +111,5 @@ extern void _cupsSetLocale(char *argv[]);
#endif /* !_CUPS_I18N_H_ */
/*
- * End of "$Id: i18n.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: i18n.h 7363 2008-03-03 22:19:24Z mike $".
*/
diff --git a/cups/ipp-private.h b/cups/ipp-private.h
index 0083d2a38..2d1fd955f 100644
--- a/cups/ipp-private.h
+++ b/cups/ipp-private.h
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp-private.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: ipp-private.h 7259 2008-01-28 22:26:04Z mike $"
*
* Private IPP definitions for the Common UNIX Printing System (CUPS).
*
@@ -66,5 +66,5 @@ extern void _ippFreeAttr(ipp_attribute_t *);
#endif /* !_CUPS_IPP_H_ */
/*
- * End of "$Id: ipp-private.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: ipp-private.h 7259 2008-01-28 22:26:04Z mike $".
*/
diff --git a/cups/ipp-support.c b/cups/ipp-support.c
index 945dc4f63..47194d133 100644
--- a/cups/ipp-support.c
+++ b/cups/ipp-support.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp-support.c 6879 2007-08-29 20:26:50Z mike $"
+ * "$Id: ipp-support.c 7460 2008-04-16 02:19:54Z mike $"
*
* Internet Printing Protocol support functions for the Common UNIX
* Printing System (CUPS).
@@ -371,5 +371,5 @@ ippSetPort(int p) /* I - Port number to use */
/*
- * End of "$Id: ipp-support.c 6879 2007-08-29 20:26:50Z mike $".
+ * End of "$Id: ipp-support.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/ipp.c b/cups/ipp.c
index 0749ec2a1..d528b6a54 100644
--- a/cups/ipp.c
+++ b/cups/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: ipp.c 7463 2008-04-17 00:24:25Z mike $"
*
* Internet Printing Protocol support functions for the Common UNIX
* Printing System (CUPS).
@@ -2908,5 +2908,5 @@ _ipp_free_attr(ipp_attribute_t *attr) /* I - Attribute to free */
/*
- * End of "$Id: ipp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: ipp.c 7463 2008-04-17 00:24:25Z mike $".
*/
diff --git a/cups/ipp.h b/cups/ipp.h
index 2a36fe35b..9073c5775 100644
--- a/cups/ipp.h
+++ b/cups/ipp.h
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.h 6879 2007-08-29 20:26:50Z mike $"
+ * "$Id: ipp.h 7257 2008-01-25 02:42:47Z mike $"
*
* Internet Printing Protocol definitions for the Common UNIX Printing
* System (CUPS).
@@ -494,5 +494,5 @@ extern ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, int blocking,
#endif /* !_CUPS_IPP_H_ */
/*
- * End of "$Id: ipp.h 6879 2007-08-29 20:26:50Z mike $".
+ * End of "$Id: ipp.h 7257 2008-01-25 02:42:47Z mike $".
*/
diff --git a/cups/langprintf.c b/cups/langprintf.c
index afb189c57..089eb4859 100644
--- a/cups/langprintf.c
+++ b/cups/langprintf.c
@@ -1,5 +1,5 @@
/*
- * "$Id: langprintf.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: langprintf.c 7193 2008-01-07 23:01:40Z mike $"
*
* Localized printf/puts functions for the Common UNIX Printing
* System (CUPS).
@@ -272,5 +272,5 @@ _cupsSetLocale(char *argv[]) /* IO - Command-line arguments */
/*
- * End of "$Id: langprintf.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: langprintf.c 7193 2008-01-07 23:01:40Z mike $".
*/
diff --git a/cups/language.c b/cups/language.c
index 2949b3507..5f2083108 100644
--- a/cups/language.c
+++ b/cups/language.c
@@ -1,5 +1,5 @@
/*
- * "$Id: language.c 6916 2007-09-05 21:14:08Z mike $"
+ * "$Id: language.c 7558 2008-05-12 23:46:44Z mike $"
*
* I18N/language support for the Common UNIX Printing System (CUPS).
*
@@ -1320,5 +1320,5 @@ cups_unquote(char *d, /* O - Unquoted string */
/*
- * End of "$Id: language.c 6916 2007-09-05 21:14:08Z mike $".
+ * End of "$Id: language.c 7558 2008-05-12 23:46:44Z mike $".
*/
diff --git a/cups/libcups.exp b/cups/libcups.exp
index ff0dd0542..20c66feff 100644
--- a/cups/libcups.exp
+++ b/cups/libcups.exp
@@ -319,6 +319,7 @@ _ppdFirstOption
_ppdIsMarked
_ppdLastError
_ppdLocalize
+_ppdLocalizeAttr
_ppdLocalizeIPPReason
_ppdLocalizeMarkerName
_ppdMarkDefaults
diff --git a/cups/localize.c b/cups/localize.c
index 551dde98e..7a98607de 100644
--- a/cups/localize.c
+++ b/cups/localize.c
@@ -1,5 +1,5 @@
/*
- * "$Id: localize.c 7363 2008-03-03 22:19:24Z mike $"
+ * "$Id: localize.c 7679 2008-06-19 23:37:45Z mike $"
*
* PPD localization routines for the Common UNIX Printing System (CUPS).
*
@@ -26,6 +26,7 @@
* Contents:
*
* ppdLocalize() - Localize the PPD file to the current locale.
+ * ppdLocalizeAttr() - Localize an attribute.
* ppdLocalizeIPPReason() - Get the localized version of a cupsIPPReason
* attribute.
* ppdLocalizeMarkerName() - Get the localized version of a marker-names
@@ -196,6 +197,45 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
/*
+ * 'ppdLocalizeAttr()' - Localize an attribute.
+ *
+ * This function uses the current locale to find the localized attribute for
+ * the given main and option keywords. If no localized version of the
+ * attribute exists for the current locale, the unlocalized version is returned.
+ */
+
+ppd_attr_t * /* O - Localized attribute or @code NULL@ if none exists */
+ppdLocalizeAttr(ppd_file_t *ppd, /* I - PPD file */
+ const char *keyword, /* I - Main keyword */
+ const char *spec) /* I - Option keyword or @code NULL@ for none */
+{
+ ppd_attr_t *locattr; /* Localized attribute */
+ char ll_CC[6]; /* Language + country locale */
+
+
+ /*
+ * Get the default language...
+ */
+
+ ppd_ll_CC(ll_CC, sizeof(ll_CC));
+
+ /*
+ * Find the localized attribute...
+ */
+
+ if (spec)
+ locattr = _ppdLocalizedAttr(ppd, keyword, spec, ll_CC);
+ else
+ locattr = _ppdLocalizedAttr(ppd, "Translation", keyword, ll_CC);
+
+ if (!locattr)
+ locattr = ppdFindAttr(ppd, keyword, spec);
+
+ return (locattr);
+}
+
+
+/*
* 'ppdLocalizeIPPReason()' - Get the localized version of a cupsIPPReason
* attribute.
*
@@ -666,5 +706,5 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
/*
- * End of "$Id: localize.c 7363 2008-03-03 22:19:24Z mike $".
+ * End of "$Id: localize.c 7679 2008-06-19 23:37:45Z mike $".
*/
diff --git a/cups/mark.c b/cups/mark.c
index 7b018e609..91de0951c 100644
--- a/cups/mark.c
+++ b/cups/mark.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mark.c 7278 2008-01-31 01:23:09Z mike $"
+ * "$Id: mark.c 7605 2008-05-21 00:36:25Z mike $"
*
* Option marking routines for the Common UNIX Printing System (CUPS).
*
@@ -1136,5 +1136,5 @@ ppd_mark_choices(ppd_file_t *ppd, /* I - PPD file */
/*
- * End of "$Id: mark.c 7278 2008-01-31 01:23:09Z mike $".
+ * End of "$Id: mark.c 7605 2008-05-21 00:36:25Z mike $".
*/
diff --git a/cups/notify.c b/cups/notify.c
index 03a382e6d..cbfe5f070 100644
--- a/cups/notify.c
+++ b/cups/notify.c
@@ -1,5 +1,5 @@
/*
- * "$Id: notify.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: notify.c 7337 2008-02-22 04:44:04Z mike $"
*
* Notification routines for the Common UNIX Printing System (CUPS).
*
@@ -198,5 +198,5 @@ cupsNotifyText(cups_lang_t *lang, /* I - Language data */
/*
- * End of "$Id: notify.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: notify.c 7337 2008-02-22 04:44:04Z mike $".
*/
diff --git a/cups/options.c b/cups/options.c
index 3e4db23be..f1f36df26 100644
--- a/cups/options.c
+++ b/cups/options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: options.c 7278 2008-01-31 01:23:09Z mike $"
+ * "$Id: options.c 7589 2008-05-19 00:13:23Z mike $"
*
* Option routines for the Common UNIX Printing System (CUPS).
*
@@ -448,5 +448,5 @@ cupsRemoveOption(
/*
- * End of "$Id: options.c 7278 2008-01-31 01:23:09Z mike $".
+ * End of "$Id: options.c 7589 2008-05-19 00:13:23Z mike $".
*/
diff --git a/cups/ppd.c b/cups/ppd.c
index 91de6a9b4..cbe20558f 100644
--- a/cups/ppd.c
+++ b/cups/ppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ppd.c 6937 2007-09-10 21:13:31Z mike $"
+ * "$Id: ppd.c 7552 2008-05-12 17:42:15Z mike $"
*
* PPD file routines for the Common UNIX Printing System (CUPS).
*
@@ -3169,5 +3169,5 @@ ppd_read(cups_file_t *fp, /* I - File to read from */
/*
- * End of "$Id: ppd.c 6937 2007-09-10 21:13:31Z mike $".
+ * End of "$Id: ppd.c 7552 2008-05-12 17:42:15Z mike $".
*/
diff --git a/cups/ppd.h b/cups/ppd.h
index c99981793..8396e61e4 100644
--- a/cups/ppd.h
+++ b/cups/ppd.h
@@ -1,5 +1,5 @@
/*
- * "$Id: ppd.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: ppd.h 7679 2008-06-19 23:37:45Z mike $"
*
* PostScript Printer Description definitions for the Common UNIX Printing
* System (CUPS).
@@ -399,6 +399,8 @@ extern const char *ppdLocalizeIPPReason(ppd_file_t *ppd,
size_t bufsize) _CUPS_API_1_3;
/**** New in CUPS 1.4 ****/
+extern ppd_attr_t *ppdLocalizeAttr(ppd_file_t *ppd, const char *keyword,
+ const char *spec);
extern const char *ppdLocalizeMarkerName(ppd_file_t *ppd,
const char *name) _CUPS_API_1_4;
@@ -413,5 +415,5 @@ extern const char *ppdLocalizeMarkerName(ppd_file_t *ppd,
#endif /* !_CUPS_PPD_H_ */
/*
- * End of "$Id: ppd.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: ppd.h 7679 2008-06-19 23:37:45Z mike $".
*/
diff --git a/cups/request.c b/cups/request.c
index e3465def0..36b02b912 100644
--- a/cups/request.c
+++ b/cups/request.c
@@ -1,5 +1,5 @@
/*
- * "$Id: request.c 6879 2007-08-29 20:26:50Z mike $"
+ * "$Id: request.c 7460 2008-04-16 02:19:54Z mike $"
*
* IPP utilities for the Common UNIX Printing System (CUPS).
*
@@ -824,5 +824,5 @@ _cupsSetHTTPError(http_status_t status) /* I - HTTP status code */
/*
- * End of "$Id: request.c 6879 2007-08-29 20:26:50Z mike $".
+ * End of "$Id: request.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/sidechannel.c b/cups/sidechannel.c
index 9a009e969..bbb8dab02 100644
--- a/cups/sidechannel.c
+++ b/cups/sidechannel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: sidechannel.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: sidechannel.c 7594 2008-05-19 23:16:03Z mike $"
*
* Side-channel API code for the Common UNIX Printing System (CUPS).
*
@@ -552,5 +552,5 @@ cupsSideChannelWrite(
/*
- * End of "$Id: sidechannel.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: sidechannel.c 7594 2008-05-19 23:16:03Z mike $".
*/
diff --git a/cups/sidechannel.h b/cups/sidechannel.h
index 3a8692c1c..f69259ebe 100644
--- a/cups/sidechannel.h
+++ b/cups/sidechannel.h
@@ -1,5 +1,5 @@
/*
- * "$Id: sidechannel.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: sidechannel.h 7616 2008-05-28 00:34:13Z mike $"
*
* Side-channel API definitions for the Common UNIX Printing System (CUPS).
*
@@ -131,5 +131,5 @@ extern cups_sc_status_t cupsSideChannelSNMPWalk(const char *oid, double timeout,
#endif /* !_CUPS_SIDECHANNEL_H_ */
/*
- * End of "$Id: sidechannel.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: sidechannel.h 7616 2008-05-28 00:34:13Z mike $".
*/
diff --git a/cups/string.c b/cups/string.c
index c3ec0ef6b..bd7d9cc16 100644
--- a/cups/string.c
+++ b/cups/string.c
@@ -1,5 +1,5 @@
/*
- * "$Id: string.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: string.c 7460 2008-04-16 02:19:54Z mike $"
*
* String functions for the Common UNIX Printing System (CUPS).
*
@@ -734,5 +734,5 @@ compare_sp_items(_cups_sp_item_t *a, /* I - First item */
/*
- * End of "$Id: string.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: string.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/cups/tempfile.c b/cups/tempfile.c
index f25886461..6dea52b10 100644
--- a/cups/tempfile.c
+++ b/cups/tempfile.c
@@ -1,5 +1,5 @@
/*
- * "$Id: tempfile.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: tempfile.c 7337 2008-02-22 04:44:04Z mike $"
*
* Temp file utilities for the Common UNIX Printing System (CUPS).
*
@@ -231,5 +231,5 @@ cupsTempFile2(char *filename, /* I - Pointer to buffer */
/*
- * End of "$Id: tempfile.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: tempfile.c 7337 2008-02-22 04:44:04Z mike $".
*/
diff --git a/cups/test.ppd b/cups/test.ppd
index 1b58a5231..14d631283 100644
--- a/cups/test.ppd
+++ b/cups/test.ppd
@@ -1,6 +1,6 @@
*PPD-Adobe: "4.3"
*%
-*% "$Id: test.ppd 6795 2007-08-15 18:02:26Z mike $"
+*% "$Id: test.ppd 7582 2008-05-16 03:13:18Z mike $"
*%
*% Test PPD file for the Common UNIX Printing System (CUPS).
*%
@@ -206,5 +206,5 @@ help:anchor='foo'%20bookID=Vendor%20Help
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Standard ROM
*%
-*% End of "$Id: test.ppd 6795 2007-08-15 18:02:26Z mike $".
+*% End of "$Id: test.ppd 7582 2008-05-16 03:13:18Z mike $".
*%
diff --git a/cups/testfile.c b/cups/testfile.c
index 2140765c9..117b3c9e5 100644
--- a/cups/testfile.c
+++ b/cups/testfile.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testfile.c 6962 2007-09-17 20:35:47Z mike $"
+ * "$Id: testfile.c 7560 2008-05-13 06:34:04Z mike $"
*
* File test program for the Common UNIX Printing System (CUPS).
*
@@ -815,5 +815,5 @@ read_write_tests(int compression) /* I - Use compression? */
/*
- * End of "$Id: testfile.c 6962 2007-09-17 20:35:47Z mike $".
+ * End of "$Id: testfile.c 7560 2008-05-13 06:34:04Z mike $".
*/
diff --git a/cups/testhttp.c b/cups/testhttp.c
index fa9282f4a..b445bf9d6 100644
--- a/cups/testhttp.c
+++ b/cups/testhttp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testhttp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testhttp.c 7685 2008-06-23 16:49:18Z mike $"
*
* HTTP test program for the Common UNIX Printing System (CUPS).
*
@@ -301,7 +301,7 @@ main(int argc, /* I - Number of command-line arguments */
* httpAddrGetList()
*/
- fputs("httpAddrGetList(): ", stdout);
+ printf("httpAddrGetList(%s): ", hostname);
addrlist = httpAddrGetList(hostname, AF_UNSPEC, NULL);
if (addrlist)
@@ -526,5 +526,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: testhttp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: testhttp.c 7685 2008-06-23 16:49:18Z mike $".
*/
diff --git a/cups/testi18n.c b/cups/testi18n.c
index c6654d62e..b18b64668 100644
--- a/cups/testi18n.c
+++ b/cups/testi18n.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testi18n.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testi18n.c 7560 2008-05-13 06:34:04Z mike $"
*
* Internationalization test for Common UNIX Printing System (CUPS).
*
@@ -548,5 +548,5 @@ print_utf8(const char *msg, /* I - Message String */
/*
- * End of "$Id: testi18n.c 6649 2007-07-11 21:46:42Z mike $"
+ * End of "$Id: testi18n.c 7560 2008-05-13 06:34:04Z mike $"
*/
diff --git a/cups/testppd.c b/cups/testppd.c
index 6772970b8..3c8a8dc6b 100644
--- a/cups/testppd.c
+++ b/cups/testppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testppd.c 6936 2007-09-10 18:15:36Z mike $"
+ * "$Id: testppd.c 7633 2008-06-10 23:07:29Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
@@ -468,5 +468,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: testppd.c 6936 2007-09-10 18:15:36Z mike $".
+ * End of "$Id: testppd.c 7633 2008-06-10 23:07:29Z mike $".
*/
diff --git a/cups/transcode.c b/cups/transcode.c
index 7a79b2a55..b0f895cd6 100644
--- a/cups/transcode.c
+++ b/cups/transcode.c
@@ -1,5 +1,5 @@
/*
- * "$Id: transcode.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: transcode.c 7560 2008-05-13 06:34:04Z mike $"
*
* Transcoding support for the Common UNIX Printing System (CUPS).
*
@@ -1820,5 +1820,5 @@ get_vbcs_charmap(
/*
- * End of "$Id: transcode.c 6649 2007-07-11 21:46:42Z mike $"
+ * End of "$Id: transcode.c 7560 2008-05-13 06:34:04Z mike $"
*/
diff --git a/cups/transcode.h b/cups/transcode.h
index 8c8cd5005..0a4dac131 100644
--- a/cups/transcode.h
+++ b/cups/transcode.h
@@ -1,5 +1,5 @@
/*
- * "$Id: transcode.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: transcode.h 7026 2007-10-19 00:57:45Z mike $"
*
* Transcoding definitions for the Common UNIX Printing System (CUPS).
*
@@ -77,5 +77,5 @@ extern int cupsUTF32ToUTF8(cups_utf8_t *dest,
/*
- * End of "$Id: transcode.h 6649 2007-07-11 21:46:42Z mike $"
+ * End of "$Id: transcode.h 7026 2007-10-19 00:57:45Z mike $"
*/
diff --git a/cups/usersys.c b/cups/usersys.c
index 28b40d0be..8e4be9559 100644
--- a/cups/usersys.c
+++ b/cups/usersys.c
@@ -1,5 +1,5 @@
/*
- * "$Id: usersys.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: usersys.c 7337 2008-02-22 04:44:04Z mike $"
*
* User, system, and password routines for the Common UNIX Printing
* System (CUPS).
@@ -503,5 +503,5 @@ cups_open_client_conf(void)
/*
- * End of "$Id: usersys.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: usersys.c 7337 2008-02-22 04:44:04Z mike $".
*/
diff --git a/cups/util.c b/cups/util.c
index a07276786..605cd89e8 100644
--- a/cups/util.c
+++ b/cups/util.c
@@ -1,5 +1,5 @@
/*
- * "$Id: util.c 7014 2007-10-10 21:57:43Z mike $"
+ * "$Id: util.c 7634 2008-06-10 23:22:28Z mike $"
*
* Printing utilities for the Common UNIX Printing System (CUPS).
*
@@ -1802,5 +1802,5 @@ cups_get_printer_uri(
/*
- * End of "$Id: util.c 7014 2007-10-10 21:57:43Z mike $".
+ * End of "$Id: util.c 7634 2008-06-10 23:22:28Z mike $".
*/
diff --git a/data/Makefile b/data/Makefile
index 3722a172a..48dd1db55 100644
--- a/data/Makefile
+++ b/data/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 7014 2007-10-10 21:57:43Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Datafile makefile for the Common UNIX Printing System (CUPS).
#
@@ -201,5 +201,5 @@ uninstall:
#
-# End of "$Id: Makefile 7014 2007-10-10 21:57:43Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/data/testprint.ps b/data/testprint.ps
index 72f5da9ee..7b1ed89c8 100644
--- a/data/testprint.ps
+++ b/data/testprint.ps
@@ -593,6 +593,6 @@ gsave
grestore
showpage
%
-% End of "$Id: testprint.ps 6649 2007-07-11 21:46:42Z mike $".
+% End of "$Id: testprint.ps 7157 2008-01-02 21:22:42Z mike $".
%
%%EOF
diff --git a/doc/Makefile b/doc/Makefile
index e87eb5c34..9d24b2844 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6900 2007-08-30 17:17:51Z mike $"
+# "$Id: Makefile 7601 2008-05-20 21:08:08Z mike $"
#
# Documentation makefile for the Common UNIX Printing System (CUPS).
#
diff --git a/doc/help/api-array.html b/doc/help/api-array.html
index f08a706a7..007d71278 100644
--- a/doc/help/api-array.html
+++ b/doc/help/api-array.html
@@ -323,7 +323,7 @@ div.contents ul.subcontents li {
</ul></li>
</ul>
<!--
- "$Id: api-array.shtml 7266 2008-01-29 02:15:29Z mike $"
+ "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
Array API introduction for the Common UNIX Printing System (CUPS).
diff --git a/doc/help/api-filter.html b/doc/help/api-filter.html
index b645ec353..affeeb4e3 100644
--- a/doc/help/api-filter.html
+++ b/doc/help/api-filter.html
@@ -253,7 +253,7 @@ div.contents ul.subcontents li {
<body>
<div class='body'>
<!--
- "$Id: api-filter.header 7615 2008-05-25 07:17:07Z mike $"
+ "$Id: api-filter.header 7616 2008-05-28 00:34:13Z mike $"
Filter and backend programming header for the Common UNIX Printing System
(CUPS).
@@ -333,7 +333,7 @@ div.contents ul.subcontents li {
</ul></li>
</ul>
<!--
- "$Id: api-filter.shtml 7594 2008-05-19 23:16:03Z mike $"
+ "$Id: api-filter.shtml 7677 2008-06-19 23:22:19Z mike $"
Filter and backend programming introduction for the Common UNIX Printing
System (CUPS).
@@ -519,10 +519,11 @@ prefix strings:</p>
<dt>ATTR: attribute=value [attribute=value]</dt>
<dd>Sets the named printer or job attribute(s). Typically this is used
to set the <code>marker-colors</code>, <code>marker-levels</code>,
- <code>marker-names</code>, <code>marker-types</code>,
- <code>printer-alert</code>, and <code>printer-alert-description</code>
- printer attributes. Standard <code>marker-types</code> values are
- listed in <a href='#TABLE1'>Table 1</a>.</dd>
+ <code>marker-message</code>, <code>marker-names</code>,
+ <code>marker-types</code>, <code>printer-alert</code>, and
+ <code>printer-alert-description</code> printer attributes. Standard
+ <code>marker-types</code> values are listed in <a href='#TABLE1'>Table
+ 1</a>.</dd>
<dt>CRIT: message</dt>
<dd>Sets the printer-state-message attribute and adds the specified
diff --git a/doc/help/api-httpipp.html b/doc/help/api-httpipp.html
index f2e4fa211..e55c460b4 100644
--- a/doc/help/api-httpipp.html
+++ b/doc/help/api-httpipp.html
@@ -792,7 +792,7 @@ tempfd = cupsTempFd(tempfile, sizeof(tempfile));
/* Loop for authentication */
do
{
- status = a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
+ status = <a href='#cupsSendRequest'>cupsSendRequest</a>(CUPS_HTTP_DEFAULT, request, "/");
if (status == HTTP_UNAUTHORIZED)
{
diff --git a/doc/help/api-ppd.html b/doc/help/api-ppd.html
index 697573e85..b8ea92154 100644
--- a/doc/help/api-ppd.html
+++ b/doc/help/api-ppd.html
@@ -253,7 +253,7 @@ div.contents ul.subcontents li {
<body>
<div class='body'>
<!--
- "$Id: api-ppd.header 7278 2008-01-31 01:23:09Z mike $"
+ "$Id: api-ppd.header 7616 2008-05-28 00:34:13Z mike $"
PPD API header for the Common UNIX Printing System (CUPS).
@@ -326,6 +326,7 @@ marked option choices.">ppdConflicts</a></li>
<li><a href="#ppdIsMarked" title="Check to see if an option is marked.">ppdIsMarked</a></li>
<li><a href="#ppdLastError" title="Return the status from the last ppdOpen*().">ppdLastError</a></li>
<li><a href="#ppdLocalize" title="Localize the PPD file to the current locale.">ppdLocalize</a></li>
+<li><a href="#ppdLocalizeAttr" title="Localize an attribute.">ppdLocalizeAttr</a></li>
<li><a href="#ppdLocalizeIPPReason" title="Get the localized version of a cupsIPPReason
attribute.">ppdLocalizeIPPReason</a></li>
<li><a href="#ppdLocalizeMarkerName" title="Get the localized version of a marker-names
@@ -391,7 +392,7 @@ attribute value.">ppdLocalizeMarkerName</a></li>
</ul></li>
</ul>
<!--
- "$Id: api-ppd.shtml 7278 2008-01-31 01:23:09Z mike $"
+ "$Id: api-ppd.shtml 7616 2008-05-28 00:34:13Z mike $"
PPD API introduction for the Common UNIX Printing System (CUPS).
@@ -1061,6 +1062,29 @@ descriptions, printer presets, and custom option parameters. Each
localized string uses the UTF-8 character encoding.
</p>
+<h3 class="function"><a name="ppdLocalizeAttr">ppdLocalizeAttr</a></h3>
+<p class="description">Localize an attribute.</p>
+<p class="code">
+<a href="#ppd_attr_t">ppd_attr_t</a> *ppdLocalizeAttr (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppd_file_t">ppd_file_t</a> *ppd,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *keyword,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *spec<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>ppd</dt>
+<dd class="description">PPD file</dd>
+<dt>keyword</dt>
+<dd class="description">Main keyword</dd>
+<dt>spec</dt>
+<dd class="description">Option keyword or <code>NULL</code> for none</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Localized attribute or <code>NULL</code> if none exists</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function uses the current locale to find the localized attribute for
+the given main and option keywords. If no localized version of the
+attribute exists for the current locale, the unlocalized version is returned.</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.3&nbsp;</span><a name="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3>
<p class="description">Get the localized version of a cupsIPPReason
attribute.</p>
diff --git a/doc/help/api-raster.html b/doc/help/api-raster.html
index da9684b01..2672ec9db 100644
--- a/doc/help/api-raster.html
+++ b/doc/help/api-raster.html
@@ -501,8 +501,8 @@ the memory used to read the raster file:</p>
<ul class="code">
<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
- <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a></li>
- <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
</ul>
diff --git a/doc/help/spec-ipp.html b/doc/help/spec-ipp.html
index 344ba67af..a1c85a825 100644
--- a/doc/help/spec-ipp.html
+++ b/doc/help/spec-ipp.html
@@ -2473,8 +2473,8 @@ There will always be at least one banner file available called "none".
<h4><a name="marker-change-time">marker-change-time (integer)</a></h4>
<p>The marker-change-time attribute specifies the printer-up-time value when
-the last change to the marker-colors, marker-levels, marker-names, or
-marker-types attributes was made.</p>
+the last change to the marker-colors, marker-levels, marker-message,
+marker-names, or marker-types attributes was made.</p>
<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a></h4>
@@ -2490,6 +2490,12 @@ printer. It is only available when the driver provides supply levels. A
value of -1 indicates the level is unknown, while values from 0 to 100
indicate the corresponding percentage.</p>
+<h4><a name="marker-message">marker-message (text(MAX))</a></h4>
+
+<p>The marker-message attribute provides a human-readable status message
+for the current supply levels, e.g. "12 pages of ink remaining." It is only
+available when the driver provides supply levels.</p>
+
<h4><a name="marker-names">marker-names (1setof name(MAX))</a></h4>
<p>The marker-names attribute specifies the name(s) for each supply in the
diff --git a/doc/help/spec-ppd.html b/doc/help/spec-ppd.html
index 402b3bcdd..87209f39a 100644
--- a/doc/help/spec-ppd.html
+++ b/doc/help/spec-ppd.html
@@ -8,7 +8,7 @@
</head>
<body>
<!--
- "$Id: spec-ppd.html 6993 2007-09-28 18:05:28Z mike $"
+ "$Id: spec-ppd.html 7677 2008-06-19 23:22:19Z mike $"
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
@@ -1254,6 +1254,20 @@ generated by the driver to human readable text.</p>
*cupsMarkerName cyanToner/Cyan Toner: ""
</pre>
+<h3><span class='info'>CUPS 1.4</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+
+<p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
+
+<p>This optional attribute provides disclaimer text for the supply level
+information provided by the driver, typically something like "supply levels
+are approximate".</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*cupsMarkerNotice: "Supply levels are approximate."
+</pre>
+
<h3><a name='cupsModelNumber'>cupsModelNumber</a></h3>
<p class='summary'>*cupsModelNumber: number</p>
@@ -1627,11 +1641,13 @@ the device.</p>
<ul>
- <li>Added <tt>cupsPJLDisplay</tt> attribute.</li>
+ <li>Added <tt>cupsCommands</tt> attribute.</li>
<li>Added <tt>cupsMarkerName</tt> attribute.</li>
- <li>Added <tt>cupsCommands</tt> attribute.</li>
+ <li>Added <tt>cupsMarkerNotice</tt> attribute.</li>
+
+ <li>Added <tt>cupsPJLDisplay</tt> attribute.</li>
</ul>
diff --git a/driver/api-driver.header b/driver/api-driver.header
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/driver/api-driver.header
diff --git a/driver/api-driver.shtml b/driver/api-driver.shtml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/driver/api-driver.shtml
diff --git a/driver/testdriver.c b/driver/testdriver.c
index 0d1f299eb..f2159c3c1 100644
--- a/driver/testdriver.c
+++ b/driver/testdriver.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testdriver.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testdriver.c 7306 2008-02-15 00:52:38Z mike $"
*
* Sample/test driver interface program for the Common UNIX Printing
* System (CUPS).
@@ -174,5 +174,5 @@ list_ppds(const char *name) /* I - Program name */
/*
- * End of "$Id: testdriver.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: testdriver.c 7306 2008-02-15 00:52:38Z mike $".
*/
diff --git a/filter/Makefile b/filter/Makefile
index 61d578ce7..3bb3981bb 100644
--- a/filter/Makefile
+++ b/filter/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6696 2007-07-19 23:27:49Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Filter makefile for the Common UNIX Printing System (CUPS).
#
@@ -461,5 +461,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6696 2007-07-19 23:27:49Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/filter/api-raster.shtml b/filter/api-raster.shtml
index 847b974bb..880042b07 100644
--- a/filter/api-raster.shtml
+++ b/filter/api-raster.shtml
@@ -153,8 +153,8 @@ the memory used to read the raster file:</p>
<ul class="code">
<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
- <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a></li>
- <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
</ul>
diff --git a/filter/commandtops.c b/filter/commandtops.c
index ea7caf10d..ecde9916a 100644
--- a/filter/commandtops.c
+++ b/filter/commandtops.c
@@ -14,6 +14,11 @@
*
* Contents:
*
+ * main() - Process a CUPS command file.
+ * auto_configure() - Automatically configure the printer using
+ * PostScript query commands and/or SNMP lookups.
+ * print_self_test_page() - Print a self-test page.
+ * report_levels() - Report supply levels.
*/
/*
@@ -309,7 +314,13 @@ report_levels(ppd_file_t *ppd, /* I - PPD file */
fputs(ppd->jcl_ps, stdout);
}
+ /*
+ * Send a query job that just reports the product string - network backends
+ * will gather the supply levels via SNMP.
+ */
+
puts("%!");
+ puts("product =");
/*
* Finish the job...
diff --git a/filter/error.c b/filter/error.c
index 44c2eabfb..713c024a0 100644
--- a/filter/error.c
+++ b/filter/error.c
@@ -1,5 +1,5 @@
/*
- * "$Id: error.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: error.c 7460 2008-04-16 02:19:54Z mike $"
*
* Raster error handling for the Common UNIX Printing System (CUPS).
*
@@ -283,5 +283,5 @@ get_error_buffer(void)
/*
- * End of "$Id: error.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: error.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/filter/hpgl-input.c b/filter/hpgl-input.c
index d9af61a3c..fdc45555e 100644
--- a/filter/hpgl-input.c
+++ b/filter/hpgl-input.c
@@ -1,5 +1,5 @@
/*
- * "$Id: hpgl-input.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: hpgl-input.c 7219 2008-01-14 22:00:02Z mike $"
*
* HP-GL/2 input processing for the Common UNIX Printing System (CUPS).
*
@@ -268,5 +268,5 @@ FreeParameters(int num_params, /* I - Number of parameters */
/*
- * End of "$Id: hpgl-input.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: hpgl-input.c 7219 2008-01-14 22:00:02Z mike $".
*/
diff --git a/filter/image-bmp.c b/filter/image-bmp.c
index 1056252a7..21521600f 100644
--- a/filter/image-bmp.c
+++ b/filter/image-bmp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-bmp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-bmp.c 7221 2008-01-16 22:20:08Z mike $"
*
* BMP image routines for the Common UNIX Printing System (CUPS).
*
@@ -539,5 +539,5 @@ read_long(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-bmp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-bmp.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/filter/image-gif.c b/filter/image-gif.c
index d78670d37..caa39439e 100644
--- a/filter/image-gif.c
+++ b/filter/image-gif.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-gif.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-gif.c 7420 2008-04-01 20:32:00Z mike $"
*
* GIF image routines for the Common UNIX Printing System (CUPS).
*
@@ -693,5 +693,5 @@ gif_read_lzw(FILE *fp, /* I - File to read from */
/*
- * End of "$Id: image-gif.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-gif.c 7420 2008-04-01 20:32:00Z mike $".
*/
diff --git a/filter/image-jpeg.c b/filter/image-jpeg.c
index 4c22d4910..4710ab269 100644
--- a/filter/image-jpeg.c
+++ b/filter/image-jpeg.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-jpeg.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-jpeg.c 7355 2008-02-28 20:49:40Z mike $"
*
* JPEG image routines for the Common UNIX Printing System (CUPS).
*
@@ -318,5 +318,5 @@ _cupsImageReadJPEG(
/*
- * End of "$Id: image-jpeg.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-jpeg.c 7355 2008-02-28 20:49:40Z mike $".
*/
diff --git a/filter/image-photocd.c b/filter/image-photocd.c
index 6485de3f0..d8638618d 100644
--- a/filter/image-photocd.c
+++ b/filter/image-photocd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-photocd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-photocd.c 7221 2008-01-16 22:20:08Z mike $"
*
* PhotoCD routines for the Common UNIX Printing System (CUPS).
*
@@ -329,5 +329,5 @@ _cupsImageReadPhotoCD(
/*
- * End of "$Id: image-photocd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-photocd.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/filter/image-pix.c b/filter/image-pix.c
index e5e20f463..0bd87023c 100644
--- a/filter/image-pix.c
+++ b/filter/image-pix.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-pix.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-pix.c 7221 2008-01-16 22:20:08Z mike $"
*
* Alias PIX image routines for the Common UNIX Printing System (CUPS).
*
@@ -236,5 +236,5 @@ read_short(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-pix.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-pix.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/filter/image-png.c b/filter/image-png.c
index 332b3c39b..95cc9eacd 100644
--- a/filter/image-png.c
+++ b/filter/image-png.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-png.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-png.c 7437 2008-04-09 03:16:10Z mike $"
*
* PNG image routines for the Common UNIX Printing System (CUPS).
*
@@ -311,5 +311,5 @@ _cupsImageReadPNG(
/*
- * End of "$Id: image-png.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-png.c 7437 2008-04-09 03:16:10Z mike $".
*/
diff --git a/filter/image-pnm.c b/filter/image-pnm.c
index cef9a481f..0d55dba5b 100644
--- a/filter/image-pnm.c
+++ b/filter/image-pnm.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-pnm.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-pnm.c 7374 2008-03-08 01:13:26Z mike $"
*
* Portable Any Map file routines for the Common UNIX Printing System (CUPS).
*
@@ -316,5 +316,5 @@ _cupsImageReadPNM(
/*
- * End of "$Id: image-pnm.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-pnm.c 7374 2008-03-08 01:13:26Z mike $".
*/
diff --git a/filter/image-private.h b/filter/image-private.h
index 1323d75a7..9ce1dd254 100644
--- a/filter/image-private.h
+++ b/filter/image-private.h
@@ -1,5 +1,5 @@
/*
- * "$Id: image-private.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-private.h 7473 2008-04-21 17:51:58Z mike $"
*
* Private image library definitions for the Common UNIX Printing
* System (CUPS).
@@ -213,5 +213,5 @@ extern void _cupsRasterClearError(void);
#endif /* !_CUPS_IMAGE_PRIVATE_H_ */
/*
- * End of "$Id: image-private.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-private.h 7473 2008-04-21 17:51:58Z mike $".
*/
diff --git a/filter/image-sgi.c b/filter/image-sgi.c
index de81ceb6a..7fec66e67 100644
--- a/filter/image-sgi.c
+++ b/filter/image-sgi.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-sgi.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-sgi.c 7223 2008-01-16 23:41:19Z mike $"
*
* SGI image file routines for the Common UNIX Printing System (CUPS).
*
@@ -291,5 +291,5 @@ _cupsImageReadSGI(
/*
- * End of "$Id: image-sgi.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-sgi.c 7223 2008-01-16 23:41:19Z mike $".
*/
diff --git a/filter/image-sgilib.c b/filter/image-sgilib.c
index e0b1b3326..58e9204e8 100644
--- a/filter/image-sgilib.c
+++ b/filter/image-sgilib.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-sgilib.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-sgilib.c 7221 2008-01-16 22:20:08Z mike $"
*
* SGI image file format library routines for the Common UNIX Printing
* System (CUPS).
@@ -885,5 +885,5 @@ write_rle16(FILE *fp, /* I - File to write to */
/*
- * End of "$Id: image-sgilib.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-sgilib.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/filter/image-sun.c b/filter/image-sun.c
index 6817ecfea..d6575143d 100644
--- a/filter/image-sun.c
+++ b/filter/image-sun.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image-sun.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image-sun.c 7223 2008-01-16 23:41:19Z mike $"
*
* Sun Raster image file routines for the Common UNIX Printing System (CUPS).
*
@@ -403,5 +403,5 @@ read_unsigned(FILE *fp) /* I - File to read from */
/*
- * End of "$Id: image-sun.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image-sun.c 7223 2008-01-16 23:41:19Z mike $".
*/
diff --git a/filter/image.c b/filter/image.c
index 493c50633..97c7ada48 100644
--- a/filter/image.c
+++ b/filter/image.c
@@ -1,5 +1,5 @@
/*
- * "$Id: image.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image.c 7473 2008-04-21 17:51:58Z mike $"
*
* Base image support for the Common UNIX Printing System (CUPS).
*
@@ -808,5 +808,5 @@ get_tile(cups_image_t *img, /* I - Image */
/*
- * End of "$Id: image.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image.c 7473 2008-04-21 17:51:58Z mike $".
*/
diff --git a/filter/image.h b/filter/image.h
index b2de9ad99..ca3521aed 100644
--- a/filter/image.h
+++ b/filter/image.h
@@ -1,5 +1,5 @@
/*
- * "$Id: image.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: image.h 7306 2008-02-15 00:52:38Z mike $"
*
* Image library definitions for the Common UNIX Printing System (CUPS).
*
@@ -126,5 +126,5 @@ extern void cupsImageWhiteToWhite(const cups_ib_t *in,
#endif /* !_CUPS_IMAGE_H_ */
/*
- * End of "$Id: image.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: image.h 7306 2008-02-15 00:52:38Z mike $".
*/
diff --git a/filter/imagetoraster.c b/filter/imagetoraster.c
index bc4a806ec..ba21bdb1c 100644
--- a/filter/imagetoraster.c
+++ b/filter/imagetoraster.c
@@ -1,5 +1,5 @@
/*
- * "$Id: imagetoraster.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: imagetoraster.c 7306 2008-02-15 00:52:38Z mike $"
*
* Image file to raster filter for the Common UNIX Printing System (CUPS).
*
@@ -4311,5 +4311,5 @@ raster_cb(
/*
- * End of "$Id: imagetoraster.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: imagetoraster.c 7306 2008-02-15 00:52:38Z mike $".
*/
diff --git a/filter/interpret.c b/filter/interpret.c
index 945c8f40a..72579b22c 100644
--- a/filter/interpret.c
+++ b/filter/interpret.c
@@ -1,5 +1,5 @@
/*
- * "$Id: interpret.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: interpret.c 7460 2008-04-16 02:19:54Z mike $"
*
* PPD command interpreter for the Common UNIX Printing System (CUPS).
*
@@ -1644,5 +1644,5 @@ DEBUG_stack(_cups_ps_stack_t *st) /* I - Stack */
/*
- * End of "$Id: interpret.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: interpret.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/filter/pstops.c b/filter/pstops.c
index 77bc2df96..7517a4978 100644
--- a/filter/pstops.c
+++ b/filter/pstops.c
@@ -1,5 +1,5 @@
/*
- * "$Id: pstops.c 7006 2007-10-04 17:43:38Z mike $"
+ * "$Id: pstops.c 7689 2008-06-24 20:50:57Z mike $"
*
* PostScript filter for the Common UNIX Printing System (CUPS).
*
@@ -1259,6 +1259,7 @@ copy_page(cups_file_t *fp, /* I - File to read from */
int level; /* Embedded document level */
pstops_page_t *pageinfo; /* Page information */
int first_page; /* First page on N-up output? */
+ int has_page_setup; /* Does the page have %%Begin/EndPageSetup? */
int bounding_box[4]; /* PageBoundingBox */
@@ -1508,7 +1509,7 @@ copy_page(cups_file_t *fp, /* I - File to read from */
if (first_page)
doc_puts(doc, "%%BeginPageSetup\n");
- if (!strncmp(line, "%%BeginPageSetup", 16))
+ if ((has_page_setup = !strncmp(line, "%%BeginPageSetup", 16)) != 0)
{
int feature = 0; /* In a Begin/EndFeature block? */
@@ -1540,6 +1541,9 @@ copy_page(cups_file_t *fp, /* I - File to read from */
else if (!strncmp(line, "%%Include", 9))
continue;
+ if (line[0] != '%' && !feature)
+ break;
+
if (!feature || (doc->number_up == 1 && !doc->fitplot))
doc_write(doc, line, linelen);
}
@@ -1548,8 +1552,11 @@ copy_page(cups_file_t *fp, /* I - File to read from */
* Skip %%EndPageSetup...
*/
- if (linelen > 0)
- linelen = cupsFileGetLine(fp, line, linesize);
+ if (linelen > 0 && !strncmp(line, "%%EndPageSetup", 14))
+ {
+ linelen = cupsFileGetLine(fp, line, linesize);
+ has_page_setup = 0;
+ }
}
if (first_page)
@@ -1629,6 +1636,45 @@ copy_page(cups_file_t *fp, /* I - File to read from */
* Finish the PageSetup section as needed...
*/
+ if (has_page_setup)
+ {
+ int feature = 0; /* In a Begin/EndFeature block? */
+
+ doc_write(doc, line, linelen);
+
+ while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0)
+ {
+ if (!strncmp(line, "%%EndPageSetup", 14))
+ break;
+ else if (!strncmp(line, "%%BeginFeature:", 15))
+ {
+ feature = 1;
+
+ if (doc->number_up > 1 || doc->fitplot)
+ continue;
+ }
+ else if (!strncmp(line, "%%EndFeature", 12))
+ {
+ feature = 0;
+
+ if (doc->number_up > 1 || doc->fitplot)
+ continue;
+ }
+ else if (!strncmp(line, "%%Include", 9))
+ continue;
+
+ if (!feature || (doc->number_up == 1 && !doc->fitplot))
+ doc_write(doc, line, linelen);
+ }
+
+ /*
+ * Skip %%EndPageSetup...
+ */
+
+ if (linelen > 0 && !strncmp(line, "%%EndPageSetup", 14))
+ linelen = cupsFileGetLine(fp, line, linesize);
+ }
+
if (first_page)
doc_puts(doc, "%%EndPageSetup\n");
@@ -3369,5 +3415,5 @@ write_labels(pstops_doc_t *doc, /* I - Document information */
/*
- * End of "$Id: pstops.c 7006 2007-10-04 17:43:38Z mike $".
+ * End of "$Id: pstops.c 7689 2008-06-24 20:50:57Z mike $".
*/
diff --git a/filter/raster.c b/filter/raster.c
index 3805dc0f5..015c5a8c4 100644
--- a/filter/raster.c
+++ b/filter/raster.c
@@ -1,5 +1,5 @@
/*
- * "$Id: raster.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: raster.c 7616 2008-05-28 00:34:13Z mike $"
*
* Raster file routines for the Common UNIX Printing System (CUPS).
*
@@ -1201,5 +1201,5 @@ cups_write(int fd, /* I - File descriptor */
/*
- * End of "$Id: raster.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: raster.c 7616 2008-05-28 00:34:13Z mike $".
*/
diff --git a/filter/rasterbench.c b/filter/rasterbench.c
index ea0a08be5..a344db50f 100644
--- a/filter/rasterbench.c
+++ b/filter/rasterbench.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rasterbench.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: rasterbench.c 7376 2008-03-19 21:07:45Z mike $"
*
* Raster benchmark program for the Common UNIX Printing System (CUPS).
*
@@ -350,5 +350,5 @@ write_test(int fd, /* I - File descriptor to write to */
/*
- * End of "$Id: rasterbench.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: rasterbench.c 7376 2008-03-19 21:07:45Z mike $".
*/
diff --git a/filter/rastertoepson.c b/filter/rastertoepson.c
index b528bc06b..6f3278284 100644
--- a/filter/rastertoepson.c
+++ b/filter/rastertoepson.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertoepson.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: rastertoepson.c 7450 2008-04-14 19:39:02Z mike $"
*
* EPSON ESC/P and ESC/P2 filter for the Common UNIX Printing System
* (CUPS).
@@ -1130,5 +1130,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: rastertoepson.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: rastertoepson.c 7450 2008-04-14 19:39:02Z mike $".
*/
diff --git a/filter/rastertohp.c b/filter/rastertohp.c
index 9f9b7bc45..48b0cfcb1 100644
--- a/filter/rastertohp.c
+++ b/filter/rastertohp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertohp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: rastertohp.c 7403 2008-03-26 15:23:43Z mike $"
*
* Hewlett-Packard Page Control Language filter for the Common UNIX
* Printing System (CUPS).
@@ -856,5 +856,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: rastertohp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: rastertohp.c 7403 2008-03-26 15:23:43Z mike $".
*/
diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c
index d5564e626..a529e281a 100644
--- a/filter/rastertolabel.c
+++ b/filter/rastertolabel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertolabel.c 6819 2007-08-20 21:11:57Z mike $"
+ * "$Id: rastertolabel.c 7615 2008-05-25 07:17:07Z mike $"
*
* Label printer filter for the Common UNIX Printing System (CUPS).
*
@@ -1288,5 +1288,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: rastertolabel.c 6819 2007-08-20 21:11:57Z mike $".
+ * End of "$Id: rastertolabel.c 7615 2008-05-25 07:17:07Z mike $".
*/
diff --git a/filter/testraster.c b/filter/testraster.c
index f366aa817..d42438bdb 100644
--- a/filter/testraster.c
+++ b/filter/testraster.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testraster.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testraster.c 7376 2008-03-19 21:07:45Z mike $"
*
* Raster test program routines for the Common UNIX Printing System (CUPS).
*
@@ -1078,5 +1078,5 @@ print_changes(
/*
- * End of "$Id: testraster.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: testraster.c 7376 2008-03-19 21:07:45Z mike $".
*/
diff --git a/fonts/Makefile b/fonts/Makefile
index 4aee78913..a73e23433 100644
--- a/fonts/Makefile
+++ b/fonts/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Fonts makefile for the Common UNIX Printing System (CUPS).
#
@@ -102,5 +102,5 @@ uninstall:
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/locale/Makefile b/locale/Makefile
index a948cf991..04656a59c 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6993 2007-09-28 18:05:28Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Locale file makefile for the Common UNIX Printing System (CUPS).
#
@@ -188,5 +188,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6993 2007-09-28 18:05:28Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/locale/checkpo.c b/locale/checkpo.c
index 6b76f5be5..81f9212cc 100644
--- a/locale/checkpo.c
+++ b/locale/checkpo.c
@@ -1,5 +1,5 @@
/*
- * "$Id: checkpo.c 6922 2007-09-06 14:18:02Z mike $"
+ * "$Id: checkpo.c 7223 2008-01-16 23:41:19Z mike $"
*
* Verify that translations in the .po file have the same number and type of
* printf-style format strings.
@@ -336,5 +336,5 @@ free_formats(cups_array_t *fmts) /* I - Array of format strings */
/*
- * End of "$Id: checkpo.c 6922 2007-09-06 14:18:02Z mike $".
+ * End of "$Id: checkpo.c 7223 2008-01-16 23:41:19Z mike $".
*/
diff --git a/locale/cups_id.po b/locale/cups_id.po
new file mode 100644
index 000000000..4fe6c9ffc
--- /dev/null
+++ b/locale/cups_id.po
@@ -0,0 +1,3894 @@
+# translation of cups_id.po to Bahasa Indonesia
+#
+# "$Id$"
+#
+# Message catalog template for the Common UNIX Printing System (CUPS).
+#
+# Copyright 2007 by Apple Inc.
+# Copyright 2005-2007 by Easy Software Products.
+#
+# These coded instructions, statements, and computer programs are the
+# property of Apple Inc. 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
+# file is missing or damaged, see the license at "http://www.cups.org/".
+#
+# Citra Paska <dirgitadevina@yahoo.co.id>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: cups_id\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2007-07-27 14:55-0700\n"
+"PO-Revision-Date: 2008-04-07 14:19+0700\n"
+"Last-Translator: Citra Paska <dirgitadevina@yahoo.co.id>\n"
+"Language-Team: Bahasa Indonesia\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: systemv/lpstat.c:2103 systemv/lpstat.c:2216
+msgid "\t\t(all)\n"
+msgstr "\t\t(semua)\n"
+
+#: systemv/lpstat.c:2106 systemv/lpstat.c:2109 systemv/lpstat.c:2219
+#: systemv/lpstat.c:2222
+msgid "\t\t(none)\n"
+msgstr "\t\t(nihil)\n"
+
+#: berkeley/lpc.c:450
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d entri\n"
+
+#: systemv/lpstat.c:2084 systemv/lpstat.c:2197
+msgid "\tAfter fault: continue\n"
+msgstr "\tUsai kesalahan: lanjut\n"
+
+#: systemv/lpstat.c:1670 systemv/lpstat.c:2050 systemv/lpstat.c:2163
+msgid "\tAlerts:"
+msgstr "\tPeringatan:"
+
+#: systemv/lpstat.c:2107 systemv/lpstat.c:2220
+msgid "\tBanner required\n"
+msgstr "\tPataka diperlukan\n"
+
+#: systemv/lpstat.c:2108 systemv/lpstat.c:2221
+msgid "\tCharset sets:\n"
+msgstr "\tSet karakter:\n"
+
+#: systemv/lpstat.c:2073 systemv/lpstat.c:2186
+msgid "\tConnection: direct\n"
+msgstr "\tKoneksi: langsung\n"
+
+#: systemv/lpstat.c:2064 systemv/lpstat.c:2177
+msgid "\tConnection: remote\n"
+msgstr "\tKoneksi: jarak jauh\n"
+
+#: systemv/lpstat.c:2111 systemv/lpstat.c:2224
+msgid "\tDefault page size:\n"
+msgstr "\tUkuran halaman standar:\n"
+
+#: systemv/lpstat.c:2110 systemv/lpstat.c:2223
+msgid "\tDefault pitch:\n"
+msgstr "\tTiti utama:\n"
+
+#: systemv/lpstat.c:2112 systemv/lpstat.c:2225
+msgid "\tDefault port settings:\n"
+msgstr "\tPengaturan portal utama:\n"
+
+#: systemv/lpstat.c:2045 systemv/lpstat.c:2158
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tDeskripsi: %s\n"
+
+#: systemv/lpstat.c:2039 systemv/lpstat.c:2152
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tFormulir yang diakuisisi:\n"
+"\tJenis isi: apa saja\n"
+"\tJenis pencetak: tak dikenal\n"
+
+#: systemv/lpstat.c:2105 systemv/lpstat.c:2218
+msgid "\tForms allowed:\n"
+msgstr "\tFormulir yang boleh:\n"
+
+#: systemv/lpstat.c:2068 systemv/lpstat.c:2181
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tAntarmuka: %s.ppd\n"
+
+#: systemv/lpstat.c:2077 systemv/lpstat.c:2190
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tAntarmuka: %s/antarmuka/%s\n"
+
+#: systemv/lpstat.c:2081 systemv/lpstat.c:2194
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tAntarmuka: %s/ppd/%s.ppd\n"
+
+#: systemv/lpstat.c:2059 systemv/lpstat.c:2172
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tLokasi: %s\n"
+
+#: systemv/lpstat.c:2083 systemv/lpstat.c:2196
+msgid "\tOn fault: no alert\n"
+msgstr "\tSaat kegagalan: tanpa peringatan\n"
+
+#: systemv/lpstat.c:2088 systemv/lpstat.c:2102 systemv/lpstat.c:2201
+#: systemv/lpstat.c:2215
+msgid "\tUsers allowed:\n"
+msgstr "\tPengguna yang boleh:\n"
+
+#: systemv/lpstat.c:2095 systemv/lpstat.c:2208
+msgid "\tUsers denied:\n"
+msgstr "\tPengguna yang dilarang:\n"
+
+#: berkeley/lpc.c:452
+msgid "\tdaemon present\n"
+msgstr "\tkehadiran daemon\n"
+
+#: berkeley/lpc.c:448
+msgid "\tno entries\n"
+msgstr "\ttak ada entri\n"
+
+#: berkeley/lpc.c:420 berkeley/lpc.c:432
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tpencetak pada perangkat '%s' kecepatan -1\n"
+
+#: berkeley/lpc.c:445
+msgid "\tprinting is disabled\n"
+msgstr "\tproses cetak dinonaktifkan\n"
+
+#: berkeley/lpc.c:443
+msgid "\tprinting is enabled\n"
+msgstr "\tproses cetak diaktifkan\n"
+
+#: systemv/lpstat.c:1676
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tantrian untuk %s\n"
+
+#: berkeley/lpc.c:440
+msgid "\tqueuing is disabled\n"
+msgstr "\tantrian dinonaktifkan\n"
+
+#: berkeley/lpc.c:438
+msgid "\tqueuing is enabled\n"
+msgstr "\tantrian diaktifkan\n"
+
+#: systemv/lpstat.c:2032 systemv/lpstat.c:2145
+msgid "\treason unknown\n"
+msgstr "\talasan tak dikenal\n"
+
+#: systemv/cupstestppd.c:363
+msgid ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+" DETIL HASIL KECOCOKAN TES\n"
+
+#: systemv/cupstestppd.c:324 systemv/cupstestppd.c:328
+msgid " REF: Page 15, section 3.1.\n"
+msgstr " REF: Halaman 15, seksi 3.1.\n"
+
+#: systemv/cupstestppd.c:320
+msgid " REF: Page 15, section 3.2.\n"
+msgstr " REF: Halaman 15, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:336
+msgid " REF: Page 19, section 3.3.\n"
+msgstr " REF: Halaman 19, seksi 3.3.\n"
+
+#: systemv/cupstestppd.c:298
+msgid " REF: Page 20, section 3.4.\n"
+msgstr " REF: Halaman 20, seksi 3.4.\n"
+
+#: systemv/cupstestppd.c:340
+msgid " REF: Page 27, section 3.5.\n"
+msgstr " REF: Halaman 27, seksi 3.5.\n"
+
+#: systemv/cupstestppd.c:294
+msgid " REF: Page 42, section 5.2.\n"
+msgstr " REF: Halaman 42, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:332
+msgid " REF: Pages 16-17, section 3.2.\n"
+msgstr " REF: Halaman 16-17, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:308
+msgid " REF: Pages 42-45, section 5.2.\n"
+msgstr " REF: Halaman 42-45, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:303
+msgid " REF: Pages 45-46, section 5.2.\n"
+msgstr " REF: Halaman 45-46, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:312
+msgid " REF: Pages 48-49, section 5.2.\n"
+msgstr " REF: Halaman 48-49, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:316
+msgid " REF: Pages 52-54, section 5.2.\n"
+msgstr " REF: Halaman 52-54, seksi 5.2.\n"
+
+#: berkeley/lpq.c:547
+#, c-format
+msgid " %-39.39s %.0f bytes\n"
+msgstr " %-39.39s %.0f bita\n"
+
+#: systemv/cupstestppd.c:480
+#, c-format
+msgid " PASS Default%s\n"
+msgstr " LEWAT Default%s\n"
+
+#: systemv/cupstestppd.c:417
+msgid " PASS DefaultImageableArea\n"
+msgstr " LEWAT DefaultImageableArea\n"
+
+#: systemv/cupstestppd.c:451
+msgid " PASS DefaultPaperDimension\n"
+msgstr " LEWAT DefaultPaperDimension\n"
+
+#: systemv/cupstestppd.c:503
+msgid " PASS FileVersion\n"
+msgstr " LEWAT FileVersion\n"
+
+#: systemv/cupstestppd.c:523
+msgid " PASS FormatVersion\n"
+msgstr " LEWAT FormatVersion\n"
+
+#: systemv/cupstestppd.c:543
+msgid " PASS LanguageEncoding\n"
+msgstr " LEWAT LanguageEncoding\n"
+
+#: systemv/cupstestppd.c:563
+msgid " PASS LanguageVersion\n"
+msgstr " LEWAT LanguageVersion\n"
+
+#: systemv/cupstestppd.c:615
+msgid " PASS Manufacturer\n"
+msgstr " LEWAT Manufacturer\n"
+
+#: systemv/cupstestppd.c:655
+msgid " PASS ModelName\n"
+msgstr " LEWAT ModelName\n"
+
+#: systemv/cupstestppd.c:675
+msgid " PASS NickName\n"
+msgstr " LEWAT NickName\n"
+
+#: systemv/cupstestppd.c:735
+msgid " PASS PCFileName\n"
+msgstr " LEWAT PCFileName\n"
+
+#: systemv/cupstestppd.c:810
+msgid " PASS PSVersion\n"
+msgstr " LEWAT PSVersion\n"
+
+#: systemv/cupstestppd.c:715
+msgid " PASS PageRegion\n"
+msgstr " LEWAT PageRegion\n"
+
+#: systemv/cupstestppd.c:695
+msgid " PASS PageSize\n"
+msgstr " LEWAT PageSize\n"
+
+#: systemv/cupstestppd.c:770
+msgid " PASS Product\n"
+msgstr " LEWAT Product\n"
+
+#: systemv/cupstestppd.c:845
+msgid " PASS ShortNickName\n"
+msgstr " LEWAT ShortNickName\n"
+
+#: systemv/cupstestppd.c:2364
+#, c-format
+msgid ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+" AWAS \"%s %s\" konflik dengan \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+
+#: systemv/cupstestppd.c:1229
+#, c-format
+msgid " WARN %s has no corresponding options!\n"
+msgstr " AWAS %s tak memiliki opsi yang berkorespondensi!\n"
+
+#: systemv/cupstestppd.c:1353
+#, c-format
+msgid ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+msgstr ""
+" AWAS %s berbagi prefiks umum dengan %s\n"
+" REF: Halaman 15, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:1254
+msgid " WARN Default choices conflicting!\n"
+msgstr " AWAS Pilihan utama mengalami konflik!\n"
+
+#: systemv/cupstestppd.c:1244
+#, c-format
+msgid ""
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" AWAS Pilihan kata kunci Duplex %s seharusnya dinamai Duplex atau JCLDuplex!\n"
+" REF: Halaman 122, seksi 5.17\n"
+
+#: systemv/cupstestppd.c:1682
+msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr " AWAS Berkas mengandung campuran pada akhir baris CR, LF, dan CR LF!\n"
+
+#: systemv/cupstestppd.c:1270
+msgid ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" AWAS LanguageEncoding diperlukan oleh spesifikasi PPD 4.3.\n"
+" REF: Halaman 56-57, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1664
+#, c-format
+msgid " WARN Line %d only contains whitespace!\n"
+msgstr " AWAS Baris %d hanya mengandung spasi!\n"
+
+#: systemv/cupstestppd.c:1278
+msgid ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" AWAS Manufacturer diperlukan oleh spesifikasi PPD 4.3.\n"
+" REF: Halaman 58-59, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1409
+#, c-format
+msgid " WARN Missing APDialogExtension file \"%s\"\n"
+msgstr " AWAS Kehilangan berkas APDialogExtension \"%s\"\n"
+
+#: systemv/cupstestppd.c:1423
+#, c-format
+msgid " WARN Missing APPrinterIconPath file \"%s\"\n"
+msgstr " AWAS Kehilangan berkas APPrinterIconPath \"%s\"\n"
+
+#: systemv/cupstestppd.c:1392
+#, c-format
+msgid " WARN Missing cupsICCProfile file \"%s\"\n"
+msgstr " AWAS Kehilangan berkas cupsICCProfile \"%s\"\n"
+
+#: systemv/cupstestppd.c:1687
+msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr " AWAS Berkas PPD non-Windows seharusnya hanya berakhir baris LF, bukan CR LF!\n"
+
+#: systemv/cupstestppd.c:1262
+#, c-format
+msgid ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+msgstr ""
+" AWAS PPD usang versi %.1f!\n"
+" REF: Halaman 42, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:1291
+msgid ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" AWAS PCFileName lebih panjang dari 8.3 melanggar spesifikasi PPD.\n"
+" REF: Halaman 61-62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1325
+msgid ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" AWAS Protocols mengandung PJL tetapi atribut JCL tidak diset.\n"
+" REF: Halaman 78-79, seksi 5.7.\n"
+
+#: systemv/cupstestppd.c:1316
+msgid ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" AWAS Protocols mengandung PJL dan BCP; diharapkan TBCP.\n"
+" REF: Halaman 78-79, seksi 5.7.\n"
+
+#: systemv/cupstestppd.c:1299
+msgid ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" AWAS ShortNickName diperlukan oleh spesifikasi PPD 4.3.\n"
+" REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1831
+#, c-format
+msgid " %s %s %s does not exist!\n"
+msgstr " %s %s %s tidak ada!\n"
+
+#: systemv/cupstestppd.c:2095
+#, c-format
+msgid " %s Bad UTF-8 \"%s\" translation string for option %s!\n"
+msgstr " %s UTF-8 jelek \"%s\" string translasi untuk pilihan %s!\n"
+
+#: systemv/cupstestppd.c:2125 systemv/cupstestppd.c:2174
+#: systemv/cupstestppd.c:2213
+#, c-format
+msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
+msgstr " %s UTF-8 jelek \"%s\" string translasi untuk %s, pilihan %s!\n"
+
+#: systemv/cupstestppd.c:1882
+#, c-format
+msgid " %s Bad cupsFilter value \"%s\"!\n"
+msgstr " %s cupsFilter jelek nilai \"%s\"!\n"
+
+#: systemv/cupstestppd.c:1933
+#, c-format
+msgid " %s Bad cupsPreFilter value \"%s\"!\n"
+msgstr " %s cupsPreFilter jelek nilai \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2046
+#, c-format
+msgid " %s Bad language \"%s\"!\n"
+msgstr " %s Bahasa jelek \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2081
+#, c-format
+msgid " %s Missing \"%s\" translation string for option %s!\n"
+msgstr " %s Kehilangan \"%s\" string translasi untuk opsi %s!\n"
+
+#: systemv/cupstestppd.c:2157 systemv/cupstestppd.c:2197
+#, c-format
+msgid " %s Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr " %s Kehilangan \"%s\" string translasi untuk opsi %s, pilihan %s!\n"
+
+#: systemv/cupstestppd.c:1749 systemv/cupstestppd.c:1764
+#, c-format
+msgid " %s Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
+msgstr " %s Kehilangan pilihan *%s %s pada UIConstraint \"*%s %s *%s %s\"!\n"
+
+#: systemv/cupstestppd.c:1911
+#, c-format
+msgid " %s Missing cupsFilter file \"%s\"\n"
+msgstr " %s Kehilangan berkas cupsFilter \"%s\"\n"
+
+#: systemv/cupstestppd.c:1962
+#, c-format
+msgid " %s Missing cupsPreFilter file \"%s\"\n"
+msgstr " %s Kehilangan berkas cupsPreFilter \"%s\"\n"
+
+#: systemv/cupstestppd.c:1725 systemv/cupstestppd.c:1732
+#, c-format
+msgid " %s Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
+msgstr " %s Kehilangan opsi %s pada UIConstraint \"*%s %s *%s %s\"!\n"
+
+#: systemv/cupstestppd.c:2250
+#, c-format
+msgid " %s No base translation \"%s\" is included in file!\n"
+msgstr " %s Tidak ada basis translasi \"%s\" yang disertakan pada berkas!\n"
+
+#: systemv/cupstestppd.c:1060
+#, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **GAGAL** %s seharusnya 1284DeviceID!\n"
+" REF: Halaman 72, seksi 5.5\n"
+
+#: systemv/cupstestppd.c:471
+#, c-format
+msgid ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **GAGAL** Default%s %s JELEK\n"
+" REF: Halaman 40, seksi 4.5.\n"
+
+#: systemv/cupstestppd.c:407
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **GAGAL** DefaultImageableArea %s JELEK!\n"
+" REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:443
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **GAGAL** DefaultPaperDimension %s JELEK!\n"
+" REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:871
+msgid ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+msgstr ""
+" **GAGAL** Atribut JELEK JobPatchFile dalam berkas\n"
+" REF: Halaman 24, seksi 3.4.\n"
+
+#: systemv/cupstestppd.c:591
+msgid ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+msgstr ""
+" **GAGAL** Manufacturer JELEK (seharusnya \"HP\")\n"
+" REF: Halaman 211, tabel D.1.\n"
+
+#: systemv/cupstestppd.c:607
+msgid ""
+" **FAIL** BAD Manufacturer (should be \"Oki\")\n"
+" REF: Page 211, table D.1.\n"
+msgstr ""
+" **GAGAL** Manufacturer JELEK (seharusnya \"Oki\")\n"
+" REF: Halaman 211, tabel D.1.\n"
+
+#: systemv/cupstestppd.c:646
+#, c-format
+msgid ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **GAGAL** ModelName JELEK - \"%c\" tidak diperbolehkan dalam string.\n"
+" REF: Halaman 59-60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:802
+msgid ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **GAGAL** PSVersion JELEK - bukan \"(string) int\".\n"
+" REF: Halaman 62-64, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:763
+msgid ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **GAGAL** Product JELEK - bukan \"(string)\".\n"
+" REF: Halaman 62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:837
+msgid ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" **GAGAL** ShortNickName JELEK - lebih dari 31 karakter.\n"
+" REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1042
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **GAGAL** %s jelek pilihan %s!\n"
+" REF: Halaman 122, seksi 5.17\n"
+
+#: systemv/cupstestppd.c:992
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+msgstr ""
+" **GAGAL** %s jelek pilihan %s!\n"
+" REF: Halaman 84, seksi 5.9\n"
+
+#: systemv/cupstestppd.c:1094
+#, c-format
+msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1!\n"
+msgstr " **GAGAL** LanguageEncoding %s jelek - seharusnya ISOLatin1!\n"
+
+#: systemv/cupstestppd.c:1108
+#, c-format
+msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
+msgstr " **GAGAL** LanguageVersion %s jelek - seharusnya English!\n"
+
+#: systemv/cupstestppd.c:2391
+#, c-format
+msgid " **FAIL** Default option code cannot be interpreted: %s\n"
+msgstr " **GAGAL** Kode pilihan utama tidak bisa diinterpretasikan: %s\n"
+
+#: systemv/cupstestppd.c:1167
+#, c-format
+msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr " **GAGAL** String translasi utama untuk opsi %s pilihan %s mengandung karakter 8-bit!\n"
+
+#: systemv/cupstestppd.c:1140
+#, c-format
+msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+msgstr " **GAGAL** String translasi utama untuk opsi %s mengandung karakter 8-bit!\n"
+
+#: systemv/cupstestppd.c:1021
+#, c-format
+msgid ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN %s, bukan malah memilih None (Nihil)!\n"
+" REF: Halaman 122, seksi 5.17\n"
+
+#: systemv/cupstestppd.c:491
+#, c-format
+msgid ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN Default%s\n"
+" REF: Halaman 40, seksi 4.5.\n"
+
+#: systemv/cupstestppd.c:392
+msgid ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN DefaultImageableArea\n"
+" REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:428
+msgid ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN DefaultPaperDimension\n"
+" REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:513
+msgid ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN FileVersion\n"
+" REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:533
+msgid ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN FormatVersion\n"
+" REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:922
+#, c-format
+msgid ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN ImageableArea untuk PageSize %s\n"
+" REF: Halaman 41, seksi 5.\n"
+" REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:553
+msgid ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN LanguageEncoding\n"
+" REF: Halaman 56-57, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:573
+msgid ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN LanguageVersion\n"
+" REF: Halaman 57-58, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:625
+msgid ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN Manufacturer\n"
+" REF: Halaman 58-59, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:665
+msgid ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN ModelName\n"
+" REF: Halaman 59-60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:685
+msgid ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN NickName\n"
+" REF: Halaman 60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:745
+msgid ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PCFileName\n"
+" REF: Halaman 61-62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:820
+msgid ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PSVersion\n"
+" REF: Halaman 62-64, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:725
+msgid ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PageRegion\n"
+" REF: Halaman 100, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:891
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 99, section 5.14.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PageSize\n"
+" REF: Halaman 41, seksi 5.\n"
+" REF: Halaman 99, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:705
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PageSize\n"
+" REF: Halaman 99-100, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:944
+#, c-format
+msgid ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN PaperDimension untuk PageSize %s\n"
+" REF: Halaman 41, seksi 5.\n"
+" REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:780
+msgid ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN Product\n"
+" REF: Halaman 62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:855
+msgid ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+msgstr ""
+" **GAGAL** DIPERLUKAN ShortNickName\n"
+" REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1432
+#, c-format
+msgid " %d ERRORS FOUND\n"
+msgstr " %d KESALAHAN DITEMUKAN\n"
+
+#: systemv/cupstestdsc.c:239 systemv/cupstestdsc.c:281
+#, c-format
+msgid ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+" %%%%BoundingBox jelek: pada baris %d!\n"
+" REF: Halaman 39, %%%%BoundingBox:\n"
+
+#: systemv/cupstestdsc.c:310
+#, c-format
+msgid ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+msgstr ""
+" %%%%Page jelek: pada baris %d!\n"
+" REF: Halaman 53, %%%%Page:\n"
+
+#: systemv/cupstestdsc.c:223 systemv/cupstestdsc.c:263
+#, c-format
+msgid ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+msgstr ""
+" %%%%Page jelek: pada baris %d!\n"
+" REF: Halaman 43, %%%%Page:\n"
+
+#: systemv/cupstestdsc.c:180
+#, c-format
+msgid ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+msgstr ""
+" Baris %d lebih dari 255 karakter (%d)!\n"
+" REF: Halaman 25, Line Length (Panjang Baris)\n"
+
+#: systemv/cupstestdsc.c:197
+msgid ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+" Kehilangan %!PS-Adobe-3.0 pada baris pertama!\n"
+" REF: Halaman 17, 3.1 Conforming Documents (Menyesuaikan Dokumen)\n"
+
+#: systemv/cupstestdsc.c:367
+#, c-format
+msgid ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+msgstr ""
+" Kehilangan komentar %%EndComments!\n"
+" REF: Halaman 41, %%EndComments\n"
+
+#: systemv/cupstestdsc.c:347
+#, c-format
+msgid ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+" Kehilangan atau %%BoundingBox jelek: komentar!\n"
+" REF: Halaman 39, %%BoundingBox:\n"
+
+#: systemv/cupstestdsc.c:377
+#, c-format
+msgid ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+msgstr ""
+" Kehilangan atau %%Page jelek: komentar!\n"
+" REF: Halaman 53, %%Page:\n"
+
+#: systemv/cupstestdsc.c:357
+#, c-format
+msgid ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+msgstr ""
+" Kehilangan atau %%Pages jelek: komentar!\n"
+" REF: Halaman 43, %%Pages:\n"
+
+#: systemv/cupstestppd.c:1434
+msgid " NO ERRORS FOUND\n"
+msgstr " TIDAK ADA KESALAHAN\n"
+
+#: systemv/cupstestdsc.c:400
+#, c-format
+msgid " Saw %d lines that exceeded 255 characters!\n"
+msgstr " Menemukan %d baris yang melebihi 255 karakter!\n"
+
+#: systemv/cupstestdsc.c:395
+#, c-format
+msgid " Too many %%BeginDocument comments!\n"
+msgstr " Terlalu banyak komentar %%BeginDocument!\n"
+
+#: systemv/cupstestdsc.c:387
+#, c-format
+msgid " Too many %%EndDocument comments!\n"
+msgstr " Terlalu banyak komentar %%EndDocument!\n"
+
+#: systemv/cupstestdsc.c:407
+msgid " Warning: file contains binary data!\n"
+msgstr " Peringatan: berkas mengandung data biner!\n"
+
+#: systemv/cupstestdsc.c:415
+#, c-format
+msgid " Warning: no %%EndComments comment in file!\n"
+msgstr " Peringatan: tak ada komentar %%EndComments dalam berkas!\n"
+
+#: systemv/cupstestdsc.c:411
+#, c-format
+msgid " Warning: obsolete DSC version %.1f in file!\n"
+msgstr " Peringatan: DSC usang versi %.1f dalam berkas!\n"
+
+#: systemv/cupstestppd.c:389 systemv/cupstestppd.c:404
+#: systemv/cupstestppd.c:425 systemv/cupstestppd.c:440
+#: systemv/cupstestppd.c:468 systemv/cupstestppd.c:488
+#: systemv/cupstestppd.c:510 systemv/cupstestppd.c:530
+#: systemv/cupstestppd.c:550 systemv/cupstestppd.c:570
+#: systemv/cupstestppd.c:588 systemv/cupstestppd.c:604
+#: systemv/cupstestppd.c:622 systemv/cupstestppd.c:643
+#: systemv/cupstestppd.c:662 systemv/cupstestppd.c:682
+#: systemv/cupstestppd.c:702 systemv/cupstestppd.c:722
+#: systemv/cupstestppd.c:742 systemv/cupstestppd.c:760
+#: systemv/cupstestppd.c:777 systemv/cupstestppd.c:799
+#: systemv/cupstestppd.c:817 systemv/cupstestppd.c:834
+#: systemv/cupstestppd.c:852 systemv/cupstestppd.c:868
+#: systemv/cupstestppd.c:888 systemv/cupstestppd.c:919
+#: systemv/cupstestppd.c:941 systemv/cupstestppd.c:989
+#: systemv/cupstestppd.c:1018 systemv/cupstestppd.c:1039
+#: systemv/cupstestppd.c:1057 systemv/cupstestppd.c:1090
+#: systemv/cupstestppd.c:1104 systemv/cupstestppd.c:1136
+#: systemv/cupstestppd.c:1163 systemv/cupstestppd.c:1721
+#: systemv/cupstestppd.c:1746 systemv/cupstestppd.c:1761
+#: systemv/cupstestppd.c:1827 systemv/cupstestppd.c:1878
+#: systemv/cupstestppd.c:1908 systemv/cupstestppd.c:1929
+#: systemv/cupstestppd.c:1959 systemv/cupstestppd.c:2042
+#: systemv/cupstestppd.c:2077 systemv/cupstestppd.c:2091
+#: systemv/cupstestppd.c:2121 systemv/cupstestppd.c:2153
+#: systemv/cupstestppd.c:2170 systemv/cupstestppd.c:2193
+#: systemv/cupstestppd.c:2209 systemv/cupstestppd.c:2246
+#: systemv/cupstestppd.c:2387
+msgid " FAIL\n"
+msgstr " GAGAL\n"
+
+#: systemv/cupstestppd.c:274
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+msgstr ""
+" GAGAL\n"
+" **GAGAL** Tak bisa membuka berkas PPD - %s\n"
+
+#: systemv/cupstestppd.c:285
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" GAGAL\n"
+" **GAGAL** Tak bisa membuka berkas PPD - %s pada baris %d.\n"
+
+#: systemv/cupstestppd.c:1187
+msgid " PASS\n"
+msgstr " LEWAT\n"
+
+#: berkeley/lpq.c:553
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bita\n"
+
+#: berkeley/lpq.c:558
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bita\n"
+
+#: systemv/lpstat.c:762
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s menerima permintaan sejak %s\n"
+
+#: scheduler/ipp.c:9002
+#, c-format
+msgid "%s cannot be changed."
+msgstr "%s tidak bisa diubah."
+
+#: berkeley/lpc.c:194
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "%s tidak diimplementasikan oleh versi lpc CUPS.\n"
+
+#: berkeley/lpq.c:644
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s tidak siap\n"
+
+#: berkeley/lpq.c:637
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s siap\n"
+
+#: berkeley/lpq.c:640
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s siap dan sedang mencetak\n"
+
+#: systemv/lpstat.c:765
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s tidak menerima permintaan sejak %s -\n"
+"\t%s\n"
+
+#: scheduler/ipp.c:627
+#, c-format
+msgid "%s not supported!"
+msgstr "%s tak didukung!"
+
+#: systemv/lpstat.c:774
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s menerima permintaan sejak %s\n"
+
+#: systemv/lpstat.c:777
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s tidak menerima permintaan sejak %s -\n"
+"\t%s\n"
+
+#: berkeley/lpq.c:545
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [tugas %d localhost]\n"
+
+#: systemv/cancel.c:304 systemv/cancel.c:368
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr "%s: %s gagal: %s\n"
+
+#: systemv/accept.c:75
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: Tidak tahu apa yang hendak dikerjakan!\n"
+
+#: berkeley/lpr.c:392 systemv/lp.c:630
+#, c-format
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Kesalahan - Nama variabel lingkungan %s sebenarnya tidak ada \"%s\"!\n"
+
+#: systemv/lp.c:268
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%s: Kesalahan - ID tugas jelek!\n"
+
+#: systemv/lp.c:255
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "%s: Kesalahan - tidak bisa mencetak dan mengubah tugas secara bersamaan!\n"
+
+#: systemv/lp.c:547
+#, c-format
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "%s: Kesalahan - tak bisa mencetak dari stdin apabila berkas atau ID tugas disediakan!\n"
+
+#: systemv/lp.c:501
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: Kesalahan - diharapkan set karakter usai opsi '-S'!\n"
+
+#: systemv/lp.c:521
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: Kesalahan - diharapkan jenis isi usai opsi '-T'!\n"
+
+#: systemv/lp.c:301
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%s: Kesalahan - diharapkan banyaknya rangkap usai opsi '-n'!\n"
+
+#: berkeley/lpr.c:284
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: Kesalahan - diharapkan banyak hitungan rangkap usai opsi '-#'!\n"
+
+#: berkeley/lpr.c:249
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: Kesalahan - diharapkan tujuan usai opsi '-P'!\n"
+
+#: systemv/lpstat.c:231
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%s: Kesalahan - diharapkan tujuan usai opsi '-b'!\n"
+
+#: systemv/lp.c:170
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: Kesalahan - diharapkan tujuan usai opsi '-d'!\n"
+
+#: systemv/lp.c:203
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: Kesalahan - diharapkan formulir/bentuk usai opsi '-f'!\n"
+
+#: systemv/lp.c:432
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama yang ditahan usai opsi '-H'!\n"
+
+#: berkeley/lpr.c:141
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama host usai opsi '-H'!\n"
+
+#: berkeley/lpq.c:188 berkeley/lprm.c:155 systemv/accept.c:139
+#: systemv/cancel.c:131 systemv/lp.c:224 systemv/lpstat.c:294
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama host usai opsi '-h'!\n"
+
+#: systemv/lp.c:410
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: Kesalahan - diharapkan daftar mode usai opsi '-y'!\n"
+
+#: berkeley/lpr.c:308
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama usai opsi '-%c'!\n"
+
+#: systemv/lp.c:324
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: Kesalahan - diharapkan opsi string usai opsi '-o'!\n"
+
+#: systemv/lp.c:480
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%s: Kesalahan - diharapkan daftar halaman usai opsi '-P'!\n"
+
+#: systemv/lp.c:345
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan prioritas usai opsi '-%c'!\n"
+
+#: systemv/accept.c:158
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: Kesalahan - diharapkan teks alasan usai opsi '-r'!\n"
+
+#: systemv/lp.c:392
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: Kesalahan - diharapkan judul usai opsi '-t'!\n"
+
+#: berkeley/lpq.c:117 berkeley/lpr.c:121 berkeley/lprm.c:135
+#: systemv/accept.c:113 systemv/cancel.c:100 systemv/lpadmin.c:471
+#: systemv/lp.c:147 systemv/lpstat.c:138
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama pengguna usai opsi '-U'!\n"
+
+#: systemv/cancel.c:153
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama pengguna usai opsi '-u'!\n"
+
+#: berkeley/lpr.c:164
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan nilai usai opsi '-%c'!\n"
+
+#: systemv/lpstat.c:158 systemv/lpstat.c:172
+#, c-format
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Kesalahan - diperlukan \"completed\", \"not-completed\", atau \"all\" usai opsi '-W'!\n"
+
+#: berkeley/lpr.c:397 systemv/lp.c:635
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: Kesalahan - tidak tersedia tujuan utama.\n"
+
+#: systemv/lp.c:368
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: Kesalahan - prioritas harus antara 1 dan 100.\n"
+
+#: berkeley/lpr.c:401 systemv/lp.c:639
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: Kesalahan - penjadwal tidak merespon!\n"
+
+#: berkeley/lpr.c:475 systemv/lp.c:702
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr "%s: Kesalahan - stdin telah kosong, jadi tidak ada tugas yang dikirim.\n"
+
+#: berkeley/lpr.c:350 systemv/lp.c:580
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: Kesalahan - terlalu banyak berkas - \"%s\"\n"
+
+#: berkeley/lpr.c:332 systemv/lp.c:563
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: Kesalahan - tak bisa mengakses \"%s\" - %s\n"
+
+#: berkeley/lpr.c:451 systemv/lp.c:679
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: Kesalahan - tak bisa membuat berkas temporer \"%s\" - %s\n"
+
+#: berkeley/lpr.c:461 systemv/lp.c:688
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: Kesalahan - tak bisa menulis berkas temporer \"%s\" - %s\n"
+
+#: berkeley/lprm.c:118 systemv/cancel.c:223
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: Kesalahan - tujuan tak dikenal \"%s\"!\n"
+
+#: berkeley/lpq.c:157
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: Kesalahan - tujuan tak dikenal \"%s/%s\"!\n"
+
+#: berkeley/lpr.c:319 berkeley/lprm.c:181 systemv/accept.c:169
+#: systemv/cancel.c:165 systemv/lp.c:538 systemv/lpstat.c:455
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: Kesalahan - opsi tak dikenal '%c'!\n"
+
+#: systemv/lp.c:244
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: Diharapkan ID tugas usai opsi '-i'!\n"
+
+#: systemv/lpstat.c:528
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: Nama tujuan tak sah pada daftar \"%s\"!\n"
+
+#: systemv/lp.c:456
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: Memerlukan ID tugas ('-i jobid') sebelum '-H restart'!\n"
+
+#: scheduler/cupsfilter.c:388
+#, c-format
+msgid "%s: No filter to convert from %s/%s to %s/%s!\n"
+msgstr "%s: Tidak ada filter untuk konversi dari %s/%s ke %s/%s!\n"
+
+#: systemv/accept.c:223
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: Operasi gagal: %s\n"
+
+#: berkeley/lpq.c:103 berkeley/lpr.c:107 berkeley/lprm.c:98
+#: systemv/accept.c:99 systemv/cancel.c:86 systemv/cupsaddsmb.c:91
+#: systemv/lpadmin.c:277 systemv/lp.c:133 systemv/lpinfo.c:73
+#: systemv/lpmove.c:82 systemv/lpstat.c:110
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: Maaf, tidak ada dukungan enkripsi yang dikompilasi!\n"
+
+#: berkeley/lpq.c:304 systemv/cupsaddsmb.c:149 systemv/cupsaddsmb.c:170
+#: systemv/lpstat.c:565
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: Tak bisa terhubung ke server\n"
+
+#: systemv/accept.c:185
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: Tak bisa terhubung ke server: %s\n"
+
+#: systemv/cancel.c:246 systemv/cancel.c:327
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: Tak bisa mengontak server!\n"
+
+#: scheduler/cupsfilter.c:358
+#, c-format
+msgid "%s: Unable to determine MIME type of \"%s\"!\n"
+msgstr "%s: Tak bisa menentukan jenis MIME dari \"%s\"!\n"
+
+#: scheduler/cupsfilter.c:335
+#, c-format
+msgid "%s: Unable to read MIME database from \"%s\"!\n"
+msgstr "%s: Tak bisa membaca basis data MIME dari \"%s\"!\n"
+
+#: berkeley/lpq.c:161 systemv/lpstat.c:543
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%s: Tujuan tak dikenal \"%s\"!\n"
+
+#: scheduler/cupsfilter.c:367
+#, c-format
+msgid "%s: Unknown destination MIME type %s/%s!\n"
+msgstr "%s: Tujuan jenis MIME tak dikenal %s/%s!\n"
+
+#: scheduler/cupsfilter.c:949
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: Opsi tak dikenal '%c'!\n"
+
+#: scheduler/cupsfilter.c:350
+#, c-format
+msgid "%s: Unknown source MIME type %s/%s!\n"
+msgstr "%s: Sumber jenis MIME tak dikenal %s/%s!\n"
+
+#: berkeley/lpr.c:178
+#, c-format
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Peringatan - format pengubah '%c' tidak didukung - keluaran yang dihasilkan mungkin tak tepat!\n"
+
+#: systemv/lp.c:509
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: Peringatan - opsi set karakter diabaikan!\n"
+
+#: systemv/lp.c:529
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: Peringatan - opsi jenis isi diabaikan!\n"
+
+#: systemv/lp.c:210
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: Peringatan - opsi formulir/bentuk diabaikan!\n"
+
+#: systemv/lp.c:418
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: Peringatan - opsi mode diabaikan!\n"
+
+#: berkeley/lpq.c:245
+#, c-format
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: kesalahan - nama variabel lingkungan %s merupakan tujuan yang tidak ada \"%s\"!\n"
+
+#: berkeley/lpr.c:192
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: kesalahan - diharapkan opsi=nilai usai opsi '-o'!\n"
+
+#: berkeley/lpq.c:250
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: kesalahan - tidak ada tujuan utama.\n"
+
+#: berkeley/lpc.c:218
+msgid "?Invalid help command unknown\n"
+msgstr "?Ketidaksahan perintah bantuan tak dikenal\n"
+
+#: cgi-bin/admin.c:1994
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Diperlukan sandi Samba untuk mengekspor driver pencetak!"
+
+#: cgi-bin/admin.c:1990
+msgid "A Samba username is required to export printer drivers!"
+msgstr "Diperlukan nama pengguna Samba untuk mengekspor driver pencetak!"
+
+#: scheduler/ipp.c:2208
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr "Kelas bernama \"%s\" sudah ada!"
+
+#: scheduler/ipp.c:936
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Pencetak bernama \"%s\" sudah ada!"
+
+#: cgi-bin/admin.c:157
+msgid "Accept Jobs"
+msgstr "Terima Tugas"
+
+#: cgi-bin/admin.c:421
+msgid "Add Class"
+msgstr "Tambah Kelas"
+
+#: cgi-bin/admin.c:713
+msgid "Add Printer"
+msgstr "Tambah Pencetak"
+
+#: cgi-bin/admin.c:303 cgi-bin/admin.c:326 cgi-bin/admin.c:377
+#: cgi-bin/admin.c:387
+msgid "Add RSS Subscription"
+msgstr "Tambah Subskripsi RSS"
+
+#: cgi-bin/admin.c:201 cgi-bin/admin.c:212 cgi-bin/admin.c:2357
+msgid "Administration"
+msgstr "Administrasi"
+
+#: scheduler/ipp.c:1033
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Mencoba mengeset printer-state %s pada nilai jelek %d!"
+
+#: scheduler/ipp.c:307
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Kelompok atribut di luar jangkauan (%x < %x)!"
+
+#: cups/ppd.c:314
+msgid "Bad OpenGroup"
+msgstr "OpenGroup Jelek"
+
+#: cups/ppd.c:316
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "OpenUI/JCLOpenUI Jelek"
+
+#: cups/ppd.c:318
+msgid "Bad OrderDependency"
+msgstr "OrderDependency Jelek"
+
+#: cups/ppd.c:319
+msgid "Bad UIConstraints"
+msgstr "UIConstraints Jelek"
+
+#: scheduler/ipp.c:1328
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Nilai rangkap %d jelek."
+
+#: cups/ppd.c:327
+msgid "Bad custom parameter"
+msgstr "Parameter ubahan jelek"
+
+#: scheduler/ipp.c:2323
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "URI perangkat (device-uri) \"%s\" jelek!"
+
+#: scheduler/ipp.c:8493 scheduler/ipp.c:9764
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "Format dokumen (document-format) \"%s\" jelek!"
+
+#: scheduler/ipp.c:9018
+msgid "Bad job-priority value!"
+msgstr "Nilai prioritas tugas (job-priority) jelek!"
+
+#: scheduler/ipp.c:9043
+msgid "Bad job-state value!"
+msgstr "Nilai status tugas (job-state) jelek!"
+
+#: scheduler/ipp.c:2833 scheduler/ipp.c:3180 scheduler/ipp.c:5656
+#: scheduler/ipp.c:6825 scheduler/ipp.c:7051 scheduler/ipp.c:7815
+#: scheduler/ipp.c:8039 scheduler/ipp.c:8406 scheduler/ipp.c:8912
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Atribut job-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:5244
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "notify-pull-method \"%s\" jelek!"
+
+#: scheduler/ipp.c:5218
+#, c-format
+msgid "Bad notify-recipient-uri URI \"%s\"!"
+msgstr "URI notify-recipient-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:1346
+#, c-format
+msgid "Bad number-up value %d."
+msgstr "Nilai number-up %d jelek."
+
+#: cups/adminutil.c:298
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Opsi + yang dipilih pada baris %d jelek!"
+
+#: scheduler/ipp.c:1363
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Nilai jangkauan halaman %d-%d jelek."
+
+#: scheduler/ipp.c:2360
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "port-monitor \"%s\" jelek!"
+
+#: scheduler/ipp.c:2408
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Nilai printer-state %d jelek!"
+
+#: scheduler/ipp.c:274
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "Permintaan nomor versi %d.%d jelek!"
+
+#: cgi-bin/admin.c:1264
+msgid "Bad subscription ID!"
+msgstr "ID Subskripsi jelek!"
+
+#: cgi-bin/admin.c:2967
+msgid "Banners"
+msgstr "Pataka"
+
+#: cgi-bin/admin.c:1265 cgi-bin/admin.c:1297 cgi-bin/admin.c:1307
+msgid "Cancel RSS Subscription"
+msgstr "Batal Subskripsi RSS"
+
+#: cgi-bin/admin.c:1366 cgi-bin/admin.c:1429 cgi-bin/admin.c:1438
+#: cgi-bin/admin.c:1449
+msgid "Change Settings"
+msgstr "Ubah Pengaturan"
+
+#: scheduler/ipp.c:1953 scheduler/ipp.c:5256
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Set karakter \"%s\" tidak didukung!"
+
+#: cgi-bin/classes.c:154 cgi-bin/classes.c:201
+msgid "Classes"
+msgstr "Kelas"
+
+#: berkeley/lpc.c:209
+msgid ""
+"Commands may be abbreviated. Commands are:\n"
+"\n"
+"exit help quit status ?\n"
+msgstr ""
+"Perintah bisa saja singkat. Perintahnya:\n"
+"\n"
+"exit help quit status ?\n"
+
+#: scheduler/ipp.c:7333 scheduler/ipp.c:7349 scheduler/ipp.c:8509
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Tidak akan memindai jenis \"%s\"!"
+
+#: backend/ipp.c:1440
+msgid "Cover open."
+msgstr "Penutup terbuka."
+
+#: cups/ppd.c:1066 cups/ppd.c:1118
+msgid "Custom"
+msgstr "Ubahan"
+
+#: cgi-bin/admin.c:1719 cgi-bin/admin.c:1730 cgi-bin/admin.c:1775
+msgid "Delete Class"
+msgstr "Hapus Kelas"
+
+#: cgi-bin/admin.c:1804 cgi-bin/admin.c:1815 cgi-bin/admin.c:1860
+msgid "Delete Printer"
+msgstr "Hapus Pencetak"
+
+#: scheduler/ipp.c:1294
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "Tujuan \"%s\" bukanlah tugas yang diterima."
+
+#: backend/ipp.c:1474
+msgid "Developer almost empty."
+msgstr "Developer hampir kosong."
+
+#: backend/ipp.c:1476
+msgid "Developer empty!"
+msgstr "Developer kosong!"
+
+#: systemv/lpinfo.c:271
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Perangkat: uri = %s\n"
+" kelas = %s\n"
+" info = %s\n"
+" pembuat-dan-model = %s\n"
+" id-perangkat = %s\n"
+
+#: backend/ipp.c:1444
+msgid "Door open."
+msgstr "Pintu terbuka."
+
+#: filter/pstops.c:408
+#, c-format
+msgid "EMERG: Unable to allocate memory for page info: %s\n"
+msgstr "DARURAT: Tak bisa mengalokasikan memori untuk halaman info: %s\n"
+
+#: filter/pstops.c:401
+#, c-format
+msgid "EMERG: Unable to allocate memory for pages array: %s\n"
+msgstr "DARURAT: Tak bisa mengalokasikan memori untuk larik halaman: %s\n"
+
+#: backend/usb-darwin.c:635
+#, c-format
+msgid "ERROR: %ld: (canceled:%ld)\n"
+msgstr "KESALAHAN: %ld: (dibatalkan:%ld)\n"
+
+#: filter/pstops.c:655
+#, c-format
+msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
+msgstr "KESALAHAN: %%BoundingBox jelek: komentar terlihat!\n"
+
+#: filter/pstops.c:2128
+#, c-format
+msgid "ERROR: Bad %%IncludeFeature: comment!\n"
+msgstr "KESALAHAN: %%IncludeFeature jelek: komentar!\n"
+
+#: filter/pstops.c:1211 filter/pstops.c:1217
+#, c-format
+msgid "ERROR: Bad %%Page: comment in file!\n"
+msgstr "KESALAHAN:%%Page jelek: komentar dalam berkas!\n"
+
+#: filter/pstops.c:1287
+#, c-format
+msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
+msgstr "KESALAHAN: %%PageBoundingBox jelek: komentar dalam berkas!\n"
+
+#: backend/scsi-irix.c:99 backend/scsi-linux.c:113
+#, c-format
+msgid "ERROR: Bad SCSI device file \"%s\"!\n"
+msgstr "KESALAHAN: Berkas perangkat SCSI \"%s\" jelek!\n"
+
+#: filter/texttops.c:269 filter/texttops.c:280
+#, c-format
+msgid "ERROR: Bad charset file %s\n"
+msgstr "KESALAHAN: Berkas set karakter %s jelek\n"
+
+#: filter/texttops.c:610
+#, c-format
+msgid "ERROR: Bad charset type %s\n"
+msgstr "KESALAHAN: Jenis set karakter %s jelek\n"
+
+#: filter/texttops.c:341 filter/texttops.c:377 filter/texttops.c:505
+#: filter/texttops.c:541
+#, c-format
+msgid "ERROR: Bad font description line: %s\n"
+msgstr "KESALAHAN: Baris deskripsi huruf: %s jelek\n"
+
+#: filter/imagetoraster.c:457
+msgid "ERROR: Bad page setup!\n"
+msgstr "KESALAHAN: Pengaturan halaman jelek!\n"
+
+#: filter/texttops.c:354 filter/texttops.c:518
+#, c-format
+msgid "ERROR: Bad text direction %s\n"
+msgstr "KESALAHAN: Arah teks %s jelek\n"
+
+#: filter/texttops.c:390 filter/texttops.c:554
+#, c-format
+msgid "ERROR: Bad text width %s\n"
+msgstr "KESALAHAN: Lebar teks %s jelek\n"
+
+#: backend/ipp.c:672
+msgid "ERROR: Destination printer does not exist!\n"
+msgstr "KESALAHAN: Pencetak yang dituju tidak ada!\n"
+
+#: filter/pstops.c:644
+#, c-format
+msgid "ERROR: Duplicate %%BoundingBox: comment seen!\n"
+msgstr "KESALAHAN: Duplikat %%BoundingBox: komentar terlihat!\n"
+
+#: filter/pstops.c:597
+#, c-format
+msgid "ERROR: Duplicate %%Pages: comment seen!\n"
+msgstr "KESALAHAN: Duplikat %%Pages: komentar terlihat!\n"
+
+#: filter/pstops.c:267
+msgid "ERROR: Empty print file!\n"
+msgstr "ERROR: Mencetak berkas kosong!\n"
+
+#: filter/hpgl-input.c:138
+msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
+msgstr "KESALAHAN: Ketidaksahan HP-GL/2 komentar terlihat, tak bisa mencetak berkas!\n"
+
+#: filter/pstops.c:1693
+#, c-format
+msgid "ERROR: Missing %%EndProlog!\n"
+msgstr "KESALAHAN: Kehilangan %%EndProlog!\n"
+
+#: filter/pstops.c:1758
+#, c-format
+msgid "ERROR: Missing %%EndSetup!\n"
+msgstr "KESALAHAN: Kehilangan %%EndSetup!\n"
+
+#: backend/ipp.c:226
+msgid "ERROR: Missing device URI on command-line and no DEVICE_URI environment variable!\n"
+msgstr "KESALAHAN: Kehilangan URI perangkat pada baris perintah dan tidak adanya variabel lingkungan DEVICE_URI!\n"
+
+#: filter/pstops.c:707
+#, c-format
+msgid "ERROR: No %%BoundingBox: comment in header!\n"
+msgstr "KESALAHAN: Tak ada %%BoundingBox: komentar pada tajuk!\n"
+
+#: filter/pstops.c:710
+#, c-format
+msgid "ERROR: No %%Pages: comment in header!\n"
+msgstr "KESALAHAN: Tak ada %%Pages: komentar pada tajuk!\n"
+
+#: backend/usb.c:203
+msgid "ERROR: No device URI found in argv[0] or in DEVICE_URI environment variable!\n"
+msgstr "KESALAHAN: Tak ditemukan URI perangkat pada argv[0] atau dalam variabel lingkungan DEVICE_URI!\n"
+
+#: filter/rastertoepson.c:1135 filter/rastertohp.c:871
+#: filter/rastertolabel.c:1293
+msgid "ERROR: No pages found!\n"
+msgstr "ERROR: Tidak ketemu halaman!\n"
+
+#: backend/runloop.c:324
+msgid "ERROR: Out of paper!\n"
+msgstr "ERROR: Kehabisan kertas!\n"
+
+#: backend/ipp.c:1535
+msgid "ERROR: PRINTER environment variable not defined!\n"
+msgstr "KESALAHAN: Variabel lingkungan PRINTER belum ditentukan!\n"
+
+#: backend/ipp.c:962
+#, c-format
+msgid "ERROR: Print file was not accepted (%s)!\n"
+msgstr "KESALAHAN: Berkas cetak tidak diterima (%s)!\n"
+
+#: backend/ipp.c:527 backend/ipp.c:640 backend/lpd.c:813 backend/socket.c:295
+msgid "ERROR: Printer not responding!\n"
+msgstr "ERROR: Pencetak tidak merespon!\n"
+
+#: backend/lpd.c:992 backend/lpd.c:1121
+#, c-format
+msgid "ERROR: Remote host did not accept control file (%d)\n"
+msgstr "KESALAHAN: Host jarak jauh tidak menerima berkas kontrol (%d)\n"
+
+#: backend/lpd.c:1079
+#, c-format
+msgid "ERROR: Remote host did not accept data file (%d)\n"
+msgstr "KESALAHAN: Host jarak jauh tidak menerima data berkas (%d)\n"
+
+#: backend/ipp.c:1012
+#, c-format
+msgid "ERROR: Unable to add file %d to job: %s\n"
+msgstr "KESALAHAN: Tak bisa menambah berkas %d untuk tugas: %s\n"
+
+#: backend/ipp.c:1220
+#, c-format
+msgid "ERROR: Unable to cancel job %d: %s\n"
+msgstr "KESALAHAN: Tak bisa membatalkan tugas %d: %s\n"
+
+#: backend/ipp.c:1302
+#, c-format
+msgid "ERROR: Unable to create temporary compressed print file: %s\n"
+msgstr "KESALAHAN: Tak bisa membuat berkas-cetak-temporer-terkompresi: %s\n"
+
+#: backend/ipp.c:1557
+#, c-format
+msgid "ERROR: Unable to create temporary file - %s.\n"
+msgstr "KESALAHAN: Tak bisa membuat berkas-temporer - %s.\n"
+
+#: filter/pstops.c:2624
+#, c-format
+msgid "ERROR: Unable to create temporary file: %s\n"
+msgstr "KESALAHAN: Tak bisa membuat berkas-temporer: %s\n"
+
+#: backend/ipp.c:1614
+#, c-format
+msgid "ERROR: Unable to exec pictwpstops: %s\n"
+msgstr "KESALAHAN: Tak bisa mengeksekusi pictwpstops: %s\n"
+
+#: backend/ipp.c:1627
+#, c-format
+msgid "ERROR: Unable to fork pictwpstops: %s\n"
+msgstr "ERROR: Tak bisa mem-fork pictwpstops: %s\n"
+
+#: backend/ipp.c:1542
+#, c-format
+msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
+msgstr "KESALAHAN: Tak bisa mendapatkan berkas PPD untuk pencetak \"%s\" - %s.\n"
+
+#: backend/ipp.c:1091
+#, c-format
+msgid "ERROR: Unable to get job %d attributes (%s)!\n"
+msgstr "KESALAHAN: Tak bisa mendapatkan atribut tugas %d (%s)!\n"
+
+#: backend/ipp.c:681
+#, c-format
+msgid "ERROR: Unable to get printer status (%s)!\n"
+msgstr "KESALAHAN: Tak bisa mendapatkan status pencetak (%s)!\n"
+
+#: backend/ipp.c:545 backend/lpd.c:671 backend/socket.c:253
+#, c-format
+msgid "ERROR: Unable to locate printer '%s'!\n"
+msgstr "KESALAHAN: Tak bisa menentukan lokasi pencetak '%s'!\n"
+
+#: filter/texttops.c:233
+#, c-format
+msgid "ERROR: Unable to open \"%s\" - %s\n"
+msgstr "KESALAHAN: Tak bisa membuka \"%s\" - %s\n"
+
+#: filter/texttops.c:253
+#, c-format
+msgid "ERROR: Unable to open %s: %s\n"
+msgstr "KESALAHAN: Tak bisa membuka %s: %s\n"
+
+#: backend/parallel.c:241 backend/scsi-irix.c:136 backend/scsi-linux.c:151
+#: backend/serial.c:256 backend/usb-unix.c:134
+#, c-format
+msgid "ERROR: Unable to open device file \"%s\": %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas perangkat \"%s\": %s\n"
+
+#: filter/pstops.c:255
+#, c-format
+msgid "ERROR: Unable to open file \"%s\" - %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas \"%s\" - %s\n"
+
+#: filter/gziptoany.c:74
+#, c-format
+msgid "ERROR: Unable to open file \"%s\": %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas \"%s\": %s\n"
+
+#: filter/imagetops.c:309 filter/imagetoraster.c:634
+msgid "ERROR: Unable to open image file for printing!\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas citra untuk mencetak!\n"
+
+#: backend/ipp.c:1318
+#, c-format
+msgid "ERROR: Unable to open print file \"%s\": %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas cetak \"%s\": %s\n"
+
+#: backend/usb.c:240
+#, c-format
+msgid "ERROR: Unable to open print file %s - %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas cetak %s - %s\n"
+
+#: backend/lpd.c:460
+#, c-format
+msgid "ERROR: Unable to open print file %s: %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas cetak %s: %s\n"
+
+#: backend/ipp.c:1311
+#, c-format
+msgid "ERROR: Unable to open temporary compressed print file: %s\n"
+msgstr "KESALAHAN: Tak bisa membuka berkas-cetak-temporer-berkompresi: %s\n"
+
+#: filter/pstops.c:512
+#, c-format
+msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
+msgstr "ERROR: Tak bisa mencari letak %ld dalam berkas - %s\n"
+
+#: filter/pstops.c:510
+#, c-format
+msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
+msgstr "ERROR: Tak bisa mencari letak %lld dalam berkas - %s\n"
+
+#: backend/scsi-irix.c:214 backend/scsi-linux.c:233
+#, c-format
+msgid "ERROR: Unable to send print data (%d)\n"
+msgstr "KESALAHAN: Tak bisa mengirim data cetak (%d)\n"
+
+#: backend/ipp.c:1641
+#, c-format
+msgid "ERROR: Unable to wait for pictwpstops: %s\n"
+msgstr "KESALAHAN: Tak bisa menunggu pictwpstops: %s\n"
+
+#: backend/ipp.c:1328
+#, c-format
+msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
+msgstr "KESALAHAN: Tak bisa menulis %d bita ke \"%s\": %s\n"
+
+#: backend/runloop.c:121 backend/runloop.c:339
+#, c-format
+msgid "ERROR: Unable to write print data: %s\n"
+msgstr "KESALAHAN: Tak bisa menulis data cetak: %s\n"
+
+#: filter/imagetoraster.c:1196 filter/imagetoraster.c:1292
+#: filter/imagetoraster.c:1332
+msgid "ERROR: Unable to write raster data to driver!\n"
+msgstr "ERROR: Tak bisa menulis data raster pada driver!\n"
+
+#: filter/gziptoany.c:96
+#, c-format
+msgid "ERROR: Unable to write uncompressed document data: %s\n"
+msgstr "KESALAHAN: Tak bisa menulis data dokumen tanpa kompresi: %s\n"
+
+#: backend/ipp.c:330
+#, c-format
+msgid "ERROR: Unknown encryption option value \"%s\"!\n"
+msgstr "KESALAHAN: Nilai opsi enkripsi \"%s\" tak dikenal!\n"
+
+#: backend/lpd.c:352
+#, c-format
+msgid "ERROR: Unknown file order \"%s\"\n"
+msgstr "KESALAHAN: Urutan berkas \"%s\" tak dikenal\n"
+
+#: backend/lpd.c:325
+#, c-format
+msgid "ERROR: Unknown format character \"%c\"\n"
+msgstr "KESALAHAN: Format karakter \"%c\" tak dikenal\n"
+
+#: backend/ipp.c:371
+#, c-format
+msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
+msgstr "KESALAHAN: Opsi \"%s\" dengan nilai \"%s\" tak dikenal!\n"
+
+#: backend/lpd.c:339
+#, c-format
+msgid "ERROR: Unknown print mode \"%s\"\n"
+msgstr "KESALAHAN: Mode cetak \"%s\" tak dikenal\n"
+
+#: backend/ipp.c:343
+#, c-format
+msgid "ERROR: Unknown version option value \"%s\"!\n"
+msgstr "KESALAHAN: Nilai opsi versi \"%s\" tak dikenal!\n"
+
+#: filter/pstops.c:2325
+#, c-format
+msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
+msgstr "KESALAHAN: Nilai kecerahan %s tak didukung, gunakanlah brightness=100!\n"
+
+#: filter/pstops.c:2392
+#, c-format
+msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
+msgstr "KESALAHAN: Nilai gama %s tak didukung, gunakanlah gamma=1000!\n"
+
+#: filter/pstops.c:2446
+#, c-format
+msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
+msgstr "KESALAHAN: Nilai number-up %d tak didukung, gunakanlah number-up=1!\n"
+
+#: filter/pstops.c:2479
+#, c-format
+msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
+msgstr "KESALAHAN: Nilai number-up-layout %s tak didukung, gunakanlah number-up-layout=lrtb!\n"
+
+#: filter/pstops.c:2529
+#, c-format
+msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
+msgstr "KESALAHAN: Nilai page-border %s tak didukung, gunakanlah page-border=none!\n"
+
+#: filter/pstops.c:1997
+#, c-format
+msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
+msgstr "KESALAHAN: Kelebihan doc_printf (%d bita) terdeteksi, digagalkan!\n"
+
+#: backend/ipp.c:1661
+#, c-format
+msgid "ERROR: pictwpstops exited on signal %d!\n"
+msgstr "KESALAHAN: pictwpstops tertutup pada sinyal %d!\n"
+
+#: backend/ipp.c:1658
+#, c-format
+msgid "ERROR: pictwpstops exited with status %d!\n"
+msgstr "KESALAHAN: pictwpstops tertutup dengan status %d!\n"
+
+#: backend/ipp.c:554 backend/lpd.c:842 backend/socket.c:316
+msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
+msgstr "ERROR: pemulihan: Tak bisa menghubungi pencetak; akan mencoba ulang dalam 30 detik...\n"
+
+#: backend/usb-darwin.c:559
+#, c-format
+msgid "ERROR: select() returned %d\n"
+msgstr "KESALAHAN: select() dikembalikan pada %d\n"
+
+#: cgi-bin/admin.c:1477 cgi-bin/admin.c:1489 cgi-bin/admin.c:1543
+#: cgi-bin/admin.c:1550 cgi-bin/admin.c:1585 cgi-bin/admin.c:1598
+#: cgi-bin/admin.c:1622 cgi-bin/admin.c:1692
+msgid "Edit Configuration File"
+msgstr "Sunting Berkas Konfigurasi"
+
+#: cups/adminutil.c:344
+msgid "Empty PPD file!"
+msgstr "Berkas PPD kosong!"
+
+#: cgi-bin/admin.c:2988
+msgid "Ending Banner"
+msgstr "Akhir Pataka"
+
+#: systemv/lppasswd.c:205
+msgid "Enter old password:"
+msgstr "Masukkan sandi lama:"
+
+#: systemv/lppasswd.c:234
+msgid "Enter password again:"
+msgstr "Masukkan lagi sandinya:"
+
+#: systemv/lppasswd.c:223
+msgid "Enter password:"
+msgstr "Masukkan sandi:"
+
+#: scheduler/client.c:2274
+msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket."
+msgstr "Masukkan nama pengguna dan sandi Anda atau nama pengguna dan sandi root untuk mengakses halaman ini. Apabila Anda menggunakan otentikasi Kerberos, pastikan bahwa Anda memiliki tiket Kerberos yang sah."
+
+#: cgi-bin/admin.c:3030
+msgid "Error Policy"
+msgstr "Polis Kesalahan"
+
+#: systemv/lpinfo.c:136 systemv/lpmove.c:103
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Kesalahan: perlu nama host usai opsi '-h'!\n"
+
+#: cgi-bin/admin.c:1982 cgi-bin/admin.c:2001
+msgid "Export Printers to Samba"
+msgstr "Ekspor Pencetak melalui Samba"
+
+#: systemv/cupstestdsc.c:176 systemv/cupstestdsc.c:193
+#: systemv/cupstestdsc.c:219 systemv/cupstestdsc.c:236
+#: systemv/cupstestdsc.c:260 systemv/cupstestdsc.c:278
+#: systemv/cupstestdsc.c:307 systemv/cupstestdsc.c:344
+#: systemv/cupstestdsc.c:354 systemv/cupstestdsc.c:364
+#: systemv/cupstestdsc.c:374 systemv/cupstestdsc.c:384
+#: systemv/cupstestdsc.c:392
+msgid "FAIL\n"
+msgstr "GAGAL\n"
+
+#: backend/usb-darwin.c:390
+#, c-format
+msgid "FATAL: Could not load %s\n"
+msgstr "FATAL: Tidak bisa memuat %s\n"
+
+#: scheduler/ipp.c:2303
+#, c-format
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "Berkas URI perangkat telah dinonaktifkan! Untuk mengaktifkannya, lihatlah petunjuk FileDevice dalam \"%s/cupsd.conf\"."
+
+#: backend/ipp.c:1466
+msgid "Fuser temperature high!"
+msgstr "Suhu fusi tinggi!"
+
+#: backend/ipp.c:1468
+msgid "Fuser temperature low!"
+msgstr "Suhu fusi rendah!"
+
+#: cups/ppd.c:678 cups/ppd.c:1025 cups/ppd.c:1095 cups/ppd.c:1231
+msgid "General"
+msgstr "Umum"
+
+#: scheduler/ipp.c:2811 scheduler/ipp.c:3100 scheduler/ipp.c:5633
+#: scheduler/ipp.c:6802 scheduler/ipp.c:7792 scheduler/ipp.c:8016
+#: scheduler/ipp.c:8383 scheduler/ipp.c:8889
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Memperoleh atribut printer-uri tetapi bukan job-id!"
+
+#: cgi-bin/help.c:89 cgi-bin/help.c:130 cgi-bin/help.c:140 cgi-bin/help.c:170
+msgid "Help"
+msgstr "Bantuan"
+
+#: backend/lpd.c:694
+#, c-format
+msgid "INFO: Attempting to connect to host %s for printer %s\n"
+msgstr "INFO: Mencoba menghubungi host %s untuk pencetak %s\n"
+
+#: backend/socket.c:257
+#, c-format
+msgid "INFO: Attempting to connect to host %s on port %d\n"
+msgstr "INFO: Mencoba menghubungi host %s pada portal %d\n"
+
+#: backend/ipp.c:1200
+msgid "INFO: Canceling print job...\n"
+msgstr "INFO: Membatalkan tugas mencetak...\n"
+
+#: backend/ipp.c:574 backend/lpd.c:861 backend/socket.c:338
+#, c-format
+msgid "INFO: Connected to %s...\n"
+msgstr "INFO: Menghubungi %s...\n"
+
+#: backend/ipp.c:490
+#, c-format
+msgid "INFO: Connecting to %s on port %d...\n"
+msgstr "INFO: Menghubungi %s pada portal %d...\n"
+
+#: backend/lpd.c:995 backend/lpd.c:1124
+msgid "INFO: Control file sent successfully\n"
+msgstr "INFO: Berkas kontrol berhasil dikirim\n"
+
+#: backend/lpd.c:1082
+msgid "INFO: Data file sent successfully\n"
+msgstr "INFO: Berkas data berhasil dikirim\n"
+
+#: filter/imagetoraster.c:1139
+#, c-format
+msgid "INFO: Formatting page %d...\n"
+msgstr "INFO: Memformat halaman %d...\n"
+
+#: filter/imagetoraster.c:620
+msgid "INFO: Loading image file...\n"
+msgstr "INFO: Memuat berkas citra...\n"
+
+#: backend/socket.c:392
+msgid "INFO: Print file sent, waiting for printer to finish...\n"
+msgstr "INFO: Berkas cetak dikirim, menunggu pencetak selesai mengerjakannya...\n"
+
+#: backend/usb-darwin.c:407
+#, c-format
+msgid "INFO: Printer busy (status:0x%08x)\n"
+msgstr "INFO: Pencetak sibuk (status:0x%08x)\n"
+
+#: backend/ipp.c:946 backend/usb-unix.c:122
+msgid "INFO: Printer busy; will retry in 10 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 10 detik lagi...\n"
+
+#: backend/parallel.c:230 backend/scsi-irix.c:142 backend/scsi-linux.c:157
+#: backend/serial.c:251
+msgid "INFO: Printer busy; will retry in 30 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 30 detik lagi...\n"
+
+#: backend/usb-unix.c:414
+msgid "INFO: Printer busy; will retry in 5 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 5 detik lagi...\n"
+
+#: backend/ipp.c:665 backend/ipp.c:956
+msgid "INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"
+msgstr "INFO: Pencetak tidak mendukung IPP/1.1, mencoba IPP/1.0...\n"
+
+#: backend/usb-unix.c:507
+msgid "INFO: Printer is busy; will retry in 5 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 5 detik lagi...\n"
+
+#: backend/runloop.c:233 backend/runloop.c:333 backend/usb-darwin.c:1112
+msgid "INFO: Printer is currently off-line.\n"
+msgstr "INFO: Pencetak saat ini terputus.\n"
+
+#: backend/runloop.c:355 backend/usb-darwin.c:1094
+msgid "INFO: Printer is now on-line.\n"
+msgstr "INFO: Pencetak saat ini tersambung.\n"
+
+#: backend/parallel.c:235 backend/usb-unix.c:128
+msgid "INFO: Printer not connected; will retry in 30 seconds...\n"
+msgstr "INFO: Pencetak tak terhubung; dicoba ulang 30 detik lagi...\n"
+
+#: filter/rastertoepson.c:1090 filter/rastertohp.c:821
+#: filter/rastertolabel.c:1246
+#, c-format
+msgid "INFO: Printing page %d, %d%% complete...\n"
+msgstr "INFO: Mencetak halaman %d, %d%% selesai...\n"
+
+#: filter/imagetops.c:804
+#, c-format
+msgid "INFO: Printing page %d...\n"
+msgstr "INFO: Mencetak halaman %d...\n"
+
+#: backend/socket.c:416 filter/rastertoepson.c:1137 filter/rastertohp.c:873
+#: filter/rastertolabel.c:1295
+msgid "INFO: Ready to print.\n"
+msgstr "INFO: Siap mencetak.\n"
+
+#: backend/lpd.c:1096
+#, c-format
+msgid "INFO: Sending control file (%lu bytes)\n"
+msgstr "INFO: Mengirim berkas kontrol (%lu bita)\n"
+
+#: backend/lpd.c:967
+#, c-format
+msgid "INFO: Sending control file (%u bytes)\n"
+msgstr "INFO: Mengirim berkas kontrol (%u bita)\n"
+
+#: backend/usb-darwin.c:491
+msgid "INFO: Sending data\n"
+msgstr "INFO: Mengirim data\n"
+
+#: backend/lpd.c:1020
+#, c-format
+msgid "INFO: Sending data file (%ld bytes)\n"
+msgstr "INFO: Mengirim berkas data (%ld bita)\n"
+
+#: backend/lpd.c:1018
+#, c-format
+msgid "INFO: Sending data file (%lld bytes)\n"
+msgstr "INFO: Mengirim berkas data (%lld bita)\n"
+
+#: backend/parallel.c:286 backend/socket.c:375 backend/usb-unix.c:179
+#, c-format
+msgid "INFO: Sent print file, %ld bytes...\n"
+msgstr "INFO: Mengirim berkas cetak, %ld bita...\n"
+
+#: backend/parallel.c:284 backend/socket.c:373 backend/usb-unix.c:177
+#, c-format
+msgid "INFO: Sent print file, %lld bytes...\n"
+msgstr "INFO: Mengirim berkas cetak, %lld bita...\n"
+
+#: backend/lpd.c:1031
+#, c-format
+msgid "INFO: Spooling LPR job, %.0f%% complete...\n"
+msgstr "INFO: Menggulung tugas LPR, %.0f%% selesai...\n"
+
+#: backend/ipp.c:507 backend/ipp.c:744 backend/lpd.c:794
+#: backend/parallel.c:216 backend/scsi-irix.c:122 backend/scsi-linux.c:137
+#: backend/serial.c:237 backend/socket.c:278 backend/usb-unix.c:108
+msgid "INFO: Unable to contact printer, queuing on next printer in class...\n"
+msgstr "INFO: Tak bisa menghubungi pencetak, diantrikan ke pencetak selanjutnya pada kelas...\n"
+
+#: backend/ipp.c:1037
+msgid "INFO: Waiting for job to complete...\n"
+msgstr "INFO: Menunggu tugas diselesaikan...\n"
+
+#: cups/ppd.c:322
+msgid "Illegal control character"
+msgstr "Karakter kontrol ilegal"
+
+#: cups/ppd.c:323
+msgid "Illegal main keyword string"
+msgstr "String kata kunci utama ilegal"
+
+#: cups/ppd.c:324
+msgid "Illegal option keyword string"
+msgstr "String opsi kata kunci ilegal"
+
+#: cups/ppd.c:325
+msgid "Illegal translation string"
+msgstr "String translasi ilegal"
+
+#: cups/ppd.c:326
+msgid "Illegal whitespace character"
+msgstr "Karakter ilegal"
+
+#: backend/ipp.c:1458
+msgid "Ink/toner almost empty."
+msgstr "Tinta/toner hampir kosong."
+
+#: backend/ipp.c:1460
+msgid "Ink/toner empty!"
+msgstr "Tinta/toner kosong!"
+
+#: backend/ipp.c:1462
+msgid "Ink/toner waste bin almost full."
+msgstr "Baki buangan tinta/toner hampir penuh."
+
+#: backend/ipp.c:1464
+msgid "Ink/toner waste bin full!"
+msgstr "Baki buangan tinta/toner sudah penuh!"
+
+#: backend/ipp.c:1442
+msgid "Interlock open."
+msgstr "Sambungan terbuka."
+
+#: cups/ppd.c:313
+msgid "Internal error"
+msgstr "Kesalahan internal"
+
+#: cups/ppd.c:1321
+msgid "JCL"
+msgstr "JCL"
+
+#: scheduler/ipp.c:8089
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "Tugas #%d tidak bisa dicetak ulang - tidak ada berkas!"
+
+#: scheduler/ipp.c:2852 scheduler/ipp.c:3198 scheduler/ipp.c:5674
+#: scheduler/ipp.c:6679 scheduler/ipp.c:6843 scheduler/ipp.c:7024
+#: scheduler/ipp.c:7069 scheduler/ipp.c:7833 scheduler/ipp.c:8057
+#: scheduler/ipp.c:8424 scheduler/ipp.c:8930
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "Tugas #%d tidak ada!"
+
+#: scheduler/ipp.c:3229
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "Tugas #%d telah digagalkan - tidak bisa dibatalkan."
+
+#: scheduler/ipp.c:3223
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Tugas #%d sudah dibatalkan - tidak bisa dibatalkan."
+
+#: scheduler/ipp.c:3235
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "Tugas #%d sudah diselesaikan - tidak bisa dibatalkan."
+
+#: scheduler/ipp.c:7100 scheduler/ipp.c:8945
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "Tugas #%d sudah diselesaikan dan tidak dapat diubah!"
+
+#: scheduler/ipp.c:8071
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "Tugas #%d tidak selesai!"
+
+#: scheduler/ipp.c:2867
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "Tugas #%d tidak ditahan untuk otentikasi!"
+
+#: scheduler/ipp.c:7847
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "Tugas #%d tidak ditahan!"
+
+#: scheduler/ipp.c:6657
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "Tugas #%s tidak ada!"
+
+#: scheduler/ipp.c:5342
+#, c-format
+msgid "Job %d not found!"
+msgstr "Tugas %d tidak ketemu!"
+
+#: cgi-bin/ipp-var.c:858
+msgid "Job Completed"
+msgstr "Tugas Diselesaikan"
+
+#: cgi-bin/ipp-var.c:856
+msgid "Job Created"
+msgstr "Tugas Dibuat"
+
+#: cgi-bin/ipp-var.c:862
+msgid "Job Options Changed"
+msgstr "Perubahan Opsi Tugas"
+
+#: cgi-bin/ipp-var.c:860
+msgid "Job Stopped"
+msgstr "Tugas Dihentikan"
+
+#: scheduler/ipp.c:9026
+msgid "Job is completed and cannot be changed."
+msgstr "Tugas sudah diselesaikan dan tidak bisa diubah."
+
+#: cgi-bin/jobs.c:192
+msgid "Job operation failed:"
+msgstr "Operasi tugas gagal:"
+
+#: scheduler/ipp.c:9057 scheduler/ipp.c:9074 scheduler/ipp.c:9085
+msgid "Job state cannot be changed."
+msgstr "Status tugas tidak bisa diubah."
+
+#: scheduler/ipp.c:7936
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Subkripsi tugas tidak bisa diperbaharui!"
+
+#: cgi-bin/jobs.c:102 cgi-bin/jobs.c:113 cgi-bin/jobs.c:189
+msgid "Jobs"
+msgstr "Tugas"
+
+#: scheduler/ipp.c:1962 scheduler/ipp.c:5265
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Bahasa \"%s\" tidak didukung!"
+
+#: cups/ppd.c:321
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Baris melebihi panjang yang diperbolehkan (255 karakter)"
+
+#: cgi-bin/admin.c:2019
+msgid "List Available Printers"
+msgstr "Daftar Pencetak yang Tersedia"
+
+#: cups/ppd.c:725 cups/ppd.c:1286
+msgid "Media Size"
+msgstr "Ukuran Media"
+
+#: cups/ppd.c:729 cups/ppd.c:1290
+msgid "Media Source"
+msgstr "Sumber Media"
+
+#: cups/ppd.c:727 cups/ppd.c:1288
+msgid "Media Type"
+msgstr "Jenis Media"
+
+#: backend/ipp.c:1430
+msgid "Media jam!"
+msgstr "Media tersangkut!"
+
+#: backend/ipp.c:1448
+msgid "Media tray almost empty."
+msgstr "Baki media hampir kosong."
+
+#: backend/ipp.c:1450
+msgid "Media tray empty!"
+msgstr "Baki media kosong!"
+
+#: backend/ipp.c:1446
+msgid "Media tray missing!"
+msgstr "Baki media hilang!"
+
+#: backend/ipp.c:1428
+msgid "Media tray needs to be filled."
+msgstr "Baki media perlu diisi."
+
+#: cups/ppd.c:310
+msgid "Memory allocation error"
+msgstr "Kesalahan alokasi memori"
+
+#: cups/ppd.c:311
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Kehilangan tajuk PPD-Adobe-4.x"
+
+#: cups/ppd.c:320
+msgid "Missing asterisk in column 1"
+msgstr "Kehilangan asterik pada kolom 1"
+
+#: cups/adminutil.c:279
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Kehilangan tanda kutip pada baris %d!"
+
+#: cgi-bin/admin.c:1731 cgi-bin/admin.c:1816 cgi-bin/admin.c:2385
+#: cgi-bin/admin.c:2492 cgi-bin/admin.c:2765 cgi-bin/admin.c:3293
+msgid "Missing form variable!"
+msgstr "Kehilangan variabel formulir/bentuk!"
+
+#: scheduler/ipp.c:5931
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Kehilangan atribut notify-subscription-ids!"
+
+#: scheduler/ipp.c:2976
+msgid "Missing requesting-user-name attribute!"
+msgstr "Kehilangan atribut requesting-user-name!"
+
+#: scheduler/ipp.c:423
+msgid "Missing required attributes!"
+msgstr "Kehilangan atribut yang diperlukan!"
+
+#: cups/adminutil.c:260
+#, c-format
+msgid "Missing value on line %d!"
+msgstr "Kehilangan nilai pada baris %d!"
+
+#: cups/ppd.c:312
+msgid "Missing value string"
+msgstr "Kehilangan string nilai"
+
+#: systemv/lpinfo.c:403
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Model: nama = %s\n"
+" bahasa_natural = %s\n"
+" pembuat-dan-model = %s\n"
+" id-perangkat = %s\n"
+
+#: cgi-bin/admin.c:421
+msgid "Modify Class"
+msgstr "Ubah Kelas"
+
+#: cgi-bin/admin.c:713
+msgid "Modify Printer"
+msgstr "Ubah Pencetak"
+
+#: cgi-bin/ipp-var.c:413 cgi-bin/ipp-var.c:484
+msgid "Move All Jobs"
+msgstr "Pindah Semua Tugas"
+
+#: cgi-bin/ipp-var.c:358 cgi-bin/ipp-var.c:411 cgi-bin/ipp-var.c:482
+msgid "Move Job"
+msgstr "Pindah Tugas"
+
+#: backend/ipp.c:974
+#, c-format
+msgid "NOTICE: Print file accepted - job ID %d.\n"
+msgstr "CATATAN: Berkas cetak diterima - ID tugas %d.\n"
+
+#: backend/ipp.c:968
+msgid "NOTICE: Print file accepted - job ID unknown.\n"
+msgstr "CATATAN: Berkas cetak diterima - ID tugas tak dikenal.\n"
+
+#: cups/ppd.c:309
+msgid "NULL PPD file pointer"
+msgstr "Penunjuk berkas PPD NULL"
+
+#: cups/ppd.c:1862
+msgid "No"
+msgstr "Tidak"
+
+#: cups/adminutil.c:795
+msgid "No Windows printer drivers are installed!"
+msgstr "Tak ada driver pencetak Windows yang terpasang!"
+
+#: scheduler/ipp.c:3155
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Tak ada tugas yang aktif pada %s!"
+
+#: scheduler/ipp.c:284
+msgid "No attributes in request!"
+msgstr "Tak ada atribut dalam permintaan!"
+
+#: scheduler/ipp.c:2881
+msgid "No authentication information provided!"
+msgstr "Tak ada informasi otentikasi yang tersedia!"
+
+#: scheduler/ipp.c:5522
+msgid "No default printer"
+msgstr "Tak ada pencetak utama"
+
+#: scheduler/ipp.c:6429
+msgid "No destinations added."
+msgstr "Tak ada tujuan yang ditambah."
+
+#: scheduler/ipp.c:7299 scheduler/ipp.c:8475
+msgid "No file!?!"
+msgstr "Tak ada berkas!?!"
+
+#: scheduler/ipp.c:5160
+msgid "No subscription attributes in request!"
+msgstr "Tak ada atribut subskripsi dalam permintaan!"
+
+#: scheduler/ipp.c:6742
+msgid "No subscriptions found."
+msgstr "Tidak ada subskripsi yang ditemukan."
+
+#: cgi-bin/admin.c:3084
+msgid "None"
+msgstr "Nihil"
+
+#: scheduler/ipp.c:1394
+msgid "Not allowed to print."
+msgstr "Tidak diperbolehkan mencetak."
+
+#: cups/ppd.c:307
+msgid "OK"
+msgstr "Oke"
+
+#: backend/ipp.c:1470
+msgid "OPC almost at end-of-life."
+msgstr "OPC nyaris di ujung hayat."
+
+#: backend/ipp.c:1472
+msgid "OPC at end-of-life!"
+msgstr "OPC sudah di ujung hayat!"
+
+#: cups/ppd.c:315
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup tanpa CloseGroup lebih dulu"
+
+#: cups/ppd.c:317
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI tanpa CloseUI/JCLCloseUI lebih dulu"
+
+#: cgi-bin/admin.c:3057
+msgid "Operation Policy"
+msgstr "Polis Operasi"
+
+#: cgi-bin/admin.c:2879
+msgid "Options Installed"
+msgstr "Opsi yang Terpasang"
+
+#: backend/ipp.c:1438
+msgid "Out of toner!"
+msgstr "Kehabisan toner!"
+
+#: cups/ppd.c:731 cups/ppd.c:1292
+msgid "Output Mode"
+msgstr "Mode Keluaran"
+
+#: backend/ipp.c:1454
+msgid "Output bin almost full."
+msgstr "Baki keluaran hampir penuh."
+
+#: backend/ipp.c:1456
+msgid "Output bin full!"
+msgstr "Baki keluaran telah penuh!"
+
+#: systemv/lpstat.c:1311 systemv/lpstat.c:1315
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Keluaran untuk pencetak %s dikirim ke %s\n"
+
+#: systemv/lpstat.c:1305
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr "Keluaran untuk pencetak %s dikirim ke pencetak jarak jauh %s pada %s\n"
+
+#: systemv/lpstat.c:1329 systemv/lpstat.c:1333
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Keluaran untuk pencetak %s/%s dikirim ke %s\n"
+
+#: systemv/lpstat.c:1323
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr "Keluaran untuk pencetak %s/%s dikirim %s pada %s\n"
+
+#: backend/ipp.c:1452
+msgid "Output tray missing!"
+msgstr "Baki keluaran hilang!"
+
+#: systemv/cupstestdsc.c:404
+msgid "PASS\n"
+msgstr "PASS\n"
+
+#: cgi-bin/admin.c:3078 cgi-bin/admin.c:3098
+msgid "PS Binary Protocol"
+msgstr "Protokol Biner PS"
+
+#: cups/auth.c:150
+#, c-format
+msgid "Password for %s on %s? "
+msgstr "Sandi untuk %s pada %s? "
+
+#: systemv/cupsaddsmb.c:246
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Sandi untuk %s diperlukan untuk mengakses %s via SAMBA: "
+
+#: cgi-bin/admin.c:3006
+msgid "Policies"
+msgstr "Polis"
+
+#: cups/notify.c:82
+msgid "Print Job:"
+msgstr "Tugas Cetak:"
+
+#: cgi-bin/ipp-var.c:597
+msgid "Print Test Page"
+msgstr "Cetak Halaman Tes"
+
+#: cgi-bin/ipp-var.c:850
+msgid "Printer Added"
+msgstr "Pencetak Ditambah"
+
+#: cgi-bin/ipp-var.c:854
+msgid "Printer Deleted"
+msgstr "Pencetak Dihapus"
+
+#: cgi-bin/printers.c:213 cgi-bin/printers.c:284
+msgid "Printer Maintenance"
+msgstr "Perawatan Pencetak"
+
+#: cgi-bin/ipp-var.c:852
+msgid "Printer Modified"
+msgstr "Pencetak Diubah"
+
+#: cgi-bin/ipp-var.c:848
+msgid "Printer Stopped"
+msgstr "Pencetak Dihentikan"
+
+#: backend/ipp.c:1434
+msgid "Printer off-line."
+msgstr "Pencetak terputus."
+
+#: cups/notify.c:126
+msgid "Printer:"
+msgstr "Pencetak:"
+
+#: cgi-bin/printers.c:161 cgi-bin/printers.c:330
+msgid "Printers"
+msgstr "Pencetak"
+
+#: cgi-bin/admin.c:161
+msgid "Purge Jobs"
+msgstr "Membersihkan Tugas"
+
+#: scheduler/ipp.c:1389
+msgid "Quota limit reached."
+msgstr "Batas kuota telah dicapai."
+
+#: berkeley/lpq.c:508
+msgid "Rank Owner Job File(s) Total Size\n"
+msgstr "Urut Tuan Tgs Berkas Ukur Total\n"
+
+#: berkeley/lpq.c:504
+msgid "Rank Owner Pri Job Files Total Size\n"
+msgstr "Urut Tuan Pri Tugas Berkas Ukuran Total\n"
+
+#: cgi-bin/admin.c:159
+msgid "Reject Jobs"
+msgstr "Tolak Tugas"
+
+#: cups/ppd.c:733 cups/ppd.c:1294
+msgid "Resolution"
+msgstr "Resolusi"
+
+#: cups/adminutil.c:2066
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Menjalankan perintah: %s %s -N -A %s -c '%s'\n"
+
+#: cgi-bin/ipp-var.c:864
+msgid "Server Restarted"
+msgstr "Server Dinyalakan Ulang"
+
+#: cgi-bin/ipp-var.c:870
+msgid "Server Security Auditing"
+msgstr "Audit Sekuritas Server"
+
+#: cgi-bin/ipp-var.c:866
+msgid "Server Started"
+msgstr "Server Dijalankan"
+
+#: cgi-bin/ipp-var.c:868
+msgid "Server Stopped"
+msgstr "Server Dihentikan"
+
+#: cgi-bin/admin.c:2493 cgi-bin/admin.c:2539 cgi-bin/admin.c:2690
+#: cgi-bin/admin.c:2709
+msgid "Set Allowed Users"
+msgstr "Atur Pengguna yang Boleh"
+
+#: cgi-bin/admin.c:165
+msgid "Set As Default"
+msgstr "Atur Sebagai Utama"
+
+#: cgi-bin/admin.c:2750
+msgid "Set Class Options"
+msgstr "Atur Pilihan Kelas"
+
+#: cgi-bin/admin.c:2750 cgi-bin/admin.c:2849 cgi-bin/admin.c:3125
+msgid "Set Printer Options"
+msgstr "Atur Pilihan Pencetak"
+
+#: cgi-bin/admin.c:3294 cgi-bin/admin.c:3338 cgi-bin/admin.c:3356
+msgid "Set Publishing"
+msgstr "Atur Penerbitan"
+
+#: cgi-bin/admin.c:153
+msgid "Start Class"
+msgstr "Memulai Kelas"
+
+#: cgi-bin/admin.c:149
+msgid "Start Printer"
+msgstr "Memulai Pencetak"
+
+#: cgi-bin/admin.c:2981
+msgid "Starting Banner"
+msgstr "Menjalankan Pataka"
+
+#: cgi-bin/admin.c:155
+msgid "Stop Class"
+msgstr "Menghentikan Kelas"
+
+#: cgi-bin/admin.c:151
+msgid "Stop Printer"
+msgstr "Menghentikan Pencetak"
+
+#: scheduler/ipp.c:6178
+#, c-format
+msgid "The PPD file \"%s\" could not be found."
+msgstr "Berkas PPD \"%s\" tak bisa ditemukan."
+
+#: scheduler/ipp.c:6165
+#, c-format
+msgid "The PPD file \"%s\" could not be opened: %s"
+msgstr "Berkas PPD \"%s\" tak bisa dibuka: %s"
+
+#: cgi-bin/admin.c:579
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Nama kelas paling banyak 127 karakter cetak dan tidak mengandung spasi, garis miring (/), atau pun tanda pagar (#)."
+
+#: scheduler/ipp.c:1989
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "Atribut notify-lease-duration tidak bisa digunakan bersama subskripsi tugas."
+
+#: scheduler/ipp.c:1972 scheduler/ipp.c:5275
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "Nilai notify-user-data terlalu besar (%d > 63 oktet)!"
+
+#: cgi-bin/admin.c:783
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Nama pencetak paling banyak 127 karakter cetak dan tidak mengandung spasi, garis miring (/), atau tanda pagar (#)."
+
+#: scheduler/ipp.c:1253
+msgid "The printer or class is not shared!"
+msgstr "Pencetak atau kelas tidak dikongsikan!"
+
+#: scheduler/ipp.c:797 scheduler/ipp.c:1088 scheduler/ipp.c:3012
+#: scheduler/ipp.c:3117 scheduler/ipp.c:4820 scheduler/ipp.c:5119
+#: scheduler/ipp.c:5418 scheduler/ipp.c:5771 scheduler/ipp.c:6361
+#: scheduler/ipp.c:6669 scheduler/ipp.c:6961 scheduler/ipp.c:7005
+#: scheduler/ipp.c:7314 scheduler/ipp.c:7705 scheduler/ipp.c:8805
+#: scheduler/ipp.c:9469 scheduler/ipp.c:9536 scheduler/ipp.c:9794
+msgid "The printer or class was not found."
+msgstr "Pencetak atau kelas tidak ditemukan."
+
+#: scheduler/ipp.c:903 scheduler/ipp.c:2175
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "Terdapat karakter tidak sah pada printer-uri \"%s\"."
+
+#: scheduler/ipp.c:2957
+msgid "The printer-uri attribute is required!"
+msgstr "Atribut printer-uri diperlukan!"
+
+#: scheduler/ipp.c:887
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "Bentuk printer-uri seharusnya menuruti format \"ipp://HOSTNAME/classes/CLASSNAME\"."
+
+#: scheduler/ipp.c:2159
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "Bentuk printer-uri seharusnya menuruti format \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+
+#: cgi-bin/admin.c:323
+msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."
+msgstr "Nama subskripsi tidak bisa mengandung spasi, garis miring (/), tanda tanya (?), atau tanda pagar (#)."
+
+#: backend/ipp.c:1436
+msgid "Toner low."
+msgstr "Toner lemah."
+
+#: scheduler/ipp.c:1383
+msgid "Too many active jobs."
+msgstr "Terlalu banyak tugas yang aktif."
+
+#: cgi-bin/admin.c:1587 cgi-bin/admin.c:1600 cgi-bin/admin.c:1624
+msgid "Unable to access cupsd.conf file:"
+msgstr "Tak bisa mengakses berkas cupsd.conf:"
+
+#: cgi-bin/admin.c:378
+msgid "Unable to add RSS subscription:"
+msgstr "Tak bisa menambah subskripsi RSS:"
+
+#: cgi-bin/admin.c:645
+msgid "Unable to add class:"
+msgstr "Tak bisa menambah kelas:"
+
+#: scheduler/ipp.c:1427
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Tak bisa menambah tugas untuk tujuan \"%s\"!"
+
+#: cgi-bin/admin.c:1202
+msgid "Unable to add printer:"
+msgstr "Tak bisa menambah pencetak:"
+
+#: scheduler/ipp.c:1202
+msgid "Unable to allocate memory for file types!"
+msgstr "Tak bisa mengalokasikan memori untuk jenis berkas!"
+
+#: cgi-bin/admin.c:1298
+msgid "Unable to cancel RSS subscription:"
+msgstr "Tak bisa membatalkan subskripsi RSS:"
+
+#: cgi-bin/admin.c:3339
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Tak bisa mengubah atribut printer-is-shared:"
+
+#: cgi-bin/admin.c:2423 cgi-bin/admin.c:2691
+msgid "Unable to change printer:"
+msgstr "Tak bisa mengubah pencetak:"
+
+#: cgi-bin/admin.c:1368 cgi-bin/admin.c:1431
+msgid "Unable to change server settings:"
+msgstr "Tak bisa mengubah pengaturan server:"
+
+#: cups/adminutil.c:733
+#, c-format
+msgid "Unable to copy 64-bit CUPS printer driver files (%d)!"
+msgstr "Tak bisa menyalin berkas driver pencetak CUPS 64-bit (%d)!"
+
+#: cups/adminutil.c:698
+#, c-format
+msgid "Unable to copy 64-bit Windows printer driver files (%d)!"
+msgstr "Tak bisa menyalin berkas driver pencetak Windows 64-bit (%d)!"
+
+#: cups/adminutil.c:529
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Tak bisa menyalin berkas driver pencetak CUPS (%d)!"
+
+#: scheduler/ipp.c:2516
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Tak bisa menyalin berkas PPD - %s!"
+
+#: scheduler/ipp.c:2572
+msgid "Unable to copy PPD file!"
+msgstr "Tak bisa menyalin berkas PPD!"
+
+#: cups/adminutil.c:494
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Tak bisa menyalin berkas driver pencetak Windows 2000 (%d)!"
+
+#: cups/adminutil.c:617
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Tak bisa menyalin berkas driver pencetak Windows 9x (%d)!"
+
+#: scheduler/ipp.c:2491
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Tak bisa menyalin skrip antarmuka - %s!"
+
+#: cgi-bin/admin.c:1478 cgi-bin/admin.c:1490 cgi-bin/printers.c:214
+msgid "Unable to create temporary file:"
+msgstr "Tak bisa membuat berkas temporer:"
+
+#: cgi-bin/admin.c:1778
+msgid "Unable to delete class:"
+msgstr "Tak bisa menghapus kelas:"
+
+#: cgi-bin/admin.c:1863
+msgid "Unable to delete printer:"
+msgstr "Tak bisa menghapus pencetak:"
+
+#: cgi-bin/admin.c:1602
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Tak bisa menyunting berkas cupsd.conf lebih dari 1MB!"
+
+#: cgi-bin/ipp-var.c:359
+msgid "Unable to find destination for job!"
+msgstr "Tak bisa menemukan tujuan untuk tugas!"
+
+#: cgi-bin/classes.c:350
+msgid "Unable to get class list:"
+msgstr "Tak bisa mendapatkan daftar kelas:"
+
+#: cgi-bin/classes.c:449
+msgid "Unable to get class status:"
+msgstr "Tak bisa mendapatkan status kelas:"
+
+#: cgi-bin/admin.c:1112
+msgid "Unable to get list of printer drivers:"
+msgstr "Tak bisa mendapatkan daftar driver pencetak:"
+
+#: cgi-bin/admin.c:2547
+msgid "Unable to get printer attributes:"
+msgstr "Tak bisa mendapatkan atribut pencetak:"
+
+#: cgi-bin/printers.c:514
+msgid "Unable to get printer list:"
+msgstr "Tak bisa mendapatkan daftar pencetak:"
+
+#: cgi-bin/printers.c:624
+msgid "Unable to get printer status:"
+msgstr "Tak bisa mendapatkan status pencetak:"
+
+#: cups/adminutil.c:572 cups/adminutil.c:776
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Tak bisa memasang berkas driver pencetak Windows 2000 (%d)!"
+
+#: cups/adminutil.c:646
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Tak bisa memasang berkas driver pencetak Windows 9x (%d)!"
+
+#: cgi-bin/admin.c:644
+msgid "Unable to modify class:"
+msgstr "Tak bisa mengubah kelas:"
+
+#: cgi-bin/admin.c:1201
+msgid "Unable to modify printer:"
+msgstr "Tak bisa mengubah pencetak"
+
+#: cgi-bin/ipp-var.c:489
+msgid "Unable to move job"
+msgstr "Tak bisa memindahkan tugas"
+
+#: cgi-bin/ipp-var.c:491
+msgid "Unable to move jobs"
+msgstr "Tak bisa memindahkan tugas"
+
+#: cups/ppd.c:308
+msgid "Unable to open PPD file"
+msgstr "Tak bisa membuka berkas PPD"
+
+#: cgi-bin/admin.c:2790
+msgid "Unable to open PPD file:"
+msgstr "Tak bisa membuka berkas PPD:"
+
+#: cgi-bin/admin.c:2266
+msgid "Unable to open cupsd.conf file:"
+msgstr "Tak bisa membuka berkas cupsd.conf:"
+
+#: cgi-bin/ipp-var.c:600
+msgid "Unable to print test page:"
+msgstr "Tak bisa mencetak halaman tes:"
+
+#: cups/adminutil.c:2097
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "Tak bisa menjalankan \"%s\": %s\n"
+
+#: cgi-bin/printers.c:287
+msgid "Unable to send maintenance job:"
+msgstr "Tak bisa mengirim tugas perawatan:"
+
+#: cups/adminutil.c:825
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Tak bisa mengeset driver pencetak Windows (%d)!"
+
+#: cgi-bin/admin.c:3240
+msgid "Unable to set options:"
+msgstr "Tak bisa mengeset opsi:"
+
+#: cgi-bin/admin.c:1540
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Tak bisa mengunggah berkas cupsd.conf:"
+
+#: cups/ppd.c:332
+msgid "Unknown"
+msgstr "Tak dikenal"
+
+#: backend/ipp.c:1481
+#, c-format
+msgid "Unknown printer error (%s)!"
+msgstr "Kesalahan pencetak tak dikenal (%s)!"
+
+#: scheduler/ipp.c:9342
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "printer-error-policy \"%s\" tak dikenal."
+
+#: scheduler/ipp.c:9327
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "printer-op-policy \"%s\" tak dikenal."
+
+#: scheduler/ipp.c:7280 scheduler/ipp.c:8456
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "Kompresi \"%s\" tak didukung!"
+
+#: scheduler/ipp.c:9747
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "Atribut kompresi %s tak didukung!"
+
+#: scheduler/ipp.c:9775
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Format \"%s\" tak didukung!"
+
+#: scheduler/ipp.c:1315 scheduler/ipp.c:8588
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Format '%s' tak didukung!"
+
+#: scheduler/ipp.c:7411 scheduler/ipp.c:8571
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Format '%s/%s' tak didukung!"
+
+#: systemv/lpadmin.c:805
+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 ""
+"Penggunaan:\n"
+"\n"
+" lpadmin [-h server] -d tujuan\n"
+" lpadmin [-h server] -x tujuan\n"
+" lpadmin [-h server] -p pencetak [-c tambah-kelas] [-i antarmuka] [-m model]\n"
+" [-r buang-kelas] [-v perangkat] [-D deskripsi]\n"
+" [-P berkas-ppd] [-o nama=nilai]\n"
+" [-u allow:pengguna,pengguna] [-u deny:pengguna,pengguna]\n"
+"\n"
+
+#: backend/ipp.c:201 backend/lpd.c:189 backend/parallel.c:125
+#: backend/scsi.c:156 backend/serial.c:164 backend/socket.c:125
+#: backend/usb.c:187 filter/hpgl-main.c:148 filter/imagetops.c:115
+#: filter/imagetoraster.c:208 filter/pstops.c:235 filter/rastertoepson.c:1024
+#: filter/rastertohp.c:757 filter/rastertolabel.c:1171 filter/textcommon.c:518
+#, c-format
+msgid "Usage: %s job-id user title copies options [file]\n"
+msgstr "Penggunaan: %s id-tugas pengguna judul rangkap opsi [berkas]\n"
+
+#: filter/gziptoany.c:53
+#, c-format
+msgid "Usage: %s job-id user title copies options file\n"
+msgstr "Penggunaan: %s id-tugas pengguna judul rangkap opsi berkas\n"
+
+#: scheduler/cupsfilter.c:964
+msgid ""
+"Usage: convert [ options ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -f filename Set file to be converted (otherwise stdin)\n"
+" -o filename Set file to be generated (otherwise stdout)\n"
+" -i mime/type Set input MIME type (otherwise auto-typed)\n"
+" -j mime/type Set output MIME type (otherwise application/pdf)\n"
+" -P filename.ppd Set PPD file\n"
+" -a 'name=value ...' Set option(s)\n"
+" -U username Set username for job\n"
+" -J title Set title\n"
+" -c copies Set number of copies\n"
+" -u Remove the PPD file when finished\n"
+" -D Remove the input file when finished\n"
+msgstr ""
+"Penggunaan: convert [ opsi ]\n"
+"\n"
+"Opsi:\n"
+"\n"
+" -f namaberkas Mengeset berkas untuk dikonversi (sebaliknya stdin)\n"
+" -o namaberkas Mengeset berkas untuk digenerasi (sebaliknya stdout)\n"
+" -i mime/jenis Mengeset jenis MIME masukan (sebaliknya auto-typed)\n"
+" -j mime/jenis Mengeset jenis MIME keluaran (sebaliknya application/pdf)\n"
+" -P namaberkas.ppd Mengeset berkas PPD\n"
+" -a 'nama=nilai ...' Mengeset opsi\n"
+" -U namapengguna Mengeset nama pengguna untuk tugas\n"
+" -J judul Mengeset judul\n"
+" -c rangkap Mengeset jumlah rangkap\n"
+" -u Membuang berkas PPD setelah usai\n"
+" -D Membuang berkas masukan setelah usai\n"
+
+#: systemv/cupsaddsmb.c:276
+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 ""
+"Penggunaan: cupsaddsmb [opsi] pencetak1 ... pencetakN\n"
+" cupsaddsmb [opsi] -a\n"
+"\n"
+"Opsi:\n"
+" -E Mengenkripsi koneksi ke server\n"
+" -H samba-server Menggunakan server SAMBA yang diberikan\n"
+" -U samba-user Otentikasi menggunakan nama pengguna SAMBA yang diberikan\n"
+" -a Mengekspor semua pencetak\n"
+" -h cups-server Menggunakan server CUPS yang ditentukan\n"
+" -v Menjadi verbose (menampilkan perintah)\n"
+
+#: systemv/cupsctl.c:195
+msgid ""
+"Usage: cupsctl [options] [param=value ... paramN=valueN]\n"
+"\n"
+"Options:\n"
+"\n"
+" -E Enable encryption\n"
+" -U username Specify username\n"
+" -h server[:port] Specify server address\n"
+"\n"
+" --[no-]debug-logging Turn debug logging on/off\n"
+" --[no-]remote-admin Turn remote administration on/off\n"
+" --[no-]remote-any Allow/prevent access from the Internet\n"
+" --[no-]remote-printers Show/hide remote printers\n"
+" --[no-]share-printers Turn printer sharing on/off\n"
+" --[no-]user-cancel-any Allow/prevent users to cancel any job\n"
+msgstr ""
+"Penggunaan: cupsctl [opsi] [param=nilai ... paramN=nilaiN]\n"
+"\n"
+"Opsi:\n"
+"\n"
+" -E Mengaktifkan enkripsi\n"
+" -U namapengguna Menentukan nama pengguna\n"
+" -h server[:portal Menentukan alamat server\n"
+"\n"
+" --[no-]debug-logging Mengaktifkan/tidak pencatat debug\n"
+" --[no-]remote-admin Mengaktifkan/tidak administrasi jarak jauh\n"
+" --[no-]remote-any Biarkan/cegah akses dari Internet\n"
+" --[no-]remote-printers Tampilkan/sembunyikan pencetak jarak jauh\n"
+" --[no-]share-printers Mengaktifkan/tidak pencetak yang dikongsi\n"
+" --[no-]user-cancel-any Biarkan/cegah pengguna biasa membatalkan tugas\n"
+
+#: scheduler/main.c:1806
+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 ""
+"Penggunaan: cupsd [-c berkas-konfigurasi] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c berkas-konfigurasi Memuat berkas konfigurasi alternatif\n"
+"-f Berjalan pada latar depan\n"
+"-F Berjalan pada latar depan tapi terpisah\n"
+"-h Tampilkan pesan ini\n"
+"-l Menjalankan cupsd dari launchd(8)\n"
+
+#: scheduler/cupsfilter.c:953
+msgid ""
+"Usage: cupsfilter -m mime/type [ options ] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" -c cupsd.conf Set cupsd.conf file to use\n"
+" -n copies Set number of copies\n"
+" -o name=value Set option(s)\n"
+" -p filename.ppd Set PPD file\n"
+" -t title Set title\n"
+msgstr ""
+"Penggunaan: cupsfilter -m mime/jenis [ opsi ] namaberkas\n"
+"\n"
+"Opsi:\n"
+"\n"
+" -c cupsd.conf Mengeset berkas cupsd.conf untuk digunakan\n"
+" -n salinan Mengeset banyaknya salinan\n"
+" -o nama=nilai Mengeset opsi\n"
+" -p namaberkas.ppd Mengeset berkas PPD\n"
+" -t judul Mengeset judul\n"
+
+#: systemv/cupstestdsc.c:431
+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 ""
+"Penggunaan: cupstestdsc [opsi] namaberkas.ps [... namaberkas.ps]\n"
+" cupstestdsc [opsi] -\n"
+"\n"
+"Opsi:\n"
+"\n"
+" -h Menampilkan cara guna program\n"
+"\n"
+" Catatan: program ini hanya memvalidasi komentar DSC, bukan PostScript itu sendiri.\n"
+
+#: systemv/cupstestppd.c:2409
+msgid ""
+"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+" program | cupstestppd [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -R root-directory Set alternate root\n"
+" -W {all,none,constraints,defaults,filters,translations}\n"
+" Issue warnings instead of errors\n"
+" -q Run silently\n"
+" -r Use 'relaxed' open mode\n"
+" -v Be slightly verbose\n"
+" -vv Be very verbose\n"
+msgstr ""
+"Penggunaan: cupstestppd [opsi] namaberkas1.ppd[.gz] [... namaberkasN.ppd[.gz]]\n"
+" program | cupstestppd [opsi] -\n"
+"\n"
+"Opsi:\n"
+"\n"
+" -R direktori-root Mengeset root alternatif\n"
+" -W {all,none,constraints,defaults,filters,translations}\n"
+" Kabar peringatan ketimbang kesalahan\n"
+" -q Berjalan sangat senyap\n"
+" -r Menggunakan mode terbuka 'relaxed'\n"
+" -v Menjadi tidak begitu verbose\n"
+" -vv Menjadi sangat verbose\n"
+
+#: systemv/lpmove.c:138
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Penggunaan: lpmove tugas/sumber tujuan\n"
+
+#: systemv/lpoptions.c:479
+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 ""
+"Penggunaan: lpoptions [-h server] [-E] -d pencetak\n"
+" lpoptions [-h server] [-E] [-p pencetak] -l\n"
+" lpoptions [-h server] [-E] -p pencetak -o opsi[=nilai] ...\n"
+" lpoptions [-h server] [-E] -x pencetak\n"
+
+#: systemv/lppasswd.c:493
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Penggunaan: lppasswd [-g namakelompok]\n"
+
+#: systemv/lppasswd.c:496
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+" lppasswd [-g groupname] -a [username]\n"
+" lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Penggunaan: lppasswd [-g namakelompok] [namapengguna]\n"
+" lppasswd [-g namakelompok] -a [namapengguna]\n"
+" lppasswd [-g namakelompok] -x [namapengguna]\n"
+
+#: berkeley/lpq.c:663
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Penggunaan: lpq [-P tujuan] [-U namapengguna] [-h namahost[:portal]] [-l] [+interval]\n"
+
+#: backend/snmp.c:317
+msgid "Usage: snmp [host-or-ip-address]\n"
+msgstr "Penggunaan: snmp [host-atau-alamat-ip]\n"
+
+#: backend/usb-darwin.c:1606
+#, c-format
+msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
+msgstr "PERINGATAN: Diharapkan boolean untuk opsi waiteof \"%s\"\n"
+
+#: backend/usb-darwin.c:476
+msgid "WARNING: Couldn't create read channel\n"
+msgstr "PERINGATAN: Tak akan membuat kanal!\n"
+
+#: backend/usb-darwin.c:459
+msgid "WARNING: Couldn't create side channel\n"
+msgstr "PERINGATAN: Tak akan membuat kanal sisi!\n"
+
+#: backend/pap.c:1283 backend/parallel.c:616 backend/serial.c:1250
+#: backend/socket.c:441 backend/usb-unix.c:565
+msgid "WARNING: Failed to read side-channel request!\n"
+msgstr "PERINGATAN: Gagal membaca permintaan side-channel (kanal sisi)!\n"
+
+#: filter/pstops.c:2145
+#, c-format
+msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
+msgstr "PERINGATAN: Opsi \"%s\" tidak akan disertakan via IncludeFeature!\n"
+
+#: backend/lpd.c:589
+#, c-format
+msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
+msgstr "PERINGATAN: Host jarak jauh tidak merespon pada bita status perintah usai %d detik!\n"
+
+#: backend/lpd.c:982 backend/lpd.c:1111
+#, c-format
+msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
+msgstr "PERINGATAN: Host jarak jauh tidak merespon pada bita kontrol status usai %d detik!\n"
+
+#: backend/lpd.c:1067
+#, c-format
+msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
+msgstr "PERINGATAN: Host jarak jauh tidak merespon pada bita status data usai %d detik!\n"
+
+#: backend/scsi-irix.c:205 backend/scsi-linux.c:224
+#, c-format
+msgid "WARNING: SCSI command timed out (%d); retrying...\n"
+msgstr "PERINGATAN: Perintah SCSI kehabisan waktu (%d); mencoba ulang...\n"
+
+#: filter/pstops.c:1026
+msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
+msgstr "PERINGATAN: Dokumen ini tidak sesuai dengan Adobe Document Structuring Conventions dan mungkin tidak tercetak dengan benar!\n"
+
+#: filter/pstops.c:2152
+#, c-format
+msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
+msgstr "PERINGATAN: Pilihan \"%s\" tak dikenal untuk opsi \"%s\"!\n"
+
+#: filter/pstops.c:2138
+#, c-format
+msgid "WARNING: Unknown option \"%s\"!\n"
+msgstr "PERINGATAN: Opsi \"%s\" tak dikenal!\n"
+
+#: backend/serial.c:373
+#, c-format
+msgid "WARNING: Unsupported baud rate %s!\n"
+msgstr "PERINGATAN: Tak mendukung baud rate %s!\n"
+
+#: backend/ipp.c:534 backend/ipp.c:647 backend/lpd.c:820 backend/socket.c:302
+#, c-format
+msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
+msgstr "PERINGATAN: pemulihan: Host jaringan '%s' sibuk; akan dicoba ulang dalam %d detik...\n"
+
+#: cups/adminutil.c:800
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Peringatan, tak ada driver pencetak Windows 2000 yang terpasang!"
+
+#: cups/ppd.c:1860
+msgid "Yes"
+msgstr "Ya"
+
+#: scheduler/client.c:2284
+#, c-format
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Anda harus mengakses halaman ini melalui URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+
+#: cups/notify.c:102
+msgid "aborted"
+msgstr "digagalkan"
+
+#: cups/notify.c:99
+msgid "canceled"
+msgstr "dibatalkan"
+
+#: cups/notify.c:105
+msgid "completed"
+msgstr "diselesaikan"
+
+#: scheduler/cupsfilter.c:300
+msgid "convert: Use the -f option to specify a file to convert.\n"
+msgstr "konversi: Gunakan opsi -f untuk menentukan berkas yang hendak dikonversi.\n"
+
+#: scheduler/ipp.c:5591
+msgid "cups-deviced failed to execute."
+msgstr "cups-deviced gagal dieksekusi."
+
+#: scheduler/ipp.c:6100 scheduler/ipp.c:6328
+msgid "cups-driverd failed to execute."
+msgstr "cups-driverd gagal dieksekusi."
+
+#: systemv/cupsaddsmb.c:226
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: Tak ada berkas PPD untuk pencetak \"%s\" - %s\n"
+
+#: systemv/cupsctl.c:189
+#, c-format
+msgid "cupsctl: Unknown option \"%s\"!\n"
+msgstr "cupsctl: Opsi tak dikenal \"%s\"!\n"
+
+#: systemv/cupsctl.c:191
+#, c-format
+msgid "cupsctl: Unknown option \"-%c\"!\n"
+msgstr "cupsctl: Opsi tak dikenal \"-%c\"!\n"
+
+#: scheduler/main.c:178
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: Diharapkan nama berkas konfigurasi usai opsi \"-c\"!\n"
+
+#: scheduler/main.c:253
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: Argumen \"%s\" tak dikenal - digagalkan!\n"
+
+#: scheduler/main.c:246
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: Opsi \"%c\" tak dikenal- digagalkan!\n"
+
+#: scheduler/main.c:233
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr "cupsd: dukungan launchd(8) tidak dikompilasi serta, menjalankan dalam mode normal.\n"
+
+#: scheduler/cupsfilter.c:308
+msgid "cupsfilter: Only one filename can be specified!\n"
+msgstr "cupsfilter: Hanya satu nama berkas yang bisa ditentukan!\n"
+
+#: systemv/cupstestppd.c:201
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: Opsi -q tidak cocok dengan opsi -v.\n"
+
+#: systemv/cupstestppd.c:217
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: Opsi -v tidak cocok dengan opsi -q.\n"
+
+#: systemv/lpstat.c:1351 systemv/lpstat.c:1354 systemv/lpstat.c:1357
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "perangkat untuk %s/%s: %s\n"
+
+#: systemv/lpstat.c:1338 systemv/lpstat.c:1341 systemv/lpstat.c:1344
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "perangkat untuk %s: %s\n"
+
+#: cups/notify.c:90
+msgid "held"
+msgstr "ditahan"
+
+#: berkeley/lpc.c:214
+msgid "help\t\tget help on commands\n"
+msgstr "bantuan\t\tmemperoleh bantuan dari baris perintah\n"
+
+#: cups/notify.c:131
+msgid "idle"
+msgstr "menganggur"
+
+#: scheduler/ipp.c:6950
+msgid "job-printer-uri attribute missing!"
+msgstr "Atribut job-printer-uri hilang!"
+
+#: systemv/lpadmin.c:141 systemv/lpadmin.c:453
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: Nama kelas hanya boleh diisi karakter cetak!\n"
+
+#: systemv/lpadmin.c:750
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: Diharapkan PPD usai opsi '-P'!\n"
+
+#: systemv/lpadmin.c:491
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr "lpadmin: Diharapkan allow/deny:daftarpengguna usai opsi '-u'!\n"
+
+#: systemv/lpadmin.c:442
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: Diharapkan kelas usai opsi '-r'!\n"
+
+#: systemv/lpadmin.c:130
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: Diharapkan nama kelas usai opsi '-c'!\n"
+
+#: systemv/lpadmin.c:643
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: Diharapkan deskripsi usai opsi '-D'!\n"
+
+#: systemv/lpadmin.c:550
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: Diharapkan URI perangkat usai opsi '-v'!\n"
+
+#: systemv/lpadmin.c:659
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: Diharapkan jenis berkas usai opsi '-I'!\n"
+
+#: systemv/lpadmin.c:212
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: Diharapkan nama host usai opsi '-h'!\n"
+
+#: systemv/lpadmin.c:257
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: Diharapkan antarmuka usai opsi '-i'!\n"
+
+#: systemv/lpadmin.c:704
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: Diharapkan lokasi usai opsi '-L'!\n"
+
+#: systemv/lpadmin.c:338
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: Diharapkan model usai opsi '-m'!\n"
+
+#: systemv/lpadmin.c:358
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: Diharapkan nama=nilai usai opsi '-o'!\n"
+
+#: systemv/lpadmin.c:391
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: Diharapkan pencetak usai opsi '-p'!\n"
+
+#: systemv/lpadmin.c:174
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: Diharapkan nama pencetak usai opsi '-d'!\n"
+
+#: systemv/lpadmin.c:584
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: Diharapkan pencetak atau kelas usai opsi '-x'!\n"
+
+#: systemv/lpadmin.c:1127
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: Tak ada nama anggota yang terlihat!\n"
+
+#: systemv/lpadmin.c:893
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: Pencetak %s sudah menjadi anggota kelas %s.\n"
+
+#: systemv/lpadmin.c:1141
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: Pencetak %s bukanlah anggota kelas %s.\n"
+
+#: systemv/lpadmin.c:185 systemv/lpadmin.c:402 systemv/lpadmin.c:595
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: Nama pencetak hanya bisa mengandung karakter cetak!\n"
+
+#: systemv/lpadmin.c:115
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa menambah pencetak ke kelas:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:106 systemv/lpadmin.c:159 systemv/lpadmin.c:230
+#: systemv/lpadmin.c:291 systemv/lpadmin.c:310 systemv/lpadmin.c:376
+#: systemv/lpadmin.c:417 systemv/lpadmin.c:523 systemv/lpadmin.c:569
+#: systemv/lpadmin.c:615 systemv/lpadmin.c:677 systemv/lpadmin.c:723
+#: systemv/lpadmin.c:784
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: Tak bisa terkoneksi ke server: %s\n"
+
+#: systemv/lpadmin.c:1843
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: Tak bisa membuat berkas temporer - %s\n"
+
+#: systemv/lpadmin.c:1452
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: Tak bisa membuat berkas temporer: %s\n"
+
+#: systemv/lpadmin.c:1853
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: Tak bisa membuka berkas PPD \"%s\" - %s\n"
+
+#: systemv/lpadmin.c:1460
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: Tak bisa membuka berkas \"%s\": %s\n"
+
+#: systemv/lpadmin.c:426
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa membuang pencetak dari kelas:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:732
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset berkas PPD:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:532
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset URI perangkat:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:319
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset skrip antarmuka atau berkas PPD:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:239
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset skrip antarmuka:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:624
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset deskripsi pencetak:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:686
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset lokasi pencetak:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:793
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tak bisa mengeset opsi pencetak:\n"
+" Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:508
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: Opsi boleh/larang tak dikenal \"%s\"!\n"
+
+#: systemv/lpadmin.c:766
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpadmin.c:761
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: Pilihan tak dikenal '%c'!\n"
+
+#: systemv/lpadmin.c:665
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: Peringatan - jenis isi diabaikan!\n"
+
+#: berkeley/lpc.c:81 berkeley/lpc.c:109 berkeley/lpc.c:145
+msgid "lpc> "
+msgstr "lpc> "
+
+#: systemv/lpinfo.c:91 systemv/lpinfo.c:110
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: Tak bisa terkoneksi ke server: %s\n"
+
+#: systemv/lpinfo.c:151
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpinfo.c:145
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: Pilihan tak dikenal '%c'!\n"
+
+#: systemv/lpmove.c:149
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: Tak bisa terkoneksi ke server: %s\n"
+
+#: systemv/lpmove.c:131
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpmove.c:112
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: Pilihan tak dikenal '%c'!\n"
+
+#: systemv/lpoptions.c:152 systemv/lpoptions.c:170 systemv/lpoptions.c:246
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: Tak ada pencetak!?!\n"
+
+#: systemv/lpoptions.c:221
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: Tak bisa menambah pencetak: %s\n"
+
+#: systemv/lpoptions.c:446
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: Tak bisa mendapatkan berkas PPD untuk %s: %s\n"
+
+#: systemv/lpoptions.c:455
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: Tak bisa membuka berkas PPD untuk %s!\n"
+
+#: systemv/lpoptions.c:102
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: Pencetak atau kelas tak dikenal!\n"
+
+#: systemv/lppasswd.c:185
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: Hanya root yang bisa menambah atau menghapus sandi!\n"
+
+#: systemv/lppasswd.c:314
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: Berkas sandi sedang sibuk!\n"
+
+#: systemv/lppasswd.c:447
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: Berkas sandi tidak diperbaharui!\n"
+
+#: systemv/lppasswd.c:414
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: Maaf, sandi tidak cocok!\n"
+
+#: systemv/lppasswd.c:264
+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: Maaf, sandi ditolak.\n"
+"Sandi Anda harus setidaknya 6 karakter, tidak memuat\n"
+"nama pengguna Anda, dan harusnya memiliki satu huruf serta angka.\n"
+
+#: systemv/lppasswd.c:240
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: Maaf, sandi tidak cocok!\n"
+
+#: systemv/lppasswd.c:211 systemv/lppasswd.c:229
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: Tidak bisa menyalin string sandi: %s\n"
+
+#: systemv/lppasswd.c:317 systemv/lppasswd.c:326 systemv/lppasswd.c:344
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: Tak bisa membuka berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:379 systemv/lppasswd.c:392 systemv/lppasswd.c:424
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: Tak bisa menulis ke berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:462
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr "lppasswd: gagal mencadangkan berkas sandi yang lama: %s\n"
+
+#: systemv/lppasswd.c:475
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: gagal mengubah nama berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:404
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: pengguna \"%s\" dan kelompok \"%s\" tidak ada.\n"
+
+#: berkeley/lprm.c:74 berkeley/lprm.c:170
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: Tak bisa menghubungi server!\n"
+
+#: systemv/lpstat.c:1104
+#, c-format
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpstat: kesalahan - nama variabel lingkungan %s bukanlah tujuan yang ada \"%s\"!\n"
+
+#: systemv/lpstat.c:1033
+#, c-format
+msgid "members of class %s:\n"
+msgstr "anggota kelas %s:\n"
+
+#: berkeley/lpq.c:575
+msgid "no entries\n"
+msgstr "tak ada entri\n"
+
+#: systemv/lpstat.c:1108
+msgid "no system default destination\n"
+msgstr "tak ada tujuan sistem utama\n"
+
+#: scheduler/ipp.c:5324
+msgid "notify-events not specified!"
+msgstr "notify-events tidak dispesifikasikan!"
+
+#: scheduler/ipp.c:5229
+#, c-format
+msgid "notify-recipient-uri URI \"%s\" uses unknown scheme!"
+msgstr "URI notify-recipient-uri \"%s\" memakai skema tak dikenal!"
+
+#: scheduler/ipp.c:3285 scheduler/ipp.c:5948 scheduler/ipp.c:6571
+#: scheduler/ipp.c:7925
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "notify-subscription-id %d tidak baik!"
+
+#: cups/adminutil.c:922
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "membuka %s gagal: %s"
+
+#: cups/notify.c:87
+msgid "pending"
+msgstr "tunda"
+
+#: systemv/lpstat.c:2024
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "pencetak %s ditiadakan sejak %s -\n"
+
+#: systemv/lpstat.c:2013
+#, c-format
+msgid "printer %s is idle. enabled since %s\n"
+msgstr "pencetak %s sedang menganggur. diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:2018
+#, c-format
+msgid "printer %s now printing %s-%d. enabled since %s\n"
+msgstr "pencetak %s saat ini tengah mencetak %s-%d. diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:2136
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "pencetak %s/%s dinonaktifkan sejak %s -\n"
+
+#: systemv/lpstat.c:2122
+#, c-format
+msgid "printer %s/%s is idle. enabled since %s\n"
+msgstr "pencetak %s/%s sedang menganggur. diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:2129
+#, c-format
+msgid "printer %s/%s now printing %s-%d. enabled since %s\n"
+msgstr "pencetak %s/%s saat ini tengah mencetak %s-%d. diaktifkan sejak %s\n"
+
+#: cups/notify.c:93 cups/notify.c:134
+msgid "processing"
+msgstr "memproses"
+
+#: systemv/lp.c:722
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "identitas permintaan adalah %s-%d (%d berkas)\n"
+
+#: systemv/lpstat.c:2256
+msgid "scheduler is not running\n"
+msgstr "penjadwal tidak berjalan\n"
+
+#: systemv/lpstat.c:2254
+msgid "scheduler is running\n"
+msgstr "penjadwal tengah berjalan\n"
+
+#: cups/adminutil.c:2168
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "status dari %s gagal: %s"
+
+#: berkeley/lpc.c:216
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\tmenampilkan status daemon dan antrian\n"
+
+#: cups/notify.c:96 cups/notify.c:137
+msgid "stopped"
+msgstr "dihentikan"
+
+#: systemv/lpstat.c:1082
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "tujuan standar sistem: %s\n"
+
+#: systemv/lpstat.c:1079
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "tujuan standar sistem: %s/%s\n"
+
+#: cups/notify.c:108 cups/notify.c:140
+msgid "unknown"
+msgstr "tak dikenal"
+
+#: cups/notify.c:117
+msgid "untitled"
+msgstr "tak berjudul"
+
diff --git a/locale/ppdc_id.po b/locale/ppdc_id.po
new file mode 100644
index 000000000..96b46447f
--- /dev/null
+++ b/locale/ppdc_id.po
@@ -0,0 +1,592 @@
+# Template message catalog for the CUPS PPD compiler.
+msgid "Color Mode"
+msgstr "Color Mode"
+
+msgid "2-Sided Printing"
+msgstr "2-Sided Printing"
+
+msgid "Media Source"
+msgstr "Media Source"
+
+msgid "Options Installed"
+msgstr "Options Installed"
+
+msgid "Paper Type"
+msgstr "Paper Type"
+
+msgid "Duplex Unit"
+msgstr "Duplex Unit"
+
+msgid "Optional Input Tray"
+msgstr "Optional Input Tray"
+
+msgid "Optional Hard Disk"
+msgstr "Optional Hard Disk"
+
+msgid "Media Size"
+msgstr "Media Size"
+
+msgid "8 x 10\""
+msgstr "8 x 10\""
+
+msgid "9 x 11\""
+msgstr "9 x 11\""
+
+msgid "9x12 Closed Booklet Envelope"
+msgstr "9x12 Closed Booklet Envelope"
+
+msgid "A3 (297 x 420 mm)"
+msgstr "A3 (297 x 420 mm)"
+
+msgid "A3 (Oversize)"
+msgstr "A3 (Oversize)"
+
+msgid "Full Bleed A3"
+msgstr "Full Bleed A3"
+
+msgid "A3 Oversize Tray"
+msgstr "A3 Oversize Tray"
+
+msgid "A4 (210 x 297 mm)"
+msgstr "A4 (210 x 297 mm)"
+
+msgid "Full Bleed A4"
+msgstr "Full Bleed A4"
+
+msgid "A4 (Small)"
+msgstr "A4 (Small)"
+
+msgid "A5 (148 x 210 mm)"
+msgstr "A5 (148 x 210 mm)"
+
+msgid "A6 (105 x 148 mm)"
+msgstr "A6 (105 x 148 mm)"
+
+msgid "A6 Card"
+msgstr "A6 Card"
+
+msgid "C"
+msgstr "C"
+
+msgid "D"
+msgstr "D"
+
+msgid "E"
+msgstr "E"
+
+msgid "ARCH A"
+msgstr "ARCH A"
+
+msgid "ARCH B"
+msgstr "ARCH B"
+
+msgid "ARCH C"
+msgstr "ARCH C"
+
+msgid "ARCH D"
+msgstr "ARCH D"
+
+msgid "ARCH E"
+msgstr "ARCH E"
+
+msgid "Adhesive Paper"
+msgstr "Adhesive Paper"
+
+msgid "ANSI C"
+msgstr "ANSI C"
+
+msgid "ANSI D"
+msgstr "ANSI D"
+
+msgid "ANSI E"
+msgstr "ANSI E"
+
+msgid "Auto Select"
+msgstr "Auto Select"
+
+msgid "JB0"
+msgstr "JB0"
+
+msgid "JB1"
+msgstr "JB1"
+
+msgid "JB2"
+msgstr "JB2"
+
+msgid "JB3"
+msgstr "JB3"
+
+msgid "B4 (JIS)"
+msgstr "B4 (JIS)"
+
+msgid "JIS B5"
+msgstr "JIS B5"
+
+msgid "B6 (JIS)"
+msgstr "B6 (JIS)"
+
+msgid "Black"
+msgstr "Black"
+
+msgid "Bond Paper"
+msgstr "Bond Paper"
+
+msgid "Bin 1"
+msgstr "Bin 1"
+
+msgid "Bin 10"
+msgstr "Bin 10"
+
+msgid "Bin 2"
+msgstr "Bin 2"
+
+msgid "Bin 3"
+msgstr "Bin 3"
+
+msgid "Bin 4"
+msgstr "Bin 4"
+
+msgid "Bin 5"
+msgstr "Bin 5"
+
+msgid "Bin 6"
+msgstr "Bin 6"
+
+msgid "Bin 7"
+msgstr "Bin 7"
+
+msgid "Bin 8"
+msgstr "Bin 8"
+
+msgid "Bin 9"
+msgstr "Bin 9"
+
+msgid "Black Only"
+msgstr "Black Only"
+
+msgid "Bypass Tray"
+msgstr "Bypass Tray"
+
+msgid "9 Envelope"
+msgstr "9 Envelope"
+
+msgid "C5 Envelope"
+msgstr "C5 Envelope"
+
+msgid "Envelope C6"
+msgstr "Envelope C6"
+
+msgid "Color"
+msgstr "Color"
+
+msgid "Card Stock"
+msgstr "Card Stock"
+
+msgid "Paper Cassette"
+msgstr "Paper Cassette"
+
+msgid "Heavy Weight Matte"
+msgstr "Heavy Weight Matte"
+
+msgid "Colored Paper"
+msgstr "Colored Paper"
+
+msgid "Env Comm10"
+msgstr "Env Comm10"
+
+msgid "Printer Default"
+msgstr "Printer Default"
+
+msgid "Long Edge"
+msgstr "Long Edge"
+
+msgid "Short Edge"
+msgstr "Short Edge"
+
+msgid "#10 Envelope"
+msgstr "#10 Envelope"
+
+msgid "C4 Envelope"
+msgstr "C4 Envelope"
+
+msgid "C5 Envelope"
+msgstr "C5 Envelope"
+
+msgid "C6 Env."
+msgstr "C6 Env."
+
+msgid "Envelope MAX"
+msgstr "Envelope MAX"
+
+msgid "Choukei 4 Gou"
+msgstr "Choukei 4 Gou"
+
+msgid "DL Envelope"
+msgstr "DL Envelope"
+
+msgid "B4 Envelope"
+msgstr "B4 Envelope"
+
+msgid "Env ISO B5"
+msgstr "Env ISO B5"
+
+msgid "B6 "
+msgstr "B6 "
+
+msgid "Kaku #2 envelope"
+msgstr "Kaku #2 envelope"
+
+msgid "Monarch Envelope"
+msgstr "Monarch Envelope"
+
+msgid "#6 3/4 Envelope"
+msgstr "#6 3/4 Envelope"
+
+msgid "Envelope #4"
+msgstr "Envelope #4"
+
+msgid "Envelope Feeder"
+msgstr "Envelope Feeder"
+
+msgid "7.25 x 10.5\""
+msgstr "7.25 x 10.5\""
+
+msgid "Off"
+msgstr "Off"
+
+msgid "Finisher Tray"
+msgstr "Finisher Tray"
+
+msgid "Glossy Paper"
+msgstr "Glossy Paper"
+
+msgid "Glossy Film"
+msgstr "Glossy Film"
+
+msgid "Black and White"
+msgstr "Black and White"
+
+msgid "Statement"
+msgstr "Statement"
+
+msgid "A0"
+msgstr "A0"
+
+msgid "A1"
+msgstr "A1"
+
+msgid "A2"
+msgstr "A2"
+
+msgid "A3"
+msgstr "A3"
+
+msgid "A4"
+msgstr "A4"
+
+msgid "ISO B3"
+msgstr "ISO B3"
+
+msgid "ISO B4"
+msgstr "ISO B4"
+
+msgid "B5"
+msgstr "B5"
+
+msgid "B6"
+msgstr "B6"
+
+msgid "Tab Stock"
+msgstr "Tab Stock"
+
+msgid "Inkjet Paper"
+msgstr "Inkjet Paper"
+
+msgid "Installed"
+msgstr "Installed"
+
+msgid "Iron-On Transfer"
+msgstr "Iron-On Transfer"
+
+msgid "JB0"
+msgstr "JB0"
+
+msgid "JB1"
+msgstr "JB1"
+
+msgid "JB2"
+msgstr "JB2"
+
+msgid "JB3"
+msgstr "JB3"
+
+msgid "JB4"
+msgstr "JB4"
+
+msgid "Hagaki"
+msgstr "Hagaki"
+
+msgid "Ofuku Hagaki"
+msgstr "Ofuku Hagaki"
+
+msgid "Labels"
+msgstr "Labels"
+
+msgid "Tray 4"
+msgstr "Tray 4"
+
+msgid "US Legal"
+msgstr "US Legal"
+
+msgid "Legal (Small)"
+msgstr "Legal (Small)"
+
+msgid "US Letter"
+msgstr "US Letter"
+
+msgid "Full Bleed US Letter"
+msgstr "Full Bleed US Letter"
+
+msgid "Letter Plus"
+msgstr "Letter Plus"
+
+msgid "Letter (Small)"
+msgstr "Letter (Small)"
+
+msgid "Lower Tray"
+msgstr "Lower Tray"
+
+msgid "Mailbox"
+msgstr "Mailbox"
+
+msgid "Manual Feed"
+msgstr "Manual Feed"
+
+msgid "Manual Envelope"
+msgstr "Manual Envelope"
+
+msgid "Middle Tray"
+msgstr "Middle Tray"
+
+msgid "Off"
+msgstr "Off"
+
+msgid "Not Installed"
+msgstr "Not Installed"
+
+msgid "On"
+msgstr "On"
+
+msgid "Oversize A0"
+msgstr "Oversize A0"
+
+msgid "Oversize A1"
+msgstr "Oversize A1"
+
+msgid "Oversize A2"
+msgstr "Oversize A2"
+
+msgid "None"
+msgstr "None"
+
+msgid "Bin 1"
+msgstr "Bin 1"
+
+msgid "Bin 2"
+msgstr "Bin 2"
+
+msgid "Bin 3"
+msgstr "Bin 3"
+
+msgid "Bin 4"
+msgstr "Bin 4"
+
+msgid "Bin 5"
+msgstr "Bin 5"
+
+msgid "Bin 6"
+msgstr "Bin 6"
+
+msgid "Bin 7"
+msgstr "Bin 7"
+
+msgid "Bin 8"
+msgstr "Bin 8"
+
+msgid "Mailbox Tray 1"
+msgstr "Mailbox Tray 1"
+
+msgid "Mailbox Tray 10"
+msgstr "Mailbox Tray 10"
+
+msgid "Mailbox Tray 2"
+msgstr "Mailbox Tray 2"
+
+msgid "Mailbox Tray 3"
+msgstr "Mailbox Tray 3"
+
+msgid "Mailbox Tray 4"
+msgstr "Mailbox Tray 4"
+
+msgid "Mailbox Tray 5"
+msgstr "Mailbox Tray 5"
+
+msgid "Mailbox Tray 6"
+msgstr "Mailbox Tray 6"
+
+msgid "Mailbox Tray 7"
+msgstr "Mailbox Tray 7"
+
+msgid "Mailbox Tray 8"
+msgstr "Mailbox Tray 8"
+
+msgid "Mailbox Tray 9"
+msgstr "Mailbox Tray 9"
+
+msgid "24\" x 108\""
+msgstr "24\" x 108\""
+
+msgid "24\" x 48\""
+msgstr "24\" x 48\""
+
+msgid "24\" x 60\""
+msgstr "24\" x 60\""
+
+msgid "24\" x 72\""
+msgstr "24\" x 72\""
+
+msgid "24\" x 84\""
+msgstr "24\" x 84\""
+
+msgid "24\" x 96\""
+msgstr "24\" x 96\""
+
+msgid "36\" x 108\""
+msgstr "36\" x 108\""
+
+msgid "36\" x 60\""
+msgstr "36\" x 60\""
+
+msgid "36\" x 72\""
+msgstr "36\" x 72\""
+
+msgid "36\" x 84\""
+msgstr "36\" x 84\""
+
+msgid "36\" x 96\""
+msgstr "36\" x 96\""
+
+msgid "42\" x 60\""
+msgstr "42\" x 60\""
+
+msgid "42\" x 72\""
+msgstr "42\" x 72\""
+
+msgid "42\" x 84\""
+msgstr "42\" x 84\""
+
+msgid "54\" x 72\""
+msgstr "54\" x 72\""
+
+msgid "54\" x 84\""
+msgstr "54\" x 84\""
+
+msgid "54\" x 96\""
+msgstr "54\" x 96\""
+
+msgid "60\" x 72\""
+msgstr "60\" x 72\""
+
+msgid "60\" x 84\""
+msgstr "60\" x 84\""
+
+msgid "60\" x 96\""
+msgstr "60\" x 96\""
+
+msgid "Photo Paper"
+msgstr "Photo Paper"
+
+msgid "Plain Paper"
+msgstr "Plain Paper"
+
+msgid "Letterhead"
+msgstr "Letterhead"
+
+msgid "Printer Default"
+msgstr "Printer Default"
+
+msgid "Color"
+msgstr "Color"
+
+msgid "Recycled Paper"
+msgstr "Recycled Paper"
+
+msgid "Roll Feed"
+msgstr "Roll Feed"
+
+msgid "Roll 1"
+msgstr "Roll 1"
+
+msgid "Roll 2"
+msgstr "Roll 2"
+
+msgid "Cut Sheet"
+msgstr "Cut Sheet"
+
+msgid "Super B"
+msgstr "Super B"
+
+msgid "Toyo"
+msgstr "Toyo"
+
+msgid "Tab Stock"
+msgstr "Tab Stock"
+
+msgid "11x17"
+msgstr "11x17"
+
+msgid "11x17 (Oversize)"
+msgstr "11x17 (Oversize)"
+
+msgid "12x18"
+msgstr "12x18"
+
+msgid "Full Bleed Tabloid"
+msgstr "Full Bleed Tabloid"
+
+msgid "11x17"
+msgstr "11x17"
+
+msgid "Thick Paper"
+msgstr "Thick Paper"
+
+msgid "Top Output Tray"
+msgstr "Top Output Tray"
+
+msgid "Top Output Tray"
+msgstr "Top Output Tray"
+
+msgid "Transparency"
+msgstr "Transparency"
+
+msgid "Tray 1"
+msgstr "Tray 1"
+
+msgid "Tray 2"
+msgstr "Tray 2"
+
+msgid "Tray 3"
+msgstr "Tray 3"
+
+msgid "Tray 4"
+msgstr "Tray 4"
+
+msgid "Tray 5"
+msgstr "Tray 5"
+
+msgid "Tray 6"
+msgstr "Tray 6"
+
+msgid "Upper Tray"
+msgstr "Upper Tray"
+
diff --git a/man/Makefile b/man/Makefile
index 72477b7cd..c89770b08 100644
--- a/man/Makefile
+++ b/man/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6657 2007-07-13 01:01:14Z mike $"
+# "$Id: Makefile 7601 2008-05-20 21:08:08Z mike $"
#
# Man page makefile for the Common UNIX Printing System (CUPS).
#
@@ -223,5 +223,5 @@ mantohtml: mantohtml.o
#
-# End of "$Id: Makefile 6657 2007-07-13 01:01:14Z mike $".
+# End of "$Id: Makefile 7601 2008-05-20 21:08:08Z mike $".
#
diff --git a/man/accept.man b/man/accept.man
index 3063b09a8..477d125e9 100644
--- a/man/accept.man
+++ b/man/accept.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: accept.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: accept.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" accept/reject man page for the Common UNIX Printing System (CUPS).
.\"
@@ -75,5 +75,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: accept.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: accept.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/backend.man b/man/backend.man
index e4524707f..b8a52d9ba 100644
--- a/man/backend.man
+++ b/man/backend.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: backend.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: backend.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" Backend man page for the Common UNIX Printing System (CUPS).
.\"
@@ -175,5 +175,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: backend.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: backend.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cancel.man b/man/cancel.man
index 646467a23..babaeed8d 100644
--- a/man/cancel.man
+++ b/man/cancel.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: cancel.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cancel man page for the Common UNIX Printing System (CUPS).
.\"
@@ -71,5 +71,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: cancel.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/classes.conf.man b/man/classes.conf.man
index 5987f68bf..882192770 100644
--- a/man/classes.conf.man
+++ b/man/classes.conf.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: classes.conf.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: classes.conf.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" classes.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -114,5 +114,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: classes.conf.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: classes.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/commandtoescpx.man b/man/commandtoescpx.man
index 683edeaaf..d860a3798 100644
--- a/man/commandtoescpx.man
+++ b/man/commandtoescpx.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: commandtoescpx.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" rastertoescpx man page for the CUPS Driver Development Kit.
.\"
@@ -29,5 +29,5 @@ cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5)
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: commandtoescpx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/commandtopclx.man b/man/commandtopclx.man
index dec7add2e..529a4cf64 100644
--- a/man/commandtopclx.man
+++ b/man/commandtopclx.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: commandtopclx.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" rastertopclx man page for the CUPS Driver Development Kit.
.\"
@@ -29,5 +29,5 @@ cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5)
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: commandtopclx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cups-config.man b/man/cups-config.man
index 6e6e014ea..761261553 100644
--- a/man/cups-config.man
+++ b/man/cups-config.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cups-config.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cups-config.man 7646 2008-06-16 17:26:20Z mike $"
.\"
.\" cups-config man page for the Common UNIX Printing System (CUPS).
.\"
@@ -106,5 +106,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: cups-config.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cups-config.man 7646 2008-06-16 17:26:20Z mike $".
.\"
diff --git a/man/cups-deviced.man.in b/man/cups-deviced.man.in
index 9db1f07c6..c3a99334f 100644
--- a/man/cups-deviced.man.in
+++ b/man/cups-deviced.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cups-deviced.man.in 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cups-deviced.man.in 7646 2008-06-16 17:26:20Z mike $"
.\"
.\" cups-deviced man page for the Common UNIX Printing System (CUPS).
.\"
@@ -40,5 +40,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: cups-deviced.man.in 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cups-deviced.man.in 7646 2008-06-16 17:26:20Z mike $".
.\"
diff --git a/man/cups-driverd.man.in b/man/cups-driverd.man.in
index b84a78fe7..576d3612a 100644
--- a/man/cups-driverd.man.in
+++ b/man/cups-driverd.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cups-driverd.man.in 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cups-driverd.man.in 7662 2008-06-17 14:34:20Z mike $"
.\"
.\" cups-driverd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -101,5 +101,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: cups-driverd.man.in 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cups-driverd.man.in 7662 2008-06-17 14:34:20Z mike $".
.\"
diff --git a/man/cups-lpd.man.in b/man/cups-lpd.man.in
index 6c8cd3ddc..6c06e75ae 100644
--- a/man/cups-lpd.man.in
+++ b/man/cups-lpd.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cups-lpd.man.in 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cups-lpd.man.in 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cups-lpd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -114,5 +114,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: cups-lpd.man.in 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cups-lpd.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cups-polld.man b/man/cups-polld.man
index b6a3ba120..17a9719c6 100644
--- a/man/cups-polld.man
+++ b/man/cups-polld.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cups-polld.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cups-polld.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cups-polld man page for the Common UNIX Printing System (CUPS).
.\"
@@ -34,5 +34,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: cups-polld.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cups-polld.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cups-snmp.conf.man b/man/cups-snmp.conf.man
index 4374cf684..bb8e4b8b5 100644
--- a/man/cups-snmp.conf.man
+++ b/man/cups-snmp.conf.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: cups-snmp.conf.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" snmp.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -69,5 +69,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: cups-snmp.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupsaddsmb.man.in b/man/cupsaddsmb.man.in
index 832145935..00e05ebfa 100644
--- a/man/cupsaddsmb.man.in
+++ b/man/cupsaddsmb.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cupsaddsmb.man.in 6729 2007-07-26 00:30:52Z mike $"
+.\" "$Id: cupsaddsmb.man.in 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupsaddsmb man page for the Common UNIX Printing System (CUPS).
.\"
@@ -210,5 +210,5 @@ http://www.cups.org/windows/
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: cupsaddsmb.man.in 6729 2007-07-26 00:30:52Z mike $".
+.\" End of "$Id: cupsaddsmb.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupsctl.man b/man/cupsctl.man
index f88fee99c..dc4929d7b 100644
--- a/man/cupsctl.man
+++ b/man/cupsctl.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: cupsctl.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupsctl man page for the Common UNIX Printing System (CUPS).
.\"
@@ -101,5 +101,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: cupsctl.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupsd.conf.man.in b/man/cupsd.conf.man.in
index 875a087c8..5423988e9 100644
--- a/man/cupsd.conf.man.in
+++ b/man/cupsd.conf.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cupsd.conf.man.in 7002 2007-10-01 23:07:37Z mike $"
+.\" "$Id: cupsd.conf.man.in 7645 2008-06-16 17:21:10Z mike $"
.\"
.\" cupsd.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -618,5 +618,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: cupsd.conf.man.in 7002 2007-10-01 23:07:37Z mike $".
+.\" End of "$Id: cupsd.conf.man.in 7645 2008-06-16 17:21:10Z mike $".
.\"
diff --git a/man/cupsd.man.in b/man/cupsd.man.in
index bdcff0316..e754a64f5 100644
--- a/man/cupsd.man.in
+++ b/man/cupsd.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cupsd.man.in 6875 2007-08-27 23:25:06Z mike $"
+.\" "$Id: cupsd.man.in 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupsd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -69,5 +69,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: cupsd.man.in 6875 2007-08-27 23:25:06Z mike $".
+.\" End of "$Id: cupsd.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupsenable.man b/man/cupsenable.man
index a45518fdf..a466213fe 100644
--- a/man/cupsenable.man
+++ b/man/cupsenable.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cupsenable.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cupsenable.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupsenable/cupsdisable man page for the Common UNIX Printing System
.\" (CUPS).
@@ -80,5 +80,5 @@ http://localhost:631/help
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: cupsenable.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cupsenable.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupsfilter.man b/man/cupsfilter.man
index 0ccddc88a..a2d5c087d 100644
--- a/man/cupsfilter.man
+++ b/man/cupsfilter.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: cupsfilter.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupsfilter man page for the Common UNIX Printing System (CUPS).
.\"
@@ -76,5 +76,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: cupsfilter.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupstestdsc.man b/man/cupstestdsc.man
index fb9d245fd..ce1c3a4d0 100644
--- a/man/cupstestdsc.man
+++ b/man/cupstestdsc.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: cupstestdsc.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupstestdsc man page for the Common UNIX Printing System (CUPS).
.\"
@@ -46,5 +46,5 @@ Specification, Version 3.0.
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: cupstestdsc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/cupstestppd.man b/man/cupstestppd.man
index 9cbfbd0e4..311c71808 100644
--- a/man/cupstestppd.man
+++ b/man/cupstestppd.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: cupstestppd.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: cupstestppd.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" cupstestppd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -143,5 +143,5 @@ Adobe PostScript Printer Description File Format Specification, Version 4.3.
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: cupstestppd.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: cupstestppd.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/filter.man b/man/filter.man
index 17849f661..049e378f3 100644
--- a/man/filter.man
+++ b/man/filter.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: filter.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: filter.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" filter man page for the Common UNIX Printing System (CUPS).
.\"
@@ -224,5 +224,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: filter.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: filter.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lp.man b/man/lp.man
index e505e23c3..f2e4ef9af 100644
--- a/man/lp.man
+++ b/man/lp.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lp.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lp.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lp man page for the Common UNIX Printing System (CUPS).
.\"
@@ -239,5 +239,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lp.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lp.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpadmin.man b/man/lpadmin.man
index ab6fc264e..91658aafb 100644
--- a/man/lpadmin.man
+++ b/man/lpadmin.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpadmin.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpadmin.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -203,5 +203,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: lpadmin.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpadmin.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpc.man b/man/lpc.man
index be2add312..caa9896af 100644
--- a/man/lpc.man
+++ b/man/lpc.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpc.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpc.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpc man page for the Common UNIX Printing System (CUPS).
.\"
@@ -67,5 +67,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpc.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpinfo.man b/man/lpinfo.man
index 81a583c1b..fff2ddd48 100644
--- a/man/lpinfo.man
+++ b/man/lpinfo.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpinfo.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpinfo.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpinfo man page for the Common UNIX Printing System (CUPS).
.\"
@@ -61,5 +61,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpinfo.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpinfo.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpmove.man b/man/lpmove.man
index 0447fbc98..5bd406ffb 100644
--- a/man/lpmove.man
+++ b/man/lpmove.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpmove.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpmove.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpmove man page for the Common UNIX Printing System (CUPS).
.\"
@@ -62,5 +62,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpmove.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpmove.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpoptions.man.in b/man/lpoptions.man.in
index ac9f7d4df..c446142b8 100644
--- a/man/lpoptions.man.in
+++ b/man/lpoptions.man.in
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpoptions.man.in 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpoptions.man.in 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpoptions man page for the Common UNIX Printing System (CUPS).
.\"
@@ -131,5 +131,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpoptions.man.in 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpoptions.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lppasswd.man b/man/lppasswd.man
index 7aa830430..93e89e0b7 100644
--- a/man/lppasswd.man
+++ b/man/lppasswd.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lppasswd.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lppasswd.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -64,5 +64,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: lppasswd.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lppasswd.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpq.man b/man/lpq.man
index 5745011d4..8bbe47b56 100644
--- a/man/lpq.man
+++ b/man/lpq.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpq.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpq.man 7646 2008-06-16 17:26:20Z mike $"
.\"
.\" lpq man page for the Common UNIX Printing System (CUPS).
.\"
@@ -68,5 +68,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: lpq.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpq.man 7646 2008-06-16 17:26:20Z mike $".
.\"
diff --git a/man/lpr.man b/man/lpr.man
index d381cf76c..d678e61f2 100644
--- a/man/lpr.man
+++ b/man/lpr.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpr.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpr.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpr man page for the Common UNIX Printing System (CUPS).
.\"
@@ -114,5 +114,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpr.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpr.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lprm.man b/man/lprm.man
index 937b079bd..6f24d09a2 100644
--- a/man/lprm.man
+++ b/man/lprm.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lprm.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lprm.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lprm man page for the Common UNIX Printing System (CUPS).
.\"
@@ -61,5 +61,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lprm.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lprm.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/lpstat.man b/man/lpstat.man
index 96ae4c8f6..47294c5a5 100644
--- a/man/lpstat.man
+++ b/man/lpstat.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: lpstat.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: lpstat.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" lpstat man page for the Common UNIX Printing System (CUPS).
.\"
@@ -135,5 +135,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: lpstat.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: lpstat.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/mailto.conf.man b/man/mailto.conf.man
index 192079bbc..c6d9d3932 100644
--- a/man/mailto.conf.man
+++ b/man/mailto.conf.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: mailto.conf.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" mailto.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -56,5 +56,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: mailto.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/mantohtml.c b/man/mantohtml.c
index 9ae8de71d..12059ac45 100644
--- a/man/mantohtml.c
+++ b/man/mantohtml.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mantohtml.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: mantohtml.c 7662 2008-06-17 14:34:20Z mike $"
*
* Man page to HTML conversion program.
*
@@ -716,5 +716,5 @@ strmove(char *d, /* I - Destination */
/*
- * End of "$Id: mantohtml.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: mantohtml.c 7662 2008-06-17 14:34:20Z mike $".
*/
diff --git a/man/mime.convs.man b/man/mime.convs.man
index 3ff7ae084..9c91a65c7 100644
--- a/man/mime.convs.man
+++ b/man/mime.convs.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: mime.convs.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: mime.convs.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" mime.convs man page for the Common UNIX Printing System (CUPS).
.\"
@@ -42,5 +42,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: mime.convs.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: mime.convs.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/mime.types.man b/man/mime.types.man
index 24659a991..ce785907f 100644
--- a/man/mime.types.man
+++ b/man/mime.types.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: mime.types.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: mime.types.man 7670 2008-06-17 22:42:08Z mike $"
.\"
.\" mime.types man page for the Common UNIX Printing System (CUPS).
.\"
@@ -95,5 +95,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id: mime.types.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: mime.types.man 7670 2008-06-17 22:42:08Z mike $".
.\"
diff --git a/man/ppdc.man b/man/ppdc.man
index f352cfd6a..66c682eea 100644
--- a/man/ppdc.man
+++ b/man/ppdc.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdc.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" ppdc man page for the Common UNIX Printing System.
.\"
@@ -76,5 +76,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/ppdcfile.man b/man/ppdcfile.man
index d032cb670..de4f95129 100644
--- a/man/ppdcfile.man
+++ b/man/ppdcfile.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdcfile.man 7607 2008-05-21 01:06:23Z mike $"
.\"
.\" ppdcfile man page for the Common UNIX Printing System.
.\"
@@ -167,5 +167,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdcfile.man 7607 2008-05-21 01:06:23Z mike $".
.\"
diff --git a/man/ppdhtml.man b/man/ppdhtml.man
index 2d20f07cb..5727e6e30 100644
--- a/man/ppdhtml.man
+++ b/man/ppdhtml.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdhtml.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" ppdhtml man page for the Common UNIX Printing System.
.\"
@@ -36,5 +36,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdhtml.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/ppdi.man b/man/ppdi.man
index 526b9437c..85db4346b 100644
--- a/man/ppdi.man
+++ b/man/ppdi.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdi.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" ppdi man page for the Common UNIX Printing System.
.\"
@@ -42,5 +42,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdi.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/ppdmerge.man b/man/ppdmerge.man
index 132c40ebc..45bb02e1a 100644
--- a/man/ppdmerge.man
+++ b/man/ppdmerge.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdmerge.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" ppdmerge man page for the Common UNIX Printing System.
.\"
@@ -43,5 +43,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdmerge.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/ppdpo.man b/man/ppdpo.man
index 4f3f4867f..e353d1760 100644
--- a/man/ppdpo.man
+++ b/man/ppdpo.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: ppdpo.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" ppdpo man page for the Common UNIX Printing System.
.\"
@@ -42,5 +42,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: ppdpo.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/printers.conf.man b/man/printers.conf.man
index 56da5db47..7abd1cd46 100644
--- a/man/printers.conf.man
+++ b/man/printers.conf.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id: printers.conf.man 6649 2007-07-11 21:46:42Z mike $"
+.\" "$Id: printers.conf.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" printers.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -118,5 +118,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id: printers.conf.man 6649 2007-07-11 21:46:42Z mike $".
+.\" End of "$Id: printers.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/rastertoescpx.man b/man/rastertoescpx.man
index 0cd04f703..ab6535136 100644
--- a/man/rastertoescpx.man
+++ b/man/rastertoescpx.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: rastertoescpx.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" rastertoescpx man page for the Common UNIX Printing System.
.\"
@@ -31,5 +31,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: rastertoescpx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/rastertopclx.man b/man/rastertopclx.man
index 2f53f0b6a..266ecf3b7 100644
--- a/man/rastertopclx.man
+++ b/man/rastertopclx.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: rastertopclx.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" rastertopclx man page for the Common UNIX Printing System.
.\"
@@ -31,5 +31,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2008 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: rastertopclx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/man/subscriptions.conf.man b/man/subscriptions.conf.man
index a760a47b7..d51763d22 100644
--- a/man/subscriptions.conf.man
+++ b/man/subscriptions.conf.man
@@ -1,5 +1,5 @@
.\"
-.\" "$Id$"
+.\" "$Id: subscriptions.conf.man 7600 2008-05-20 21:06:23Z mike $"
.\"
.\" subscriptions.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -85,5 +85,5 @@ http://localhost:631/help
.SH COPYRIGHT
Copyright 2007 by Apple Inc.
.\"
-.\" End of "$Id$".
+.\" End of "$Id: subscriptions.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
diff --git a/monitor/Makefile b/monitor/Makefile
index 8f3b58318..2083948e4 100644
--- a/monitor/Makefile
+++ b/monitor/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Port monitor makefile for the Common UNIX Printing System (CUPS).
#
@@ -135,5 +135,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/notifier/Makefile b/notifier/Makefile
index 365a62039..4f05e374f 100644
--- a/notifier/Makefile
+++ b/notifier/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Notifier makefile for the Common UNIX Printing System (CUPS).
#
@@ -143,5 +143,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/notifier/mailto.c b/notifier/mailto.c
index 3376065fe..ca6c85f06 100644
--- a/notifier/mailto.c
+++ b/notifier/mailto.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mailto.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: mailto.c 7460 2008-04-16 02:19:54Z mike $"
*
* "mailto" notifier for the Common UNIX Printing System (CUPS).
*
@@ -786,5 +786,5 @@ print_attributes(ipp_t *ipp, /* I - IPP request */
/*
- * End of "$Id: mailto.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: mailto.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/notifier/rss.c b/notifier/rss.c
index 03f1199bb..aac3abf39 100644
--- a/notifier/rss.c
+++ b/notifier/rss.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rss.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: rss.c 7451 2008-04-14 20:02:39Z mike $"
*
* RSS notifier for the Common UNIX Printing System (CUPS).
*
@@ -697,5 +697,5 @@ xml_escape(const char *s) /* I - String to escape */
/*
- * End of "$Id: rss.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: rss.c 7451 2008-04-14 20:02:39Z mike $".
*/
diff --git a/packaging/cups.list.in b/packaging/cups.list.in
index 48324fd8a..c0ffc9b52 100644
--- a/packaging/cups.list.in
+++ b/packaging/cups.list.in
@@ -1,5 +1,5 @@
#
-# "$Id: cups.list.in 7014 2007-10-10 21:57:43Z mike $"
+# "$Id: cups.list.in 7693 2008-06-25 17:12:28Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
@@ -41,12 +41,54 @@
%replaces LPRng
%requires cups-libs 1:@CUPS_VERSION@
+# Replace all of the old localization subpackages from CUPS 1.2/1.3
+%replaces cups-da
+%replaces cups-de
+%replaces cups-es
+%replaces cups-et
+%replaces cups-fi
+%replaces cups-fr
+%replaces cups-he
+%replaces cups-id
+%replaces cups-it
+%replaces cups-ja
+%replaces cups-ko
+%replaces cups-nl
+%replaces cups-no
+%replaces cups-pl
+%replaces cups-pt
+%replaces cups-ru
+%replaces cups-sv
+%replaces cups-zh
+
+
%format deb
%provides cupsys
%provides cupsys-client
%provides cupsys-bsd
%requires cups-libs
+# Replace all of the old localization subpackages from CUPS 1.2/1.3
+%replaces cups-da
+%replaces cups-de
+%replaces cups-es
+%replaces cups-et
+%replaces cups-fi
+%replaces cups-fr
+%replaces cups-he
+%replaces cups-id
+%replaces cups-it
+%replaces cups-ja
+%replaces cups-ko
+%replaces cups-nl
+%replaces cups-no
+%replaces cups-pl
+%replaces cups-pt
+%replaces cups-ru
+%replaces cups-sv
+%replaces cups-zh
+
+
%format pkg
%replaces SUNWlpmsg LP Alerts
%replaces SUNWlpr LP Print Service, (Root)
@@ -71,9 +113,49 @@
%incompat fw_cups 0 0 1289999999 1289999999
%requires cups.sw.libs
+# Replace all of the old localization subpackages from CUPS 1.2/1.3
+%replaces cups.sw.da
+%replaces cups.sw.de
+%replaces cups.sw.es
+%replaces cups.sw.et
+%replaces cups.sw.fi
+%replaces cups.sw.fr
+%replaces cups.sw.he
+%replaces cups.sw.id
+%replaces cups.sw.it
+%replaces cups.sw.ja
+%replaces cups.sw.ko
+%replaces cups.sw.nl
+%replaces cups.sw.no
+%replaces cups.sw.pl
+%replaces cups.sw.pt
+%replaces cups.sw.ru
+%replaces cups.sw.sv
+%replaces cups.sw.zh
+
%format portable
%requires cups-libs
+# Replace all of the old localization subpackages from CUPS 1.2/1.3
+%replaces cups-da
+%replaces cups-de
+%replaces cups-es
+%replaces cups-et
+%replaces cups-fi
+%replaces cups-fr
+%replaces cups-he
+%replaces cups-id
+%replaces cups-it
+%replaces cups-ja
+%replaces cups-ko
+%replaces cups-nl
+%replaces cups-no
+%replaces cups-pl
+%replaces cups-pt
+%replaces cups-ru
+%replaces cups-sv
+%replaces cups-zh
+
%format all
%subpackage libs
@@ -711,5 +793,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd
%subpackage
#
-# End of "$Id: cups.list.in 7014 2007-10-10 21:57:43Z mike $".
+# End of "$Id: cups.list.in 7693 2008-06-25 17:12:28Z mike $".
#
diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in
index 4e564c176..3246b0b00 100644
--- a/packaging/cups.spec.in
+++ b/packaging/cups.spec.in
@@ -1,5 +1,5 @@
#
-# "$Id: cups.spec.in 6889 2007-08-29 22:23:35Z mike $"
+# "$Id: cups.spec.in 7693 2008-06-25 17:12:28Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -51,6 +51,9 @@ BuildRoot: /tmp/%{name}-root
Requires: %{name}-libs = %{epoch}:%{version}
Obsoletes: lpd, lpr, LPRng
Provides: lpd, lpr, LPRng
+Obsoletes: cups-da, cups-de, cups-es, cups-et, cups-fi, cups-fr, cups-he
+Obsoletes: cups-id, cups-it, cups-ja, cups-ko, cups-nl, cups-no, cups-pl
+Obsoletes: cups-pt, cups-ru, cups-sv, cups-zh
%package devel
Summary: Common UNIX Printing System - development environment
@@ -356,5 +359,5 @@ rm -rf $RPM_BUILD_ROOT
#
-# End of "$Id: cups.spec.in 6889 2007-08-29 22:23:35Z mike $".
+# End of "$Id: cups.spec.in 7693 2008-06-25 17:12:28Z mike $".
#
diff --git a/scheduler/Makefile b/scheduler/Makefile
index 256a93a0f..abcd07269 100644
--- a/scheduler/Makefile
+++ b/scheduler/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6801 2007-08-16 18:42:49Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Scheduler Makefile for the Common UNIX Printing System (CUPS).
#
@@ -525,5 +525,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6801 2007-08-16 18:42:49Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/scheduler/auth.c b/scheduler/auth.c
index f065a1f51..d0d5641bc 100644
--- a/scheduler/auth.c
+++ b/scheduler/auth.c
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.c 6947 2007-09-12 21:09:49Z mike $"
+ * "$Id: auth.c 7673 2008-06-18 22:31:26Z mike $"
*
* Authorization routines for the Common UNIX Printing System (CUPS).
*
@@ -666,7 +666,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
if (pamerr != PAM_SUCCESS)
{
cupsdLogMessage(CUPSD_LOG_ERROR,
- "cupsdAuthorize: pam_start() returned %d (%s)!\n",
+ "cupsdAuthorize: pam_start() returned %d (%s)!",
pamerr, pam_strerror(pamh, pamerr));
return;
}
@@ -676,7 +676,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
if (pamerr != PAM_SUCCESS)
cupsdLogMessage(CUPSD_LOG_WARN,
"cupsdAuthorize: pam_set_item() returned %d "
- "(%s)!\n", pamerr, pam_strerror(pamh, pamerr));
+ "(%s)!", pamerr, pam_strerror(pamh, pamerr));
# endif /* HAVE_PAM_SET_ITEM && PAM_RHOST */
pamerr = pam_authenticate(pamh, PAM_SILENT);
@@ -684,7 +684,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
{
cupsdLogMessage(CUPSD_LOG_ERROR,
"cupsdAuthorize: pam_authenticate() returned %d "
- "(%s)!\n",
+ "(%s)!",
pamerr, pam_strerror(pamh, pamerr));
pam_end(pamh, 0);
return;
@@ -695,7 +695,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
{
cupsdLogMessage(CUPSD_LOG_ERROR,
"cupsdAuthorize: pam_acct_mgmt() returned %d "
- "(%s)!\n",
+ "(%s)!",
pamerr, pam_strerror(pamh, pamerr));
pam_end(pamh, 0);
return;
@@ -713,8 +713,8 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
cupsdLogMessage(CUPSD_LOG_DEBUG,
- "cupsdAuthorize: AIX authenticate of username \"%s\"",
- username);
+ "cupsdAuthorize: AIX authenticate of username "
+ "\"%s\"", username);
reenter = 1;
if (authenticate(username, password, &reenter, &authmsg) != 0)
@@ -2743,5 +2743,5 @@ to64(char *s, /* O - Output string */
/*
- * End of "$Id: auth.c 6947 2007-09-12 21:09:49Z mike $".
+ * End of "$Id: auth.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/auth.h b/scheduler/auth.h
index 2679420f0..b5bb65362 100644
--- a/scheduler/auth.h
+++ b/scheduler/auth.h
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $"
+ * "$Id: auth.h 7317 2008-02-15 22:29:27Z mike $"
*
* Authorization definitions for the Common UNIX Printing System (CUPS)
* scheduler.
@@ -155,5 +155,5 @@ extern http_status_t cupsdIsAuthorized(cupsd_client_t *con, const char *owner);
/*
- * End of "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $".
+ * End of "$Id: auth.h 7317 2008-02-15 22:29:27Z mike $".
*/
diff --git a/scheduler/banners.c b/scheduler/banners.c
index 66305fb08..ef73d2e7c 100644
--- a/scheduler/banners.c
+++ b/scheduler/banners.c
@@ -1,5 +1,5 @@
/*
- * "$Id: banners.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: banners.c 7221 2008-01-16 22:20:08Z mike $"
*
* Banner routines for the Common UNIX Printing System (CUPS).
*
@@ -220,5 +220,5 @@ free_banners(void)
/*
- * End of "$Id: banners.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: banners.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/scheduler/cert.c b/scheduler/cert.c
index 35f07c647..650363401 100644
--- a/scheduler/cert.c
+++ b/scheduler/cert.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cert.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cert.c 7673 2008-06-18 22:31:26Z mike $"
*
* Authentication certificate routines for the Common UNIX
* Printing System (CUPS).
@@ -311,7 +311,7 @@ cupsdDeleteCert(int pid) /* I - Process ID */
snprintf(filename, sizeof(filename), "%s/certs/%d", StateDir, pid);
if (unlink(filename))
cupsdLogMessage(CUPSD_LOG_ERROR,
- "cupsdDeleteCert: Unable to remove %s!\n", filename);
+ "cupsdDeleteCert: Unable to remove %s!", filename);
return;
}
@@ -343,7 +343,7 @@ cupsdDeleteAllCerts(void)
snprintf(filename, sizeof(filename), "%s/certs/%d", StateDir, cert->pid);
if (unlink(filename))
cupsdLogMessage(CUPSD_LOG_ERROR,
- "cupsdDeleteAllCerts: Unable to remove %s!\n", filename);
+ "cupsdDeleteAllCerts: Unable to remove %s!", filename);
/*
* Free memory...
@@ -437,5 +437,5 @@ cupsdInitCerts(void)
/*
- * End of "$Id: cert.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cert.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/cert.h b/scheduler/cert.h
index d1158802b..976600146 100644
--- a/scheduler/cert.h
+++ b/scheduler/cert.h
@@ -1,5 +1,5 @@
/*
- * "$Id: cert.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cert.h 7383 2008-03-20 20:58:07Z mike $"
*
* Authentication certificate definitions for the Common UNIX
* Printing System (CUPS).
@@ -53,5 +53,5 @@ extern void cupsdInitCerts(void);
/*
- * End of "$Id: cert.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cert.h 7383 2008-03-20 20:58:07Z mike $".
*/
diff --git a/scheduler/classes.c b/scheduler/classes.c
index 3e905b448..7fa3c4c5e 100644
--- a/scheduler/classes.c
+++ b/scheduler/classes.c
@@ -1,5 +1,5 @@
/*
- * "$Id: classes.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: classes.c 7608 2008-05-21 01:37:21Z mike $"
*
* Printer class routines for the Common UNIX Printing System (CUPS).
*
@@ -956,5 +956,5 @@ cupsdUpdateImplicitClasses(void)
/*
- * End of "$Id: classes.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: classes.c 7608 2008-05-21 01:37:21Z mike $".
*/
diff --git a/scheduler/client.c b/scheduler/client.c
index f56ed64a2..cf8365673 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -1,5 +1,5 @@
/*
- * "$Id: client.c 6999 2007-09-28 19:46:53Z mike $"
+ * "$Id: client.c 7673 2008-06-18 22:31:26Z mike $"
*
* Client routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -1214,7 +1214,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
if ((status = cupsdIsAuthorized(con, NULL)) != HTTP_OK)
{
cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "cupsdReadClient: Unauthorized request for %s...\n",
+ "cupsdReadClient: Unauthorized request for %s...",
con->uri);
cupsdSendError(con, status, CUPSD_AUTH_NONE);
cupsdCloseClient(con);
@@ -3695,7 +3695,7 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */
cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "is_cgi(con=%p, filename=\"%s\", filestats=%p, type=%s/%s)\n",
+ "is_cgi(con=%p, filename=\"%s\", filestats=%p, type=%s/%s)",
con, filename, filestats, type ? type->super : "unknown",
type ? type->type : "unknown");
@@ -4893,5 +4893,5 @@ write_pipe(cupsd_client_t *con) /* I - Client connection */
/*
- * End of "$Id: client.c 6999 2007-09-28 19:46:53Z mike $".
+ * End of "$Id: client.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/client.h b/scheduler/client.h
index e6d946d47..c817e7cce 100644
--- a/scheduler/client.h
+++ b/scheduler/client.h
@@ -1,5 +1,5 @@
/*
- * "$Id: client.h 6947 2007-09-12 21:09:49Z mike $"
+ * "$Id: client.h 7470 2008-04-18 23:24:24Z mike $"
*
* Client definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -134,5 +134,5 @@ extern void cupsdWriteClient(cupsd_client_t *con);
/*
- * End of "$Id: client.h 6947 2007-09-12 21:09:49Z mike $".
+ * End of "$Id: client.h 7470 2008-04-18 23:24:24Z mike $".
*/
diff --git a/scheduler/conf.c b/scheduler/conf.c
index c9eb950fa..955dc2df1 100644
--- a/scheduler/conf.c
+++ b/scheduler/conf.c
@@ -1,5 +1,5 @@
/*
- * "$Id: conf.c 6930 2007-09-08 00:28:06Z mike $"
+ * "$Id: conf.c 7694 2008-06-26 00:23:20Z mike $"
*
* Configuration routines for the Common UNIX Printing System (CUPS).
*
@@ -1116,22 +1116,23 @@ cupsdReadConfiguration(void)
snprintf(temp, sizeof(temp), "%s/filter", ServerBin);
snprintf(mimedir, sizeof(mimedir), "%s/mime", DataDir);
- MimeDatabase = mimeLoad(ServerRoot, temp);
+ MimeDatabase = mimeLoadTypes(NULL, mimedir);
+ MimeDatabase = mimeLoadTypes(MimeDatabase, ServerRoot);
+ MimeDatabase = mimeLoadFilters(MimeDatabase, mimedir, temp);
+ MimeDatabase = mimeLoadFilters(MimeDatabase, ServerRoot, temp);
if (!MimeDatabase)
{
cupsdLogMessage(CUPSD_LOG_EMERG,
- "Unable to load MIME database from \'%s\'!", ServerRoot);
+ "Unable to load MIME database from \"%s\" or \"%s\"!",
+ mimedir, ServerRoot);
exit(errno);
}
- if (!access(mimedir, 0))
- MimeDatabase = mimeMerge(MimeDatabase, mimedir, temp);
-
cupsdLogMessage(CUPSD_LOG_INFO,
- "Loaded MIME database from \'%s\': %d types, %d filters...",
- ServerRoot, mimeNumTypes(MimeDatabase),
- mimeNumFilters(MimeDatabase));
+ "Loaded MIME database from \"%s\" and \"%s\": %d types, "
+ "%d filters...", mimedir, ServerRoot,
+ mimeNumTypes(MimeDatabase), mimeNumFilters(MimeDatabase));
/*
* Create a list of MIME types for the document-format-supported
@@ -3400,5 +3401,5 @@ read_policy(cups_file_t *fp, /* I - Configuration file */
/*
- * End of "$Id: conf.c 6930 2007-09-08 00:28:06Z mike $".
+ * End of "$Id: conf.c 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/conf.h b/scheduler/conf.h
index 2a91e5ceb..d5c483cc4 100644
--- a/scheduler/conf.h
+++ b/scheduler/conf.h
@@ -1,5 +1,5 @@
/*
- * "$Id: conf.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: conf.h 7674 2008-06-18 23:18:32Z mike $"
*
* Configuration file definitions for the Common UNIX Printing System (CUPS)
* scheduler.
@@ -225,6 +225,11 @@ extern int cupsdLogGSSMessage(int level, int major_status,
int minor_status,
const char *message, ...);
#endif /* HAVE_GSSAPI */
+extern int cupsdLogJob(cupsd_job_t *job, int level, const char *message, ...)
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 3, 4)))
+#endif /* __GNUC__ */
+;
extern int cupsdLogMessage(int level, const char *message, ...)
#ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 2, 3)))
@@ -233,8 +238,9 @@ __attribute__ ((__format__ (__printf__, 2, 3)))
extern int cupsdLogPage(cupsd_job_t *job, const char *page);
extern int cupsdLogRequest(cupsd_client_t *con, http_status_t code);
extern int cupsdReadConfiguration(void);
+extern int cupsdWriteErrorLog(int level, const char *message);
/*
- * End of "$Id: conf.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: conf.h 7674 2008-06-18 23:18:32Z mike $".
*/
diff --git a/scheduler/cups-deviced.c b/scheduler/cups-deviced.c
index a912358f1..4d05b53c0 100644
--- a/scheduler/cups-deviced.c
+++ b/scheduler/cups-deviced.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-deviced.c 7011 2007-10-10 21:13:35Z mike $"
+ * "$Id: cups-deviced.c 7624 2008-06-09 15:55:04Z mike $"
*
* Device scanning mini-daemon for the Common UNIX Printing System (CUPS).
*
@@ -719,5 +719,5 @@ start_backend(const char *name, /* I - Backend to run */
/*
- * End of "$Id: cups-deviced.c 7011 2007-10-10 21:13:35Z mike $".
+ * End of "$Id: cups-deviced.c 7624 2008-06-09 15:55:04Z mike $".
*/
diff --git a/scheduler/cups-driverd.c b/scheduler/cups-driverd.c
index 013f1de89..ed364c721 100644
--- a/scheduler/cups-driverd.c
+++ b/scheduler/cups-driverd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $"
+ * "$Id: cups-driverd.c 7652 2008-06-16 17:56:27Z mike $"
*
* PPD/driver support for the Common UNIX Printing System (CUPS).
*
@@ -1704,5 +1704,5 @@ load_drivers(void)
/*
- * End of "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $".
+ * End of "$Id: cups-driverd.c 7652 2008-06-16 17:56:27Z mike $".
*/
diff --git a/scheduler/cups-lpd.c b/scheduler/cups-lpd.c
index 7e810f4ca..ca918c462 100644
--- a/scheduler/cups-lpd.c
+++ b/scheduler/cups-lpd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $"
+ * "$Id: cups-lpd.c 7221 2008-01-16 22:20:08Z mike $"
*
* Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
*
@@ -1702,5 +1702,5 @@ smart_gets(char *s, /* I - Pointer to line buffer */
/*
- * End of "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $".
+ * End of "$Id: cups-lpd.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/scheduler/cups-polld.c b/scheduler/cups-polld.c
index 9ffc46d2c..b7165b5c9 100644
--- a/scheduler/cups-polld.c
+++ b/scheduler/cups-polld.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-polld.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cups-polld.c 7198 2008-01-08 00:12:17Z mike $"
*
* Polling daemon for the Common UNIX Printing System (CUPS).
*
@@ -471,5 +471,5 @@ sighup_handler(int sig) /* I - Signal number */
/*
- * End of "$Id: cups-polld.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cups-polld.c 7198 2008-01-08 00:12:17Z mike $".
*/
diff --git a/scheduler/cupsd.h b/scheduler/cupsd.h
index 0b68f781a..b4304ce83 100644
--- a/scheduler/cupsd.h
+++ b/scheduler/cupsd.h
@@ -1,5 +1,5 @@
/*
- * "$Id: cupsd.h 6875 2007-08-27 23:25:06Z mike $"
+ * "$Id: cupsd.h 7317 2008-02-15 22:29:27Z mike $"
*
* Main header file for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -234,5 +234,5 @@ extern void cupsdStopSelect(void);
extern int cupsdRemoveFile(const char *filename);
/*
- * End of "$Id: cupsd.h 6875 2007-08-27 23:25:06Z mike $".
+ * End of "$Id: cupsd.h 7317 2008-02-15 22:29:27Z mike $".
*/
diff --git a/scheduler/cupsfilter.c b/scheduler/cupsfilter.c
index 3ece2f4b2..f60c284fa 100644
--- a/scheduler/cupsfilter.c
+++ b/scheduler/cupsfilter.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupsfilter.c 6879 2007-08-29 20:26:50Z mike $"
+ * "$Id: cupsfilter.c 7694 2008-06-26 00:23:20Z mike $"
*
* CUPS filtering program for the Common UNIX Printing System (CUPS).
*
@@ -353,18 +353,22 @@ main(int argc, /* I - Number of command-line args */
if (read_cupsd_conf(cupsdconf))
return (1);
- if ((mime = mimeLoad(ServerRoot, Path)) == NULL)
+ snprintf(mimedir, sizeof(mimedir), "%s/mime", DataDir);
+
+ mime = mimeLoadTypes(NULL, mimedir);
+ mime = mimeLoadTypes(mime, ServerRoot);
+ mime = mimeLoadFilters(mime, mimedir, Path);
+ mime = mimeLoadFilters(mime, ServerRoot, Path);
+
+ if (!mime)
{
_cupsLangPrintf(stderr,
- _("%s: Unable to read MIME database from \"%s\"!\n"),
- command, ServerRoot);
+ _("%s: Unable to read MIME database from \"%s\" or "
+ "\"%s\"!\n"),
+ command, mimedir, ServerRoot);
return (1);
}
- snprintf(mimedir, sizeof(mimedir), "%s/mime", DataDir);
- if (!access(mimedir, 0))
- mime = mimeMerge(mime, mimedir, Path);
-
/*
* Get the source and destination types...
*/
@@ -1140,5 +1144,5 @@ usage(const char *command, /* I - Command name */
/*
- * End of "$Id: cupsfilter.c 6879 2007-08-29 20:26:50Z mike $".
+ * End of "$Id: cupsfilter.c 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
index 9b7b285c4..51509b850 100644
--- a/scheduler/dirsvc.c
+++ b/scheduler/dirsvc.c
@@ -1,5 +1,5 @@
/*
- * "$Id: dirsvc.c 7003 2007-10-01 23:10:13Z mike $"
+ * "$Id: dirsvc.c 7676 2008-06-18 23:42:37Z mike $"
*
* Directory services routines for the Common UNIX Printing System (CUPS).
*
@@ -29,7 +29,6 @@
* cupsdStopBrowsing() - Stop sending and receiving broadcast
* information.
* cupsdStopPolling() - Stop polling servers as needed.
- * cupsdUpdateDNSSDBrowse() - Handle DNS-SD queries.
* cupsdUpdateDNSSDName() - Update the computer name we use for
* browsing...
* cupsdUpdateLDAPBrowse() - Scan for new printers via LDAP...
@@ -44,6 +43,7 @@
* dnssdRegisterCallback() - DNSServiceRegister callback.
* dnssdRegisterPrinter() - Start sending broadcast information for a
* printer or update the broadcast contents.
+ * dnssdUpdate() - Handle DNS-SD queries.
* get_hostconfig() - Get an /etc/hostconfig service setting.
* is_local_queue() - Determine whether the URI points at a local
* queue.
@@ -128,6 +128,7 @@ static void dnssdRegisterCallback(DNSServiceRef sdRef,
const char *name, const char *regtype,
const char *domain, void *context);
static void dnssdRegisterPrinter(cupsd_printer_t *p);
+static void dnssdUpdate(void);
#endif /* HAVE_DNSSD */
#ifdef HAVE_OPENLDAP
@@ -1058,7 +1059,7 @@ cupsdStartBrowsing(void)
*/
cupsdAddSelect(DNSServiceRefSockFD(DNSSDRef),
- (cupsd_selfunc_t)cupsdUpdateDNSSDBrowse, NULL, NULL);
+ (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
/*
* Then get the port we use for registrations. If we are not listening
@@ -1476,23 +1477,6 @@ cupsdStopPolling(void)
#ifdef HAVE_DNSSD
/*
- * 'cupsdUpdateDNSSDBrowse()' - Handle DNS-SD queries.
- */
-
-void
-cupsdUpdateDNSSDBrowse(void)
-{
- DNSServiceErrorType sdErr; /* Service discovery error */
-
-
- if ((sdErr = DNSServiceProcessResult(DNSSDRef)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS Service Discovery registration error %d!",
- sdErr);
-}
-
-
-/*
* 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
*/
@@ -2308,6 +2292,23 @@ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
free(printer_txt);
}
}
+
+
+/*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+
+static void
+dnssdUpdate(void)
+{
+ DNSServiceErrorType sdErr; /* Service discovery error */
+
+
+ if ((sdErr = DNSServiceProcessResult(DNSSDRef)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS Service Discovery registration error %d!",
+ sdErr);
+}
#endif /* HAVE_DNSSD */
@@ -3324,7 +3325,7 @@ send_ldap_browse(cupsd_printer_t *p) /* I - Printer to register */
NULL
};
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "send_ldap_browse: %s\n", p->name);
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "send_ldap_browse: %s", p->name);
/*
* Everything in ldap is ** so we fudge around it...
@@ -4278,5 +4279,5 @@ update_smb(int onoff) /* I - 1 = turn on, 0 = turn off */
/*
- * End of "$Id: dirsvc.c 7003 2007-10-01 23:10:13Z mike $".
+ * End of "$Id: dirsvc.c 7676 2008-06-18 23:42:37Z mike $".
*/
diff --git a/scheduler/dirsvc.h b/scheduler/dirsvc.h
index 16693c293..60c22c3bd 100644
--- a/scheduler/dirsvc.h
+++ b/scheduler/dirsvc.h
@@ -1,5 +1,5 @@
/*
- * "$Id: dirsvc.h 6930 2007-09-08 00:28:06Z mike $"
+ * "$Id: dirsvc.h 7676 2008-06-18 23:42:37Z mike $"
*
* Directory services definitions for the Common UNIX Printing System
* (CUPS) scheduler.
@@ -188,7 +188,6 @@ extern void cupsdStartPolling(void);
extern void cupsdStopBrowsing(void);
extern void cupsdStopPolling(void);
#ifdef HAVE_DNSSD
-extern void cupsdUpdateDNSSDBrowse(void);
extern void cupsdUpdateDNSSDName(void);
#endif /* HAVE_DNSSD */
#ifdef HAVE_LDAP
@@ -198,5 +197,5 @@ extern void cupsdUpdateSLPBrowse(void);
/*
- * End of "$Id: dirsvc.h 6930 2007-09-08 00:28:06Z mike $".
+ * End of "$Id: dirsvc.h 7676 2008-06-18 23:42:37Z mike $".
*/
diff --git a/scheduler/env.c b/scheduler/env.c
index a7813f9f1..3eb9213a5 100644
--- a/scheduler/env.c
+++ b/scheduler/env.c
@@ -1,5 +1,5 @@
/*
- * "$Id: env.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: env.c 7673 2008-06-18 22:31:26Z mike $"
*
* Environment management routines for the Common UNIX Printing System (CUPS).
*
@@ -185,7 +185,7 @@ cupsdSetEnv(const char *name, /* I - Name of variable */
cupsdSetStringf(common_env + i, "%s=%s", name, value);
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSetEnv: %s\n", common_env[i]);
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSetEnv: %s", common_env[i]);
}
@@ -236,5 +236,5 @@ clear_env(void)
/*
- * End of "$Id: env.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: env.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/filter.c b/scheduler/filter.c
index 73344b6ae..6df0483f9 100644
--- a/scheduler/filter.c
+++ b/scheduler/filter.c
@@ -1,9 +1,9 @@
/*
- * "$Id: filter.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: filter.c 7694 2008-06-26 00:23:20Z mike $"
*
* File type conversion routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -403,5 +403,5 @@ find_filters(mime_t *mime, /* I - MIME database */
/*
- * End of "$Id: filter.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: filter.c 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
index ac80acb7f..7562cd9e2 100644
--- a/scheduler/ipp.c
+++ b/scheduler/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 7014 2007-10-10 21:57:43Z mike $"
+ * "$Id: ipp.c 7682 2008-06-21 00:06:02Z mike $"
*
* IPP routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -796,8 +796,8 @@ cupsdTimeoutJob(cupsd_job_t *job) /* I - Job to timeout */
* Yes...
*/
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Adding end banner page \"%s\".",
- job->id, attr->values[1].string.text);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Adding end banner page \"%s\".",
+ attr->values[1].string.text);
if ((kbytes = copy_banner(NULL, job, attr->values[1].string.text)) < 0)
return (-1);
@@ -1754,10 +1754,10 @@ add_job(cupsd_client_t *con, /* I - Client connection */
cupsdSetString(&attr->values[0].string.text, Classification);
- cupsdLogMessage(CUPSD_LOG_NOTICE, "[Job %d] CLASSIFICATION FORCED "
- "job-sheets=\"%s,none\", "
- "job-originating-user-name=\"%s\"",
- job->id, Classification, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE, "CLASSIFICATION FORCED "
+ "job-sheets=\"%s,none\", "
+ "job-originating-user-name=\"%s\"",
+ Classification, job->username);
}
else if (attr->num_values == 2 &&
strcmp(attr->values[0].string.text,
@@ -1771,11 +1771,11 @@ add_job(cupsd_client_t *con, /* I - Client connection */
cupsdSetString(&attr->values[1].string.text, attr->values[0].string.text);
- cupsdLogMessage(CUPSD_LOG_NOTICE, "[Job %d] CLASSIFICATION FORCED "
- "job-sheets=\"%s,%s\", "
- "job-originating-user-name=\"%s\"",
- job->id, attr->values[0].string.text,
- attr->values[1].string.text, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE, "CLASSIFICATION FORCED "
+ "job-sheets=\"%s,%s\", "
+ "job-originating-user-name=\"%s\"",
+ attr->values[0].string.text,
+ attr->values[1].string.text, job->username);
}
else if (strcmp(attr->values[0].string.text, Classification) &&
strcmp(attr->values[0].string.text, "none") &&
@@ -1784,18 +1784,18 @@ add_job(cupsd_client_t *con, /* I - Client connection */
strcmp(attr->values[1].string.text, "none"))))
{
if (attr->num_values == 1)
- cupsdLogMessage(CUPSD_LOG_NOTICE,
- "[Job %d] CLASSIFICATION OVERRIDDEN "
- "job-sheets=\"%s\", "
- "job-originating-user-name=\"%s\"",
- job->id, attr->values[0].string.text, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE,
+ "CLASSIFICATION OVERRIDDEN "
+ "job-sheets=\"%s\", "
+ "job-originating-user-name=\"%s\"",
+ attr->values[0].string.text, job->username);
else
- cupsdLogMessage(CUPSD_LOG_NOTICE,
- "[Job %d] CLASSIFICATION OVERRIDDEN "
- "job-sheets=\"%s,%s\",fffff "
- "job-originating-user-name=\"%s\"",
- job->id, attr->values[0].string.text,
- attr->values[1].string.text, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE,
+ "CLASSIFICATION OVERRIDDEN "
+ "job-sheets=\"%s,%s\",fffff "
+ "job-originating-user-name=\"%s\"",
+ attr->values[0].string.text,
+ attr->values[1].string.text, job->username);
}
}
else if (strcmp(attr->values[0].string.text, Classification) &&
@@ -1824,18 +1824,18 @@ add_job(cupsd_client_t *con, /* I - Client connection */
}
if (attr->num_values > 1)
- cupsdLogMessage(CUPSD_LOG_NOTICE,
- "[Job %d] CLASSIFICATION FORCED "
- "job-sheets=\"%s,%s\", "
- "job-originating-user-name=\"%s\"",
- job->id, attr->values[0].string.text,
- attr->values[1].string.text, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE,
+ "CLASSIFICATION FORCED "
+ "job-sheets=\"%s,%s\", "
+ "job-originating-user-name=\"%s\"",
+ attr->values[0].string.text,
+ attr->values[1].string.text, job->username);
else
- cupsdLogMessage(CUPSD_LOG_NOTICE,
- "[Job %d] CLASSIFICATION FORCED "
- "job-sheets=\"%s\", "
- "job-originating-user-name=\"%s\"",
- job->id, Classification, job->username);
+ cupsdLogJob(job, CUPSD_LOG_NOTICE,
+ "CLASSIFICATION FORCED "
+ "job-sheets=\"%s\", "
+ "job-originating-user-name=\"%s\"",
+ Classification, job->username);
}
}
@@ -1845,9 +1845,8 @@ add_job(cupsd_client_t *con, /* I - Client connection */
if (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)))
{
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] Adding start banner page \"%s\".",
- job->id, attr->values[0].string.text);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Adding start banner page \"%s\".",
+ attr->values[0].string.text);
if ((kbytes = copy_banner(con, job, attr->values[0].string.text)) < 0)
{
@@ -3669,8 +3668,7 @@ authenticate_job(cupsd_client_t *con, /* I - Client connection */
cupsdReleaseJob(job);
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Authenticated by \"%s\".", jobid,
- con->username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Authenticated by \"%s\".", con->username);
}
@@ -4011,10 +4009,10 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
if (purge)
cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Purged by \"%s\".", jobid,
- username);
+ username);
else
cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Canceled by \"%s\".", jobid,
- username);
+ username);
con->response->request.status.status_code = IPP_OK;
}
@@ -5690,8 +5688,8 @@ create_job(cupsd_client_t *con, /* I - Client connection */
* Save and log the job...
*/
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Queued on \"%s\" by \"%s\".",
- job->id, job->dest, job->username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Queued on \"%s\" by \"%s\".",
+ job->dest, job->username);
}
@@ -7945,8 +7943,7 @@ hold_job(cupsd_client_t *con, /* I - Client connection */
"Job job-hold-until value changed by user.");
}
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Held by \"%s\".", jobid,
- username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Held by \"%s\".", username);
con->response->request.status.status_code = IPP_OK;
}
@@ -8519,11 +8516,10 @@ print_job(cupsd_client_t *con, /* I - Client connection */
* Log and save the job...
*/
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] File of type %s/%s queued by \"%s\".", job->id,
- filetype->super, filetype->type, job->username);
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] hold_until=%d", job->id,
- (int)job->hold_until);
+ cupsdLogJob(job, CUPSD_LOG_INFO,
+ "File of type %s/%s queued by \"%s\".",
+ filetype->super, filetype->type, job->username);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "hold_until=%d", (int)job->hold_until);
/*
* Start the job if possible...
@@ -8930,8 +8926,7 @@ release_job(cupsd_client_t *con, /* I - Client connection */
cupsdAddEvent(CUPSD_EVENT_JOB_STATE, cupsdFindDest(job->dest), job,
"Job released by user.");
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Released by \"%s\".", jobid,
- username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Released by \"%s\".", username);
con->response->request.status.status_code = IPP_OK;
}
@@ -9150,8 +9145,7 @@ restart_job(cupsd_client_t *con, /* I - Client connection */
cupsdRestartJob(job);
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Restarted by \"%s\".", jobid,
- username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Restarted by \"%s\".", username);
con->response->request.status.status_code = IPP_OK;
}
@@ -9395,8 +9389,7 @@ save_krb5_creds(cupsd_client_t *con, /* I - Client connection */
cupsdSetStringf(&(job->ccname), "KRB5CCNAME=FILE:%s",
krb5_cc_get_name(KerberosContext, job->ccache));
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] save_krb5_creds: %s", job->id,
- job->ccname);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "save_krb5_creds: %s", job->ccname);
# endif /* HAVE_KRB5_CC_NEW_UNIQUE || HAVE_HEIMDAL */
}
#endif /* HAVE_GSSAPI && HAVE_KRB5_H */
@@ -9439,6 +9432,7 @@ send_document(cupsd_client_t *con, /* I - Client connection */
struct stat fileinfo; /* File information */
int kbytes; /* Size of file */
int compression; /* Type of compression */
+ int start_job; /* Start the job? */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "send_document(%p[%d], %s)", con,
@@ -9608,7 +9602,7 @@ send_document(cupsd_client_t *con, /* I - Client connection */
ipp_attribute_t *doc_name; /* document-name attribute */
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Auto-typing file...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Auto-typing file...");
doc_name = ippFindAttribute(con->request, "document-name", IPP_TAG_NAME);
filetype = mimeFileType(MimeDatabase, con->filename,
@@ -9618,9 +9612,8 @@ send_document(cupsd_client_t *con, /* I - Client connection */
if (!filetype)
filetype = mimeType(MimeDatabase, super, type);
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] Request file type is %s/%s.", job->id,
- filetype->super, filetype->type);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Request file type is %s/%s.",
+ filetype->super, filetype->type);
}
else
filetype = mimeType(MimeDatabase, super, type);
@@ -9703,9 +9696,8 @@ send_document(cupsd_client_t *con, /* I - Client connection */
cupsdClearString(&con->filename);
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] File of type %s/%s queued by \"%s\".", job->id,
- filetype->super, filetype->type, job->username);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "File of type %s/%s queued by \"%s\".",
+ filetype->super, filetype->type, job->username);
/*
* Start the job if this is the last document...
@@ -9743,16 +9735,7 @@ send_document(cupsd_client_t *con, /* I - Client connection */
job->dirty = 1;
cupsdMarkDirty(CUPSD_DIRTY_JOBS);
- /*
- * Start the job if possible... Since cupsdCheckJobs() can cancel a
- * job if it doesn't print, we need to re-find the job afterwards...
- */
-
- jobid = job->id;
-
- cupsdCheckJobs();
-
- job = cupsdFindJob(jobid);
+ start_job = 1;
}
else
{
@@ -9769,6 +9752,8 @@ send_document(cupsd_client_t *con, /* I - Client connection */
cupsdMarkDirty(CUPSD_DIRTY_JOBS);
}
+
+ start_job = 0;
}
/*
@@ -9784,10 +9769,17 @@ send_document(cupsd_client_t *con, /* I - Client connection */
ippAddInteger(con->response, IPP_TAG_JOB, IPP_TAG_INTEGER, "job-id", jobid);
ippAddInteger(con->response, IPP_TAG_JOB, IPP_TAG_ENUM, "job-state",
- job ? job->state_value : IPP_JOB_CANCELED);
+ job->state_value);
add_job_state_reasons(con, job);
con->response->request.status.status_code = IPP_OK;
+
+ /*
+ * Start the job if necessary...
+ */
+
+ if (start_job)
+ cupsdCheckJobs();
}
@@ -11035,5 +11027,5 @@ validate_user(cupsd_job_t *job, /* I - Job */
/*
- * End of "$Id: ipp.c 7014 2007-10-10 21:57:43Z mike $".
+ * End of "$Id: ipp.c 7682 2008-06-21 00:06:02Z mike $".
*/
diff --git a/scheduler/job.c b/scheduler/job.c
index 68c68651f..890da3541 100644
--- a/scheduler/job.c
+++ b/scheduler/job.c
@@ -1,5 +1,5 @@
/*
- * "$Id: job.c 7005 2007-10-01 23:45:48Z mike $"
+ * "$Id: job.c 7682 2008-06-21 00:06:02Z mike $"
*
* Job management routines for the Common UNIX Printing System (CUPS).
*
@@ -436,9 +436,9 @@ cupsdCheckJobs(void)
* cancel the job...
*/
- cupsdLogMessage(CUPSD_LOG_WARN,
- "[Job %d] Printer/class %s has gone away; canceling job!",
- job->id, job->dest);
+ cupsdLogJob(job, CUPSD_LOG_WARN,
+ "Printer/class %s has gone away; canceling job!",
+ job->dest);
cupsdAddEvent(CUPSD_EVENT_JOB_COMPLETED, job->printer, job,
"Job canceled because the destination printer/class has "
@@ -567,12 +567,12 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
ipp_attribute_t *attr; /* job-hold-until attribute */
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] File %d is complete.",
- job->id, job->current_file - 1);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "File %d is complete.",
+ job->current_file - 1);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] cupsdFinishJob: job->status is %d",
- job->id, job->status);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "cupsdFinishJob: job->status is %d",
+ job->status);
if (job->status_buffer &&
(job->status < 0 || job->current_file >= job->num_files))
@@ -583,9 +583,9 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
cupsdRemoveSelect(job->status_buffer->fd);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] cupsdFinishJob: Closing status pipes [ %d %d ]...",
- job->id, job->status_pipes[0], job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "cupsdFinishJob: Closing status pipes [ %d %d ]...",
+ job->status_pipes[0], job->status_pipes[1]);
cupsdClosePipe(job->status_pipes);
cupsdStatBufDelete(job->status_buffer);
@@ -618,15 +618,15 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
else
exit_code = job->status;
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Backend returned status %d (%s)",
- job->id, exit_code,
- exit_code == CUPS_BACKEND_FAILED ? "failed" :
- exit_code == CUPS_BACKEND_AUTH_REQUIRED ?
- "authentication required" :
- exit_code == CUPS_BACKEND_HOLD ? "hold job" :
- exit_code == CUPS_BACKEND_STOP ? "stop printer" :
- exit_code == CUPS_BACKEND_CANCEL ? "cancel job" :
- exit_code < 0 ? "crashed" : "unknown");
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Backend returned status %d (%s)",
+ exit_code,
+ exit_code == CUPS_BACKEND_FAILED ? "failed" :
+ exit_code == CUPS_BACKEND_AUTH_REQUIRED ?
+ "authentication required" :
+ exit_code == CUPS_BACKEND_HOLD ? "hold job" :
+ exit_code == CUPS_BACKEND_STOP ? "stop printer" :
+ exit_code == CUPS_BACKEND_CANCEL ? "cancel job" :
+ exit_code < 0 ? "crashed" : "unknown");
/*
* Do what needs to be done...
@@ -680,10 +680,10 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
* Too many tries...
*/
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Canceling job since it could not be "
- "sent after %d tries.",
- job->id, JobRetryLimit);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Canceling job since it could not be "
+ "sent after %d tries.",
+ JobRetryLimit);
cupsdCancelJob(job, 0, IPP_JOB_ABORTED);
}
@@ -800,8 +800,7 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
* Filter had errors; stop job...
*/
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Job stopped due to filter errors.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Job stopped due to filter errors.");
cupsdStopJob(job, 1);
job->dirty = 1;
cupsdMarkDirty(CUPSD_DIRTY_JOBS);
@@ -831,8 +830,7 @@ cupsdFinishJob(cupsd_job_t *job) /* I - Job */
* Close out this job...
*/
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Completed successfully.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Completed successfully.");
cupsdCancelJob(job, 0, IPP_JOB_COMPLETED);
cupsdCheckJobs();
}
@@ -1063,8 +1061,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((job->attrs = ippNew()) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Ran out of memory for job attributes!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Ran out of memory for job attributes!");
return;
}
@@ -1072,14 +1069,14 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
* Load job attributes...
*/
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Loading attributes...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Loading attributes...");
snprintf(jobfile, sizeof(jobfile), "%s/c%05d", RequestRoot, job->id);
if ((fp = cupsFileOpen(jobfile, "r")) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to open job control file \"%s\" - %s!",
- job->id, jobfile, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to open job control file \"%s\" - %s!",
+ jobfile, strerror(errno));
ippDelete(job->attrs);
job->attrs = NULL;
return;
@@ -1087,9 +1084,9 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if (ippReadIO(fp, (ipp_iocb_t)cupsFileRead, 1, NULL, job->attrs) != IPP_DATA)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to read job control file \"%s\"!",
- job->id, jobfile);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to read job control file \"%s\"!",
+ jobfile);
cupsFileClose(fp);
ippDelete(job->attrs);
job->attrs = NULL;
@@ -1106,10 +1103,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((job->state = ippFindAttribute(job->attrs, "job-state",
IPP_TAG_ENUM)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-state attribute in "
- "control file!",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-state attribute in control file!");
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1123,9 +1118,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((attr = ippFindAttribute(job->attrs, "job-printer-uri",
IPP_TAG_URI)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] No job-printer-uri attribute in control file!",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "No job-printer-uri attribute in control file!");
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1135,9 +1129,9 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype),
&destptr)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\"!",
- job->id, attr->values[0].string.text);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to queue job for destination \"%s\"!",
+ attr->values[0].string.text);
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1148,9 +1142,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
}
else if ((destptr = cupsdFindDest(job->dest)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\"!",
- job->id, job->dest);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to queue job for destination \"%s\"!", job->dest);
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1166,9 +1159,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((attr = ippFindAttribute(job->attrs, "job-priority",
IPP_TAG_INTEGER)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-priority attribute in "
- "control file!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-priority attribute in control file!");
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1183,9 +1175,9 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if ((attr = ippFindAttribute(job->attrs, "job-originating-user-name",
IPP_TAG_NAME)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-originating-user-name "
- "attribute in control file!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-originating-user-name attribute in "
+ "control file!");
ippDelete(job->attrs);
job->attrs = NULL;
unlink(jobfile);
@@ -1233,9 +1225,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if (access(jobfile, 0))
break;
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] Auto-typing document file \"%s\"...",
- job->id, jobfile);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG,
+ "Auto-typing document file \"%s\"...", jobfile);
if (fileid > job->num_files)
{
@@ -1255,9 +1246,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */
if (!compressions || !filetypes)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Ran out of memory for job file types!",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Ran out of memory for job file types!");
return;
}
@@ -1522,9 +1512,9 @@ cupsdSaveJob(cupsd_job_t *job) /* I - Job */
if ((fp = cupsFileOpen(filename, "w")) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to create job control file \"%s\" - %s.",
- job->id, filename, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to create job control file \"%s\" - %s.",
+ filename, strerror(errno));
return;
}
@@ -1535,8 +1525,7 @@ cupsdSaveJob(cupsd_job_t *job) /* I - Job */
if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
job->attrs) != IPP_DATA)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to write job control file!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Unable to write job control file!");
cupsFileClose(fp);
@@ -1756,8 +1745,7 @@ cupsdStopJob(cupsd_job_t *job, /* I - Job */
int i; /* Looping var */
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] cupsdStopJob: force = %d", job->id, force);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "cupsdStopJob: force = %d", force);
if (job->state_value != IPP_JOB_PROCESSING)
return;
@@ -1790,18 +1778,18 @@ cupsdStopJob(cupsd_job_t *job, /* I - Job */
cupsdDestroyProfile(job->profile);
job->profile = NULL;
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] Closing print pipes [ %d %d ]...",
- job->id, job->print_pipes[0], job->print_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "Closing print pipes [ %d %d ]...",
+ job->print_pipes[0], job->print_pipes[1]);
cupsdClosePipe(job->print_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] Closing back pipes [ %d %d ]...",
- job->id, job->back_pipes[0], job->back_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "Closing back pipes [ %d %d ]...",
+ job->back_pipes[0], job->back_pipes[1]);
cupsdClosePipe(job->back_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] Closing side pipes [ %d %d ]...",
- job->id, job->side_pipes[0], job->side_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "Closing side pipes [ %d %d ]...",
+ job->side_pipes[0], job->side_pipes[1]);
cupsdClosePipe(job->side_pipes);
@@ -1813,9 +1801,8 @@ cupsdStopJob(cupsd_job_t *job, /* I - Job */
cupsdRemoveSelect(job->status_buffer->fd);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] Closing status pipes [ %d %d ]...", job->id,
- job->status_pipes[0], job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "Closing status pipes [ %d %d ]...",
+ job->status_pipes[0], job->status_pipes[1]);
cupsdClosePipe(job->status_pipes);
cupsdStatBufDelete(job->status_buffer);
@@ -2093,7 +2080,7 @@ load_job_cache(const char *filename) /* I - job.cache filename */
if (!job)
{
cupsdLogMessage(CUPSD_LOG_EMERG,
- "[Job %d] Unable to allocate memory for job!", jobid);
+ "[Job %d] Unable to allocate memory for job!", jobid);
break;
}
@@ -2107,7 +2094,7 @@ load_job_cache(const char *filename) /* I - job.cache filename */
job->status_pipes[0] = -1;
job->status_pipes[1] = -1;
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Loading from cache...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Loading from cache...");
}
else if (!job)
{
@@ -2175,8 +2162,7 @@ load_job_cache(const char *filename) /* I - job.cache filename */
job->id);
if (access(jobfile, 0))
{
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] Data files have gone away!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Data files have gone away!");
job->num_files = 0;
continue;
}
@@ -2186,9 +2172,9 @@ load_job_cache(const char *filename) /* I - job.cache filename */
if (!job->filetypes || !job->compressions)
{
- cupsdLogMessage(CUPSD_LOG_EMERG,
- "[Job %d] Unable to allocate memory for %d files!",
- job->id, job->num_files);
+ cupsdLogJob(job, CUPSD_LOG_EMERG,
+ "Unable to allocate memory for %d files!",
+ job->num_files);
break;
}
}
@@ -2226,9 +2212,9 @@ load_job_cache(const char *filename) /* I - job.cache filename */
* If the original MIME type is unknown, auto-type it!
*/
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unknown MIME type %s/%s for file %d!",
- job->id, super, type, number + 1);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unknown MIME type %s/%s for file %d!",
+ super, type, number + 1);
snprintf(jobfile, sizeof(jobfile), "%s/d%05d-%03d", RequestRoot,
job->id, number + 1);
@@ -2519,14 +2505,12 @@ start_job(cupsd_job_t *job, /* I - Job ID */
static int optlength = 0; /* Length of option buffer */
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] start_job: file = %d/%d",
- job->id, job->current_file, job->num_files);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "start_job: file = %d/%d",
+ job->current_file, job->num_files);
if (job->num_files == 0)
{
- cupsdLogMessage(CUPSD_LOG_ERROR, "[Job %d] No files, canceling job!",
- job->id);
-
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "No files, canceling job!");
cupsdCancelJob(job, 0, IPP_JOB_ABORTED);
return;
}
@@ -2546,8 +2530,7 @@ start_job(cupsd_job_t *job, /* I - Job ID */
* filtering...
*/
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] Sending job to queue tagged as raw...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Sending job to queue tagged as raw...");
filters = NULL;
}
@@ -2562,9 +2545,9 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (!filters)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to convert file %d to printable format!",
- job->current_file, job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to convert file %d to printable format!",
+ job->current_file);
cupsdLogMessage(CUPSD_LOG_INFO,
"Hint: Do you have Ghostscript installed?");
@@ -2645,13 +2628,12 @@ start_job(cupsd_job_t *job, /* I - Job ID */
cupsArrayDelete(filters);
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] Holding because filter limit has been reached.",
- job->id);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: file=%d, cost=%d, level=%d, limit=%d",
- job->id, job->current_file, job->cost, FilterLevel,
- FilterLimit);
+ cupsdLogJob(job, CUPSD_LOG_INFO,
+ "Holding because filter limit has been reached.");
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: file=%d, cost=%d, level=%d, limit=%d",
+ job->current_file, job->cost, FilterLevel,
+ FilterLimit);
return;
}
@@ -2674,9 +2656,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (!cupsArrayInsert(filters, &gziptoany_filter))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to add decompression filter - %s",
- job->id, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to add decompression filter - %s", strerror(errno));
cupsArrayDelete(filters);
@@ -2711,9 +2692,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (!cupsArrayAdd(filters, &port_monitor))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to add port monitor - %s",
- job->id, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to add port monitor - %s", strerror(errno));
cupsArrayDelete(filters);
@@ -2732,9 +2712,9 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (cupsArrayCount(filters) > MAX_FILTERS)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Too many filters (%d > %d), unable to print!",
- job->id, cupsArrayCount(filters), MAX_FILTERS);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Too many filters (%d > %d), unable to print!",
+ cupsArrayCount(filters), MAX_FILTERS);
cupsArrayDelete(filters);
cupsdCancelJob(job, 0, IPP_JOB_STOPPED);
@@ -2801,21 +2781,19 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (job->job_sheets == NULL)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] No job-sheets attribute.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "No job-sheets attribute.");
if ((job->job_sheets =
ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_ZERO)) != NULL)
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] ... but someone added one without setting "
- "job_sheets!", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG,
+ "... but someone added one without setting job_sheets!");
}
else if (job->job_sheets->num_values == 1)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] job-sheets=%s", job->id,
- job->job_sheets->values[0].string.text);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "job-sheets=%s",
+ job->job_sheets->values[0].string.text);
else
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] job-sheets=%s,%s", job->id,
- job->job_sheets->values[0].string.text,
- job->job_sheets->values[1].string.text);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "job-sheets=%s,%s",
+ job->job_sheets->values[0].string.text,
+ job->job_sheets->values[1].string.text);
if (printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT))
banner_page = 0;
@@ -2831,8 +2809,7 @@ start_job(cupsd_job_t *job, /* I - Job ID */
else
banner_page = 0;
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] banner_page = %d", job->id,
- banner_page);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "banner_page = %d", banner_page);
/*
* Building the options string is harder than it needs to be, but
@@ -2853,9 +2830,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (optptr == NULL)
{
- cupsdLogMessage(CUPSD_LOG_CRIT,
- "[Job %d] Unable to allocate %d bytes for option buffer!",
- job->id, i);
+ cupsdLogJob(job, CUPSD_LOG_CRIT,
+ "Unable to allocate %d bytes for option buffer!", i);
cupsArrayDelete(filters);
@@ -3080,8 +3056,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
}
for (i = 0; argv[i]; i ++)
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] argv[%d]=\"%s\"", job->id, i, argv[i]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG,
+ "argv[%d]=\"%s\"", i, argv[i]);
/*
* Create environment variable strings for the filters...
@@ -3220,14 +3196,13 @@ start_job(cupsd_job_t *job, /* I - Job ID */
for (i = 0; i < envc; i ++)
if (!strncmp(envp[i], "AUTH_", 5))
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] envp[%d]=\"AUTH_%c****\"",
- job->id, i, envp[i][5]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "envp[%d]=\"AUTH_%c****\"", i,
+ envp[i][5]);
else if (strncmp(envp[i], "DEVICE_URI=", 11))
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] envp[%d]=\"%s\"",
- job->id, i, envp[i]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "envp[%d]=\"%s\"", i, envp[i]);
else
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] envp[%d]=\"DEVICE_URI=%s\"",
- job->id, i, sani_uri);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "envp[%d]=\"DEVICE_URI=%s\"", i,
+ sani_uri);
if (printer->remote)
job->current_file = job->num_files;
@@ -3247,9 +3222,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
{
if (cupsdOpenPipe(job->status_pipes))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to create job status pipes - %s.",
- job->id, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to create job status pipes - %s.", strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to create status pipes - %s.", strerror(errno));
@@ -3262,12 +3236,11 @@ start_job(cupsd_job_t *job, /* I - Job ID */
goto abort_job;
}
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: status_pipes = [ %d %d ]",
- job->id, job->status_pipes[0], job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: status_pipes = [ %d %d ]",
+ job->status_pipes[0], job->status_pipes[1]);
- job->status_buffer = cupsdStatBufNew(job->status_pipes[0], "[Job %d]",
- job->id);
+ job->status_buffer = cupsdStatBufNew(job->status_pipes[0], NULL);
job->status_level = CUPSD_LOG_INFO;
}
@@ -3291,9 +3264,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
{
if (cupsdOpenPipe(filterfds[slot]))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to create job filter pipes - %s.",
- job->id, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to create job filter pipes - %s.", strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to create filter pipes - %s.", strerror(errno));
cupsdAddPrinterHistory(printer);
@@ -3313,9 +3285,9 @@ start_job(cupsd_job_t *job, /* I - Job ID */
{
if (cupsdOpenPipe(job->print_pipes))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to create job backend pipes - %s.",
- job->id, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to create job backend pipes - %s.",
+ strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to create backend pipes - %s.", strerror(errno));
cupsdAddPrinterHistory(printer);
@@ -3350,9 +3322,9 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (job->print_pipes[1] < 0)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to open output file \"%s\" - %s.",
- job->id, printer->device_uri, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to open output file \"%s\" - %s.",
+ printer->device_uri, strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to open output file \"%s\" - %s.",
printer->device_uri, strerror(errno));
@@ -3369,38 +3341,34 @@ start_job(cupsd_job_t *job, /* I - Job ID */
}
}
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: print_pipes = [ %d %d ]",
- job->id, job->print_pipes[0], job->print_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: print_pipes = [ %d %d ]",
+ job->print_pipes[0], job->print_pipes[1]);
}
filterfds[slot][0] = job->print_pipes[0];
filterfds[slot][1] = job->print_pipes[1];
}
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] start_job: filter=\"%s\"",
- job->id, command);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: filterfds[%d]=[ %d %d ]",
- job->id, slot, filterfds[slot][0], filterfds[slot][1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "start_job: filter=\"%s\"", command);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "start_job: filterfds[%d]=[ %d %d ]",
+ slot, filterfds[slot][0], filterfds[slot][1]);
pid = cupsdStartProcess(command, argv, envp, filterfds[!slot][0],
filterfds[slot][1], job->status_pipes[1],
job->back_pipes[0], job->side_pipes[0], 0,
job->profile, job->filters + i);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing filter pipes for slot %d "
- "[ %d %d ]...",
- job->id, !slot, filterfds[!slot][0], filterfds[!slot][1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing filter pipes for slot %d [ %d %d ]...",
+ !slot, filterfds[!slot][0], filterfds[!slot][1]);
cupsdClosePipe(filterfds[!slot]);
if (pid == 0)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to start filter \"%s\" - %s.",
- job->id, filter->filter, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Unable to start filter \"%s\" - %s.",
+ filter->filter, strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to start filter \"%s\" - %s.",
filter->filter, strerror(errno));
@@ -3414,14 +3382,15 @@ start_job(cupsd_job_t *job, /* I - Job ID */
goto abort_job;
}
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Started filter %s (PID %d)",
- job->id, command, pid);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Started filter %s (PID %d)", command,
+ pid);
argv[6] = NULL;
slot = !slot;
}
cupsArrayDelete(filters);
+ filters = NULL;
/*
* Finally, pipe the final output into a backend process if needed...
@@ -3450,11 +3419,9 @@ start_job(cupsd_job_t *job, /* I - Job ID */
filterfds[slot][0] = -1;
filterfds[slot][1] = -1;
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] start_job: backend=\"%s\"",
- job->id, command);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: filterfds[%d] = [ %d %d ]", job->id,
- slot, filterfds[slot][0], filterfds[slot][1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "start_job: backend=\"%s\"", command);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2, "start_job: filterfds[%d] = [ %d %d ]",
+ slot, filterfds[slot][0], filterfds[slot][1]);
pid = cupsdStartProcess(command, argv, envp, filterfds[!slot][0],
filterfds[slot][1], job->status_pipes[1],
@@ -3463,9 +3430,8 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (pid == 0)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to start backend \"%s\" - %s.",
- job->id, method, strerror(errno));
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Unable to start backend \"%s\" - %s.",
+ method, strerror(errno));
snprintf(printer->state_message, sizeof(printer->state_message),
"Unable to start backend \"%s\" - %s.", method,
strerror(errno));
@@ -3478,34 +3444,34 @@ start_job(cupsd_job_t *job, /* I - Job ID */
}
else
{
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Started backend %s (PID %d)",
- job->id, command, pid);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Started backend %s (PID %d)",
+ command, pid);
}
}
if (job->current_file == job->num_files)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing print pipes [ %d %d ]...",
- job->id, job->print_pipes[0], job->print_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing print pipes [ %d %d ]...",
+ job->print_pipes[0], job->print_pipes[1]);
cupsdClosePipe(job->print_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing back pipes [ %d %d ]...",
- job->id, job->back_pipes[0], job->back_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing back pipes [ %d %d ]...",
+ job->back_pipes[0], job->back_pipes[1]);
cupsdClosePipe(job->back_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing side pipes [ %d %d ]...",
- job->id, job->side_pipes[0], job->side_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing side pipes [ %d %d ]...",
+ job->side_pipes[0], job->side_pipes[1]);
cupsdClosePipe(job->side_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing status output pipe %d...",
- job->id, job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing status output pipe %d...",
+ job->status_pipes[1]);
close(job->status_pipes[1]);
job->status_pipes[1] = -1;
@@ -3518,25 +3484,24 @@ start_job(cupsd_job_t *job, /* I - Job ID */
if (job->current_file == job->num_files)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing print pipes [ %d %d ]...",
- job->id, job->print_pipes[0], job->print_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing print pipes [ %d %d ]...",
+ job->print_pipes[0], job->print_pipes[1]);
cupsdClosePipe(job->print_pipes);
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing status output pipe %d...",
- job->id, job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing status output pipe %d...",
+ job->status_pipes[1]);
close(job->status_pipes[1]);
job->status_pipes[1] = -1;
}
}
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing filter pipes for slot %d "
- "[ %d %d ]...",
- job->id, slot, filterfds[slot][0], filterfds[slot][1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing filter pipes for slot %d [ %d %d ]...",
+ slot, filterfds[slot][0], filterfds[slot][1]);
cupsdClosePipe(filterfds[slot]);
if (printer->remote && job->num_files > 1)
@@ -3565,16 +3530,15 @@ start_job(cupsd_job_t *job, /* I - Job ID */
for (slot = 0; slot < 2; slot ++)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing filter pipes for slot %d "
- "[ %d %d ]...",
- job->id, slot, filterfds[slot][0], filterfds[slot][1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing filter pipes for slot %d [ %d %d ]...",
+ slot, filterfds[slot][0], filterfds[slot][1]);
cupsdClosePipe(filterfds[slot]);
}
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "[Job %d] start_job: Closing status pipes [ %d %d ]...",
- job->id, job->status_pipes[0], job->status_pipes[1]);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG2,
+ "start_job: Closing status pipes [ %d %d ]...",
+ job->status_pipes[0], job->status_pipes[1]);
cupsdClosePipe(job->status_pipes);
cupsdStatBufDelete(job->status_buffer);
@@ -3604,7 +3568,7 @@ unload_job(cupsd_job_t *job) /* I - Job */
if (!job->attrs)
return;
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Unloading...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Unloading...");
ippDelete(job->attrs);
@@ -3646,8 +3610,7 @@ update_job(cupsd_job_t *job) /* I - Job to check */
* job sheet count...
*/
- if (LogLevel >= CUPSD_LOG_DEBUG)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] PAGE: %s", job->id, message);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "PAGE: %s", message);
if (job->sheets)
{
@@ -3677,11 +3640,11 @@ update_job(cupsd_job_t *job) /* I - Job to check */
* Quota limit exceeded, cancel job in progress immediately...
*/
- cupsdLogMessage(CUPSD_LOG_INFO,
- "[Job %d] Canceled because pages exceed user %s "
- "quota limit on printer %s (%s).",
- job->id, job->username, job->printer->name,
- job->printer->info);
+ cupsdLogJob(job, CUPSD_LOG_INFO,
+ "Canceled because pages exceed user %s "
+ "quota limit on printer %s (%s).",
+ job->username, job->printer->name,
+ job->printer->info);
cupsdCancelJob(job, 1, IPP_JOB_CANCELED);
return;
@@ -3700,9 +3663,7 @@ update_job(cupsd_job_t *job) /* I - Job to check */
}
else if (loglevel == CUPSD_LOG_STATE)
{
- if (LogLevel >= CUPSD_LOG_DEBUG)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] STATE: %s", job->id,
- message);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "STATE: %s", message);
if (!strcmp(message, "paused"))
{
@@ -3729,8 +3690,7 @@ update_job(cupsd_job_t *job) /* I - Job to check */
const char *attr; /* Attribute */
- if (LogLevel >= CUPSD_LOG_DEBUG)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] ATTR: %s", job->id, message);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "ATTR: %s", message);
num_attrs = cupsParseOptions(message, 0, &attrs);
@@ -3773,6 +3733,13 @@ update_job(cupsd_job_t *job) /* I - Job to check */
event |= CUPSD_EVENT_PRINTER_STATE;
}
+ if ((attr = cupsGetOption("marker-message", num_attrs, attrs)) != NULL)
+ {
+ cupsdSetPrinterAttr(job->printer, "marker-message", (char *)attr);
+ job->printer->marker_time = time(NULL);
+ event |= CUPSD_EVENT_PRINTER_STATE;
+ }
+
if ((attr = cupsGetOption("marker-names", num_attrs, attrs)) != NULL)
{
cupsdSetPrinterAttr(job->printer, "marker-names", (char *)attr);
@@ -3799,8 +3766,7 @@ update_job(cupsd_job_t *job) /* I - Job to check */
cups_option_t *keywords; /* Keywords */
- if (LogLevel >= CUPSD_LOG_DEBUG)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] PPD: %s", job->id, message);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "PPD: %s", message);
num_keywords = cupsParseOptions(message, 0, &keywords);
@@ -3837,23 +3803,28 @@ update_job(cupsd_job_t *job) /* I - Job to check */
event |= CUPSD_EVENT_PRINTER_STATE;
}
#endif /* __APPLE__ */
- else if (loglevel <= job->status_level)
+ else
{
- /*
- * Some message to show in the printer-state-message attribute...
- */
+ cupsdLogJob(job, loglevel, "%s", message);
- if (loglevel != CUPSD_LOG_NOTICE)
- job->status_level = loglevel;
+ if (loglevel <= job->status_level)
+ {
+ /*
+ * Some messages show in the printer-state-message attribute...
+ */
- strlcpy(job->printer->state_message, message,
- sizeof(job->printer->state_message));
- cupsdAddPrinterHistory(job->printer);
+ if (loglevel != CUPSD_LOG_NOTICE)
+ job->status_level = loglevel;
- if (loglevel <= CUPSD_LOG_INFO)
- event |= CUPSD_EVENT_PRINTER_STATE;
+ strlcpy(job->printer->state_message, message,
+ sizeof(job->printer->state_message));
+ cupsdAddPrinterHistory(job->printer);
- update_job_attrs(job);
+ if (loglevel <= CUPSD_LOG_INFO)
+ event |= CUPSD_EVENT_PRINTER_STATE;
+
+ update_job_attrs(job);
+ }
}
if (!strchr(job->status_buffer->buffer, '\n'))
@@ -3971,5 +3942,5 @@ update_job_attrs(cupsd_job_t *job) /* I - Job to update */
/*
- * End of "$Id: job.c 7005 2007-10-01 23:45:48Z mike $".
+ * End of "$Id: job.c 7682 2008-06-21 00:06:02Z mike $".
*/
diff --git a/scheduler/job.h b/scheduler/job.h
index 09bf75ce0..e1e304324 100644
--- a/scheduler/job.h
+++ b/scheduler/job.h
@@ -1,5 +1,5 @@
/*
- * "$Id: job.h 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: job.h 7468 2008-04-18 18:31:59Z mike $"
*
* Print job definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -131,5 +131,5 @@ extern void cupsdUnloadCompletedJobs(void);
/*
- * End of "$Id: job.h 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: job.h 7468 2008-04-18 18:31:59Z mike $".
*/
diff --git a/scheduler/libcupsmime.exp b/scheduler/libcupsmime.exp
index bf2fa4c02..dfe99c290 100644
--- a/scheduler/libcupsmime.exp
+++ b/scheduler/libcupsmime.exp
@@ -10,8 +10,8 @@ _mimeFilterLookup
_mimeFirstFilter
_mimeFirstType
_mimeLoad
-_mimeMerge
-_mimeNew
+_mimeLoadFilters
+_mimeLoadTypes
_mimeNextFilter
_mimeNextType
_mimeNumFilters
diff --git a/scheduler/listen.c b/scheduler/listen.c
index 931bc9de1..361ff677c 100644
--- a/scheduler/listen.c
+++ b/scheduler/listen.c
@@ -1,5 +1,5 @@
/*
- * "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $"
+ * "$Id: listen.c 7673 2008-06-18 22:31:26Z mike $"
*
* Server listening routines for the Common UNIX Printing System (CUPS)
* scheduler.
@@ -151,7 +151,7 @@ cupsdStartListening(void)
if ((ServerAddrs = httpAddrGetList(ServerName, AF_UNSPEC, NULL)) == NULL)
cupsdLogMessage(CUPSD_LOG_ERROR,
- "Unable to find IP address for server name \"%s\"!\n",
+ "Unable to find IP address for server name \"%s\"!",
ServerName);
/*
@@ -428,5 +428,5 @@ cupsdStopListening(void)
/*
- * End of "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $".
+ * End of "$Id: listen.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/log.c b/scheduler/log.c
index 4a21b0856..fde21215e 100644
--- a/scheduler/log.c
+++ b/scheduler/log.c
@@ -1,5 +1,5 @@
/*
- * "$Id: log.c 6875 2007-08-27 23:25:06Z mike $"
+ * "$Id: log.c 7697 2008-06-27 15:56:00Z mike $"
*
* Log file routines for the Common UNIX Printing System (CUPS).
*
@@ -16,10 +16,13 @@
*
* cupsdGetDateTime() - Returns a pointer to a date/time string.
* cupsdLogGSSMessage() - Log a GSSAPI error...
+ * cupsdLogJob() - Log a job message.
* cupsdLogMessage() - Log a message to the error log file.
* cupsdLogPage() - Log a page to the page log file.
* cupsdLogRequest() - Log an HTTP request in Common Log Format.
+ * cupsdWriteErrorLog() - Write a line to the ErrorLog.
* check_log_file() - Open/rotate a log file if it needs it.
+ * format_log_line() - Format a line for a log file.
*/
/*
@@ -32,10 +35,19 @@
/*
+ * Local globals...
+ */
+
+static int log_linesize = 0; /* Size of line for output file */
+static char *log_line = NULL; /* Line for output file */
+
+
+/*
* Local functions...
*/
-static int check_log_file(cups_file_t **, const char *);
+static int check_log_file(cups_file_t **lf, const char *logname);
+static char *format_log_line(const char *message, va_list ap);
/*
@@ -157,176 +169,94 @@ cupsdLogGSSMessage(
/*
- * 'cupsdLogMessage()' - Log a message to the error log file.
+ * 'cupsdLogJob()' - Log a job message.
*/
int /* O - 1 on success, 0 on error */
-cupsdLogMessage(int level, /* I - Log level */
- const char *message, /* I - printf-style message string */
- ...) /* I - Additional args as needed */
+cupsdLogJob(cupsd_job_t *job, /* I - Job */
+ int level, /* I - Log level */
+ const char *message, /* I - Printf-style message string */
+ ...) /* I - Additional arguments as needed */
{
- int len; /* Length of message */
va_list ap; /* Argument pointer */
- static const char levels[] = /* Log levels... */
- {
- ' ',
- 'X',
- 'A',
- 'C',
- 'E',
- 'W',
- 'N',
- 'I',
- 'D',
- 'd'
- };
-#ifdef HAVE_VSYSLOG
- static const int syslevels[] = /* SYSLOG levels... */
- {
- 0,
- LOG_EMERG,
- LOG_ALERT,
- LOG_CRIT,
- LOG_ERR,
- LOG_WARNING,
- LOG_NOTICE,
- LOG_INFO,
- LOG_DEBUG,
- LOG_DEBUG
- };
-#endif /* HAVE_VSYSLOG */
- static int linesize = 0; /* Size of line for output file */
- static char *line = NULL; /* Line for output file */
+ char jobmsg[1024], /* Format string for job message */
+ *line; /* Message line */
/*
* See if we want to log this message...
*/
- if (TestConfigFile)
- {
- if (level <= CUPSD_LOG_WARN)
- {
- va_start(ap, message);
- vfprintf(stderr, message, ap);
- putc('\n', stderr);
- va_end(ap);
- }
-
+ if (TestConfigFile || level > LogLevel || !ErrorLog)
return (1);
- }
if (level > LogLevel || !ErrorLog)
return (1);
-#ifdef HAVE_VSYSLOG
- /*
- * See if we are logging errors via syslog...
- */
-
- if (!strcmp(ErrorLog, "syslog"))
- {
- va_start(ap, message);
- vsyslog(syslevels[level], message, ap);
- va_end(ap);
-
- return (1);
- }
-#endif /* HAVE_VSYSLOG */
-
- /*
- * Not using syslog; check the log file...
- */
-
- if (!check_log_file(&ErrorFile, ErrorLog))
- return (0);
-
/*
- * Print the log level and date/time...
+ * Format and write the log message...
*/
- cupsFilePrintf(ErrorFile, "%c %s ", levels[level], cupsdGetDateTime(time(NULL)));
+ snprintf(jobmsg, sizeof(jobmsg), "[Job %d] %s", job->id, message);
- /*
- * Allocate the line buffer as needed...
- */
+ va_start(ap, message);
+ line = format_log_line(jobmsg, ap);
+ va_end(ap);
- if (!linesize)
- {
- linesize = 8192;
- line = malloc(linesize);
+ if (line)
+ return (cupsdWriteErrorLog(level, line));
+ else
+ return (cupsdWriteErrorLog(CUPSD_LOG_ERROR,
+ "Unable to allocate memory for log line!"));
+}
- if (!line)
- {
- cupsFilePrintf(ErrorFile,
- "ERROR: Unable to allocate memory for line - %s\n",
- strerror(errno));
- cupsFileFlush(ErrorFile);
- return (0);
- }
- }
+/*
+ * 'cupsdLogMessage()' - Log a message to the error log file.
+ */
- /*
- * Format the log message...
- */
+int /* O - 1 on success, 0 on error */
+cupsdLogMessage(int level, /* I - Log level */
+ const char *message, /* I - printf-style message string */
+ ...) /* I - Additional args as needed */
+{
+ va_list ap; /* Argument pointer */
+ char *line; /* Message line */
- va_start(ap, message);
- len = vsnprintf(line, linesize, message, ap);
- va_end(ap);
/*
- * Resize the buffer as needed...
+ * See if we want to log this message...
*/
- if (len >= linesize)
+ if (TestConfigFile)
{
- char *temp; /* Temporary string pointer */
-
-
- len ++;
-
- if (len < 8192)
- len = 8192;
- else if (len > 65536)
- len = 65536;
-
- temp = realloc(line, len);
-
- if (temp)
+ if (level <= CUPSD_LOG_WARN)
{
- line = temp;
- linesize = len;
+ va_start(ap, message);
+ vfprintf(stderr, message, ap);
+ putc('\n', stderr);
+ va_end(ap);
}
- va_start(ap, message);
- len = vsnprintf(line, linesize, message, ap);
- va_end(ap);
+ return (1);
}
- if (len >= linesize)
- len = linesize - 1;
-
- /*
- * Then the log message...
- */
-
- cupsFilePuts(ErrorFile, line);
-
- /*
- * Then a newline...
- */
-
- if (len > 0 && line[len - 1] != '\n')
- cupsFilePutChar(ErrorFile, '\n');
+ if (level > LogLevel || !ErrorLog)
+ return (1);
/*
- * Flush the line to the file and return...
+ * Format and write the log message...
*/
- cupsFileFlush(ErrorFile);
+ va_start(ap, message);
+ line = format_log_line(message, ap);
+ va_end(ap);
- return (1);
+ if (line)
+ return (cupsdWriteErrorLog(level, line));
+ else
+ return (cupsdWriteErrorLog(CUPSD_LOG_ERROR,
+ "Unable to allocate memory for log line!"));
}
@@ -414,8 +344,10 @@ cupsdLogPage(cupsd_job_t *job, /* I - Job being printed */
* Pull the name from inside the brackets...
*/
- memcpy(name, format + 1, nameend - format - 2);
- name[nameend - format - 2] = '\0';
+ memcpy(name, format + 1, nameend - format - 1);
+ name[nameend - format - 1] = '\0';
+
+ format = nameend;
if ((attr = ippFindAttribute(job->attrs, name,
IPP_TAG_ZERO)) != NULL)
@@ -424,8 +356,6 @@ cupsdLogPage(cupsd_job_t *job, /* I - Job being printed */
* Add the attribute value...
*/
- format = nameend;
-
for (i = 0;
i < attr->num_values &&
bufptr < (buffer + sizeof(buffer) - 1);
@@ -607,6 +537,75 @@ cupsdLogRequest(cupsd_client_t *con, /* I - Request to log */
/*
+ * 'cupsdWriteErrorLog()' - Write a line to the ErrorLog.
+ */
+
+int /* O - 1 on success, 0 on failure */
+cupsdWriteErrorLog(int level, /* I - Log level */
+ const char *message) /* I - Message string */
+{
+ static const char levels[] = /* Log levels... */
+ {
+ ' ',
+ 'X',
+ 'A',
+ 'C',
+ 'E',
+ 'W',
+ 'N',
+ 'I',
+ 'D',
+ 'd'
+ };
+#ifdef HAVE_VSYSLOG
+ static const int syslevels[] = /* SYSLOG levels... */
+ {
+ 0,
+ LOG_EMERG,
+ LOG_ALERT,
+ LOG_CRIT,
+ LOG_ERR,
+ LOG_WARNING,
+ LOG_NOTICE,
+ LOG_INFO,
+ LOG_DEBUG,
+ LOG_DEBUG
+ };
+#endif /* HAVE_VSYSLOG */
+
+
+#ifdef HAVE_VSYSLOG
+ /*
+ * See if we are logging errors via syslog...
+ */
+
+ if (!strcmp(ErrorLog, "syslog"))
+ {
+ syslog(syslevels[level], "%s", message);
+ return (1);
+ }
+#endif /* HAVE_VSYSLOG */
+
+ /*
+ * Not using syslog; check the log file...
+ */
+
+ if (!check_log_file(&ErrorFile, ErrorLog))
+ return (0);
+
+ /*
+ * Write the log message...
+ */
+
+ cupsFilePrintf(ErrorFile, "%c %s %s\n", levels[level],
+ cupsdGetDateTime(time(NULL)), message);
+ cupsFileFlush(ErrorFile);
+
+ return (1);
+}
+
+
+/*
* 'check_log_file()' - Open/rotate a log file if it needs it.
*/
@@ -765,5 +764,70 @@ check_log_file(cups_file_t **lf, /* IO - Log file */
/*
- * End of "$Id: log.c 6875 2007-08-27 23:25:06Z mike $".
+ * 'format_log_line()' - Format a line for a log file.
+ *
+ * This function resizes a global string buffer as needed. Each call returns
+ * a pointer to this buffer, so the contents are only good until the next call
+ * to format_log_line()...
+ */
+
+static char * /* O - Text or NULL on error */
+format_log_line(const char *message, /* I - Printf-style format string */
+ va_list ap) /* I - Argument list */
+{
+ int len; /* Length of formatted line */
+
+
+ /*
+ * Allocate the line buffer as needed...
+ */
+
+ if (!log_linesize)
+ {
+ log_linesize = 8192;
+ log_line = malloc(log_linesize);
+
+ if (!log_line)
+ return (NULL);
+ }
+
+ /*
+ * Format the log message...
+ */
+
+ len = vsnprintf(log_line, log_linesize, message, ap);
+
+ /*
+ * Resize the buffer as needed...
+ */
+
+ if (len >= log_linesize)
+ {
+ char *temp; /* Temporary string pointer */
+
+
+ len ++;
+
+ if (len < 8192)
+ len = 8192;
+ else if (len > 65536)
+ len = 65536;
+
+ temp = realloc(log_line, len);
+
+ if (temp)
+ {
+ log_line = temp;
+ log_linesize = len;
+ }
+
+ len = vsnprintf(log_line, log_linesize, message, ap);
+ }
+
+ return (log_line);
+}
+
+
+/*
+ * End of "$Id: log.c 7697 2008-06-27 15:56:00Z mike $".
*/
diff --git a/scheduler/main.c b/scheduler/main.c
index 54334523b..e3319467a 100644
--- a/scheduler/main.c
+++ b/scheduler/main.c
@@ -1,5 +1,5 @@
/*
- * "$Id: main.c 6914 2007-09-05 21:05:04Z mike $"
+ * "$Id: main.c 7681 2008-06-20 21:06:02Z mike $"
*
* Scheduler main loop for the Common UNIX Printing System (CUPS).
*
@@ -489,7 +489,7 @@ main(int argc, /* I - Number of command-line args */
{
snprintf(tempfile, sizeof(tempfile), "%s/%s", TempDir, dent->filename);
- if (cupsdRemoveFile(tempfile))
+ if (unlink(tempfile))
cupsdLogMessage(CUPSD_LOG_ERROR,
"Unable to remove temporary file \"%s\" - %s",
tempfile, strerror(errno));
@@ -2019,5 +2019,5 @@ usage(int status) /* O - Exit status */
/*
- * End of "$Id: main.c 6914 2007-09-05 21:05:04Z mike $".
+ * End of "$Id: main.c 7681 2008-06-20 21:06:02Z mike $".
*/
diff --git a/scheduler/mime.c b/scheduler/mime.c
index cee81209e..890f2ea06 100644
--- a/scheduler/mime.c
+++ b/scheduler/mime.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mime.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: mime.c 7694 2008-06-26 00:23:20Z mike $"
*
* MIME database file routines for the Common UNIX Printing System (CUPS).
*
@@ -72,6 +72,7 @@ static void load_convs(mime_t *mime, const char *filename,
const char *filterpath,
cups_array_t *filtercache);
static void load_types(mime_t *mime, const char *filename);
+static mime_t *mime_new(void);
/*
@@ -192,73 +193,50 @@ mimeFirstType(mime_t *mime) /* I - MIME database */
/*
* 'mimeLoad()' - Create a new MIME database from disk.
+ *
+ * This function uses @link mimeLoadFilters@ and @link mimeLoadTypes@ to
+ * create a MIME database from a single directory.
*/
mime_t * /* O - New MIME database */
mimeLoad(const char *pathname, /* I - Directory to load */
const char *filterpath) /* I - Directory to load */
{
- return (mimeMerge(NULL, pathname, filterpath));
+ return (mimeLoadFilters(mimeLoadTypes(NULL, pathname), pathname, filterpath));
}
/*
- * 'mimeMerge()' - Merge a MIME database from disk with the current one.
+ * 'mimeLoadFilters()' - Load filter definitions from disk.
+ *
+ * This function loads all of the .convs files from the specified directory.
+ * Use @link mimeLoadTypes@ to load all types before you load the filters.
*/
-mime_t * /* O - Updated MIME database */
-mimeMerge(mime_t *mime, /* I - MIME database to add to */
- const char *pathname, /* I - Directory to load */
- const char *filterpath) /* I - Directory to load */
+mime_t * /* O - MIME database */
+mimeLoadFilters(mime_t *mime, /* I - MIME database */
+ const char *pathname, /* I - Directory to load from */
+ const char *filterpath) /* I - Default filter program directory */
{
cups_dir_t *dir; /* Directory */
cups_dentry_t *dent; /* Directory entry */
- char filename[1024]; /* Full filename of types/converts file */
+ char filename[1024]; /* Full filename of .convs file */
cups_array_t *filtercache; /* Filter cache */
/*
- * First open the directory specified by pathname... Return NULL if nothing
- * was read or if the pathname is NULL...
+ * Range check input...
*/
- if (!pathname)
- return (NULL);
-
- if ((dir = cupsDirOpen(pathname)) == NULL)
- return (NULL);
+ if (!mime || !pathname || !filterpath)
+ return (mime);
/*
- * If "mime" is NULL, make a new, blank database...
+ * Then open the directory specified by pathname...
*/
- if (!mime)
- mime = mimeNew();
- if (!mime)
- {
- cupsDirClose(dir);
- return (NULL);
- }
-
- /*
- * Read all the .types files...
- */
-
- while ((dent = cupsDirRead(dir)) != NULL)
- {
- if (strlen(dent->filename) > 6 &&
- !strcmp(dent->filename + strlen(dent->filename) - 6, ".types"))
- {
- /*
- * Load a mime.types file...
- */
-
- snprintf(filename, sizeof(filename), "%s/%s", pathname, dent->filename);
- load_types(mime, filename);
- }
- }
-
- cupsDirRewind(dir);
+ if ((dir = cupsDirOpen(pathname)) == NULL)
+ return (mime);
/*
* Read all the .convs files...
@@ -289,13 +267,62 @@ mimeMerge(mime_t *mime, /* I - MIME database to add to */
/*
- * 'mimeNew()' - Create a new, empty MIME database.
+ * 'mimeLoadTypes()' - Load type definitions from disk.
+ *
+ * This function loads all of the .types files from the specified directory.
+ * Use @link mimeLoadFilters@ to load all filters after you load the types.
*/
mime_t * /* O - MIME database */
-mimeNew(void)
+mimeLoadTypes(mime_t *mime, /* I - MIME database or @code NULL@ to create a new one */
+ const char *pathname) /* I - Directory to load from */
{
- return ((mime_t *)calloc(1, sizeof(mime_t)));
+ cups_dir_t *dir; /* Directory */
+ cups_dentry_t *dent; /* Directory entry */
+ char filename[1024]; /* Full filename of .types file */
+
+
+ /*
+ * First open the directory specified by pathname...
+ */
+
+ if ((dir = cupsDirOpen(pathname)) == NULL)
+ return (mime);
+
+ /*
+ * If "mime" is NULL, make a new, empty database...
+ */
+
+ if (!mime)
+ mime = mime_new();
+
+ if (!mime)
+ {
+ cupsDirClose(dir);
+ return (NULL);
+ }
+
+ /*
+ * Read all the .types files...
+ */
+
+ while ((dent = cupsDirRead(dir)) != NULL)
+ {
+ if (strlen(dent->filename) > 6 &&
+ !strcmp(dent->filename + strlen(dent->filename) - 6, ".types"))
+ {
+ /*
+ * Load a mime.types file...
+ */
+
+ snprintf(filename, sizeof(filename), "%s/%s", pathname, dent->filename);
+ load_types(mime, filename);
+ }
+ }
+
+ cupsDirClose(dir);
+
+ return (mime);
}
@@ -474,6 +501,10 @@ load_convs(mime_t *mime, /* I - MIME database */
int cost; /* Cost of filter */
+ DEBUG_printf(("load_convs(mime=%p, filename=\"%s\", filterpath=\"%s\", "
+ "filtercache=%p)\n", mime, filename, filterpath, filtercache));
+
+
/*
* First try to open the file...
*/
@@ -481,8 +512,6 @@ load_convs(mime_t *mime, /* I - MIME database */
if ((fp = cupsFileOpen(filename, "r")) == NULL)
return;
- DEBUG_printf(("\"%s\":\n", filename));
-
/*
* Then read each line from the file, skipping any comments in the file...
*/
@@ -493,8 +522,6 @@ load_convs(mime_t *mime, /* I - MIME database */
* Skip blank lines and lines starting with a #...
*/
- DEBUG_puts(line);
-
if (!line[0] || line[0] == '#')
continue;
@@ -544,7 +571,8 @@ load_convs(mime_t *mime, /* I - MIME database */
if ((dsttype = mimeType(mime, super, type)) == NULL)
{
- DEBUG_printf((" Destination type %s/%s not found!\n", super, type));
+ DEBUG_printf(("load_convs: Destination type %s/%s not found!\n",
+ super, type));
continue;
}
@@ -578,7 +606,8 @@ load_convs(mime_t *mime, /* I - MIME database */
if (!add_fcache(filtercache, filter, filterpath))
{
- DEBUG_printf((" Filter %s not found in %s!\n", filter, filterpath));
+ DEBUG_printf(("load_convs: Filter %s not found in %s!\n", filter,
+ filterpath));
continue;
}
}
@@ -653,6 +682,8 @@ load_types(mime_t *mime, /* I - MIME database */
mime_type_t *typeptr; /* New MIME type */
+ DEBUG_printf(("load_types(mime=%p, filename=\"%s\")\n", mime, filename));
+
/*
* First try to open the file...
*/
@@ -660,8 +691,6 @@ load_types(mime_t *mime, /* I - MIME database */
if ((fp = cupsFileOpen(filename, "r")) == NULL)
return;
- DEBUG_printf(("\"%s\":\n", filename));
-
/*
* Then read each line from the file, skipping any comments in the file...
*/
@@ -672,8 +701,6 @@ load_types(mime_t *mime, /* I - MIME database */
* Skip blank lines and lines starting with a #...
*/
- DEBUG_puts(line);
-
if (!line[0] || line[0] == '#')
continue;
@@ -732,5 +759,16 @@ load_types(mime_t *mime, /* I - MIME database */
/*
- * End of "$Id: mime.c 6649 2007-07-11 21:46:42Z mike $".
+ * 'mime_new()' - Create a new, empty MIME database.
+ */
+
+static mime_t * /* O - MIME database */
+mime_new(void)
+{
+ return ((mime_t *)calloc(1, sizeof(mime_t)));
+}
+
+
+/*
+ * End of "$Id: mime.c 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/mime.h b/scheduler/mime.h
index 975ab79f4..019496495 100644
--- a/scheduler/mime.h
+++ b/scheduler/mime.h
@@ -1,5 +1,5 @@
/*
- * "$Id: mime.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: mime.h 7694 2008-06-26 00:23:20Z mike $"
*
* MIME type/conversion database definitions for the Common UNIX Printing System (CUPS).
*
@@ -113,9 +113,9 @@ typedef struct _mime_s /**** MIME Database ****/
extern void mimeDelete(mime_t *mime);
extern mime_t *mimeLoad(const char *pathname, const char *filterpath);
-extern mime_t *mimeMerge(mime_t *mime, const char *pathname,
- const char *filterpath);
-extern mime_t *mimeNew(void);
+extern mime_t *mimeLoadFilters(mime_t *mime, const char *pathname,
+ const char *filterpath);
+extern mime_t *mimeLoadTypes(mime_t *mime, const char *pathname);
extern mime_type_t *mimeAddType(mime_t *mime, const char *super,
const char *type);
@@ -147,5 +147,5 @@ extern int mimeNumFilters(mime_t *mime);
#endif /* !_CUPS_MIME_H_ */
/*
- * End of "$Id: mime.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: mime.h 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/policy.c b/scheduler/policy.c
index d550af4c8..4fefbd16a 100644
--- a/scheduler/policy.c
+++ b/scheduler/policy.c
@@ -1,5 +1,5 @@
/*
- * "$Id: policy.c 6895 2007-08-30 00:09:27Z mike $"
+ * "$Id: policy.c 7673 2008-06-18 22:31:26Z mike $"
*
* Policy routines for the Common UNIX Printing System (CUPS).
*
@@ -276,7 +276,7 @@ cupsdFindPolicyOp(cupsd_policy_t *p, /* I - Policy */
*po; /* Current policy operation */
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdFindPolicyOp(p=%p, op=%x(%s))\n",
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdFindPolicyOp(p=%p, op=%x(%s))",
p, op, ippOpString(op));
/*
@@ -348,5 +348,5 @@ hash_op(cupsd_location_t *op) /* I - Operation */
/*
- * End of "$Id: policy.c 6895 2007-08-30 00:09:27Z mike $".
+ * End of "$Id: policy.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/printers.c b/scheduler/printers.c
index c2ae13f2c..c5f4a91a9 100644
--- a/scheduler/printers.c
+++ b/scheduler/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c 7608 2008-05-21 01:37:21Z mike $"
+ * "$Id: printers.c 7677 2008-06-19 23:22:19Z mike $"
*
* Printer routines for the Common UNIX Printing System (CUPS).
*
@@ -1569,6 +1569,24 @@ cupsdSaveAllPrinters(void)
cupsFilePuts(fp, "\n");
}
+ if ((marker = ippFindAttribute(printer->attrs, "marker-message",
+ IPP_TAG_TEXT)) != NULL)
+ {
+ cupsFilePrintf(fp, "Attribute %s ", marker->name);
+
+ if (!ptr && (ptr = strchr(marker->values[0].string.text, '#')) != NULL)
+ {
+ cupsFileWrite(fp, marker->values[0].string.text,
+ ptr - marker->values[0].string.text);
+ cupsFilePutChar(fp, '\\');
+ cupsFilePuts(fp, ptr);
+ }
+ else
+ cupsFilePuts(fp, marker->values[0].string.text);
+
+ cupsFilePuts(fp, "\n");
+ }
+
if ((marker = ippFindAttribute(printer->attrs, "marker-names",
IPP_TAG_NAME)) != NULL)
{
@@ -1860,6 +1878,8 @@ cupsdSetPrinterAttr(
if (!strcmp(name, "marker-types"))
value_tag = IPP_TAG_KEYWORD;
+ else if (!strcmp(name, "marker-message"))
+ value_tag = IPP_TAG_TEXT;
else
value_tag = IPP_TAG_NAME;
@@ -1871,7 +1891,12 @@ cupsdSetPrinterAttr(
}
if (attr)
+ {
+ for (i = 0; i < attr->num_values; i ++)
+ _cupsStrFree(attr->values[i].string.text);
+
attr->num_values = count;
+ }
else
attr = ippAddStrings(p->attrs, IPP_TAG_PRINTER, value_tag, name,
count, NULL, NULL);
@@ -1889,7 +1914,6 @@ cupsdSetPrinterAttr(
if ((ptr = strchr(value, ',')) != NULL)
*ptr++ = '\0';
- _cupsStrFree(attr->values[i].string.text);
attr->values[i].string.text = _cupsStrAlloc(value);
if (ptr)
@@ -4311,5 +4335,5 @@ write_irix_state(cupsd_printer_t *p) /* I - Printer to update */
/*
- * End of "$Id: printers.c 7608 2008-05-21 01:37:21Z mike $".
+ * End of "$Id: printers.c 7677 2008-06-19 23:22:19Z mike $".
*/
diff --git a/scheduler/printers.h b/scheduler/printers.h
index b14b1b196..0853b2eda 100644
--- a/scheduler/printers.h
+++ b/scheduler/printers.h
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: printers.h 7564 2008-05-15 00:57:43Z mike $"
*
* Printer definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -176,5 +176,5 @@ extern void cupsdWritePrintcap(void);
/*
- * End of "$Id: printers.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: printers.h 7564 2008-05-15 00:57:43Z mike $".
*/
diff --git a/scheduler/process.c b/scheduler/process.c
index d37b07915..b0481296c 100644
--- a/scheduler/process.c
+++ b/scheduler/process.c
@@ -1,5 +1,5 @@
/*
- * "$Id: process.c 6987 2007-09-25 15:43:44Z mike $"
+ * "$Id: process.c 7256 2008-01-25 00:48:54Z mike $"
*
* Process management routines for the Common UNIX Printing System (CUPS).
*
@@ -494,5 +494,5 @@ cupsd_requote(char *dst, /* I - Destination buffer */
/*
- * End of "$Id: process.c 6987 2007-09-25 15:43:44Z mike $".
+ * End of "$Id: process.c 7256 2008-01-25 00:48:54Z mike $".
*/
diff --git a/scheduler/select.c b/scheduler/select.c
index a2e1925d1..6f6843685 100644
--- a/scheduler/select.c
+++ b/scheduler/select.c
@@ -1,5 +1,5 @@
/*
- * "$Id: select.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: select.c 7093 2007-11-30 19:09:36Z mike $"
*
* Select abstraction functions for the Common UNIX Printing System (CUPS).
*
@@ -1018,5 +1018,5 @@ find_fd(int fd) /* I - File descriptor */
/*
- * End of "$Id: select.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: select.c 7093 2007-11-30 19:09:36Z mike $".
*/
diff --git a/scheduler/server.c b/scheduler/server.c
index 9483ae658..d44e4ee73 100644
--- a/scheduler/server.c
+++ b/scheduler/server.c
@@ -1,5 +1,5 @@
/*
- * "$Id: server.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: server.c 7468 2008-04-18 18:31:59Z mike $"
*
* Server start/stop routines for the Common UNIX Printing System (CUPS).
*
@@ -214,5 +214,5 @@ cupsdStopServer(void)
/*
- * End of "$Id: server.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: server.c 7468 2008-04-18 18:31:59Z mike $".
*/
diff --git a/scheduler/statbuf.c b/scheduler/statbuf.c
index a650f867b..c4959cfbe 100644
--- a/scheduler/statbuf.c
+++ b/scheduler/statbuf.c
@@ -1,10 +1,10 @@
/*
- * "$Id: statbuf.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: statbuf.c 7674 2008-06-18 23:18:32Z mike $"
*
* Status buffer routines for the Common UNIX Printing System (CUPS)
* scheduler.
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -15,8 +15,8 @@
*
* Contents:
*
- * cupsdStatBufNew() - Create a new status buffer.
* cupsdStatBufDelete() - Destroy a status buffer.
+ * cupsdStatBufNew() - Create a new status buffer.
* cupsdStatBufUpdate() - Update the status buffer.
*/
@@ -29,6 +29,30 @@
/*
+ * 'cupsdStatBufDelete()' - Destroy a status buffer.
+ */
+
+void
+cupsdStatBufDelete(cupsd_statbuf_t *sb) /* I - Status buffer */
+{
+ /*
+ * Range check input...
+ */
+
+ if (!sb)
+ return;
+
+ /*
+ * Close the status pipe and free memory used...
+ */
+
+ close(sb->fd);
+
+ free(sb);
+}
+
+
+/*
* 'cupsdStatBufNew()' - Create a new status buffer.
*/
@@ -90,30 +114,6 @@ cupsdStatBufNew(int fd, /* I - File descriptor of pipe */
/*
- * 'cupsdStatBufDelete()' - Destroy a status buffer.
- */
-
-void
-cupsdStatBufDelete(cupsd_statbuf_t *sb) /* I - Status buffer */
-{
- /*
- * Range check input...
- */
-
- if (!sb)
- return;
-
- /*
- * Close the status pipe and free memory used...
- */
-
- close(sb->fd);
-
- free(sb);
-}
-
-
-/*
* 'cupsdStatBufUpdate()' - Update the status buffer.
*/
@@ -288,20 +288,23 @@ cupsdStatBufUpdate(cupsd_statbuf_t *sb, /* I - Status buffer */
* Send it to the log file as needed...
*/
- if (*loglevel > CUPSD_LOG_NONE &&
- (*loglevel != CUPSD_LOG_INFO || LogLevel == CUPSD_LOG_DEBUG2))
+ if (sb->prefix[0])
{
- /*
- * General status message; send it to the error_log file...
- */
+ if (*loglevel > CUPSD_LOG_NONE &&
+ (*loglevel != CUPSD_LOG_INFO || LogLevel == CUPSD_LOG_DEBUG2))
+ {
+ /*
+ * General status message; send it to the error_log file...
+ */
- if (message[0] == '[')
- cupsdLogMessage(*loglevel, "%s", message);
- else
- cupsdLogMessage(*loglevel, "%s %s", sb->prefix, message);
+ if (message[0] == '[')
+ cupsdLogMessage(*loglevel, "%s", message);
+ else
+ cupsdLogMessage(*loglevel, "%s %s", sb->prefix, message);
+ }
+ else if (*loglevel < CUPSD_LOG_NONE && LogLevel == CUPSD_LOG_DEBUG2)
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "%s %s", sb->prefix, sb->buffer);
}
- else if (*loglevel < CUPSD_LOG_NONE && LogLevel == CUPSD_LOG_DEBUG2)
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "%s %s", sb->prefix, sb->buffer);
/*
* Copy the message to the line buffer...
@@ -326,5 +329,5 @@ cupsdStatBufUpdate(cupsd_statbuf_t *sb, /* I - Status buffer */
/*
- * End of "$Id: statbuf.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: statbuf.c 7674 2008-06-18 23:18:32Z mike $".
*/
diff --git a/scheduler/statbuf.h b/scheduler/statbuf.h
index 385e68c9b..c42c6fdb7 100644
--- a/scheduler/statbuf.h
+++ b/scheduler/statbuf.h
@@ -1,10 +1,10 @@
/*
- * "$Id: statbuf.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: statbuf.h 7674 2008-06-18 23:18:32Z mike $"
*
* Status buffer definitions for the Common UNIX Printing System (CUPS)
* scheduler.
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -39,12 +39,12 @@ typedef struct /**** Status buffer */
* Prototypes...
*/
-extern cupsd_statbuf_t *cupsdStatBufNew(int fd, const char *prefix, ...);
extern void cupsdStatBufDelete(cupsd_statbuf_t *sb);
+extern cupsd_statbuf_t *cupsdStatBufNew(int fd, const char *prefix, ...);
extern char *cupsdStatBufUpdate(cupsd_statbuf_t *sb, int *loglevel,
char *line, int linelen);
/*
- * End of "$Id: statbuf.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: statbuf.h 7674 2008-06-18 23:18:32Z mike $".
*/
diff --git a/scheduler/subscriptions.c b/scheduler/subscriptions.c
index cea357fd3..4f92f873b 100644
--- a/scheduler/subscriptions.c
+++ b/scheduler/subscriptions.c
@@ -1,5 +1,5 @@
/*
- * "$Id: subscriptions.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: subscriptions.c 7673 2008-06-18 22:31:26Z mike $"
*
* Subscription routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -1363,7 +1363,7 @@ cupsd_send_notification(
cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "cupsd_send_notification(sub=%p(%d), event=%p(%s))\n",
+ "cupsd_send_notification(sub=%p(%d), event=%p(%s))",
sub, sub->id, event, cupsdEventName(event->event));
/*
@@ -1616,5 +1616,5 @@ cupsd_update_notifier(void)
/*
- * End of "$Id: subscriptions.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: subscriptions.c 7673 2008-06-18 22:31:26Z mike $".
*/
diff --git a/scheduler/subscriptions.h b/scheduler/subscriptions.h
index 7f112fa0c..ab0154b71 100644
--- a/scheduler/subscriptions.h
+++ b/scheduler/subscriptions.h
@@ -1,5 +1,5 @@
/*
- * "$Id: subscriptions.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: subscriptions.h 7253 2008-01-23 22:18:15Z mike $"
*
* Subscription definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -163,5 +163,5 @@ extern void cupsdStopAllNotifiers(void);
/*
- * End of "$Id: subscriptions.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: subscriptions.h 7253 2008-01-23 22:18:15Z mike $".
*/
diff --git a/scheduler/sysman.c b/scheduler/sysman.c
index b6d175142..cffb285a7 100644
--- a/scheduler/sysman.c
+++ b/scheduler/sysman.c
@@ -1,5 +1,5 @@
/*
- * "$Id: sysman.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: sysman.c 7676 2008-06-18 23:42:37Z mike $"
*
* System management definitions for the Common UNIX Printing System (CUPS).
*
@@ -21,13 +21,13 @@
* doing something.
* cupsdStartSystemMonitor() - Start monitoring for system change.
* cupsdStopSystemMonitor() - Stop monitoring for system change.
- * cupsdUpdateSystemMonitor() - Update the current system state.
* sysEventThreadEntry() - A thread to receive power and computer
* name change notifications.
* sysEventPowerNotifier() - Handle power notification events.
* sysEventConfigurationNotifier() - Computer name changed notification
* callback.
* sysEventTimerNotifier() - Handle delayed event notifications.
+ * sysUpdate() - Update the current system state.
*/
@@ -230,6 +230,7 @@ static void sysEventConfigurationNotifier(SCDynamicStoreRef store,
CFArrayRef changedKeys,
void *context);
static void sysEventTimerNotifier(CFRunLoopTimerRef timer, void *context);
+static void sysUpdate(void);
/*
@@ -249,8 +250,7 @@ cupsdStartSystemMonitor(void)
return;
}
- cupsdAddSelect(SysEventPipes[0], (cupsd_selfunc_t)cupsdUpdateSystemMonitor,
- NULL, NULL);
+ cupsdAddSelect(SysEventPipes[0], (cupsd_selfunc_t)sysUpdate, NULL, NULL);
/*
* Set non-blocking mode on the descriptor we will be receiving notification
@@ -314,174 +314,6 @@ cupsdStopSystemMonitor(void)
/*
- * 'cupsdUpdateSystemMonitor()' - Update the current system state.
- */
-
-void
-cupsdUpdateSystemMonitor(void)
-{
- int i; /* Looping var */
- cupsd_sysevent_t sysevent; /* The system event */
- cupsd_printer_t *p; /* Printer information */
-
-
- /*
- * Drain the event pipe...
- */
-
- while (read((int)SysEventPipes[0], &sysevent, sizeof(sysevent))
- == sizeof(sysevent))
- {
- if (sysevent.event & SYSEVENT_CANSLEEP)
- {
- /*
- * If there are active printers that don't have the connecting-to-device
- * printer-state-reason then cancel the sleep request (i.e. this reason
- * indicates a job that is not yet connected to the printer)...
- */
-
- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
- p;
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- {
- if (p->job)
- {
- for (i = 0; i < p->num_reasons; i ++)
- if (!strcmp(p->reasons[i], "connecting-to-device"))
- break;
-
- if (!p->num_reasons || i >= p->num_reasons)
- break;
- }
- }
-
- if (p)
- {
- cupsdLogMessage(CUPSD_LOG_INFO,
- "System sleep canceled because printer %s is active",
- p->name);
- IOCancelPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
- }
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "System wants to sleep");
- IOAllowPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
- }
- }
-
- if (sysevent.event & SYSEVENT_WILLSLEEP)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "System going to sleep");
-
- Sleeping = 1;
-
- cupsdStopAllJobs(0);
-
- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
- p;
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- {
- if (p->type & CUPS_PRINTER_DISCOVERED)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Deleting remote destination \"%s\"", p->name);
- cupsArraySave(Printers);
- cupsdDeletePrinter(p, 0);
- cupsArrayRestore(Printers);
- }
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Deregistering local printer \"%s\"", p->name);
- cupsdDeregisterPrinter(p, 0);
- }
- }
-
- cupsdCleanDirty();
-
- IOAllowPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
- }
-
- if (sysevent.event & SYSEVENT_WOKE)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "System woke from sleep");
- IOAllowPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
- Sleeping = 0;
- cupsdCheckJobs();
- }
-
- if (sysevent.event & SYSEVENT_NETCHANGED)
- {
- if (!Sleeping)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "System network configuration changed");
-
- /*
- * Resetting browse_time before calling cupsdSendBrowseList causes
- * browse packets to be sent for local shared printers.
- */
-
- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
- p;
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- p->browse_time = 0;
-
- cupsdSendBrowseList();
- cupsdRestartPolling();
- }
- else
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "System network configuration changed; "
- "ignored while sleeping");
- }
-
- if (sysevent.event & SYSEVENT_NAMECHANGED)
- {
- if (!Sleeping)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "Computer name changed");
-
- /*
- * De-register the individual printers...
- */
-
- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
- p;
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- cupsdDeregisterPrinter(p, 1);
-
- /*
- * Update the computer name...
- */
-
- cupsdUpdateDNSSDName();
-
- /*
- * Now re-register them...
- */
-
- for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
- p;
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- {
- p->browse_time = 0;
- cupsdRegisterPrinter(p);
- }
- }
- else
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Computer name changed; ignored while sleeping");
- }
- }
-}
-
-
-/*
* 'sysEventThreadEntry()' - A thread to receive power and computer name
* change notifications.
*/
@@ -843,9 +675,177 @@ sysEventTimerNotifier(
threadData->sysevent.event = 0;
}
}
+
+
+/*
+ * 'sysUpdate()' - Update the current system state.
+ */
+
+static void
+sysUpdate(void)
+{
+ int i; /* Looping var */
+ cupsd_sysevent_t sysevent; /* The system event */
+ cupsd_printer_t *p; /* Printer information */
+
+
+ /*
+ * Drain the event pipe...
+ */
+
+ while (read((int)SysEventPipes[0], &sysevent, sizeof(sysevent))
+ == sizeof(sysevent))
+ {
+ if (sysevent.event & SYSEVENT_CANSLEEP)
+ {
+ /*
+ * If there are active printers that don't have the connecting-to-device
+ * printer-state-reason then cancel the sleep request (i.e. this reason
+ * indicates a job that is not yet connected to the printer)...
+ */
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ p;
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ {
+ if (p->job)
+ {
+ for (i = 0; i < p->num_reasons; i ++)
+ if (!strcmp(p->reasons[i], "connecting-to-device"))
+ break;
+
+ if (!p->num_reasons || i >= p->num_reasons)
+ break;
+ }
+ }
+
+ if (p)
+ {
+ cupsdLogMessage(CUPSD_LOG_INFO,
+ "System sleep canceled because printer %s is active",
+ p->name);
+ IOCancelPowerChange(sysevent.powerKernelPort,
+ sysevent.powerNotificationID);
+ }
+ else
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "System wants to sleep");
+ IOAllowPowerChange(sysevent.powerKernelPort,
+ sysevent.powerNotificationID);
+ }
+ }
+
+ if (sysevent.event & SYSEVENT_WILLSLEEP)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "System going to sleep");
+
+ Sleeping = 1;
+
+ cupsdStopAllJobs(0);
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ p;
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ {
+ if (p->type & CUPS_PRINTER_DISCOVERED)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Deleting remote destination \"%s\"", p->name);
+ cupsArraySave(Printers);
+ cupsdDeletePrinter(p, 0);
+ cupsArrayRestore(Printers);
+ }
+ else
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Deregistering local printer \"%s\"", p->name);
+ cupsdDeregisterPrinter(p, 0);
+ }
+ }
+
+ cupsdCleanDirty();
+
+ IOAllowPowerChange(sysevent.powerKernelPort,
+ sysevent.powerNotificationID);
+ }
+
+ if (sysevent.event & SYSEVENT_WOKE)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "System woke from sleep");
+ IOAllowPowerChange(sysevent.powerKernelPort,
+ sysevent.powerNotificationID);
+ Sleeping = 0;
+ cupsdCheckJobs();
+ }
+
+ if (sysevent.event & SYSEVENT_NETCHANGED)
+ {
+ if (!Sleeping)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "System network configuration changed");
+
+ /*
+ * Resetting browse_time before calling cupsdSendBrowseList causes
+ * browse packets to be sent for local shared printers.
+ */
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ p;
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ p->browse_time = 0;
+
+ cupsdSendBrowseList();
+ cupsdRestartPolling();
+ }
+ else
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "System network configuration changed; "
+ "ignored while sleeping");
+ }
+
+ if (sysevent.event & SYSEVENT_NAMECHANGED)
+ {
+ if (!Sleeping)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Computer name changed");
+
+ /*
+ * De-register the individual printers...
+ */
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ p;
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ cupsdDeregisterPrinter(p, 1);
+
+ /*
+ * Update the computer name...
+ */
+
+ cupsdUpdateDNSSDName();
+
+ /*
+ * Now re-register them...
+ */
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
+ p;
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ {
+ p->browse_time = 0;
+ cupsdRegisterPrinter(p);
+ }
+ }
+ else
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Computer name changed; ignored while sleeping");
+ }
+ }
+}
#endif /* __APPLE__ */
/*
- * End of "$Id: sysman.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: sysman.c 7676 2008-06-18 23:42:37Z mike $".
*/
diff --git a/scheduler/sysman.h b/scheduler/sysman.h
index 50ef17f96..282f7b5bc 100644
--- a/scheduler/sysman.h
+++ b/scheduler/sysman.h
@@ -1,5 +1,5 @@
/*
- * "$Id: sysman.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: sysman.h 7676 2008-06-18 23:42:37Z mike $"
*
* System management definitions for the Common UNIX Printing System (CUPS).
*
@@ -53,9 +53,8 @@ extern void cupsdMarkDirty(int what);
extern void cupsdSetBusyState(void);
extern void cupsdStartSystemMonitor(void);
extern void cupsdStopSystemMonitor(void);
-extern void cupsdUpdateSystemMonitor(void);
/*
- * End of "$Id: sysman.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: sysman.h 7676 2008-06-18 23:42:37Z mike $".
*/
diff --git a/scheduler/testmime.c b/scheduler/testmime.c
index 130aaaaa2..3eface432 100644
--- a/scheduler/testmime.c
+++ b/scheduler/testmime.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testmime.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testmime.c 7670 2008-06-17 22:42:08Z mike $"
*
* MIME test program for the Common UNIX Printing System (CUPS).
*
@@ -322,5 +322,5 @@ type_dir(mime_t *mime, /* I - MIME database */
/*
- * End of "$Id: testmime.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: testmime.c 7670 2008-06-17 22:42:08Z mike $".
*/
diff --git a/scheduler/testspeed.c b/scheduler/testspeed.c
index 4b740675e..11cdfcae6 100644
--- a/scheduler/testspeed.c
+++ b/scheduler/testspeed.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testspeed.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: testspeed.c 7688 2008-06-24 04:34:52Z mike $"
*
* Scheduler speed test for the Common UNIX Printing System (CUPS).
*
@@ -24,15 +24,13 @@
* Include necessary headers...
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/wait.h>
+#include <cups/string.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/wait.h>
#include <errno.h>
@@ -366,5 +364,5 @@ usage(void)
/*
- * End of "$Id: testspeed.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: testspeed.c 7688 2008-06-24 04:34:52Z mike $".
*/
diff --git a/scheduler/type.c b/scheduler/type.c
index f40d10b2b..6532b9c08 100644
--- a/scheduler/type.c
+++ b/scheduler/type.c
@@ -1,5 +1,5 @@
/*
- * "$Id: type.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: type.c 7694 2008-06-26 00:23:20Z mike $"
*
* MIME typing routines for the Common UNIX Printing System (CUPS).
*
@@ -157,7 +157,7 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
logic = MIME_MAGIC_NOP;
invert = 0;
- DEBUG_printf(("%s/%s: %s\n", mt->super, mt->type, rule));
+ DEBUG_printf(("mimeAddTypeRule: %s/%s: %s\n", mt->super, mt->type, rule));
while (*rule != '\0')
{
@@ -166,13 +166,13 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
if (*rule == '(')
{
- DEBUG_puts("new parenthesis group");
+ DEBUG_puts("mimeAddTypeRule: New parenthesis group");
logic = MIME_MAGIC_NOP;
rule ++;
}
else if (*rule == ')')
{
- DEBUG_puts("close paren...");
+ DEBUG_puts("mimeAddTypeRule: Close paren...");
if (current == NULL || current->parent == NULL)
return (-1);
@@ -208,11 +208,12 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
current->prev = NULL;
current->parent = temp;
- DEBUG_printf(("creating new AND group %p...\n", temp));
+ DEBUG_printf(("mimeAddTypeRule: Creating new AND group %p...\n", temp));
}
else
{
- DEBUG_printf(("setting group %p op to AND...\n", current->parent));
+ DEBUG_printf(("mimeAddTypeRule: Setting group %p op to AND...\n",
+ current->parent));
current->parent->op = MIME_MAGIC_AND;
}
@@ -238,7 +239,8 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
if ((temp = calloc(1, sizeof(mime_magic_t))) == NULL)
return (-1);
- DEBUG_printf(("creating new AND group %p inside OR group\n", temp));
+ DEBUG_printf(("mimeAddTypeRule: Creating new AND group %p inside OR "
+ "group\n", temp));
while (current->prev != NULL)
{
@@ -258,7 +260,7 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
* This isn't the top rule, so go up one level...
*/
- DEBUG_puts("going up one level");
+ DEBUG_puts("mimeAddTypeRule: Going up one level");
current = current->parent;
}
}
@@ -268,7 +270,7 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
}
else if (*rule == '!')
{
- DEBUG_puts("NOT");
+ DEBUG_puts("mimeAddTypeRule: NOT");
invert = 1;
rule ++;
}
@@ -441,7 +443,8 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
* Add parenthetical grouping...
*/
- DEBUG_printf(("making new OR group %p for parenthesis...\n", temp));
+ DEBUG_printf(("mimeAddTypeRule: Making new OR group %p for "
+ "parenthesis...\n", temp));
temp->op = MIME_MAGIC_OR;
@@ -454,8 +457,8 @@ mimeAddTypeRule(mime_type_t *mt, /* I - Type to add to */
logic = MIME_MAGIC_OR;
}
- DEBUG_printf(("adding %p: %s, op = %d, logic = %d, invert = %d\n",
- temp, name, op, logic, invert));
+ DEBUG_printf(("mimeAddTypeRule: adding %p: %s, op=%d, logic=%d, "
+ "invert=%d\n", temp, name, op, logic, invert));
/*
* Fill in data for the rule...
@@ -543,10 +546,7 @@ mimeFileType(mime_t *mime, /* I - MIME database */
DEBUG_printf(("mimeFileType(mime=%p, pathname=\"%s\", filename=\"%s\", "
- "compression=%p)\n",
- mime, pathname ? pathname : "(nil)",
- filename ? filename : "(nil)",
- compression));
+ "compression=%p)\n", mime, pathname, filename, compression));
/*
* Range check input parameters...
@@ -803,7 +803,7 @@ checkrules(const char *filename, /* I - Filename */
break;
case MIME_MAGIC_STRING :
- DEBUG_printf((" string(%d, \"%s\")\n", rules->offset,
+ DEBUG_printf(("checkrules: string(%d, \"%s\")\n", rules->offset,
rules->value.stringv));
/*
@@ -822,7 +822,7 @@ checkrules(const char *filename, /* I - Filename */
sizeof(fb->buffer));
fb->offset = rules->offset;
- DEBUG_printf((" loaded %d byte fb->buffer at %d, starts "
+ DEBUG_printf(("checkrules: loaded %d byte fb->buffer at %d, starts "
"with \"%c%c%c%c\"...\n",
fb->length, fb->offset, fb->buffer[0], fb->buffer[1],
fb->buffer[2], fb->buffer[3]));
@@ -838,7 +838,7 @@ checkrules(const char *filename, /* I - Filename */
else
result = (memcmp(fb->buffer + rules->offset - fb->offset,
rules->value.stringv, rules->length) == 0);
- DEBUG_printf((" result=%d\n", result));
+ DEBUG_printf(("checkrules: result=%d\n", result));
break;
case MIME_MAGIC_ISTRING :
@@ -1039,8 +1039,8 @@ checkrules(const char *filename, /* I - Filename */
* the the rule set is false...
*/
- DEBUG_printf((" result of test %p (MIME_MAGIC_%s) is %d\n", rules,
- debug_tests[rules->op], result));
+ DEBUG_printf(("checkrules: result of test %p (MIME_MAGIC_%s) is %d\n",
+ rules, debug_tests[rules->op], result));
if ((result && logic == MIME_MAGIC_OR) ||
(!result && logic == MIME_MAGIC_AND))
@@ -1162,5 +1162,5 @@ patmatch(const char *s, /* I - String to match against */
/*
- * End of "$Id: type.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: type.c 7694 2008-06-26 00:23:20Z mike $".
*/
diff --git a/scheduler/util.c b/scheduler/util.c
index 115bbf8b3..c876c9a04 100644
--- a/scheduler/util.c
+++ b/scheduler/util.c
@@ -1,5 +1,5 @@
/*
- * "$Id: util.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: util.c 7621 2008-06-06 18:55:35Z mike $"
*
* Mini-daemon utility functions for the Common UNIX Printing System (CUPS).
*
@@ -446,5 +446,5 @@ cupsdSendIPPTrailer(void)
/*
- * End of "$Id: util.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: util.c 7621 2008-06-06 18:55:35Z mike $".
*/
diff --git a/scheduler/util.h b/scheduler/util.h
index 420030771..05642f3a9 100644
--- a/scheduler/util.h
+++ b/scheduler/util.h
@@ -1,5 +1,5 @@
/*
- * "$Id: util.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: util.h 7621 2008-06-06 18:55:35Z mike $"
*
* Mini-daemon utility definitions for the Common UNIX Printing System (CUPS).
*
@@ -50,5 +50,5 @@ extern void cupsdSendIPPTrailer(void);
#endif /* !_CUPSD_UTIL_H_ */
/*
- * End of "$Id: util.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: util.h 7621 2008-06-06 18:55:35Z mike $".
*/
diff --git a/scripting/php/phpcups.c b/scripting/php/phpcups.c
index 348b858b4..24e557113 100644
--- a/scripting/php/phpcups.c
+++ b/scripting/php/phpcups.c
@@ -1,5 +1,5 @@
/*
- * "$Id: phpcups.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: phpcups.c 7624 2008-06-09 15:55:04Z mike $"
*
* Printing utilities for the Common UNIX Printing System (CUPS).
*
@@ -483,5 +483,5 @@ PHP_FUNCTION(cups_print_files)
/*
- * End of "$Id: phpcups.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: phpcups.c 7624 2008-06-09 15:55:04Z mike $".
*/
diff --git a/standards/Makefile b/standards/Makefile
index 23b498f20..6e39c798b 100644
--- a/standards/Makefile
+++ b/standards/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Standards makefile for the Common UNIX Printing System (CUPS).
#
@@ -143,5 +143,5 @@ rfctohtml: rfctohtml.o ../cups/libcups.a
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/standards/pwg5107.1.pdf b/standards/pwg5107.1.pdf
new file mode 100644
index 000000000..018ce9c35
--- /dev/null
+++ b/standards/pwg5107.1.pdf
Binary files differ
diff --git a/standards/wd-ippstate10-20061107.pdf b/standards/wd-ippstate10-20061107.pdf
new file mode 100644
index 000000000..22ddf1334
--- /dev/null
+++ b/standards/wd-ippstate10-20061107.pdf
Binary files differ
diff --git a/systemv/Makefile b/systemv/Makefile
index 4c5775e8f..1c8a8e3a7 100644
--- a/systemv/Makefile
+++ b/systemv/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# System V commands makefile for the Common UNIX Printing System (CUPS).
#
@@ -267,5 +267,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/systemv/accept.c b/systemv/accept.c
index e7efddad7..20e3af373 100644
--- a/systemv/accept.c
+++ b/systemv/accept.c
@@ -1,5 +1,5 @@
/*
- * "$Id: accept.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: accept.c 7221 2008-01-16 22:20:08Z mike $"
*
* "accept", "disable", "enable", and "reject" commands for the Common
* UNIX Printing System (CUPS).
@@ -282,5 +282,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: accept.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: accept.c 7221 2008-01-16 22:20:08Z mike $".
*/
diff --git a/systemv/cupsaddsmb.c b/systemv/cupsaddsmb.c
index 2ce5f84a1..18b1a2f6b 100644
--- a/systemv/cupsaddsmb.c
+++ b/systemv/cupsaddsmb.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupsaddsmb.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cupsaddsmb.c 7033 2007-10-19 02:11:28Z mike $"
*
* "cupsaddsmb" command for the Common UNIX Printing System (CUPS).
*
@@ -298,5 +298,5 @@ usage(void)
/*
- * End of "$Id: cupsaddsmb.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cupsaddsmb.c 7033 2007-10-19 02:11:28Z mike $".
*/
diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c
index e11f6dc46..b3b3ff0ce 100644
--- a/systemv/cupstestppd.c
+++ b/systemv/cupstestppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupstestppd.c 6927 2007-09-07 16:51:00Z mike $"
+ * "$Id: cupstestppd.c 7637 2008-06-11 17:25:36Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
@@ -2603,5 +2603,5 @@ valid_utf8(const char *s) /* I - String to check */
/*
- * End of "$Id: cupstestppd.c 6927 2007-09-07 16:51:00Z mike $".
+ * End of "$Id: cupstestppd.c 7637 2008-06-11 17:25:36Z mike $".
*/
diff --git a/systemv/lpadmin.c b/systemv/lpadmin.c
index e0e3ad9ff..4448ecf62 100644
--- a/systemv/lpadmin.c
+++ b/systemv/lpadmin.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpadmin.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpadmin.c 7059 2007-11-02 19:15:17Z mike $"
*
* "lpadmin" command for the Common UNIX Printing System (CUPS).
*
@@ -1977,5 +1977,5 @@ validate_name(const char *name) /* I - Name to check */
/*
- * End of "$Id: lpadmin.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpadmin.c 7059 2007-11-02 19:15:17Z mike $".
*/
diff --git a/systemv/lpinfo.c b/systemv/lpinfo.c
index 137304994..bd7fb0311 100644
--- a/systemv/lpinfo.c
+++ b/systemv/lpinfo.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpinfo.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpinfo.c 7460 2008-04-16 02:19:54Z mike $"
*
* "lpinfo" command for the Common UNIX Printing System (CUPS).
*
@@ -351,5 +351,5 @@ show_models(http_t *http, /* I - HTTP connection to server */
/*
- * End of "$Id: lpinfo.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpinfo.c 7460 2008-04-16 02:19:54Z mike $".
*/
diff --git a/systemv/lpmove.c b/systemv/lpmove.c
index 88d2a154a..7af5e8dc1 100644
--- a/systemv/lpmove.c
+++ b/systemv/lpmove.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpmove.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpmove.c 7219 2008-01-14 22:00:02Z mike $"
*
* "lpmove" command for the Common UNIX Printing System (CUPS).
*
@@ -217,5 +217,5 @@ move_job(http_t *http, /* I - HTTP connection to server */
/*
- * End of "$Id: lpmove.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpmove.c 7219 2008-01-14 22:00:02Z mike $".
*/
diff --git a/systemv/lpoptions.c b/systemv/lpoptions.c
index 132523be6..0dc5d0b56 100644
--- a/systemv/lpoptions.c
+++ b/systemv/lpoptions.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpoptions.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpoptions.c 7669 2008-06-17 22:02:33Z mike $"
*
* Printer option program for the Common UNIX Printing System (CUPS).
*
@@ -546,5 +546,5 @@ usage(void)
/*
- * End of "$Id: lpoptions.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpoptions.c 7669 2008-06-17 22:02:33Z mike $".
*/
diff --git a/systemv/lpstat.c b/systemv/lpstat.c
index 98bc733e5..ba63ae2c6 100644
--- a/systemv/lpstat.c
+++ b/systemv/lpstat.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpstat.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpstat.c 7620 2008-06-06 17:24:22Z mike $"
*
* "lpstat" command for the Common UNIX Printing System (CUPS).
*
@@ -2266,5 +2266,5 @@ show_scheduler(http_t *http) /* I - HTTP connection to server */
/*
- * End of "$Id: lpstat.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpstat.c 7620 2008-06-06 17:24:22Z mike $".
*/
diff --git a/templates/Makefile b/templates/Makefile
index 3bd01c847..831c1c968 100644
--- a/templates/Makefile
+++ b/templates/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Template makefile for the Common UNIX Printing System (CUPS).
#
@@ -187,5 +187,5 @@ uninstall-languages:
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/test/4.3-job-ops.test b/test/4.3-job-ops.test
index d403d074f..30aeccc45 100644
--- a/test/4.3-job-ops.test
+++ b/test/4.3-job-ops.test
@@ -1,5 +1,5 @@
#
-# "$Id: 4.3-job-ops.test 6379 2007-03-21 14:57:22Z mike $"
+# "$Id: 4.3-job-ops.test 7550 2008-05-12 16:40:40Z mike $"
#
# Verify that the IPP job operations work.
#
@@ -323,5 +323,5 @@
}
#
-# End of "$Id: 4.3-job-ops.test 6379 2007-03-21 14:57:22Z mike $"
+# End of "$Id: 4.3-job-ops.test 7550 2008-05-12 16:40:40Z mike $"
#
diff --git a/test/5.1-lpadmin.sh b/test/5.1-lpadmin.sh
index 2e054ea47..30bda2d46 100644
--- a/test/5.1-lpadmin.sh
+++ b/test/5.1-lpadmin.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: 5.1-lpadmin.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: 5.1-lpadmin.sh 7494 2008-04-25 18:36:46Z mike $"
#
# Test the lpadmin command.
#
@@ -51,5 +51,5 @@ fi
echo ""
#
-# End of "$Id: 5.1-lpadmin.sh 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: 5.1-lpadmin.sh 7494 2008-04-25 18:36:46Z mike $".
#
diff --git a/test/5.5-lp.sh b/test/5.5-lp.sh
index d1928eb54..c048d7867 100644
--- a/test/5.5-lp.sh
+++ b/test/5.5-lp.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: 5.5-lp.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: 5.5-lp.sh 7415 2008-03-31 22:33:20Z mike $"
#
# Test the lp command.
#
@@ -74,5 +74,5 @@ echo ""
./waitjobs.sh
#
-# End of "$Id: 5.5-lp.sh 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: 5.5-lp.sh 7415 2008-03-31 22:33:20Z mike $".
#
diff --git a/test/5.6-lpr.sh b/test/5.6-lpr.sh
index a1fe01d35..7dabf84c6 100644
--- a/test/5.6-lpr.sh
+++ b/test/5.6-lpr.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: 5.6-lpr.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: 5.6-lpr.sh 7409 2008-03-29 00:26:03Z mike $"
#
# Test the lpr command.
#
@@ -74,5 +74,5 @@ echo ""
./waitjobs.sh
#
-# End of "$Id: 5.6-lpr.sh 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: 5.6-lpr.sh 7409 2008-03-29 00:26:03Z mike $".
#
diff --git a/test/5.7-lprm.sh b/test/5.7-lprm.sh
index fe323db15..bcb721169 100644
--- a/test/5.7-lprm.sh
+++ b/test/5.7-lprm.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: 5.7-lprm.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: 5.7-lprm.sh 7409 2008-03-29 00:26:03Z mike $"
#
# Test the lprm command.
#
@@ -43,5 +43,5 @@ fi
echo ""
#
-# End of "$Id: 5.7-lprm.sh 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: 5.7-lprm.sh 7409 2008-03-29 00:26:03Z mike $".
#
diff --git a/test/5.8-cancel.sh b/test/5.8-cancel.sh
index 90a688d52..7cf31b0da 100644
--- a/test/5.8-cancel.sh
+++ b/test/5.8-cancel.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: 5.8-cancel.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: 5.8-cancel.sh 7409 2008-03-29 00:26:03Z mike $"
#
# Test the cancel command.
#
@@ -41,5 +41,5 @@ fi
echo ""
#
-# End of "$Id: 5.8-cancel.sh 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: 5.8-cancel.sh 7409 2008-03-29 00:26:03Z mike $".
#
diff --git a/test/Makefile b/test/Makefile
index 99f8fa960..1698aca3d 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# IPP test makefile for the Common UNIX Printing System (CUPS).
#
@@ -106,5 +106,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#
diff --git a/test/ipptest.c b/test/ipptest.c
index 6bd9923c0..5b22888ed 100644
--- a/test/ipptest.c
+++ b/test/ipptest.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipptest.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: ipptest.c 7219 2008-01-14 22:00:02Z mike $"
*
* IPP test command for the Common UNIX Printing System (CUPS).
*
@@ -945,5 +945,5 @@ usage(const char *option) /* I - Option string or NULL */
/*
- * End of "$Id: ipptest.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: ipptest.c 7219 2008-01-14 22:00:02Z mike $".
*/
diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
index 89fb1d800..ae6fcb497 100755
--- a/test/run-stp-tests.sh
+++ b/test/run-stp-tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: run-stp-tests.sh 7697 2008-06-27 15:56:00Z mike $"
#
# Perform the complete set of IPP compliance tests specified in the
# CUPS Software Test Plan.
@@ -213,6 +213,7 @@ mkdir /tmp/cups-$user/certs
mkdir /tmp/cups-$user/share
mkdir /tmp/cups-$user/share/banners
mkdir /tmp/cups-$user/share/drv
+mkdir /tmp/cups-$user/share/mime
mkdir /tmp/cups-$user/share/model
mkdir /tmp/cups-$user/share/ppdc
mkdir /tmp/cups-$user/interfaces
@@ -254,6 +255,8 @@ ln -s $root/data /tmp/cups-$user/share/charsets
ln -s $root/data /tmp/cups-$user/share
ln -s $root/fonts /tmp/cups-$user/share
ln -s $root/ppdc/sample.drv /tmp/cups-$user/share/drv
+ln -s $root/conf/mime.types /tmp/cups-$user/share/mime
+ln -s $root/conf/mime.convs /tmp/cups-$user/share/mime
ln -s $root/data/*.h /tmp/cups-$user/share/ppdc
ln -s $root/data/*.defs /tmp/cups-$user/share/ppdc
ln -s $root/templates /tmp/cups-$user/share
@@ -326,11 +329,8 @@ $encryption
</Policy>
EOF
-touch /tmp/cups-$user/classes.conf
-touch /tmp/cups-$user/printers.conf
-
#
-# Setup lots of test queues - 500 with PPD files, 500 without...
+# Setup lots of test queues - half with PPD files, half without...
#
echo "Creating printers.conf for test..."
@@ -372,9 +372,6 @@ done
cp /tmp/cups-$user/printers.conf /tmp/cups-$user/printers.conf.orig
-cp $root/conf/mime.types /tmp/cups-$user/mime.types
-cp $root/conf/mime.convs /tmp/cups-$user/mime.convs
-
#
# Setup the paths...
#
@@ -709,6 +706,16 @@ else
echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
fi
+# Page log file...
+if grep -q 'testfile.pdf Letter' /tmp/cups-$user/log/page_log; then
+ echo "PASS: page_log formatted correctly."
+ echo "<P>PASS: page_log formatted correctly.</P>" >>$strfile
+else
+ echo "FAIL: page_log formatted incorrectly."
+ echo "<P>FAIL: page_log formatted incorrectly.</P>" >>$strfile
+ fail=`expr $fail + 1`
+fi
+
# Log files...
echo "<H2>access_log</H2>" >>$strfile
echo "<PRE>" >>$strfile
@@ -754,5 +761,5 @@ if test $fail != 0; then
fi
#
-# End of "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"
+# End of "$Id: run-stp-tests.sh 7697 2008-06-27 15:56:00Z mike $"
#
diff --git a/test/testfile.jpg b/test/testfile.jpg
index 9f4b39938..418cb9359 100644
--- a/test/testfile.jpg
+++ b/test/testfile.jpg
Binary files differ
diff --git a/test/testfile.pdf b/test/testfile.pdf
index b91eab50c..433577179 100644
--- a/test/testfile.pdf
+++ b/test/testfile.pdf
Binary files differ
diff --git a/tools/checkglobals b/tools/checkglobals
index c20d94f15..4d15387ea 100755
--- a/tools/checkglobals
+++ b/tools/checkglobals
@@ -4,8 +4,6 @@
#
for file in *.o; do
- echo -n "$file: "
-
functions=""
for function in `nm -g $file | grep "T " | awk '{print $3}'`; do
@@ -27,8 +25,8 @@ for file in *.o; do
done
if test -z "$functions"; then
- echo "OK"
+ echo "$file: OK"
else
- echo $functions
+ echo "$file: $functions"
fi
done