Comparar commits
1 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| ab00dadce7 |
@@ -1,125 +1,6 @@
|
||||
CHANGES.txt - 2006-05-22
|
||||
CHANGES.txt - 2006-04-24
|
||||
------------------------
|
||||
|
||||
CHANGES IN CUPS V1.2.1
|
||||
|
||||
- The web interface did not handle reloads properly for
|
||||
MSIE (STR #1716)
|
||||
- The configure script no longer adds linker rpath
|
||||
options when they are unnecessary.
|
||||
- The scheduler could crash printing a debug message on
|
||||
Solaris (STR #1714)
|
||||
- The --enable-32bit and --enable-64bit configure options
|
||||
did not always work.
|
||||
- The password prompt showed the domain socket address
|
||||
instead of "localhost" for local authentication (STR
|
||||
#1706)
|
||||
- The web interface filtered the list of printers even if
|
||||
the user wasn't logged in (STR #1700)
|
||||
- The IPP backend did not work reliably with some Xerox
|
||||
printers (STR #1704)
|
||||
- Trailing banners were not added when printing a single
|
||||
file (STR #1698)
|
||||
- The web interface support programs crashed on Solaris
|
||||
(STR #1699)
|
||||
- cupstestppd incorrectly reported problems with
|
||||
*1284DeviceID attributes (STR #1710)
|
||||
- Browsing could get disabled after a restart (STR #1670)
|
||||
- Custom page sizes were not parsed properly (STR #1709)
|
||||
- The -U option wasn't supported by lpadmin (STR #1702)
|
||||
- The -u option didn't work with lpadmin (STR #1703)
|
||||
- The scheduler did not create non-blocking back-channel
|
||||
pipes, which caused problems when the printer driver
|
||||
did not read the back-channel data (STR #1705)
|
||||
- The scheduler no longer uses chunking in responses to
|
||||
clients - this caused problems with older versions of
|
||||
CUPS like 1.1.17 (PR #6143)
|
||||
- Automatic raw printing was broken (STR #1667)
|
||||
- 6-up printing was broken (STR #1697)
|
||||
- The pstops filter did not disable CTRL-D processing on
|
||||
the printer/RIP.
|
||||
- ppdOpen*() did not load custom options properly (STR
|
||||
#1680)
|
||||
- "Set Printer Options" in the web interface did not
|
||||
update the DefaultImageableArea or
|
||||
DefaultPaperDimension attributes in the PPD file (STR
|
||||
#1689)
|
||||
- Fixed compile errors (STR #1682, STR #1684, STR #1685,
|
||||
STR #1690)
|
||||
- The lpstat command displayed the wrong error message
|
||||
for a missing destination (STR #1683)
|
||||
- Revised and completed the Polish translation (STR
|
||||
#1669)
|
||||
- Stopped jobs did not show up in the list of active jobs
|
||||
(STR #1676)
|
||||
- The configure script did not use the GNU TLS
|
||||
"libgnutls-config" script to find the proper compiler
|
||||
and linker options.
|
||||
- The imagetoraster filter did not correctly generate
|
||||
several 1, 2, and 4-bit color modes.
|
||||
- cupsRasterWritePixels() could lose track of the current
|
||||
output row.
|
||||
- cupsRasterReadPixels() did not automatically swap
|
||||
12/16-bit chunked pixel data.
|
||||
- Moved the private _cups_raster_s structure out of the
|
||||
public header.
|
||||
- Updated the CUPS raster format specification to include
|
||||
encoding rules and colorspace definitions.
|
||||
- The Zebra PPD files had the wrong PostScript code for
|
||||
the "default" option choices.
|
||||
- The imagetoraster filter did not generate correct CIE
|
||||
XYZ or Lab color data.
|
||||
- The cups-config script did not work when invoked from a
|
||||
source directory (STR #1673)
|
||||
- The SNMP backend did not compile on systems that used
|
||||
the getifaddrs emulation functions (STR #1668)
|
||||
|
||||
|
||||
CHANGES IN CUPS V1.2.0
|
||||
|
||||
- Documentation updates (STR #1618, STR #1620, STR #1622,
|
||||
STR #1637)
|
||||
- Static file copy buffers reduced from 64k to 32k to
|
||||
work around bogus MallocDebug library assumptions (STR
|
||||
#1660)
|
||||
- The scheduler did not decode the backend exit code
|
||||
properly (STR #1648)
|
||||
- The MacOS X USB backend did not report the 1284 device ID,
|
||||
nor did it fix device IDs returned by HP printers.
|
||||
- The scheduler started more slowly than 1.1.x with large
|
||||
numbers of printers (STR #1653)
|
||||
- cupsRasterInterpretPPD() didn't support the
|
||||
cupsPreferredBitsPerColor attribute, and imagetoraster
|
||||
didn't use the new API.
|
||||
- The "make test" script did not create all of the necessary
|
||||
subdirectories for testing (STR #1638)
|
||||
- The scheduler did not prevent rotation of logs
|
||||
redirected to /dev/null (STR #1651)
|
||||
- "make test" did not include the SNMP backend in the
|
||||
test environment (STR #1625)
|
||||
- The EPM packaging files did not work (STR #1621)
|
||||
- "Use Default Configuration" inserted a broken
|
||||
configuration file (STR #1624)
|
||||
- Redirects in the web interface did not always preserve
|
||||
the encrypted status of a connection (STR #1603)
|
||||
- Added the Apple "pap" backend.
|
||||
- Added CUPS library to CUPS Image shared library
|
||||
linkage to support Linux --as-needed linker option
|
||||
(STR #1606)
|
||||
- Fixed support for --enable-pie (STR #1609)
|
||||
- The pdftops filter did not validate the length of the
|
||||
encryption key (STR #1608)
|
||||
- Updated the Polish localization.
|
||||
- "Encryption Required" in the cupsd.conf file now only
|
||||
requires encryption when the connection is not over the
|
||||
loopback interface or domain socket.
|
||||
- Printer names containing "+" were not quoted properly in
|
||||
the web interface (STR #1600)
|
||||
- The SNMP backend now reports the make and model in the
|
||||
information string so that the auto-generated printer
|
||||
name is more useful than just an IP address.
|
||||
|
||||
|
||||
CHANGES IN CUPS V1.2rc3
|
||||
|
||||
- The cups-lpd program always did reverse lookups on the
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
INSTALL - CUPS v1.2.0 - 2006-05-08
|
||||
----------------------------------
|
||||
INSTALL - CUPS v1.2rc1 - 2006-03-24
|
||||
-----------------------------------
|
||||
|
||||
This file describes how to compile and install CUPS from source
|
||||
code. For more information on CUPS see the file called
|
||||
|
||||
@@ -130,14 +130,13 @@ DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
|
||||
IMGLIBS = @IMGLIBS@ -lm
|
||||
IMGFILTERS = @IMGFILTERS@
|
||||
LDFLAGS = -L../cups -L../filter $(RC_CFLAGS) $(ARCHFLAGS) \
|
||||
@LDFLAGS@ @PIEFLAGS@ $(OPTIM)
|
||||
@LDFLAGS@ $(OPTIM)
|
||||
LINKCUPS = @LINKCUPS@ $(SSLLIBS)
|
||||
LINKCUPSIMAGE = @LINKCUPSIMAGE@
|
||||
LIBS = $(LINKCUPS) $(COMMONLIBS)
|
||||
OPTIM = @OPTIM@
|
||||
OPTIONS =
|
||||
PAMLIBS = @PAMLIBS@
|
||||
PAP = @PAP@
|
||||
PDFTOPS = @PDFTOPS@
|
||||
PHPDIR = @PHPDIR@
|
||||
SSLFLAGS = @SSLFLAGS@
|
||||
@@ -149,7 +148,6 @@ LAUNCHDLIBS = @LAUNCHDLIBS@
|
||||
#
|
||||
|
||||
ARCH32FLAGS = @ARCH32FLAGS@
|
||||
DSO32FLAGS = @DSO32FLAGS@
|
||||
INSTALL32 = @INSTALL32@
|
||||
LIB32CUPS = @LIB32CUPS@
|
||||
LIB32CUPSIMAGE = @LIB32CUPSIMAGE@
|
||||
@@ -157,7 +155,6 @@ LIB32DIR = $(BUILDROOT)@LIB32DIR@
|
||||
UNINSTALL32 = @UNINSTALL32@
|
||||
|
||||
ARCH64FLAGS = @ARCH64FLAGS@
|
||||
DSO64FLAGS = @DSO64FLAGS@
|
||||
INSTALL64 = @INSTALL64@
|
||||
LIB64CUPS = @LIB64CUPS@
|
||||
LIB64CUPSIMAGE = @LIB64CUPSIMAGE@
|
||||
|
||||
@@ -57,25 +57,6 @@ clean:
|
||||
done
|
||||
|
||||
|
||||
#
|
||||
# Remove all non-distribution files...
|
||||
#
|
||||
|
||||
distclean: clean
|
||||
$(RM) Makedefs config.h config.log config.status
|
||||
$(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/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
|
||||
$(RM) packaging/cups templates/edit-config.tmpl templates/header.tmpl
|
||||
-$(RM) doc/*/index.html
|
||||
-$(RM) templates/*/edit-config.tmpl
|
||||
-$(RM) templates/*/header.tmpl
|
||||
-$(RM) -r autom4te*.cache
|
||||
|
||||
|
||||
#
|
||||
# Make dependencies
|
||||
#
|
||||
@@ -99,8 +80,8 @@ install: installhdrs
|
||||
echo Installing cups-config script...
|
||||
$(INSTALL_DIR) -m 755 $(BINDIR)
|
||||
$(INSTALL_SCRIPT) cups-config $(BINDIR)/cups-config
|
||||
echo Installing startup script...
|
||||
if test "x$(INITDIR)" != x; then \
|
||||
echo Installing init scripts...; \
|
||||
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \
|
||||
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
|
||||
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
|
||||
@@ -115,16 +96,13 @@ install: installhdrs
|
||||
if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
|
||||
if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
|
||||
echo Installing StartupItems files...; \
|
||||
$(INSTALL_SCRIPT) init/PrintingServices $(BUILDROOT)$(INITDDIR)/PrintingServices; \
|
||||
$(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
|
||||
$(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 file...; \
|
||||
$(INSTALL_DATA) init/org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
|
||||
else \
|
||||
echo Installing RC script...; \
|
||||
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
|
||||
fi \
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
README - CUPS v1.2.0 - 2006-05-08
|
||||
---------------------------------
|
||||
README - CUPS v1.2rc1 - 2006-03-24
|
||||
----------------------------------
|
||||
|
||||
Looking for compile instructions? Read the file "INSTALL.txt"
|
||||
instead...
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
include ../Makedefs
|
||||
|
||||
RBACKENDS = ipp lpd
|
||||
UBACKENDS = $(PAP) parallel scsi serial snmp socket usb
|
||||
UBACKENDS = parallel scsi serial snmp socket usb
|
||||
TARGETS = betest test1284 $(RBACKENDS) $(UBACKENDS)
|
||||
OBJS = betest.o ipp.o lpd.o pap.o parallel.o scsi.o \
|
||||
OBJS = betest.o ipp.o lpd.o parallel.o scsi.o \
|
||||
serial.o snmp.o socket.o test1284.o usb.o
|
||||
|
||||
|
||||
@@ -136,15 +136,6 @@ lpd: lpd.o ../cups/$(LIBCUPS)
|
||||
$(CC) $(LDFLAGS) -o lpd lpd.o $(LIBS)
|
||||
|
||||
|
||||
#
|
||||
# pap
|
||||
#
|
||||
|
||||
pap: pap.o ../cups/$(LIBCUPS)
|
||||
echo Linking $@...
|
||||
$(CC) $(LDFLAGS) -o pap pap.o $(BACKLIBS) $(LIBS) -framework AppleTalk
|
||||
|
||||
|
||||
#
|
||||
# parallel
|
||||
#
|
||||
|
||||
@@ -276,7 +276,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
*ptr++ = *optptr++;
|
||||
*ptr = '\0';
|
||||
|
||||
if (*optptr == '+' || *optptr == '&')
|
||||
if (*optptr == '+')
|
||||
optptr ++;
|
||||
}
|
||||
else
|
||||
@@ -1215,7 +1215,7 @@ compress_files(int num_files, /* I - Number of files */
|
||||
*out; /* Output file */
|
||||
struct stat outinfo; /* Output file information */
|
||||
char filename[1024], /* Temporary filename */
|
||||
buffer[32768]; /* Copy buffer */
|
||||
buffer[65536]; /* Copy buffer */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: Compressing %d job files...\n", num_files);
|
||||
|
||||
@@ -590,7 +590,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
|
||||
#endif /* __APPLE__ */
|
||||
size_t nbytes; /* Number of bytes written */
|
||||
off_t tbytes; /* Total bytes written */
|
||||
char buffer[32768]; /* Output buffer */
|
||||
char buffer[65536]; /* Output buffer */
|
||||
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
|
||||
struct sigaction action; /* Actions for POSIX signals */
|
||||
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
|
||||
|
||||
@@ -310,7 +310,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
|
||||
*ptr++ = *options++;
|
||||
*ptr = '\0';
|
||||
|
||||
if (*options == '+' || *options == '&')
|
||||
if (*options == '+')
|
||||
options ++;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1244,7 +1244,7 @@ fix_make_model(
|
||||
const char *old_make_model, /* I - Old make-and-model string */
|
||||
int make_model_size) /* I - Size of new string buffer */
|
||||
{
|
||||
char *mmptr; /* Pointer into make-and-model string */
|
||||
const char *mmptr; /* Pointer into make-and-model string */
|
||||
|
||||
|
||||
/*
|
||||
@@ -1259,7 +1259,7 @@ fix_make_model(
|
||||
* with a single HP manufacturer prefix...
|
||||
*/
|
||||
|
||||
mmptr = (char *)old_make_model + 15;
|
||||
mmptr = old_make_model + 15;
|
||||
|
||||
while (isspace(*mmptr & 255))
|
||||
mmptr ++;
|
||||
@@ -1292,16 +1292,7 @@ fix_make_model(
|
||||
* becomes "Tektronix Phaser 560"...
|
||||
*/
|
||||
|
||||
_cups_strcpy(mmptr, mmptr + 7);
|
||||
}
|
||||
|
||||
if ((mmptr = strchr(make_model, ',')) != NULL)
|
||||
{
|
||||
/*
|
||||
* Drop anything after a trailing comma...
|
||||
*/
|
||||
|
||||
*mmptr = '\0';
|
||||
_cups_strcpy((char *)mmptr, mmptr + 7);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1442,10 +1433,9 @@ list_devices(void)
|
||||
cache;
|
||||
cache = (snmp_cache_t *)cupsArrayNext(Devices))
|
||||
if (cache->uri)
|
||||
printf("network %s \"%s\" \"%s %s\" \"%s\"\n",
|
||||
printf("network %s \"%s\" \"%s\" \"%s\"\n",
|
||||
cache->uri,
|
||||
cache->make_and_model ? cache->make_and_model : "Unknown",
|
||||
cache->make_and_model ? cache->make_and_model : "Unknown",
|
||||
cache->addrname, cache->id ? cache->id : "");
|
||||
}
|
||||
|
||||
|
||||
@@ -228,6 +228,7 @@ static void parse_pserror (char *sockBuffer, int len);
|
||||
|
||||
void list_devices()
|
||||
{
|
||||
puts("direct usb \"Unknown\" \"USB Printer (usb)\"");
|
||||
iterate_printers(list_device_callback, NULL);
|
||||
}
|
||||
|
||||
@@ -441,26 +442,14 @@ static Boolean list_device_callback(void *refcon, io_service_t obj)
|
||||
if (deviceIDString != NULL) {
|
||||
CFStringRef make = NULL, model = NULL, serial = NULL;
|
||||
char uristr[1024], makestr[1024], modelstr[1024], serialstr[1024], optionsstr[1024];
|
||||
char idstr[1024];
|
||||
|
||||
copy_deviceinfo(deviceIDString, &make, &model, &serial);
|
||||
|
||||
modelstr[0] = '/';
|
||||
|
||||
CFStringGetCString(deviceIDString, idstr, sizeof(idstr), kCFStringEncodingUTF8);
|
||||
CFStringGetCString(make, makestr, sizeof(makestr), kCFStringEncodingUTF8);
|
||||
CFStringGetCString(model, &modelstr[1], sizeof(modelstr)-1, kCFStringEncodingUTF8);
|
||||
|
||||
/*
|
||||
* Fix common HP 1284 bug...
|
||||
*/
|
||||
|
||||
if (!strcasecmp(makestr, "Hewlett-Packard"))
|
||||
strcpy(makestr, "HP");
|
||||
|
||||
if (!strncasecmp(modelstr + 1, "hp ", 3))
|
||||
_cups_strcpy(modelstr + 1, modelstr + 4);
|
||||
|
||||
optionsstr[0] = '\0';
|
||||
if (serial != NULL)
|
||||
{
|
||||
@@ -475,8 +464,7 @@ static Boolean list_device_callback(void *refcon, io_service_t obj)
|
||||
httpAssembleURI(HTTP_URI_CODING_ALL, uristr, sizeof(uristr), "usb", NULL, makestr, 0, modelstr);
|
||||
strncat(uristr, optionsstr, sizeof(uristr));
|
||||
|
||||
printf("direct %s \"%s %s\" \"%s %s USB\" \"%s\"\n", uristr, makestr,
|
||||
&modelstr[1], makestr, &modelstr[1], idstr);
|
||||
printf("direct %s \"%s %s\" \"%s\"\n", uristr, makestr, &modelstr[1], &modelstr[1]);
|
||||
|
||||
release_deviceinfo(&make, &model, &serial);
|
||||
CFRelease(deviceIDString);
|
||||
|
||||
@@ -60,7 +60,6 @@ print_device(const char *uri, /* I - Device URI */
|
||||
int argc, /* I - Number of command-line arguments (6 or 7) */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
int usebc; /* Use backchannel path? */
|
||||
int fd; /* USB device */
|
||||
int rbytes; /* Number of bytes read */
|
||||
int wbytes; /* Number of bytes written */
|
||||
@@ -83,14 +82,6 @@ print_device(const char *uri, /* I - Device URI */
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
/*
|
||||
* Disable backchannel data when printing to Canon USB printers - apparently
|
||||
* Canon printers will return the IEEE-1284 device ID over and over and over
|
||||
* when they get a read request...
|
||||
*/
|
||||
|
||||
usebc = strcasecmp(hostname, "Canon") != 0;
|
||||
|
||||
/*
|
||||
* Open the USB port device...
|
||||
*/
|
||||
@@ -247,9 +238,7 @@ print_device(const char *uri, /* I - Device URI */
|
||||
do
|
||||
{
|
||||
FD_ZERO(&input);
|
||||
if (usebc)
|
||||
FD_SET(fd, &input);
|
||||
|
||||
FD_SET(fd, &input);
|
||||
FD_ZERO(&output);
|
||||
FD_SET(fd, &output);
|
||||
}
|
||||
|
||||
@@ -93,8 +93,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
if (!http)
|
||||
{
|
||||
perror("ERROR: Unable to connect to cupsd");
|
||||
fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n",
|
||||
cupsServer() ? cupsServer() : "(null)");
|
||||
fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n", cupsServer());
|
||||
fprintf(stderr, "DEBUG: ippPort()=%d\n", ippPort());
|
||||
fprintf(stderr, "DEBUG: cupsEncryption()=%d\n", cupsEncryption());
|
||||
exit(1);
|
||||
@@ -482,7 +481,7 @@ do_am_class(http_t *http, /* I - HTTP connection */
|
||||
char refresh[1024]; /* Refresh URL */
|
||||
|
||||
cgiFormEncode(uri, name, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=/classes/%s",
|
||||
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=/classes/%s",
|
||||
uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
@@ -535,9 +534,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
};
|
||||
|
||||
|
||||
ptr = cgiGetVariable("DEVICE_URI");
|
||||
fprintf(stderr, "DEBUG: do_am_printer: DEVICE_URI=\"%s\"\n",
|
||||
ptr ? ptr : "(null)");
|
||||
cgiGetVariable("DEVICE_URI"));
|
||||
|
||||
title = cgiText(modify ? _("Modify Printer") : _("Add Printer"));
|
||||
|
||||
@@ -1043,7 +1041,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
"5;/admin/?OP=redirect&URL=/printers/%s", uri);
|
||||
else
|
||||
snprintf(refresh, sizeof(refresh),
|
||||
"5;URL=/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
|
||||
"5;/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
|
||||
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
@@ -1491,9 +1489,7 @@ do_config_printer(http_t *http) /* I - HTTP connection */
|
||||
|
||||
*keyptr = '\0';
|
||||
|
||||
if (!strcmp(keyword, "PageRegion") ||
|
||||
!strcmp(keyword, "PaperDimension") ||
|
||||
!strcmp(keyword, "ImageableArea"))
|
||||
if (!strcmp(keyword, "PageRegion"))
|
||||
var = cgiGetVariable("PageSize");
|
||||
else
|
||||
var = cgiGetVariable(keyword);
|
||||
@@ -1565,7 +1561,7 @@ do_config_printer(http_t *http) /* I - HTTP connection */
|
||||
|
||||
cgiFormEncode(uri, printer, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh),
|
||||
"5;URL=/admin/?OP=redirect&URL=/printers/%s", uri);
|
||||
"5;/admin/?OP=redirect&URL=/printers/%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
cgiStartHTML(title);
|
||||
@@ -1627,7 +1623,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
|
||||
}
|
||||
else
|
||||
{
|
||||
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
|
||||
cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
|
||||
cgiStartHTML(cgiText(_("Change Settings")));
|
||||
cgiCopyTemplateLang("restart.tmpl");
|
||||
}
|
||||
@@ -1721,7 +1717,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
|
||||
}
|
||||
else
|
||||
{
|
||||
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
|
||||
cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
|
||||
|
||||
cgiStartHTML(cgiText(_("Edit Configuration File")));
|
||||
cgiCopyTemplateLang("restart.tmpl");
|
||||
@@ -2482,7 +2478,7 @@ do_printer_op(http_t *http, /* I - HTTP connection */
|
||||
|
||||
cgiRewriteURL(uri, url, sizeof(url), NULL);
|
||||
cgiFormEncode(uri, url, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
cgiStartHTML(title);
|
||||
@@ -2740,8 +2736,7 @@ do_set_allowed_users(http_t *http) /* I - HTTP connection */
|
||||
|
||||
cgiRewriteURL(uri, url, sizeof(url), NULL);
|
||||
cgiFormEncode(uri, url, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s",
|
||||
uri);
|
||||
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
cgiStartHTML(cgiText(_("Set Allowed Users")));
|
||||
@@ -2831,7 +2826,7 @@ do_set_sharing(http_t *http) /* I - HTTP connection */
|
||||
|
||||
cgiRewriteURL(uri, url, sizeof(url), NULL);
|
||||
cgiFormEncode(uri, url, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
|
||||
cgiStartHTML(cgiText(_("Set Publishing")));
|
||||
|
||||
@@ -95,7 +95,8 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* See who is logged in...
|
||||
*/
|
||||
|
||||
user = getenv("REMOTE_USER");
|
||||
if ((user = getenv("REMOTE_USER")) == NULL)
|
||||
user = "guest";
|
||||
|
||||
/*
|
||||
* Connect to the HTTP server...
|
||||
@@ -186,7 +187,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
void
|
||||
show_all_classes(http_t *http, /* I - Connection to server */
|
||||
const char *user) /* I - Username */
|
||||
const char *user) /* I - Username */
|
||||
{
|
||||
int i; /* Looping var */
|
||||
ipp_t *request, /* IPP request */
|
||||
@@ -220,9 +221,8 @@ show_all_classes(http_t *http, /* I - Connection to server */
|
||||
|
||||
request = ippNewRequest(CUPS_GET_CLASSES);
|
||||
|
||||
if (user)
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
|
||||
"requesting-user-name", NULL, user);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
|
||||
"requesting-user-name", NULL, user);
|
||||
|
||||
cgiGetAttributes(request, "classes.tmpl");
|
||||
|
||||
@@ -419,7 +419,7 @@ show_class(http_t *http, /* I - Connection to server */
|
||||
*/
|
||||
|
||||
cgiFormEncode(uri, pclass, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "10;URL=/classes/%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "10;/classes/%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
}
|
||||
|
||||
|
||||
@@ -187,8 +187,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
topic = cgiGetVariable("TOPIC");
|
||||
si = helpSearchIndex(hi, query, topic, helpfile);
|
||||
|
||||
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
|
||||
query ? query : "(null)", topic ? topic : "(null)");
|
||||
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n", query, topic);
|
||||
|
||||
if (si)
|
||||
{
|
||||
|
||||
@@ -175,8 +175,7 @@ cgi_null_passwd(const char *prompt) /* I - Prompt string (unused) */
|
||||
{
|
||||
(void)prompt;
|
||||
|
||||
fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n",
|
||||
prompt ? prompt : "(null)");
|
||||
fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n", prompt);
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@@ -482,7 +482,7 @@ cgiMoveJobs(http_t *http, /* I - Connection to server */
|
||||
{
|
||||
cgiRewriteURL(job_printer_uri, resource, sizeof(resource), NULL);
|
||||
cgiFormEncode(uri, resource, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "2;%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
}
|
||||
|
||||
@@ -598,7 +598,7 @@ cgiPrintTestPage(http_t *http, /* I - Connection to server */
|
||||
*/
|
||||
|
||||
cgiFormEncode(uri, resource, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "2;%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
}
|
||||
|
||||
@@ -774,7 +774,7 @@ cgiSetIPPObjectVars(
|
||||
|
||||
fprintf(stderr, "DEBUG2: cgiSetIPPObjectVars(obj=%p, prefix=\"%s\", "
|
||||
"element=%d)\n",
|
||||
obj, prefix ? prefix : "(null)", element);
|
||||
obj, prefix, element);
|
||||
|
||||
/*
|
||||
* Set common CGI template variables...
|
||||
@@ -977,9 +977,7 @@ cgiSetIPPVars(ipp_t *response, /* I - Response data to be copied... */
|
||||
|
||||
fprintf(stderr, "DEBUG2: cgiSetIPPVars(response=%p, filter_name=\"%s\", "
|
||||
"filter_value=\"%s\", prefix=\"%s\", parent_el=%d)\n",
|
||||
response, filter_name ? filter_name : "(null)",
|
||||
filter_value ? filter_value : "(null)",
|
||||
prefix ? prefix : "(null)", parent_el);
|
||||
response, filter_name, filter_value, prefix, parent_el);
|
||||
|
||||
/*
|
||||
* Set common CGI template variables...
|
||||
|
||||
@@ -98,7 +98,8 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* See who is logged in...
|
||||
*/
|
||||
|
||||
user = getenv("REMOTE_USER");
|
||||
if ((user = getenv("REMOTE_USER")) == NULL)
|
||||
user = "guest";
|
||||
|
||||
/*
|
||||
* Connect to the HTTP server...
|
||||
@@ -286,7 +287,7 @@ print_command(http_t *http, /* I - Connection to server */
|
||||
*/
|
||||
|
||||
cgiFormEncode(uri, resource, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "2;%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
}
|
||||
|
||||
@@ -330,7 +331,7 @@ show_all_printers(http_t *http, /* I - Connection to server */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: show_all_printers(http=%p, user=\"%s\")\n",
|
||||
http, user ? user : "(null)");
|
||||
http, user);
|
||||
|
||||
/*
|
||||
* Show the standard header...
|
||||
@@ -356,9 +357,8 @@ show_all_printers(http_t *http, /* I - Connection to server */
|
||||
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
|
||||
"printer-type-mask", CUPS_PRINTER_CLASS);
|
||||
|
||||
if (user)
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
|
||||
"requesting-user-name", NULL, user);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
|
||||
"requesting-user-name", NULL, user);
|
||||
|
||||
cgiGetAttributes(request, "printers.tmpl");
|
||||
|
||||
@@ -543,7 +543,7 @@ show_printer(http_t *http, /* I - Connection to server */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: show_printer(http=%p, printer=\"%s\")\n",
|
||||
http, printer ? printer : "(null)");
|
||||
http, printer);
|
||||
|
||||
/*
|
||||
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
|
||||
@@ -594,7 +594,7 @@ show_printer(http_t *http, /* I - Connection to server */
|
||||
*/
|
||||
|
||||
cgiFormEncode(uri, printer, sizeof(uri));
|
||||
snprintf(refresh, sizeof(refresh), "10;URL=/printers/%s", uri);
|
||||
snprintf(refresh, sizeof(refresh), "10;/printers/%s", uri);
|
||||
cgiSetVariable("refresh_page", refresh);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
static void cgi_copy(FILE *out, FILE *in, int element, char term,
|
||||
int indent);
|
||||
static void cgi_puts(const char *s, FILE *out);
|
||||
static void cgi_puturi(const char *s, FILE *out);
|
||||
|
||||
|
||||
/*
|
||||
@@ -60,7 +59,7 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: cgiCopyTemplateFile(out=%p, tmpl=\"%s\")\n", out,
|
||||
tmpl ? tmpl : "(null)");
|
||||
tmpl);
|
||||
|
||||
/*
|
||||
* Open the template file...
|
||||
@@ -69,7 +68,7 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
|
||||
if ((in = fopen(tmpl, "r")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
|
||||
tmpl ? tmpl : "(null)", strerror(errno));
|
||||
tmpl, strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -102,8 +101,7 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
|
||||
FILE *in; /* Input file */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n",
|
||||
tmpl ? tmpl : "(null)");
|
||||
fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n", tmpl);
|
||||
|
||||
/*
|
||||
* Convert the language to a locale name...
|
||||
@@ -237,7 +235,6 @@ cgi_copy(FILE *out, /* I - Output file */
|
||||
char outval[1024], /* Formatted output string */
|
||||
compare[1024]; /* Comparison string */
|
||||
int result; /* Result of comparison */
|
||||
int uriencode; /* Encode as URI */
|
||||
|
||||
|
||||
fprintf(stderr, "DEBUG: %*sStarting at file position %ld...\n", indent, "",
|
||||
@@ -256,13 +253,9 @@ cgi_copy(FILE *out, /* I - Output file */
|
||||
* Get a variable name...
|
||||
*/
|
||||
|
||||
uriencode = 0;
|
||||
|
||||
for (s = name; (ch = getc(in)) != EOF;)
|
||||
if (strchr("}]<>=! \t\n", ch))
|
||||
break;
|
||||
else if (s == name && ch == '%')
|
||||
uriencode = 1;
|
||||
else if (s > name && ch == '?')
|
||||
break;
|
||||
else if (s < (name + sizeof(name) - 1))
|
||||
@@ -406,12 +399,7 @@ cgi_copy(FILE *out, /* I - Output file */
|
||||
*/
|
||||
|
||||
if (out)
|
||||
{
|
||||
if (uriencode)
|
||||
cgi_puturi(outptr, out);
|
||||
else
|
||||
cgi_puts(outptr, out);
|
||||
}
|
||||
cgi_puts(outptr, out);
|
||||
|
||||
continue;
|
||||
}
|
||||
@@ -649,26 +637,6 @@ cgi_puts(const char *s, /* I - String to output */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'cgi_puturi()' - Put a URI string to the output file, quoting as needed...
|
||||
*/
|
||||
|
||||
static void
|
||||
cgi_puturi(const char *s, /* I - String to output */
|
||||
FILE *out) /* I - Output file */
|
||||
{
|
||||
while (*s)
|
||||
{
|
||||
if (strchr("%&+ <>#=", *s) || *s & 128)
|
||||
fprintf(out, "%%%02X", *s & 255);
|
||||
else
|
||||
putc(*s, out);
|
||||
|
||||
s ++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* End of "$Id$".
|
||||
*/
|
||||
|
||||
@@ -949,8 +949,7 @@ cgi_passwd(const char *prompt) /* I - Prompt (not used) */
|
||||
{
|
||||
(void)prompt;
|
||||
|
||||
fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n",
|
||||
prompt ? prompt : "(null)");
|
||||
fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n", prompt);
|
||||
|
||||
/*
|
||||
* Send a 401 (unauthorized) status to the server, so it can notify
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-common.m4 5354 2006-03-29 20:55:15Z mike $"
|
||||
dnl
|
||||
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -265,5 +265,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
|
||||
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-common.m4 5354 2006-03-29 20:55:15Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $"
|
||||
dnl "$Id: cups-compiler.m4 5288 2006-03-14 02:38:07Z mike $"
|
||||
dnl
|
||||
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -73,15 +73,12 @@ AC_SUBST(LIB64DIR)
|
||||
AC_SUBST(UNINSTALL64)
|
||||
|
||||
dnl Position-Independent Executable support on Linux and *BSD...
|
||||
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fPIE option, default=no])
|
||||
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fpie option, default=no])
|
||||
|
||||
dnl Update compiler options...
|
||||
CXXLIBS=""
|
||||
AC_SUBST(CXXLIBS)
|
||||
|
||||
PIEFLAGS=""
|
||||
AC_SUBST(PIEFLAGS)
|
||||
|
||||
if test -n "$GCC"; then
|
||||
if test -z "$OPTIM"; then
|
||||
if test "x$with_optim" = x; then
|
||||
@@ -99,13 +96,8 @@ if test -n "$GCC"; then
|
||||
case $uname in
|
||||
Linux*)
|
||||
if test x$enable_pie = xyes; then
|
||||
PIEFLAGS="-pie -fPIE"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test x$enable_pie = xyes; then
|
||||
echo "Sorry, --enable-pie is not supported on this OS!"
|
||||
OPTIM="$OPTIM -fpie"
|
||||
LDFLAGS="$LDFLAGS -pie"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -138,8 +130,8 @@ if test -n "$GCC"; then
|
||||
ARCH32FLAGS="$with_arch32flags"
|
||||
fi
|
||||
INSTALL32="install32bit"
|
||||
LIB32CUPS="32bit/libcups.so.2"
|
||||
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
|
||||
LIB32CUPS="libcups.32.so.2"
|
||||
LIB32CUPSIMAGE="libcupsimage.32.so.2"
|
||||
LIB32DIR="$prefix/lib32"
|
||||
UNINSTALL32="uninstall32bit"
|
||||
|
||||
@@ -162,8 +154,8 @@ if test -n "$GCC"; then
|
||||
ARCH64FLAGS="$with_arch64flags"
|
||||
fi
|
||||
INSTALL64="install64bit"
|
||||
LIB64CUPS="64bit/libcups.so.2"
|
||||
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
|
||||
LIB64CUPS="libcups.64.so.2"
|
||||
LIB64CUPSIMAGE="libcupsimage.64.so.2"
|
||||
LIB64DIR="$prefix/lib64"
|
||||
UNINSTALL64="uninstall64bit"
|
||||
|
||||
@@ -188,8 +180,8 @@ if test -n "$GCC"; then
|
||||
ARCH32FLAGS="$with_arch32flags"
|
||||
fi
|
||||
INSTALL32="install32bit"
|
||||
LIB32CUPS="32bit/libcups.so.2"
|
||||
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
|
||||
LIB32CUPS="libcups.32.so.2"
|
||||
LIB32CUPSIMAGE="libcupsimage.32.so.2"
|
||||
LIB32DIR="$exec_prefix/lib"
|
||||
if test -d /usr/lib32; then
|
||||
LIB32DIR="${LIB32DIR}32"
|
||||
@@ -215,8 +207,8 @@ if test -n "$GCC"; then
|
||||
ARCH64FLAGS="$with_arch64flags"
|
||||
fi
|
||||
INSTALL64="install64bit"
|
||||
LIB64CUPS="64bit/libcups.so.2"
|
||||
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
|
||||
LIB64CUPS="libcups.64.so.2"
|
||||
LIB64CUPSIMAGE="libcupsimage.64.so.2"
|
||||
LIB64DIR="$exec_prefix/lib"
|
||||
if test -d /usr/lib64; then
|
||||
LIB64DIR="${LIB64DIR}64"
|
||||
@@ -244,8 +236,8 @@ if test -n "$GCC"; then
|
||||
ARCH32FLAGS="$with_arch32flags"
|
||||
fi
|
||||
INSTALL32="install32bit"
|
||||
LIB32CUPS="32bit/libcups.so.2"
|
||||
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
|
||||
LIB32CUPS="libcups.32.so.2"
|
||||
LIB32CUPSIMAGE="libcupsimage.32.so.2"
|
||||
LIB32DIR="$exec_prefix/lib/32"
|
||||
UNINSTALL32="uninstall32bit"
|
||||
|
||||
@@ -268,8 +260,8 @@ if test -n "$GCC"; then
|
||||
ARCH64FLAGS="$with_arch64flags"
|
||||
fi
|
||||
INSTALL64="install64bit"
|
||||
LIB64CUPS="64bit/libcups.so.2"
|
||||
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
|
||||
LIB64CUPS="libcups.64.so.2"
|
||||
LIB64CUPSIMAGE="libcupsimage.64.so.2"
|
||||
LIB64DIR="$exec_prefix/lib/64"
|
||||
UNINSTALL64="uninstall64bit"
|
||||
|
||||
@@ -310,11 +302,8 @@ else
|
||||
# Warning 829 is passing constant string as char *
|
||||
CXXFLAGS="+W336,829 $CXXFLAGS"
|
||||
|
||||
if test -z "$with_archflags"; then
|
||||
# Build portable binaries for all HP systems...
|
||||
ARCHFLAGS="+DAportable"
|
||||
else
|
||||
ARCHFLAGS="$with_archflags"
|
||||
if test "x$with_optim" = x; then
|
||||
OPTIM="+DAportable $OPTIM"
|
||||
fi
|
||||
|
||||
if test $PICFLAG = 1; then
|
||||
@@ -342,8 +331,8 @@ else
|
||||
ARCH32FLAGS="$with_arch32flags"
|
||||
fi
|
||||
INSTALL32="install32bit"
|
||||
LIB32CUPS="32bit/libcups.so.2"
|
||||
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
|
||||
LIB32CUPS="libcups.32.so.2"
|
||||
LIB32CUPSIMAGE="libcupsimage.32.so.2"
|
||||
LIB32DIR="$prefix/lib32"
|
||||
UNINSTALL32="uninstall32bit"
|
||||
|
||||
@@ -366,8 +355,8 @@ else
|
||||
ARCH64FLAGS="$with_arch64flags"
|
||||
fi
|
||||
INSTALL64="install64bit"
|
||||
LIB64CUPS="64bit/libcups.so.2"
|
||||
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
|
||||
LIB64CUPS="libcups.64.so.2"
|
||||
LIB64CUPSIMAGE="libcupsimage.64.so.2"
|
||||
LIB64DIR="$prefix/lib64"
|
||||
UNINSTALL64="uninstall64bit"
|
||||
|
||||
@@ -401,8 +390,8 @@ else
|
||||
# binaries with separate 32-bit libraries...
|
||||
ARCH32FLAGS="-xarch=generic"
|
||||
INSTALL32="install32bit"
|
||||
LIB32CUPS="32bit/libcups.so.2"
|
||||
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
|
||||
LIB32CUPS="libcups.32.so.2"
|
||||
LIB32CUPSIMAGE="libcupsimage.32.so.2"
|
||||
LIB32DIR="$exec_prefix/lib/32"
|
||||
UNINSTALL32="uninstall32bit"
|
||||
|
||||
@@ -411,43 +400,33 @@ else
|
||||
# warning messages, and default to
|
||||
# 64-bit compiles of everything else...
|
||||
OPTIM="-w $OPTIM"
|
||||
fi
|
||||
|
||||
if test -z "$with_archflags"; then
|
||||
if test -z "$with_arch64flags"; then
|
||||
ARCHFLAGS="-xarch=generic64"
|
||||
else
|
||||
ARCHFLAGS="$with_arch64flags"
|
||||
fi
|
||||
else
|
||||
ARCHFLAGS="$with_archflags"
|
||||
CFLAGS="-xarch=generic64 $CFLAGS"
|
||||
fi
|
||||
else
|
||||
if test "x$enable_64bit" = xyes; then
|
||||
# Build 64-bit libraries...
|
||||
ARCH64FLAGS="-xarch=generic64"
|
||||
INSTALL64="install64bit"
|
||||
LIB64CUPS="64bit/libcups.so.2"
|
||||
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
|
||||
LIB64CUPS="libcups.64.so.2"
|
||||
LIB64CUPSIMAGE="libcupsimage.64.so.2"
|
||||
LIB64DIR="$exec_prefix/lib/64"
|
||||
UNINSTALL64="uninstall64bit"
|
||||
fi
|
||||
|
||||
if test "x$with_optim" = x; then
|
||||
# Suppress all of Sun's questionable
|
||||
# warning messages, and default to
|
||||
# 32-bit compiles of everything else...
|
||||
OPTIM="-w $OPTIM"
|
||||
fi
|
||||
|
||||
if test -z "$with_archflags"; then
|
||||
if test -z "$with_arch32flags"; then
|
||||
ARCHFLAGS="-xarch=generic"
|
||||
else
|
||||
ARCHFLAGS="$with_arch32flags"
|
||||
if test "x$with_optim" = x; then
|
||||
# Suppress all of Sun's questionable
|
||||
# warning messages, and default to
|
||||
# 32-bit compiles of everything else...
|
||||
OPTIM="-w $OPTIM"
|
||||
CFLAGS="-xarch=generic $CFLAGS"
|
||||
fi
|
||||
else
|
||||
ARCHFLAGS="$with_archflags"
|
||||
if test "x$with_optim" = x; then
|
||||
# Suppress all of Sun's questionable
|
||||
# warning messages, and default to
|
||||
# 32-bit compiles of everything else...
|
||||
OPTIM="-w $OPTIM"
|
||||
CFLAGS="-xarch=generic $CFLAGS"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
@@ -488,5 +467,5 @@ if test $uname = HP-UX; then
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $".
|
||||
dnl End of "$Id: cups-compiler.m4 5288 2006-03-14 02:38:07Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-defaults.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id$"
|
||||
dnl
|
||||
dnl Default cupsd configuration settings for the Common UNIX Printing System
|
||||
dnl (CUPS).
|
||||
@@ -219,7 +219,7 @@ AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GROUP, "$CUPS_GROUP")
|
||||
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_GROUPS, "$CUPS_SYSTEM_GROUPS")
|
||||
|
||||
dnl Default printcap file...
|
||||
AC_ARG_WITH(printcap, [ --with-printcap set default printcap file],
|
||||
AC_ARG_WITH(printcap, [ --with-printcap set default printcap file],
|
||||
default_printcap="$withval",
|
||||
default_printcap="/etc/printcap")
|
||||
|
||||
@@ -236,5 +236,5 @@ fi
|
||||
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-defaults.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id$".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $"
|
||||
dnl "$Id: cups-directories.m4 5314 2006-03-20 19:06:50Z mike $"
|
||||
dnl
|
||||
dnl Directory stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -130,11 +130,9 @@ if test x$rcdir = x; then
|
||||
Darwin*)
|
||||
# Darwin and MacOS X...
|
||||
INITDIR=""
|
||||
if test -x /sbin/launchd; then
|
||||
INITDDIR="/System/Library/LaunchDaemons"
|
||||
else
|
||||
INITDDIR="/System/Library/StartupItems/PrintingServices"
|
||||
fi
|
||||
AC_CHECK_PROG(INITDDIR, launchd,
|
||||
"/System/Library/LaunchDaemons",
|
||||
"/System/Library/StartupItems/PrintingServices")
|
||||
;;
|
||||
|
||||
Linux | GNU)
|
||||
@@ -302,5 +300,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
|
||||
AC_SUBST(CUPS_STATEDIR)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $".
|
||||
dnl End of "$Id: cups-directories.m4 5314 2006-03-20 19:06:50Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-image.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-image.m4 5451 2006-04-22 21:54:49Z mike $"
|
||||
dnl
|
||||
dnl Image library/filter stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -110,5 +110,5 @@ AC_SUBST(EXPORT_LIBZ)
|
||||
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-image.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-image.m4 5451 2006-04-22 21:54:49Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-launchd.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id$"
|
||||
dnl
|
||||
dnl launchd stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -49,5 +49,5 @@ AC_SUBST(DEFAULT_LAUNCHD_CONF)
|
||||
AC_SUBST(LAUNCHDLIBS)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-launchd.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id$".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $"
|
||||
dnl "$Id$"
|
||||
dnl
|
||||
dnl LDAP configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -36,7 +36,7 @@ LIBLDAP=""
|
||||
|
||||
if test x$enable_ldap != xno; then
|
||||
AC_CHECK_HEADER(ldap.h,
|
||||
AC_CHECK_LIB(ldap, ldap_initialize,
|
||||
AC_CHECK_LIB(ldap, ldap_value_free,
|
||||
AC_DEFINE(HAVE_LDAP)
|
||||
AC_DEFINE(HAVE_OPENLDAP)
|
||||
LIBLDAP="-lldap"))
|
||||
@@ -46,5 +46,5 @@ AC_SUBST(LIBLDAP)
|
||||
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $".
|
||||
dnl End of "$Id$".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-libtool.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-libtool.m4 4494 2005-02-18 02:18:11Z mike $"
|
||||
dnl
|
||||
dnl Libtool stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -45,5 +45,5 @@ if test x$LIBTOOL != x; then
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-libtool.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-libtool.m4 4494 2005-02-18 02:18:11Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-manpages.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-manpages.m4 5099 2006-02-13 02:46:10Z mike $"
|
||||
dnl
|
||||
dnl Manpage stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -103,5 +103,5 @@ AC_SUBST(MAN8EXT)
|
||||
AC_SUBST(MAN8DIR)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-manpages.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-manpages.m4 5099 2006-02-13 02:46:10Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-network.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-network.m4 4873 2005-12-07 01:46:54Z mike $"
|
||||
dnl
|
||||
dnl Networking stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -85,5 +85,5 @@ AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
|
||||
AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-network.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-network.m4 4873 2005-12-07 01:46:54Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-opsys.m4 5075 2006-02-05 01:00:29Z mike $"
|
||||
dnl
|
||||
dnl Operating system stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -39,5 +39,5 @@ case "$uname" in
|
||||
esac
|
||||
|
||||
dnl
|
||||
dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-opsys.m4 5075 2006-02-05 01:00:29Z mike $"
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-pam.m4 4913 2006-01-11 01:42:04Z mike $"
|
||||
dnl
|
||||
dnl PAM stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -94,5 +94,5 @@ AC_SUBST(PAMLIBS)
|
||||
AC_SUBST(PAMMOD)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-pam.m4 4913 2006-01-11 01:42:04Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
dnl
|
||||
dnl "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl
|
||||
dnl PAP (AppleTalk) stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
dnl Copyright 2006 by Easy Software Products, all rights reserved.
|
||||
dnl
|
||||
dnl These coded instructions, statements, and computer programs are the
|
||||
dnl property of Easy Software Products and are protected by Federal
|
||||
dnl copyright law. Distribution and use rights are outlined in the file
|
||||
dnl "LICENSE.txt" which should have been included with this file. If this
|
||||
dnl file is missing or damaged please contact Easy Software Products
|
||||
dnl at:
|
||||
dnl
|
||||
dnl Attn: CUPS Licensing Information
|
||||
dnl Easy Software Products
|
||||
dnl 44141 Airport View Drive, Suite 204
|
||||
dnl Hollywood, Maryland 20636 USA
|
||||
dnl
|
||||
dnl Voice: (301) 373-9600
|
||||
dnl EMail: cups-info@cups.org
|
||||
dnl WWW: http://www.cups.org
|
||||
dnl
|
||||
|
||||
# Currently the PAP backend is only supported on MacOS X with the AppleTalk
|
||||
# SDK installed...
|
||||
PAP=""
|
||||
if test $uname = Darwin; then
|
||||
PAP="pap"
|
||||
AC_CHECK_HEADER(AppleTalk/at_proto.h)
|
||||
fi
|
||||
|
||||
AC_SUBST(PAP)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-pdf.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id$"
|
||||
dnl
|
||||
dnl PDF filter configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -39,5 +39,5 @@ fi
|
||||
AC_SUBST(PDFTOPS)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-pdf.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id$".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-scripting.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-scripting.m4 5176 2006-02-25 18:14:10Z mike $"
|
||||
dnl
|
||||
dnl Scripting configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -100,5 +100,5 @@ if test "x$CUPS_PYTHON" != x; then
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-scripting.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-scripting.m4 5176 2006-02-25 18:14:10Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $"
|
||||
dnl "$Id: cups-sharedlibs.m4 5112 2006-02-16 04:41:59Z mike $"
|
||||
dnl
|
||||
dnl Shared library support for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -33,31 +33,31 @@ if test x$enable_shared != xno; then
|
||||
LIBCUPS="libcups.so.2"
|
||||
LIBCUPSIMAGE="libcupsimage.so.2"
|
||||
DSO="\$(CC)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-h,\$@ -G \$(OPTIM)"
|
||||
;;
|
||||
HP-UX*)
|
||||
LIBCUPS="libcups.sl.2"
|
||||
LIBCUPSIMAGE="libcupsimage.sl.2"
|
||||
DSO="\$(LD)"
|
||||
DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
|
||||
DSOFLAGS="$DSOFLAGS -b -z +h \$@"
|
||||
;;
|
||||
IRIX)
|
||||
LIBCUPS="libcups.so.2"
|
||||
LIBCUPSIMAGE="libcupsimage.so.2"
|
||||
DSO="\$(CC)"
|
||||
DSOFLAGS="$DSOFLAGS -set_version,sgi2.6,-soname,\`basename \$@\` -shared \$(OPTIM)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi2.6,-soname,\$@ -shared \$(OPTIM)"
|
||||
;;
|
||||
OSF1* | Linux | GNU | *BSD*)
|
||||
LIBCUPS="libcups.so.2"
|
||||
LIBCUPSIMAGE="libcupsimage.so.2"
|
||||
DSO="\$(CC)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
|
||||
;;
|
||||
Darwin*)
|
||||
LIBCUPS="libcups.2.dylib"
|
||||
LIBCUPSIMAGE="libcupsimage.2.dylib"
|
||||
DSO="\$(CC)"
|
||||
DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
|
||||
DSOFLAGS="$DSOFLAGS \$(RC_CFLAGS) -dynamiclib -single_module -lc"
|
||||
;;
|
||||
AIX*)
|
||||
LIBCUPS="libcups_s.a"
|
||||
@@ -71,7 +71,7 @@ if test x$enable_shared != xno; then
|
||||
LIBCUPS="libcups.so.2"
|
||||
LIBCUPSIMAGE="libcupsimage.so.2"
|
||||
DSO="\$(CC)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
|
||||
DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
@@ -81,15 +81,8 @@ else
|
||||
DSO=":"
|
||||
fi
|
||||
|
||||
# 32-bit and 64-bit libraries need variations of the standard
|
||||
# DSOFLAGS...
|
||||
DSO32FLAGS="$DSOFLAGS"
|
||||
DSO64FLAGS="$DSOFLAGS"
|
||||
|
||||
AC_SUBST(DSO)
|
||||
AC_SUBST(DSOFLAGS)
|
||||
AC_SUBST(DSO32FLAGS)
|
||||
AC_SUBST(DSO64FLAGS)
|
||||
AC_SUBST(LIBCUPS)
|
||||
AC_SUBST(LIBCUPSIMAGE)
|
||||
|
||||
@@ -120,48 +113,34 @@ if test "$DSO" != ":"; then
|
||||
DSOLIBS="\$(LIBPNG) \$(LIBTIFF) \$(LIBJPEG) \$(LIBZ)"
|
||||
IMGLIBS=""
|
||||
|
||||
# Tell the run-time linkers where to find a DSO. Some platforms
|
||||
# need this option, even when the library is installed in a
|
||||
# standard location...
|
||||
# The *BSD, HP-UX, and Solaris run-time linkers need help when
|
||||
# deciding where to find a DSO. Add linker options to tell them
|
||||
# where to find the DSO (usually in /usr/lib... duh!)
|
||||
case $uname in
|
||||
HP-UX*)
|
||||
# HP-UX needs the path, even for /usr/lib...
|
||||
DSOFLAGS="+s +b \$(libdir) $DSOFLAGS"
|
||||
DSO32FLAGS="+s +b \$(LIB32DIR) $DSO32FLAGS"
|
||||
DSO64FLAGS="+s +b \$(LIB64DIR) $DSO64FLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,+s,+b,\$(libdir)"
|
||||
EXPORT_LDFLAGS="-Wl,+s,+b,\$(libdir)"
|
||||
;;
|
||||
# HP-UX
|
||||
DSOFLAGS="+s +b $libdir $DSOFLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
|
||||
EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
|
||||
;;
|
||||
SunOS*)
|
||||
# Solaris...
|
||||
if test $exec_prefix != /usr; then
|
||||
DSOFLAGS="-R\$(libdir) $DSOFLAGS"
|
||||
DSO32FLAGS="-R\$(LIB32DIR) $DSO32FLAGS"
|
||||
DSO64FLAGS="-R\$(LIB64DIR) $DSO64FLAGS"
|
||||
LDFLAGS="$LDFLAGS -R\$(libdir)"
|
||||
EXPORT_LDFLAGS="-R\$(libdir)"
|
||||
fi
|
||||
;;
|
||||
# Solaris
|
||||
DSOFLAGS="-R$libdir $DSOFLAGS"
|
||||
LDFLAGS="$LDFLAGS -R$libdir"
|
||||
EXPORT_LDFLAGS="-R$libdir"
|
||||
;;
|
||||
*BSD*)
|
||||
# *BSD...
|
||||
if test $exec_prefix != /usr; then
|
||||
DSOFLAGS="-Wl,-R\$(libdir) $DSOFLAGS"
|
||||
DSO32FLAGS="-Wl,-R\$(LIB32DIR) $DSO32FLAGS"
|
||||
DSO64FLAGS="-Wl,-R\$(LIB64DIR) $DSO64FLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,-R\$(libdir)"
|
||||
EXPORT_LDFLAGS="-Wl,-R\$(libdir)"
|
||||
fi
|
||||
;;
|
||||
IRIX | Linux | GNU)
|
||||
# IRIX, Linux, and HURD...
|
||||
if test $exec_prefix != /usr; then
|
||||
DSOFLAGS="-Wl,-rpath,\$(libdir) $DSOFLAGS"
|
||||
DSO32FLAGS="-Wl,-rpath,\$(LIB32DIR) $DSO32FLAGS"
|
||||
DSO64FLAGS="-Wl,-rpath,\$(LIB64DIR) $DSO64FLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)"
|
||||
EXPORT_LDFLAGS="-Wl,-rpath,\$(libdir)"
|
||||
fi
|
||||
;;
|
||||
# *BSD
|
||||
DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,-R$libdir"
|
||||
EXPORT_LDFLAGS="-Wl,-R$libdir"
|
||||
;;
|
||||
Linux | GNU)
|
||||
# Linux and HURD
|
||||
DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
|
||||
EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
DSOLIBS=""
|
||||
@@ -173,5 +152,5 @@ AC_SUBST(IMGLIBS)
|
||||
AC_SUBST(EXPORT_LDFLAGS)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $".
|
||||
dnl End of "$Id: cups-sharedlibs.m4 5112 2006-02-16 04:41:59Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-slp.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id: cups-openslp.m4 4494 2005-02-18 02:18:11Z mike $"
|
||||
dnl
|
||||
dnl OpenSLP configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -44,5 +44,5 @@ AC_SUBST(LIBSLP)
|
||||
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-slp.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id: cups-openslp.m4 4494 2005-02-18 02:18:11Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $"
|
||||
dnl "$Id: cups-ssl.m4 5457 2006-04-24 15:36:12Z mike $"
|
||||
dnl
|
||||
dnl OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -55,14 +55,18 @@ if test x$enable_ssl != xno; then
|
||||
|
||||
dnl Then look for GNU TLS...
|
||||
if test "x${SSLLIBS}" = "x" -a "x${enable_gnutls}" != "xno"; then
|
||||
AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
|
||||
if test "x$LIBGNUTLSCONFIG" != x; then
|
||||
SSLLIBS=`$LIBGNUTLSCONFIG --libs`
|
||||
SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
|
||||
ENCRYPTION_REQUIRED=" Encryption Required"
|
||||
AC_DEFINE(HAVE_SSL)
|
||||
AC_DEFINE(HAVE_GNUTLS)
|
||||
fi
|
||||
AC_CHECK_HEADER(gnutls/gnutls.h,
|
||||
dnl Save the current libraries so the crypto stuff isn't always
|
||||
dnl included...
|
||||
SAVELIBS="$LIBS"
|
||||
|
||||
AC_CHECK_LIB(gnutls, gnutls_x509_crt_set_dn_by_oid,
|
||||
[SSLLIBS="-lgnutls"
|
||||
ENCRYPTION_REQUIRED=" Encryption Required"
|
||||
AC_DEFINE(HAVE_SSL)
|
||||
AC_DEFINE(HAVE_GNUTLS)])
|
||||
|
||||
LIBS="$SAVELIBS")
|
||||
fi
|
||||
|
||||
dnl Check for the OpenSSL library last...
|
||||
@@ -100,11 +104,6 @@ if test x$enable_ssl != xno; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$SSLLIBS" != x; then
|
||||
AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
|
||||
AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
|
||||
fi
|
||||
|
||||
AC_SUBST(SSLFLAGS)
|
||||
AC_SUBST(SSLLIBS)
|
||||
AC_SUBST(ENCRYPTION_REQUIRED)
|
||||
@@ -114,5 +113,5 @@ AC_SUBST(EXPORT_SSLLIBS)
|
||||
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $".
|
||||
dnl End of "$Id: cups-ssl.m4 5457 2006-04-24 15:36:12Z mike $".
|
||||
dnl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $"
|
||||
dnl "$Id$"
|
||||
dnl
|
||||
dnl Threading stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -53,5 +53,5 @@ fi
|
||||
AC_SUBST(PTHREAD_FLAGS)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $".
|
||||
dnl End of "$Id$".
|
||||
dnl
|
||||
|
||||
@@ -429,13 +429,6 @@
|
||||
#undef HAVE_DBUS
|
||||
|
||||
|
||||
/*
|
||||
* Do we have the AppleTalk/at_proto.h header?
|
||||
*/
|
||||
|
||||
#undef HAVE_APPLETALK_AT_PROTO_H
|
||||
|
||||
|
||||
#endif /* !_CUPS_CONFIG_H_ */
|
||||
|
||||
/*
|
||||
|
||||
@@ -43,7 +43,6 @@ sinclude(config-scripts/cups-threads.m4)
|
||||
sinclude(config-scripts/cups-largefile.m4)
|
||||
sinclude(config-scripts/cups-launchd.m4)
|
||||
sinclude(config-scripts/cups-defaults.m4)
|
||||
sinclude(config-scripts/cups-pap.m4)
|
||||
sinclude(config-scripts/cups-pdf.m4)
|
||||
sinclude(config-scripts/cups-scripting.m4)
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ exec_prefix=@exec_prefix@
|
||||
bindir=@bindir@
|
||||
includedir=@includedir@
|
||||
libdir=@libdir@
|
||||
imagelibdir=@libdir@
|
||||
datadir=@datadir@
|
||||
sysconfdir=@sysconfdir@
|
||||
cups_datadir=@CUPS_DATADIR@
|
||||
@@ -45,27 +44,13 @@ LDFLAGS="@EXPORT_LDFLAGS@"
|
||||
LIBS="@EXPORT_SSLLIBS@ @LIBS@"
|
||||
IMGLIBS="@EXPORT_LIBTIFF@ @EXPORT_LIBJPEG@ @EXPORT_LIBPNG@ @EXPORT_LIBZ@"
|
||||
|
||||
# Check for local invocation...
|
||||
selfdir=`dirname $0`
|
||||
|
||||
if test -f "$selfdir/cups/cups.h"; then
|
||||
CFLAGS="-I$selfdir"
|
||||
LDFLAGS="-L$selfdir/cups -L$selfdir/filter $LDFLAGS"
|
||||
libdir="$selfdir/cups"
|
||||
imagelibdir="$selfdir/filter"
|
||||
if test ! -e "$selfdir/cups/raster.h"; then
|
||||
ln -s ../filter/raster.h "$selfdir/cups"
|
||||
fi
|
||||
else
|
||||
if test $includedir != /usr/include; then
|
||||
CFLAGS="$CFLAGS -I$includedir"
|
||||
fi
|
||||
|
||||
if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then
|
||||
LDFLAGS="$LDFLAGS -L$libdir"
|
||||
fi
|
||||
if test $includedir != /usr/include; then
|
||||
CFLAGS="$CFLAGS -I$includedir"
|
||||
fi
|
||||
|
||||
if test $libdir != /usr/lib -a $libdir != /usr/lib32; then
|
||||
LDFLAGS="$LDFLAGS -L$libdir"
|
||||
fi
|
||||
|
||||
usage ()
|
||||
{
|
||||
@@ -121,7 +106,7 @@ while test $# -gt 0; do
|
||||
if test $image = no; then
|
||||
echo $libdir/libcups.a $LIBS
|
||||
else
|
||||
echo $imagelibdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
|
||||
echo $libdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
@@ -137,8 +137,7 @@ all: $(TARGETS)
|
||||
|
||||
clean:
|
||||
$(RM) $(OBJS) $(TARGETS)
|
||||
$(RM) libcups.so libcups.sl libcups.dylib
|
||||
$(RM) -r 32bit 64it
|
||||
$(RM) libcups.so libcups.sl libcups.dylib libcups.32.so libcups.64.so
|
||||
|
||||
|
||||
#
|
||||
@@ -185,12 +184,12 @@ installhdrs:
|
||||
|
||||
install32bit:
|
||||
$(INSTALL_DIR) -m 755 $(LIB32DIR)
|
||||
$(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
|
||||
$(INSTALL_LIB) libcups.32.so.2 $(LIB32DIR)/libcups.so.2
|
||||
$(LN) libcups.so $(LIB32DIR)/libcups.so.2
|
||||
|
||||
install64bit:
|
||||
$(INSTALL_DIR) -m 755 $(LIB64DIR)
|
||||
$(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
|
||||
$(INSTALL_LIB) libcups.64.so.2 $(LIB64DIR)/libcups.so.2
|
||||
$(LN) libcups.so $(LIB64DIR)/libcups.so.2
|
||||
|
||||
|
||||
@@ -236,27 +235,21 @@ libcups.so.2 libcups.sl.2: $(LIBOBJS)
|
||||
|
||||
|
||||
#
|
||||
# 32bit/libcups.so.2
|
||||
# libcups.32.so.2
|
||||
#
|
||||
|
||||
32bit/libcups.so.2: $(LIB32OBJS)
|
||||
libcups.32.so.2: $(LIB32OBJS)
|
||||
echo Linking 32-bit $@...
|
||||
-mkdir 32bit
|
||||
$(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
|
||||
$(RM) 32bit/libcups.so
|
||||
$(LN) libcups.so.2 32bit/libcups.so
|
||||
$(DSO) $(ARCH32FLAGS) $(DSOFLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
|
||||
|
||||
|
||||
#
|
||||
# 64bit/libcups.so.2
|
||||
# libcups.64.so.2
|
||||
#
|
||||
|
||||
64bit/libcups.so.2: $(LIB64OBJS)
|
||||
libcups.64.so.2: $(LIB64OBJS)
|
||||
echo Linking 64-bit $@...
|
||||
-mkdir 64bit
|
||||
$(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
|
||||
$(RM) 64bit/libcups.so
|
||||
$(LN) libcups.so.2 64bit/libcups.so
|
||||
$(DSO) $(ARCH64FLAGS) $(DSOFLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
|
||||
|
||||
|
||||
#
|
||||
@@ -278,7 +271,7 @@ libcups.2.dylib: $(LIBOBJS)
|
||||
# libcups_s.a
|
||||
#
|
||||
|
||||
libcups_s.a: $(LIBOBJS) libcups_s.exp
|
||||
libcups_s.a: $(LIBOBJS)
|
||||
echo Creating $@...
|
||||
$(DSO) $(DSOFLAGS) -Wl,-bexport:libcups_s.exp -o libcups_s.o $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ) -lm
|
||||
$(RM) $@
|
||||
|
||||
@@ -939,14 +939,11 @@ cups_array_find(cups_array_t *a, /* I - Array */
|
||||
|
||||
DEBUG_puts("cups_array_find: linear search");
|
||||
|
||||
diff = 1;
|
||||
diff = 0;
|
||||
|
||||
for (current = 0; current < a->num_elements; current ++)
|
||||
if (a->elements[current] == e)
|
||||
{
|
||||
diff = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -112,8 +112,8 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
|
||||
* Nope - get a new password from the user...
|
||||
*/
|
||||
|
||||
snprintf(prompt, sizeof(prompt), _("Password for %s on %s? "), cupsUser(),
|
||||
http->hostname[0] == '/' ? "localhost" : http->hostname);
|
||||
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
|
||||
http->hostname);
|
||||
|
||||
http->digest_tries = strncasecmp(http->fields[HTTP_FIELD_WWW_AUTHENTICATE],
|
||||
"Digest", 5) != 0;
|
||||
|
||||
@@ -161,7 +161,7 @@ cupsBackChannelWrite(
|
||||
* Write error - abort on fatal errors...
|
||||
*/
|
||||
|
||||
if (errno != EINTR)
|
||||
if (errno != EINTR && errno != EAGAIN)
|
||||
return (-1);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -133,8 +133,6 @@ static const _ipp_option_t ipp_options[] =
|
||||
{ "raw", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION },
|
||||
{ "resolution", IPP_TAG_RESOLUTION, IPP_TAG_JOB },
|
||||
{ "resolution-default", IPP_TAG_RESOLUTION, IPP_TAG_PRINTER },
|
||||
{ "requesting-user-name-allowed", IPP_TAG_NAME, IPP_TAG_PRINTER },
|
||||
{ "requesting-user-name-denied", IPP_TAG_NAME, IPP_TAG_PRINTER },
|
||||
{ "saturation", IPP_TAG_INTEGER, IPP_TAG_JOB },
|
||||
{ "saturation-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
|
||||
{ "scaling", IPP_TAG_INTEGER, IPP_TAG_JOB },
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
* '_cups_getifaddrs()' - Get a list of network interfaces on the system.
|
||||
*/
|
||||
|
||||
int /* O - 0 on success, -1 on error */
|
||||
static int /* O - 0 on success, -1 on error */
|
||||
_cups_getifaddrs(struct ifaddrs **addrs)/* O - List of interfaces */
|
||||
{
|
||||
int sock; /* Socket */
|
||||
@@ -182,9 +182,8 @@ _cups_getifaddrs(struct ifaddrs **addrs)/* O - List of interfaces */
|
||||
* Got it, make a copy...
|
||||
*/
|
||||
|
||||
if ((temp->ifa_broadaddr =
|
||||
calloc(1, sizeof(request.ifr_broadaddr))) != NULL)
|
||||
memcpy(temp->ifa_broadaddr, &(request.ifr_broadaddr),
|
||||
if ((temp->ifa_dstaddr = calloc(1, sizeof(request.ifr_broadaddr))) != NULL)
|
||||
memcpy(temp->ifa_dstaddr, &(request.ifr_broadaddr),
|
||||
sizeof(request.ifr_broadaddr));
|
||||
}
|
||||
}
|
||||
@@ -217,7 +216,7 @@ _cups_getifaddrs(struct ifaddrs **addrs)/* O - List of interfaces */
|
||||
* '_cups_freeifaddrs()' - Free an interface list...
|
||||
*/
|
||||
|
||||
void
|
||||
static void
|
||||
_cups_freeifaddrs(struct ifaddrs *addrs)/* I - Interface list to free */
|
||||
{
|
||||
struct ifaddrs *next; /* Next interface in list */
|
||||
|
||||
@@ -31,8 +31,7 @@
|
||||
* Include necessary headers...
|
||||
*/
|
||||
|
||||
# include <stdlib.h>
|
||||
# include <config.h>
|
||||
# include "config.h"
|
||||
|
||||
# ifdef __sun
|
||||
/*
|
||||
@@ -161,26 +160,14 @@ struct ifaddrs /**** Interface Structure ****/
|
||||
char *ifa_name; /* Name of interface */
|
||||
unsigned int ifa_flags; /* Flags (up, point-to-point, etc.) */
|
||||
struct sockaddr *ifa_addr, /* Network address */
|
||||
*ifa_netmask; /* Address mask */
|
||||
union
|
||||
{
|
||||
struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
|
||||
struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */
|
||||
} ifa_ifu;
|
||||
|
||||
*ifa_netmask, /* Address mask */
|
||||
*ifa_dstaddr; /* Broadcast or destination address */
|
||||
void *ifa_data; /* Interface statistics */
|
||||
};
|
||||
|
||||
# ifndef ifa_broadaddr
|
||||
# define ifa_broadaddr ifa_ifu.ifu_broadaddr
|
||||
# endif /* !ifa_broadaddr */
|
||||
# ifndef ifa_dstaddr
|
||||
# define ifa_dstaddr ifa_ifu.ifu_dstaddr
|
||||
# endif /* !ifa_dstaddr */
|
||||
|
||||
extern int _cups_getifaddrs(struct ifaddrs **addrs);
|
||||
static int _cups_getifaddrs(struct ifaddrs **addrs);
|
||||
# define getifaddrs _cups_getifaddrs
|
||||
extern void _cups_freeifaddrs(struct ifaddrs *addrs);
|
||||
static void _cups_freeifaddrs(struct ifaddrs *addrs);
|
||||
# define freeifaddrs _cups_freeifaddrs
|
||||
# endif /* HAVE_GETIFADDRS */
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ _cupsCharmapGet
|
||||
_cupsEncodingName
|
||||
_cupsGetPassword
|
||||
_cupsGlobals
|
||||
_cupsLangFlush
|
||||
_cupsLangPrintf
|
||||
_cupsLangPuts
|
||||
_cupsLangString
|
||||
@@ -22,8 +23,6 @@ _cupsStrFormatd
|
||||
_cupsStrFree
|
||||
_cupsStrScand
|
||||
_cupsStrStatistics
|
||||
_cups_getifaddrs
|
||||
_cups_freeifaddrs
|
||||
_cups_strcpy
|
||||
_cups_strlcat
|
||||
_cups_strlcpy
|
||||
|
||||
@@ -241,6 +241,9 @@ ppd_option_t * /* O - Pointer to option or NULL */
|
||||
ppdFindOption(ppd_file_t *ppd, /* I - PPD file data */
|
||||
const char *option) /* I - Option/Keyword name */
|
||||
{
|
||||
ppd_option_t key; /* Option search key */
|
||||
|
||||
|
||||
/*
|
||||
* Range check input...
|
||||
*/
|
||||
@@ -248,39 +251,13 @@ ppdFindOption(ppd_file_t *ppd, /* I - PPD file data */
|
||||
if (!ppd || !option)
|
||||
return (NULL);
|
||||
|
||||
if (ppd->options)
|
||||
{
|
||||
/*
|
||||
* Search in the array...
|
||||
*/
|
||||
/*
|
||||
* Search...
|
||||
*/
|
||||
|
||||
ppd_option_t key; /* Option search key */
|
||||
strlcpy(key.keyword, option, sizeof(key.keyword));
|
||||
|
||||
|
||||
strlcpy(key.keyword, option, sizeof(key.keyword));
|
||||
|
||||
return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Search in each group...
|
||||
*/
|
||||
|
||||
int i, j; /* Looping vars */
|
||||
ppd_group_t *group; /* Current group */
|
||||
ppd_option_t *optptr; /* Current option */
|
||||
|
||||
|
||||
for (i = ppd->num_groups, group = ppd->groups; i > 0; i --, group ++)
|
||||
for (j = group->num_options, optptr = group->options;
|
||||
j > 0;
|
||||
j --, optptr ++)
|
||||
if (!strcasecmp(optptr->keyword, option))
|
||||
return (optptr);
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */
|
||||
if (!nameptr || *nameptr != 'x')
|
||||
return (NULL);
|
||||
|
||||
l = _cupsStrScand(nameptr + 1, &nameptr, loc);
|
||||
l = _cupsStrScand(nameptr, &nameptr, loc);
|
||||
if (!nameptr)
|
||||
return (NULL);
|
||||
|
||||
|
||||
@@ -69,8 +69,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
|
||||
FILE *file; /* File to send */
|
||||
struct stat fileinfo; /* File information */
|
||||
int bytes; /* Number of bytes read/written */
|
||||
char buffer[32768]; /* Output buffer */
|
||||
http_status_t expect; /* Expect: header to use */
|
||||
char buffer[65536]; /* Output buffer */
|
||||
|
||||
|
||||
DEBUG_printf(("cupsDoFileRequest(%p, %p, \'%s\', \'%s\')\n",
|
||||
@@ -147,7 +146,6 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
|
||||
|
||||
response = NULL;
|
||||
status = HTTP_ERROR;
|
||||
expect = HTTP_CONTINUE;
|
||||
|
||||
while (response == NULL)
|
||||
{
|
||||
@@ -165,7 +163,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
|
||||
httpSetLength(http, length);
|
||||
httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
|
||||
httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring);
|
||||
httpSetExpect(http, expect);
|
||||
httpSetExpect(http, HTTP_CONTINUE);
|
||||
|
||||
DEBUG_printf(("cupsDoFileRequest: authstring=\"%s\"\n", http->authstring));
|
||||
|
||||
@@ -314,14 +312,6 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
|
||||
continue;
|
||||
}
|
||||
#endif /* HAVE_SSL */
|
||||
else if (status == HTTP_EXPECTATION_FAILED)
|
||||
{
|
||||
/*
|
||||
* Don't try using the Expect: header the next time around...
|
||||
*/
|
||||
|
||||
expect = (http_status_t)0;
|
||||
}
|
||||
else if (status != HTTP_OK)
|
||||
{
|
||||
DEBUG_printf(("cupsDoFileRequest: error %d...\n", status));
|
||||
|
||||
@@ -96,10 +96,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */
|
||||
|
||||
if (*format == '*')
|
||||
{
|
||||
/*
|
||||
* Get width from argument...
|
||||
*/
|
||||
|
||||
// Get width from argument...
|
||||
format ++;
|
||||
width = va_arg(ap, int);
|
||||
|
||||
@@ -128,10 +125,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */
|
||||
|
||||
if (*format == '*')
|
||||
{
|
||||
/*
|
||||
* Get precision from argument...
|
||||
*/
|
||||
|
||||
// Get precision from argument...
|
||||
format ++;
|
||||
prec = va_arg(ap, int);
|
||||
|
||||
|
||||
@@ -31,14 +31,13 @@
|
||||
* Include necessary headers...
|
||||
*/
|
||||
|
||||
# include <config.h>
|
||||
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
# include <stdarg.h>
|
||||
# include <ctype.h>
|
||||
# include <locale.h>
|
||||
|
||||
# include <config.h>
|
||||
|
||||
# ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
# endif /* HAVE_STRING_H */
|
||||
|
||||
@@ -78,95 +78,51 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
status = 0;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
fputs("ppdOpenFile: ", stdout);
|
||||
fputs("ppdOpenFile: ", stdout);
|
||||
|
||||
if ((ppd = ppdOpenFile("test.ppd")) != NULL)
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
ppd_status_t err; /* Last error in file */
|
||||
int line; /* Line number in file */
|
||||
|
||||
|
||||
status ++;
|
||||
err = ppdLastError(&line);
|
||||
|
||||
printf("FAIL (%s on line %d)\n", ppdErrorString(err), line);
|
||||
}
|
||||
|
||||
fputs("ppdMarkDefaults: ", stdout);
|
||||
ppdMarkDefaults(ppd);
|
||||
|
||||
if ((conflicts = ppdConflicts(ppd)) == 0)
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
status ++;
|
||||
printf("FAIL (%d conflicts)\n", conflicts);
|
||||
}
|
||||
|
||||
fputs("ppdEmitString: ", stdout);
|
||||
if ((s = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL &&
|
||||
!strcmp(s, default_code))
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
printf("FAIL (%d bytes instead of %d)\n", s ? (int)strlen(s) : 0,
|
||||
(int)strlen(default_code));
|
||||
|
||||
if (s)
|
||||
puts(s);
|
||||
}
|
||||
|
||||
if (s)
|
||||
free(s);
|
||||
|
||||
ppdClose(ppd);
|
||||
}
|
||||
if ((ppd = ppdOpenFile("test.ppd")) != NULL)
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
if ((ppd = ppdOpenFile(argv[1])) == NULL)
|
||||
{
|
||||
ppd_status_t err; /* Last error in file */
|
||||
int line; /* Line number in file */
|
||||
ppd_status_t err; /* Last error in file */
|
||||
int line; /* Line number in file */
|
||||
|
||||
|
||||
status ++;
|
||||
err = ppdLastError(&line);
|
||||
status ++;
|
||||
err = ppdLastError(&line);
|
||||
|
||||
printf("%s: %s on line %d\n", argv[1], ppdErrorString(err), line);
|
||||
}
|
||||
else
|
||||
{
|
||||
int i, j, k; /* Looping vars */
|
||||
ppd_group_t *group; /* Option group */
|
||||
ppd_option_t *option; /* Option */
|
||||
|
||||
|
||||
ppdLocalize(ppd);
|
||||
|
||||
for (i = ppd->num_groups, group = ppd->groups;
|
||||
i > 0;
|
||||
i --, group ++)
|
||||
{
|
||||
printf("%s (%s):\n", group->name, group->text);
|
||||
|
||||
for (j = group->num_options, option = group->options;
|
||||
j > 0;
|
||||
j --, option ++)
|
||||
{
|
||||
printf(" %s (%s):\n", option->keyword, option->text);
|
||||
|
||||
for (k = 0; k < option->num_choices; k ++)
|
||||
printf(" - %s (%s)\n", option->choices[k].choice,
|
||||
option->choices[k].text);
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("FAIL (%s on line %d)\n", ppdErrorString(err), line);
|
||||
}
|
||||
|
||||
fputs("ppdMarkDefaults: ", stdout);
|
||||
ppdMarkDefaults(ppd);
|
||||
|
||||
if ((conflicts = ppdConflicts(ppd)) == 0)
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
status ++;
|
||||
printf("FAIL (%d conflicts)\n", conflicts);
|
||||
}
|
||||
|
||||
fputs("ppdEmitString: ", stdout);
|
||||
if ((s = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL &&
|
||||
!strcmp(s, default_code))
|
||||
puts("PASS");
|
||||
else
|
||||
{
|
||||
printf("FAIL (%d bytes instead of %d)\n", s ? (int)strlen(s) : 0,
|
||||
(int)strlen(default_code));
|
||||
|
||||
if (s)
|
||||
puts(s);
|
||||
}
|
||||
|
||||
if (s)
|
||||
free(s);
|
||||
|
||||
ppdClose(ppd);
|
||||
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
||||
@@ -167,6 +167,7 @@ HELPFILES = \
|
||||
help/spec-command.html \
|
||||
help/spec-design.html \
|
||||
help/spec-ipp.html \
|
||||
help/spec-postscript.html \
|
||||
help/spec-ppd.html \
|
||||
help/spec-raster.html \
|
||||
help/spec-stp.html \
|
||||
|
||||
@@ -929,22 +929,6 @@ policy to use for IPP operation. The default is
|
||||
<CODE>default</CODE>.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="DefaultShared">DefaultShared</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
<PRE CLASS="command">
|
||||
DefaultShared yes
|
||||
DefaultShared no
|
||||
</PRE>
|
||||
|
||||
<H3>Description</H3>
|
||||
|
||||
<P>The <CODE>DefaultShared</CODE> directive specifies whether
|
||||
printers are shared (published) by default. The default is
|
||||
<CODE>yes</CODE>.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><A NAME="Deny">Deny</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
@@ -2683,28 +2667,6 @@ to wait before an active HTTP or IPP request times out. The
|
||||
default timeout is 300 seconds.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="UseNetworkDefault">UseNetworkDefault</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
<PRE CLASS="command">
|
||||
UseNetworkDefault yes
|
||||
UseNetworkDefault no
|
||||
</PRE>
|
||||
|
||||
<H3>Description</H3>
|
||||
|
||||
<P>The <CODE>UseNetworkDefault</CODE> directive controls whether
|
||||
the client will use a network/remote printer as a default
|
||||
printer. If enabled, the default printer of a server is used as
|
||||
the default printer on a client. When multiple servers are
|
||||
advertising a default printer, the client's default printer is
|
||||
set to the first discovered printer, or to the implicit class for
|
||||
the same printer available from multiple servers.</P>
|
||||
|
||||
<P>The default is <CODE>yes</CODE>.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><A NAME="User">User</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<!-- SECTION: Specifications -->
|
||||
<head>
|
||||
<title>Generating PostScript for CUPS</title>
|
||||
<meta name='keywords' content='Programming, PostScript, Document Structuring Conventions'>
|
||||
<link rel='stylesheet' type='text/css' href='../cups.css'>
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
"$Id$"
|
||||
|
||||
CUPS PostScript file specification for the Common UNIX Printing System (CUPS).
|
||||
|
||||
Copyright 2006 by Easy Software Products.
|
||||
|
||||
These coded instructions, statements, and computer programs are the
|
||||
property of Easy Software Products and are protected by Federal
|
||||
copyright law. Distribution and use rights are outlined in the file
|
||||
"LICENSE.txt" which should have been included with this file. If this
|
||||
file is missing or damaged please contact Easy Software Products
|
||||
at:
|
||||
|
||||
Attn: CUPS Licensing Information
|
||||
Easy Software Products
|
||||
44141 Airport View Drive, Suite 204
|
||||
Hollywood, Maryland 20636 USA
|
||||
|
||||
Voice: (301) 373-9600
|
||||
EMail: cups-info@cups.org
|
||||
WWW: http://www.cups.org
|
||||
-->
|
||||
|
||||
<h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
|
||||
|
||||
<p>This document describes how to generate PostScript output for
|
||||
CUPS and is largely based on the <a
|
||||
href="http://partners.adobe.com/public/developer/en/ps/5001.DSC_Spec.pdf">
|
||||
Adobe TechNote #5001: PostScript Language Document Structuring
|
||||
Conventions Specification Version 3.0</a>. While CUPS can
|
||||
generally print any PostScript file, following the rules in the
|
||||
Adobe TechNote and this document will ensure that your PostScript
|
||||
output will work reliably.</p>
|
||||
|
||||
<blockquote><b>Note:</b> While PostScript is currently the
|
||||
defacto-standard print job file format/language for UNIX-based
|
||||
applications, it is slowly being phased out in favor of Adobe's
|
||||
Portable Document Format ("PDF") which offers many advantages
|
||||
over PostScript. MacOS X uses PDF as the primary print job file
|
||||
format, and we expect Linux to soon follow. Both PostScript and
|
||||
PDF are complex formats, and we highly recommend using high-level
|
||||
toolkits whenever possible.</blockquote>
|
||||
|
||||
<h3>Anatomy of a PostScript File</h3>
|
||||
|
||||
<p>PostScript files are ASCII text files starting with a header
|
||||
line (<tt>%!PS-Adobe-3.0</tt>) followed by a combination of
|
||||
comment lines starting with two percent signs (<tt>%%</tt>) and
|
||||
PostScript code lines. The lines themselves should not exceed 255
|
||||
characters to conform to the DSC. The following short PostScript
|
||||
file produces a box with a smiley face in it:</p>
|
||||
|
||||
<pre class="command">
|
||||
%!PS-Adobe-3.0
|
||||
%%BoundingBox: 36 36 576 756
|
||||
%%Pages: 1
|
||||
%%LanguageLevel: 2
|
||||
%%EndComments
|
||||
%%Page: (1) 1
|
||||
% Draw a black box around the page
|
||||
0 setgray
|
||||
1 setlinewidth
|
||||
36 36 540 720 rectstroke
|
||||
|
||||
% Draw a two inch blue circle in the middle of the page
|
||||
0 0 1 setrgbcolor
|
||||
306 396 144 0 360 arc closepath fill
|
||||
|
||||
% Draw two half inch yellow circles for eyes
|
||||
1 1 0 setrgbcolor
|
||||
252 432 36 0 360 arc closepath fill
|
||||
360 432 36 0 360 arc closepath fill
|
||||
|
||||
% Draw the smile
|
||||
1 setlinecap
|
||||
18 setlinewidth
|
||||
306 396 99 200 340 arc stroke
|
||||
|
||||
% Print it!
|
||||
showpage
|
||||
%%EOF
|
||||
</pre>
|
||||
|
||||
<div class="figure"><table summary="Sample PostScript File Output">
|
||||
<caption>Figure 1: <a name="FIGURE_1">Sample PostScript File Output</a></caption>
|
||||
<tr><td align="center"><img src="../images/smiley.jpg"
|
||||
width="445" height="570" alt="Sample PostScript File Output"></td></tr>
|
||||
</table></div>
|
||||
|
||||
|
||||
<h2>Embedding Printer Options</h2>
|
||||
|
||||
|
||||
<h2>Embedding Fonts and Text</h2>
|
||||
|
||||
|
||||
<h2>Embedding Images</h2>
|
||||
|
||||
|
||||
<blockquote><b>Note:</b> While some printers support arbitrary
|
||||
binary data in PostScript files, we do not recommend this
|
||||
practice because it does not work with all printers or
|
||||
interfaces. In most cases, the Base-85 encoding and compression
|
||||
filters can be used to embed images with very little, if any,
|
||||
increase in data size.</blockquote>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
"$Id: spec-ppd.html 5496 2006-05-05 19:26:23Z mike $"
|
||||
"$Id: spec-ppd.html 5217 2006-03-02 21:24:01Z mike $"
|
||||
|
||||
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
|
||||
|
||||
@@ -473,20 +473,23 @@ is not absolute, it is loaded relative to the
|
||||
|
||||
<h4>Customizing the Profile Selection Keywords</h4>
|
||||
|
||||
<p>The <tt>MediaType</tt> and <tt>Resolution</tt> keywords can be
|
||||
reassigned to different main keywords, allowing drivers to do
|
||||
color profile selection based on different parameters. The
|
||||
<tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt>
|
||||
<p>The <tt>ColorModel</tt>, <tt>MediaType</tt>, and
|
||||
<tt>Resolution</tt> keywords can be reassigned to different main
|
||||
keywords, allowing drivers to do color profile selection based
|
||||
on different parameters. The <tt>cupsICCQualifier1</tt>,
|
||||
<tt>cupsICCQualifier2</tt>, and <tt>cupsICCQualifier3</tt>
|
||||
attributes define the mapping from selector to main keyword:</p>
|
||||
|
||||
<pre class='command'>
|
||||
*cupsICCQualifier2: MainKeyword2
|
||||
*cupsICCQualifier3: MainKeyword3
|
||||
*cupsICCQualifier1: MainKeyword
|
||||
*cupsICCQualifier2: MainKeyword
|
||||
*cupsICCQualifier3: MainKeyword
|
||||
</pre>
|
||||
|
||||
<p>The default mapping is as follows:</p>
|
||||
|
||||
<pre class='command'>
|
||||
*cupsICCQualifier1: ColorModel
|
||||
*cupsICCQualifier2: MediaType
|
||||
*cupsICCQualifier3: Resolution
|
||||
</pre>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<!-- SECTION: Specifications -->
|
||||
<HEAD>
|
||||
<TITLE>CUPS Raster Format</TITLE>
|
||||
<LINK REL="STYLESHEET" TYPE="test/css" HREF="../cups.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
@@ -38,16 +37,13 @@ is followed immediately by the (uncompressed, raw) raster data
|
||||
for that page.</P>
|
||||
|
||||
<DIV CLASS="table"><TABLE SUMMARY="CUPS Version 1 Raster Page Device Dictionary">
|
||||
<CAPTION><A NAME="TABLE1">Table 1: CUPS Version 1 Raster Page Device Dictionary</A></CAPTION>
|
||||
<THEAD>
|
||||
<CAPTION>Table 1: CUPS Version 1 Raster Page Device Dictionary</CAPTION>
|
||||
<TR>
|
||||
<TH>Bytes</TH>
|
||||
<TH>Type</TH>
|
||||
<TH>Description</TH>
|
||||
<TH>Values</TH>
|
||||
</TR>
|
||||
</THEAD>
|
||||
<TBODY>
|
||||
<TR>
|
||||
<TD>0-63</TD>
|
||||
<TD>C String</TD>
|
||||
@@ -288,9 +284,9 @@ for that page.</P>
|
||||
<TD>400-403</TD>
|
||||
<TD>Unsigned Integer</TD>
|
||||
<TD>cupsColorSpace</TD>
|
||||
<TD>0 = white (sRGB)<BR>
|
||||
1 = RGB (sRGB)<BR>
|
||||
2 = RGBA (sRGB)<BR>
|
||||
<TD>0 = white<BR>
|
||||
1 = RGB<BR>
|
||||
2 = RGBA<BR>
|
||||
3 = black<BR>
|
||||
4 = CMY<BR>
|
||||
5 = YMC<BR>
|
||||
@@ -305,22 +301,22 @@ for that page.</P>
|
||||
14 = SILVER<BR>
|
||||
15 = CIE XYZ<BR>
|
||||
16 = CIE Lab<BR>
|
||||
17 = RGBW (sRGB)<BR>
|
||||
32 = ICC1 (CIE Lab with hint for 1 color)<BR>
|
||||
33 = ICC2 (CIE Lab with hint for 2 colors)<BR>
|
||||
34 = ICC3 (CIE Lab with hint for 3 colors)<BR>
|
||||
35 = ICC4 (CIE Lab with hint for 4 colors)<BR>
|
||||
36 = ICC5 (CIE Lab with hint for 5 colors)<BR>
|
||||
37 = ICC6 (CIE Lab with hint for 6 colors)<BR>
|
||||
38 = ICC7 (CIE Lab with hint for 7 colors)<BR>
|
||||
39 = ICC8 (CIE Lab with hint for 8 colors)<BR>
|
||||
40 = ICC9 (CIE Lab with hint for 9 colors)<BR>
|
||||
41 = ICCA (CIE Lab with hint for 10 colors)<BR>
|
||||
42 = ICCB (CIE Lab with hint for 11 colors)<BR>
|
||||
43 = ICCC (CIE Lab with hint for 12 colors)<BR>
|
||||
44 = ICCD (CIE Lab with hint for 13 colors)<BR>
|
||||
45 = ICCE (CIE Lab with hint for 14 colors)<BR>
|
||||
46 = ICCF (CIE Lab with hint for 15 colors)<BR>
|
||||
17 = RGBW<BR>
|
||||
32 = ICC1<BR>
|
||||
33 = ICC2<BR>
|
||||
34 = ICC3<BR>
|
||||
35 = ICC4<BR>
|
||||
36 = ICC5<BR>
|
||||
37 = ICC6<BR>
|
||||
38 = ICC7<BR>
|
||||
39 = ICC8<BR>
|
||||
40 = ICC9<BR>
|
||||
41 = ICCA (10)<BR>
|
||||
42 = ICCB (11)<BR>
|
||||
43 = ICCC (12)<BR>
|
||||
44 = ICCD (13)<BR>
|
||||
45 = ICCE (14)<BR>
|
||||
46 = ICCF (15)<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
@@ -347,7 +343,6 @@ for that page.</P>
|
||||
<TD>cupsRowStep</TD>
|
||||
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
|
||||
</TR>
|
||||
</TBODY>
|
||||
</TABLE></DIV>
|
||||
|
||||
|
||||
@@ -367,16 +362,13 @@ header and is followed immediately by the compressed raster data
|
||||
for that page.</P>
|
||||
|
||||
<DIV CLASS="table"><TABLE SUMMARY="CUPS Version 2 Raster Page Device Dictionary">
|
||||
<CAPTION><A NAME="TABLE2">Table 2: CUPS Version 2 Raster Page Device Dictionary</A></CAPTION>
|
||||
<THEAD>
|
||||
<CAPTION>Table 2: CUPS Version 2 Raster Page Device Dictionary</CAPTION>
|
||||
<TR>
|
||||
<TH>Bytes</TH>
|
||||
<TH>Type</TH>
|
||||
<TH>Description</TH>
|
||||
<TH>Values</TH>
|
||||
</TR>
|
||||
</THEAD>
|
||||
<TBODY>
|
||||
<TR>
|
||||
<TD>0-419</TD>
|
||||
<TD>Version 1 header data</TD>
|
||||
@@ -444,7 +436,6 @@ for that page.</P>
|
||||
<TD>cupsPageSizeName</TD>
|
||||
<TD>Page size name/keyword string from PPD</TD>
|
||||
</TR>
|
||||
</TBODY>
|
||||
</TABLE></DIV>
|
||||
|
||||
<H3><A NAME="COMPRESSION">Compressed Raster Data Format</A></H3>
|
||||
@@ -455,7 +446,6 @@ color values based upon the <CODE>cupsColorOrder</CODE>
|
||||
setting:</P>
|
||||
|
||||
<DIV CLASS="table"><TABLE SUMMARY="Color Value Sizes">
|
||||
<CAPTION><A NAME="TABLE3">Table 3: Color Value Sizes</A></CAPTION>
|
||||
<TR>
|
||||
<TH>cupsColorOrder</TH>
|
||||
<TH>Bytes per color value</TH>
|
||||
@@ -485,205 +475,9 @@ colors are encoded using an initial byte of "257 - count"
|
||||
followed by the color value bytes.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><A NAME="ENCODING">Pixel Value Coding</A></H2>
|
||||
|
||||
<P>The following sections describe the encoding and decoding of
|
||||
the color values in a CUPS raster file. In general, colors are
|
||||
packed into the minimum number of bytes, with special
|
||||
consideration provided for efficiency of encoding and access.
|
||||
Multi-byte values are stored in the native byte order and
|
||||
automatically swapped as needed when reading them using the CUPS
|
||||
imaging API.</P>
|
||||
|
||||
<H3>CUPS_ORDER_CHUNKED</H3>
|
||||
|
||||
<P>The chunked order provides the pixel value packed in a single
|
||||
place. Pixel values with 8 or more bits per color are stored as
|
||||
an array of colors in order, e.g. for
|
||||
<CODE>CUPS_CSPACE_RGB</CODE> you will see 8/16-bits of red, then
|
||||
blue, then green, then red, green, blue, etc. Pixel values with
|
||||
less than 8 bits per color are packed together as shown in Table
|
||||
4. <I>Multi-byte pixel values are stored in the native word
|
||||
order, just as for 16-bit color values.</I></P>
|
||||
|
||||
<DIV CLASS="table"><TABLE SUMMARY="Chunked Color Values">
|
||||
<CAPTION><A NAME="TABLE4">Table 4: Chunked Color Values</A></CAPTION>
|
||||
<THEAD>
|
||||
<TR>
|
||||
<TH>Bits</TH>
|
||||
<TH>1-color</TH>
|
||||
<TH>3-color</TH>
|
||||
<TH>4-color</TH>
|
||||
<TH>6-color</TH>
|
||||
</TR>
|
||||
</THEAD>
|
||||
<TBODY>
|
||||
<TR>
|
||||
<TD>1</TD>
|
||||
<TD>W/W/W/W/W/W/W/W</TD>
|
||||
<TD>0RGB/0RGB</TD>
|
||||
<TD>CMYK/CMYK</TD>
|
||||
<TD>00KCMYcm</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>2</TD>
|
||||
<TD>WW/WW/WW/WW</TD>
|
||||
<TD>00RRGGBB</TD>
|
||||
<TD>CCMMYYKK</TD>
|
||||
<TD>N/A</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>4</TD>
|
||||
<TD>WWWW/WWWW</TD>
|
||||
<TD>0000RRRRGGGGBBBB<BR>
|
||||
<I>(multi-byte)</I></TD>
|
||||
<TD>CCCCMMMMYYYYKKKK<BR>
|
||||
<I>(multi-byte)</I></TD>
|
||||
<TD>N/A</TD>
|
||||
</TR>
|
||||
</TBODY>
|
||||
</TABLE></DIV>
|
||||
|
||||
<H3>CUPS_ORDER_BANDED</H3>
|
||||
|
||||
<P>The banded order provides each color as a separate line of
|
||||
data. Each color plane for a line is written in sequence, e.g.
|
||||
for the <CODE>CUPS_CSPACE_CMYK</CODE> colorspace you would see
|
||||
all of the cyan pixels for a line followed by the magenta,
|
||||
yellow, and black pixels for that line. This is repeated for all
|
||||
of the lines on the page. Color values are packed starting with
|
||||
the most-significant bit (MSB) first.</P>
|
||||
|
||||
<H3>CUPS_ORDER_PLANAR</H3>
|
||||
|
||||
<P>The planar order provides each color as a separate page of
|
||||
data using a shared page header. Each color plane for a page is
|
||||
written in sequence, e.g. for the <CODE>CUPS_CSPACE_CMYK</CODE>
|
||||
colorspace you would see all of the cyan pixels for a page
|
||||
followed by the magenta, yellow, and black pixels for that page.
|
||||
Color values are packed starting with the most-significant bit
|
||||
(MSB) first. Each line starts on an 8-bit boundary.</P>
|
||||
|
||||
<H3>CUPS_CSPACE_W, CUPS_CSPACE_RGB, CUPS_CSPACE_RGBA, and
|
||||
CUPS_CSPACE_RGBW</H3>
|
||||
|
||||
<P>These colorspaces use the sRGB colorspace definition and
|
||||
whitepoint.</P>
|
||||
|
||||
<H3>CUPS_CSPACE_KCMYcm</H3>
|
||||
|
||||
<P>When <CODE>cupsBitsPerColor</CODE> is 1, 6 color planes are
|
||||
provided - black, cyan, magenta, yellow, light cyan, and light
|
||||
magenta. When <CODE>cupsBitsPerColor</CODE> is greater than 1, 4
|
||||
color planes are provided using the <CODE>CUPS_CSPACE_KCMY</CODE>
|
||||
colorspace instead.</P>
|
||||
|
||||
<P>When <CODE>cupsColorOrder</CODE> is
|
||||
<CODE>CUPS_ORDER_CHUNKED</CODE>, bit 5 corresponds to black and
|
||||
bit 0 corresponds to light magenta. For
|
||||
<CODE>CUPS_ORDER_BANDED</CODE> and
|
||||
<CODE>CUPS_ORDER_PLANAR</CODE>, each color plane is encoded
|
||||
separately.</P>
|
||||
|
||||
<H3>CUPS_CSPACE_CIELab and CUPS_CSPACE_ICCn</H3>
|
||||
|
||||
<P>These colorspaces map a CIE Lab color value with a D65
|
||||
whitepoint to either a 8- or 16-bit per color chunked
|
||||
(<CODE>CUPS_ORDER_CHUNKED</CODE>) format; the banded
|
||||
(<CODE>CUPS_ORDER_BANDED</CODE>) and planar
|
||||
(<CODE>CUPS_ORDER_PLANAR</CODE>) color orders are not
|
||||
supported.</P>
|
||||
|
||||
<P>The values are encoded and decoded using the following
|
||||
formulas:</P>
|
||||
|
||||
<UL>
|
||||
|
||||
<LI>8-bit Encoding:<BR>
|
||||
<I>L8 = 2.55 * L + 0.5<BR>
|
||||
a8 = a + 128.5<BR>
|
||||
b8 = b + 128.5<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>8-bit Decoding:<BR>
|
||||
<I>L = L8 / 2.55<BR>
|
||||
a = a8 - 128<BR>
|
||||
b = b8 - 128<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>16-bit Encoding:<BR>
|
||||
<I>L16 = 655.35 * L + 0.5<BR>
|
||||
a16 = 256 * (a + 128) + 0.5<BR>
|
||||
b16 = 256 * (b + 128) + 0.5<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>16-bit Decoding:<BR>
|
||||
<I>L = L16 / 655.35<BR>
|
||||
a = a16 / 256 - 128<BR>
|
||||
b = b16 / 256 - 128<BR>
|
||||
</I></LI>
|
||||
|
||||
</UL>
|
||||
|
||||
<H3>CUPS_CSPACE_CIEXYZ</H3>
|
||||
|
||||
<P>These colorspaces map a CIE XYZ color value with a D65
|
||||
whitepoint to either a 8- or 16-bit per color chunked
|
||||
(<CODE>CUPS_ORDER_CHUNKED</CODE>) format; the banded
|
||||
(<CODE>CUPS_ORDER_BANDED</CODE>) and planar
|
||||
(<CODE>CUPS_ORDER_PLANAR</CODE>) color orders are not
|
||||
supported.</P>
|
||||
|
||||
<P>The values are encoded and decoded using the following
|
||||
formulas:</P>
|
||||
|
||||
<UL>
|
||||
|
||||
<LI>8-bit Encoding:<BR>
|
||||
<I>X8 = 231.8181 * X + 0.5<BR>
|
||||
Y8 = 231.8181 * Y + 0.5<BR>
|
||||
Z8 = 231.8181 * Z + 0.5<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>8-bit Decoding:<BR>
|
||||
<I>X = X8 / 231.8181<BR>
|
||||
Y = Y8 / 231.8181<BR>
|
||||
Z = Z8 / 231.8181<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>16-bit Encoding:<BR>
|
||||
<I>X16 = 59577.2727 * X + 0.5<BR>
|
||||
Y16 = 59577.2727 * Y + 0.5<BR>
|
||||
Z16 = 59577.2727 * Z + 0.5<BR>
|
||||
</I></LI>
|
||||
|
||||
<LI>16-bit Decoding:<BR>
|
||||
<I>X = X16 / 59577.2727<BR>
|
||||
Y = Y16 / 59577.2727<BR>
|
||||
Z = Z16 / 59577.2727<BR>
|
||||
</I></LI>
|
||||
|
||||
</UL>
|
||||
|
||||
<P>The scaling factor for XYZ values is 1/1.1, or 231.8181 for
|
||||
8-bit values and 59577.2727 for 16-bit values. This allows for a
|
||||
slight overflow of XYZ values when converting from RGB, improving
|
||||
accuracy.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><A NAME="HISTORY">Change History</A></H2>
|
||||
|
||||
<H3>Changes in CUPS 1.2.1</H3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Added new sections on coding pixel values.</li>
|
||||
|
||||
<li>Clarified definitions of color spaces.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<H3>Changes in CUPS 1.2</H3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -31,14 +31,11 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
SSL-encrypted, and TLS-encrypted connections over
|
||||
a single port</LI>
|
||||
|
||||
<LI><EM>Network Printer Discovery;</EM> CUPS can
|
||||
now find printers on the LAN using SNMP</LI>
|
||||
|
||||
</OL></DD>
|
||||
|
||||
|
||||
<DT>Browsing</DT>
|
||||
<DD><OL START="5">
|
||||
<DD><OL START="4">
|
||||
|
||||
<LI><EM>LDAP Support;</EM> CUPS now supports
|
||||
printer sharing via the Lightweight Directory
|
||||
@@ -79,7 +76,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>Web Interface</DT>
|
||||
<DD><OL START="12">
|
||||
<DD><OL START="11">
|
||||
|
||||
<LI><EM>Improved Look and Feel;</EM> The web
|
||||
interface has improved readability and a more
|
||||
@@ -172,7 +169,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>IPP Support</DT>
|
||||
<DD><OL START="31"></EM></LI>
|
||||
<DD><OL START="30"></EM></LI>
|
||||
|
||||
<LI><EM>IPP Notifications;</EM> CUPS now supports
|
||||
the complete IPP notification specification to
|
||||
@@ -272,7 +269,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>Scheduler</DT>
|
||||
<DD><OL START="49">
|
||||
<DD><OL START="48">
|
||||
|
||||
<LI><EM>Remote Printer Caching;</EM> The scheduler
|
||||
now maintains a remote printer cache so that
|
||||
@@ -379,7 +376,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>LPD Client Support</DT>
|
||||
<DD><OL START="69">
|
||||
<DD><OL START="68">
|
||||
|
||||
<LI><EM>Performance Improvements;</EM> CUPS no
|
||||
longer loads every available printer before
|
||||
@@ -396,7 +393,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>Localization and Internationalization</DT>
|
||||
<DD><OL START="72">
|
||||
<DD><OL START="71">
|
||||
|
||||
<LI><EM>Command-Line Programs;</EM> All
|
||||
command-line programs are now fully
|
||||
@@ -414,7 +411,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>Printer Drivers</DT>
|
||||
<DD><OL START="75">
|
||||
<DD><OL START="74">
|
||||
|
||||
<LI><EM>New Drivers;</EM> CUPS 1.2 adds Zebra
|
||||
CPCL and EPL label printer drivers</LI>
|
||||
@@ -449,7 +446,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>CUPS API</DT>
|
||||
<DD><OL START="82">
|
||||
<DD><OL START="81">
|
||||
|
||||
<LI><EM>Thread Safety;</EM> All of the CUPS API
|
||||
is now thread-safe on systems that support POSIX
|
||||
@@ -506,7 +503,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
|
||||
|
||||
<DT>CUPS Imaging API</DT>
|
||||
<DD><OL START="92">
|
||||
<DD><OL START="91">
|
||||
|
||||
<LI><EM>Image API;</EM> The new image API
|
||||
provides access to image files of arbitrary size
|
||||
@@ -522,7 +519,7 @@ HREF="overview.html">"Overview of CUPS"</A> document instead.</P>
|
||||
</OL></DD>
|
||||
|
||||
<DT>Scripting Support</DT>
|
||||
<DD><OL START="94">
|
||||
<DD><OL START="93">
|
||||
|
||||
<LI><EM>PHP Bindings;</EM> The PHP language
|
||||
bindings have been revamped to be more consistent
|
||||
|
||||
|
Antes Largura: | Altura: | Tamanho: 579 B Depois Largura: | Altura: | Tamanho: 638 B |
|
Antes Largura: | Altura: | Tamanho: 544 B Depois Largura: | Altura: | Tamanho: 475 B |
|
Antes Largura: | Altura: | Tamanho: 606 B Depois Largura: | Altura: | Tamanho: 490 B |
|
Antes Largura: | Altura: | Tamanho: 613 B Depois Largura: | Altura: | Tamanho: 702 B |
@@ -2,7 +2,7 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<TITLE>Strona domowa - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
|
||||
<TITLE>Home - 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>
|
||||
@@ -19,7 +19,7 @@ SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
|
||||
<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Strona domowa <IMG
|
||||
ALT=""> Strona Główna <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
@@ -31,19 +31,19 @@ BORDER="0" ALT=""></A>
|
||||
|
||||
<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
|
||||
HEIGHT="4" ALIGN="TOP" BORDER="0"
|
||||
ALT=""> Klasy <IMG
|
||||
ALT=""> Grupy <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=""> Dokumentacja/pomoc <IMG
|
||||
ALT=""> Dokumentacja/Pomoc <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=""> Zadania <IMG
|
||||
ALT=""> Wydruki <IMG
|
||||
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
|
||||
BORDER="0" ALT=""></A>
|
||||
|
||||
@@ -60,59 +60,49 @@ BORDER="0" ALT=""></A>
|
||||
|
||||
<H2 CLASS="title">Witaj!</H2>
|
||||
|
||||
<P>Te strony WWW pozwalają na monitorowanie drukarek i zadań oraz
|
||||
przeprowadzanie zadań administracyjnych systemu. Naciśnij na dowolną
|
||||
powyższą kartę lub poniższy przycisk, aby przeprowadzić zadanie.</P>
|
||||
<P> Poprzez te strony internetowe możesz kontrolować swoje drukarki i wydruki, ale także
|
||||
administrować systemem wydruku. Klikaj na zakładki powyżej lub poniższe przyciski aby wykonać odpowiednie zadania.</P>
|
||||
|
||||
<P>
|
||||
<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Pomoc"></A>
|
||||
<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Dodaj klasę"></A>
|
||||
<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Dodaj drkarkę"></A>
|
||||
<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Zarządzaj klasami"></A>
|
||||
<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Zarządzaj zadaniami"></A>
|
||||
<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Zarządzaj drukarkami"></A>
|
||||
<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Zarządzaj serwerem"></A>
|
||||
<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Dodaj drukarkę"></A>
|
||||
<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Zarządzaj Klasami"></A>
|
||||
<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Zarządzaj wydrukami"></A>
|
||||
<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Zarządzaj Drukarkami"></A>
|
||||
<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Zarządzaj Serwerem"></A>
|
||||
</P>
|
||||
|
||||
<P><I>Jeśli zostaniesz poproszony o nazwę użytkownika i hasło, podaj
|
||||
swój login i hasło lub nazwę użytkownika "root" i hasło.</I></P>
|
||||
<P><I>Jeśli zostaniesz poproszony o nazwę użytkownika i hasło, wprowadź swój login i hasło
|
||||
lub login "root" i hasło tego użytkownika.</I></P>
|
||||
|
||||
<H2 CLASS="title">Informacje o CUPS</H2>
|
||||
<H2 CLASS="title">O systemie CUPS</H2>
|
||||
|
||||
<P>
|
||||
<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
|
||||
STYLE="padding-right: 10px;" ALT="Szczęśliwy komputer i drukarka">
|
||||
STYLE="padding-right: 10px;" ALT="Zadowolony komputer i drukarka">
|
||||
|
||||
<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 dostarcza przenośną warstwę drukowania dla systemów
|
||||
operacyjnych opartych na Uniksie<SUP>®</SUP>. Został napisany
|
||||
i utrzymywany przez <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</a>, aby wypromować standardowe rozwiązanie drukowania.
|
||||
CUPS jest standardowym systemem drukowania używanym na MacOS-ie
|
||||
<SUP>®</SUP> X i większości dystrybucji Linuksa<SUP>®</SUP>.</P>
|
||||
CUPS zapewnia przenośną warstwę drukowania dla systemów bazujących na
|
||||
UNIX<SUP>®</SUP>. Jest rozbudowywany pod opieką <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</a> by promować standard drukowania. CUPS jest domyślnym systemem drukowania używanym w MacOS<SUP>®</SUP> X i większości dystrybucji Linuksa<SUP>®</SUP>.</P>
|
||||
<P>CUPS stosuje <A HREF="http://www.pwg.org/ipp/"
|
||||
TARGET="_blank"> Internetowy Protokół Drukowania ("IPP")</A> jako podstawy do zarządzania wydrukami i ich kolejkami oraz umożliwia przeglądanie drukarek sieciowych i wydruki w oparciu o PostScriptowe Opisy Drukarek ("PPD") by wspierać w drukowaniu każdego użytkownika.<BR CLEAR="ALL"></P>
|
||||
|
||||
<P>CUPS używa <A HREF="http://www.pwg.org/ipp/"
|
||||
TARGET="_blank"> Internetowego protokołu drukowania ("IPP")</A>
|
||||
jako podstawę zarządzania zadaniami drukowania i kolejkami oraz
|
||||
dodaje sieciowe przeglądanie drukarek, a także oparte na
|
||||
PostScriptowym opisie drukarek ("PPD") opcje drukowania do
|
||||
obsługi prawdziwego drukowania.<BR CLEAR="ALL"></P>
|
||||
<H2 CLASS="title">Sterowniki Drukarek i Wsparcie</H2>
|
||||
|
||||
<H2 CLASS="title">Sterowniki drukarek i pomoc techniczna</H2>
|
||||
|
||||
<P>Odwiedź oficjalną stronę CUPS, aby uzyskać sterowniki drukarek i pomoc techniczną:</P>
|
||||
<P>Odwiedź oficjalną stronę CUPS site aby pobrać sterowniki i uzyskać wsparcie:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
|
||||
</PRE>
|
||||
|
||||
<P>Komercyjne wsparcie i ulepszona wersja CUPS o nazwie <A
|
||||
HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> są
|
||||
dostępne na:</P>
|
||||
<P>Komercyjne wsparcie i rozszerzona wersja CUPS zwana <A
|
||||
HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> jest dostępna tu:</P>
|
||||
|
||||
<PRE>
|
||||
<A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
|
||||
@@ -126,10 +116,10 @@ dostępne na:</P>
|
||||
WIDTH="15" HEIGHT="15" ALT=""></TD>
|
||||
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
|
||||
|
||||
<P><SMALL>Common UNIX Printing System, CUPS i logo CUPS są
|
||||
zarejestrowanymi znakami towarowymi <A HREF="http://www.easysw.com">Easy Software
|
||||
Products</A>. Copyright 1997-2006 Easy Software Products,
|
||||
wszelkie prawa zastrzeżone.</SMALL></P>
|
||||
<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-2006 by Easy Software Products,
|
||||
All Rights Reserved.</SMALL></P>
|
||||
|
||||
</TD>
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ all: $(TARGETS)
|
||||
clean:
|
||||
$(RM) $(OBJS) $(TARGETS)
|
||||
$(RM) libcupsimage.so libcupsimage.sl libcupsimage.dylib
|
||||
$(RM) -r 32bit 64bit
|
||||
$(RM) libcupsimage.32.so libcupsimage.64.so
|
||||
|
||||
|
||||
#
|
||||
@@ -117,12 +117,12 @@ installhdrs:
|
||||
|
||||
install32bit:
|
||||
$(INSTALL_DIR) -m 755 $(LIB32DIR)
|
||||
$(INSTALL_LIB) 32bit/libcupsimage.so.2 $(LIB32DIR)/libcupsimage.so.2
|
||||
$(INSTALL_LIB) libcupsimage.32.so.2 $(LIB32DIR)/libcupsimage.so.2
|
||||
$(LN) libcupsimage.so $(LIB32DIR)/libcupsimage.so.2
|
||||
|
||||
install64bit:
|
||||
$(INSTALL_DIR) -m 755 $(LIB64DIR)
|
||||
$(INSTALL_LIB) 64bit/libcupsimage.so.2 $(LIB64DIR)/libcupsimage.so.2
|
||||
$(INSTALL_LIB) libcupsimage.64.so.2 $(LIB64DIR)/libcupsimage.so.2
|
||||
$(LN) libcupsimage.so $(LIB64DIR)/libcupsimage.so.2
|
||||
|
||||
|
||||
@@ -205,32 +205,27 @@ hpgltops: $(HPGLOBJS) common.o ../cups/$(LIBCUPS)
|
||||
|
||||
libcupsimage.so.2 libcupsimage.sl.2: $(IMAGEOBJS)
|
||||
echo Linking $@...
|
||||
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) \
|
||||
-L../cups $(LINKCUPS) -lm
|
||||
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) -lm
|
||||
$(RM) `basename $@ .2`
|
||||
$(LN) $@ `basename $@ .2`
|
||||
|
||||
|
||||
#
|
||||
# 32bit/libcupsimage.so.2
|
||||
# libcupsimage.32.so.2
|
||||
#
|
||||
|
||||
32bit/libcupsimage.so.2: $(IMAGE32OBJS)
|
||||
libcupsimage.32.so.2: $(IMAGE32OBJS)
|
||||
echo Linking 32-bit $@...
|
||||
-mkdir 32bit
|
||||
$(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) \
|
||||
-L../cups/32bit $(LINKCUPS) -lm
|
||||
$(DSO) $(ARCH32FLAGS) $(DSOFLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) -lm
|
||||
|
||||
|
||||
#
|
||||
# 64bit/libcupsimage.so.2
|
||||
# libcupsimage.64.so.2
|
||||
#
|
||||
|
||||
64bit/libcupsimage.so.2: $(IMAGE64OBJS)
|
||||
libcupsimage.64.so.2: $(IMAGE64OBJS)
|
||||
echo Linking 64-bit $@...
|
||||
-mkdir 64bit
|
||||
$(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) \
|
||||
-L../cups/64bit $(LINKCUPS) -lm
|
||||
$(DSO) $(ARCH64FLAGS) $(DSOFLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) -lm
|
||||
|
||||
|
||||
#
|
||||
@@ -252,7 +247,7 @@ libcupsimage.2.dylib: $(IMAGEOBJS)
|
||||
# libcupsimage_s.a
|
||||
#
|
||||
|
||||
libcupsimage_s.a: $(IMAGEOBJS) libcupsimage_s.exp
|
||||
libcupsimage_s.a: $(IMAGEOBJS)
|
||||
echo Linking $@...
|
||||
$(DSO) $(DSOFLAGS) -Wl,-berok,-bexport:libcupsimage_s.exp \
|
||||
-o libcupsimage_s.o $(IMAGEOBJS) $(DSOLIBS) -lm
|
||||
@@ -267,7 +262,6 @@ libcupsimage_s.a: $(IMAGEOBJS) libcupsimage_s.exp
|
||||
libcupsimage.la: $(IMAGEOBJS)
|
||||
echo Linking $@...
|
||||
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) $(DSOLIBS) \
|
||||
-L../cups $(LINKCUPS) \
|
||||
-rpath $(LIBDIR) -version-info 2:2
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* BMP image routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -202,7 +202,10 @@ _cupsImageReadBMP(
|
||||
|
||||
for (y = img->ysize - 1; y >= 0; y --)
|
||||
{
|
||||
ptr = in;
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
ptr = out;
|
||||
else
|
||||
ptr = in;
|
||||
|
||||
switch (depth)
|
||||
{
|
||||
@@ -439,33 +442,37 @@ _cupsImageReadBMP(
|
||||
break;
|
||||
}
|
||||
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(out, img->xsize, saturation, hue);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (lut)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Colorspace conversions for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* The color saturation/hue matrix stuff is provided thanks to Mr. Paul
|
||||
* Haeberli at "http://www.sgi.com/grafica/matrix/index.html".
|
||||
@@ -423,8 +423,7 @@ cupsImageCMYKToRGB(
|
||||
else
|
||||
*out++ = 0;
|
||||
|
||||
if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
|
||||
cupsImageColorSpace >= CUPS_CSPACE_ICC1)
|
||||
if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
|
||||
rgb_to_lab(out - 3);
|
||||
else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
|
||||
rgb_to_xyz(out - 3);
|
||||
@@ -853,22 +852,14 @@ cupsImageRGBToRGB(
|
||||
if (in != out)
|
||||
memcpy(out, in, count * 3);
|
||||
|
||||
if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
|
||||
cupsImageColorSpace >= CUPS_CSPACE_ICC1)
|
||||
if (cupsImageColorSpace >= CUPS_CSPACE_CIEXYZ)
|
||||
{
|
||||
while (count > 0)
|
||||
{
|
||||
rgb_to_lab(out);
|
||||
|
||||
out += 3;
|
||||
count --;
|
||||
}
|
||||
}
|
||||
else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
|
||||
{
|
||||
while (count > 0)
|
||||
{
|
||||
rgb_to_xyz(out);
|
||||
if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
|
||||
rgb_to_lab(out);
|
||||
else
|
||||
rgb_to_xyz(out);
|
||||
|
||||
out += 3;
|
||||
count --;
|
||||
@@ -967,15 +958,13 @@ cupsImageSetRasterColorSpace(
|
||||
* Set the destination colorspace...
|
||||
*/
|
||||
|
||||
cupsImageColorSpace = cs;
|
||||
cupsImageColorSpace = cs;
|
||||
|
||||
/*
|
||||
* Don't use color profiles in colorimetric colorspaces...
|
||||
*/
|
||||
|
||||
if (cs == CUPS_CSPACE_CIEXYZ ||
|
||||
cs == CUPS_CSPACE_CIELab ||
|
||||
cs >= CUPS_CSPACE_ICC1)
|
||||
if (cs >= CUPS_CSPACE_CIEXYZ)
|
||||
cupsImageHaveProfile = 0;
|
||||
}
|
||||
|
||||
@@ -1095,8 +1084,7 @@ cupsImageWhiteToRGB(
|
||||
*out++ = *in;
|
||||
*out++ = *in++;
|
||||
|
||||
if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
|
||||
cupsImageColorSpace >= CUPS_CSPACE_ICC1)
|
||||
if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
|
||||
rgb_to_lab(out - 3);
|
||||
else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
|
||||
rgb_to_xyz(out - 3);
|
||||
@@ -1295,9 +1283,9 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
|
||||
* Convert sRGB to linear RGB...
|
||||
*/
|
||||
|
||||
r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
r = pow(val[0] / 255.0, 0.58823529412);
|
||||
g = pow(val[1] / 255.0, 0.58823529412);
|
||||
b = pow(val[2] / 255.0, 0.58823529412);
|
||||
|
||||
/*
|
||||
* Convert to CIE XYZ...
|
||||
@@ -1327,9 +1315,9 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
|
||||
* numbers are from 0 to 255.
|
||||
*/
|
||||
|
||||
ciel = ciel * 2.55 + 0.5;
|
||||
ciea += 128.5;
|
||||
cieb += 128.5;
|
||||
ciel *= 2.55;
|
||||
ciea += 128;
|
||||
cieb += 128;
|
||||
|
||||
/*
|
||||
* Output 8-bit values...
|
||||
@@ -1343,14 +1331,14 @@ rgb_to_lab(cups_ib_t *val) /* IO - Color value */
|
||||
val[0] = 255;
|
||||
|
||||
if (ciea < 0.0)
|
||||
val[1] = 0;
|
||||
val[1] = 128;
|
||||
else if (ciea < 255.0)
|
||||
val[1] = (int)ciea;
|
||||
else
|
||||
val[1] = 255;
|
||||
|
||||
if (cieb < 0.0)
|
||||
val[2] = 0;
|
||||
val[2] = 128;
|
||||
else if (cieb < 255.0)
|
||||
val[2] = (int)cieb;
|
||||
else
|
||||
@@ -1377,9 +1365,9 @@ rgb_to_xyz(cups_ib_t *val) /* IO - Color value */
|
||||
* Convert sRGB to linear RGB...
|
||||
*/
|
||||
|
||||
r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
|
||||
r = pow(val[0] / 255.0, 0.58823529412);
|
||||
g = pow(val[1] / 255.0, 0.58823529412);
|
||||
b = pow(val[2] / 255.0, 0.58823529412);
|
||||
|
||||
/*
|
||||
* Convert to CIE XYZ...
|
||||
@@ -1390,27 +1378,27 @@ rgb_to_xyz(cups_ib_t *val) /* IO - Color value */
|
||||
ciez = 0.019334 * r + 0.119193 * g + 0.950227 * b;
|
||||
|
||||
/*
|
||||
* Encode as 8-bit XYZ...
|
||||
* Output 8-bit values...
|
||||
*/
|
||||
|
||||
if (ciex < 0.0f)
|
||||
if (ciex < 0.0)
|
||||
val[0] = 0;
|
||||
else if (ciex < 1.1f)
|
||||
val[0] = (int)(231.8181f * ciex + 0.5);
|
||||
else if (ciex < 255.0)
|
||||
val[0] = (int)ciex;
|
||||
else
|
||||
val[0] = 255;
|
||||
|
||||
if (ciey < 0.0f)
|
||||
if (ciey < 0.0)
|
||||
val[1] = 0;
|
||||
else if (ciey < 1.1f)
|
||||
val[1] = (int)(231.8181f * ciey + 0.5);
|
||||
else if (ciey < 255.0)
|
||||
val[1] = (int)ciey;
|
||||
else
|
||||
val[1] = 255;
|
||||
|
||||
if (ciez < 0.0f)
|
||||
if (ciez < 0.0)
|
||||
val[2] = 0;
|
||||
else if (ciez < 1.1f)
|
||||
val[2] = (int)(231.8181f * ciez + 0.5);
|
||||
else if (ciez < 255.0)
|
||||
val[2] = (int)ciez;
|
||||
else
|
||||
val[2] = 255;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* GIF image routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -220,8 +220,6 @@ _cupsImageReadGIF(
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
case CUPS_IMAGE_RGB_CMYK :
|
||||
for (i = ncolors - 1; i >= 0; i --)
|
||||
cupsImageRGBToRGB(cmap[i], cmap[i], 1);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* JPEG image routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -195,6 +195,7 @@ _cupsImageReadJPEG(
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
if ((img->colorspace == CUPS_IMAGE_WHITE && cinfo.out_color_space == JCS_GRAYSCALE) ||
|
||||
(img->colorspace == CUPS_IMAGE_RGB && cinfo.out_color_space == JCS_RGB) ||
|
||||
(img->colorspace == CUPS_IMAGE_CMYK && cinfo.out_color_space == JCS_CMYK))
|
||||
{
|
||||
#ifdef DEBUG
|
||||
@@ -254,9 +255,6 @@ _cupsImageReadJPEG(
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* is only YCC encoded. Support for the higher resolution images will
|
||||
* require a lot of extra code...
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -272,29 +272,39 @@ _cupsImageReadPhotoCD(
|
||||
* put it in the image...
|
||||
*/
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(rgb, 768 * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(rgb, out, 768);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(rgb, out, 768);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(rgb, out, 768);
|
||||
break;
|
||||
if (rotation)
|
||||
_cupsImagePutCol(img, 511 - y - pass, 0, 768, rgb);
|
||||
else
|
||||
_cupsImagePutRow(img, 0, y + pass, 768, rgb);
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, 768 * bpp, lut);
|
||||
|
||||
if (rotation)
|
||||
_cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
|
||||
else
|
||||
_cupsImagePutRow(img, 0, y + pass, 768, out);
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(rgb, out, 768);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(rgb, out, 768);
|
||||
break;
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, 768 * bpp, lut);
|
||||
|
||||
if (rotation)
|
||||
_cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
|
||||
else
|
||||
_cupsImagePutRow(img, 0, y + pass, 768, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Alias PIX image routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -159,7 +159,10 @@ _cupsImageReadPIX(
|
||||
{
|
||||
for (count = 0, y = 0, r = 0, g = 0, b = 0; y < img->ysize; y ++)
|
||||
{
|
||||
ptr = in;
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
ptr = out;
|
||||
else
|
||||
ptr = in;
|
||||
|
||||
for (x = img->xsize; x > 0; x --, count --)
|
||||
{
|
||||
@@ -176,29 +179,34 @@ _cupsImageReadPIX(
|
||||
*ptr++ = b;
|
||||
}
|
||||
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(out, img->xsize, saturation, hue);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (lut)
|
||||
|
||||
@@ -216,7 +216,7 @@ _cupsImageReadPNG(
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
case CUPS_IMAGE_RGB_CMYK :
|
||||
cupsImageRGBToRGB(inptr, out, img->xsize);
|
||||
memcpy(out, inptr, img->xsize * 3);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(inptr, out, img->xsize);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Portable Any Map file routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -261,32 +261,39 @@ _cupsImageReadPNM(
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* SGI image file routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -236,35 +236,45 @@ _cupsImageReadSGI(
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Sun Raster image file routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -330,32 +330,45 @@ _cupsImageReadSunRaster(
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (saturation != 100 || hue != 0)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* TIFF file routines for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 1993-2006 by Easy Software Products.
|
||||
* Copyright 1993-2005 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Easy Software Products and are protected by Federal
|
||||
@@ -783,32 +783,39 @@ _cupsImageReadTIFF(
|
||||
}
|
||||
}
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -916,33 +923,40 @@ _cupsImageReadTIFF(
|
||||
}
|
||||
}
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->ysize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
}
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1060,32 +1074,39 @@ _cupsImageReadTIFF(
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * bpp, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1201,32 +1222,39 @@ _cupsImageReadTIFF(
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->ysize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->ysize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, in);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -1441,32 +1469,39 @@ _cupsImageReadTIFF(
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->xsize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->xsize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, in);
|
||||
}
|
||||
else if (img->colorspace == CUPS_IMAGE_WHITE)
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * 3, lut);
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->xsize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->xsize);
|
||||
break;
|
||||
}
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
if (lut)
|
||||
cupsImageLut(out, img->xsize * 3, lut);
|
||||
|
||||
_cupsImagePutRow(img, 0, y, img->xsize, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1663,32 +1698,39 @@ _cupsImageReadTIFF(
|
||||
if ((saturation != 100 || hue != 0) && bpp > 1)
|
||||
cupsImageRGBAdjust(in, img->ysize, saturation, hue);
|
||||
|
||||
switch (img->colorspace)
|
||||
if (img->colorspace == CUPS_IMAGE_RGB)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
if (lut)
|
||||
cupsImageLut(in, img->ysize * 3, lut);
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_RGB :
|
||||
cupsImageRGBToRGB(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, in);
|
||||
}
|
||||
else if (img->colorspace == CUPS_IMAGE_WHITE)
|
||||
{
|
||||
switch (img->colorspace)
|
||||
{
|
||||
default :
|
||||
break;
|
||||
|
||||
case CUPS_IMAGE_WHITE :
|
||||
cupsImageRGBToWhite(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_BLACK :
|
||||
cupsImageRGBToBlack(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMY :
|
||||
cupsImageRGBToCMY(in, out, img->ysize);
|
||||
break;
|
||||
case CUPS_IMAGE_CMYK :
|
||||
cupsImageRGBToCMYK(in, out, img->ysize);
|
||||
break;
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
|
||||
if (lut)
|
||||
cupsImageLut(out, img->ysize * bpp, lut);
|
||||
|
||||
_cupsImagePutCol(img, x, 0, img->ysize, out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,7 @@
|
||||
* Local functions...
|
||||
*/
|
||||
|
||||
static int exec_code(cups_page_header2_t *header, int *preferred_bits,
|
||||
const char *code);
|
||||
static int exec_code(cups_page_header2_t *header, const char *code);
|
||||
|
||||
|
||||
/*
|
||||
@@ -65,12 +64,6 @@ static int exec_code(cups_page_header2_t *header, int *preferred_bits,
|
||||
* cupsRasterInterpretPPD() - this allows you to do per-page options
|
||||
* without manipulating the options array.
|
||||
*
|
||||
* The "func" argument specifies an optional callback function that is
|
||||
* called prior to the computation of the final raster data. The function
|
||||
* can make changes to the cups_page_header2_t data as needed to use a
|
||||
* supported raster format and then returns 0 on success and -1 if the
|
||||
* requested attributes cannot be supported.
|
||||
*
|
||||
* @since CUPS 1.2@
|
||||
*/
|
||||
|
||||
@@ -79,8 +72,7 @@ cupsRasterInterpretPPD(
|
||||
cups_page_header2_t *h, /* O - Page header */
|
||||
ppd_file_t *ppd, /* I - PPD file */
|
||||
int num_options, /* I - Number of options */
|
||||
cups_option_t *options, /* I - Options */
|
||||
cups_interpret_cb_t func) /* I - Optional page header callback */
|
||||
cups_option_t *options) /* I - Options */
|
||||
{
|
||||
int i; /* Looping var */
|
||||
int status; /* Cummulative status */
|
||||
@@ -92,7 +84,6 @@ cupsRasterInterpretPPD(
|
||||
bottom, /* Bottom position */
|
||||
right, /* Right position */
|
||||
top; /* Top position */
|
||||
int preferred_bits; /* Preferred bits per color */
|
||||
|
||||
|
||||
/*
|
||||
@@ -130,8 +121,7 @@ cupsRasterInterpretPPD(
|
||||
* Apply patches and options to the page header...
|
||||
*/
|
||||
|
||||
status = 0;
|
||||
preferred_bits = 0;
|
||||
status = 0;
|
||||
|
||||
if (ppd)
|
||||
{
|
||||
@@ -140,7 +130,7 @@ cupsRasterInterpretPPD(
|
||||
*/
|
||||
|
||||
if (ppd->patches)
|
||||
status |= exec_code(h, &preferred_bits, ppd->patches);
|
||||
status |= exec_code(h, ppd->patches);
|
||||
|
||||
/*
|
||||
* Then apply printer options in the proper order...
|
||||
@@ -149,28 +139,40 @@ cupsRasterInterpretPPD(
|
||||
if ((count = ppdCollect(ppd, PPD_ORDER_DOCUMENT, &choices)) > 0)
|
||||
{
|
||||
for (i = 0; i < count; i ++)
|
||||
status |= exec_code(h, &preferred_bits, choices[i]->code);
|
||||
status |= exec_code(h, choices[i]->code);
|
||||
}
|
||||
|
||||
if ((count = ppdCollect(ppd, PPD_ORDER_ANY, &choices)) > 0)
|
||||
{
|
||||
for (i = 0; i < count; i ++)
|
||||
status |= exec_code(h, &preferred_bits, choices[i]->code);
|
||||
status |= exec_code(h, choices[i]->code);
|
||||
}
|
||||
|
||||
if ((count = ppdCollect(ppd, PPD_ORDER_PROLOG, &choices)) > 0)
|
||||
{
|
||||
for (i = 0; i < count; i ++)
|
||||
status |= exec_code(h, &preferred_bits, choices[i]->code);
|
||||
status |= exec_code(h, choices[i]->code);
|
||||
}
|
||||
|
||||
if ((count = ppdCollect(ppd, PPD_ORDER_PAGE, &choices)) > 0)
|
||||
{
|
||||
for (i = 0; i < count; i ++)
|
||||
status |= exec_code(h, &preferred_bits, choices[i]->code);
|
||||
status |= exec_code(h, choices[i]->code);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check parameters...
|
||||
*/
|
||||
|
||||
if (!h->HWResolution[0] || !h->HWResolution[1] ||
|
||||
!h->PageSize[0] || !h->PageSize[1] ||
|
||||
(h->cupsBitsPerColor != 1 && h->cupsBitsPerColor != 2 &&
|
||||
h->cupsBitsPerColor != 4 && h->cupsBitsPerColor != 8) ||
|
||||
h->cupsBorderlessScalingFactor < 0.9 ||
|
||||
h->cupsBorderlessScalingFactor > 1.1)
|
||||
return (-1);
|
||||
|
||||
/*
|
||||
* Allow option override for page scaling...
|
||||
*/
|
||||
@@ -228,26 +230,6 @@ cupsRasterInterpretPPD(
|
||||
h->cupsImagingBBox[2] = right;
|
||||
h->cupsImagingBBox[3] = top;
|
||||
|
||||
/*
|
||||
* Use the callback to validate the page header...
|
||||
*/
|
||||
|
||||
if (func && (*func)(h, preferred_bits))
|
||||
return (-1);
|
||||
|
||||
/*
|
||||
* Check parameters...
|
||||
*/
|
||||
|
||||
if (!h->HWResolution[0] || !h->HWResolution[1] ||
|
||||
!h->PageSize[0] || !h->PageSize[1] ||
|
||||
(h->cupsBitsPerColor != 1 && h->cupsBitsPerColor != 2 &&
|
||||
h->cupsBitsPerColor != 4 && h->cupsBitsPerColor != 8 &&
|
||||
h->cupsBitsPerColor != 16) ||
|
||||
h->cupsBorderlessScalingFactor < 0.9 ||
|
||||
h->cupsBorderlessScalingFactor > 1.1)
|
||||
return (-1);
|
||||
|
||||
/*
|
||||
* Compute the bitmap parameters...
|
||||
*/
|
||||
@@ -296,7 +278,7 @@ cupsRasterInterpretPPD(
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_KCMYcm :
|
||||
if (h->cupsBitsPerColor == 1)
|
||||
if (h->cupsBitsPerPixel == 1)
|
||||
{
|
||||
if (h->cupsColorOrder == CUPS_ORDER_CHUNKED)
|
||||
h->cupsBitsPerPixel = 8;
|
||||
@@ -312,7 +294,6 @@ cupsRasterInterpretPPD(
|
||||
*/
|
||||
|
||||
case CUPS_CSPACE_RGBA :
|
||||
case CUPS_CSPACE_RGBW :
|
||||
case CUPS_CSPACE_CMYK :
|
||||
case CUPS_CSPACE_YMCK :
|
||||
case CUPS_CSPACE_KCMY :
|
||||
@@ -341,10 +322,8 @@ cupsRasterInterpretPPD(
|
||||
*/
|
||||
|
||||
static int /* O - 0 on success, -1 on error */
|
||||
exec_code(
|
||||
cups_page_header2_t *h, /* O - Page header */
|
||||
int *preferred_bits,/* O - Preferred bits per color */
|
||||
const char *code) /* I - Option choice to execute */
|
||||
exec_code(cups_page_header2_t *h, /* O - Page header */
|
||||
const char *code) /* I - Option choice to execute */
|
||||
{
|
||||
int i; /* Index into array */
|
||||
int type; /* Type of value */
|
||||
@@ -548,8 +527,6 @@ exec_code(
|
||||
h->cupsMediaType = atoi(value);
|
||||
else if (!strcmp(name, "cupsBitsPerColor") && type == CUPS_TYPE_NUMBER)
|
||||
h->cupsBitsPerColor = atoi(value);
|
||||
else if (!strcmp(name, "cupsPreferredBitsPerColor") && type == CUPS_TYPE_NUMBER)
|
||||
*preferred_bits = atoi(value);
|
||||
else if (!strcmp(name, "cupsColorOrder") && type == CUPS_TYPE_NUMBER)
|
||||
h->cupsColorOrder = (cups_order_t)atoi(value);
|
||||
else if (!strcmp(name, "cupsColorSpace") && type == CUPS_TYPE_NUMBER)
|
||||
@@ -597,6 +574,8 @@ exec_code(
|
||||
if (sscanf(value, "(%63[^)])", h->cupsRenderingIntent) != 1)
|
||||
return (-1);
|
||||
}
|
||||
else
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -184,11 +184,7 @@ static size_t copy_trailer(cups_file_t *fp, pstops_doc_t *doc,
|
||||
size_t linelen, size_t linesize);
|
||||
static void do_prolog(pstops_doc_t *doc, ppd_file_t *ppd);
|
||||
static void do_setup(pstops_doc_t *doc, ppd_file_t *ppd);
|
||||
static void doc_printf(pstops_doc_t *doc, const char *format, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__ ((__format__ (__printf__, 2, 3)))
|
||||
#endif /* __GNUC__ */
|
||||
;
|
||||
static void doc_printf(pstops_doc_t *doc, const char *format, ...);
|
||||
static void doc_puts(pstops_doc_t *doc, const char *s);
|
||||
static void doc_write(pstops_doc_t *doc, const char *s, size_t len);
|
||||
static void end_nup(pstops_doc_t *doc, int number);
|
||||
@@ -890,13 +886,6 @@ copy_dsc(cups_file_t *fp, /* I - File to read from */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Restore the old showpage operator as needed...
|
||||
*/
|
||||
|
||||
if (doc->use_ESPshowpage)
|
||||
puts("userdict/showpage/ESPshowpage load put\n");
|
||||
|
||||
/*
|
||||
* Write/copy the trailer...
|
||||
*/
|
||||
@@ -1072,13 +1061,6 @@ copy_non_dsc(cups_file_t *fp, /* I - File to read from */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Restore the old showpage operator as needed...
|
||||
*/
|
||||
|
||||
if (doc->use_ESPshowpage)
|
||||
puts("userdict/showpage/ESPshowpage load put\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -1703,14 +1685,6 @@ static void
|
||||
do_setup(pstops_doc_t *doc, /* I - Document information */
|
||||
ppd_file_t *ppd) /* I - PPD file */
|
||||
{
|
||||
/*
|
||||
* Disable CTRL-D so that embedded files don't cause printing
|
||||
* errors...
|
||||
*/
|
||||
|
||||
puts("% Disable CTRL-D as an end-of-file marker...");
|
||||
puts("userdict dup(\\004)cvn{}put (\\004\\004)cvn{}put");
|
||||
|
||||
/*
|
||||
* Mark any options from %%IncludeFeature: comments...
|
||||
*/
|
||||
@@ -1856,7 +1830,7 @@ end_nup(pstops_doc_t *doc, /* I - Document information */
|
||||
int number) /* I - Page number */
|
||||
{
|
||||
if (doc->mirror || Orientation || doc->number_up > 1)
|
||||
puts("userdict/ESPsave get restore");
|
||||
puts("userdict /ESPsave get restore");
|
||||
|
||||
switch (doc->number_up)
|
||||
{
|
||||
@@ -2737,12 +2711,13 @@ start_nup(pstops_doc_t *doc, /* I - Document information */
|
||||
ty = 0.5 * (pagew - 3 * l);
|
||||
|
||||
if (doc->normal_landscape)
|
||||
doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
|
||||
doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
|
||||
else
|
||||
doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
|
||||
doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
|
||||
|
||||
doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
|
||||
tx + x * w, ty + y * l, l / bboxl, w / bboxw);
|
||||
tx + x * y * pagel * 0.5, ty + pagew * 0.333,
|
||||
w / bboxw, l / bboxl);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2778,17 +2753,17 @@ start_nup(pstops_doc_t *doc, /* I - Document information */
|
||||
l = w * bboxl / bboxw;
|
||||
}
|
||||
|
||||
tx = 0.5 * (pagel - 3 * w);
|
||||
ty = 0.5 * (pagew - 2 * l);
|
||||
tx = 0.5 * (pagel - 3 * w);
|
||||
ty = 0.5 * (pagew - 2 * l);
|
||||
|
||||
if (doc->normal_landscape)
|
||||
doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
|
||||
doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
|
||||
else
|
||||
doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
|
||||
doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
|
||||
|
||||
doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
|
||||
tx + w * x, ty + l * y, w / bboxw, l / bboxl);
|
||||
|
||||
tx + x * pagel * 0.333, ty + y * pagew * 0.5,
|
||||
w / bboxw, l / bboxl);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -70,24 +70,6 @@
|
||||
#endif /* WIN32 || __EMX__ */
|
||||
|
||||
|
||||
/*
|
||||
* Private structures...
|
||||
*/
|
||||
|
||||
struct _cups_raster_s /**** Raster stream data ****/
|
||||
{
|
||||
unsigned sync; /* Sync word from start of stream */
|
||||
int fd; /* File descriptor */
|
||||
cups_mode_t mode; /* Read/write mode */
|
||||
cups_page_header2_t header; /* Raster header for current page */
|
||||
int count, /* Current row run-length count */
|
||||
remaining, /* Remaining rows in page image */
|
||||
bpp; /* Bytes per pixel/color */
|
||||
unsigned char *pixels, /* Pixels for current row */
|
||||
*pend, /* End of pixel buffer */
|
||||
*pcurrent; /* Current byte in pixel buffer */
|
||||
};
|
||||
|
||||
/*
|
||||
* Local functions...
|
||||
*/
|
||||
@@ -353,9 +335,7 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */
|
||||
}
|
||||
}
|
||||
|
||||
if ((r->header.cupsBitsPerColor == 16 ||
|
||||
r->header.cupsBitsPerPixel == 12 ||
|
||||
r->header.cupsBitsPerPixel == 16) &&
|
||||
if (r->header.cupsBitsPerColor == 16 &&
|
||||
(r->sync == CUPS_RASTER_REVSYNC || r->sync == CUPS_RASTER_REVSYNCv1))
|
||||
{
|
||||
/*
|
||||
@@ -498,16 +478,12 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
|
||||
unsigned remaining; /* Bytes remaining */
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "cupsRasterWritePixels(r=%p, p=%p, len=%u), remaining=%u\n",
|
||||
r, p, len, r->remaining);
|
||||
#endif /* DEBUG */
|
||||
|
||||
if (r == NULL || r->mode != CUPS_RASTER_WRITE || r->remaining == 0)
|
||||
return (0);
|
||||
|
||||
for (remaining = len; remaining > 0; remaining -= bytes, p += bytes)
|
||||
remaining = len;
|
||||
|
||||
while (remaining > 0)
|
||||
{
|
||||
/*
|
||||
* Figure out the number of remaining bytes on the current line...
|
||||
@@ -551,19 +527,14 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
|
||||
*/
|
||||
|
||||
r->remaining --;
|
||||
|
||||
if (r->remaining == 0)
|
||||
return (cups_raster_write(r));
|
||||
else if (r->count == 256)
|
||||
{
|
||||
if (cups_raster_write(r) == 0)
|
||||
return (0);
|
||||
|
||||
cups_raster_write(r);
|
||||
r->count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,11 +562,13 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */
|
||||
*/
|
||||
|
||||
r->remaining --;
|
||||
|
||||
if (r->remaining == 0)
|
||||
return (cups_raster_write(r));
|
||||
}
|
||||
}
|
||||
|
||||
remaining -= bytes;
|
||||
p += bytes;
|
||||
}
|
||||
|
||||
return (len);
|
||||
@@ -667,8 +640,7 @@ cups_raster_read_header(
|
||||
static void
|
||||
cups_raster_update(cups_raster_t *r) /* I - Raster stream */
|
||||
{
|
||||
if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1 ||
|
||||
r->header.cupsNumColors == 0)
|
||||
if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1)
|
||||
{
|
||||
/*
|
||||
* Set the "cupsNumColors" field according to the colorspace...
|
||||
@@ -681,18 +653,41 @@ cups_raster_update(cups_raster_t *r) /* I - Raster stream */
|
||||
case CUPS_CSPACE_WHITE :
|
||||
case CUPS_CSPACE_GOLD :
|
||||
case CUPS_CSPACE_SILVER :
|
||||
case CUPS_CSPACE_ICC1 :
|
||||
r->header.cupsNumColors = 1;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_ICC2 :
|
||||
r->header.cupsNumColors = 2;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_RGB :
|
||||
case CUPS_CSPACE_CMY :
|
||||
case CUPS_CSPACE_YMC :
|
||||
case CUPS_CSPACE_CIEXYZ :
|
||||
case CUPS_CSPACE_CIELab :
|
||||
case CUPS_CSPACE_ICC1 :
|
||||
case CUPS_CSPACE_ICC2 :
|
||||
case CUPS_CSPACE_ICC3 :
|
||||
r->header.cupsNumColors = 3;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_RGBA :
|
||||
case CUPS_CSPACE_RGBW :
|
||||
case CUPS_CSPACE_CMYK :
|
||||
case CUPS_CSPACE_YMCK :
|
||||
case CUPS_CSPACE_KCMY :
|
||||
case CUPS_CSPACE_GMCK :
|
||||
case CUPS_CSPACE_GMCS :
|
||||
case CUPS_CSPACE_ICC4 :
|
||||
r->header.cupsNumColors = 4;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_KCMYcm :
|
||||
if (r->header.cupsBitsPerPixel < 8)
|
||||
r->header.cupsNumColors = 6;
|
||||
else
|
||||
r->header.cupsNumColors = 4;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_ICC5 :
|
||||
case CUPS_CSPACE_ICC6 :
|
||||
case CUPS_CSPACE_ICC7 :
|
||||
@@ -704,24 +699,8 @@ cups_raster_update(cups_raster_t *r) /* I - Raster stream */
|
||||
case CUPS_CSPACE_ICCD :
|
||||
case CUPS_CSPACE_ICCE :
|
||||
case CUPS_CSPACE_ICCF :
|
||||
r->header.cupsNumColors = 3;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_RGBA :
|
||||
case CUPS_CSPACE_RGBW :
|
||||
case CUPS_CSPACE_CMYK :
|
||||
case CUPS_CSPACE_YMCK :
|
||||
case CUPS_CSPACE_KCMY :
|
||||
case CUPS_CSPACE_GMCK :
|
||||
case CUPS_CSPACE_GMCS :
|
||||
r->header.cupsNumColors = 4;
|
||||
break;
|
||||
|
||||
case CUPS_CSPACE_KCMYcm :
|
||||
if (r->header.cupsBitsPerPixel < 8)
|
||||
r->header.cupsNumColors = 6;
|
||||
else
|
||||
r->header.cupsNumColors = 4;
|
||||
r->header.cupsNumColors = r->header.cupsColorSpace -
|
||||
CUPS_CSPACE_ICC1 + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -771,10 +750,6 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
|
||||
int count; /* Count */
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "cups_raster_write(r=%p)\n", r);
|
||||
#endif /* DEBUG */
|
||||
|
||||
/*
|
||||
* Write the row repeat count...
|
||||
*/
|
||||
@@ -782,14 +757,7 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
|
||||
byte = r->count - 1;
|
||||
|
||||
if (cups_write(r->fd, &byte, 1) < 1)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write row repeat count...\n",
|
||||
stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write using a modified TIFF "packbits" compression...
|
||||
@@ -808,22 +776,10 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
|
||||
|
||||
byte = 0;
|
||||
if (cups_write(r->fd, &byte, 1) < 1)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write last pixel count...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
if (cups_write(r->fd, start, r->bpp) < r->bpp)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write last pixel data...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
else if (!memcmp(start, ptr, r->bpp))
|
||||
{
|
||||
@@ -840,22 +796,10 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
|
||||
byte = count - 1;
|
||||
|
||||
if (cups_write(r->fd, &byte, 1) < 1)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write repeated pixel count...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
if (cups_write(r->fd, start, r->bpp) < r->bpp)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write repeated pixel data...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -876,24 +820,12 @@ cups_raster_write(cups_raster_t *r) /* I - Raster stream */
|
||||
byte = 257 - count;
|
||||
|
||||
if (cups_write(r->fd, &byte, 1) < 1)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write non-repeating pixel count...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
count *= r->bpp;
|
||||
|
||||
if (cups_write(r->fd, start, count) < count)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fputs("cups_raster_write: Unable to write non-repeating pixel data...\n", stderr);
|
||||
#endif /* DEBUG */
|
||||
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -303,10 +303,19 @@ typedef struct cups_page_header2_s /**** Version 2 Page Header @since CUPS 1.2@
|
||||
char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2@ */
|
||||
} cups_page_header2_t;
|
||||
|
||||
typedef struct _cups_raster_s cups_raster_t;
|
||||
/**** Raster stream data ****/
|
||||
|
||||
typedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits);
|
||||
typedef struct _cups_raster_s /**** Raster stream data ****/
|
||||
{
|
||||
unsigned sync; /* Sync word from start of stream */
|
||||
int fd; /* File descriptor */
|
||||
cups_mode_t mode; /* Read/write mode */
|
||||
cups_page_header2_t header; /* Raster header for current page */
|
||||
int count, /* Current row run-length count */
|
||||
remaining, /* Remaining rows in page image */
|
||||
bpp; /* Bytes per pixel/color */
|
||||
unsigned char *pixels, /* Pixels for current row */
|
||||
*pend, /* End of pixel buffer */
|
||||
*pcurrent; /* Current byte in pixel buffer */
|
||||
} cups_raster_t;
|
||||
|
||||
|
||||
/*
|
||||
@@ -328,8 +337,7 @@ extern unsigned cupsRasterWritePixels(cups_raster_t *r,
|
||||
extern int cupsRasterInterpretPPD(cups_page_header2_t *h,
|
||||
ppd_file_t *ppd,
|
||||
int num_options,
|
||||
cups_option_t *options,
|
||||
cups_interpret_cb_t func);
|
||||
cups_option_t *options);
|
||||
extern unsigned cupsRasterReadHeader2(cups_raster_t *r,
|
||||
cups_page_header2_t *h);
|
||||
extern unsigned cupsRasterWriteHeader2(cups_raster_t *r,
|
||||
|
||||
@@ -29,7 +29,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.2\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2006-05-21 10:08-0400\n"
|
||||
"POT-Creation-Date: 2006-04-14 14:35-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -2599,15 +2599,6 @@ msgid ""
|
||||
" Note: this program only validates the DSC comments, not the PostScript itself.\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Password for %s on %s? "
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
|
||||
" REF: Page 72, section 5.5\n"
|
||||
msgstr ""
|
||||
|
||||
|
||||
#
|
||||
# End of "$Id$".
|
||||
|
||||
@@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.2\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2006-05-21 10:08-0400\n"
|
||||
"POT-Creation-Date: 2006-04-14 14:35-0400\n"
|
||||
"PO-Revision-Date: 2006-03-25 21:48+0100\n"
|
||||
"Last-Translator: Juan Pablo González Riopedre <riopedre@tiscali.es>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@@ -2990,15 +2990,3 @@ msgstr ""
|
||||
"\n"
|
||||
" Nota: este programa sólo valida los comentarios DSC, no el PostScript en "
|
||||
"sí mismo.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Password for %s on %s? "
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
|
||||
" REF: Page 72, section 5.5\n"
|
||||
msgstr ""
|
||||
" **FALLO** Preferencia %s incorrecta %s.\n"
|
||||
" REF: Página 122, sección 5.17\n"
|
||||
|
||||
@@ -25,7 +25,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.2\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2006-05-21 10:08-0400\n"
|
||||
"POT-Creation-Date: 2006-04-14 14:35-0400\n"
|
||||
"PO-Revision-Date: 2006-03-29 23:44+0900\n"
|
||||
"Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
|
||||
"Language-Team: Japanese <LL@li.org>\n"
|
||||
@@ -2926,15 +2926,3 @@ msgstr ""
|
||||
"\n"
|
||||
" 注意: このプログラムは DSC コメントを検証するだけで、PostScript 自身を検"
|
||||
"証するものではありません。\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Password for %s on %s? "
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
|
||||
" REF: Page 72, section 5.5\n"
|
||||
msgstr ""
|
||||
" **FAIL** 不正な %s が %s を選んでいます!\n"
|
||||
" REF: 122 ページ、セクション 5.17\n"
|
||||
|
||||
@@ -28,12 +28,12 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.2\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2006-05-21 10:08-0400\n"
|
||||
"POT-Creation-Date: 2006-03-23 21:52-0500\n"
|
||||
"PO-Revision-Date: 2006-04-16 00:55+0100\n"
|
||||
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "Options Installed"
|
||||
@@ -78,12 +78,8 @@ msgstr "Nej"
|
||||
msgid "Auto"
|
||||
msgstr "Auto"
|
||||
|
||||
msgid ""
|
||||
"Enter your username and password or the root username and password to access "
|
||||
"this page."
|
||||
msgstr ""
|
||||
"Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för "
|
||||
"att komma åt denna sida."
|
||||
msgid "Enter your username and password or the root username and password to access this page."
|
||||
msgstr "Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för att komma åt denna sida."
|
||||
|
||||
msgid "You must use a https: URL to access this page."
|
||||
msgstr "Du måste använda en https:-url för att komma åt denna sida."
|
||||
@@ -109,10 +105,8 @@ msgstr "%s stöds inte!"
|
||||
msgid "The printer or class was not found."
|
||||
msgstr "Skrivaren eller klassen hittades inte."
|
||||
|
||||
msgid ""
|
||||
"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
|
||||
msgstr ""
|
||||
"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
|
||||
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
|
||||
msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
|
||||
|
||||
#, c-format
|
||||
msgid "The printer-uri \"%s\" contains invalid characters."
|
||||
@@ -149,27 +143,19 @@ msgstr "Språket \"%s\" stöds inte!"
|
||||
msgid "The notify-user-data value is too large (%d > 63 octets)!"
|
||||
msgstr "Värdet för notify-user-data är för stort (%d > 63 okteter)!"
|
||||
|
||||
msgid ""
|
||||
"The notify-lease-duration attribute cannot be used with job subscriptions."
|
||||
msgstr ""
|
||||
"Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
|
||||
msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
|
||||
msgstr "Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
|
||||
|
||||
msgid ""
|
||||
"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
|
||||
msgstr ""
|
||||
"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
|
||||
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
|
||||
msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
|
||||
|
||||
#, c-format
|
||||
msgid "A class named \"%s\" already exists!"
|
||||
msgstr "En klass med namnet \"%s\" finns redan!"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"File device URIs have been disabled! To enable, see the FileDevice directive "
|
||||
"in \"%s/cupsd.conf\"."
|
||||
msgstr ""
|
||||
"Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet "
|
||||
"FileDevice i \"%s/cupsd.conf\"."
|
||||
msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
|
||||
msgstr "Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet FileDevice i \"%s/cupsd.conf\"."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad device-uri \"%s\"!"
|
||||
@@ -462,8 +448,7 @@ msgid "lpq: Unknown destination \"%s\"!\n"
|
||||
msgstr "lpq: Okänt mål \"%s\"!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgstr "lp: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
|
||||
|
||||
msgid "lpq: error - no default destination available.\n"
|
||||
@@ -473,14 +458,11 @@ msgstr "lpq: fel - inget standardmål tillgängligt.\n"
|
||||
msgid "lpq: get-jobs failed: %s\n"
|
||||
msgstr "lpq: get-jobs misslyckades: %s\n"
|
||||
|
||||
msgid ""
|
||||
"Rank Owner Pri Job Files Total Size\n"
|
||||
msgstr ""
|
||||
"Rank Ägare Pri Jobb Filer Total storlek\n"
|
||||
msgid "Rank Owner Pri Job Files Total Size\n"
|
||||
msgstr "Rank Ägare Pri Jobb Filer Total storlek\n"
|
||||
|
||||
msgid "Rank Owner Job File(s) Total Size\n"
|
||||
msgstr ""
|
||||
"Rank Ägare Jobb Fil(er) Total storlek\n"
|
||||
msgstr "Rank Ägare Jobb Fil(er) Total storlek\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: %-33.33s [job %d localhost]\n"
|
||||
@@ -525,12 +507,8 @@ msgid "lpr: error - expected value after -%c option!\n"
|
||||
msgstr "lpr: fel - förväntade värde efter flaggan -%c!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"lpr: warning - '%c' format modifier not supported - output may not be "
|
||||
"correct!\n"
|
||||
msgstr ""
|
||||
"lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte "
|
||||
"blir korrekt!\n"
|
||||
msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
|
||||
msgstr "lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte blir korrekt!\n"
|
||||
|
||||
msgid "lpr: error - expected option=value after -o option!\n"
|
||||
msgstr "lpr: fel - förväntade alternativ=värde efter flaggan -o!\n"
|
||||
@@ -564,8 +542,7 @@ msgid "lpr: error - too many files - \"%s\"\n"
|
||||
msgstr "lpr: fel - för många filer - \"%s\"\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgstr "lpr: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
|
||||
|
||||
msgid "lpr: error - no default destination available.\n"
|
||||
@@ -691,9 +668,7 @@ msgstr "cupsaddsmb: Kunde inte konvertera PPD-fil för %s - %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
|
||||
msgstr ""
|
||||
"cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%"
|
||||
"d)!\n"
|
||||
msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
|
||||
@@ -701,20 +676,15 @@ msgstr "cupsaddsmb: Kunde inte kopiera filer för CUPS-skrivardrivrutin (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
|
||||
msgstr ""
|
||||
"cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%"
|
||||
"d)!\n"
|
||||
msgstr "cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
|
||||
msgstr ""
|
||||
"cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
|
||||
msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
|
||||
msgstr ""
|
||||
"cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%"
|
||||
"d)!\n"
|
||||
msgstr "cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
|
||||
@@ -1097,12 +1067,10 @@ msgstr " OK\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
" WARN Duplex option keyword %s should be named Duplex or "
|
||||
"JCLDuplex!\n"
|
||||
" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
|
||||
" REF: Page 122, section 5.17\n"
|
||||
msgstr ""
|
||||
" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller "
|
||||
"JCLDuplex!\n"
|
||||
" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller JCLDuplex!\n"
|
||||
" REF: Sida 122, sektion 5.17\n"
|
||||
|
||||
msgid " WARN Default choices conflicting!\n"
|
||||
@@ -1155,8 +1123,7 @@ msgid ""
|
||||
" WARN Protocols contains PJL but JCL attributes are not set.\n"
|
||||
" REF: Pages 78-79, section 5.7.\n"
|
||||
msgstr ""
|
||||
" VARN Protokollen innehåller PJL men JCL-attributen är inte "
|
||||
"inställda.\n"
|
||||
" VARN Protokollen innehåller PJL men JCL-attributen är inte inställda.\n"
|
||||
" REF: Sidorna 78-79, sektion 5.7.\n"
|
||||
|
||||
#, c-format
|
||||
@@ -1183,12 +1150,10 @@ msgstr ""
|
||||
" (begränsare=\"%s %s %s %s\")\n"
|
||||
|
||||
msgid ""
|
||||
"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
|
||||
"gz]]\n"
|
||||
"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
|
||||
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
|
||||
msgstr ""
|
||||
"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd"
|
||||
"[.gz]]\n"
|
||||
"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd[.gz]]\n"
|
||||
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
|
||||
|
||||
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
|
||||
@@ -1261,9 +1226,7 @@ msgid "system default destination: %s\n"
|
||||
msgstr "systemstandardmål: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"lpstat: error - %s environment variable names non-existent destination \"%s"
|
||||
"\"!\n"
|
||||
msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgstr "lpstat: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
|
||||
|
||||
msgid "no system default destination\n"
|
||||
@@ -1557,12 +1520,10 @@ msgstr ""
|
||||
"\n"
|
||||
" lpadmin [-h server] -d mål\n"
|
||||
" lpadmin [-h server] -x mål\n"
|
||||
" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m "
|
||||
"modell]\n"
|
||||
" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m modell]\n"
|
||||
" [-r ta-bort-klass] [-v enhet] [-D beskrivning]\n"
|
||||
" [-P ppd-fil] [-o namn=värde]\n"
|
||||
" [-u allow:användare,användare] [-u deny:användare,"
|
||||
"användare]\n"
|
||||
" [-u allow:användare,användare] [-u deny:användare,användare]\n"
|
||||
"\n"
|
||||
|
||||
#, c-format
|
||||
@@ -1662,11 +1623,8 @@ msgstr "lp: Varning - flagga för innehållstyp ignorerades!\n"
|
||||
msgid "lp: Unknown option '%c'!\n"
|
||||
msgstr "lp: Okänd flagga \"%c\"!\n"
|
||||
|
||||
msgid ""
|
||||
"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
|
||||
msgstr ""
|
||||
"lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
|
||||
"anges!\n"
|
||||
msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
|
||||
msgstr "lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "lp: Unable to access \"%s\" - %s\n"
|
||||
@@ -1850,8 +1808,7 @@ msgstr "lppasswd: Lösenordsfil inte uppdaterad!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "lppasswd: failed to backup old password file: %s\n"
|
||||
msgstr ""
|
||||
"lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
|
||||
msgstr "lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "lppasswd: failed to rename password file: %s\n"
|
||||
@@ -1902,12 +1859,8 @@ msgstr "Ändra klass"
|
||||
msgid "Add Class"
|
||||
msgstr "Lägg till klass"
|
||||
|
||||
msgid ""
|
||||
"The class name may only contain up to 127 printable characters and may not "
|
||||
"contain spaces, slashes (/), or the pound sign (#)."
|
||||
msgstr ""
|
||||
"Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte "
|
||||
"innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
|
||||
msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
|
||||
msgstr "Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
|
||||
|
||||
msgid "Unable to modify class:"
|
||||
msgstr "Kunde inte ändra klass:"
|
||||
@@ -1921,12 +1874,8 @@ msgstr "Ändra skrivare"
|
||||
msgid "Add Printer"
|
||||
msgstr "Lägg till skrivare"
|
||||
|
||||
msgid ""
|
||||
"The printer name may only contain up to 127 printable characters and may not "
|
||||
"contain spaces, slashes (/), or the pound sign (#)."
|
||||
msgstr ""
|
||||
"Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får "
|
||||
"inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
|
||||
msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
|
||||
msgstr "Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
|
||||
|
||||
msgid "Unable to get list of printer drivers:"
|
||||
msgstr "Kunde inte få tag på listan av skrivardrivrutiner:"
|
||||
@@ -2213,8 +2162,7 @@ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
|
||||
msgstr "cupsaddsmb: Inga Windows-skrivardrivrutiner är installerade!\n"
|
||||
|
||||
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
|
||||
msgstr ""
|
||||
"cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
|
||||
msgstr "cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "lpadmin: Printer %s is already a member of class %s.\n"
|
||||
@@ -2257,8 +2205,7 @@ msgid "Usage: lpmove job/src dest\n"
|
||||
msgstr "Användning: lpmove jobb/källa mål\n"
|
||||
|
||||
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
|
||||
msgstr ""
|
||||
"lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
|
||||
msgstr "lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s accepting requests since %s\n"
|
||||
@@ -2308,19 +2255,15 @@ msgid "%s: Error - expected hostname after '-h' option!\n"
|
||||
msgstr "%s: Fel - förväntade värdnamn efter flaggan \"-h\"!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgstr "%s: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: error - no default destination available.\n"
|
||||
msgstr "%s: fel - inget standardmål tillgängligt.\n"
|
||||
|
||||
msgid ""
|
||||
"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
|
||||
msgstr ""
|
||||
"Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] "
|
||||
"[+intervall]\n"
|
||||
msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
|
||||
msgstr "Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] [+intervall]\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Error - expected hostname after '-H' option!\n"
|
||||
@@ -2331,12 +2274,8 @@ msgid "%s: Error - expected value after '-%c' option!\n"
|
||||
msgstr "%s: Fel - förväntade värde efter flaggan \"-%c\"!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Warning - '%c' format modifier not supported - output may not be "
|
||||
"correct!\n"
|
||||
msgstr ""
|
||||
"%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte "
|
||||
"blir korrekt!\n"
|
||||
msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
|
||||
msgstr "%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte blir korrekt!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: error - expected option=value after '-o' option!\n"
|
||||
@@ -2367,8 +2306,7 @@ msgid "%s: Error - too many files - \"%s\"\n"
|
||||
msgstr "%s: Fel - för många filer - \"%s\"\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
|
||||
msgstr "%s: Fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
|
||||
|
||||
#, c-format
|
||||
@@ -2488,19 +2426,12 @@ msgid "%s: Warning - content type option ignored!\n"
|
||||
msgstr "%s: Varning - flagga för innehållstyp ignorerades!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
|
||||
msgstr ""
|
||||
"%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
|
||||
"anges!\n"
|
||||
msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
|
||||
msgstr "%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
|
||||
"option!\n"
|
||||
msgstr ""
|
||||
"%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter "
|
||||
"flaggan \"-W\"!\n"
|
||||
msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
|
||||
msgstr "%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter flaggan \"-W\"!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Error - expected destination after '-b' option!\n"
|
||||
@@ -2591,17 +2522,11 @@ msgstr ""
|
||||
msgid " WARN Line %d only contains whitespace!\n"
|
||||
msgstr " VARN Rad %d innehåller endast blanktecken!\n"
|
||||
|
||||
msgid ""
|
||||
" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
|
||||
msgstr ""
|
||||
" VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
|
||||
msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
|
||||
msgstr " VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
|
||||
|
||||
msgid ""
|
||||
" WARN Non-Windows PPD files should use lines ending with only LF, "
|
||||
"not CR LF!\n"
|
||||
msgstr ""
|
||||
" VARN Icke-Windows PPD-filer bör använda radslut med endast LF, "
|
||||
"inte CR LF!\n"
|
||||
msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
|
||||
msgstr " VARN Icke-Windows PPD-filer bör använda radslut med endast LF, inte CR LF!\n"
|
||||
|
||||
msgid "Printer Maintenance"
|
||||
msgstr "Skrivarunderhåll"
|
||||
@@ -2626,26 +2551,16 @@ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
|
||||
msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
" **FAIL** Default translation string for option %s contains 8-bit "
|
||||
"characters!\n"
|
||||
msgstr ""
|
||||
" **FEL** Standardöversättningssträng för flaggan %s innehåller 8-"
|
||||
"bitars tecken!\n"
|
||||
msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
|
||||
msgstr " **FEL** Standardöversättningssträng för flaggan %s innehåller 8-bitars tecken!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
|
||||
msgstr ""
|
||||
" **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
|
||||
msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
|
||||
msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
" **FAIL** Default translation string for option %s choice %s contains "
|
||||
"8-bit characters!\n"
|
||||
msgstr ""
|
||||
" **FEL** Standardöversättningssträng för flaggan %s val %s innehåller "
|
||||
"8-bitars tecken!\n"
|
||||
msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
|
||||
msgstr " **FEL** Standardöversättningssträng för flaggan %s val %s innehåller 8-bitars tecken!\n"
|
||||
|
||||
#, c-format
|
||||
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
|
||||
@@ -2676,8 +2591,7 @@ msgstr "Kunde inte kopiera filer för CUPS-skrivardrivrutiner (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
|
||||
msgstr ""
|
||||
"Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
|
||||
msgstr "Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
|
||||
@@ -2771,12 +2685,8 @@ msgid "Job #%d is already completed - can't cancel."
|
||||
msgstr "Jobb #%d är redan färdigt - kan inte avbryta."
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
|
||||
"s:%d%s</A>."
|
||||
msgstr ""
|
||||
"Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%"
|
||||
"s</A>."
|
||||
msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
|
||||
msgstr "Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
|
||||
|
||||
#, c-format
|
||||
msgid "Unsupported format '%s'!"
|
||||
@@ -2890,8 +2800,7 @@ msgid ""
|
||||
"\n"
|
||||
" -h Show program usage\n"
|
||||
"\n"
|
||||
" Note: this program only validates the DSC comments, not the PostScript "
|
||||
"itself.\n"
|
||||
" Note: this program only validates the DSC comments, not the PostScript itself.\n"
|
||||
msgstr ""
|
||||
"Användning: cupstestdsc [flaggor] filnamn.ps [... filnamn.ps]\n"
|
||||
" cupstestdsc [flaggor] -\n"
|
||||
@@ -2900,17 +2809,5 @@ msgstr ""
|
||||
"\n"
|
||||
" -h Visa programanvändning\n"
|
||||
"\n"
|
||||
" Notera: detta program validerar endast DSC-kommentarer, inte själva "
|
||||
"PostScript.\n"
|
||||
" Notera: detta program validerar endast DSC-kommentarer, inte själva PostScript.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Password for %s on %s? "
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
|
||||
" REF: Page 72, section 5.5\n"
|
||||
msgstr ""
|
||||
" **FEL** Felaktigt %s val %s!\n"
|
||||
" REF: Sida 122, sektion 5.17\n"
|
||||
|
||||
@@ -46,8 +46,7 @@ MAN5 = classes.conf.$(MAN5EXT) \
|
||||
cupsd.conf.$(MAN5EXT) \
|
||||
mime.convs.$(MAN5EXT) \
|
||||
mime.types.$(MAN5EXT) \
|
||||
printers.conf.$(MAN5EXT) \
|
||||
subscriptions.conf.$(MAN5EXT)
|
||||
printers.conf.$(MAN5EXT)
|
||||
MAN7 = backend.$(MAN7EXT) \
|
||||
filter.$(MAN7EXT)
|
||||
MAN8 = accept.$(MAN8EXT) \
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
.\"
|
||||
.\" "$Id: subscriptions.conf.man 5099 2006-02-13 02:46:10Z mike $"
|
||||
.\"
|
||||
.\" subscriptions.conf man page for the Common UNIX Printing System (CUPS).
|
||||
.\"
|
||||
.\" Copyright 2006 by Easy Software Products.
|
||||
.\"
|
||||
.\" These coded instructions, statements, and computer programs are the
|
||||
.\" property of Easy Software Products and are protected by Federal
|
||||
.\" copyright law. Distribution and use rights are outlined in the file
|
||||
.\" "LICENSE.txt" which should have been included with this file. If this
|
||||
.\" file is missing or damaged please contact Easy Software Products
|
||||
.\" at:
|
||||
.\"
|
||||
.\" Attn: CUPS Licensing Information
|
||||
.\" Easy Software Products
|
||||
.\" 44141 Airport View Drive, Suite 204
|
||||
.\" Hollywood, Maryland 20636 USA
|
||||
.\"
|
||||
.\" Voice: (301) 373-9600
|
||||
.\" EMail: cups-info@cups.org
|
||||
.\" WWW: http://www.cups.org
|
||||
.\"
|
||||
.TH subscriptions.conf 5 "Common UNIX Printing System" "30 April 2006" "Easy Software Products"
|
||||
.SH NAME
|
||||
subscriptions.conf \- subscriptions file for cups
|
||||
.SH DESCRIPTION
|
||||
The \fIsubscriptions.conf\fR file defines the local subscriptions
|
||||
that are active. It is normally located in the \fI/etc/cups\fR
|
||||
directory and is generated automatically by the \fIcupsd(8)\fR
|
||||
program when subscriptions are created, renewed, or cancelled.
|
||||
.LP
|
||||
Each line in the file can be a configuration directive, a blank line,
|
||||
or a comment. Comment lines start with the # character.
|
||||
.SH DIRECTIVES
|
||||
.TP 5
|
||||
<Subscription NNN> ... </Subscription>
|
||||
.br
|
||||
Defines a subscription.
|
||||
.TP 5
|
||||
Events name [ ... name ]
|
||||
.br
|
||||
Specifies the events that are subscribed.
|
||||
.TP 5
|
||||
ExpirationTime unix-time
|
||||
.br
|
||||
Specifies the expiration time of a subscription as a UNIX time
|
||||
value in seconds since January 1st, 1970.
|
||||
.TP 5
|
||||
Interval seconds
|
||||
.br
|
||||
Specifies the preferred time interval for event notifications in
|
||||
seconds.
|
||||
.TP 5
|
||||
JobId job-id
|
||||
.br
|
||||
Specifies the job ID associated with the subscription.
|
||||
.TP 5
|
||||
LeaseDuration seconds
|
||||
.br
|
||||
Specifies the number of seconds that the subscription is valid
|
||||
for. If 0, the subscription does not expire.
|
||||
.TP 5
|
||||
NextEventId number
|
||||
.br
|
||||
Specifies the next notify-sequence-number to use for the
|
||||
subscription.
|
||||
.TP 5
|
||||
NextSubscriptionId number
|
||||
.br
|
||||
Specifies the next subscription-id to use.
|
||||
.TP 5
|
||||
Owner username
|
||||
.br
|
||||
Specifies the user that owns the subscription.
|
||||
.TP 5
|
||||
PrinterName printername
|
||||
.br
|
||||
Specifies the printer or class associated with the subscription.
|
||||
.TP 5
|
||||
Recipient uri
|
||||
.br
|
||||
Specifies the notify-recipient-uri value for push-type notifications.
|
||||
.TP 5
|
||||
UserData hex-escaped-data
|
||||
.br
|
||||
Specifies user data to be included in event notifications. This
|
||||
is typically the "from" address in mailto: notifications.
|
||||
.SH SEE ALSO
|
||||
\fIclasses.conf(5)\fR, \fIcupsd(8)\fR, \fIcupsd.conf(5)\fR,
|
||||
\fImime.convs(5)\fR, \fImime.types(5)\fR, \fRprinters.conf(5)\fR
|
||||
.br
|
||||
http://localhost:631/help
|
||||
.SH COPYRIGHT
|
||||
Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
|
||||
.\"
|
||||
.\" End of "$Id: subscriptions.conf.man 5099 2006-02-13 02:46:10Z mike $".
|
||||
.\"
|
||||
@@ -10,7 +10,7 @@
|
||||
\f1\b WARNING\
|
||||
|
||||
\f0\b0 \
|
||||
Because MacOS X packages cannot be uninstalled, you will need to reinstall MacOS X to revert to the original CUPS 1.1.x software.\
|
||||
This is pre-release software and should not be used in production environments. Because MacOS X packages cannot be uninstalled, you will need to reinstall MacOS X to revert to the original CUPS 1.1.x software.\
|
||||
\
|
||||
Please report all problems using the Bugs & Features page on the CUPS home page:\
|
||||
\
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
%copyright 1993-2006 by Easy Software Products, All Rights Reserved.
|
||||
%vendor Easy Software Products
|
||||
%license LICENSE.txt
|
||||
%readme packaging/cups.readme
|
||||
%readme packaging/cups.license
|
||||
%version @CUPS_VERSION@
|
||||
%description The Common UNIX Printing System provides a portable printing
|
||||
%description layer for UNIX(r) operating systems. It has been developed by
|
||||
@@ -172,7 +172,7 @@ $INSTALLSTATIC=@INSTALLSTATIC@
|
||||
|
||||
$MAN1EXT=@MAN1EXT@
|
||||
$MAN5EXT=@MAN5EXT@
|
||||
$MAN7EXT=@MAN7EXT@
|
||||
$MAN8EXT=@MAN8EXT@
|
||||
$MAN8DIR=@MAN8DIR@
|
||||
|
||||
$DSOLIBS=@DSOLIBS@
|
||||
|
||||
@@ -1,21 +1,86 @@
|
||||
README - CUPS v1.2.0b1 - 01/10/2006
|
||||
-----------------------------------
|
||||
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
**** ****
|
||||
**** WARNING: THIS IS BETA RELEASE SOFTWARE AND MAY BE ****
|
||||
**** TOTALLY UNSTABLE. DO NOT USE IN ENVIRONMENTS ****
|
||||
**** WHERE RELIABLE SOFTWARE IS REQUIRED! ****
|
||||
**** ****
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
|
||||
Looking for compile instructions? Read the file "INSTALL.txt"
|
||||
instead...
|
||||
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
**** ****
|
||||
**** IF YOU HAVE A NON-POSTSCRIPT PRINTER, YOU WILL ALSO ****
|
||||
**** NEED TO INSTALL ESP GHOSTSCRIPT OR A PATCHED VERSION ****
|
||||
**** OF A STANDARD GHOSTSCRIPT RELEASE. ****
|
||||
**** ****
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
CUPS provides a portable printing layer for UNIX(r)-based
|
||||
operating systems. It has been developed by Easy Software
|
||||
Products to promote a standard printing solution for all UNIX
|
||||
vendors and users. CUPS provides the System V and Berkeley
|
||||
command-line interfaces.
|
||||
|
||||
CUPS uses the Internet Printing Protocol ("IPP") as the basis
|
||||
for managing print jobs and queues. The Line Printer Daemon
|
||||
("LPD") Server Message Block ("SMB"), and AppSocket (a.k.a.
|
||||
JetDirect) protocols are also supported with reduced
|
||||
functionality. CUPS adds network printer browsing and
|
||||
PostScript Printer Description ("PPD") based printing options to
|
||||
support real-world printing under UNIX.
|
||||
|
||||
CUPS includes an image file RIP that supports printing of image
|
||||
files to non-PostScript printers. A customized version of GNU
|
||||
Ghostscript for CUPS called ESP Ghostscript is available
|
||||
separately to support printing of PostScript files within the
|
||||
CUPS driver framework. Sample drivers for Dymo, EPSON, HP, and
|
||||
OKIDATA printers are included that use these filters.
|
||||
|
||||
Drivers for thousands of printers are provided with our ESP
|
||||
Print Pro software, available at:
|
||||
|
||||
http://www.easysw.com/printpro/
|
||||
|
||||
CUPS is licensed under the GNU General Public License and GNU
|
||||
Library General Public License. Please contact Easy Software
|
||||
Products for commercial support and "binary distribution"
|
||||
rights.
|
||||
|
||||
|
||||
SYSTEM REQUIREMENTS
|
||||
|
||||
Binary distributions require a minimum of 10MB of free disk
|
||||
space. We do not recommend using CUPS on a workstation with less
|
||||
than 32MB of RAM or a PC with less than 16MB of RAM.
|
||||
|
||||
If you are installing from source you'll need ANSI-compliant C
|
||||
and C++ compilers and optionally one or more image file support
|
||||
libraries. Complete source installation instructions can be
|
||||
found in the file "INSTALL.txt".
|
||||
|
||||
|
||||
SOFTWARE REQUIREMENTS
|
||||
|
||||
The following operating system software is required to install
|
||||
one of the binary distributions from Easy Software Products:
|
||||
|
||||
- AIX 5.2 or higher
|
||||
- AIX 4.3 or higher
|
||||
- HP-UX 11.00 or higher
|
||||
- IRIX 6.5 or higher
|
||||
- Linux 2.4 with glibc 2.3 or higher (LSB 3.1)
|
||||
- MacOS X 10.4 or higher (PowerPC or Intel)
|
||||
- Solaris 8 or higher (SPARC or Intel)
|
||||
- Linux 2.4 with glibc 2.2 or higher
|
||||
- Solaris 7 or higher (SPARC or Intel)
|
||||
|
||||
|
||||
INSTALLING "PORTABLE" CUPS DISTRIBUTIONS
|
||||
@@ -25,7 +90,7 @@ distributions in TAR format with installation and removal
|
||||
scripts generated by our ESP Package Manager (EPM) software,
|
||||
which is available from:
|
||||
|
||||
http://www.easysw.com/epm/
|
||||
http://www.easysw.com/epm
|
||||
|
||||
WARNING: Installing CUPS will overwrite your existing printing
|
||||
system. Backup files are made by the installation script and
|
||||
@@ -47,9 +112,10 @@ be installed and the scheduler will be started automatically.
|
||||
|
||||
INSTALLING HOST-SPECIFIC (RPM, DEBIAN, ETC.) DISTRIBUTIONS
|
||||
|
||||
The host-specific distributions use the operating system software
|
||||
installation tools. To install a host-specific distribution
|
||||
please consult your operating system documentation.
|
||||
The host-specific distributions use the operating system
|
||||
software installation tools. To install a host-specific
|
||||
distribution please consult the CUPS Software Administrators
|
||||
Manual or your operating system documentation.
|
||||
|
||||
|
||||
READING THE DOCUMENTATION
|
||||
@@ -98,7 +164,93 @@ shown a menu of available functions.
|
||||
|
||||
DO NOT use the hostname for your machine - it will not work with
|
||||
the default CUPS configuration. To enable administration access
|
||||
on other addresses, consult the on-line help.
|
||||
on other addresses, consult the CUPS Software Administrators
|
||||
Manual.
|
||||
|
||||
|
||||
SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE
|
||||
|
||||
CUPS works best with PPD (PostScript Printer Description)
|
||||
files. In a pinch you can also use System V style printer
|
||||
interface scripts.
|
||||
|
||||
Six sample PPD files are provided with this distribution that
|
||||
utilize the PostScript and image file RIPs and the sample EPSON
|
||||
and HP printer drivers. To add the sample DeskJet driver to the
|
||||
system for a printer connected to the parallel port, use one of
|
||||
the following commands:
|
||||
|
||||
HP-UX:
|
||||
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/c2t0d0_lp -E
|
||||
|
||||
IRIX:
|
||||
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/plp -E
|
||||
|
||||
Linux:
|
||||
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp0 -E
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp1 -E
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp2 -E
|
||||
|
||||
Solaris:
|
||||
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/bpp0 -E
|
||||
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/ecpp0 -E
|
||||
|
||||
Similarly, for the other sample drivers you can use:
|
||||
|
||||
Driver PPD File
|
||||
----------------------------- ------------
|
||||
Dymo Label Printers dymo.ppd
|
||||
EPSON Stylus Color Series stcolor.ppd
|
||||
EPSON Stylus Photo Series stphoto.ppd
|
||||
EPSON Stylus New Color Series stcolor2.ppd
|
||||
EPSON Stylus New Photo Series stphoto2.ppd
|
||||
EPSON 9-pin Series epson9.ppd
|
||||
EPSON 24-pin Series epson24.ppd
|
||||
HP DeskJet Series deskjet.ppd
|
||||
HP New DeskJet Series deskjet2.ppd
|
||||
HP LaserJet Series laserjet.ppd
|
||||
OKIDATA 9-Pin Series okidata9.ppd
|
||||
OKIDATA 24-Pin Series okidat24.ppd
|
||||
|
||||
These sample drivers provide basic printing capabilities, but
|
||||
generally do not exercise the full potential of the printers or
|
||||
CUPS. For commercial printer drivers check out our ESP Print
|
||||
Pro software at:
|
||||
|
||||
http://www.easysw.com/printpro/
|
||||
|
||||
|
||||
PRINTING FILES
|
||||
|
||||
CUPS provides both the System V "lp" and Berkeley "lpr" commands
|
||||
for printing:
|
||||
|
||||
lp filename
|
||||
lpr filename
|
||||
|
||||
Both the "lp" and "lpr" commands support printing options for
|
||||
the driver:
|
||||
|
||||
lp -omedia=A4 -oresolution=600dpi filename
|
||||
lpr -omedia=A4 -oresolution=600dpi filename
|
||||
|
||||
CUPS recognizes many types of images files as well as PDF,
|
||||
PostScript, HP-GL/2, and text files, so you can print those
|
||||
files directly rather than through an application.
|
||||
|
||||
If you have an application that generates output specifically
|
||||
for your printer then you need to use the "-oraw" or "-l"
|
||||
options:
|
||||
|
||||
lp -oraw filename
|
||||
lpr -l filename
|
||||
|
||||
This will prevent the filters from misinterpreting your print
|
||||
file.
|
||||
|
||||
|
||||
LEGAL STUFF
|
||||
|
||||
@@ -140,12 +140,6 @@ GBool Decrypt::makeFileKey2(int encVersion, int encRevision, int keyLength,
|
||||
int len, i, j;
|
||||
GBool ok;
|
||||
|
||||
|
||||
// check whether we have non-zero keyLength
|
||||
if ( keyLength < 5 || keyLength > 16 ) {
|
||||
return gFalse;
|
||||
}
|
||||
|
||||
// generate file key
|
||||
buf = (Guchar *)gmalloc(72 + fileID->getLength());
|
||||
if (userPassword) {
|
||||
|
||||
@@ -59,12 +59,33 @@ LIBOBJS = \
|
||||
PSOutputDev.o \
|
||||
PSTokenizer.o \
|
||||
SecurityHandler.o \
|
||||
SplashBitmap.o \
|
||||
SplashClip.o \
|
||||
Splash.o \
|
||||
SplashFont.o \
|
||||
SplashFontEngine.o \
|
||||
SplashFontFile.o \
|
||||
SplashFontFileID.o \
|
||||
SplashFTFont.o \
|
||||
SplashFTFontEngine.o \
|
||||
SplashFTFontFile.o \
|
||||
SplashOutputDev.o \
|
||||
SplashPath.o \
|
||||
SplashPattern.o \
|
||||
SplashScreen.o \
|
||||
SplashState.o \
|
||||
SplashT1Font.o \
|
||||
SplashT1FontEngine.o \
|
||||
SplashT1FontFile.o \
|
||||
SplashXPath.o \
|
||||
SplashXPathScanner.o \
|
||||
Stream.o \
|
||||
UnicodeMap.o \
|
||||
UnicodeTypeTable.o \
|
||||
XpdfPluginAPI.o \
|
||||
XRef.o
|
||||
|
||||
|
||||
OBJS = pdftops.o $(LIBOBJS)
|
||||
|
||||
TARGETS = libxpdf.a pdftops
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
//========================================================================
|
||||
//
|
||||
// Splash.h
|
||||
//
|
||||
//========================================================================
|
||||
|
||||
#ifndef SPLASH_H
|
||||
#define SPLASH_H
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef USE_GCC_PRAGMAS
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "SplashTypes.h"
|
||||
#include "SplashClip.h"
|
||||
|
||||
class SplashBitmap;
|
||||
struct SplashGlyphBitmap;
|
||||
class SplashState;
|
||||
class SplashPattern;
|
||||
class SplashScreen;
|
||||
class SplashPath;
|
||||
class SplashXPath;
|
||||
class SplashFont;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
// Retrieves the next line of pixels in an image mask. Normally,
|
||||
// fills in *<line> and returns true. If the image stream is
|
||||
// exhausted, returns false.
|
||||
typedef GBool (*SplashImageMaskSource)(void *data, SplashColorPtr pixel);
|
||||
|
||||
// Retrieves the next line of pixels in an image. Normally, fills in
|
||||
// *<line> and returns true. If the image stream is exhausted,
|
||||
// returns false.
|
||||
typedef GBool (*SplashImageSource)(void *data, SplashColorPtr line);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Splash
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
class Splash {
|
||||
public:
|
||||
|
||||
// Create a new rasterizer object.
|
||||
Splash(SplashBitmap *bitmapA);
|
||||
|
||||
~Splash();
|
||||
|
||||
//----- state read
|
||||
|
||||
SplashPattern *getStrokePattern();
|
||||
SplashPattern *getFillPattern();
|
||||
SplashScreen *getScreen();
|
||||
SplashBlendFunc getBlendFunc();
|
||||
SplashCoord getStrokeAlpha();
|
||||
SplashCoord getFillAlpha();
|
||||
SplashCoord getLineWidth();
|
||||
int getLineCap();
|
||||
int getLineJoin();
|
||||
SplashCoord getMiterLimit();
|
||||
SplashCoord getFlatness();
|
||||
SplashCoord *getLineDash();
|
||||
int getLineDashLength();
|
||||
SplashCoord getLineDashPhase();
|
||||
SplashClip *getClip();
|
||||
|
||||
//----- state write
|
||||
|
||||
void setStrokePattern(SplashPattern *strokeColor);
|
||||
void setFillPattern(SplashPattern *fillColor);
|
||||
void setScreen(SplashScreen *screen);
|
||||
void setBlendFunc(SplashBlendFunc func);
|
||||
void setStrokeAlpha(SplashCoord alpha);
|
||||
void setFillAlpha(SplashCoord alpha);
|
||||
void setLineWidth(SplashCoord lineWidth);
|
||||
void setLineCap(int lineCap);
|
||||
void setLineJoin(int lineJoin);
|
||||
void setMiterLimit(SplashCoord miterLimit);
|
||||
void setFlatness(SplashCoord flatness);
|
||||
// the <lineDash> array will be copied
|
||||
void setLineDash(SplashCoord *lineDash, int lineDashLength,
|
||||
SplashCoord lineDashPhase);
|
||||
void clipResetToRect(SplashCoord x0, SplashCoord y0,
|
||||
SplashCoord x1, SplashCoord y1);
|
||||
SplashError clipToRect(SplashCoord x0, SplashCoord y0,
|
||||
SplashCoord x1, SplashCoord y1);
|
||||
SplashError clipToPath(SplashPath *path, GBool eo);
|
||||
|
||||
//----- state save/restore
|
||||
|
||||
void saveState();
|
||||
SplashError restoreState();
|
||||
|
||||
//----- soft mask
|
||||
|
||||
void setSoftMask(SplashBitmap *softMaskA);
|
||||
|
||||
//----- drawing operations
|
||||
|
||||
// Fill the bitmap with <color>. This is not subject to clipping.
|
||||
void clear(SplashColorPtr color);
|
||||
|
||||
// Stroke a path using the current stroke pattern.
|
||||
SplashError stroke(SplashPath *path);
|
||||
|
||||
// Fill a path using the current fill pattern.
|
||||
SplashError fill(SplashPath *path, GBool eo);
|
||||
|
||||
// Fill a path, XORing with the current fill pattern.
|
||||
SplashError xorFill(SplashPath *path, GBool eo);
|
||||
|
||||
// Draw a character, using the current fill pattern.
|
||||
SplashError fillChar(SplashCoord x, SplashCoord y, int c, SplashFont *font);
|
||||
|
||||
// Draw a glyph, using the current fill pattern. This function does
|
||||
// not free any data, i.e., it ignores glyph->freeData.
|
||||
SplashError fillGlyph(SplashCoord x, SplashCoord y,
|
||||
SplashGlyphBitmap *glyph);
|
||||
|
||||
// Draws an image mask using the fill color. This will read <h>
|
||||
// lines of <w> pixels from <src>, starting with the top line. "1"
|
||||
// pixels will be drawn with the current fill color; "0" pixels are
|
||||
// transparent. The matrix:
|
||||
// [ mat[0] mat[1] 0 ]
|
||||
// [ mat[2] mat[3] 0 ]
|
||||
// [ mat[4] mat[5] 1 ]
|
||||
// maps a unit square to the desired destination for the image, in
|
||||
// PostScript style:
|
||||
// [x' y' 1] = [x y 1] * mat
|
||||
// Note that the Splash y axis points downward, and the image source
|
||||
// is assumed to produce pixels in raster order, starting from the
|
||||
// top line.
|
||||
SplashError fillImageMask(SplashImageMaskSource src, void *srcData,
|
||||
int w, int h, SplashCoord *mat);
|
||||
|
||||
// Draw an image. This will read <h> lines of <w> pixels from
|
||||
// <src>, starting with the top line. These pixels are assumed to
|
||||
// be in the source mode, <srcMode>. The following combinations of
|
||||
// source and target modes are supported:
|
||||
// source target
|
||||
// ------ ------
|
||||
// Mono1 Mono1
|
||||
// Mono8 Mono1 -- with dithering
|
||||
// Mono8 Mono8
|
||||
// RGB8 RGB8
|
||||
// BGR8 BGR8
|
||||
// ARGB8 RGB8 -- with source alpha (masking)
|
||||
// BGRA8 BGR8 -- with source alpha (masking)
|
||||
// The matrix behaves as for fillImageMask.
|
||||
SplashError drawImage(SplashImageSource src, void *srcData,
|
||||
SplashColorMode srcMode,
|
||||
int w, int h, SplashCoord *mat);
|
||||
|
||||
//----- misc
|
||||
|
||||
// Return the associated bitmap.
|
||||
SplashBitmap *getBitmap() { return bitmap; }
|
||||
|
||||
// Get a bounding box which includes all modifications since the
|
||||
// last call to clearModRegion.
|
||||
void getModRegion(int *xMin, int *yMin, int *xMax, int *yMax)
|
||||
{ *xMin = modXMin; *yMin = modYMin; *xMax = modXMax; *yMax = modYMax; }
|
||||
|
||||
// Clear the modified region bounding box.
|
||||
void clearModRegion();
|
||||
|
||||
// Get clipping status for the last drawing operation subject to
|
||||
// clipping.
|
||||
SplashClipResult getClipRes() { return opClipRes; }
|
||||
|
||||
// Toggle debug mode on or off.
|
||||
void setDebugMode(GBool debugModeA) { debugMode = debugModeA; }
|
||||
|
||||
private:
|
||||
|
||||
void updateModX(int x);
|
||||
void updateModY(int y);
|
||||
void strokeNarrow(SplashXPath *xPath);
|
||||
void strokeWide(SplashXPath *xPath);
|
||||
SplashXPath *makeDashedPath(SplashXPath *xPath);
|
||||
SplashError fillWithPattern(SplashPath *path, GBool eo,
|
||||
SplashPattern *pattern, SplashCoord alpha);
|
||||
void drawPixel(int x, int y, SplashColorPtr color,
|
||||
SplashCoord alpha, GBool noClip);
|
||||
void drawPixel(int x, int y, SplashPattern *pattern,
|
||||
SplashCoord alpha, GBool noClip);
|
||||
void drawSpan(int x0, int x1, int y, SplashPattern *pattern,
|
||||
SplashCoord alpha, GBool noClip);
|
||||
void xorSpan(int x0, int x1, int y, SplashPattern *pattern, GBool noClip);
|
||||
void dumpPath(SplashPath *path);
|
||||
void dumpXPath(SplashXPath *path);
|
||||
|
||||
SplashBitmap *bitmap;
|
||||
SplashState *state;
|
||||
SplashBitmap *softMask;
|
||||
int modXMin, modYMin, modXMax, modYMax;
|
||||
SplashClipResult opClipRes;
|
||||
GBool debugMode;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,243 @@
|
||||
//========================================================================
|
||||
//
|
||||
// SplashBitmap.cc
|
||||
//
|
||||
//========================================================================
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef USE_GCC_PRAGMAS
|
||||
#pragma implementation
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "gmem.h"
|
||||
#include "SplashErrorCodes.h"
|
||||
#include "SplashBitmap.h"
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// SplashBitmap
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
SplashBitmap::SplashBitmap(int widthA, int heightA, int rowPad,
|
||||
SplashColorMode modeA, GBool topDown) {
|
||||
width = widthA;
|
||||
height = heightA;
|
||||
mode = modeA;
|
||||
switch (mode) {
|
||||
case splashModeMono1:
|
||||
rowSize = (width + 7) >> 3;
|
||||
break;
|
||||
case splashModeMono8:
|
||||
rowSize = width;
|
||||
break;
|
||||
case splashModeAMono8:
|
||||
rowSize = width * 2;
|
||||
break;
|
||||
case splashModeRGB8:
|
||||
case splashModeBGR8:
|
||||
rowSize = width * 3;
|
||||
break;
|
||||
case splashModeARGB8:
|
||||
case splashModeBGRA8:
|
||||
#if SPLASH_CMYK
|
||||
case splashModeCMYK8:
|
||||
#endif
|
||||
rowSize = width * 4;
|
||||
break;
|
||||
#if SPLASH_CMYK
|
||||
case splashModeACMYK8:
|
||||
rowSize = width * 5;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
rowSize += rowPad - 1;
|
||||
rowSize -= rowSize % rowPad;
|
||||
data = (SplashColorPtr)gmalloc(rowSize * height);
|
||||
if (!topDown) {
|
||||
data += (height - 1) * rowSize;
|
||||
rowSize = -rowSize;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SplashBitmap::~SplashBitmap() {
|
||||
if (rowSize < 0) {
|
||||
gfree(data + (height - 1) * rowSize);
|
||||
} else {
|
||||
gfree(data);
|
||||
}
|
||||
}
|
||||
|
||||
SplashError SplashBitmap::writePNMFile(char *fileName) {
|
||||
FILE *f;
|
||||
SplashColorPtr row, p;
|
||||
int x, y;
|
||||
|
||||
if (!(f = fopen(fileName, "wb"))) {
|
||||
return splashErrOpenFile;
|
||||
}
|
||||
|
||||
switch (mode) {
|
||||
|
||||
case splashModeMono1:
|
||||
fprintf(f, "P4\n%d %d\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; x += 8) {
|
||||
fputc(*p ^ 0xff, f);
|
||||
++p;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeMono8:
|
||||
fprintf(f, "P5\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(*p, f);
|
||||
++p;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeAMono8:
|
||||
fprintf(f, "P5\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(splashAMono8M(p), f);
|
||||
p += 2;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeRGB8:
|
||||
fprintf(f, "P6\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(splashRGB8R(p), f);
|
||||
fputc(splashRGB8G(p), f);
|
||||
fputc(splashRGB8B(p), f);
|
||||
p += 3;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeBGR8:
|
||||
fprintf(f, "P6\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(splashBGR8R(p), f);
|
||||
fputc(splashBGR8G(p), f);
|
||||
fputc(splashBGR8B(p), f);
|
||||
p += 3;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeARGB8:
|
||||
fprintf(f, "P6\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(splashARGB8R(p), f);
|
||||
fputc(splashARGB8G(p), f);
|
||||
fputc(splashARGB8B(p), f);
|
||||
p += 4;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
case splashModeBGRA8:
|
||||
fprintf(f, "P6\n%d %d\n255\n", width, height);
|
||||
row = data;
|
||||
for (y = 0; y < height; ++y) {
|
||||
p = row;
|
||||
for (x = 0; x < width; ++x) {
|
||||
fputc(splashBGRA8R(p), f);
|
||||
fputc(splashBGRA8G(p), f);
|
||||
fputc(splashBGRA8B(p), f);
|
||||
p += 4;
|
||||
}
|
||||
row += rowSize;
|
||||
}
|
||||
break;
|
||||
|
||||
#if SPLASH_CMYK
|
||||
case splashModeCMYK8:
|
||||
case splashModeACMYK8:
|
||||
// PNM doesn't support CMYK
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
return splashOk;
|
||||
}
|
||||
|
||||
void SplashBitmap::getPixel(int x, int y, SplashColorPtr pixel) {
|
||||
SplashColorPtr p;
|
||||
|
||||
if (y < 0 || y >= height || x < 0 || x >= width) {
|
||||
return;
|
||||
}
|
||||
switch (mode) {
|
||||
case splashModeMono1:
|
||||
p = &data[y * rowSize + (x >> 3)];
|
||||
pixel[0] = (p[0] >> (7 - (x & 7))) & 1;
|
||||
break;
|
||||
case splashModeMono8:
|
||||
p = &data[y * rowSize + x];
|
||||
pixel[0] = p[0];
|
||||
break;
|
||||
case splashModeAMono8:
|
||||
p = &data[y * rowSize + 2 * x];
|
||||
pixel[0] = p[0];
|
||||
pixel[1] = p[1];
|
||||
break;
|
||||
case splashModeRGB8:
|
||||
case splashModeBGR8:
|
||||
p = &data[y * rowSize + 3 * x];
|
||||
pixel[0] = p[0];
|
||||
pixel[1] = p[1];
|
||||
pixel[2] = p[2];
|
||||
break;
|
||||
case splashModeARGB8:
|
||||
case splashModeBGRA8:
|
||||
#if SPLASH_CMYK
|
||||
case splashModeCMYK8:
|
||||
#endif
|
||||
p = &data[y * rowSize + 4 * x];
|
||||
pixel[0] = p[0];
|
||||
pixel[1] = p[1];
|
||||
pixel[2] = p[2];
|
||||
pixel[3] = p[3];
|
||||
break;
|
||||
#if SPLASH_CMYK
|
||||
case splashModeACMYK8:
|
||||
p = &data[y * rowSize + 5 * x];
|
||||
pixel[0] = p[0];
|
||||
pixel[1] = p[1];
|
||||
pixel[2] = p[2];
|
||||
pixel[3] = p[3];
|
||||
pixel[4] = p[4];
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||