Comparar commits
1 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| b73f328146 |
@@ -1,110 +1,6 @@
|
||||
CHANGES.txt - 2007-05-08
|
||||
CHANGES.txt - 2007-03-15
|
||||
------------------------
|
||||
|
||||
CHANGES IN CUPS V1.2.11
|
||||
|
||||
- Updated the launchd support on Mac OS X to better
|
||||
support reconfiguration.
|
||||
- "make distclean" didn't remove all generated files
|
||||
(STR #2366)
|
||||
- Fixed a bug in the advertisement of classes (STR
|
||||
#2373)
|
||||
- The IPP backend now stays running until the job is
|
||||
actually printed by the remote server; previously
|
||||
it would stop monitoring the job if it was held or
|
||||
temporarily stopped (STR #2352)
|
||||
- PDF files were not always printed using the correct
|
||||
orientation (STR #2348)
|
||||
- The scheduler could crash if you specified a bad file:
|
||||
URI for a printer (STR #2351)
|
||||
- The Renew-Subscription operation now returns the
|
||||
notify-lease-duration value that was used (STR #2346)
|
||||
- The IPP backend sent job options to IPP printers,
|
||||
however some printers tried to override the options
|
||||
embedded in the PS/PCL stream with those job options
|
||||
(STR #2349)
|
||||
- ppdLocalize() now also tries a country-specific
|
||||
localization for when localizing to a generic locale
|
||||
name.
|
||||
- The cupstestppd program now allows for partial
|
||||
localizations to reduce the size of universal PPD
|
||||
files.
|
||||
- Chinese PPD files were incorrectly tagged with the
|
||||
"cn" locale (should have been "zh")
|
||||
- The backends now manage the printer-state-reasons
|
||||
attribute more accurately (STR #2345)
|
||||
- Java, PHP, Perl, and Python scripts did not work
|
||||
properly (STR #2342)
|
||||
- The scheduler would take forever to start if the
|
||||
maximum number of file descriptors was set to
|
||||
"unlimited" (STR #2329)
|
||||
- The page-ranges option was incorrectly applied to the
|
||||
banner pages (STR #2336)
|
||||
- Fixed some GCC compile warnings (STR #2340)
|
||||
- The DBUS notification code was broken for older
|
||||
versions of DBUS (STR #2327)
|
||||
- The IPv6 code did not compile on HP-UX 11.23 (STR
|
||||
#2331)
|
||||
- PPD constraints did not work properly with custom
|
||||
options.
|
||||
- Regular PPD options with the name "CustomFoo" did
|
||||
not work.
|
||||
- The USB backend did not work on NetBSD (STR #2324)
|
||||
- The printer-state-reasons attribute was incorrectly
|
||||
cleared after a job completed (STR #2323)
|
||||
- The scheduler did not set the printer operation policy
|
||||
on startup, only on soft reload (STR #2319)
|
||||
- The AP_FIRSTPAGE_InputSlot option did not clear any
|
||||
ManualFeed setting that was made, which caused problems
|
||||
with some PPD files (STR #2318)
|
||||
- cupsDoFileRequest() and cupsDoRequest() did not abort
|
||||
when getting an error in the response (STR #2315)
|
||||
- The scheduler did not schedule jobs properly to remote
|
||||
or nested classes (STR #2317)
|
||||
- Updated the mime.types and mime.convs headers to warn
|
||||
that the files are overwritten when CUPS is installed.
|
||||
Local changes should go in local.types or local.convs,
|
||||
respectively (STR #2310)
|
||||
- The scheduler could get in an infinite loop if a
|
||||
printer in an implicit class disappeared (STR #2311)
|
||||
- The pstops filter did not handle %%EndFeature comments
|
||||
properly (STR #2306)
|
||||
- Fixed a problem with the Polish web page printer icons
|
||||
(STR #2305)
|
||||
- ppdLocalize() now also localizes the cupsICCProfile
|
||||
attributes.
|
||||
- The scheduler still had a reference to the incorrect
|
||||
"notify-recipient" attribute (STR #2307)
|
||||
- The "make check" and "make test" subscription tests did
|
||||
not set the locale (STR #2307)
|
||||
- The "make check" and "make test" subscription tests
|
||||
incorrectly used the notify-recipient attribute instead
|
||||
of notify-recipient-uri (STR #2307)
|
||||
- cupsRasterInterpretPPD() incorrectly limited the
|
||||
cupsBorderlessScalingFactor when specified in the
|
||||
job options.
|
||||
|
||||
|
||||
CHANGES IN CUPS V1.2.10
|
||||
|
||||
- ppdLocalize() now supports localizing for Japanese
|
||||
using the "jp" locale name used by the ppdmerge
|
||||
program from the CUPS DDK 1.1.0 (STR #2301)
|
||||
- _cupsAdminSetServerSettings() did not support changing
|
||||
of top-level directives as designed.
|
||||
- The init script path check was broken.
|
||||
- CUPS incorrectly used the attribute "notify-recipient"
|
||||
instead of "notify-recicpient-uri" in several places
|
||||
(STR #2297)
|
||||
- Fixed a configure script bug on MirBSD (STR #2294)
|
||||
- The pdftops filter did not limit the amount of recursion
|
||||
of page sets (STR #2293)
|
||||
- Custom page sizes with fractional point sizes did not
|
||||
work (STR #2296)
|
||||
- The lpoptions command would crash when adding or removing
|
||||
options on a system with no printers (STR #2295)
|
||||
|
||||
|
||||
CHANGES IN CUPS V1.2.9
|
||||
|
||||
- The scheduler did not use the default job-sheets
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
INSTALL - CUPS v1.2.11 - 2007-05-08
|
||||
-----------------------------------
|
||||
INSTALL - CUPS v1.2.9 - 2007-03-15
|
||||
----------------------------------
|
||||
|
||||
This file describes how to compile and install CUPS from source
|
||||
code. For more information on CUPS see the file called
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# Top-level Makefile for the Common UNIX Printing System (CUPS).
|
||||
#
|
||||
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs are the
|
||||
# property of Easy Software Products and are protected by Federal
|
||||
@@ -66,7 +66,6 @@ distclean: clean
|
||||
$(RM) cups-config conf/cupsd.conf conf/pam.std
|
||||
$(RM) doc/help/standard.html doc/index.html
|
||||
$(RM) init/cups.sh init/cups-lpd
|
||||
$(RM) man/client.conf.man
|
||||
$(RM) man/cups-deviced.man man/cups-driverd.man
|
||||
$(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
|
||||
$(RM) man/cupsd.conf.man man/lpoptions.man
|
||||
@@ -122,21 +121,12 @@ install: installhdrs
|
||||
echo Installing StartupItems files...; \
|
||||
$(INSTALL_SCRIPT) init/PrintingServices $(BUILDROOT)$(INITDDIR)/PrintingServices; \
|
||||
$(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
|
||||
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
|
||||
$(INSTALL_DATA) init/Localizable.strings $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
|
||||
elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
|
||||
echo Installing LaunchDaemons configuration files...; \
|
||||
$(INSTALL_DATA) init/org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
|
||||
$(INSTALL_DATA) init/org.cups.cups-lpd.plist $(BUILDROOT)/System/Library/LaunchDaemons; \
|
||||
case `uname -r` in \
|
||||
8.*) \
|
||||
$(INSTALL_DIR) $(BUILDROOT)/System/Library/StartupItems/PrintingServices; \
|
||||
$(INSTALL_SCRIPT) init/PrintingServices.launchd $(BUILDROOT)/System/Library/StartupItems/PrintingServices/PrintingServices; \
|
||||
$(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)/System/Library/StartupItems/PrintingServices/StartupParameters.plist; \
|
||||
$(INSTALL_DIR) $(BUILDROOT)/System/Library/StartupItems/PrintingServices/Resources/English.lproj; \
|
||||
$(INSTALL_DATA) init/Localizable.strings $(BUILDROOT)/System/Library/StartupItems/PrintingServices/Resources/English.lproj/Localizable.strings; \
|
||||
;; \
|
||||
esac \
|
||||
else \
|
||||
echo Installing RC script...; \
|
||||
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
|
||||
@@ -211,9 +201,7 @@ uninstall:
|
||||
$(RM) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
|
||||
$(RMDIR) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
|
||||
elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
|
||||
$(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cupsd.plist; \
|
||||
$(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cups-lpd.plist; \
|
||||
$(RMDIR) $(BUILDROOT)/System/Library/StartupItems/PrintingServices; \
|
||||
$(RM) $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
|
||||
else \
|
||||
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
|
||||
fi \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
README - CUPS v1.2.11 - 2007-05-08
|
||||
----------------------------------
|
||||
README - CUPS v1.2.9 - 2007-03-15
|
||||
---------------------------------
|
||||
|
||||
Looking for compile instructions? Read the file "INSTALL.txt"
|
||||
instead...
|
||||
|
||||
@@ -101,7 +101,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
int i; /* Looping var */
|
||||
int send_options; /* Send job options? */
|
||||
int num_options; /* Number of printer options */
|
||||
cups_option_t *options; /* Printer options */
|
||||
char method[255], /* Method in URI */
|
||||
@@ -417,8 +416,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
filename = tmpfilename;
|
||||
files = &filename;
|
||||
num_files = 1;
|
||||
|
||||
send_options = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -429,8 +426,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
num_files = argc - 6;
|
||||
files = argv + 6;
|
||||
|
||||
send_options = strncasecmp(content_type, "application/vnd.cups-", 21) != 0;
|
||||
|
||||
#ifdef HAVE_LIBZ
|
||||
if (compression)
|
||||
compress_files(num_files, files);
|
||||
@@ -858,7 +853,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
content_type = "application/postscript";
|
||||
copies = 1;
|
||||
copies_remaining = 1;
|
||||
send_options = 0;
|
||||
}
|
||||
}
|
||||
#endif /* __APPLE__ */
|
||||
@@ -874,7 +868,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
num_options, &options);
|
||||
}
|
||||
|
||||
if (copies_sup && version > 0 && send_options)
|
||||
if (copies_sup && version > 0)
|
||||
{
|
||||
/*
|
||||
* Only send options if the destination printer supports the copies
|
||||
@@ -1084,7 +1078,8 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Stop polling if the job is finished or pending-held...
|
||||
*/
|
||||
|
||||
if (job_state->values[0].integer > IPP_JOB_STOPPED)
|
||||
if (job_state->values[0].integer > IPP_JOB_PROCESSING ||
|
||||
job_state->values[0].integer == IPP_JOB_HELD)
|
||||
{
|
||||
if ((job_sheets = ippFindAttribute(response,
|
||||
"job-media-sheets-completed",
|
||||
|
||||
@@ -101,8 +101,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */
|
||||
* Now loop until we are out of data from print_fd...
|
||||
*/
|
||||
|
||||
for (print_bytes = 0, print_ptr = print_buffer, offline = -1,
|
||||
paperout = -1, total_bytes = 0;;)
|
||||
for (print_bytes = 0, print_ptr = print_buffer, offline = 0, paperout = 0, total_bytes = 0;;)
|
||||
{
|
||||
/*
|
||||
* Use select() to determine whether we have data to copy around...
|
||||
@@ -126,7 +125,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */
|
||||
* Pause printing to clear any pending errors...
|
||||
*/
|
||||
|
||||
if (errno == ENXIO && offline != 1)
|
||||
if (errno == ENXIO && !offline)
|
||||
{
|
||||
fputs("STATE: +offline-error\n", stderr);
|
||||
fputs("INFO: Printer is currently off-line.\n", stderr);
|
||||
@@ -204,7 +203,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */
|
||||
|
||||
if (errno == ENOSPC)
|
||||
{
|
||||
if (paperout != 1)
|
||||
if (!paperout)
|
||||
{
|
||||
fputs("ERROR: Out of paper!\n", stderr);
|
||||
fputs("STATE: +media-empty-error\n", stderr);
|
||||
@@ -213,7 +212,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */
|
||||
}
|
||||
else if (errno == ENXIO)
|
||||
{
|
||||
if (offline != 1)
|
||||
if (!offline)
|
||||
{
|
||||
fputs("STATE: +offline-error\n", stderr);
|
||||
fputs("INFO: Printer is currently off-line.\n", stderr);
|
||||
|
||||
@@ -227,7 +227,7 @@ static void parse_pserror (char *sockBuffer, int len);
|
||||
* 'list_devices()' - List all USB devices.
|
||||
*/
|
||||
|
||||
static void list_devices()
|
||||
void list_devices()
|
||||
{
|
||||
iterate_printers(list_device_callback, NULL);
|
||||
}
|
||||
@@ -237,7 +237,7 @@ static void list_devices()
|
||||
* 'print_device()' - Print a file to a USB device.
|
||||
*/
|
||||
|
||||
static int /* O - Exit status */
|
||||
int /* O - Exit status */
|
||||
print_device(const char *uri, /* I - Device URI */
|
||||
const char *hostname, /* I - Hostname/manufacturer */
|
||||
const char *resource, /* I - Resource/modelname */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* This file is included from "usb.c" when compiled on UNIX/Linux.
|
||||
*
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -44,7 +44,7 @@
|
||||
* Local functions...
|
||||
*/
|
||||
|
||||
static int open_device(const char *uri, int *use_bc);
|
||||
int open_device(const char *uri, int *use_bc);
|
||||
|
||||
|
||||
/*
|
||||
@@ -78,16 +78,6 @@ print_device(const char *uri, /* I - Device URI */
|
||||
|
||||
do
|
||||
{
|
||||
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
/*
|
||||
* *BSD's ulpt driver currently does not support the
|
||||
* back-channel, incorrectly returns data ready on a select(),
|
||||
* and locks up on read()...
|
||||
*/
|
||||
|
||||
use_bc = 0;
|
||||
|
||||
#else
|
||||
/*
|
||||
* Disable backchannel data when printing to Brother, Canon, or
|
||||
* Minolta USB printers - apparently these printers will return
|
||||
@@ -99,7 +89,6 @@ print_device(const char *uri, /* I - Device URI */
|
||||
strcasecmp(hostname, "Canon") &&
|
||||
strcasecmp(hostname, "Konica Minolta") &&
|
||||
strcasecmp(hostname, "Minolta");
|
||||
#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */
|
||||
|
||||
if ((device_fd = open_device(uri, &use_bc)) == -1)
|
||||
{
|
||||
@@ -196,7 +185,7 @@ print_device(const char *uri, /* I - Device URI */
|
||||
* 'list_devices()' - List all USB devices.
|
||||
*/
|
||||
|
||||
static void
|
||||
void
|
||||
list_devices(void)
|
||||
{
|
||||
#ifdef __linux
|
||||
@@ -301,7 +290,7 @@ list_devices(void)
|
||||
* 'open_device()' - Open a USB device...
|
||||
*/
|
||||
|
||||
static int /* O - File descriptor or -1 on error */
|
||||
int /* O - File descriptor or -1 on error */
|
||||
open_device(const char *uri, /* I - Device URI */
|
||||
int *use_bc) /* O - Set to 0 for unidirectional */
|
||||
{
|
||||
@@ -521,12 +510,7 @@ open_device(const char *uri, /* I - Device URI */
|
||||
}
|
||||
#else
|
||||
{
|
||||
if (use_bc)
|
||||
fd = open(uri + 4, O_RDWR | O_EXCL);
|
||||
else
|
||||
fd = -1;
|
||||
|
||||
if (fd < 0)
|
||||
if ((fd = open(uri + 4, O_RDWR | O_EXCL)) < 0)
|
||||
{
|
||||
fd = open(uri + 4, O_WRONLY | O_EXCL);
|
||||
*use_bc = 0;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* USB port backend for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -60,10 +60,10 @@
|
||||
* Local functions...
|
||||
*/
|
||||
|
||||
static void list_devices(void);
|
||||
static int print_device(const char *uri, const char *hostname,
|
||||
const char *resource, const char *options,
|
||||
int print_fd, int copies, int argc, char *argv[]);
|
||||
void list_devices(void);
|
||||
int print_device(const char *uri, const char *hostname,
|
||||
const char *resource, const char *options,
|
||||
int print_fd, int copies, int argc, char *argv[]);
|
||||
|
||||
|
||||
/*
|
||||
@@ -85,7 +85,7 @@ static int print_device(const char *uri, const char *hostname,
|
||||
* 'list_devices()' - List all available USB devices to stdout.
|
||||
*/
|
||||
|
||||
static void
|
||||
void
|
||||
list_devices(void)
|
||||
{
|
||||
/*
|
||||
@@ -103,7 +103,7 @@ list_devices(void)
|
||||
* 'print_device()' - Print a file to a USB device.
|
||||
*/
|
||||
|
||||
static int /* O - Exit status */
|
||||
int /* O - Exit status */
|
||||
print_device(const char *uri, /* I - Device URI */
|
||||
const char *hostname, /* I - Hostname/manufacturer */
|
||||
const char *resource, /* I - Resource/modelname */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* "lpr" command for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1997-2007 by Easy Software Products.
|
||||
* Copyright 1997-2006 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -232,7 +232,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
snprintf(email, sizeof(email), "mailto:%s@%s", cupsUser(),
|
||||
httpGetHostname(NULL, buffer, sizeof(buffer)));
|
||||
num_options = cupsAddOption("notify-recipient-uri", email,
|
||||
num_options = cupsAddOption("notify-recipient", email,
|
||||
num_options, &options);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
#
|
||||
# "$Id: mime.convs 6406 2007-03-27 16:11:27Z mike $"
|
||||
#
|
||||
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
|
||||
# VERSIONS OF CUPS. Instead, create a "local.convs" file that
|
||||
# reflects your local configuration changes.
|
||||
# "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $"
|
||||
#
|
||||
# MIME converts file for the Common UNIX Printing System (CUPS).
|
||||
#
|
||||
# Copyright 1997-2007 by Easy Software Products.
|
||||
# Copyright 1997-2005 by Easy Software Products.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs are the
|
||||
# property of Easy Software Products and are protected by Federal
|
||||
@@ -118,5 +114,5 @@ image/x-sun-raster application/vnd.cups-raster 100 imagetoraster
|
||||
#application/octet-stream application/vnd.cups-raw 0 -
|
||||
|
||||
#
|
||||
# End of "$Id: mime.convs 6406 2007-03-27 16:11:27Z mike $".
|
||||
# End of "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $".
|
||||
#
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
#
|
||||
# "$Id: mime.types 6548 2007-06-04 14:43:42Z mike $"
|
||||
# "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $"
|
||||
#
|
||||
# MIME types file for the Common UNIX Printing System (CUPS).
|
||||
#
|
||||
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
|
||||
# VERSIONS OF CUPS. Instead, create a "local.types" file that
|
||||
# reflects your local configuration changes.
|
||||
#
|
||||
# Copyright 1997-2007 by Easy Software Products.
|
||||
# Copyright 1997-2005 by Easy Software Products.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs are the
|
||||
# property of Easy Software Products and are protected by Federal
|
||||
@@ -171,5 +167,5 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
|
||||
application/octet-stream
|
||||
|
||||
#
|
||||
# End of "$Id: mime.types 6548 2007-06-04 14:43:42Z mike $".
|
||||
# End of "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $".
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-common.m4 6548 2007-06-04 14:43:42Z mike $"
|
||||
dnl "$Id: cups-common.m4 6296 2007-02-20 16:33:25Z mike $"
|
||||
dnl
|
||||
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -29,7 +29,7 @@ dnl Set the name of the config header file...
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
|
||||
dnl Version number information...
|
||||
CUPS_VERSION="1.2.11"
|
||||
CUPS_VERSION="1.2.9"
|
||||
CUPS_REVISION=""
|
||||
|
||||
AC_SUBST(CUPS_VERSION)
|
||||
@@ -264,5 +264,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
|
||||
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-common.m4 6548 2007-06-04 14:43:42Z mike $".
|
||||
dnl End of "$Id: cups-common.m4 6296 2007-02-20 16:33:25Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-compiler.m4 6448 2007-04-10 18:24:19Z mike $"
|
||||
dnl "$Id: cups-compiler.m4 6145 2006-12-06 20:10:16Z mike $"
|
||||
dnl
|
||||
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -425,10 +425,6 @@ case $uname in
|
||||
# HP-UX 11.00 (at least) needs this definition to get the
|
||||
# u_short type used by the IP headers...
|
||||
OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
|
||||
|
||||
# HP-UX 11.23 (at least) needs this definition to get the
|
||||
# IPv6 header to work...
|
||||
OPTIM="$OPTIM -D_HPUX_SOURCE"
|
||||
;;
|
||||
|
||||
OSF*)
|
||||
@@ -439,5 +435,5 @@ case $uname in
|
||||
esac
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-compiler.m4 6448 2007-04-10 18:24:19Z mike $".
|
||||
dnl End of "$Id: cups-compiler.m4 6145 2006-12-06 20:10:16Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-defaults.m4 6525 2007-05-08 18:56:05Z mike $"
|
||||
dnl "$Id: cups-defaults.m4 6234 2007-02-05 20:25:50Z mike $"
|
||||
dnl
|
||||
dnl Default cupsd configuration settings for the Common UNIX Printing System
|
||||
dnl (CUPS).
|
||||
@@ -24,12 +24,11 @@ dnl WWW: http://www.cups.org
|
||||
dnl
|
||||
|
||||
dnl Default langugages...
|
||||
AC_ARG_WITH(languages, [ --with-languages set installed languages,
|
||||
default="de es et fr it ja pl sv zh_TW" ],
|
||||
AC_ARG_WITH(languages, [ --with-languages set installed languages, default="de es et fr it ja pl sv" ],
|
||||
if test "x$withval" != xno; then
|
||||
LANGUAGES="$withval"
|
||||
fi,
|
||||
LANGUAGES="de es et fr it ja pl sv zh_TW")
|
||||
LANGUAGES="de es et fr it ja pl sv")
|
||||
AC_SUBST(LANGUAGES)
|
||||
|
||||
dnl Default ConfigFilePerm
|
||||
@@ -253,5 +252,5 @@ fi
|
||||
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-defaults.m4 6525 2007-05-08 18:56:05Z mike $".
|
||||
dnl End of "$Id: cups-defaults.m4 6234 2007-02-05 20:25:50Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-directories.m4 6353 2007-03-19 06:04:35Z mike $"
|
||||
dnl "$Id: cups-directories.m4 6333 2007-03-12 20:49:13Z mike $"
|
||||
dnl
|
||||
dnl Directory stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -148,7 +148,7 @@ if test x$rcdir = x; then
|
||||
fi
|
||||
;;
|
||||
|
||||
FreeBSD* | OpenBSD* | MirBSD* | ekkoBSD*)
|
||||
FreeBSD* | OpenBSD* | MirBsD* | ekkoBSD*)
|
||||
# FreeBSD and OpenBSD
|
||||
;;
|
||||
|
||||
@@ -343,5 +343,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
|
||||
AC_SUBST(CUPS_STATEDIR)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-directories.m4 6353 2007-03-19 06:04:35Z mike $".
|
||||
dnl End of "$Id: cups-directories.m4 6333 2007-03-12 20:49:13Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1508,13 +1508,14 @@ _cupsAdminSetServerSettings(
|
||||
}
|
||||
}
|
||||
else if (!in_policy && !in_location &&
|
||||
(val = cupsGetOption(line, num_settings, settings)) != NULL)
|
||||
(val = cupsGetOption(line, num_settings, settings)) != NULL &&
|
||||
!cupsGetOption(line, cupsd_num_settings, cupsd_settings))
|
||||
{
|
||||
/*
|
||||
* Replace this directive's value with the new one...
|
||||
* Add this directive to the list of directives we have written...
|
||||
*/
|
||||
|
||||
cupsd_num_settings = cupsAddOption(line, val, cupsd_num_settings,
|
||||
cupsd_num_settings = cupsAddOption(line, value, cupsd_num_settings,
|
||||
&cupsd_settings);
|
||||
|
||||
/*
|
||||
@@ -1522,7 +1523,7 @@ _cupsAdminSetServerSettings(
|
||||
* only support setting root directives, not in sections...
|
||||
*/
|
||||
|
||||
cupsFilePrintf(temp, "%s %s\n", line, val);
|
||||
cupsFilePrintf(temp, "%s %s\n", line, value);
|
||||
}
|
||||
else if (value)
|
||||
{
|
||||
@@ -1728,8 +1729,8 @@ _cupsAdminSetServerSettings(
|
||||
cupsd_num_settings, &cupsd_settings);
|
||||
|
||||
/*
|
||||
* Write the new value, without indentation since we only support
|
||||
* setting root directives, not in sections...
|
||||
* Write the new value in its place, without indentation since we
|
||||
* only support setting root directives, not in sections...
|
||||
*/
|
||||
|
||||
cupsFilePrintf(temp, "%s %s\n", setting->name, setting->value);
|
||||
|
||||
@@ -68,10 +68,10 @@ extern "C" {
|
||||
* Constants...
|
||||
*/
|
||||
|
||||
# define CUPS_VERSION 1.0211
|
||||
# define CUPS_VERSION 1.0209
|
||||
# define CUPS_VERSION_MAJOR 1
|
||||
# define CUPS_VERSION_MINOR 2
|
||||
# define CUPS_VERSION_PATCH 11
|
||||
# define CUPS_VERSION_PATCH 9
|
||||
# define CUPS_DATE_ANY -1
|
||||
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ static const _ipp_option_t ipp_options[] =
|
||||
{ "notify-lease-duration", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-natural-language", IPP_TAG_LANGUAGE, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-pull-method", IPP_TAG_KEYWORD, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-recipient-uri", IPP_TAG_URI, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-recipient", IPP_TAG_URI, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-time-interval", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION },
|
||||
{ "notify-user-data", IPP_TAG_STRING, IPP_TAG_SUBSCRIPTION },
|
||||
{ "number-up", IPP_TAG_INTEGER, IPP_TAG_JOB },
|
||||
|
||||
@@ -603,7 +603,7 @@ cupsLangGet(const char *language) /* I - Language or locale */
|
||||
pthread_mutex_lock(&lang_mutex);
|
||||
#endif /* HAVE_PTHREAD_H */
|
||||
|
||||
if ((lang = cups_cache_lookup(real, encoding)) != NULL)
|
||||
if ((lang = cups_cache_lookup(langname, encoding)) != NULL)
|
||||
{
|
||||
#ifdef HAVE_PTHREAD_H
|
||||
pthread_mutex_unlock(&lang_mutex);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* PPD custom option routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -69,7 +69,6 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
|
||||
ppd_choice_t *choice; /* Current choice */
|
||||
ppd_coption_t *coption; /* Current custom option */
|
||||
ppd_cparam_t *cparam; /* Current custom parameter */
|
||||
ppd_attr_t *attr; /* Current attribute */
|
||||
cups_lang_t *lang; /* Current language */
|
||||
char ckeyword[PPD_MAX_NAME], /* Custom keyword */
|
||||
ll_CC[6], /* Language + country locale */
|
||||
@@ -96,32 +95,6 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
|
||||
strlcpy(ll_CC, lang->language, sizeof(ll_CC));
|
||||
strlcpy(ll, lang->language, sizeof(ll));
|
||||
|
||||
if (strlen(ll_CC) == 2)
|
||||
{
|
||||
/*
|
||||
* Map "ll" to primary/origin country locales to have the best
|
||||
* chance of finding a match...
|
||||
*/
|
||||
|
||||
if (!strcmp(ll_CC, "cs"))
|
||||
strcpy(ll_CC, "cs_CZ");
|
||||
else if (!strcmp(ll_CC, "en"))
|
||||
strcpy(ll_CC, "en_US");
|
||||
else if (!strcmp(ll_CC, "ja"))
|
||||
strcpy(ll_CC, "ja_JP");
|
||||
else if (!strcmp(ll_CC, "sv"))
|
||||
strcpy(ll_CC, "sv_SE");
|
||||
else if (!strcmp(ll_CC, "zh"))
|
||||
strcpy(ll_CC, "zh_CN"); /* Simplified Chinese */
|
||||
else
|
||||
{
|
||||
ll_CC[2] = '_';
|
||||
ll_CC[3] = toupper(ll_CC[0] & 255);
|
||||
ll_CC[4] = toupper(ll_CC[1] & 255);
|
||||
ll_CC[5] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG_printf((" lang->language=\"%s\", ll=\"%s\", ll_CC=\"%s\"...\n",
|
||||
lang->language, ll, ll_CC));
|
||||
|
||||
@@ -178,29 +151,6 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Translate ICC profile names...
|
||||
*/
|
||||
|
||||
if ((attr = ppdFindAttr(ppd, "APCustomColorMatchingName", NULL)) != NULL)
|
||||
{
|
||||
if ((text = ppd_text(ppd, "APCustomColorMatchingName", attr->spec,
|
||||
ll_CC, ll)) != NULL)
|
||||
strlcpy(attr->text, text, sizeof(attr->text));
|
||||
}
|
||||
|
||||
for (attr = ppdFindAttr(ppd, "cupsICCProfile", NULL);
|
||||
attr;
|
||||
attr = ppdFindNextAttr(ppd, "cupsICCProfile", NULL))
|
||||
{
|
||||
cupsArraySave(ppd->sorted_attrs);
|
||||
|
||||
if ((text = ppd_text(ppd, "cupsICCProfile", attr->spec, ll_CC, ll)) != NULL)
|
||||
strlcpy(attr->text, text, sizeof(attr->text));
|
||||
|
||||
cupsArrayRestore(ppd->sorted_attrs);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -233,19 +183,6 @@ ppd_text(ppd_file_t *ppd, /* I - PPD file */
|
||||
{
|
||||
snprintf(lkeyword, sizeof(lkeyword), "%s.%s", ll, keyword);
|
||||
attr = ppdFindAttr(ppd, lkeyword, spec);
|
||||
|
||||
if (!attr && !strcmp(ll, "ja"))
|
||||
{
|
||||
/*
|
||||
* Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
|
||||
* PPD files were incorrectly assigned "jp" as the locale name
|
||||
* instead of "ja". Support both the old (incorrect) and new
|
||||
* locale names for Japanese...
|
||||
*/
|
||||
|
||||
snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
|
||||
attr = ppdFindAttr(ppd, lkeyword, spec);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
@@ -1003,7 +1003,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
for (i = 0, sptr = string; i < 4; i ++)
|
||||
ppd->custom_margins[i] = (float)_cupsStrScand(sptr, &sptr, loc);
|
||||
}
|
||||
else if (!strncmp(keyword, "Custom", 6) && !strcmp(name, "True") && !option)
|
||||
else if (!strncmp(keyword, "Custom", 6) && !strcmp(name, "True"))
|
||||
{
|
||||
DEBUG_puts("Processing Custom option...");
|
||||
|
||||
@@ -1076,34 +1076,6 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
*/
|
||||
|
||||
ppd_add_size(ppd, "Custom");
|
||||
|
||||
if ((option = ppdFindOption(ppd, "PageRegion")) == NULL)
|
||||
{
|
||||
ppd_group_t *gtemp; /* Temporary group */
|
||||
|
||||
if ((gtemp = ppd_get_group(ppd, "General", _("General"), cg,
|
||||
encoding)) == NULL)
|
||||
{
|
||||
DEBUG_puts("Unable to get general group!");
|
||||
|
||||
goto error;
|
||||
}
|
||||
|
||||
option = ppd_get_option(gtemp, "PageRegion");
|
||||
}
|
||||
|
||||
if ((choice = ppd_add_choice(option, "Custom")) == NULL)
|
||||
{
|
||||
DEBUG_puts("Unable to add Custom choice!");
|
||||
|
||||
cg->ppd_status = PPD_ALLOC_ERROR;
|
||||
|
||||
goto error;
|
||||
}
|
||||
|
||||
strlcpy(choice->text, text[0] ? text : _("Custom"),
|
||||
sizeof(choice->text));
|
||||
option = NULL;
|
||||
}
|
||||
}
|
||||
else if (!strcmp(keyword, "LandscapeOrientation"))
|
||||
@@ -1551,10 +1523,10 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
!strcmp(keyword, "NonUIConstraints"))
|
||||
{
|
||||
if (ppd->num_consts == 0)
|
||||
constraint = calloc(2, sizeof(ppd_const_t));
|
||||
constraint = calloc(1, sizeof(ppd_const_t));
|
||||
else
|
||||
constraint = realloc(ppd->consts,
|
||||
(ppd->num_consts + 2) * sizeof(ppd_const_t));
|
||||
(ppd->num_consts + 1) * sizeof(ppd_const_t));
|
||||
|
||||
if (constraint == NULL)
|
||||
{
|
||||
@@ -1715,34 +1687,6 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* For CustomPageSize and InputSlot/ManualFeed, create a duplicate
|
||||
* constraint for PageRegion...
|
||||
*/
|
||||
|
||||
if (!strcasecmp(constraint->option1, "CustomPageSize") &&
|
||||
(!strcasecmp(constraint->option2, "InputSlot") ||
|
||||
!strcasecmp(constraint->option2, "ManualFeed")))
|
||||
{
|
||||
ppd->num_consts ++;
|
||||
|
||||
strcpy(constraint[1].option1, "PageRegion");
|
||||
strcpy(constraint[1].choice1, "Custom");
|
||||
strcpy(constraint[1].option2, constraint->option2);
|
||||
strcpy(constraint[1].choice2, constraint->choice2);
|
||||
}
|
||||
else if (!strcasecmp(constraint->option2, "CustomPageSize") &&
|
||||
(!strcasecmp(constraint->option1, "InputSlot") ||
|
||||
!strcasecmp(constraint->option1, "ManualFeed")))
|
||||
{
|
||||
ppd->num_consts ++;
|
||||
|
||||
strcpy(constraint[1].option1, constraint->option1);
|
||||
strcpy(constraint[1].choice1, constraint->choice1);
|
||||
strcpy(constraint[1].option2, "PageRegion");
|
||||
strcpy(constraint[1].choice2, "Custom");
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle CustomFoo option constraints...
|
||||
*/
|
||||
|
||||
@@ -345,22 +345,19 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
|
||||
|
||||
while ((state = ippRead(http, response)) != IPP_DATA)
|
||||
if (state == IPP_ERROR)
|
||||
{
|
||||
/*
|
||||
* Delete the response...
|
||||
*/
|
||||
|
||||
DEBUG_puts("IPP read error!");
|
||||
ippDelete(response);
|
||||
response = NULL;
|
||||
|
||||
_cupsSetError(IPP_SERVICE_UNAVAILABLE, strerror(errno));
|
||||
|
||||
break;
|
||||
|
||||
if (state == IPP_ERROR)
|
||||
{
|
||||
/*
|
||||
* Delete the response...
|
||||
*/
|
||||
|
||||
DEBUG_puts("IPP read error!");
|
||||
ippDelete(response);
|
||||
response = NULL;
|
||||
|
||||
_cupsSetError(IPP_SERVICE_UNAVAILABLE, strerror(errno));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -266,9 +266,9 @@ _cupsStrFormatd(char *buf, /* I - String */
|
||||
tempptr < tempdec && bufptr < bufend;
|
||||
*bufptr++ = *tempptr++);
|
||||
|
||||
tempptr += declen;
|
||||
tempdec += declen;
|
||||
|
||||
if (*tempptr && bufptr < bufend)
|
||||
if (*tempdec && bufptr < bufend)
|
||||
{
|
||||
*bufptr++ = '.';
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "i18n.h"
|
||||
#include "string.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -45,24 +44,10 @@ int /* O - Exit status */
|
||||
main(int argc, /* I - Number of command-line arguments */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
int i; /* Looping var */
|
||||
int errors = 0; /* Number of errors */
|
||||
cups_lang_t *language; /* Message catalog */
|
||||
cups_lang_t *language2; /* Message catalog */
|
||||
struct lconv *loc; /* Locale data */
|
||||
char buffer[1024]; /* String buffer */
|
||||
double number; /* Number */
|
||||
static const char * const tests[] = /* Test strings */
|
||||
{
|
||||
"1",
|
||||
"-1",
|
||||
"3",
|
||||
"5.125"
|
||||
};
|
||||
|
||||
|
||||
_cupsSetLocale(argv);
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
language = cupsLangDefault();
|
||||
@@ -76,8 +61,6 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
if (language != language2)
|
||||
{
|
||||
errors ++;
|
||||
|
||||
puts("**** ERROR: Language cache did not work! ****");
|
||||
puts("First result from cupsLangGet:");
|
||||
}
|
||||
@@ -97,26 +80,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
printf("Yes = \"%s\"\n", _cupsLangString(language2, "Yes"));
|
||||
}
|
||||
|
||||
loc = localeconv();
|
||||
|
||||
for (i = 0; i < (int)(sizeof(tests) / sizeof(tests[0])); i ++)
|
||||
{
|
||||
number = _cupsStrScand(tests[i], NULL, loc);
|
||||
|
||||
printf("_cupsStrScand(\"%s\") number=%f\n", tests[i], number);
|
||||
|
||||
_cupsStrFormatd(buffer, buffer + sizeof(buffer), number, loc);
|
||||
|
||||
printf("_cupsStrFormatd(%f) buffer=\"%s\"\n", number, buffer);
|
||||
|
||||
if (strcmp(buffer, tests[i]))
|
||||
{
|
||||
errors ++;
|
||||
puts("**** ERROR: Bad formatted number! ****");
|
||||
}
|
||||
}
|
||||
|
||||
return (errors > 0);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,5 +27,3 @@ Name[pl]=Zarządzanie drukowaniem
|
||||
Comment[pl]=Interfejs WWW CUPS
|
||||
Name[it]=Gestione stampa
|
||||
Comment[it]=Interfaccia web di CUPS
|
||||
Name[zh_TW]=印表管理
|
||||
Comment[zh_TW]=CUPS 網頁介面
|
||||
|
||||
@@ -137,3 +137,142 @@ WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
</TABLE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<TITLE>Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
|
||||
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
|
||||
<LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
|
||||
<TR CLASS="header">
|
||||
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
|
||||
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
|
||||
<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
|
||||
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
|
||||
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
</TR>
|
||||
<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
|
||||
|
||||
<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Accueil <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Administration <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Classes <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Documentation/Aide <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Tâches <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Imprimantes <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
</TD></TR>
|
||||
<TR CLASS="page">
|
||||
<TD WIDTH="15"> </TD>
|
||||
<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
|
||||
|
||||
<H2 CLASS="title">Bienvenue !</H2>
|
||||
|
||||
<P>Ces pages Web vous permettent de gérer vos imprimantes et vos tâches
|
||||
d'impression comme d'administrer le système. Cliquez sur les onglets ci-dessus ou
|
||||
sur les boutons ci-dessous pour effectuer une action.</P>
|
||||
|
||||
<P>
|
||||
<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Aide"></A>
|
||||
<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Ajouter une classe"></A>
|
||||
<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Ajouter une imprimante"></A>
|
||||
<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Administrer les classes"></A>
|
||||
<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Administrer les tâches"></A>
|
||||
<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Administrer les imprimantes"></A>
|
||||
<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Administrer le serveur"></A>
|
||||
</P>
|
||||
|
||||
<P><I>Si l'on vous demande de vous identifier, utilisez votre nom d'utilisateur et
|
||||
votre mot de passe UNIX ou bien identifiez-vous en tant que "root".</I></P>
|
||||
|
||||
<H2 CLASS="title">À propos de CUPS</H2>
|
||||
|
||||
<P>
|
||||
<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
|
||||
STYLE="padding-right: 10px;" ALT="Ordinateur content et imprimante">
|
||||
|
||||
<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
|
||||
ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
|
||||
STYLE="padding-left: 10px; padding-bottom: 10px;"
|
||||
ALT="Easy Software Products"></A>
|
||||
|
||||
CUPS propose une interface portable pour l'impression sur les systèmes
|
||||
UNIX<SUP>®</SUP>. Ce logiciel est développé et maintenu par <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</a> afin de promouvoir une solution standard pour l'impression. CUPS
|
||||
est le système d'impression standard de MacOS<SUP>®</SUP> X et de la
|
||||
plupart des distributions Linux<SUP>®</SUP>.</P>
|
||||
|
||||
<P>CUPS repose sur le protocole <A HREF="http://www.pwg.org/ipp/"
|
||||
TARGET="_blank">IPP ( Internet Printing Protocol )</A> pour la gestion des tâches
|
||||
d'impression et, pour être utilisable en pratique, y ajoute la détection
|
||||
d'imprimantes en réseau et des options d'impression fondées sur le format PPD (
|
||||
PostScript Printer Description ).<BR CLEAR="ALL"></P>
|
||||
|
||||
<H2 CLASS="title">Pilotes d'imprimante et Assistance</H2>
|
||||
|
||||
<P>Visitez le site officiel de CUPS pour avoir des pilotes d'imprimante ou toute
|
||||
autre assistance:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
|
||||
</PRE>
|
||||
|
||||
<P>Vous pouvez obtenir un suivi commercial et une version améliorée de CUPS, <A
|
||||
HREF="http://www.easysw.com/printpro/">ESP Print Pro</A>, à l'adresse suivante:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
|
||||
</PRE>
|
||||
|
||||
</TD>
|
||||
<TD WIDTH="15"> </TD>
|
||||
</TR>
|
||||
<TR CLASS="header">
|
||||
<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
|
||||
WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
|
||||
|
||||
<P><SMALL>Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont
|
||||
propriété commerciale de <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</A>. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous
|
||||
Droits Réservés.</SMALL></P>
|
||||
|
||||
</TD>
|
||||
|
||||
<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
|
||||
WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
"$Id: spec-ppd.html 6458 2007-04-17 19:22:41Z mike $"
|
||||
"$Id: spec-ppd.html 6158 2006-12-17 01:44:21Z mike $"
|
||||
|
||||
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
|
||||
|
||||
@@ -204,13 +204,13 @@ http://www.vendor.com/help"
|
||||
|
||||
<p>This attribute describes which language localizations are
|
||||
included in the PPD. The "locale list" string is a space-delimited
|
||||
list of locale names ("en", "en_US", "fr_CA", etc.)</p>
|
||||
list of locale names ("en", "en_US", "fr_FR", etc.)</p>
|
||||
|
||||
<p>Example:</p>
|
||||
|
||||
<pre class='command'>
|
||||
<em>*% Specify Canadian, UK, and US English, and Candian and French French</em>
|
||||
*cupsLanguages: "en_CA en_UK en_US fr_CA fr_CA"
|
||||
*cupsLanguages: "en_CA en_UK en_US fr_CA fr_FR"
|
||||
</pre>
|
||||
|
||||
<h3>cupsManualCopies</h3>
|
||||
@@ -540,10 +540,7 @@ languages by following the following additional rules:</p>
|
||||
<li>Localizations are specified using a locale prefix of
|
||||
the form "ll" or "ll_CC." where "ll" is the 2-letter ISO
|
||||
language code and "CC" is the 2-letter ISO country
|
||||
code<ul>
|
||||
<li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li>
|
||||
<li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li>
|
||||
</ul></li>
|
||||
code</li>
|
||||
|
||||
<li>Locale-specific translation strings MUST be encoded
|
||||
using UTF-8.</li>
|
||||
@@ -580,17 +577,17 @@ in the PPD file for a given locale.</blockquote>
|
||||
<pre class='command'>
|
||||
*LanguageVersion: English
|
||||
*LanguageEncoding: ISOLatin1
|
||||
*cupsLanguages: "de fr_CA"
|
||||
*cupsLanguages: "de_DE fr_FR"
|
||||
*ModelName: "Foobar Laser 9999"
|
||||
|
||||
<em>*% Localize ModelName for French and German</em>
|
||||
*fr_CA.Translation ModelName/La Foobar Laser 9999: ""
|
||||
*de.Translation ModelName/Foobar LaserDrucken 9999: ""
|
||||
*fr_FR.Translation ModelName/La Foobar Laser 9999: ""
|
||||
*de_DE.Translation ModelName/Foobar LaserDrucken 9999: ""
|
||||
|
||||
*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
|
||||
<em>*% Localize printer-state-reason for French and German</em>
|
||||
*fr_CA.cupsIPPReason com.vendor-error/Une erreur sèrieuse s'est produite: "/help/com.vendor/error.html"
|
||||
*de.cupsIPPReason com.vendor-error/Eine ernste Störung trat: "/help/com.vendor/error.html"
|
||||
*fr_FR.cupsIPPReason com.vendor-error/Une erreur sèrieuse s'est produite: "/help/com.vendor/error.html"
|
||||
*de_DE.cupsIPPReason com.vendor-error/Eine ernste Störung trat: "/help/com.vendor/error.html"
|
||||
|
||||
...
|
||||
|
||||
@@ -598,16 +595,16 @@ in the PPD file for a given locale.</blockquote>
|
||||
*OrderDependency: 10 AnySetup *InputSlot
|
||||
*DefaultInputSlot: Auto
|
||||
<em>*% Localize InputSlot for French and German</em>
|
||||
*fr_CA.Translation InputSlot/Papier source: ""
|
||||
*de.Translation InputSlot/Papiereinzug: ""
|
||||
*fr_FR.Translation InputSlot/Papier source: ""
|
||||
*de_DE.Translation InputSlot/Papiereinzug: ""
|
||||
*InputSlot Auto/Default: "<</ManualFeed false>>setpagedevice"
|
||||
<em>*% Localize InputSlot=Auto for French and German</em>
|
||||
*fr_CA.InputSlot Auto/Par Defaut: ""
|
||||
*de.InputSlot Auto/Standard: ""
|
||||
*fr_FR.InputSlot Auto/Par Defaut: ""
|
||||
*de_DE.InputSlot Auto/Standard: ""
|
||||
*InputSlot Manual/Manual Feed: "<</ManualFeed true>>setpagedevice"
|
||||
<em>*% Localize InputSlot=Manual for French and German</em>
|
||||
*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: ""
|
||||
*de.InputSlot Manual/Manueller Einzug: ""
|
||||
*fr_FR.InputSlot Manual/Manuel mecanisme de alimentation: ""
|
||||
*de_DE.InputSlot Manual/Manueller Einzug: ""
|
||||
*CloseUI: *InputSlot
|
||||
</pre>
|
||||
|
||||
|
||||
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 775 B |
|
Antes Largura: | Altura: | Tamanho: 1.2 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.8 KiB |
|
Antes Largura: | Altura: | Tamanho: 749 B |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.7 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 764 B |
|
Antes Largura: | Altura: | Tamanho: 1.8 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.7 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.3 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.4 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.8 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.7 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.7 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.7 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.6 KiB |
@@ -1,137 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<TITLE>首頁 - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
|
||||
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
|
||||
<LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
|
||||
<TR CLASS="header">
|
||||
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
|
||||
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
|
||||
<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
|
||||
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
|
||||
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
</TR>
|
||||
<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
|
||||
|
||||
<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 首頁 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 管理 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 分類 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 文件/求助 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 工作 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> 印表機 <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
</TD></TR>
|
||||
<TR CLASS="page">
|
||||
<TD WIDTH="15"> </TD>
|
||||
<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
|
||||
|
||||
<H2 CLASS="title">歡迎!</H2>
|
||||
|
||||
<P>此處的網頁讓您監看您的印表機和工作,以及
|
||||
進行系統管理任務。按下上方任何的分頁頁標或是
|
||||
下方的按鈕,以執行某個作業。</P>
|
||||
|
||||
<P>
|
||||
<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="求助"></A>
|
||||
<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="增加分類"></A>
|
||||
<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="增加印表機"></A>
|
||||
<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="管理分類"></A>
|
||||
<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="管理工作"></A>
|
||||
<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="管理印表機"></A>
|
||||
<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="管理伺服器"></A>
|
||||
</P>
|
||||
|
||||
<P><I>如果向您要求使用者名稱與密碼,請輸入
|
||||
您的使用者名稱與密碼,或是 "root" 的使用者名稱與密碼。</I></P>
|
||||
|
||||
<H2 CLASS="title">關於 CUPS</H2>
|
||||
|
||||
<P>
|
||||
<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
|
||||
STYLE="padding-right: 10px;" ALT="快樂的電腦與印表機">
|
||||
|
||||
<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
|
||||
ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
|
||||
STYLE="padding-left: 10px; padding-bottom: 10px;"
|
||||
ALT="Easy Software Products"></A>
|
||||
|
||||
CUPS 提供以 UNIX<SUP>®</SUP> 為基礎的作業系統
|
||||
一層具有可攜性的列印介面。它是由 <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</a> 為了推動一個標準的列印解決方案所開發與維護。CUPS 是目前用於
|
||||
MacOS<SUP>®</SUP> X 與大部份 Linux<SUP>®</SUP> 發行版本的標準列印系統。</P>
|
||||
|
||||
<P>CUPS 使用 <A HREF="http://www.pwg.org/ipp/"
|
||||
TARGET="_blank"> Internet Printing Protocol ("IPP")</A> 做為
|
||||
管理列印工作與佇列的基礎,並且加入瀏覽網路印表機和基於
|
||||
PostScript Printer Description ("PPD") 的列印選項,
|
||||
以支援真實世界中的列印。<BR CLEAR="ALL"></P>
|
||||
|
||||
<H2 CLASS="title">印表機驅動程式與協助</H2>
|
||||
|
||||
<P>造訪 CUPS 的官方網站以獲得印表機驅動程式與協助:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
|
||||
</PRE>
|
||||
|
||||
<P>CUPS 的商業支援與進階版本名為 <A
|
||||
HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> 是提供自:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
|
||||
</PRE>
|
||||
|
||||
</TD>
|
||||
<TD WIDTH="15"> </TD>
|
||||
</TR>
|
||||
<TR CLASS="header">
|
||||
<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
|
||||
WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
|
||||
|
||||
<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the
|
||||
trademark property of <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</A>. CUPS is copyright 1997-2007 by Easy Software Products,
|
||||
All Rights Reserved.</SMALL></P>
|
||||
|
||||
</TD>
|
||||
|
||||
<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
|
||||
WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -248,7 +248,7 @@ cupsRasterInterpretPPD(
|
||||
{
|
||||
float sc = atof(val);
|
||||
|
||||
if (sc >= 0.5 && sc <= 2.0)
|
||||
if (sc >= 0.9 && sc <= 1.1)
|
||||
h->cupsBorderlessScalingFactor = sc;
|
||||
}
|
||||
|
||||
|
||||
@@ -1245,9 +1245,7 @@ copy_page(cups_file_t *fp, /* I - File to read from */
|
||||
pageinfo->num_options = cupsAddOption("InputSlot", doc->ap_input_slot,
|
||||
pageinfo->num_options,
|
||||
&(pageinfo->options));
|
||||
pageinfo->num_options = cupsAddOption("ManualFeed",
|
||||
doc->ap_input_slot ? "False" :
|
||||
doc->ap_manual_feed,
|
||||
pageinfo->num_options = cupsAddOption("ManualFeed", doc->ap_manual_feed,
|
||||
pageinfo->num_options,
|
||||
&(pageinfo->options));
|
||||
}
|
||||
@@ -1260,9 +1258,7 @@ copy_page(cups_file_t *fp, /* I - File to read from */
|
||||
pageinfo->num_options = cupsAddOption("InputSlot", doc->input_slot,
|
||||
pageinfo->num_options,
|
||||
&(pageinfo->options));
|
||||
pageinfo->num_options = cupsAddOption("ManualFeed",
|
||||
doc->input_slot ? "False" :
|
||||
doc->manual_feed,
|
||||
pageinfo->num_options = cupsAddOption("ManualFeed", doc->manual_feed,
|
||||
pageinfo->num_options,
|
||||
&(pageinfo->options));
|
||||
}
|
||||
@@ -1541,7 +1537,7 @@ copy_page(cups_file_t *fp, /* I - File to read from */
|
||||
if (doc->number_up > 1 || doc->fitplot)
|
||||
continue;
|
||||
}
|
||||
else if (!strncmp(line, "%%EndFeature", 12))
|
||||
else if (!strncmp(line, "%%EndFeature:", 13))
|
||||
{
|
||||
feature = 0;
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
##
|
||||
# PrintingServices - a.k.a. CUPS
|
||||
##
|
||||
|
||||
. /etc/rc.common
|
||||
|
||||
StartService ()
|
||||
{
|
||||
ConsoleMessage "Starting printing services"
|
||||
launchctl start org.cups.cupsd
|
||||
}
|
||||
|
||||
StopService ()
|
||||
{
|
||||
ConsoleMessage "Stopping printing services"
|
||||
launchctl stop org.cups.cupsd
|
||||
}
|
||||
|
||||
RestartService ()
|
||||
{
|
||||
ConsoleMessage "Restarting printing services"
|
||||
launchctl stop org.cups.cupsd
|
||||
launchctl start org.cups.cupsd
|
||||
}
|
||||
|
||||
RunService "$1"
|
||||
@@ -141,7 +141,7 @@ unset TMPDIR
|
||||
# provide a standard path on boot-up...
|
||||
#
|
||||
|
||||
if test "x$PATH" = x; then
|
||||
if "x$PATH" = x; then
|
||||
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
|
||||
else
|
||||
PATH="/bin:/usr/bin:/sbin:/usr/sbin:$PATH"
|
||||
|
||||
@@ -6,21 +6,13 @@
|
||||
<string>org.cups.cupsd</string>
|
||||
<key>OnDemand</key>
|
||||
<true/>
|
||||
<key>KeepAlive</key>
|
||||
<dict>
|
||||
<key>PathState</key>
|
||||
<dict>
|
||||
<key>/private/var/spool/cups/cache/org.cups.cupsd</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>RunAtLoad</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/sbin/cupsd</string>
|
||||
<string>-l</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>ServiceIPC</key>
|
||||
<true/>
|
||||
<key>Sockets</key>
|
||||
@@ -29,13 +21,7 @@
|
||||
<array>
|
||||
<dict>
|
||||
<key>SockNodeName</key>
|
||||
<string>::1</string>
|
||||
<key>SockServiceName</key>
|
||||
<string>ipp</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>SockNodeName</key>
|
||||
<string>127.0.0.1</string>
|
||||
<string>localhost</string>
|
||||
<key>SockServiceName</key>
|
||||
<string>ipp</string>
|
||||
</dict>
|
||||
|
||||
@@ -128,9 +128,6 @@
|
||||
%subpackage sv
|
||||
%description Swedish support
|
||||
|
||||
%subpackage zh
|
||||
%description Chinese support
|
||||
|
||||
%subpackage
|
||||
|
||||
|
||||
@@ -377,8 +374,6 @@ f 0644 root sys $LOCALEDIR/ja/cups_ja.po locale/cups_ja.po
|
||||
f 0644 root sys $LOCALEDIR/pl/cups_pl.po locale/cups_pl.po
|
||||
%subpackage sv
|
||||
f 0644 root sys $LOCALEDIR/sv/cups_sv.po locale/cups_sv.po
|
||||
%subpackage zh
|
||||
f 0644 root sys $LOCALEDIR/zh_TW/cups_zh_TW.po locale/cups_zh_TW.po
|
||||
%subpackage
|
||||
|
||||
d 0755 root sys $DATADIR -
|
||||
@@ -433,7 +428,7 @@ d 0755 root sys $DATADIR/model -
|
||||
f 0644 root sys $DATADIR/model ppd/*.ppd
|
||||
|
||||
d 0755 root sys $DATADIR/templates -
|
||||
f 0644 root sys $DATADIR/templates templates/*.tmpl
|
||||
c 0644 root sys $DATADIR/templates templates/*.tmpl
|
||||
|
||||
# Japanese template files
|
||||
%subpackage de
|
||||
@@ -460,9 +455,6 @@ f 0644 root sys $DATADIR/templates/pl templates/pl/*.tmpl
|
||||
%subpackage sv
|
||||
d 0755 root sys $DATADIR/templates/sv
|
||||
f 0644 root sys $DATADIR/templates/sv templates/sv/*.tmpl
|
||||
%subpackage zh
|
||||
d 0755 root sys $DATADIR/templates/zh_TW
|
||||
f 0644 root sys $DATADIR/templates/zh_TW templates/zh_TW/*.tmpl
|
||||
%subpackage
|
||||
|
||||
# Config files
|
||||
@@ -574,11 +566,6 @@ d 0755 root sys $DOCDIR/sv
|
||||
f 0644 root sys $DOCDIR/sv doc/sv/*.html
|
||||
d 0755 root sys $DOCDIR/sv/images -
|
||||
f 0644 root sys $DOCDIR/sv/images doc/sv/images/*.gif
|
||||
%subpackage zh
|
||||
d 0755 root sys $DOCDIR/zh_TW
|
||||
f 0644 root sys $DOCDIR/zh_TW doc/zh_TW/*.html
|
||||
d 0755 root sys $DOCDIR/zh_TW/images -
|
||||
f 0644 root sys $DOCDIR/zh_TW/images doc/zh_TW/images/*.gif
|
||||
%subpackage
|
||||
|
||||
# Man pages
|
||||
@@ -633,26 +620,13 @@ f 0644 root sys $AMANDIR/man$MAN8DIR/cups-lpd.$MAN8EXT man/cups-lpd.$MAN8EXT
|
||||
# Startup scripts
|
||||
%system darwin
|
||||
f 0644 root sys /System/Library/LaunchDaemons/org.cups.cupsd.plist init/org.cups.cupsd.plist
|
||||
d 0755 root sys /System/Library/StartupItems/PrintingServices -
|
||||
f 0644 root sys /System/Library/StartupItems/PrintingServices/PrintingServices init/PrintingServices.launchd
|
||||
f 0644 root sys /System/Library/StartupItems/PrintingServices/StartupParamters.plist init/StartupParameters.plist
|
||||
d 0755 root sys /System/Library/StartupItems/PrintingServices/Resources -
|
||||
d 0755 root sys /System/Library/StartupItems/PrintingServices/Resources/English.lproj -
|
||||
f 0644 root sys /System/Library/StartupItems/PrintingServices/Resources/English.lproj/Localizable.strings init/Localizable.strings
|
||||
%preremove <<EOF
|
||||
launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist || exit 0
|
||||
killall cupsd
|
||||
EOF
|
||||
%postinstall <<EOF
|
||||
rm -f /System/Library/StartupItems/PrintingServices/PrintingServices
|
||||
launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist || exit 0
|
||||
launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
|
||||
launchctl start org.cups.cupsd
|
||||
EOF
|
||||
%subpackage lpd
|
||||
f 0644 root sys /System/Library/LaunchDaemons/org.cups.cups-lpd.plist init/org.cups.cups-lpd.plist
|
||||
%preremove <<EOF
|
||||
launchctl unload /System/Library/LaunchDaemons/org.cups.cups-lpd.plist || exit 0
|
||||
EOF
|
||||
%postinstall <<EOF
|
||||
rm -f /etc/xinetd.d/cups-lpd
|
||||
launchctl unload /System/Library/LaunchDaemons/org.cups.cups-lpd.plist || exit 0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
# Original version by Jason McMullan <jmcc@ontv.com>.
|
||||
#
|
||||
# Copyright 1999-2007 by Easy Software Products, all rights reserved.
|
||||
# Copyright 1999-2006 by Easy Software Products, all rights reserved.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs are the
|
||||
# property of Easy Software Products and are protected by Federal
|
||||
@@ -116,11 +116,6 @@ Summary: Common UNIX Printing System - Swedish support
|
||||
Group: System Environment/Daemons
|
||||
Requires: %{name} = %{epoch}:%{version}
|
||||
|
||||
%package zh
|
||||
Summary: Common UNIX Printing System - Chinese support
|
||||
Group: System Environment/Daemons
|
||||
Requires: %{name} = %{epoch}:%{version}
|
||||
|
||||
%if %{?_with_php:1}%{!?_with_php:0}
|
||||
%package php
|
||||
Summary: Common UNIX Printing System - PHP support
|
||||
@@ -179,10 +174,6 @@ UNIX
|
||||
The Common UNIX Printing System provides a portable printing layer for
|
||||
UNIX® operating systems. This package provides Swedish support.
|
||||
|
||||
%description zh
|
||||
The Common UNIX Printing System provides a portable printing layer for
|
||||
UNIX® operating systems. This package provides Chinese support.
|
||||
|
||||
%if %{?_with_php:1}%{!?_with_php:0}
|
||||
%description php
|
||||
The Common UNIX Printing System provides a portable printing layer for
|
||||
@@ -498,16 +489,6 @@ rm -rf $RPM_BUILD_ROOT
|
||||
/usr/share/cups/templates/sv/*
|
||||
/usr/share/locale/sv/cups_sv.po
|
||||
|
||||
%files zh
|
||||
%defattr(-,root,root)
|
||||
%dir /usr/share/doc/cups/zh_TW
|
||||
/usr/share/doc/cups/zh_TW/index.html
|
||||
%dir /usr/share/doc/cups/zh_TW/images
|
||||
/usr/share/doc/cups/zh_TW/images/*
|
||||
%dir /usr/share/cups/templates/zh_TW
|
||||
/usr/share/cups/templates/zh_TW/*
|
||||
/usr/share/locale/zh_TW/cups_zh_TW.po
|
||||
|
||||
%if %{?_with_php:1}%{!?_with_php:0}
|
||||
%files php
|
||||
# PHP
|
||||
|
||||
@@ -23,12 +23,6 @@
|
||||
#include "Link.h"
|
||||
#include "Catalog.h"
|
||||
|
||||
// This define is used to limit the depth of recursive readPageTree calls
|
||||
// This is needed because the page tree nodes can reference their parents
|
||||
// leaving us in an infinite loop
|
||||
// Most sane pdf documents don't have a call depth higher than 10
|
||||
#define MAX_CALL_DEPTH 1000
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Catalog
|
||||
//------------------------------------------------------------------------
|
||||
@@ -77,7 +71,7 @@ Catalog::Catalog(XRef *xrefA) {
|
||||
pageRefs[i].num = -1;
|
||||
pageRefs[i].gen = -1;
|
||||
}
|
||||
numPages = readPageTree(pagesDict.getDict(), NULL, 0, 0);
|
||||
numPages = readPageTree(pagesDict.getDict(), NULL, 0);
|
||||
if (numPages != numPages0) {
|
||||
error(-1, "Page count in top-level pages object is incorrect");
|
||||
}
|
||||
@@ -175,7 +169,7 @@ GString *Catalog::readMetadata() {
|
||||
return s;
|
||||
}
|
||||
|
||||
int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start, int callDepth) {
|
||||
int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start) {
|
||||
Object kids;
|
||||
Object kid;
|
||||
Object kidRef;
|
||||
@@ -220,13 +214,9 @@ int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start, int call
|
||||
// This should really be isDict("Pages"), but I've seen at least one
|
||||
// PDF file where the /Type entry is missing.
|
||||
} else if (kid.isDict()) {
|
||||
if (callDepth > MAX_CALL_DEPTH) {
|
||||
error(-1, "Limit of %d recursive calls reached while reading the page tree. If your document is correct and not a test to try to force a crash, please report a bug.", MAX_CALL_DEPTH);
|
||||
} else {
|
||||
if ((start = readPageTree(kid.getDict(), attrs1, start, callDepth + 1))
|
||||
< 0)
|
||||
goto err2;
|
||||
}
|
||||
if ((start = readPageTree(kid.getDict(), attrs1, start))
|
||||
< 0)
|
||||
goto err2;
|
||||
} else {
|
||||
error(-1, "Kid object (page %d) is wrong type (%s)",
|
||||
start+1, kid.getTypeName());
|
||||
|
||||
@@ -85,7 +85,7 @@ private:
|
||||
Object acroForm; // AcroForm dictionary
|
||||
GBool ok; // true if catalog is valid
|
||||
|
||||
int readPageTree(Dict *pages, PageAttrs *attrs, int start, int callDepth);
|
||||
int readPageTree(Dict *pages, PageAttrs *attrs, int start);
|
||||
Object *findDestInTree(Object *tree, GString *name, Object *obj);
|
||||
};
|
||||
|
||||
|
||||
@@ -1159,14 +1159,7 @@ void PSOutputDev::writeHeader(int firstPage, int lastPage,
|
||||
}
|
||||
|
||||
// Tell CUPS pstops filter not to do its own rotation...
|
||||
int cups_rotate = 0;
|
||||
int width = (int)ceil(mediaBox->x2 - mediaBox->x1);
|
||||
int height = (int)ceil(mediaBox->y2 - mediaBox->y1);
|
||||
int imgWidth = (int)ceil(cropBox->x2 - cropBox->x1);
|
||||
|
||||
if (width > height && width > imgWidth) cups_rotate = 90;
|
||||
|
||||
writePSFmt("%%cupsRotation: %d\n", cups_rotate);
|
||||
writePSFmt("%%cupsRotation: %d\n", pageRotate);
|
||||
|
||||
writePSFmt("%%Producer: xpdf/pdftops %s\n", xpdfVersion);
|
||||
xref->getDocInfo(&info);
|
||||
@@ -2518,19 +2511,17 @@ GBool PSOutputDev::startPage(int pageNum, GfxState *state) {
|
||||
landscape = gFalse;
|
||||
} else {
|
||||
rotate = (360 - state->getRotate()) % 360;
|
||||
|
||||
fprintf(stderr, "DEBUG: Page rotate=%d, width=%d, height=%d, imgWidth=%d, imgHeight=%d\n",
|
||||
state->getRotate(), width, height, imgWidth, imgHeight);
|
||||
|
||||
if (rotate == 0 || rotate == 180) {
|
||||
if (width > height && width > imgWidth) {
|
||||
if ((width > height && imgWidth < imgHeight) ||
|
||||
(height > width && imgHeight < imgWidth)) {
|
||||
rotate += 90;
|
||||
landscape = gTrue;
|
||||
} else {
|
||||
landscape = gFalse;
|
||||
}
|
||||
} else { // rotate == 90 || rotate == 270
|
||||
if (height > width && height > imgWidth) {
|
||||
if ((width > height && imgWidth < imgHeight) ||
|
||||
(height > width && imgHeight < imgWidth)) {
|
||||
rotate = 270 - rotate;
|
||||
landscape = gTrue;
|
||||
} else {
|
||||
@@ -2538,7 +2529,6 @@ GBool PSOutputDev::startPage(int pageNum, GfxState *state) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
writePSFmt("%%%%PageOrientation: %s\n",
|
||||
landscape ? "Landscape" : "Portrait");
|
||||
writePS("pdfStartPage\n");
|
||||
|
||||
@@ -265,14 +265,6 @@ cupsdFindAvailablePrinter(
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure that the last printer is also a valid index into the printer
|
||||
* array. If not, reset the last printer to 0...
|
||||
*/
|
||||
|
||||
if (c->last_printer >= c->num_printers)
|
||||
c->last_printer = 0;
|
||||
|
||||
/*
|
||||
* Loop through the printers in the class and return the first idle
|
||||
* printer... We keep track of the last printer that we used so that
|
||||
@@ -675,20 +667,7 @@ cupsdLoadAllClasses(void)
|
||||
else if (!strcasecmp(line, "OpPolicy"))
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
cupsd_policy_t *pol; /* Policy */
|
||||
|
||||
|
||||
if ((pol = cupsdFindPolicy(value)) != NULL)
|
||||
{
|
||||
cupsdSetString(&p->op_policy, value);
|
||||
p->op_policy_ptr = pol;
|
||||
}
|
||||
else
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
"Bad policy \"%s\" on line %d of classes.conf",
|
||||
value, linenum);
|
||||
}
|
||||
cupsdSetString(&p->op_policy, value);
|
||||
else
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
|
||||
@@ -3344,9 +3344,9 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */
|
||||
cupsdSetString(&con->command, CUPS_JAVA);
|
||||
|
||||
if (options)
|
||||
cupsdSetStringf(&con->options, " %s %s", filename, options);
|
||||
cupsdSetStringf(&con->options, "%s %s", filename, options);
|
||||
else
|
||||
cupsdSetStringf(&con->options, " %s", filename);
|
||||
cupsdSetString(&con->options, filename);
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2,
|
||||
"is_cgi: Returning 1 with command=\"%s\" and options=\"%s\"",
|
||||
@@ -3365,9 +3365,9 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */
|
||||
cupsdSetString(&con->command, CUPS_PERL);
|
||||
|
||||
if (options)
|
||||
cupsdSetStringf(&con->options, " %s %s", filename, options);
|
||||
cupsdSetStringf(&con->options, "%s %s", filename, options);
|
||||
else
|
||||
cupsdSetStringf(&con->options, " %s", filename);
|
||||
cupsdSetString(&con->options, filename);
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2,
|
||||
"is_cgi: Returning 1 with command=\"%s\" and options=\"%s\"",
|
||||
@@ -3386,9 +3386,9 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */
|
||||
cupsdSetString(&con->command, CUPS_PHP);
|
||||
|
||||
if (options)
|
||||
cupsdSetStringf(&con->options, " %s %s", filename, options);
|
||||
cupsdSetStringf(&con->options, "%s %s", filename, options);
|
||||
else
|
||||
cupsdSetStringf(&con->options, " %s", filename);
|
||||
cupsdSetString(&con->options, filename);
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2,
|
||||
"is_cgi: Returning 1 with command=\"%s\" and options=\"%s\"",
|
||||
@@ -3407,9 +3407,9 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */
|
||||
cupsdSetString(&con->command, CUPS_PYTHON);
|
||||
|
||||
if (options)
|
||||
cupsdSetStringf(&con->options, " %s %s", filename, options);
|
||||
cupsdSetStringf(&con->options, "%s %s", filename, options);
|
||||
else
|
||||
cupsdSetStringf(&con->options, " %s", filename);
|
||||
cupsdSetString(&con->options, filename);
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2,
|
||||
"is_cgi: Returning 1 with command=\"%s\" and options=\"%s\"",
|
||||
@@ -3928,9 +3928,8 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
int envc; /* Number of environment variables */
|
||||
char argbuf[10240], /* Argument buffer */
|
||||
*argv[100], /* Argument strings */
|
||||
*envp[MAX_ENV + 20]; /* Environment variables */
|
||||
char auth_type[256], /* AUTH_TYPE environment variable */
|
||||
content_length[1024], /* CONTENT_LENGTH environment variable */
|
||||
*envp[MAX_ENV + 17]; /* Environment variables */
|
||||
char content_length[1024], /* CONTENT_LENGTH environment variable */
|
||||
content_type[1024], /* CONTENT_TYPE environment variable */
|
||||
http_cookie[32768], /* HTTP_COOKIE environment variable */
|
||||
http_user_agent[1024], /* HTTP_USER_AGENT environment variable */
|
||||
@@ -3939,7 +3938,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
remote_addr[1024], /* REMOTE_ADDR environment variable */
|
||||
remote_host[1024], /* REMOTE_HOST environment variable */
|
||||
remote_user[1024], /* REMOTE_USER environment variable */
|
||||
script_filename[1024], /* SCRIPT_FILENAME environment variable */
|
||||
script_name[1024], /* SCRIPT_NAME environment variable */
|
||||
server_name[1024], /* SERVER_NAME environment variable */
|
||||
server_port[1024]; /* SERVER_PORT environment variable */
|
||||
@@ -3992,9 +3990,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
{
|
||||
commptr = argbuf;
|
||||
path_info[0] = '\0';
|
||||
|
||||
if (*commptr == ' ')
|
||||
commptr ++;
|
||||
}
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_INFO, "commptr=\"%s\"", commptr);
|
||||
@@ -4069,17 +4064,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
* Setup the environment variables as needed...
|
||||
*/
|
||||
|
||||
if (con->username[0])
|
||||
{
|
||||
snprintf(auth_type, sizeof(auth_type), "AUTH_TYPE=%s",
|
||||
httpGetField(HTTP(con), HTTP_FIELD_AUTHORIZATION));
|
||||
|
||||
if ((uriptr = strchr(auth_type + 10, ' ')) != NULL)
|
||||
*uriptr = '\0';
|
||||
}
|
||||
else
|
||||
auth_type[0] = '\0';
|
||||
|
||||
if (con->language)
|
||||
snprintf(lang, sizeof(lang), "LANG=%s.UTF-8", con->language->language);
|
||||
else
|
||||
@@ -4096,9 +4080,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
if ((uriptr = strchr(script_name, '?')) != NULL)
|
||||
*uriptr = '\0';
|
||||
|
||||
snprintf(script_filename, sizeof(script_filename), "SCRIPT_FILENAME=%s%s",
|
||||
DocumentRoot, script_name + 12);
|
||||
|
||||
sprintf(server_port, "SERVER_PORT=%d", con->serverport);
|
||||
|
||||
snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s",
|
||||
@@ -4106,18 +4087,13 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
envc = cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));
|
||||
|
||||
if (auth_type[0])
|
||||
envp[envc ++] = auth_type;
|
||||
|
||||
envp[envc ++] = lang;
|
||||
envp[envc ++] = "REDIRECT_STATUS=1";
|
||||
envp[envc ++] = "GATEWAY_INTERFACE=CGI/1.1";
|
||||
envp[envc ++] = server_name;
|
||||
envp[envc ++] = server_port;
|
||||
envp[envc ++] = remote_addr;
|
||||
envp[envc ++] = remote_host;
|
||||
envp[envc ++] = script_name;
|
||||
envp[envc ++] = script_filename;
|
||||
|
||||
if (path_info[0])
|
||||
envp[envc ++] = path_info;
|
||||
|
||||
@@ -1146,7 +1146,7 @@ check_permissions(const char *filename, /* I - File/directory name */
|
||||
{
|
||||
if (errno == ENOENT && create_dir)
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG, "Creating missing directory \"%s\"",
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR, "Creating missing directory \"%s\"",
|
||||
filename);
|
||||
|
||||
if (mkdir(filename, mode))
|
||||
@@ -1185,9 +1185,9 @@ check_permissions(const char *filename, /* I - File/directory name */
|
||||
|
||||
if (dir_created || fileinfo.st_uid != user || fileinfo.st_gid != group)
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG, "Repairing ownership of \"%s\"", filename);
|
||||
cupsdLogMessage(CUPSD_LOG_WARN, "Repairing ownership of \"%s\"", filename);
|
||||
|
||||
if (chown(filename, user, group) && !getuid())
|
||||
if (chown(filename, user, group))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
"Unable to change ownership of \"%s\" - %s", filename,
|
||||
@@ -1198,8 +1198,7 @@ check_permissions(const char *filename, /* I - File/directory name */
|
||||
|
||||
if (dir_created || (fileinfo.st_mode & 07777) != mode)
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG, "Repairing access permissions of \"%s\"",
|
||||
filename);
|
||||
cupsdLogMessage(CUPSD_LOG_WARN, "Repairing access permissions of \"%s\"", filename);
|
||||
|
||||
if (chmod(filename, mode))
|
||||
{
|
||||
|
||||
@@ -675,7 +675,7 @@ load_ppds(const char *d, /* I - Actual directory */
|
||||
*language; /* Language code */
|
||||
} languages[] =
|
||||
{
|
||||
{ "chinese", "zh" },
|
||||
{ "chinese", "cn" },
|
||||
{ "danish", "da" },
|
||||
{ "dutch", "nl" },
|
||||
{ "english", "en" },
|
||||
@@ -684,7 +684,7 @@ load_ppds(const char *d, /* I - Actual directory */
|
||||
{ "german", "de" },
|
||||
{ "greek", "el" },
|
||||
{ "italian", "it" },
|
||||
{ "japanese", "ja" },
|
||||
{ "japanese", "jp" },
|
||||
{ "norwegian", "no" },
|
||||
{ "polish", "pl" },
|
||||
{ "portuguese", "pt" },
|
||||
|
||||
@@ -2627,7 +2627,7 @@ send_cups_browse(cupsd_printer_t *p) /* I - Printer to send */
|
||||
{
|
||||
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
|
||||
iface->hostname, iface->port,
|
||||
(p->type & CUPS_PRINTER_CLASS) ? "/classes/%s" :
|
||||
(p->type & CUPS_PRINTER_CLASS) ? "/classes/%s%s" :
|
||||
"/printers/%s",
|
||||
p->name);
|
||||
snprintf(packet, sizeof(packet), "%x %x %s \"%s\" \"%s\" \"%s\" %s\n",
|
||||
|
||||
@@ -1823,7 +1823,7 @@ add_job_subscriptions(
|
||||
|
||||
while (attr && attr->group_tag != IPP_TAG_ZERO)
|
||||
{
|
||||
if (!strcmp(attr->name, "notify-recipient-uri") &&
|
||||
if (!strcmp(attr->name, "notify-recipient") &&
|
||||
attr->value_tag == IPP_TAG_URI)
|
||||
recipient = attr->values[0].string.text;
|
||||
else if (!strcmp(attr->name, "notify-pull-method") &&
|
||||
@@ -4792,7 +4792,7 @@ create_subscription(
|
||||
|
||||
while (attr && attr->group_tag != IPP_TAG_ZERO)
|
||||
{
|
||||
if (!strcmp(attr->name, "notify-recipient-uri") &&
|
||||
if (!strcmp(attr->name, "notify-recipient") &&
|
||||
attr->value_tag == IPP_TAG_URI)
|
||||
{
|
||||
/*
|
||||
@@ -4811,7 +4811,7 @@ create_subscription(
|
||||
resource, sizeof(resource)) < HTTP_URI_OK)
|
||||
{
|
||||
send_ipp_status(con, IPP_NOT_POSSIBLE,
|
||||
_("Bad notify-recipient-uri URI \"%s\"!"), recipient);
|
||||
_("Bad notify-recipient URI \"%s\"!"), recipient);
|
||||
ippAddInteger(con->response, IPP_TAG_SUBSCRIPTION, IPP_TAG_ENUM,
|
||||
"notify-status-code", IPP_URI_SCHEME);
|
||||
return;
|
||||
@@ -4822,7 +4822,7 @@ create_subscription(
|
||||
if (access(notifier, X_OK))
|
||||
{
|
||||
send_ipp_status(con, IPP_NOT_POSSIBLE,
|
||||
_("notify-recipient-uri URI \"%s\" uses unknown scheme!"),
|
||||
_("notify-recipient URI \"%s\" uses unknown scheme!"),
|
||||
recipient);
|
||||
ippAddInteger(con->response, IPP_TAG_SUBSCRIPTION, IPP_TAG_ENUM,
|
||||
"notify-status-code", IPP_URI_SCHEME);
|
||||
@@ -7356,9 +7356,6 @@ renew_subscription(
|
||||
cupsdSaveAllSubscriptions();
|
||||
|
||||
con->response->request.status.status_code = IPP_OK;
|
||||
|
||||
ippAddInteger(con->response, IPP_TAG_SUBSCRIPTION, IPP_TAG_INTEGER,
|
||||
"notify-lease-duration", sub->lease);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -199,11 +199,12 @@ cupsdCancelJob(cupsd_job_t *job, /* I - Job to cancel */
|
||||
|
||||
case IPP_JOB_COMPLETED :
|
||||
/*
|
||||
* Clear the printer's printer-state-message and move on...
|
||||
* Clear the printer's state_message and state_reasons and move on...
|
||||
*/
|
||||
|
||||
printer->state_message[0] = '\0';
|
||||
|
||||
cupsdSetPrinterReasons(printer, "");
|
||||
cupsdSetPrinterState(printer, IPP_PRINTER_IDLE, 0);
|
||||
|
||||
cupsdAddEvent(CUPSD_EVENT_JOB_COMPLETED, printer, job,
|
||||
@@ -372,12 +373,11 @@ cupsdCheckJobs(void)
|
||||
|
||||
pclass = printer;
|
||||
|
||||
if (pclass->state == IPP_PRINTER_STOPPED)
|
||||
printer = NULL;
|
||||
else if (pclass->type & CUPS_PRINTER_REMOTE)
|
||||
break;
|
||||
if (!(pclass->type & CUPS_PRINTER_REMOTE) &&
|
||||
pclass->state != IPP_PRINTER_STOPPED)
|
||||
printer = cupsdFindAvailablePrinter(job->dest);
|
||||
else
|
||||
printer = cupsdFindAvailablePrinter(printer->name);
|
||||
printer = NULL;
|
||||
}
|
||||
|
||||
if (!printer && !pclass)
|
||||
@@ -2839,7 +2839,6 @@ start_job(cupsd_job_t *job, /* I - Job ID */
|
||||
if ((!strcmp(attr->name, "page-label") ||
|
||||
!strcmp(attr->name, "page-border") ||
|
||||
!strncmp(attr->name, "number-up", 9) ||
|
||||
!strcmp(attr->name, "page-ranges") ||
|
||||
!strcmp(attr->name, "page-set") ||
|
||||
!strcasecmp(attr->name, "AP_FIRSTPAGE_InputSlot") ||
|
||||
!strcasecmp(attr->name, "AP_FIRSTPAGE_ManualFeed")) &&
|
||||
@@ -3432,8 +3431,6 @@ start_job(cupsd_job_t *job, /* I - Job ID */
|
||||
cupsdClosePipe(job->status_pipes);
|
||||
cupsdStatBufDelete(job->status_buffer);
|
||||
|
||||
job->status_buffer = NULL;
|
||||
|
||||
cupsArrayDelete(filters);
|
||||
|
||||
if (printer->remote && job->num_files > 1)
|
||||
|
||||