From: msweet Date: Tue, 18 Sep 2007 20:56:41 +0000 (+0000) Subject: Import CUPS 1.3.2. X-Git-Tag: release-1.6.3~205 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c277e2f802a006f02ab9d5807f12bc96d4831100;p=thirdparty%2Fcups.git Import CUPS 1.3.2. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@477 a1ca3aef-8c08-0410-bb20-df032aa958be --- diff --git a/CHANGES.txt b/CHANGES.txt index a2ff9458be..84ae8eda5c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,24 @@ -CHANGES.txt - 2007-09-13 +CHANGES.txt - 2007-09-18 ------------------------ +CHANGES IN CUPS V1.3.2 + + - The 1.3.1 release was incorrectly created from the + 1.4.x source tree (STR #2519) + - Added support for 32/64-bit libraries on HP-UX + (STR #2520) + - The scheduler incorrectly used portrait as the default + orientation (STR #2513) + - The scheduler no longer writes the printcap file for + every remote printer update (STR #2512) + - Remote raw printing with multiple copies did not work + (STR #2518) + - Updated the configure script to require at least autoconf + 2.60 (STR #2515) + - Some gzip'd PPD files were not read in their entirety + (STR #2510) + + CHANGES IN CUPS V1.3.1 - Documentation updates. diff --git a/INSTALL.txt b/INSTALL.txt index 24b3c39672..8b32d9cbaa 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,4 +1,4 @@ -INSTALL - CUPS v1.3.1 - 2007-09-14 +INSTALL - CUPS v1.3.2 - 2007-09-18 ---------------------------------- This file describes how to compile and install CUPS from source diff --git a/README.txt b/README.txt index 582250f034..3b3fd17e37 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -README - CUPS v1.3.1 - 2007-09-14 +README - CUPS v1.3.2 - 2007-09-18 --------------------------------- Looking for compile instructions? Read the file "INSTALL.txt" diff --git a/backend/ipp.c b/backend/ipp.c index 693a85bc8d..7cbea4df48 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $" + * "$Id: ipp.c 6967 2007-09-17 23:30:52Z mike $" * * IPP backend for the Common UNIX Printing System (CUPS). * @@ -132,7 +132,8 @@ main(int argc, /* I - Number of command-line args */ ipp_attribute_t *printer_accepting; /* printer-is-accepting-jobs */ int copies, /* Number of copies for job */ copies_remaining; /* Number of copies remaining */ - const char *content_type; /* CONTENT_TYPE environment variable */ + const char *content_type, /* CONTENT_TYPE environment variable */ + *final_content_type; /* FINAL_CONTENT_TYPE environment var */ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET) struct sigaction action; /* Actions for POSIX signals */ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */ @@ -209,12 +210,16 @@ main(int argc, /* I - Number of command-line args */ * Get the (final) content type... */ - if ((content_type = getenv("FINAL_CONTENT_TYPE")) == NULL) - if ((content_type = getenv("CONTENT_TYPE")) == NULL) - content_type = "application/octet-stream"; + if ((content_type = getenv("CONTENT_TYPE")) == NULL) + content_type = "application/octet-stream"; - if (!strncmp(content_type, "printer/", 8)) - content_type = "application/vnd.cups-raw"; + if ((final_content_type = getenv("FINAL_CONTENT_TYPE")) == NULL) + { + final_content_type = content_type; + + if (!strncmp(final_content_type, "printer/", 8)) + final_content_type = "application/vnd.cups-raw"; + } /* * Extract the hostname and printer name from the URI... @@ -426,10 +431,9 @@ main(int argc, /* I - Number of command-line args */ * Point to the single file from stdin... */ - filename = tmpfilename; - files = &filename; - num_files = 1; - + filename = tmpfilename; + num_files = 1; + files = &filename; send_options = 0; } else @@ -438,10 +442,9 @@ main(int argc, /* I - Number of command-line args */ * Point to the files on the command-line... */ - num_files = argc - 6; - files = argv + 6; - - send_options = strncasecmp(content_type, "application/vnd.cups-", 21) != 0; + num_files = argc - 6; + files = argv + 6; + send_options = 1; #ifdef HAVE_LIBZ if (compression) @@ -859,8 +862,7 @@ main(int argc, /* I - Number of command-line args */ num_options = cupsParseOptions(argv[5], 0, &options); #ifdef __APPLE__ - if (content_type != NULL && - !strcasecmp(content_type, "application/pictwps") && num_files == 1) + if (!strcasecmp(content_type, "application/pictwps") && num_files == 1) { if (format_sup != NULL) { @@ -886,23 +888,23 @@ main(int argc, /* I - Number of command-line args */ * number of copies to 1... */ - content_type = "application/postscript"; - copies = 1; - copies_remaining = 1; - send_options = 0; + final_content_type = "application/postscript"; + copies = 1; + copies_remaining = 1; + send_options = 0; } } #endif /* __APPLE__ */ - if (content_type != NULL && format_sup != NULL) + if (format_sup != NULL) { for (i = 0; i < format_sup->num_values; i ++) - if (!strcasecmp(content_type, format_sup->values[i].string.text)) + if (!strcasecmp(final_content_type, format_sup->values[i].string.text)) break; if (i < format_sup->num_values) ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, - "document-format", NULL, content_type); + "document-format", NULL, final_content_type); } if (copies_sup && version > 0 && send_options) @@ -1756,5 +1758,5 @@ sigterm_handler(int sig) /* I - Signal */ /* - * End of "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $". + * End of "$Id: ipp.c 6967 2007-09-17 23:30:52Z mike $". */ diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index 7bfe47c615..648ed348d4 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $" +dnl "$Id: cups-common.m4 6965 2007-09-17 21:34:07Z mike $" dnl dnl Common configuration stuff for the Common UNIX Printing System (CUPS). dnl @@ -13,14 +13,14 @@ dnl which should have been included with this file. If this file is dnl file is missing or damaged, see the license at "http://www.cups.org/". dnl -dnl We need at least autoconf 2.50... -AC_PREREQ(2.50) +dnl We need at least autoconf 2.60... +AC_PREREQ(2.60) dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) dnl Versio number information... -CUPS_VERSION="1.3.1" +CUPS_VERSION="1.3.2" CUPS_REVISION="" #if test -z "$CUPS_REVISION" -a -d .svn; then # CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" @@ -287,5 +287,5 @@ AC_SUBST(DEFAULT_IPP_PORT) AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT) dnl -dnl End of "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $". +dnl End of "$Id: cups-common.m4 6965 2007-09-17 21:34:07Z mike $". dnl diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index c89a2a613f..beec9d6173 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-compiler.m4 6698 2007-07-20 14:15:44Z mike $" +dnl "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $" dnl dnl Compiler stuff for the Common UNIX Printing System (CUPS). dnl @@ -301,6 +301,40 @@ else if test $PICFLAG = 1; then OPTIM="+z $OPTIM" fi + + if test "x$enable_32bit" = xyes; then + # Build 32-bit libraries, 64-bit base... + if test -z "$with_arch32flags"; then + ARCH32FLAGS="+DD32" + else + ARCH32FLAGS="$with_arch32flags" + fi + + if test -z "$with_archflags"; then + if test -z "$with_arch64flags"; then + ARCHFLAGS="+DD64" + else + ARCHFLAGS="$with_arch64flags" + fi + fi + fi + + if test "x$enable_64bit" = xyes; then + # Build 64-bit libraries, 32-bit base... + if test -z "$with_arch64flags"; then + ARCH64FLAGS="+DD64" + else + ARCH64FLAGS="$with_arch64flags" + fi + + if test -z "$with_archflags"; then + if test -z "$with_arch32flags"; then + ARCHFLAGS="+DD32" + else + ARCHFLAGS="$with_arch32flags" + fi + fi + fi ;; IRIX) if test -z "$OPTIM"; then @@ -464,5 +498,5 @@ case $uname in esac dnl -dnl End of "$Id: cups-compiler.m4 6698 2007-07-20 14:15:44Z mike $". +dnl End of "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $". dnl diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4 index a0bdffcbe1..86e1d55622 100644 --- a/config-scripts/cups-directories.m4 +++ b/config-scripts/cups-directories.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $" +dnl "$Id: cups-directories.m4 6976 2007-09-18 20:39:31Z mike $" dnl dnl Directory stuff for the Common UNIX Printing System (CUPS). dnl @@ -99,17 +99,23 @@ if test "$sysconfdir" = "\${prefix}/etc"; then fi fi -dnl Fix "libdir" variable for IRIX 6.x... +dnl Fix "libdir" variable... if test "$libdir" = "\${exec_prefix}/lib"; then - if test "$uname" = "IRIX"; then - libdir="$exec_prefix/lib32" - else - if test "$uname" = Linux -a -d /usr/lib64; then - libdir="$exec_prefix/lib64" - else - libdir="$exec_prefix/lib" - fi - fi + case "$uname" in + IRIX*) + libdir="$exec_prefix/lib32" + ;; + Linux*) + if test -d /usr/lib64; then + libdir="$exec_prefix/lib64" + fi + ;; + HP-UX*) + if test -d /usr/lib/hpux32; then + libdir="$exec_prefix/lib/hpux32" + fi + ;; + esac fi dnl Setup init.d locations... @@ -146,8 +152,8 @@ if test x$rcdir = x; then HP-UX*) INITDIR="/sbin" RCLEVELS="2" - RCSTART="620" - RCSTOP="380" + RCSTART="380" + RCSTOP="620" ;; IRIX*) @@ -291,11 +297,12 @@ fi AC_SUBST(CUPS_FONTPATH) AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH") -# Locale data -if test "$localedir" = "\${datarootdir}/locale"; then +# Locale data (initial assignment allows us not to require autoconf 2.60) +localedir="${localedir:=}" +if test "$localedir" = "\${datarootdir}/locale" -o "$localedir" = ""; then case "$uname" in Linux | GNU | *BSD* | Darwin*) - CUPS_LOCALEDIR="$datarootdir/locale" + CUPS_LOCALEDIR="$datadir/locale" ;; OSF1* | AIX*) @@ -360,5 +367,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups") AC_SUBST(CUPS_STATEDIR) dnl -dnl End of "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $". +dnl End of "$Id: cups-directories.m4 6976 2007-09-18 20:39:31Z mike $". dnl diff --git a/cups/cups.h b/cups/cups.h index 9cb3e2d151..a6cedb9f1c 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -1,5 +1,5 @@ /* - * "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $" + * "$Id: cups.h 6965 2007-09-17 21:34:07Z mike $" * * API definitions for the Common UNIX Printing System (CUPS). * @@ -59,10 +59,10 @@ extern "C" { * Constants... */ -# define CUPS_VERSION 1.0301 +# define CUPS_VERSION 1.0302 # define CUPS_VERSION_MAJOR 1 # define CUPS_VERSION_MINOR 3 -# define CUPS_VERSION_PATCH 1 +# define CUPS_VERSION_PATCH 2 # define CUPS_DATE_ANY -1 @@ -256,5 +256,5 @@ extern void cupsSetDefaultDest(const char *name, #endif /* !_CUPS_CUPS_H_ */ /* - * End of "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $". + * End of "$Id: cups.h 6965 2007-09-17 21:34:07Z mike $". */ diff --git a/cups/file.c b/cups/file.c index 9ad5ee1b35..eaebda5c70 100644 --- a/cups/file.c +++ b/cups/file.c @@ -1,5 +1,5 @@ /* - * "$Id: file.c 6649 2007-07-11 21:46:42Z mike $" + * "$Id: file.c 6963 2007-09-17 20:35:54Z mike $" * * File functions for the Common UNIX Printing System (CUPS). * @@ -1207,7 +1207,7 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */ if (fp->ptr >= fp->end) if (cups_fill(fp) <= 0) { - DEBUG_printf((" cups_fill() returned -1, total=%d\n", total)); + DEBUG_printf((" cups_fill() returned -1, total=%d\n", (int)total)); if (total > 0) return ((ssize_t)total); @@ -1235,7 +1235,7 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */ * Return the total number of bytes read... */ - DEBUG_printf((" total=%d\n", total)); + DEBUG_printf((" total=%d\n", (int)total)); return ((ssize_t)total); } @@ -1703,6 +1703,7 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */ { ssize_t bytes; /* Number of bytes read */ #ifdef HAVE_LIBZ + int status; /* Decompression status */ const unsigned char *ptr, /* Pointer into buffer */ *end; /* End of buffer */ #endif /* HAVE_LIBZ */ @@ -1921,7 +1922,13 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */ fp->stream.next_out = (Bytef *)fp->buf; fp->stream.avail_out = sizeof(fp->buf); - if (inflate(&(fp->stream), Z_NO_FLUSH) == Z_STREAM_END) + status = inflate(&(fp->stream), Z_NO_FLUSH); + + if (fp->stream.next_out > (Bytef *)fp->buf) + fp->crc = crc32(fp->crc, (Bytef *)fp->buf, + fp->stream.next_out - (Bytef *)fp->buf); + + if (status == Z_STREAM_END) { /* * Read the CRC and length... @@ -1950,6 +1957,9 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */ * Bad CRC, mark end-of-file... */ + DEBUG_printf(("cups_fill: tcrc=%08x, fp->crc=%08x\n", + (unsigned int)tcrc, (unsigned int)fp->crc)); + fp->eof = 1; return (-1); @@ -2126,5 +2136,5 @@ cups_write(cups_file_t *fp, /* I - CUPS file */ /* - * End of "$Id: file.c 6649 2007-07-11 21:46:42Z mike $". + * End of "$Id: file.c 6963 2007-09-17 20:35:54Z mike $". */ diff --git a/cups/testfile.c b/cups/testfile.c index 2a50e677f0..db78a2cf7e 100644 --- a/cups/testfile.c +++ b/cups/testfile.c @@ -1,5 +1,5 @@ /* - * "$Id: testfile.c 6649 2007-07-11 21:46:42Z mike $" + * "$Id: testfile.c 6963 2007-09-17 20:35:54Z mike $" * * File test program for the Common UNIX Printing System (CUPS). * @@ -16,7 +16,8 @@ * * Contents: * - * main() - Main entry. + * main() - Main entry. + * read_write_tests() - Perform read/write tests. */ /* @@ -149,6 +150,8 @@ read_write_tests(int compression) /* I - Use compression? */ unsigned char readbuf[8192], /* Read buffer */ writebuf[8192]; /* Write buffer */ int byte; /* Byte from file */ + static const char *partial_line = "partial line"; + /* Partial line */ /* @@ -253,11 +256,25 @@ read_write_tests(int compression) /* I - Use compression? */ fputs("cupsFileWrite(): ", stdout); - for (i = 0; i < 100; i ++) + for (i = 0; i < 10000; i ++) if (cupsFileWrite(fp, (char *)writebuf, sizeof(writebuf)) < 0) break; - if (i >= 100) + if (i >= 10000) + puts("PASS"); + else + { + printf("FAIL (%s)\n", strerror(errno)); + status ++; + } + + /* + * cupsFilePuts() with partial line... + */ + + fputs("cupsFilePuts(\"partial line\"): ", stdout); + + if (cupsFilePuts(fp, partial_line) > 0) puts("PASS"); else { @@ -405,13 +422,13 @@ read_write_tests(int compression) /* I - Use compression? */ fputs("cupsFileRead(): ", stdout); - for (i = 0; i < 100; i ++) + for (i = 0; i < 10000; i ++) if ((byte = cupsFileRead(fp, (char *)readbuf, sizeof(readbuf))) < 0) break; else if (memcmp(readbuf, writebuf, sizeof(readbuf))) break; - if (i >= 100) + if (i >= 10000) puts("PASS"); else if (byte > 0) { @@ -430,6 +447,26 @@ read_write_tests(int compression) /* I - Use compression? */ status ++; } + /* + * cupsFileGetChar() with partial line... + */ + + fputs("cupsFileGetChar(partial line): ", stdout); + + for (i = 0; i < strlen(partial_line); i ++) + if ((byte = cupsFileGetChar(fp)) < 0) + break; + else if (byte != partial_line[i]) + break; + + if (!partial_line[i]) + puts("PASS"); + else + { + printf("FAIL (got '%c', expected '%c')\n", byte, partial_line[i]); + status ++; + } + /* * cupsFileClose() */ @@ -459,5 +496,5 @@ read_write_tests(int compression) /* I - Use compression? */ /* - * End of "$Id: testfile.c 6649 2007-07-11 21:46:42Z mike $". + * End of "$Id: testfile.c 6963 2007-09-17 20:35:54Z mike $". */ diff --git a/doc/es/images/button-accept-jobs.gif b/doc/es/images/button-accept-jobs.gif index f0103e3113..3e635b771e 100644 Binary files a/doc/es/images/button-accept-jobs.gif and b/doc/es/images/button-accept-jobs.gif differ diff --git a/doc/es/images/button-add-class.gif b/doc/es/images/button-add-class.gif index 08307784dc..366dbf9ced 100644 Binary files a/doc/es/images/button-add-class.gif and b/doc/es/images/button-add-class.gif differ diff --git a/doc/es/images/button-add-printer.gif b/doc/es/images/button-add-printer.gif index 48141726ad..44f8d53976 100644 Binary files a/doc/es/images/button-add-printer.gif and b/doc/es/images/button-add-printer.gif differ diff --git a/doc/es/images/button-add-rss-subscription.gif b/doc/es/images/button-add-rss-subscription.gif new file mode 100644 index 0000000000..2dbb859f7a Binary files /dev/null and b/doc/es/images/button-add-rss-subscription.gif differ diff --git a/doc/es/images/button-add-this-printer.gif b/doc/es/images/button-add-this-printer.gif index 6d9de0cbb5..94198d484b 100644 Binary files a/doc/es/images/button-add-this-printer.gif and b/doc/es/images/button-add-this-printer.gif differ diff --git a/doc/es/images/button-cancel-all-jobs.gif b/doc/es/images/button-cancel-all-jobs.gif index 2f3ed26b90..557c39e53f 100644 Binary files a/doc/es/images/button-cancel-all-jobs.gif and b/doc/es/images/button-cancel-all-jobs.gif differ diff --git a/doc/es/images/button-cancel-job.gif b/doc/es/images/button-cancel-job.gif index 0e778c3784..dd29b02124 100644 Binary files a/doc/es/images/button-cancel-job.gif and b/doc/es/images/button-cancel-job.gif differ diff --git a/doc/es/images/button-cancel-subscription.gif b/doc/es/images/button-cancel-subscription.gif new file mode 100644 index 0000000000..5c8a4d6543 Binary files /dev/null and b/doc/es/images/button-cancel-subscription.gif differ diff --git a/doc/es/images/button-change-settings.gif b/doc/es/images/button-change-settings.gif index 05125ea4a9..c0ea42de20 100644 Binary files a/doc/es/images/button-change-settings.gif and b/doc/es/images/button-change-settings.gif differ diff --git a/doc/es/images/button-clean-print-heads.gif b/doc/es/images/button-clean-print-heads.gif index 3744d52fa0..2e833c8eaa 100644 Binary files a/doc/es/images/button-clean-print-heads.gif and b/doc/es/images/button-clean-print-heads.gif differ diff --git a/doc/es/images/button-clear.gif b/doc/es/images/button-clear.gif index b8fdadd0d1..4476911bf3 100644 Binary files a/doc/es/images/button-clear.gif and b/doc/es/images/button-clear.gif differ diff --git a/doc/es/images/button-continue.gif b/doc/es/images/button-continue.gif index 4d77bc4260..f6c27a6478 100644 Binary files a/doc/es/images/button-continue.gif and b/doc/es/images/button-continue.gif differ diff --git a/doc/es/images/button-delete-class.gif b/doc/es/images/button-delete-class.gif index 40492e70c5..c7de009522 100644 Binary files a/doc/es/images/button-delete-class.gif and b/doc/es/images/button-delete-class.gif differ diff --git a/doc/es/images/button-delete-printer.gif b/doc/es/images/button-delete-printer.gif index 620515e1c9..e1f4b110bd 100644 Binary files a/doc/es/images/button-delete-printer.gif and b/doc/es/images/button-delete-printer.gif differ diff --git a/doc/es/images/button-edit-configuration-file.gif b/doc/es/images/button-edit-configuration-file.gif index 6d4ffd03f2..f12a903798 100644 Binary files a/doc/es/images/button-edit-configuration-file.gif and b/doc/es/images/button-edit-configuration-file.gif differ diff --git a/doc/es/images/button-export-samba.gif b/doc/es/images/button-export-samba.gif index fb487da660..42d9d30b47 100644 Binary files a/doc/es/images/button-export-samba.gif and b/doc/es/images/button-export-samba.gif differ diff --git a/doc/es/images/button-find-new-printers.gif b/doc/es/images/button-find-new-printers.gif new file mode 100644 index 0000000000..301d32e319 Binary files /dev/null and b/doc/es/images/button-find-new-printers.gif differ diff --git a/doc/es/images/button-help.gif b/doc/es/images/button-help.gif index 4e6972f647..37ee0de62c 100644 Binary files a/doc/es/images/button-help.gif and b/doc/es/images/button-help.gif differ diff --git a/doc/es/images/button-hold-job.gif b/doc/es/images/button-hold-job.gif index 366769fb76..74ead76557 100644 Binary files a/doc/es/images/button-hold-job.gif and b/doc/es/images/button-hold-job.gif differ diff --git a/doc/es/images/button-manage-classes.gif b/doc/es/images/button-manage-classes.gif index 591a37bd27..a3d80dc31a 100644 Binary files a/doc/es/images/button-manage-classes.gif and b/doc/es/images/button-manage-classes.gif differ diff --git a/doc/es/images/button-manage-jobs.gif b/doc/es/images/button-manage-jobs.gif index 98a571f835..6a2d949154 100644 Binary files a/doc/es/images/button-manage-jobs.gif and b/doc/es/images/button-manage-jobs.gif differ diff --git a/doc/es/images/button-manage-printers.gif b/doc/es/images/button-manage-printers.gif index c904c90b01..25008b6489 100644 Binary files a/doc/es/images/button-manage-printers.gif and b/doc/es/images/button-manage-printers.gif differ diff --git a/doc/es/images/button-manage-server.gif b/doc/es/images/button-manage-server.gif index f2d80ea8bc..b53c87a782 100644 Binary files a/doc/es/images/button-manage-server.gif and b/doc/es/images/button-manage-server.gif differ diff --git a/doc/es/images/button-modify-class.gif b/doc/es/images/button-modify-class.gif index d7a7357c2a..b7069e0043 100644 Binary files a/doc/es/images/button-modify-class.gif and b/doc/es/images/button-modify-class.gif differ diff --git a/doc/es/images/button-modify-printer.gif b/doc/es/images/button-modify-printer.gif index dbccca6123..ee5a683550 100644 Binary files a/doc/es/images/button-modify-printer.gif and b/doc/es/images/button-modify-printer.gif differ diff --git a/doc/es/images/button-move-job.gif b/doc/es/images/button-move-job.gif index 613a06308c..d5cf9c3763 100644 Binary files a/doc/es/images/button-move-job.gif and b/doc/es/images/button-move-job.gif differ diff --git a/doc/es/images/button-move-jobs.gif b/doc/es/images/button-move-jobs.gif index 47a31d10fb..b2fd0a35b4 100644 Binary files a/doc/es/images/button-move-jobs.gif and b/doc/es/images/button-move-jobs.gif differ diff --git a/doc/es/images/button-print-self-test-page.gif b/doc/es/images/button-print-self-test-page.gif index ecf175dc43..9e2d8cbaa4 100644 Binary files a/doc/es/images/button-print-self-test-page.gif and b/doc/es/images/button-print-self-test-page.gif differ diff --git a/doc/es/images/button-print-test-page.gif b/doc/es/images/button-print-test-page.gif index 30e8fe4dad..07058119e3 100644 Binary files a/doc/es/images/button-print-test-page.gif and b/doc/es/images/button-print-test-page.gif differ diff --git a/doc/es/images/button-publish-printer.gif b/doc/es/images/button-publish-printer.gif index c5134f6841..f05a81790f 100644 Binary files a/doc/es/images/button-publish-printer.gif and b/doc/es/images/button-publish-printer.gif differ diff --git a/doc/es/images/button-reject-jobs.gif b/doc/es/images/button-reject-jobs.gif index 164dcd271b..6ad9fad90e 100644 Binary files a/doc/es/images/button-reject-jobs.gif and b/doc/es/images/button-reject-jobs.gif differ diff --git a/doc/es/images/button-release-job.gif b/doc/es/images/button-release-job.gif index 303e0205db..0e17928199 100644 Binary files a/doc/es/images/button-release-job.gif and b/doc/es/images/button-release-job.gif differ diff --git a/doc/es/images/button-restart-job.gif b/doc/es/images/button-restart-job.gif index 15e6965842..8a716919c3 100644 Binary files a/doc/es/images/button-restart-job.gif and b/doc/es/images/button-restart-job.gif differ diff --git a/doc/es/images/button-save-changes.gif b/doc/es/images/button-save-changes.gif index c7f94d1442..1dc1a38311 100644 Binary files a/doc/es/images/button-save-changes.gif and b/doc/es/images/button-save-changes.gif differ diff --git a/doc/es/images/button-search.gif b/doc/es/images/button-search.gif index d075ef7810..d25e74525a 100644 Binary files a/doc/es/images/button-search.gif and b/doc/es/images/button-search.gif differ diff --git a/doc/es/images/button-set-allowed-users.gif b/doc/es/images/button-set-allowed-users.gif index 01a14ac523..c61bbed567 100644 Binary files a/doc/es/images/button-set-allowed-users.gif and b/doc/es/images/button-set-allowed-users.gif differ diff --git a/doc/es/images/button-set-as-default.gif b/doc/es/images/button-set-as-default.gif index de20fdeac1..6111ada3c3 100644 Binary files a/doc/es/images/button-set-as-default.gif and b/doc/es/images/button-set-as-default.gif differ diff --git a/doc/es/images/button-set-printer-options.gif b/doc/es/images/button-set-printer-options.gif index 41143678c9..fc3d00034a 100644 Binary files a/doc/es/images/button-set-printer-options.gif and b/doc/es/images/button-set-printer-options.gif differ diff --git a/doc/es/images/button-show-active.gif b/doc/es/images/button-show-active.gif index e99375f384..c8732474e9 100644 Binary files a/doc/es/images/button-show-active.gif and b/doc/es/images/button-show-active.gif differ diff --git a/doc/es/images/button-show-all.gif b/doc/es/images/button-show-all.gif index e16678ac45..da63054113 100644 Binary files a/doc/es/images/button-show-all.gif and b/doc/es/images/button-show-all.gif differ diff --git a/doc/es/images/button-show-completed.gif b/doc/es/images/button-show-completed.gif index 7fd39c0cfb..83785d8fe4 100644 Binary files a/doc/es/images/button-show-completed.gif and b/doc/es/images/button-show-completed.gif differ diff --git a/doc/es/images/button-show-next.gif b/doc/es/images/button-show-next.gif index 02824de907..9a5f25051e 100644 Binary files a/doc/es/images/button-show-next.gif and b/doc/es/images/button-show-next.gif differ diff --git a/doc/es/images/button-show-previous.gif b/doc/es/images/button-show-previous.gif index ea7195b73b..2a338a1f2e 100644 Binary files a/doc/es/images/button-show-previous.gif and b/doc/es/images/button-show-previous.gif differ diff --git a/doc/es/images/button-sort-ascending.gif b/doc/es/images/button-sort-ascending.gif index 8ef3bee1e1..0a6c2bf6f6 100644 Binary files a/doc/es/images/button-sort-ascending.gif and b/doc/es/images/button-sort-ascending.gif differ diff --git a/doc/es/images/button-sort-descending.gif b/doc/es/images/button-sort-descending.gif index c76fc63803..0e7466ff8c 100644 Binary files a/doc/es/images/button-sort-descending.gif and b/doc/es/images/button-sort-descending.gif differ diff --git a/doc/es/images/button-start-class.gif b/doc/es/images/button-start-class.gif index 8f2c3d9822..79e585bef4 100644 Binary files a/doc/es/images/button-start-class.gif and b/doc/es/images/button-start-class.gif differ diff --git a/doc/es/images/button-start-printer.gif b/doc/es/images/button-start-printer.gif index fecaa4c588..e0a6a5b4c1 100644 Binary files a/doc/es/images/button-start-printer.gif and b/doc/es/images/button-start-printer.gif differ diff --git a/doc/es/images/button-stop-class.gif b/doc/es/images/button-stop-class.gif index 86bd67bc56..6f1466256c 100644 Binary files a/doc/es/images/button-stop-class.gif and b/doc/es/images/button-stop-class.gif differ diff --git a/doc/es/images/button-stop-printer.gif b/doc/es/images/button-stop-printer.gif index 9ed74d83ec..b057546783 100644 Binary files a/doc/es/images/button-stop-printer.gif and b/doc/es/images/button-stop-printer.gif differ diff --git a/doc/es/images/button-unpublish-printer.gif b/doc/es/images/button-unpublish-printer.gif index ba10421841..8e0772dc49 100644 Binary files a/doc/es/images/button-unpublish-printer.gif and b/doc/es/images/button-unpublish-printer.gif differ diff --git a/doc/es/images/button-use-default-config.gif b/doc/es/images/button-use-default-config.gif index 3dbe3ea8d3..6ccefbb741 100644 Binary files a/doc/es/images/button-use-default-config.gif and b/doc/es/images/button-use-default-config.gif differ diff --git a/doc/es/images/button-view-access-log.gif b/doc/es/images/button-view-access-log.gif index 27276e7c38..202015cf64 100644 Binary files a/doc/es/images/button-view-access-log.gif and b/doc/es/images/button-view-access-log.gif differ diff --git a/doc/es/images/button-view-error-log.gif b/doc/es/images/button-view-error-log.gif index 93b07e5b1e..ca93057136 100644 Binary files a/doc/es/images/button-view-error-log.gif and b/doc/es/images/button-view-error-log.gif differ diff --git a/doc/es/images/button-view-page-log.gif b/doc/es/images/button-view-page-log.gif index 632eb349b4..b9c078ec57 100644 Binary files a/doc/es/images/button-view-page-log.gif and b/doc/es/images/button-view-page-log.gif differ diff --git a/doc/es/images/button-view-printable-version.gif b/doc/es/images/button-view-printable-version.gif index 044563deef..23e401c2f5 100644 Binary files a/doc/es/images/button-view-printable-version.gif and b/doc/es/images/button-view-printable-version.gif differ diff --git a/doc/es/images/buttons_es.txt b/doc/es/images/buttons_es.txt new file mode 100644 index 0000000000..5d78f62980 --- /dev/null +++ b/doc/es/images/buttons_es.txt @@ -0,0 +1,55 @@ +button-accept-jobs.gif green Aceptar trabajos +button-add-class.gif standard Añadir clase +button-add-printer.gif standard Añadir impresora +button-add-rss-subscription.gif standard Añadir subscripción RSS +button-add-this-printer.gif standard Añadir esta impresora +button-cancel-all-jobs.gif black Cancelar todos los trabajos +button-cancel-job.gif black Cancelar trabajo +button-cancel-subscription.gif standard Cancelar subscripción +button-change-settings.gif standard Cambiar especificaciones +button-clean-print-heads.gif standard Limpiar cabezales de impresión +button-clear.gif standard Borrar +button-continue.gif standard Siguiente +button-delete-class.gif black Borrar clase +button-delete-printer.gif black Borrar impresora +button-edit-configuration-file.gif standard Editar archivo configuración +button-export-samba.gif standard Exportar impresoras a Samba +button-find-new-printers.gif standard Encontrar nuevas impresoras +button-help.gif standard Ayuda +button-hold-job.gif red Retener trabajo +button-manage-classes.gif standard Administrar clases +button-manage-jobs.gif standard Administrar trabajos +button-manage-printers.gif standard Administrar impresoras +button-manage-server.gif standard Administrar servidor +button-modify-class.gif standard Modificar clase +button-modify-printer.gif standard Modificar impresora +button-move-job.gif standard Mover trabajo +button-move-jobs.gif standard Mover todos los trabajos +button-print-self-test-page.gif standard Imprimir página de auto prueba +button-print-test-page.gif standard Imprimir página de prueba +button-publish-printer.gif standard Publicar impresora +button-reject-jobs.gif red Rechazar trabajos +button-release-job.gif green Liberar trabajo +button-restart-job.gif standard Reimprimir trabajo +button-save-changes.gif standard Guardar cambios +button-search.gif standard Buscar +button-set-allowed-users.gif standard Cambiar usuarios permitidos +button-set-as-default.gif standard Poner como predeterminada +button-set-printer-options.gif standard Cambiar opciones impresora +button-show-active.gif standard Mostrar trabajos activos +button-show-all.gif standard Mostrar todos los trabajos +button-show-completed.gif standard Mostrar trabajos completados +button-show-next.gif standard Mostrar siguiente +button-show-previous.gif standard Mostrar anterior +button-sort-ascending.gif standard @UP Orden ascendente @UP +button-sort-descending.gif standard @DOWN Orden descendente @DOWN +button-start-class.gif green Iniciar clase +button-start-printer.gif green Iniciar impresora +button-stop-class.gif red Detener clase +button-stop-printer.gif red Detener impresora +button-unpublish-printer.gif standard No publicar impresora +button-use-default-config.gif standard Usar archivo de configuración predeterminado +button-view-access-log.gif standard Ver archivo de registro de accesos +button-view-error-log.gif standard Ver archivo de registro de errores +button-view-page-log.gif standard Ver archivo de registro de páginas +button-view-printable-version.gif standard Ver versión imprimible diff --git a/doc/images/raster.png b/doc/images/raster.png new file mode 100644 index 0000000000..17ba3b2308 Binary files /dev/null and b/doc/images/raster.png differ diff --git a/doc/images/raster.svg b/doc/images/raster.svg new file mode 100644 index 0000000000..58277e70c6 --- /dev/null +++ b/doc/images/raster.svg @@ -0,0 +1,386 @@ + + + + + + + + + image/svg+xml + + + + + + + + BackSide + + + BackSide + + + BackSide + + + BackSide + + + BackSide + + + BackSide + + + BackSide + + + BackSide + Normalfalse + Normaltrue + ManualTumblefalse + ManualTumbletrue + Rotatedfalse + Rotatedtrue + Flippedfalse + Flippedtrue + + diff --git a/locale/checkpo.c b/locale/checkpo.c new file mode 100644 index 0000000000..2ac6627334 --- /dev/null +++ b/locale/checkpo.c @@ -0,0 +1,343 @@ +/* + * "$Id: checkpo.c 6926 2007-09-06 14:34:31Z mike $" + * + * Verify that translations in the .po file have the same number and type of + * printf-style format strings. + * + * Usage: + * + * checkpo filename.po [... filenameN.po] + * + * Compile with: + * + * gcc -o checkpo checkpo.c `cups-config --libs` + * + * Contents: + * + * main() - Validate .po files. + * abbreviate() - Abbreviate a message string as needed. + * collect_formats() - Collect all of the format strings in the msgid. + * free_formats() - Free all of the format strings. + */ + +#include +#include +#include +#include + + +/* + * Local functions... + */ + +static char *abbreviate(const char *s, char *buf, int bufsize); +static cups_array_t *collect_formats(const char *id); +static void free_formats(cups_array_t *fmts); + + +/* + * 'main()' - Validate .po files. + */ + +int /* O - Exit code */ +main(int argc, /* I - Number of command-line args */ + char *argv[]) /* I - Command-line arguments */ +{ + int i; /* Looping var */ + cups_array_t *po; /* .po file */ + _cups_message_t *msg; /* Current message */ + cups_array_t *idfmts, /* Format strings in msgid */ + *strfmts; /* Format strings in msgstr */ + char *idfmt, /* Current msgid format string */ + *strfmt; /* Current msgstr format string */ + int fmtidx, /* Format index */ + fmtcount; /* Format count */ + int status, /* Exit status */ + pass, /* Pass/fail status */ + untranslated; /* Untranslated messages */ + char idbuf[80], /* Abbreviated msgid */ + strbuf[80]; /* Abbreviated msgstr */ + + + if (argc < 2) + { + puts("Usage: checkpo filename.po [... filenameN.po]"); + return (1); + } + + /* + * Check every .po file on the command-line... + */ + + for (i = 1, status = 0; i < argc; i ++) + { + /* + * Use the CUPS .po loader to get the message strings... + */ + + if ((po = _cupsMessageLoad(argv[i])) == NULL) + { + perror(argv[i]); + return (1); + } + + printf("%s: ", argv[i]); + fflush(stdout); + + /* + * Scan every message for a % string and then match them up with + * the corresponding string in the translation... + */ + + pass = 1; + untranslated = 0; + + for (msg = (_cups_message_t *)cupsArrayFirst(po); + msg; + msg = (_cups_message_t *)cupsArrayNext(po)) + { + if (!msg->str || !msg->str[0]) + { + untranslated ++; + continue; + } + else if (strchr(msg->id, '%')) + { + idfmts = collect_formats(msg->id); + strfmts = collect_formats(msg->str); + fmtidx = 0; + + for (strfmt = (char *)cupsArrayFirst(strfmts); + strfmt; + strfmt = (char *)cupsArrayNext(strfmts)) + { + if (isdigit(strfmt[1] & 255) && strfmt[2] == '$') + { + /* + * Handle positioned format stuff... + */ + + fmtidx = strfmt[1] - '1'; + strfmt += 3; + if ((idfmt = (char *)cupsArrayIndex(idfmts, fmtidx)) != NULL) + idfmt ++; + } + else + { + /* + * Compare against the current format... + */ + + idfmt = (char *)cupsArrayIndex(idfmts, fmtidx); + } + + fmtidx ++; + + if (!idfmt || strcmp(strfmt, idfmt)) + break; + + fmtcount ++; + } + + if (cupsArrayCount(strfmts) != cupsArrayCount(idfmts) || strfmt) + { + if (pass) + { + pass = 0; + puts("FAIL"); + } + + printf(" Bad translation string \"%s\"\n for \"%s\"\n", + abbreviate(msg->str, strbuf, sizeof(strbuf)), + abbreviate(msg->id, idbuf, sizeof(idbuf))); + fputs(" Translation formats:", stdout); + for (strfmt = (char *)cupsArrayFirst(strfmts); + strfmt; + strfmt = (char *)cupsArrayNext(strfmts)) + printf(" %s", strfmt); + fputs("\n Original formats:", stdout); + for (idfmt = (char *)cupsArrayFirst(idfmts); + idfmt; + idfmt = (char *)cupsArrayNext(idfmts)) + printf(" %s", idfmt); + putchar('\n'); + } + + free_formats(idfmts); + free_formats(strfmts); + } + + if ((!strncmp(msg->id, "ALERT:", 6) && strncmp(msg->str, "ALERT:", 6)) || + (!strncmp(msg->id, "CRIT:", 5) && strncmp(msg->str, "CRIT:", 5)) || + (!strncmp(msg->id, "DEBUG:", 6) && strncmp(msg->str, "DEBUG:", 6)) || + (!strncmp(msg->id, "DEBUG2:", 7) && strncmp(msg->str, "DEBUG2:", 7)) || + (!strncmp(msg->id, "EMERG:", 6) && strncmp(msg->str, "EMERG:", 6)) || + (!strncmp(msg->id, "ERROR:", 6) && strncmp(msg->str, "ERROR:", 6)) || + (!strncmp(msg->id, "INFO:", 5) && strncmp(msg->str, "INFO:", 5)) || + (!strncmp(msg->id, "NOTICE:", 7) && strncmp(msg->str, "NOTICE:", 7)) || + (!strncmp(msg->id, "WARNING:", 8) && strncmp(msg->str, "WARNING:", 8))) + { + if (pass) + { + pass = 0; + puts("FAIL"); + } + + printf(" Bad prefix on filter message \"%s\"\n for \"%s\"\n", + abbreviate(msg->str, strbuf, sizeof(strbuf)), + abbreviate(msg->id, idbuf, sizeof(idbuf))); + } + } + + if (pass) + { + if ((untranslated * 10) >= cupsArrayCount(po)) + { + /* + * Only allow 10% of messages to be untranslated before we fail... + */ + + pass = 0; + puts("FAIL"); + printf(" Too many untranslated messages (%d of %d)\n", untranslated, + cupsArrayCount(po)); + } + else if (untranslated > 0) + printf("PASS (%d of %d untranslated)\n", untranslated, + cupsArrayCount(po)); + else + puts("PASS"); + } + + if (!pass) + status = 1; + + _cupsMessageFree(po); + } + + return (status); +} + + +/* + * 'abbreviate()' - Abbreviate a message string as needed. + */ + +static char * /* O - Abbreviated string */ +abbreviate(const char *s, /* I - String to abbreviate */ + char *buf, /* I - Buffer */ + int bufsize) /* I - Size of buffer */ +{ + char *bufptr; /* Pointer into buffer */ + + + for (bufptr = buf, bufsize -= 4; *s && bufsize > 0; s ++) + { + if (*s == '\n') + { + if (bufsize < 2) + break; + + *bufptr++ = '\\'; + *bufptr++ = 'n'; + bufsize -= 2; + } + else if (*s == '\t') + { + if (bufsize < 2) + break; + + *bufptr++ = '\\'; + *bufptr++ = 't'; + bufsize -= 2; + } + else if (*s >= 0 && *s < ' ') + { + if (bufsize < 4) + break; + + sprintf(bufptr, "\\%03o", *s); + bufptr += 4; + bufsize -= 4; + } + else + { + *bufptr++ = *s; + bufsize --; + } + } + + if (*s) + strcpy(bufptr, "..."); + else + *bufptr = '\0'; + + return (buf); +} + + +/* + * 'collect_formats()' - Collect all of the format strings in the msgid. + */ + +static cups_array_t * /* O - Array of format strings */ +collect_formats(const char *id) /* I - msgid string */ +{ + cups_array_t *fmts; /* Array of format strings */ + char buf[255], /* Format string buffer */ + *bufptr; /* Pointer into format string */ + + + fmts = cupsArrayNew(NULL, NULL); + + while ((id = strchr(id, '%')) != NULL) + { + if (id[1] == '%') + { + /* + * Skip %%... + */ + + id += 2; + continue; + } + + for (bufptr = buf; *id && bufptr < (buf + sizeof(buf) - 1); id ++) + { + *bufptr++ = *id; + + if (strchr("CDEFGIOSUXcdeifgopsux", *id)) + { + id ++; + break; + } + } + + *bufptr = '\0'; + cupsArrayAdd(fmts, strdup(buf)); + } + + return (fmts); +} + + +/* + * 'free_formats()' - Free all of the format strings. + */ + +static void +free_formats(cups_array_t *fmts) /* I - Array of format strings */ +{ + char *s; /* Current string */ + + + for (s = (char *)cupsArrayFirst(fmts); s; s = (char *)cupsArrayNext(fmts)) + free(s); + + cupsArrayDelete(fmts); +} + + +/* + * End of "$Id: checkpo.c 6926 2007-09-06 14:34:31Z mike $". + */ diff --git a/packaging/cups.list.in b/packaging/cups.list.in index 37cddc03c7..815522ddf9 100644 --- a/packaging/cups.list.in +++ b/packaging/cups.list.in @@ -1,5 +1,5 @@ # -# "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $" +# "$Id: cups.list.in 6960 2007-09-14 21:15:04Z mike $" # # ESP Package Manager (EPM) file list for the Common UNIX Printing # System (CUPS). @@ -409,7 +409,6 @@ f 0644 root sys $LOCALEDIR/pl/cups_pl.po locale/cups_pl.po %subpackage pt f 0644 root sys $LOCALEDIR/pt/cups_pt.po locale/cups_pt.po f 0644 root sys $LOCALEDIR/pt_BR/cups_pt_BR.po locale/cups_pt_BR.po -f 0644 root sys $LOCALEDIR/pt_PT/cups_pt_PT.po locale/cups_pt_PT.po %subpackage ru f 0644 root sys $LOCALEDIR/ru/cups_ru.po locale/cups_ru.po %subpackage sv @@ -723,5 +722,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd %subpackage # -# End of "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $". +# End of "$Id: cups.list.in 6960 2007-09-14 21:15:04Z mike $". # diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in index b3bb81d88a..8ccd639f85 100644 --- a/packaging/cups.spec.in +++ b/packaging/cups.spec.in @@ -1,5 +1,5 @@ # -# "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $" +# "$Id: cups.spec.in 6960 2007-09-14 21:15:04Z mike $" # # RPM "spec" file for the Common UNIX Printing System (CUPS). # @@ -592,7 +592,6 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root) /usr/share/locale/pt/cups_pt.po /usr/share/locale/pt_BR/cups_pt_BR.po -/usr/share/locale/pt_PT/cups_pt_PT.po %files ru %defattr(-,root,root) @@ -627,5 +626,5 @@ rm -rf $RPM_BUILD_ROOT # -# End of "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $". +# End of "$Id: cups.spec.in 6960 2007-09-14 21:15:04Z mike $". # diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index 7c3f32dca9..3fbd2ae01b 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -1,5 +1,5 @@ /* - * "$Id: dirsvc.c 6691 2007-07-19 19:09:46Z mike $" + * "$Id: dirsvc.c 6974 2007-09-18 17:51:32Z mike $" * * Directory services routines for the Common UNIX Printing System (CUPS). * @@ -89,7 +89,7 @@ static void process_browse_data(const char *uri, const char *host, ipp_pstate_t state, const char *location, const char *info, const char *make_model, int num_attrs, cups_option_t *attrs); -static void process_implicit_classes(void); +static void process_implicit_classes(int *write_printcap); static void send_cups_browse(cupsd_printer_t *p); #ifdef HAVE_LDAP static void send_ldap_browse(cupsd_printer_t *p); @@ -605,7 +605,7 @@ cupsdLoadRemoteCache(void) * Do auto-classing if needed... */ - process_implicit_classes(); + process_implicit_classes(NULL); } @@ -1661,7 +1661,8 @@ process_browse_data( cups_option_t *attrs) /* I - Attributes */ { int i; /* Looping var */ - int update; /* Update printer attributes? */ + int update, /* Update printer attributes? */ + write_printcap; /* Write the printcap file? */ char finaluri[HTTP_MAX_URI], /* Final URI for printer */ name[IPP_MAX_NAME], /* Name of printer */ newname[IPP_MAX_NAME], /* New name of printer */ @@ -1748,11 +1749,12 @@ process_browse_data( * See if we already have it listed in the Printers list, and add it if not... */ - type |= CUPS_PRINTER_REMOTE | CUPS_PRINTER_DISCOVERED; - type &= ~CUPS_PRINTER_IMPLICIT; - update = 0; - hptr = strchr(host, '.'); - sptr = strchr(ServerName, '.'); + type |= CUPS_PRINTER_REMOTE | CUPS_PRINTER_DISCOVERED; + type &= ~CUPS_PRINTER_IMPLICIT; + update = 0; + write_printcap = 0; + hptr = strchr(host, '.'); + sptr = strchr(ServerName, '.'); if (!ServerNameIsIP && sptr != NULL && hptr != NULL) { @@ -1875,7 +1877,8 @@ process_browse_data( cupsdSetString(&p->device_uri, uri); cupsdSetString(&p->hostname, host); - update = 1; + update = 1; + write_printcap = 1; } } else @@ -1981,7 +1984,8 @@ process_browse_data( cupsdSetString(&p->uri, uri); cupsdSetString(&p->device_uri, uri); - update = 1; + write_printcap = 1; + update = 1; } } @@ -2040,7 +2044,8 @@ process_browse_data( if (info && (!p->info || strcmp(p->info, info))) { cupsdSetString(&p->info, info); - update = 1; + update = 1; + write_printcap = 1; } if (!make_model || !make_model[0]) @@ -2105,6 +2110,7 @@ process_browse_data( cupsdDeletePrinter(p, 1); cupsdUpdateImplicitClasses(); + write_printcap = 1; } else if (update) { @@ -2129,6 +2135,7 @@ process_browse_data( if (p->type & CUPS_PRINTER_DEFAULT) { DefaultPrinter = p; + write_printcap = 1; break; } } @@ -2137,13 +2144,14 @@ process_browse_data( * Do auto-classing if needed... */ - process_implicit_classes(); + process_implicit_classes(&write_printcap); /* * Update the printcap file... */ - cupsdWritePrintcap(); + if (write_printcap) + cupsdWritePrintcap(); } @@ -2633,7 +2641,8 @@ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */ */ static void -process_implicit_classes(void) +process_implicit_classes( + int *write_printcap) /* O - Write printcap file? */ { int i; /* Looping var */ int update; /* Update printer attributes? */ @@ -2714,6 +2723,9 @@ process_implicit_classes(void) update = 1; + if (write_printcap) + *write_printcap = 1; + cupsdLogMessage(CUPSD_LOG_DEBUG, "Added implicit class \"%s\"...", name); cupsdAddEvent(CUPSD_EVENT_PRINTER_ADDED, p, NULL, @@ -3811,5 +3823,5 @@ update_polling(void) /* - * End of "$Id: dirsvc.c 6691 2007-07-19 19:09:46Z mike $". + * End of "$Id: dirsvc.c 6974 2007-09-18 17:51:32Z mike $". */ diff --git a/scheduler/printers.c b/scheduler/printers.c index b3ffa3891b..3400de5495 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -1,5 +1,5 @@ /* - * "$Id: printers.c 6678 2007-07-16 18:03:35Z mike $" + * "$Id: printers.c 6971 2007-09-17 23:59:05Z mike $" * * Printer routines for the Common UNIX Printing System (CUPS). * @@ -2975,7 +2975,8 @@ cupsdWritePrintcap(void) * data has come from... */ - cupsFilePuts(fp, "# This file was automatically generated by cupsd(8) from the\n"); + cupsFilePuts(fp, + "# This file was automatically generated by cupsd(8) from the\n"); cupsFilePrintf(fp, "# %s/printers.conf file. All changes to this file\n", ServerRoot); cupsFilePuts(fp, "# will be lost.\n"); @@ -3001,14 +3002,15 @@ cupsdWritePrintcap(void) if (DefaultPrinter) cupsFilePrintf(fp, "%s|%s:rm=%s:rp=%s:\n", DefaultPrinter->name, - DefaultPrinter->info, ServerName, DefaultPrinter->name); + DefaultPrinter->info, ServerName, + DefaultPrinter->name); for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); p; p = (cupsd_printer_t *)cupsArrayNext(Printers)) if (p != DefaultPrinter) cupsFilePrintf(fp, "%s|%s:rm=%s:rp=%s:\n", p->name, p->info, - ServerName, p->name); + ServerName, p->name); break; case PRINTCAP_SOLARIS: @@ -3046,9 +3048,10 @@ cupsdWritePrintcap(void) p; p = (cupsd_printer_t *)cupsArrayNext(Printers)) cupsFilePrintf(fp, "%s:\\\n" - "\t:bsdaddr=%s,%s:\\\n" - "\t:description=%s:\n", - p->name, ServerName, p->name, p->info ? p->info : ""); + "\t:bsdaddr=%s,%s:\\\n" + "\t:description=%s:\n", + p->name, ServerName, p->name, + p->info ? p->info : ""); break; } } @@ -3216,8 +3219,8 @@ add_printer_defaults(cupsd_printer_t *p)/* I - Printer */ "number-up-default", 1); if (!cupsGetOption("orientation-requested", p->num_options, p->options)) - ippAddInteger(p->attrs, IPP_TAG_PRINTER, IPP_TAG_ENUM, - "orientation-requested-default", IPP_PORTRAIT); + ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_NOVALUE, + "orientation-requested-default", NULL, NULL); if (!cupsGetOption("notify-lease-duration", p->num_options, p->options)) ippAddInteger(p->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER, @@ -3763,5 +3766,5 @@ write_irix_state(cupsd_printer_t *p) /* I - Printer to update */ /* - * End of "$Id: printers.c 6678 2007-07-16 18:03:35Z mike $". + * End of "$Id: printers.c 6971 2007-09-17 23:59:05Z mike $". */ diff --git a/templates/es/add-rss-subscription.tmpl b/templates/es/add-rss-subscription.tmpl new file mode 100644 index 0000000000..07d2ce59c9 --- /dev/null +++ b/templates/es/add-rss-subscription.tmpl @@ -0,0 +1,43 @@ +
+ + +

Añadir subscripción RSS

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre:
+(Puede contener cualquier carácter imprimible excepto espacio, "/", "?", y "#")
Cola:
Eventos:Trabajo creado
+Trabajo completado
+Trabajo parado
+Opciones de trabajo cambiadas
    Cola parada
+Cola añadida
+Cola modificada
+Cola borrada
    Servidor iniciado
+Servidor parado
+Servidor reiniciado
+Auditoría de seguridad del servidor
Número máximo de eventos del canal:
+ +
diff --git a/templates/es/list-available-printers.tmpl b/templates/es/list-available-printers.tmpl new file mode 100644 index 0000000000..17a7dbc6bb --- /dev/null +++ b/templates/es/list-available-printers.tmpl @@ -0,0 +1,10 @@ +

Impresoras disponibles

+ +{#device_uri=0?

No se encuentran impresoras.

+:
    {[device_uri] +
  • Añadir esta impresora +{device_make_and_model} ({device_info})
  • +}
} + diff --git a/templates/es/subscription-added.tmpl b/templates/es/subscription-added.tmpl new file mode 100644 index 0000000000..725b8bbc30 --- /dev/null +++ b/templates/es/subscription-added.tmpl @@ -0,0 +1 @@ +

Se ha añadido con éxito la subscripción {subscription_name}.

diff --git a/templates/es/subscription-canceled.tmpl b/templates/es/subscription-canceled.tmpl new file mode 100644 index 0000000000..8a68f543df --- /dev/null +++ b/templates/es/subscription-canceled.tmpl @@ -0,0 +1 @@ +

La subscripción #{notify_subscription_id} ha sido cancelada.