+++ /dev/null
-Index: conf/pam.irix
-===================================================================
---- conf/pam.irix (.../tags/release-1.4.1) (wersja 8857)
-+++ conf/pam.irix (.../branches/branch-1.4) (wersja 8857)
-@@ -1,3 +0,0 @@
--#%PAM-1.0
--auth required pam_unix.so shadow nodelay nullok
--account required pam_unix.so
-Index: conf/pam.std.in
-===================================================================
---- conf/pam.std.in (.../tags/release-1.4.1) (wersja 8857)
-+++ conf/pam.std.in (.../branches/branch-1.4) (wersja 8857)
-@@ -1,2 +1,2 @@
--auth required @PAMMOD@ nullok shadow
-+auth required @PAMMODAUTH@
- account required @PAMMOD@
-Index: conf/Makefile
-===================================================================
---- conf/Makefile (.../tags/release-1.4.1) (wersja 8857)
-+++ conf/Makefile (.../branches/branch-1.4) (wersja 8857)
-@@ -90,7 +90,7 @@
- done
- -if test x$(PAMDIR) != x; then \
- $(INSTALL_DIR) -m 755 $(BUILDROOT)$(PAMDIR); \
-- if test -r $(BUILDROOT)$(PAMDIR)/cups/$(PAMFILE) ; then \
-+ if test -r $(BUILDROOT)$(PAMDIR)/cups ; then \
- $(INSTALL_DATA) $(PAMFILE) $(BUILDROOT)$(PAMDIR)/cups.N ; \
- else \
- $(INSTALL_DATA) $(PAMFILE) $(BUILDROOT)$(PAMDIR)/cups ; \
-Index: backend/usb-unix.c
-===================================================================
---- backend/usb-unix.c (.../tags/release-1.4.1) (wersja 8857)
-+++ backend/usb-unix.c (.../branches/branch-1.4) (wersja 8857)
-@@ -560,7 +560,7 @@
- * 'side_cb()' - Handle side-channel requests...
- */
-
--static void
-+static int /* O - 0 on success, -1 on error */
- side_cb(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int snmp_fd, /* I - SNMP socket (unused) */
-Index: backend/usb-darwin.c
-===================================================================
---- backend/usb-darwin.c (.../tags/release-1.4.1) (wersja 8857)
-+++ backend/usb-darwin.c (.../branches/branch-1.4) (wersja 8857)
-@@ -292,9 +292,8 @@
- #if defined(__i386__) || defined(__x86_64__)
- static pid_t child_pid; /* Child PID */
- static void run_legacy_backend(int argc, char *argv[], int fd); /* Starts child backend process running as a ppc executable */
--#endif /* __i386__ || __x86_64__ */
--static int job_canceled = 0; /* Was the job canceled? */
- static void sigterm_handler(int sig); /* SIGTERM handler */
-+#endif /* __i386__ || __x86_64__ */
-
- #ifdef PARSE_PS_ERRORS
- static const char *next_line (const char *buffer);
-@@ -461,9 +460,9 @@
- fputs("STATE: -connecting-to-device\n", stderr);
-
- /*
-- * Now that we are "connected" to the port, catch SIGTERM so that we
-+ * Now that we are "connected" to the port, ignore SIGTERM so that we
- * can finish out any page data the driver sends (e.g. to eject the
-- * current page... Only catch SIGTERM if we are printing data from
-+ * current page... Only ignore SIGTERM if we are printing data from
- * stdin (otherwise you can't cancel raw jobs...)
- */
-
-@@ -475,7 +474,7 @@
- memset(&action, 0, sizeof(action));
-
- sigemptyset(&action.sa_mask);
-- action.sa_handler = sigterm_handler;
-+ action.sa_handler = SIG_IGN;
- sigaction(SIGTERM, &action, NULL);
- }
-
-@@ -698,7 +697,7 @@
-
- else if (iostatus == kIOReturnAborted)
- {
-- fputs("DEBUG: Got return aborted during write!\n", stderr);
-+ fputs("DEBUG: Got USB return aborted during write!\n", stderr);
-
- IOReturn err = (*g.classdriver)->Abort(g.classdriver);
- fprintf(stderr, "DEBUG: USB class driver Abort returned %x\n", err);
-@@ -725,7 +724,7 @@
- fprintf(stderr, "DEBUG: USB class driver Abort returned %x\n",
- err);
-
-- status = job_canceled ? CUPS_BACKEND_FAILED : CUPS_BACKEND_STOP;
-+ status = CUPS_BACKEND_FAILED;
- break;
- }
- else if (bytes > 0)
-@@ -898,11 +897,11 @@
- #endif
- }
- else if (readstatus == kIOUSBTransactionTimeout)
-- fputs("DEBUG: Got USB transaction timeout during write!\n", stderr);
-+ fputs("DEBUG: Got USB transaction timeout during read!\n", stderr);
- else if (readstatus == kIOUSBPipeStalled)
- fputs("DEBUG: Got USB pipe stalled during read!\n", stderr);
- else if (readstatus == kIOReturnAborted)
-- fputs("DEBUG: Got return aborted during read!\n", stderr);
-+ fputs("DEBUG: Got USB return aborted during read!\n", stderr);
-
- /*
- * Make sure this loop executes no more than once every 250 miliseconds...
-@@ -944,7 +943,7 @@
- datalen = sizeof(data);
-
- if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
-- continue;
-+ break;
-
- switch (command)
- {
-@@ -2020,9 +2019,7 @@
-
- exit(exitstatus);
- }
--#endif /* __i386__ || __x86_64__ */
-
--
- /*
- * 'sigterm_handler()' - SIGTERM handler.
- */
-@@ -2030,7 +2027,8 @@
- static void
- sigterm_handler(int sig) /* I - Signal */
- {
--#if defined(__i386__) || defined(__x86_64__)
-+ /* If we started a child process pass the signal on to it...
-+ */
- if (child_pid)
- {
- /*
-@@ -2052,16 +2050,11 @@
- exit(CUPS_BACKEND_STOP);
- }
- }
--#endif /* __i386__ || __x86_64__ */
--
-- /*
-- * Otherwise just flag that the job has been canceled...
-- */
--
-- job_canceled = 1;
- }
-
-+#endif /* __i386__ || __x86_64__ */
-
-+
- #ifdef PARSE_PS_ERRORS
- /*
- * 'next_line()' - Find the next line in a buffer.
-Index: config-scripts/cups-common.m4
-===================================================================
---- config-scripts/cups-common.m4 (.../tags/release-1.4.1) (wersja 8857)
-+++ config-scripts/cups-common.m4 (.../branches/branch-1.4) (wersja 8857)
-@@ -266,11 +266,6 @@
- dbus_message_iter_init_append,
- AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
- `$PKGCONFIG --libs dbus-1`)
-- if $PKGCONFIG --exists glib-2.0 && $PKGCONFIG --exists dbus-glib-1; then
-- DBUS_NOTIFIER="dbus"
-- DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs glib-2.0` `$PKGCONFIG --libs dbus-glib-1` `$PKGCONFIG --libs dbus-1`"
-- CFLAGS="$CFLAGS `$PKGCONFIG --cflags glib-2.0`"
-- fi
- else
- AC_MSG_RESULT(no)
- fi
-@@ -289,7 +284,6 @@
-
- case $uname in
- Darwin*)
--# FONTS=""
- LEGACY_BACKENDS=""
- BACKLIBS="$BACKLIBS -framework IOKit"
- CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices"
-Index: config-scripts/cups-defaults.m4
-===================================================================
---- config-scripts/cups-defaults.m4 (.../tags/release-1.4.1) (wersja 8857)
-+++ config-scripts/cups-defaults.m4 (.../branches/branch-1.4) (wersja 8857)
-@@ -325,8 +325,8 @@
- CUPS_DEFAULT_LPD_CONFIG_FILE="launchd:///System/Library/LaunchDaemons/org.cups.cups-lpd.plist"
- ;;
- *)
-- if test -d /etc/xinetd.d; then
-- CUPS_DEFAULT_LPD_CONFIG_FILE="xinetd:///etc/xinetd.d/cups-lpd"
-+ if test "x$XINETD" != x; then
-+ CUPS_DEFAULT_LPD_CONFIG_FILE="xinetd://$XINETD/cups-lpd"
- else
- CUPS_DEFAULT_LPD_CONFIG_FILE=""
- fi
-Index: config-scripts/cups-pam.m4
-===================================================================
---- config-scripts/cups-pam.m4 (.../tags/release-1.4.1) (wersja 8857)
-+++ config-scripts/cups-pam.m4 (.../branches/branch-1.4) (wersja 8857)
-@@ -22,9 +22,10 @@
- fi
-
- PAMDIR=""
--PAMFILE=""
-+PAMFILE="pam.std"
- PAMLIBS=""
- PAMMOD="pam_unknown.so"
-+PAMMODAUTH="pam_unknown.so"
-
- if test x$enable_pam != xno; then
- SAVELIBS="$LIBS"
-@@ -60,7 +61,7 @@
-
- case "$uname" in
- Darwin*)
-- # Darwin, MacOS X
-+ # Darwin/Mac OS X
- if test "x$with_pam_module" != x; then
- PAMFILE="pam.$with_pam_module"
- elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
-@@ -70,26 +71,22 @@
- fi
- ;;
-
-- IRIX)
-- # SGI IRIX
-- PAMFILE="pam.irix"
-- ;;
--
- *)
- # All others; this test might need to be updated
- # as Linux distributors move things around...
- if test "x$with_pam_module" != x; then
- PAMMOD="pam_${with_pam_module}.so"
-- else
-- for mod in pam_unix2.so pam_unix.so pam_pwdb.so; do
-- if test -f /lib/security/$mod; then
-- PAMMOD="$mod"
-- break;
-- fi
-- done
-+ elif test -f /lib/security/pam_unix2.so; then
-+ PAMMOD="pam_unix2.so"
-+ elif test -f /lib/security/pam_unix.so; then
-+ PAMMOD="pam_unix.so"
- fi
-
-- PAMFILE="pam.std"
-+ if test "x$PAMMOD" = xpam_unix.so; then
-+ PAMMODAUTH="$PAMMOD shadow nodelay"
-+ else
-+ PAMMODAUTH="$PAMMOD nodelay"
-+ fi
- ;;
- esac
- fi
-@@ -98,6 +95,7 @@
- AC_SUBST(PAMFILE)
- AC_SUBST(PAMLIBS)
- AC_SUBST(PAMMOD)
-+AC_SUBST(PAMMODAUTH)
-
- dnl
- dnl End of "$Id$".
-Index: doc/de/index.html.in
-===================================================================
---- doc/de/index.html.in (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/de/index.html.in (.../branches/branch-1.4) (wersja 8857)
-@@ -17,7 +17,7 @@
- <TD CLASS="unsel"><A HREF="/admin"> Verwaltung </A></TD>
- <TD CLASS="unsel"><A HREF="/classes/"> Klassen </A></TD>
- <TD CLASS="unsel"><A HREF="/help/"> On-Line Hilfe </A></TD>
--<TD CLASS="unsel"><A HREF="/jobs/"> Auftrüge </A></TD>
-+<TD CLASS="unsel"><A HREF="/jobs/"> Aufträge </A></TD>
- <TD CLASS="unsel"><A HREF="/printers/"> Drucker </A></TD>
- <TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
- TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
-Index: doc/help/ref-ppdcfile.html
-===================================================================
---- doc/help/ref-ppdcfile.html (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/help/ref-ppdcfile.html (.../branches/branch-1.4) (wersja 8857)
-@@ -380,10 +380,10 @@
- inclusion in a driver. The name with optional user text defines
- the name for the media size and is used with the <a
- href='#MediaSize'><code>MediaSize</code></a> directive to associate
--the media size with the driver. The name may only contain
--letters, numbers, and the underscore and may not exceed 40
--characters in length. The user text, if supplied, may not exceed
--80 characters in length.</p>
-+the media size with the driver. The name may contain up to 40 ASCII
-+characters within the range of decimal 33 to decimal 126 inclusive,
-+except for the characters comma (44), slash (47) and colon (58).
-+The user text, if supplied, may not exceed 80 bytes in length.</p>
-
- <p>The width and length define the dimensions of the media. Each
- number is optionally followed by one of the following unit
-@@ -459,17 +459,15 @@
- <h3>Description</h3>
-
- <p>The <code>Attribute</code> directive creates a PPD attribute. The
--name is any combination of letters, numbers, and the underscore
--and can be up to 40 characters in length.</p>
-+name may contain up to 40 ASCII characters within the range of decimal
-+33 to decimal 126 inclusive, except for the characters comma (44),
-+slash (47) and colon (58).</p>
-
--<p>The selector can be the empty string (<code>""</code>), a keyword
--consisting of up to 40 letters, numbers, and the underscore, or
--a string composed of a keyword and user text of up to 80
--characters.</p>
-+<p>The selector can be the empty string (<code>""</code>) or text of up
-+to 80 bytes.</p>
-
--<p>The value is any string or number; the string may contain
--multiple lines, however no one line may exceed 255
--characters.</p>
-+<p>The value is any string or number; the string may contain multiple
-+lines, however no one line may exceed 255 bytes.</p>
-
- <h3>See Also</h3>
-
-@@ -495,14 +493,15 @@
- <h3>Description</h3>
-
- <p>The <code>Choice</code> directive adds a single choice to the
--current option. The name is any combination of letters, numbers,
--and the underscore and can be up to 40 characters in length.</p>
-+current option. The name may contain up to 40 ASCII characters within
-+the range of decimal 33 to decimal 126 inclusive, except for the
-+characters comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
-+<p>If provided, the text can be any string up to 80 bytes
- in length. If no text is provided, the name is used.</p>
-
- <p>The code is any string and may contain multiple lines,
--however no one line may exceed 255 characters.</p>
-+however no one line may exceed 255 bytes.</p>
-
- <h3>See Also</h3>
-
-@@ -568,11 +567,12 @@
-
- <p>The <code>ColorModel</code> directive is a convenience directive
- which creates a ColorModel option and choice for the current
--printer driver. The name is any combination of letters, numbers,
--and the underscore and can be up to 40 characters in length.</p>
-+printer driver. The name may contain up to 40 ASCII characters within
-+the range of decimal 33 to decimal 126 inclusive, except for the
-+characters comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <p>The colorspace argument is one of the standard colorspace
- keywords defined later in this appendix in the section titled,
-@@ -698,7 +698,7 @@
- <p>The <code>Copyright</code> directive adds text comments to the
- top of a PPD file, typically for use in copyright notices. The
- text argument can contain multiple lines of text, but no line
--may exceed 255 characters.</p>
-+may exceed 255 bytes.</p>
-
-
- <h2 class="title"><a name='CustomMedia'>CustomMedia</a></h2>
-@@ -730,11 +730,12 @@
- <h3>Description</h3>
-
- <p>The <code>CustomMedia</code> directive adds a custom media size to
--the driver. The name is any combination of letters, numbers,
--and the underscore and can be up to 40 characters in length.</p>
-+the driver. The name may contain up to 40 ASCII characters within the
-+range of decimal 33 to decimal 126 inclusive, except for the characters
-+comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <p>The width and length arguments specify the dimensions of the
- media as defined for the <a href="#_media"><code>#media</code></a>
-@@ -747,7 +748,7 @@
- PostScript commands to run for the <code>PageSize</code> and
- <code>PageRegion</code> options, respectively. The commands can
- contain multiple lines, however no line may be more than 255
--characters in length.</p>
-+bytes in length.</p>
-
- <h3>See Also</h3>
-
-@@ -823,11 +824,12 @@
- the Dymo driver from 0 (lowest) to 3 (highest), with 2
- representing the normal setting.</p>
-
--<p>The name is any combination of letters, numbers, and the
--underscore and can be up to 40 characters in length.</p>
-+<p>The name may contain up to 40 ASCII characters within the range of
-+decimal 33 to decimal 126 inclusive, except for the characters comma
-+(44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <h3>See Also</h3>
-
-@@ -1044,15 +1046,16 @@
- <h3>Description</h3>
-
- <p>The <code>Finishing</code> directive adds a choice to the
--<code>cupsFinishing</code> option. The name is any combination of
--letters, numbers, and the underscore and can be up to 40
--characters in length. The name is stored in the
--<code>OutputType</code> attribute in the PostScript page device
--dictionary.</p>
-+<code>cupsFinishing</code> option. The name may contain up to 40 ASCII
-+characters within the range of decimal 33 to decimal 126 inclusive,
-+except for the characters comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
-+<p>The name is stored in the <code>OutputType</code> attribute in the
-+PostScript page device dictionary.</p>
-+
- <h3>See Also</h3>
-
- <p><a href='#Choice'><code>Choice</code></a>,
-@@ -1091,8 +1094,7 @@
- <h3>Description</h3>
-
- <p>The <code>Font</code> directive defines a "device font" for the
--current printer driver. The name is the PostScript font
--name.</p>
-+current printer driver. The name is the PostScript font name.</p>
-
- <p>The encoding is the default encoding of the font, usually
- <code>Standard</code>, <code>Expert</code>, or <code>Special</code>, as
-@@ -1139,23 +1141,25 @@
- <h3>Description</h3>
-
- <p>The <code>Group</code> directive specifies the group for new
--<code>Option</code> directives. The name is any combination of
--letters, numbers, and the underscore and can be up to 40
--characters in length. The names <code>General</code> and
--<code>InstallableOptions</code> are predefined for the standard
--Adobe UI keywords and for installable options, respectively.</p>
-+<code>Option</code> directives. The name may contain up to 40 ASCII
-+characters within the range of decimal 33 to decimal 126 inclusive,
-+except for the characters comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 40 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 40 bytes in length.
-+If no text is provided, the name is used.</p>
-
-+<p>The names <code>General</code> and <code>InstallableOptions</code>
-+are predefined for the standard Adobe UI keywords and for installable
-+options, respectively.</p>
-+
- <center><table width='80%' border='1' bgcolor='#cccccc' cellpadding='5' cellspacing='0'>
- <tr>
- <td align='justify'><b>Note:</b>
-
- <p>Because of certain API binary compatibility issues,
- CUPS limits the length of PPD group translation strings
-- (text) to 40 characters, while the PPD specification
-- allows for up to 80 characters.</p>
-+ (text) to 40 bytes, while the PPD specification
-+ allows for up to 80 bytes.</p>
-
- </td>
- </tr>
-@@ -1229,11 +1233,12 @@
- in the <code>MediaPosition</code> attribute in the PostScript page
- device dictionary.</p>
-
--<p>The name is any combination of letters, numbers, and the
--underscore and can be up to 40 characters in length.</p>
-+<p>The name may contain up to 40 ASCII characters within the range of
-+decimal 33 to decimal 126 inclusive, except for the characters comma
-+(44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <h3>See Also</h3>
-
-@@ -1271,11 +1276,12 @@
-
- <p>The <code>Installable</code> directive adds a new boolean option
- to the <code>InstallableOptions</code> group with a default value of
--<code>False</code>. The name is any combination of letters, numbers,
--and the underscore and can be up to 40 characters in length.</p>
-+<code>False</code>. The name may contain up to 40 ASCII characters
-+within the range of decimal 33 to decimal 126 inclusive, except for
-+the characters comma (44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
-
- <h2 class="title"><a name='LocAttribute'>LocAttribute</a></h2>
-@@ -1295,17 +1301,15 @@
- <h3>Description</h3>
-
- <p>The <code>LocAttribute</code> directive creates a localized PPD
--attribute. The name is any combination of letters, numbers, and the
--underscore and can be up to 40 characters in length.</p>
-+attribute. The name may contain up to 40 ASCII characters within the
-+range of decimal 33 to decimal 126 inclusive, except for the characters
-+comma (44), slash (47) and colon (58).</p>
-
--<p>The selector can be the empty string (<code>""</code>), a keyword
--consisting of up to 40 letters, numbers, and the underscore, or
--a string composed of a keyword and user text of up to 80
--characters.</p>
-+<p>The selector can be the empty string (<code>""</code>) or text of up
-+to 80 bytes.</p>
-
--<p>The value is any string or number; the string may contain
--multiple lines, however no one line may exceed 255
--characters.</p>
-+<p>The value is any string or number; the string may contain multiple
-+lines, however no one line may exceed 255 bytes.</p>
-
- <h3>See Also</h3>
-
-@@ -1458,14 +1462,16 @@
- in the <code>cupsMediaType</code> attribute in the PostScript page
- device dictionary.</p>
-
--<p>The name is any combination of letters, numbers, and the
--underscore and can be up to 40 characters in length. The name is
--placed in the <code>MediaType</code> attribute in the PostScript
--page device dictionary.</p>
-+<p>The name may contain up to 40 ASCII characters within the range of
-+decimal 33 to decimal 126 inclusive, except for the characters comma
-+(44), slash (47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
-+<p>The name is placed in the <code>MediaType</code> attribute in the
-+PostScript page device dictionary.</p>
-+
- <h3>See Also</h3>
-
- <p><a href='#Choice'><code>Choice</code></a>,
-@@ -1532,7 +1538,7 @@
- characters ".", "/", "-", and "+" and should not begin with the
- manufacturer name since the PPD compiler will add this
- automatically for you. The maximum length of the name string is
--31 characters to conform to the Adobe limits on the length of
-+31 bytes to conform to the Adobe limits on the length of
- <code>ShortNickName</code>.</p>
-
- <h3>See Also</h3>
-@@ -1598,11 +1604,12 @@
-
- <p>The <code>Option</code> directive creates a new option in the
- current group, by default the <code>General</code> group. The name
--is any combination of letters, numbers, and the underscore and
--can be up to 40 characters in length.</p>
-+may contain up to 40 ASCII characters within the range of decimal 33
-+to decimal 126 inclusive, except for the characters comma (44), slash
-+(47) and colon (58).</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <p>The type argument is one of the following keywords:</p>
-
-@@ -1749,8 +1756,8 @@
- the examples represent the horizontal and vertical resolutions
- which must be positive integer values.</p>
-
--<p>If provided, the text can be any string up to 80 characters
--in length. If no text is provided, the name is used.</p>
-+<p>If provided, the text can be any string up to 80 bytes in length.
-+If no text is provided, the name is used.</p>
-
- <h3>See Also</h3>
-
-Index: doc/help/ref-printers-conf.html
-===================================================================
---- doc/help/ref-printers-conf.html (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/help/ref-printers-conf.html (.../branches/branch-1.4) (wersja 8857)
-@@ -21,8 +21,8 @@
- normally use the <A HREF="man-lpadmin.html">lpadmin(8)</A>
- command, web interface, or any of the available GUIs to manage
- your printers instead. If you do choose to edit this file
--manually, you will need to restart the scheduler to make them
--active.</P>
-+manually, you will need to stop the scheduler first, make your
-+changes, and then start the scheduler to make them active.</P>
-
-
- <H2 CLASS="title"><A NAME="Accepting">Accepting</A></H2>
-Index: doc/help/spec-ipp.html
-===================================================================
---- doc/help/spec-ipp.html (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/help/spec-ipp.html (.../branches/branch-1.4) (wersja 8857)
-@@ -558,7 +558,7 @@
- <h4>Cancel-Job Request</h4>
-
- <p>The following groups of attributes are supplied as part of the
--Set-Job-Attributes request:
-+Cancel-Job request:
-
- <p>Group 1: Operation Attributes
-
-@@ -632,6 +632,17 @@
- <dd>The client MUST supply a URI for the specified printer or
- "ipp://.../printers" for all printers and classes.
-
-+ <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"requesting-user-name" (name(MAX)):
-+
-+ <dd>The client OPTIONALLY supplies this attribute to specify whose jobs
-+ jobs are purged or canceled.
-+
-+ <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"my-jobs" (boolean):
-+
-+ <dd>The client OPTIONALLY supplies this attribute to specify that only
-+ the jobs owned by the requesting user are purged or canceled. The
-+ default is false.
-+
- <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"purge-jobs" (boolean):
-
- <dd>The client OPTIONALLY supplies this attribute to specify
-Index: doc/help/ref-classes-conf.html
-===================================================================
---- doc/help/ref-classes-conf.html (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/help/ref-classes-conf.html (.../branches/branch-1.4) (wersja 8857)
-@@ -21,8 +21,8 @@
- normally use the <A HREF="man-lpadmin.html">lpadmin(8)</A>
- command, web interface, or any of the available GUIs to manage
- your classes instead. If you do choose to edit this file
--manually, you will need to restart the scheduler to make them
--active.</P>
-+manually, you will need to stop the scheduler first, make your
-+changes, and then start the scheduler to make them active.</P>
-
-
- <H2 CLASS="title"><A NAME="Accepting">Accepting</A></H2>
-Index: doc/Makefile
-===================================================================
---- doc/Makefile (.../tags/release-1.4.1) (wersja 8857)
-+++ doc/Makefile (.../branches/branch-1.4) (wersja 8857)
-@@ -190,8 +190,8 @@
- for lang in $(LANGUAGES); do \
- if test -d $$lang; then \
- $(INSTALL_DIR) -m 755 $(DOCDIR)/$$lang; \
-- $(INSTALL_MAN) $$lang/index.html $(DOCDIR)/$$lang; \
-- test -f $$lang/cups.css && $(INSTALL_MAN) $$lang/cups.css $(DOCDIR)/$$lang; \
-+ $(INSTALL_DATA) $$lang/index.html $(DOCDIR)/$$lang; \
-+ $(INSTALL_DATA) $$lang/cups.css $(DOCDIR)/$$lang >/dev/null 2>&1 || true; \
- fi; \
- done
-
-Index: desktop/cups.desktop.in
-===================================================================
---- desktop/cups.desktop.in (.../tags/release-1.4.1) (wersja 8857)
-+++ desktop/cups.desktop.in (.../branches/branch-1.4) (wersja 8857)
-@@ -7,33 +7,33 @@
- Type=Application
- Name=Manage Printing
- Comment=CUPS Web Interface
--Name[de.UTF-8]=Druckerverwaltung
--Comment[de.UTF-8]=CUPS Webinterface
--Name[en_US.UTF-8]=Manage Printing
--Comment[en_US.UTF-8]=CUPS Web Interface
--Name[es.UTF-8]=Administrar impresión
--Comment[es.UTF-8]=Interfaz Web de CUPS
--Name[et.UTF-8]=Trükkimise haldur
--Comment[et.UTF-8]=CUPS-i veebiliides
--Name[eu.UTF-8]=Kudeatu inprimaketak
--Comment[eu.UTF-8]=CUPSen web interfazea
--Name[fr.UTF-8]=Gestionnaire d'impression
--Comment[fr.UTF-8]=Interface Web de CUPS
--Name[he.UTF-8]=נהל הדפסות
--Comment[he.UTF-8]=ממשק דפדפן של CUPS
--Name[id.UTF-8]=Manajemen Pencetakan
--Comment[id.UTF-8]=Antarmuka Web CUPS
--Name[it.UTF-8]=Gestione stampa
--Comment[it.UTF-8]=Interfaccia web di CUPS
--Name[ja.UTF-8]=印刷の管理
--Comment[ja.UTF-8]=CUPS Web インタフェース
--Name[pl.UTF-8]=Zarządzanie drukowaniem
--Comment[pl.UTF-8]=Interfejs WWW CUPS
--Name[ru.UTF-8]=Настройка печати
--Comment[ru.UTF-8]=Настройка CUPS
--Name[sv.UTF-8]=Hantera skrivare
--Comment[sv.UTF-8]=CUPS webb-gränssnitt
--Name[zh.UTF-8]=打印机管理
--Comment[zh.UTF-8]=CUPS网页界面
--Name[zh_TW.UTF-8]=印表管理
--Comment[zh_TW.UTF-8]=CUPS 網頁介面
-+Name[de]=Druckerverwaltung
-+Comment[de]=CUPS Webinterface
-+Name[en_US]=Manage Printing
-+Comment[en_US]=CUPS Web Interface
-+Name[es]=Administrar impresión
-+Comment[es]=Interfaz Web de CUPS
-+Name[et]=Trükkimise haldur
-+Comment[et]=CUPS-i veebiliides
-+Name[eu]=Kudeatu inprimaketak
-+Comment[eu]=CUPSen web interfazea
-+Name[fr]=Gestionnaire d'impression
-+Comment[fr]=Interface Web de CUPS
-+Name[he]=נהל הדפסות
-+Comment[he]=ממשק דפדפן של CUPS
-+Name[id]=Manajemen Pencetakan
-+Comment[id]=Antarmuka Web CUPS
-+Name[it]=Gestione stampa
-+Comment[it]=Interfaccia web di CUPS
-+Name[ja]=印刷の管理
-+Comment[ja]=CUPS Web インタフェース
-+Name[pl]=Zarządzanie drukowaniem
-+Comment[pl]=Interfejs WWW CUPS
-+Name[ru]=Настройка печати
-+Comment[ru]=Настройка CUPS
-+Name[sv]=Hantera skrivare
-+Comment[sv]=CUPS webb-gränssnitt
-+Name[zh]=打印机管理
-+Comment[zh]=CUPS网页界面
-+Name[zh_TW]=印表管理
-+Comment[zh_TW]=CUPS 網頁介面
-Index: cups/sidechannel.c
-===================================================================
---- cups/sidechannel.c (.../tags/release-1.4.1) (wersja 8857)
-+++ cups/sidechannel.c (.../branches/branch-1.4) (wersja 8857)
-@@ -191,10 +191,24 @@
- if (errno != EINTR && errno != EAGAIN)
- {
- DEBUG_printf(("1cupsSideChannelRead: Read error: %s", strerror(errno)));
-+ *command = CUPS_SC_CMD_NONE;
-+ *status = CUPS_SC_STATUS_IO_ERROR;
- return (-1);
- }
-
- /*
-+ * Watch for EOF or too few bytes...
-+ */
-+
-+ if (bytes < 4)
-+ {
-+ DEBUG_printf(("1cupsSideChannelRead: Short read of %d bytes", bytes));
-+ *command = CUPS_SC_CMD_NONE;
-+ *status = CUPS_SC_STATUS_BAD_MESSAGE;
-+ return (-1);
-+ }
-+
-+ /*
- * Validate the command code in the message...
- */
-
-@@ -202,6 +216,8 @@
- buffer[0] > CUPS_SC_CMD_SNMP_GET_NEXT)
- {
- DEBUG_printf(("1cupsSideChannelRead: Bad command %d!", buffer[0]));
-+ *command = CUPS_SC_CMD_NONE;
-+ *status = CUPS_SC_STATUS_BAD_MESSAGE;
- return (-1);
- }
-
-@@ -379,6 +395,7 @@
- real_oidlen, /* Length of returned OID string */
- oidlen; /* Length of first OID */
- const char *current_oid; /* Current OID */
-+ char last_oid[2048]; /* Last OID */
-
-
- DEBUG_printf(("cupsSideChannelSNMPWalk(oid=\"%s\", timeout=%.3f, cb=%p, "
-@@ -397,6 +414,7 @@
-
- current_oid = oid;
- oidlen = (int)strlen(oid);
-+ last_oid[0] = '\0';
-
- do
- {
-@@ -422,7 +440,8 @@
- * Parse the response of the form "oid\0value"...
- */
-
-- if (strncmp(real_data, oid, oidlen) || real_data[oidlen] != '.')
-+ if (strncmp(real_data, oid, oidlen) || real_data[oidlen] != '.' ||
-+ !strcmp(real_data, last_oid))
- {
- /*
- * Done with this set of OIDs...
-@@ -448,6 +467,7 @@
- */
-
- current_oid = real_data;
-+ strlcpy(last_oid, current_oid, sizeof(last_oid));
- }
- }
- while (status == CUPS_SC_STATUS_OK);
-Index: cups/cups.h
-===================================================================
---- cups/cups.h (.../tags/release-1.4.1) (wersja 8857)
-+++ cups/cups.h (.../branches/branch-1.4) (wersja 8857)
-@@ -59,10 +59,10 @@
- * Constants...
- */
-
--# define CUPS_VERSION 1.0401
-+# define CUPS_VERSION 1.0402
- # define CUPS_VERSION_MAJOR 1
- # define CUPS_VERSION_MINOR 4
--# define CUPS_VERSION_PATCH 1
-+# define CUPS_VERSION_PATCH 2
-
- # define CUPS_BC_FD 3 /* Back-channel file descriptor for select/poll */
- # define CUPS_DATE_ANY (time_t)-1
-Index: cups/sidechannel.h
-===================================================================
---- cups/sidechannel.h (.../tags/release-1.4.1) (wersja 8857)
-+++ cups/sidechannel.h (.../branches/branch-1.4) (wersja 8857)
-@@ -55,6 +55,7 @@
-
- enum cups_sc_command_e /**** Request command codes ****/
- {
-+ CUPS_SC_CMD_NONE = 0, /* No command @private@ */
- CUPS_SC_CMD_SOFT_RESET = 1, /* Do a soft reset */
- CUPS_SC_CMD_DRAIN_OUTPUT = 2, /* Drain all pending output */
- CUPS_SC_CMD_GET_BIDI = 3, /* Return bidirectional capabilities */
-Index: cups/snmp.c
-===================================================================
---- cups/snmp.c (.../tags/release-1.4.1) (wersja 8857)
-+++ cups/snmp.c (.../branches/branch-1.4) (wersja 8857)
-@@ -608,6 +608,8 @@
- int count = 0; /* Number of OIDs found */
- int request_id = 0; /* Current request ID */
- cups_snmp_t packet; /* Current response packet */
-+ int lastoid[CUPS_SNMP_MAX_OID];
-+ /* Last OID we got */
-
-
- /*
-@@ -631,14 +633,15 @@
- */
-
- _cupsSNMPCopyOID(packet.object_name, prefix, CUPS_SNMP_MAX_OID);
-+ lastoid[0] = -1;
-
- for (;;)
- {
- request_id ++;
-
- if (!_cupsSNMPWrite(fd, address, version, community,
-- CUPS_ASN1_GET_NEXT_REQUEST, request_id,
-- packet.object_name))
-+ CUPS_ASN1_GET_NEXT_REQUEST, request_id,
-+ packet.object_name))
- {
- DEBUG_puts("5_cupsSNMPWalk: Returning -1");
-
-@@ -652,7 +655,8 @@
- return (-1);
- }
-
-- if (!_cupsSNMPIsOIDPrefixed(&packet, prefix))
-+ if (!_cupsSNMPIsOIDPrefixed(&packet, prefix) ||
-+ _cupsSNMPIsOID(&packet, lastoid))
- {
- DEBUG_printf(("5_cupsSNMPWalk: Returning %d", count));
-
-@@ -666,6 +670,8 @@
- return (count > 0 ? count : -1);
- }
-
-+ _cupsSNMPCopyOID(lastoid, packet.object_name, CUPS_SNMP_MAX_OID);
-+
- count ++;
-
- (*cb)(&packet, data);
-Index: systemv/cupstestppd.c
-===================================================================
---- systemv/cupstestppd.c (.../tags/release-1.4.1) (wersja 8857)
-+++ systemv/cupstestppd.c (.../branches/branch-1.4) (wersja 8857)
-@@ -101,6 +101,17 @@
-
-
- /*
-+ * File permissions...
-+ */
-+
-+#define MODE_WRITE 0002 /* Other write */
-+#define MODE_MASK 0555 /* Owner/group/other read+exec/search */
-+#define MODE_DATAFILE 0444 /* Owner/group/other read */
-+#define MODE_DIRECTORY 0555 /* Owner/group/other read+search */
-+#define MODE_PROGRAM 0555 /* Owner/group/other read+exec */
-+
-+
-+/*
- * Standard Adobe media keywords (must remain sorted)...
- */
-
-@@ -357,7 +368,7 @@
- root = argv[i];
- break;
-
-- case 'W' : /* Turn errors into warnings */
-+ case 'W' : /* Turn errors into warnings */
- i ++;
-
- if (i >= argc)
-@@ -1387,18 +1398,18 @@
- {
- check_basics(argv[i]);
-
-+ if (warn & WARN_DEFAULTS)
-+ errors = check_defaults(ppd, errors, verbose, 1);
-+
- if (warn & WARN_CONSTRAINTS)
- errors = check_constraints(ppd, errors, verbose, 1);
-
-- if (warn & WARN_DEFAULTS)
-- errors = check_defaults(ppd, errors, verbose, 1);
-+ if (warn & WARN_FILTERS)
-+ errors = check_filters(ppd, root, errors, verbose, 1);
-
- if (warn & WARN_PROFILES)
- errors = check_profiles(ppd, root, errors, verbose, 1);
-
-- if (warn & WARN_FILTERS)
-- errors = check_filters(ppd, root, errors, verbose, 1);
--
- if (warn & WARN_SIZES)
- errors = check_sizes(ppd, errors, verbose, 1);
- else
-@@ -2411,6 +2422,7 @@
- pathprog[1024]; /* Complete path to program/filter */
- int cost; /* Cost of filter */
- const char *prefix; /* WARN/FAIL prefix */
-+ struct stat fileinfo; /* File information */
-
-
- prefix = warn ? " WARN " : "**FAIL**";
-@@ -2452,18 +2464,32 @@
- program);
- }
-
-- if (access(pathprog, X_OK))
-+ if (stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing cupsFilter "
-- "file \"%s\"\n"), prefix, program);
-+ "file \"%s\"\n"), prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_PROGRAM)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on cupsFilter "
-+ "file \"%s\"\n"), prefix, pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
- errors = valid_path("cupsFilter", pathprog, errors, verbose, warn);
- }
-@@ -2523,18 +2549,33 @@
- program);
- }
-
-- if (access(pathprog, X_OK))
-+ if (stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing cupsPreFilter "
-- "file \"%s\"\n"), prefix, program);
-+ "file \"%s\"\n"), prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_PROGRAM)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "cupsPreFilter file \"%s\"\n"), prefix,
-+ pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
- errors = valid_path("cupsPreFilter", pathprog, errors, verbose, warn);
- }
-@@ -2562,8 +2603,11 @@
- if (!warn)
- errors ++;
- }
-+
-+ snprintf(pathprog, sizeof(pathprog), "%s%s", root,
-+ attr->value ? attr->value : "(null)");
-
-- if (!attr->value || access(attr->value, 0))
-+ if (!attr->value || stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-@@ -2571,13 +2615,28 @@
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing "
- "APDialogExtension file \"%s\"\n"),
-- prefix, attr->value ? attr->value : "<NULL>");
-+ prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DIRECTORY)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "APDialogExtension file \"%s\"\n"), prefix,
-+ pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
-- errors = valid_path("APDialogExtension", attr->value, errors, verbose,
-+ errors = valid_path("APDialogExtension", pathprog, errors, verbose,
- warn);
- }
-
-@@ -2601,7 +2660,10 @@
- errors ++;
- }
-
-- if (!attr->value || access(attr->value, 0))
-+ snprintf(pathprog, sizeof(pathprog), "%s%s", root,
-+ attr->value ? attr->value : "(null)");
-+
-+ if (!attr->value || stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-@@ -2609,13 +2671,28 @@
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing "
- "APPrinterIconPath file \"%s\"\n"),
-- prefix, attr->value ? attr->value : "<NULL>");
-+ prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DATAFILE)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "APPrinterIconPath file \"%s\"\n"), prefix,
-+ pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
-- errors = valid_path("APPrinterIconPath", attr->value, errors, verbose,
-+ errors = valid_path("APPrinterIconPath", pathprog, errors, verbose,
- warn);
- }
-
-@@ -2639,7 +2716,10 @@
- errors ++;
- }
-
-- if (!attr->value || access(attr->value, 0))
-+ snprintf(pathprog, sizeof(pathprog), "%s%s", root,
-+ attr->value ? attr->value : "(null)");
-+
-+ if (!attr->value || stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-@@ -2647,13 +2727,28 @@
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing "
- "APPrinterLowInkTool file \"%s\"\n"),
-- prefix, attr->value ? attr->value : "<NULL>");
-+ prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DIRECTORY)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "APPrinterLowInkTool file \"%s\"\n"), prefix,
-+ pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
-- errors = valid_path("APPrinterLowInkTool", attr->value, errors, verbose,
-+ errors = valid_path("APPrinterLowInkTool", pathprog, errors, verbose,
- warn);
- }
-
-@@ -2677,7 +2772,10 @@
- errors ++;
- }
-
-- if (!attr->value || access(attr->value, 0))
-+ snprintf(pathprog, sizeof(pathprog), "%s%s", root,
-+ attr->value ? attr->value : "(null)");
-+
-+ if (!attr->value || stat(pathprog, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-@@ -2685,13 +2783,28 @@
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing "
- "APPrinterUtilityPath file \"%s\"\n"),
-- prefix, attr->value ? attr->value : "<NULL>");
-+ prefix, pathprog);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DIRECTORY)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "APPrinterUtilityPath file \"%s\"\n"), prefix,
-+ pathprog);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
-- errors = valid_path("APPrinterUtilityPath", attr->value, errors, verbose,
-+ errors = valid_path("APPrinterUtilityPath", pathprog, errors, verbose,
- warn);
- }
-
-@@ -2715,7 +2828,7 @@
- errors ++;
- }
-
-- if (!attr->value || access(attr->value, 0))
-+ if (!attr->value || stat(attr->value, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-@@ -2728,6 +2841,21 @@
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DIRECTORY)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "APScanAppPath file \"%s\"\n"), prefix,
-+ attr->value);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
- errors = valid_path("APScanAppPath", attr->value, errors, verbose,
- warn);
-@@ -2768,6 +2896,7 @@
- const char *ptr; /* Pointer into string */
- const char *prefix; /* WARN/FAIL prefix */
- char filename[1024]; /* Profile filename */
-+ struct stat fileinfo; /* File information */
- int num_profiles = 0; /* Number of profiles */
- unsigned hash, /* Current hash value */
- hashes[1000]; /* Hash values of profile names */
-@@ -2822,18 +2951,33 @@
- attr->value);
- }
-
-- if (access(filename, 0))
-+ if (stat(filename, &fileinfo))
- {
- if (!warn && !errors && !verbose)
- _cupsLangPuts(stdout, _(" FAIL\n"));
-
- if (verbose >= 0)
- _cupsLangPrintf(stdout, _(" %s Missing cupsICCProfile "
-- "file \"%s\"!\n"), prefix, attr->value);
-+ "file \"%s\"!\n"), prefix, filename);
-
- if (!warn)
- errors ++;
- }
-+ else if (fileinfo.st_uid != 0 ||
-+ (fileinfo.st_mode & MODE_WRITE) ||
-+ (fileinfo.st_mode & MODE_MASK) != MODE_DATAFILE)
-+ {
-+ if (!warn && !errors && !verbose)
-+ _cupsLangPuts(stdout, _(" FAIL\n"));
-+
-+ if (verbose >= 0)
-+ _cupsLangPrintf(stdout, _(" %s Bad permissions on "
-+ "cupsICCProfile file \"%s\"\n"), prefix,
-+ filename);
-+
-+ if (!warn)
-+ errors ++;
-+ }
- else
- errors = valid_path("cupsICCProfile", filename, errors, verbose, warn);
-
-Index: filter/hpgl-input.c
-===================================================================
---- filter/hpgl-input.c (.../tags/release-1.4.1) (wersja 8857)
-+++ filter/hpgl-input.c (.../branches/branch-1.4) (wersja 8857)
-@@ -144,7 +144,7 @@
- if (!strcasecmp(name, "LB"))
- {
- bufptr = buf;
-- while ((ch = getc(fp)) != StringTerminator)
-+ while ((ch = getc(fp)) != StringTerminator && ch != EOF)
- if (bufptr < (buf + sizeof(buf) - 1))
- *bufptr++ = ch;
- *bufptr = '\0';
-Index: CHANGES.txt
-===================================================================
---- CHANGES.txt (.../tags/release-1.4.1) (wersja 8857)
-+++ CHANGES.txt (.../branches/branch-1.4) (wersja 8857)
-@@ -1,6 +1,35 @@
--CHANGES.txt - 2009-09-11
-+CHANGES.txt - 2009-10-26
- ------------------------
-
-+CHANGES IN CUPS V1.4.2
-+
-+ - Fixed localization errors (STR #3359, STR #3372, STR #3380, STR #3387)
-+ - The documentation for classes.conf and printers.conf did not provide
-+ the correct instructions for manual changes (STR #3351)
-+ - The scheduler did not always rebuild printer cache files when the
-+ driver was changed (STR #3356)
-+ - The documentation makefile failed to install localizations when using
-+ newer versions of Bash (STR #3360)
-+ - The configure script did not use the --with-xinetd value for the
-+ default LPD configuration path (STR #3347)
-+ - The configure script incorrectly required glib for DBUS support
-+ (STR #3346)
-+ - The cupstestppd program incorrectly reported filters with bad
-+ permisssions as missing (STR #3363)
-+ - The cups.desktop file used the wrong locale names (STR #3358)
-+ - cupsSideChannelRead() did not return an error for short reads.
-+ - The installed PAM configuration file did not use the correct options
-+ with the pam_unix2 module (STR #3313)
-+ - The scheduler did not preserve default options that contained special
-+ characters (STR #3340)
-+ - The scheduler did not remove old pre-filters when updating a printer
-+ driver (STR #3342)
-+ - The HP/GL-2 filter did not check for early end-of-file (STR #3319)
-+ - The USB backend did not compile on some platforms (STR #3332)
-+ - cupsSideChannelSNMPWalk() could go into an infinite loop with broken
-+ SNMP implementations.
-+
-+
- CHANGES IN CUPS V1.4.1
-
- - Documention fixes (STR #3296)
-Index: templates/Makefile
-===================================================================
---- templates/Makefile (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/Makefile (.../branches/branch-1.4) (wersja 8857)
-@@ -3,7 +3,7 @@
- #
- # Template makefile for the Common UNIX Printing System (CUPS).
- #
--# Copyright 2007-2008 by Apple Inc.
-+# Copyright 2007-2009 by Apple Inc.
- # Copyright 1993-2007 by Easy Software Products.
- #
- # These coded instructions, statements, and computer programs are the
-@@ -149,7 +149,7 @@
- if test -d $$lang; then \
- $(INSTALL_DIR) -m 755 $(DATADIR)/templates/$$lang; \
- for file in $(FILES); do \
-- $(INSTALL_DATA) $$lang/$$file $(DATADIR)/templates/$$lang 2>/dev/null || true; \
-+ $(INSTALL_DATA) $$lang/$$file $(DATADIR)/templates/$$lang >/dev/null 2>&1 || true; \
- done \
- fi \
- done
-Index: templates/ru/printer-reject.tmpl
-===================================================================
---- templates/ru/printer-reject.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/ru/printer-reject.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -3,7 +3,7 @@
- <H2 CLASS="title">Отмена заданий для {is_class?группы:принтера} {printer_name}</H2>
-
- <P>{is_class?Группа:Принтер} «<A
--HREF="/{is_class?группы:принтеры}/{printer_name}">{printer_name}</A>»
-+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>»
- больше не принимает задания.</P>
-
- </DIV>
-Index: templates/ru/printer-stop.tmpl
-===================================================================
---- templates/ru/printer-stop.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/ru/printer-stop.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -3,7 +3,7 @@
- <H2 CLASS="title">Приостановить {is_class?группу:принтер} {printer_name}</H2>
-
- <P>{is_class?Группа:Принтер} «<A
--HREF="/{is_class?группы:принтеры}/{printer_name}">{printer_name}</A>»
-+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>»
- {is_class?была приостановлена:был приостановлен}.</P>
-
--</DIV>
-\ No newline at end of file
-+</DIV>
-Index: templates/ru/printer-start.tmpl
-===================================================================
---- templates/ru/printer-start.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/ru/printer-start.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -3,7 +3,7 @@
- <H2 CLASS="title">Возобновить работу {is_class?группы:принтера} {printer_name}</H2>
-
- <P>{is_class?Группа:Принтер} «<A
--HREF="/{is_class?группы:принтеры}/{printer_name}">{printer_name}</A>»
-+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>»
- теперь принимают задания.</P>
-
--</DIV>
-\ No newline at end of file
-+</DIV>
-Index: templates/ru/admin.tmpl
-===================================================================
---- templates/ru/admin.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/ru/admin.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -31,7 +31,7 @@
- <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server"><INPUT TYPE="SUBMIT" VALUE="Редактировать конфигурационный файл"></FORM>
- <FORM ACTION="/admin/log/access_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать журнал заданий"></FORM>
- <FORM ACTION="/admin/log/error_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать журнал ошибок"></FORM>
--<FORM ACTION="/admin/log/page_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать журнал страниц">
-+<FORM ACTION="/admin/log/page_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать журнал страниц"></FORM>
- </P>
-
- {SETTINGS_ERROR?<P>{SETTINGS_MESSAGE}</P>
-Index: templates/ru/printer-purge.tmpl
-===================================================================
---- templates/ru/printer-purge.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/ru/printer-purge.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -3,7 +3,7 @@
- <H2 CLASS="title">Очистка всех заданий для {is_class?группы:принтера} {printer_name}</H2>
-
- <P>Все задания для {is_class?группы:принтера} «<A
--HREF="/{is_class?группы:принтеры}/{printer_name}">{printer_name}</A>»
-+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>»
- очищены.</P>
-
--</DIV>
-\ No newline at end of file
-+</DIV>
-Index: templates/de/set-printer-options-header.tmpl
-===================================================================
---- templates/de/set-printer-options-header.tmpl (.../tags/release-1.4.1) (wersja 8857)
-+++ templates/de/set-printer-options-header.tmpl (.../branches/branch-1.4) (wersja 8857)
-@@ -1,6 +1,6 @@
- <DIV CLASS="indent">
-
--<H2 CLASS="title">Standardeinstellungen f%uuml;r {printer_name} festlegen</H2>
-+<H2 CLASS="title">Standardeinstellungen für {printer_name} festlegen</H2>
-
- <FORM METHOD="POST" ACTION="/admin">
- <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
-Index: scheduler/ipp.c
-===================================================================
---- scheduler/ipp.c (.../tags/release-1.4.1) (wersja 8857)
-+++ scheduler/ipp.c (.../branches/branch-1.4) (wersja 8857)
-@@ -2324,8 +2324,9 @@
- dstfile[1024]; /* Destination Script/PPD file */
- int modify; /* Non-zero if we are modifying */
- char newname[IPP_MAX_NAME]; /* New printer name */
-- int need_restart_job; /* Need to restart job? */
-- int set_device_uri, /* Did we set the device URI? */
-+ int changed_driver, /* Changed the PPD/interface script? */
-+ need_restart_job, /* Need to restart job? */
-+ set_device_uri, /* Did we set the device URI? */
- set_port_monitor; /* Did we set the port monitor? */
-
-
-@@ -2469,6 +2470,7 @@
- * Look for attributes and copy them over as needed...
- */
-
-+ changed_driver = 0;
- need_restart_job = 0;
-
- if ((attr = ippFindAttribute(con->request, "printer-location",
-@@ -2722,6 +2724,7 @@
- if (con->filename)
- {
- need_restart_job = 1;
-+ changed_driver = 1;
-
- strlcpy(srcfile, con->filename, sizeof(srcfile));
-
-@@ -2792,18 +2795,6 @@
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Copied PPD file successfully!");
- chmod(dstfile, 0644);
--
--#ifdef __APPLE__
-- /*
-- * (Re)register color profiles...
-- */
--
-- if (!RunUser)
-- {
-- apple_unregister_profiles(printer);
-- apple_register_profiles(printer);
-- }
--#endif /* __APPLE__ */
- }
- else
- {
-@@ -2820,6 +2811,7 @@
- IPP_TAG_NAME)) != NULL)
- {
- need_restart_job = 1;
-+ changed_driver = 1;
-
- if (!strcmp(attr->values[0].string.text, "raw"))
- {
-@@ -2857,19 +2849,33 @@
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Copied PPD file successfully!");
- chmod(dstfile, 0644);
-+ }
-+ }
-
-+ if (changed_driver)
-+ {
-+ /*
-+ * If we changed the PPD/interface script, then remove the printer's cache
-+ * file...
-+ */
-+
-+ char cache_name[1024]; /* Cache filename for printer attrs */
-+
-+ snprintf(cache_name, sizeof(cache_name), "%s/%s.ipp", CacheDir,
-+ printer->name);
-+ unlink(cache_name);
-+
- #ifdef __APPLE__
-- /*
-- * (Re)register color profiles...
-- */
-+ /*
-+ * (Re)register color profiles...
-+ */
-
-- if (!RunUser)
-- {
-- apple_unregister_profiles(printer);
-- apple_register_profiles(printer);
-- }
-+ if (!RunUser)
-+ {
-+ apple_unregister_profiles(printer);
-+ apple_register_profiles(printer);
-+ }
- #endif /* __APPLE__ */
-- }
- }
-
- /*
-@@ -8470,7 +8476,9 @@
- * Read the option name...
- */
-
-- for (line += 8, olen --; isalnum(*line & 255); line ++)
-+ for (line += 8, olen --;
-+ *line > ' ' && *line < 0x7f && *line != ':' && *line != '/';
-+ line ++)
- if (olen > 0)
- {
- *option++ = *line;
-@@ -8498,7 +8506,9 @@
- while (isspace(*line & 255))
- line ++;
-
-- for (clen --; isalnum(*line & 255); line ++)
-+ for (clen --;
-+ *line > ' ' && *line < 0x7f && *line != ':' && *line != '/';
-+ line ++)
- if (clen > 0)
- {
- *choice++ = *line;
-Index: scheduler/printers.c
-===================================================================
---- scheduler/printers.c (.../tags/release-1.4.1) (wersja 8857)
-+++ scheduler/printers.c (.../branches/branch-1.4) (wersja 8857)
-@@ -1518,6 +1518,7 @@
-
- cupsFilePuts(fp, "# Printer configuration file for " CUPS_SVERSION "\n");
- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
-+ cupsFilePuts(fp, "# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING\n");
-
- /*
- * Write each local printer known to the system...
-@@ -3834,7 +3835,7 @@
- for (filter = mimeFirstFilter(MimeDatabase);
- filter;
- filter = mimeNextFilter(MimeDatabase))
-- if (filter->dst == p->filetype)
-+ if (filter->dst == p->filetype || filter->dst == p->prefiltertype)
- {
- /*
- * Delete the current filter...
-Index: scheduler/classes.c
-===================================================================
---- scheduler/classes.c (.../tags/release-1.4.1) (wersja 8857)
-+++ scheduler/classes.c (.../branches/branch-1.4) (wersja 8857)
-@@ -728,6 +728,7 @@
-
- cupsFilePuts(fp, "# Class configuration file for " CUPS_SVERSION "\n");
- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
-+ cupsFilePuts(fp, "# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING\n");
-
- /*
- * Write each local class known to the system...