Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet ec7bcce5b8 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.3.4@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
256 arquivos alterados com 8552 adições e 14123 exclusões
+132 -1
Ver Arquivo
@@ -1,6 +1,137 @@
CHANGES.txt - 2007-08-13
CHANGES.txt - 2007-10-30
------------------------
CHANGES IN CUPS V1.3.4
- Documentation updates (STR #2560, STR #2563, STR #2569)
- CUPS now maps the "nb" locale to "no" on all platforms
(STR #2575)
- CUPS did not work with a Windows 2003 R2 KDC (STR #2568)
- ippReadIO() could read past the end of a buffer (STR
#2561)
- The scheduler would crash on shutdown if it was unable
to create a Kerberos context.
- Multiple AuthTypes in cupsd.conf did not work (STR
#2545)
- The snmp.conf file referenced the wrong man page (STR
#2564)
- The cupsaddsmb program didn't handle domain sockets
properly (STR #2556)
- The scheduler now validates device URIs when adding
printers.
- Updated httpSeparateURI() to support hostnames with
the backslash character.
- Updated the Japanese localization (STR #2546)
- The parallel backend now gets the current IEEE-1284
device ID string on Linux (STR #2553)
- The IPP backend now checks the job status at
variable intervals (from 1 to 10 seconds) instead
of every 10 seconds for faster remote printing
(STR #2548)
- "lpr -p" and "lpr -l" did not work (STR #2544)
- Compilation failed when a previous version of CUPS
was installed and was included in the SSL include
path (STR #2538)
- The scheduler did not reject requests with charsets
other than US-ASCII or UTF-8, and the CUPS API
incorrectly passed the locale charset to the scheduler
instead of UTF-8 (STR #2537)
- cups-deviced did not filter out duplicate devices.
- The AppleTalk backend incorrectly added a scheme
listing when AppleTalk was disabled or no printers
were found.
- The PostScript filter generated N^2 copies when the
printer supported collated copies and user requested
reverse-order output.
- The scheduler did not reprint all of the files in a
job that was held.
- The scheduler did not update the printcap file after
removing stale remote queues.
- The cupsd.conf man page incorrectly referenced
"AuthType Kerberos" instead of "AuthType Negotiate".
CHANGES IN CUPS V1.3.3
- The scheduler did not use the attributes-natural-language
attribute when passing the LANG environment variable to
cups-deviced or cups-driverd.
- The scheduler did not use the printer-op-policy when
modifying classes or printers (STR #2525)
- The auth-info-required attribute was not always updated
for remote queues that required authentication.
- The German web interface localization contained errors
(STR #2523)
- The Swedish localization contained errors (STR #2522)
CHANGES IN CUPS V1.3.2
- The 1.3.1 release was incorrectly created from the
1.4.x source tree (STR #2519)
- Added support for 32/64-bit libraries on HP-UX
(STR #2520)
- The scheduler incorrectly used portrait as the default
orientation (STR #2513)
- The scheduler no longer writes the printcap file for
every remote printer update (STR #2512)
- Remote raw printing with multiple copies did not work
(STR #2518)
- Updated the configure script to require at least autoconf
2.60 (STR #2515)
- Some gzip'd PPD files were not read in their entirety
(STR #2510)
CHANGES IN CUPS V1.3.1
- Documentation updates.
- The USB backend on Mac OS X could hang if the driver and
printer did not match.
- Delegated Kerberos credentials were not working.
- "make distclean" incorrectly removed the edit-config.tmpl
files (STR #2508)
- Fix compile problem on HP-UX (STR #2501)
- The cupstestppd utility now tests for resolutions greater
than 99999 DPI to detect a missing "x" between the X and Y
resolutions.
- Fixed many problems in the various translations and added
a new "checkpo" utility to validate them.
- The cupstestppd utility now tests the custom page size code
for CUPS raster drivers.
- cupsLangDefault() did not attempt to return a language that
was supported by the calling application.
- If a remote printer stopped while a job was being sent, the
local queue would also get stopped and the job re-queued,
resulting in duplicate prints in some cases.
- A few Apple-specific job options needed to be omitted when
printing a banner page.
- The new peer credential support did not compile on FreeBSD
(STR #2495)
- Direct links to help files did not set the current section
so the table-of-contents was not shown.
- The configure script did not support --localedir=foo (STR #2488)
- The backends were not displaying their localized messages.
- CUPS-Authenticate-Job did not require Kerberos authentication
on queues protected by Kerberos.
- The Zebra ZPL driver did not work with Brady label printers
(STR #2487)
- Norwegian wasn't localized on Mac OS X.
- getnameinfo() returns an error on some systems when DNS is
not available, leading to numerous problems (STR #2486)
- The cupsfilter command did not work properly on Mac OS X.
- The scheduler makefile contained a typo (STR #2483)
- The TBCP and BCP port monitors did not handle the trailing
CTRL-D in some PostScript output properly.
- Fixed the localization instructions and German template for
the "Find New Printers" button (STR #2478)
- The web interface did not work with the Chinese localization
(STR #2477)
- The web interface home page did not work for languages that
were only partially localized (STR #2472)
- Updated the Spanish web interface localization (STR #2473)
- ppdLocalize() did not work for country-specific localizations.
CHANGES IN CUPS V1.3.0
+3 -2
Ver Arquivo
@@ -1,4 +1,4 @@
CREDITS.txt - 2007-02-05
CREDITS.txt - 2007-09-10
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
@@ -19,6 +19,7 @@ like to thank the following individuals for their contributions:
Till Kamppeter - Bug fixes, beta testing, evangelism.
Kenshi Muto - Japanese localization, patches, and
testing.
Tomohiro Kato - Japanese localization.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Marek Laane - Estonian translation.
@@ -36,7 +37,7 @@ like to thank the following individuals for their contributions:
Opher Shachar - Hebrew localization.
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
Tomohiro Kato - Japanese localization.
Teppo Turlianen - Finnish localization.
Tim Waugh - Lots of patches, testing, and Linux
integration.
Yugami - LDAP browsing support.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
INSTALL - CUPS v1.3.0 - 2007-08-13
INSTALL - CUPS v1.3.2 - 2007-09-18
----------------------------------
This file describes how to compile and install CUPS from source
+2 -2
Ver Arquivo
@@ -108,8 +108,8 @@ INSTALLSTATIC = @INSTALLSTATIC@
# for extra debug info)
#
ALL_CFLAGS = $(SSLFLAGS) @LARGEFILE@ @PTHREAD_FLAGS@ \
$(OPTIONS) $(CFLAGS)
ALL_CFLAGS = $(CFLAGS) $(SSLFLAGS) @LARGEFILE@ @PTHREAD_FLAGS@ \
$(OPTIONS)
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
+1 -2
Ver Arquivo
@@ -63,9 +63,8 @@ distclean: clean
$(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
$(RM) man/cupsd.conf.man man/lpoptions.man
$(RM) packaging/cups.list
$(RM) templates/edit-config.tmpl templates/header.tmpl
$(RM) templates/header.tmpl
-$(RM) doc/*/index.html
-$(RM) templates/*/edit-config.tmpl
-$(RM) templates/*/header.tmpl
-$(RM) -r autom4te*.cache
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.3.0 - 2007-08-13
README - CUPS v1.3.2 - 2007-09-18
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
+85 -4
Ver Arquivo
@@ -32,6 +32,10 @@
# include <linux/lp.h>
# define IOCNR_GET_DEVICE_ID 1
# define LPIOC_GET_DEVICE_ID(len) _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
# include <linux/parport.h>
# include <linux/ppdev.h>
# include <unistd.h>
# include <fcntl.h>
#endif /* __linux */
#ifdef __sun
@@ -68,6 +72,7 @@ backendGetDeviceID(
int manulen; /* Length of manufacturer string */
#ifdef __linux
int length; /* Length of device ID info */
int got_id = 0;
#endif /* __linux */
#if defined(__sun) && defined(ECPPIOC_GETDEVID)
struct ecpp_device_id did; /* Device ID buffer */
@@ -93,9 +98,6 @@ backendGetDeviceID(
if (make_model)
*make_model = '\0';
if (uri)
*uri = '\0';
if (fd >= 0)
{
/*
@@ -105,7 +107,83 @@ backendGetDeviceID(
*device_id = '\0';
#ifdef __linux
if (!ioctl(fd, LPIOC_GET_DEVICE_ID(device_id_size), device_id))
if (ioctl(fd, LPIOC_GET_DEVICE_ID(device_id_size), device_id))
{
/*
* Linux has to implement things differently for every device it seems.
* Since the standard parallel port driver does not provide a simple
* ioctl() to get the 1284 device ID, we have to open the "raw" parallel
* device corresponding to this port and do some negotiation trickery
* to get the current device ID.
*/
if (uri && !strncmp(uri, "parallel:/dev/", 14))
{
char devparport[16]; /* /dev/parportN */
int devparportfd, /* File descriptor for raw device */
status, /* ioctl status */
mode; /* Port mode */
/*
* Since the Linux parallel backend only supports 4 parallel port
* devices, just grab the trailing digit and use it to construct a
* /dev/parportN filename...
*/
snprintf(devparport, sizeof(devparport), "/dev/parport%s",
uri + strlen(uri) - 1);
if ((devparportfd = open(devparport, O_RDWR | O_NOCTTY)) != -1)
{
/*
* Claim the device...
*/
if (!ioctl(devparportfd, PPCLAIM))
{
fcntl(devparport, F_SETFL, fcntl(devparportfd, F_GETFL) | O_NONBLOCK);
mode = IEEE1284_MODE_COMPAT;
if (!ioctl(devparportfd, PPNEGOT, &mode))
{
/*
* Put the device into Device ID mode...
*/
mode = IEEE1284_MODE_NIBBLE | IEEE1284_DEVICEID;
if (!ioctl(devparportfd, PPNEGOT, &mode))
{
/*
* Read the 1284 device ID...
*/
if ((length = read(devparportfd, device_id,
device_id_size - 1)) >= 2)
{
device_id[length] = '\0';
got_id = 1;
}
}
}
/*
* Release the device...
*/
ioctl(devparportfd, PPRELEASE);
}
close(devparportfd);
}
}
}
else
got_id = 1;
if (got_id)
{
/*
* Extract the length of the device ID string from the first two
@@ -168,6 +246,9 @@ backendGetDeviceID(
DEBUG_printf(("backendGetDeviceID: device_id=\"%s\"\n", device_id));
if (scheme && uri)
*uri = '\0';
if (!*device_id)
return (-1);
+167 -134
Ver Arquivo
@@ -67,12 +67,12 @@ static void cancel_job(http_t *http, const char *uri, int id,
const char *resource, const char *user, int version);
static void check_printer_state(http_t *http, const char *uri,
const char *resource, const char *user,
int version);
int version, int job_id);
#ifdef HAVE_LIBZ
static void compress_files(int num_files, char **files);
#endif /* HAVE_LIBZ */
static const char *password_cb(const char *);
static int report_printer_state(ipp_t *ipp);
static int report_printer_state(ipp_t *ipp, int job_id);
#ifdef __APPLE__
static int run_pictwps_filter(char **argv, const char *filename);
@@ -102,9 +102,9 @@ main(int argc, /* I - Number of command-line args */
resource[1024], /* Resource info (printer name) */
addrname[256], /* Address name */
*optptr, /* Pointer to URI options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
*name, /* Name of option */
*value, /* Value of option */
sep; /* Separator character */
int num_files; /* Number of files to print */
char **files, /* Files to print */
*filename; /* Pointer to single filename */
@@ -132,7 +132,8 @@ main(int argc, /* I - Number of command-line args */
ipp_attribute_t *printer_accepting; /* printer-is-accepting-jobs */
int copies, /* Number of copies for job */
copies_remaining; /* Number of copies remaining */
const char *content_type; /* CONTENT_TYPE environment variable */
const char *content_type, /* CONTENT_TYPE environment variable */
*final_content_type; /* FINAL_CONTENT_TYPE environment var */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
@@ -199,8 +200,9 @@ main(int argc, /* I - Number of command-line args */
}
else if (argc < 6)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_STOP);
}
@@ -208,12 +210,16 @@ main(int argc, /* I - Number of command-line args */
* Get the (final) content type...
*/
if ((content_type = getenv("FINAL_CONTENT_TYPE")) == NULL)
if ((content_type = getenv("CONTENT_TYPE")) == NULL)
content_type = "application/octet-stream";
if ((content_type = getenv("CONTENT_TYPE")) == NULL)
content_type = "application/octet-stream";
if (!strncmp(content_type, "printer/", 8))
content_type = "application/vnd.cups-raw";
if ((final_content_type = getenv("FINAL_CONTENT_TYPE")) == NULL)
{
final_content_type = content_type;
if (!strncmp(final_content_type, "printer/", 8))
final_content_type = "application/vnd.cups-raw";
}
/*
* Extract the hostname and printer name from the URI...
@@ -224,8 +230,9 @@ main(int argc, /* I - Number of command-line args */
hostname, sizeof(hostname), &port,
resource, sizeof(resource)) < HTTP_URI_OK)
{
fputs(_("ERROR: Missing device URI on command-line and no "
"DEVICE_URI environment variable!\n"), stderr);
_cupsLangPuts(stderr,
_("ERROR: Missing device URI on command-line and no "
"DEVICE_URI environment variable!\n"));
return (CUPS_BACKEND_STOP);
}
@@ -263,29 +270,30 @@ main(int argc, /* I - Number of command-line args */
* Get the name...
*/
for (ptr = name; *optptr && *optptr != '=';)
if (ptr < (name + sizeof(name) - 1))
*ptr++ = *optptr++;
*ptr = '\0';
name = optptr;
if (*optptr == '=')
while (*optptr && *optptr != '=' && *optptr != '+' && *optptr != '&')
optptr ++;
if ((sep = *optptr) != '\0')
*optptr++ = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
optptr ++;
value = optptr;
for (ptr = value; *optptr && *optptr != '+' && *optptr != '&';)
if (ptr < (value + sizeof(value) - 1))
*ptr++ = *optptr++;
*ptr = '\0';
if (*optptr == '+' || *optptr == '&')
while (*optptr && *optptr != '+' && *optptr != '&')
optptr ++;
if (*optptr)
*optptr++ = '\0';
}
else
value[0] = '\0';
value = (char *)"";
/*
* Process the option...
@@ -327,7 +335,7 @@ main(int argc, /* I - Number of command-line args */
cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED);
else
{
fprintf(stderr,
_cupsLangPrintf(stderr,
_("ERROR: Unknown encryption option value \"%s\"!\n"),
value);
}
@@ -340,7 +348,7 @@ main(int argc, /* I - Number of command-line args */
version = 1;
else
{
fprintf(stderr,
_cupsLangPrintf(stderr,
_("ERROR: Unknown version option value \"%s\"!\n"),
value);
}
@@ -369,8 +377,9 @@ main(int argc, /* I - Number of command-line args */
* Unknown option...
*/
fprintf(stderr, _("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
name, value);
_cupsLangPrintf(stderr,
_("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
name, value);
}
}
}
@@ -422,10 +431,9 @@ main(int argc, /* I - Number of command-line args */
* Point to the single file from stdin...
*/
filename = tmpfilename;
files = &filename;
num_files = 1;
filename = tmpfilename;
num_files = 1;
files = &filename;
send_options = 0;
}
else
@@ -434,10 +442,9 @@ main(int argc, /* I - Number of command-line args */
* Point to the files on the command-line...
*/
num_files = argc - 6;
files = argv + 6;
send_options = strncasecmp(content_type, "application/vnd.cups-", 21) != 0;
num_files = argc - 6;
files = argv + 6;
send_options = 1;
#ifdef HAVE_LIBZ
if (compression)
@@ -470,7 +477,9 @@ main(int argc, /* I - Number of command-line args */
* Try loading authentication information from the environment.
*/
if ((ptr = getenv("AUTH_USERNAME")) != NULL)
const char *ptr = getenv("AUTH_USERNAME");
if (ptr)
cupsSetUser(ptr);
password = getenv("AUTH_PASSWORD");
@@ -488,8 +497,8 @@ main(int argc, /* I - Number of command-line args */
do
{
fprintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
hostname, port);
_cupsLangPrintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
hostname, port);
if ((http = httpConnectEncrypt(hostname, port, cupsEncryption())) == NULL)
{
@@ -505,8 +514,9 @@ main(int argc, /* I - Number of command-line args */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
if (argc == 6 || strcmp(filename, argv[6]))
unlink(filename);
@@ -525,16 +535,16 @@ main(int argc, /* I - Number of command-line args */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
fputs(_("ERROR: Printer not responding!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
fprintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; will "
"retry in %d seconds...\n"),
hostname, delay);
_cupsLangPrintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; "
"will retry in %d seconds...\n"),
hostname, delay);
sleep(delay);
@@ -543,8 +553,8 @@ main(int argc, /* I - Number of command-line args */
}
else if (h_errno)
{
fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
hostname);
_cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
hostname);
return (CUPS_BACKEND_STOP);
}
else
@@ -552,8 +562,9 @@ main(int argc, /* I - Number of command-line args */
recoverable = 1;
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
fputs(_("ERROR: recoverable: Unable to connect to printer; will "
"retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("ERROR: recoverable: Unable to connect to printer; will "
"retry in 30 seconds...\n"));
sleep(30);
}
@@ -572,7 +583,7 @@ main(int argc, /* I - Number of command-line args */
}
fputs("STATE: -connecting-to-device\n", stderr);
fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
_cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (http->hostaddr->addr.sa_family == AF_INET6)
@@ -638,18 +649,18 @@ main(int argc, /* I - Number of command-line args */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
fputs(_("ERROR: Printer not responding!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
fprintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; will "
"retry in %d seconds...\n"),
hostname, delay);
_cupsLangPrintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; "
"will retry in %d seconds...\n"),
hostname, delay);
report_printer_state(supported);
report_printer_state(supported, 0);
sleep(delay);
@@ -663,14 +674,15 @@ main(int argc, /* I - Number of command-line args */
* Switch to IPP/1.0...
*/
fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer does not support IPP/1.1, trying "
"IPP/1.0...\n"));
version = 0;
httpReconnect(http);
}
else if (ipp_status == IPP_NOT_FOUND)
{
fputs(_("ERROR: Destination printer does not exist!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Destination printer does not exist!\n"));
if (supported)
ippDelete(supported);
@@ -679,8 +691,9 @@ main(int argc, /* I - Number of command-line args */
}
else
{
fprintf(stderr, _("ERROR: Unable to get printer status (%s)!\n"),
cupsLastErrorString());
_cupsLangPrintf(stderr,
_("ERROR: Unable to get printer status (%s)!\n"),
cupsLastErrorString());
sleep(10);
}
@@ -713,7 +726,7 @@ main(int argc, /* I - Number of command-line args */
format_sup->values[i].string.text);
}
report_printer_state(supported);
report_printer_state(supported, 0);
}
while (ipp_status > IPP_OK_CONFLICT);
@@ -742,8 +755,9 @@ main(int argc, /* I - Number of command-line args */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
ippDelete(supported);
httpClose(http);
@@ -848,8 +862,7 @@ main(int argc, /* I - Number of command-line args */
num_options = cupsParseOptions(argv[5], 0, &options);
#ifdef __APPLE__
if (content_type != NULL &&
!strcasecmp(content_type, "application/pictwps") && num_files == 1)
if (!strcasecmp(content_type, "application/pictwps") && num_files == 1)
{
if (format_sup != NULL)
{
@@ -875,23 +888,23 @@ main(int argc, /* I - Number of command-line args */
* number of copies to 1...
*/
content_type = "application/postscript";
copies = 1;
copies_remaining = 1;
send_options = 0;
final_content_type = "application/postscript";
copies = 1;
copies_remaining = 1;
send_options = 0;
}
}
#endif /* __APPLE__ */
if (content_type != NULL && format_sup != NULL)
if (format_sup != NULL)
{
for (i = 0; i < format_sup->num_values; i ++)
if (!strcasecmp(content_type, format_sup->values[i].string.text))
if (!strcasecmp(final_content_type, format_sup->values[i].string.text))
break;
if (i < format_sup->num_values)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
"document-format", NULL, content_type);
"document-format", NULL, final_content_type);
}
if (copies_sup && version > 0 && send_options)
@@ -944,7 +957,8 @@ main(int argc, /* I - Number of command-line args */
if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
ipp_status == IPP_PRINTER_BUSY)
{
fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 10 seconds...\n"));
sleep(10);
}
else if ((ipp_status == IPP_BAD_REQUEST ||
@@ -954,25 +968,28 @@ main(int argc, /* I - Number of command-line args */
* Switch to IPP/1.0...
*/
fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer does not support IPP/1.1, trying "
"IPP/1.0...\n"));
version = 0;
httpReconnect(http);
}
else
fprintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
cupsLastErrorString());
_cupsLangPrintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
cupsLastErrorString());
}
else if ((job_id_attr = ippFindAttribute(response, "job-id",
IPP_TAG_INTEGER)) == NULL)
{
fputs(_("NOTICE: Print file accepted - job ID unknown.\n"), stderr);
_cupsLangPuts(stderr,
_("NOTICE: Print file accepted - job ID unknown.\n"));
job_id = 0;
}
else
{
job_id = job_id_attr->values[0].integer;
fprintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"), job_id);
_cupsLangPrintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"),
job_id);
}
ippDelete(response);
@@ -1010,8 +1027,9 @@ main(int argc, /* I - Number of command-line args */
{
ipp_status = cupsLastError();
fprintf(stderr, _("ERROR: Unable to add file %d to job: %s\n"),
job_id, cupsLastErrorString());
_cupsLangPrintf(stderr,
_("ERROR: Unable to add file %d to job: %s\n"),
job_id, cupsLastErrorString());
break;
}
}
@@ -1035,9 +1053,9 @@ main(int argc, /* I - Number of command-line args */
if (!job_id || !waitjob)
continue;
fputs(_("INFO: Waiting for job to complete...\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Waiting for job to complete...\n"));
for (; !job_cancelled;)
for (delay = 1; !job_cancelled;)
{
/*
* Build an IPP_GET_JOB_ATTRIBUTES request...
@@ -1089,8 +1107,9 @@ main(int argc, /* I - Number of command-line args */
{
ippDelete(response);
fprintf(stderr, _("ERROR: Unable to get job %d attributes (%s)!\n"),
job_id, cupsLastErrorString());
_cupsLangPrintf(stderr,
_("ERROR: Unable to get job %d attributes (%s)!\n"),
job_id, cupsLastErrorString());
break;
}
}
@@ -1124,13 +1143,17 @@ main(int argc, /* I - Number of command-line args */
* Check the printer state and report it if necessary...
*/
check_printer_state(http, uri, resource, argv[2], version);
check_printer_state(http, uri, resource, argv[2], version, job_id);
/*
* Wait 10 seconds before polling again...
* Wait 1-10 seconds before polling again...
*/
sleep(10);
sleep(delay);
delay ++;
if (delay > 10)
delay = 1;
}
}
@@ -1145,7 +1168,7 @@ main(int argc, /* I - Number of command-line args */
* Check the printer state and report it if necessary...
*/
check_printer_state(http, uri, resource, argv[2], version);
check_printer_state(http, uri, resource, argv[2], version, job_id);
/*
* Free memory...
@@ -1211,7 +1234,7 @@ cancel_job(http_t *http, /* I - HTTP connection */
ipp_t *request; /* Cancel-Job request */
fputs(_("INFO: Canceling print job...\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Canceling print job...\n"));
request = ippNewRequest(IPP_CANCEL_JOB);
request->request.op.version[1] = version;
@@ -1231,8 +1254,8 @@ cancel_job(http_t *http, /* I - HTTP connection */
ippDelete(cupsDoRequest(http, request, resource));
if (cupsLastError() > IPP_OK_CONFLICT)
fprintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
cupsLastErrorString());
_cupsLangPrintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
cupsLastErrorString());
}
@@ -1246,7 +1269,8 @@ check_printer_state(
const char *uri, /* I - Printer URI */
const char *resource, /* I - Resource path */
const char *user, /* I - Username, if any */
int version) /* I - IPP version */
int version, /* I - IPP version */
int job_id) /* I - Current job ID */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
@@ -1281,7 +1305,7 @@ check_printer_state(
if ((response = cupsDoRequest(http, request, resource)) != NULL)
{
report_printer_state(response);
report_printer_state(response, job_id);
ippDelete(response);
}
}
@@ -1312,25 +1336,25 @@ compress_files(int num_files, /* I - Number of files */
{
if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
{
fprintf(stderr,
_("ERROR: Unable to create temporary compressed print file: "
"%s\n"),
strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to create temporary compressed print "
"file: %s\n"), strerror(errno));
exit(CUPS_BACKEND_FAILED);
}
if ((out = cupsFileOpenFd(fd, "w9")) == NULL)
{
fprintf(stderr,
_("ERROR: Unable to open temporary compressed print file: %s\n"),
strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open temporary compressed print "
"file: %s\n"), strerror(errno));
exit(CUPS_BACKEND_FAILED);
}
if ((in = cupsFileOpen(files[i], "r")) == NULL)
{
fprintf(stderr, _("ERROR: Unable to open print file \"%s\": %s\n"),
files[i], strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open print file \"%s\": %s\n"),
files[i], strerror(errno));
cupsFileClose(out);
exit(CUPS_BACKEND_FAILED);
}
@@ -1339,8 +1363,9 @@ compress_files(int num_files, /* I - Number of files */
while ((bytes = cupsFileRead(in, buffer, sizeof(buffer))) > 0)
if (cupsFileWrite(out, buffer, bytes) < bytes)
{
fprintf(stderr, _("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
(int)bytes, filename, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
(int)bytes, filename, strerror(errno));
cupsFileClose(in);
cupsFileClose(out);
exit(CUPS_BACKEND_FAILED);
@@ -1408,7 +1433,8 @@ password_cb(const char *prompt) /* I - Prompt (not used) */
*/
static int /* O - Number of reasons shown */
report_printer_state(ipp_t *ipp) /* I - IPP response */
report_printer_state(ipp_t *ipp, /* I - IPP response */
int job_id) /* I - Current job ID */
{
int i; /* Looping var */
int count; /* Count of reasons shown... */
@@ -1419,6 +1445,7 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
char unknown[1024]; /* Unknown message string */
const char *prefix; /* Prefix for STATE: line */
char state[1024]; /* State string */
cups_lang_t *language; /* Current localization */
if ((psm = ippFindAttribute(ipp, "printer-state-message",
@@ -1431,15 +1458,20 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
state[0] = '\0';
prefix = "STATE: ";
language = cupsLangDefault();
for (i = 0, count = 0; i < reasons->num_values; i ++)
{
reason = reasons->values[i].string.text;
strlcat(state, prefix, sizeof(state));
strlcat(state, reason, sizeof(state));
if (job_id == 0 || strcmp(reason, "paused"))
{
strlcat(state, prefix, sizeof(state));
strlcat(state, reason, sizeof(state));
prefix = ",";
}
prefix = ",";
message = "";
if (!strncmp(reason, "media-needed", 12))
@@ -1504,11 +1536,11 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
{
count ++;
if (strstr(reasons->values[i].string.text, "error"))
fprintf(stderr, "ERROR: %s\n", message);
fprintf(stderr, "ERROR: %s\n", _cupsLangString(language, message));
else if (strstr(reasons->values[i].string.text, "warning"))
fprintf(stderr, "WARNING: %s\n", message);
fprintf(stderr, "WARNING: %s\n", _cupsLangString(language, message));
else
fprintf(stderr, "INFO: %s\n", message);
fprintf(stderr, "INFO: %s\n", _cupsLangString(language, message));
}
}
@@ -1550,15 +1582,16 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
printer = getenv("PRINTER");
if (!printer)
{
fputs(_("ERROR: PRINTER environment variable not defined!\n"), stderr);
_cupsLangPuts(stderr,
_("ERROR: PRINTER environment variable not defined!\n"));
return (-1);
}
if ((ppdfile = cupsGetPPD(printer)) == NULL)
{
fprintf(stderr,
_("ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"),
printer, cupsLastErrorString());
_cupsLangPrintf(stderr,
_("ERROR: Unable to get PPD file for printer \"%s\" - "
"%s.\n"), printer, cupsLastErrorString());
}
else
{
@@ -1572,8 +1605,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if ((fd = cupsTempFd(pstmpname, sizeof(pstmpname))) < 0)
{
fprintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
strerror(errno));
if (ppdfile)
unlink(ppdfile);
return (-1);
@@ -1629,8 +1662,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
execlp("pictwpstops", printer, argv[1], argv[2], argv[3], argv[4], argv[5],
filename, NULL);
fprintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
strerror(errno));
return (errno);
}
@@ -1642,8 +1675,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
* Error!
*/
fprintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
strerror(errno));
unlink(filename);
if (ppdfile)
unlink(ppdfile);
@@ -1656,8 +1689,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if (wait(&status) < 0)
{
fprintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
strerror(errno));
close(fd);
unlink(filename);
if (ppdfile)
@@ -1673,11 +1706,11 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if (status)
{
if (status >= 256)
fprintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
status / 256);
_cupsLangPrintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
status / 256);
else
fprintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
status);
_cupsLangPrintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
status);
unlink(filename);
return (status);
+81 -71
Ver Arquivo
@@ -125,9 +125,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info */
resource[1024], /* Resource info (printer name) */
*options, /* Pointer to options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr, /* Pointer into name or value */
*name, /* Name of option */
*value, /* Value of option */
sep, /* Separator character */
*filename, /* File to print */
title[256]; /* Title string */
int port; /* Port number */
@@ -186,8 +186,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -276,29 +277,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
for (ptr = name; *options && *options != '=';)
if (ptr < (name + sizeof(name) - 1))
*ptr++ = *options++;
*ptr = '\0';
name = options;
if (*options == '=')
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
if ((sep = *options) != '\0')
*options++ = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
options ++;
value = options;
for (ptr = value; *options && *options != '+' && *options != '&';)
if (ptr < (value + sizeof(value) - 1))
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+' || *options == '&')
while (*options && *options != '+' && *options != '&')
options ++;
if (*options)
*options++ = '\0';
}
else
value[0] = '\0';
value = (char *)"";
/*
* Process the option...
@@ -322,8 +324,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (strchr("cdfglnoprtv", value[0]))
format = value[0];
else
fprintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
value[0]);
_cupsLangPrintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
value[0]);
}
else if (!strcasecmp(name, "mode") && value[0])
{
@@ -336,7 +338,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else if (!strcasecmp(value, "stream"))
mode = MODE_STREAM;
else
fprintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"), value);
_cupsLangPrintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"),
value);
}
else if (!strcasecmp(name, "order") && value[0])
{
@@ -349,7 +352,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else if (!strcasecmp(value, "data,control"))
order = ORDER_DATA_CONTROL;
else
fprintf(stderr, _("ERROR: Unknown file order \"%s\"\n"), value);
_cupsLangPrintf(stderr, _("ERROR: Unknown file order \"%s\"\n"),
value);
}
else if (!strcasecmp(name, "reserve"))
{
@@ -457,8 +461,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (fd == -1)
{
fprintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
filename, strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
filename, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -476,6 +480,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* the remote end...
*/
char *ptr;
for (ptr = title; *ptr; ptr ++)
if (!isalnum(*ptr & 255) && !isspace(*ptr & 255))
*ptr = '_';
@@ -585,9 +591,9 @@ lpd_command(int fd, /* I - Socket connection to LPD host */
if (recv(fd, &status, 1, 0) < 1)
{
fprintf(stderr,
_("WARNING: Remote host did not respond with command status "
"byte after %d seconds!\n"), timeout);
_cupsLangPrintf(stderr,
_("WARNING: Remote host did not respond with command "
"status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -668,7 +674,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
{
fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
_cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
hostname);
return (CUPS_BACKEND_STOP);
}
@@ -690,9 +697,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
*/
fputs("STATE: +connecting-to-device\n", stderr);
fprintf(stderr,
_("INFO: Attempting to connect to host %s for printer %s\n"),
hostname, printer);
_cupsLangPrintf(stderr,
_("INFO: Attempting to connect to host %s for printer %s\n"),
hostname, printer);
for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
delay = 5;;
@@ -791,8 +798,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
httpAddrFreeList(addrlist);
@@ -810,16 +818,15 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
fputs(_("ERROR: Printer not responding!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
fprintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; will "
"retry in %d seconds...\n"),
hostname, delay);
_cupsLangPrintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; "
"will retry in %d seconds...\n"), hostname, delay);
sleep(delay);
@@ -839,8 +846,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
recoverable = 1;
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
fputs(_("ERROR: recoverable: Unable to connect to printer; will "
"retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("ERROR: recoverable: Unable to connect to printer; "
"will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -858,7 +866,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
fputs("STATE: -connecting-to-device\n", stderr);
fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
_cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (addr->addr.addr.sa_family == AF_INET6)
@@ -964,8 +972,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
fprintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
(unsigned)strlen(control));
_cupsLangPrintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
(unsigned)strlen(control));
if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
{
@@ -978,9 +986,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (read(fd, &status, 1) < 1)
{
fprintf(stderr,
_("WARNING: Remote host did not respond with control "
"status byte after %d seconds!\n"), timeout);
_cupsLangPrintf(stderr,
_("WARNING: Remote host did not respond with control "
"status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -988,11 +996,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
if (status != 0)
fprintf(stderr,
_("ERROR: Remote host did not accept control file (%d)\n"),
status);
_cupsLangPrintf(stderr,
_("ERROR: Remote host did not accept control file "
"(%d)\n"), status);
else
fputs(_("INFO: Control file sent successfully\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
}
else
status = 0;
@@ -1013,13 +1021,13 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
fprintf(stderr,
_cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
_("INFO: Sending data file (%lld bytes)\n"),
_("INFO: Sending data file (%lld bytes)\n"),
#else
_("INFO: Sending data file (%ld bytes)\n"),
_("INFO: Sending data file (%ld bytes)\n"),
#endif /* HAVE_LONG_LONG */
CUPS_LLCAST filestats.st_size);
CUPS_LLCAST filestats.st_size);
tbytes = 0;
for (copy = 0; copy < manual_copies; copy ++)
@@ -1028,8 +1036,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
while ((nbytes = read(print_fd, buffer, sizeof(buffer))) > 0)
{
fprintf(stderr, _("INFO: Spooling LPR job, %.0f%% complete...\n"),
100.0 * tbytes / filestats.st_size);
_cupsLangPrintf(stderr,
_("INFO: Spooling LPR job, %.0f%% complete...\n"),
100.0 * tbytes / filestats.st_size);
if (lpd_write(fd, buffer, nbytes) < nbytes)
{
@@ -1063,9 +1072,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (recv(fd, &status, 1, 0) < 1)
{
fprintf(stderr,
_("WARNING: Remote host did not respond with data "
"status byte after %d seconds!\n"), timeout);
_cupsLangPrintf(stderr,
_("WARNING: Remote host did not respond with data "
"status byte after %d seconds!\n"), timeout);
status = 0;
}
@@ -1076,10 +1085,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
status = 0;
if (status != 0)
fprintf(stderr, _("ERROR: Remote host did not accept data file (%d)\n"),
status);
_cupsLangPrintf(stderr,
_("ERROR: Remote host did not accept data file (%d)\n"),
status);
else
fputs(_("INFO: Data file sent successfully\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Data file sent successfully\n"));
}
if (status == 0 && order == ORDER_DATA_CONTROL)
@@ -1093,8 +1103,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
fprintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
(unsigned long)strlen(control));
_cupsLangPrintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
(unsigned long)strlen(control));
if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
{
@@ -1107,9 +1117,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (read(fd, &status, 1) < 1)
{
fprintf(stderr,
_("WARNING: Remote host did not respond with control "
"status byte after %d seconds!\n"), timeout);
_cupsLangPrintf(stderr,
_("WARNING: Remote host did not respond with control "
"status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -1117,11 +1127,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
if (status != 0)
fprintf(stderr,
_("ERROR: Remote host did not accept control file (%d)\n"),
status);
_cupsLangPrintf(stderr,
_("ERROR: Remote host did not accept control file "
"(%d)\n"), status);
else
fputs(_("INFO: Control file sent successfully\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
}
/*
+66 -60
Ver Arquivo
@@ -207,12 +207,7 @@ int main (int argc, const char * argv[])
if (argc == 1 || (argc == 2 && strcmp(argv[1], "-discover") == 0))
{
/* If listDevices() didn't find any devices or returns an error output a
* legacy style announcement.
*
*/
if (listDevices() <= 0)
puts("network pap \"Unknown\" \"AppleTalk Printer Access Protocol (pap)\"");
listDevices();
return 0;
}
@@ -242,7 +237,9 @@ int main (int argc, const char * argv[])
/* Try to open the print file... */
if ((fp = fopen(argv[6], "rb")) == NULL)
{
fprintf(stderr, "ERROR: unable to open print file \"%s\": %s\n", argv[6], strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open print file \"%s\": %s\n"),
argv[6], strerror(errno));
return (1);
}
@@ -289,7 +286,7 @@ static int listDevices(void)
/* Make sure it's okay to use appletalk */
if (!okayToUseAppleTalk())
{
fprintf(stderr, "ERROR: AppleTalk disabled in System Preferences\n");
fprintf(stderr, "INFO: AppleTalk disabled in System Preferences\n");
return -1; /* Network is down */
}
@@ -1363,9 +1360,9 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
*resourcePtr,
*typePtr,
*options, /* Pointer to options */
optionName[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
*optionName, /* Name of option */
*value, /* Value of option */
sep; /* Separator character */
int port; /* Port number (not used) */
int statusInterval; /* */
@@ -1393,53 +1390,54 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
while (*options != '\0')
{
/*
/*
* Get the name...
*/
for (ptr = optionName; *options && *options != '=' && *options != '+'; )
*ptr++ = *options++;
*ptr = '\0';
value[0] = '\0';
optionName = options;
if (*options == '=')
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
if ((sep = *options) != '\0')
*options++ = '\0';
if (sep == '=')
{
/*
/*
* Get the value...
*/
options ++;
for (ptr = value; *options && *options != '+';)
*ptr++ = *options++;
*/
*ptr = '\0';
if (*options == '+')
options ++;
}
else if (*options == '+')
{
options ++;
}
value = options;
/*
while (*options && *options != '+' && *options != '&')
options ++;
if (*options)
*options++ = '\0';
}
else
value = (char *)"";
/*
* Process the option...
*/
if (strcasecmp(optionName, "waiteof") == 0)
if (!strcasecmp(optionName, "waiteof"))
{
/*
* Set the banner...
/*
* Wait for the end of the print file?
*/
if (strcasecmp(value, "on") == 0 ||
strcasecmp(value, "yes") == 0 ||
strcasecmp(value, "true") == 0)
if (!strcasecmp(value, "on") ||
!strcasecmp(value, "yes") ||
!strcasecmp(value, "true"))
{
gWaitEOF = true;
}
else if (strcasecmp(value, "off") == 0 ||
strcasecmp(value, "no") == 0 ||
strcasecmp(value, "false") == 0)
else if (!strcasecmp(value, "off") ||
!strcasecmp(value, "no") ||
!strcasecmp(value, "false"))
{
gWaitEOF = false;
}
@@ -1448,13 +1446,17 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
fprintf(stderr, "WARNING: Boolean expected for waiteof option \"%s\"\n", value);
}
}
else if (strcasecmp(optionName, "status") == 0)
else if (!strcasecmp(optionName, "status"))
{
/*
* Set status reporting interval...
*/
statusInterval = atoi(value);
if (value[0] < '0' || value[0] > '9' ||
statusInterval < 0)
if (value[0] < '0' || value[0] > '9' || statusInterval < 0)
{
fprintf(stderr, "WARNING: number expected for status option \"%s\"\n", value);
fprintf(stderr, "WARNING: number expected for status option \"%s\"\n",
value);
}
else
{
@@ -1469,20 +1471,24 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
if (*resourcePtr == '/')
resourcePtr++;
/* If the resource has a slash we assume the slash seperates the AppleTalk object
* name from the AppleTalk type. If the slash is not present we assume the AppleTalk
* type is LaserWriter.
*/
typePtr = strchr(resourcePtr, '/');
if (typePtr != NULL) {
*typePtr++ = '\0';
} else {
typePtr = "LaserWriter";
}
/* If the resource has a slash we assume the slash seperates the AppleTalk object
* name from the AppleTalk type. If the slash is not present we assume the AppleTalk
* type is LaserWriter.
*/
removePercentEscapes(hostname, zone, NBP_NVE_STR_SIZE + 1);
removePercentEscapes(resourcePtr, name, NBP_NVE_STR_SIZE + 1);
removePercentEscapes(typePtr, type, NBP_NVE_STR_SIZE + 1);
typePtr = strchr(resourcePtr, '/');
if (typePtr != NULL)
{
*typePtr++ = '\0';
}
else
{
typePtr = "LaserWriter";
}
removePercentEscapes(hostname, zone, NBP_NVE_STR_SIZE + 1);
removePercentEscapes(resourcePtr, name, NBP_NVE_STR_SIZE + 1);
removePercentEscapes(typePtr, type, NBP_NVE_STR_SIZE + 1);
return 0;
}
+26 -18
Ver Arquivo
@@ -122,8 +122,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -213,8 +214,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -227,19 +229,22 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (errno == EBUSY)
{
fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT)
{
fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer not connected; will retry in 30 "
"seconds...\n"));
sleep(30);
}
else
{
fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -279,13 +284,13 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
fprintf(stderr,
_cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
_("INFO: Sent print file, %lld bytes...\n"),
_("INFO: Sent print file, %lld bytes...\n"),
#else
_("INFO: Sent print file, %ld bytes...\n"),
_("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
CUPS_LLCAST tbytes);
CUPS_LLCAST tbytes);
}
/*
@@ -319,7 +324,8 @@ list_devices(void)
char device[255], /* Device filename */
basedevice[255], /* Base device filename for ports */
device_id[1024], /* Device ID string */
make_model[1024]; /* Make and model */
make_model[1024], /* Make and model */
uri[1024]; /* Device URI */
if (!access("/dev/parallel/", 0))
@@ -345,13 +351,15 @@ list_devices(void)
* Now grab the IEEE 1284 device ID string...
*/
snprintf(uri, sizeof(uri), "parallel:%s", device);
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
NULL, NULL, 0))
printf("direct parallel:%s \"%s\" \"%s LPT #%d\" \"%s\"\n", device,
NULL, uri, sizeof(uri)))
printf("direct %s \"%s\" \"%s LPT #%d\" \"%s\"\n", uri,
make_model, make_model, i + 1, device_id);
else
printf("direct parallel:%s \"Unknown\" \"LPT #%d\"\n", device, i + 1);
printf("direct %s \"Unknown\" \"LPT #%d\"\n", uri, i + 1);
close(fd);
}
@@ -613,7 +621,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
_cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
+6 -6
Ver Arquivo
@@ -118,8 +118,8 @@ backendDrainOutput(int print_fd, /* I - Print file descriptor */
if (errno != ENOSPC && errno != ENXIO && errno != EAGAIN &&
errno != EINTR && errno != ENOTTY)
{
fprintf(stderr, _("ERROR: Unable to write print data: %s\n"),
strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to write print data: %s\n"),
strerror(errno));
return (-1);
}
}
@@ -230,7 +230,7 @@ backendRunLoop(
if (errno == ENXIO && offline != 1)
{
fputs("STATE: +offline-error\n", stderr);
fputs(_("INFO: Printer is currently off-line.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
offline = 1;
}
else if (errno == EINTR && total_bytes == 0)
@@ -321,7 +321,7 @@ backendRunLoop(
if (paperout != 1)
{
fputs("STATE: +media-empty-error\n", stderr);
fputs(_("ERROR: Out of paper!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Out of paper!\n"));
paperout = 1;
}
}
@@ -330,7 +330,7 @@ backendRunLoop(
if (offline != 1)
{
fputs("STATE: +offline-error\n", stderr);
fputs(_("INFO: Printer is currently off-line.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
offline = 1;
}
}
@@ -352,7 +352,7 @@ backendRunLoop(
if (offline)
{
fputs("STATE: -offline-error\n", stderr);
fputs(_("INFO: Printer is now on-line.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
offline = 0;
}
+15 -11
Ver Arquivo
@@ -96,7 +96,8 @@ print_device(const char *resource, /* I - SCSI device */
if (strncmp(resource, "/dev/scsi/", 10) != 0)
{
fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
_cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
resource);
return (CUPS_BACKEND_STOP);
}
@@ -119,8 +120,9 @@ print_device(const char *resource, /* I - SCSI device */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -133,13 +135,15 @@ print_device(const char *resource, /* I - SCSI device */
if (errno != EAGAIN && errno != EBUSY)
{
fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
else
{
fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -201,9 +205,9 @@ print_device(const char *resource, /* I - SCSI device */
if (ioctl(scsi_fd, DS_ENTER, &scsi_req) < 0 ||
scsi_req.ds_status != 0)
{
fprintf(stderr,
_("WARNING: SCSI command timed out (%d); retrying...\n"),
scsi_req.ds_status);
_cupsLangPrintf(stderr,
_("WARNING: SCSI command timed out (%d); "
"retrying...\n"), scsi_req.ds_status);
sleep(try + 1);
}
else
@@ -211,8 +215,8 @@ print_device(const char *resource, /* I - SCSI device */
if (try >= 10)
{
fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
scsi_req.ds_status);
_cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
scsi_req.ds_status);
close(scsi_fd);
return (CUPS_BACKEND_FAILED);
}
+12 -9
Ver Arquivo
@@ -110,7 +110,8 @@ print_device(const char *resource, /* I - SCSI device */
if (strncmp(resource, "/dev/sg", 7) != 0)
{
fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
_cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
resource);
return (CUPS_BACKEND_STOP);
}
@@ -148,13 +149,15 @@ print_device(const char *resource, /* I - SCSI device */
if (errno != EAGAIN && errno != EBUSY)
{
fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
else
{
fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -220,9 +223,9 @@ print_device(const char *resource, /* I - SCSI device */
if (ioctl(scsi_fd, SG_IO, &scsi_req) < 0 ||
scsi_req.status != 0)
{
fprintf(stderr,
_("WARNING: SCSI command timed out (%d); retrying...\n"),
scsi_req.status);
_cupsLangPrintf(stderr,
_("WARNING: SCSI command timed out (%d); "
"retrying...\n"), scsi_req.status);
sleep(try + 1);
}
else
@@ -230,8 +233,8 @@ print_device(const char *resource, /* I - SCSI device */
if (try >= 10)
{
fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
scsi_req.status);
_cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
scsi_req.status);
close(scsi_fd);
return (CUPS_BACKEND_FAILED);
}
+3 -2
Ver Arquivo
@@ -153,8 +153,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
+32 -26
Ver Arquivo
@@ -104,9 +104,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options, /* Pointer to options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
*name, /* Name of option */
*value, /* Value of option */
sep; /* Option separator */
int port; /* Port number (not used) */
int copies; /* Number of copies to print */
int print_fd, /* Print file */
@@ -161,8 +161,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -234,8 +235,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -248,13 +250,15 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (errno == EBUSY)
{
fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
else
{
fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -285,29 +289,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
for (ptr = name; *options && *options != '=';)
if (ptr < (name + sizeof(name) - 1))
*ptr++ = *options++;
*ptr = '\0';
name = options;
if (*options == '=')
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
if ((sep = *options) != '\0')
*options++ = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
options ++;
value = options;
for (ptr = value; *options && *options != '+' && *options != '&';)
if (ptr < (value + sizeof(value) - 1))
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+' || *options == '&')
while (*options && *options != '+' && *options != '&')
options ++;
if (*options)
*options++ = '\0';
}
else
value[0] = '\0';
value = (char *)"";
/*
* Process the option...
@@ -370,8 +375,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
break;
# endif /* B230400 */
default :
fprintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
value);
_cupsLangPrintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
value);
break;
}
#endif /* B19200 == 19200 */
@@ -1247,7 +1252,8 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
_cupsLangPuts(stderr,
_("WARNING: Failed to read side-channel request!\n"));
return;
}
+48 -41
Ver Arquivo
@@ -68,9 +68,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (not used) */
*options, /* Pointer to options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
*name, /* Name of option */
*value, /* Value of option */
sep; /* Option separator */
int print_fd; /* Print file */
int copies; /* Number of copies to print */
time_t start_time; /* Time of first connect */
@@ -83,7 +83,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int device_fd; /* AppSocket */
int error; /* Error code (if any) */
http_addrlist_t *addrlist, /* Address list */
*addr; /* Connected address */
*addr; /* Connected address */
char addrname[256]; /* Address name */
ssize_t tbytes; /* Total number of bytes written */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
@@ -122,8 +122,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -190,29 +191,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
for (ptr = name; *options && *options != '=';)
if (ptr < (name + sizeof(name) - 1))
*ptr++ = *options++;
*ptr = '\0';
name = options;
if (*options == '=')
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
if ((sep = *options) != '\0')
*options++ = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
options ++;
value = options;
for (ptr = value; *options && *options != '+' && *options != '&';)
if (ptr < (value + sizeof(value) - 1))
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+' || *options == '&')
while (*options && *options != '+' && *options != '&')
options ++;
if (*options)
*options++ = '\0';
}
else
value[0] = '\0';
value = (char *)"";
/*
* Process the option...
@@ -250,12 +252,14 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
{
fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
_cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
hostname);
return (CUPS_BACKEND_STOP);
}
fprintf(stderr, _("INFO: Attempting to connect to host %s on port %d\n"),
hostname, port);
_cupsLangPrintf(stderr,
_("INFO: Attempting to connect to host %s on port %d\n"),
hostname, port);
fputs("STATE: +connecting-to-device\n", stderr);
@@ -275,8 +279,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -292,16 +297,16 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
fputs(_("ERROR: Printer not responding!\n"), stderr);
_cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
fprintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; will "
"retry in %d seconds...\n"),
hostname, delay);
_cupsLangPrintf(stderr,
_("WARNING: recoverable: Network host \'%s\' is busy; "
"will retry in %d seconds...\n"),
hostname, delay);
sleep(delay);
@@ -312,9 +317,11 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
{
recoverable = 1;
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
fputs(_("ERROR: recoverable: Unable to connect to printer; will "
"retry in 30 seconds...\n"), stderr);
_cupsLangPrintf(stderr, "DEBUG: Connection error: %s\n",
strerror(errno));
_cupsLangPuts(stderr,
_("ERROR: recoverable: Unable to connect to printer; "
"will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -335,7 +342,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
fputs("STATE: -connecting-to-device\n", stderr);
fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
_cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (addr->addr.addr.sa_family == AF_INET6)
@@ -368,13 +375,13 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
tbytes = backendRunLoop(print_fd, device_fd, 1, side_cb);
if (print_fd != 0 && tbytes >= 0)
fprintf(stderr,
_cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
_("INFO: Sent print file, %lld bytes...\n"),
_("INFO: Sent print file, %lld bytes...\n"),
#else
_("INFO: Sent print file, %ld bytes...\n"),
_("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
CUPS_LLCAST tbytes);
CUPS_LLCAST tbytes);
}
/*
@@ -389,8 +396,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Shutdown the socket and wait for the other end to finish...
*/
fputs(_("INFO: Print file sent, waiting for printer to finish...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Print file sent, waiting for printer to finish...\n"));
shutdown(device_fd, 1);
@@ -413,7 +420,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
close(print_fd);
if (tbytes >= 0)
fputs(_("INFO: Ready to print.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Ready to print.\n"));
return (tbytes < 0 ? CUPS_BACKEND_FAILED : CUPS_BACKEND_OK);
}
@@ -439,7 +446,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
_cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
+127 -81
Ver Arquivo
@@ -1,7 +1,7 @@
/*
* "$Id$"
*
* Copyright © 2005-2007 Apple Inc. All rights reserved.
* Copyright 2005-2007 Apple Inc. All rights reserved.
*
* IMPORTANT: This Apple software is supplied to you by Apple Computer,
* Inc. ("Apple") in consideration of your agreement to the following
@@ -105,7 +105,7 @@
*/
#define WAIT_EOF_DELAY 7
#define WAIT_SIDE_DELAY 3
#define DEFAULT_TIMEOUT 60L
#define DEFAULT_TIMEOUT 5000L
#define USB_INTERFACE_KIND CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID190)
#define kUSBLanguageEnglish 0x409
@@ -267,7 +267,7 @@ static void copy_devicestring(io_service_t usbInterface, CFStringRef *deviceID,
static void device_added(void *userdata, io_iterator_t iterator);
static void get_device_id(cups_sc_status_t *status, char *data, int *datalen);
static void iterate_printers(iterator_callback_t callBack, void *userdata);
static void parse_options(const char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
static void parse_options(char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
static void release_deviceinfo(CFStringRef *make, CFStringRef *model, CFStringRef *serial);
static void setup_cfLanguage(void);
static void soft_reset();
@@ -304,7 +304,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
const char *options, /* I - Device options/serial number */
char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -313,7 +313,8 @@ print_device(const char *uri, /* I - Device URI */
char serial[1024]; /* Serial number buffer */
OSStatus status; /* Function results */
pthread_t read_thread_id, /* Read thread */
sidechannel_thread_id;/* Side channel thread */
sidechannel_thread_id;/* Side-channel thread */
int sidechannel_started = 0;/* Was the side-channel thread started? */
char print_buffer[8192], /* Print data buffer */
*print_ptr; /* Pointer into print data buffer */
UInt32 location; /* Unique location in bus topology */
@@ -327,6 +328,7 @@ print_device(const char *uri, /* I - Device URI */
stimeout; /* Timeout for select() */
struct timespec cond_timeout; /* pthread condition timeout */
setup_cfLanguage();
parse_options(options, serial, sizeof(serial), &location, &g.wait_eof);
@@ -340,6 +342,13 @@ print_device(const char *uri, /* I - Device URI */
g.serial = cfstr_create_trim(serial);
g.location = location;
if (!g.make || !g.model)
{
_cupsLangPrintf(stderr,
_("ERROR: Unable to create make and model strings\n"));
return CUPS_BACKEND_STOP;
}
fputs("STATE: +connecting-to-device\n", stderr);
countdown = INITIAL_LOG_INTERVAL;
@@ -387,7 +396,7 @@ print_device(const char *uri, /* I - Device URI */
strlcpy(print_buffer, "USB class driver", sizeof(print_buffer));
fputs("STATE: +apple-missing-usbclassdriver-error\n", stderr);
fprintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
_cupsLangPrintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
if (driverBundlePath)
CFRelease(driverBundlePath);
@@ -404,7 +413,8 @@ print_device(const char *uri, /* I - Device URI */
countdown -= PRINTER_POLLING_INTERVAL;
if (countdown <= 0)
{
fprintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"), (int)status);
_cupsLangPrintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"),
(int)status);
countdown = SUBSEQUENT_LOG_INTERVAL; /* subsequent log entries, every 15 seconds */
}
}
@@ -456,9 +466,11 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_create(&sidechannel_thread_id, NULL, sidechannel_thread, NULL))
{
fputs(_("WARNING: Couldn't create side channel\n"), stderr);
_cupsLangPuts(stderr, _("WARNING: Couldn't create side channel\n"));
return CUPS_BACKEND_STOP;
}
sidechannel_started = 1;
}
/*
@@ -473,7 +485,7 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_create(&read_thread_id, NULL, read_thread, NULL))
{
fputs(_("WARNING: Couldn't create read channel\n"), stderr);
_cupsLangPuts(stderr, _("WARNING: Couldn't create read channel\n"));
return CUPS_BACKEND_STOP;
}
@@ -488,7 +500,7 @@ print_device(const char *uri, /* I - Device URI */
while (status == noErr && copies-- > 0)
{
fputs(_("INFO: Sending data\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Sending data\n"));
if (print_fd != STDIN_FILENO)
{
@@ -556,7 +568,7 @@ print_device(const char *uri, /* I - Device URI */
}
else if (errno != EAGAIN)
{
fprintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
_cupsLangPrintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
return CUPS_BACKEND_STOP;
}
}
@@ -632,7 +644,8 @@ print_device(const char *uri, /* I - Device URI */
*/
OSStatus err = (*g.classdriver)->Abort(g.classdriver);
fprintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"), (long)status, (long)err);
_cupsLangPrintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"),
(long)status, (long)err);
status = CUPS_BACKEND_STOP;
break;
}
@@ -656,27 +669,42 @@ print_device(const char *uri, /* I - Device URI */
* Wait for the side channel thread to exit...
*/
close(CUPS_SC_FD);
pthread_mutex_lock(&g.readwrite_lock_mutex);
g.readwrite_lock = 0;
pthread_cond_signal(&g.readwrite_lock_cond);
pthread_mutex_unlock(&g.readwrite_lock_mutex);
g.sidechannel_thread_stop = 1;
pthread_mutex_lock(&g.sidechannel_thread_mutex);
if (!g.sidechannel_thread_done)
if (sidechannel_started)
{
cond_timeout.tv_sec = time(NULL) + WAIT_SIDE_DELAY;
cond_timeout.tv_nsec = 0;
pthread_cond_timedwait(&g.sidechannel_thread_cond,
&g.sidechannel_thread_mutex, &cond_timeout);
close(CUPS_SC_FD);
pthread_mutex_lock(&g.readwrite_lock_mutex);
g.readwrite_lock = 0;
pthread_cond_signal(&g.readwrite_lock_cond);
pthread_mutex_unlock(&g.readwrite_lock_mutex);
g.sidechannel_thread_stop = 1;
pthread_mutex_lock(&g.sidechannel_thread_mutex);
if (!g.sidechannel_thread_done)
{
/*
* Wait for the side-channel thread to exit...
*/
cond_timeout.tv_sec = time(NULL) + WAIT_SIDE_DELAY;
cond_timeout.tv_nsec = 0;
if (pthread_cond_timedwait(&g.sidechannel_thread_cond,
&g.sidechannel_thread_mutex,
&cond_timeout) != 0)
{
/*
* Force the side-channel thread to exit...
*/
pthread_kill(sidechannel_thread_id, SIGTERM);
}
}
pthread_mutex_unlock(&g.sidechannel_thread_mutex);
pthread_join(sidechannel_thread_id, NULL);
pthread_cond_destroy(&g.sidechannel_thread_cond);
pthread_mutex_destroy(&g.sidechannel_thread_mutex);
}
pthread_mutex_unlock(&g.sidechannel_thread_mutex);
pthread_join(sidechannel_thread_id, NULL);
pthread_cond_destroy(&g.sidechannel_thread_cond);
pthread_mutex_destroy(&g.sidechannel_thread_mutex);
pthread_cond_destroy(&g.readwrite_lock_cond);
pthread_mutex_destroy(&g.readwrite_lock_mutex);
@@ -689,9 +717,7 @@ print_device(const char *uri, /* I - Device URI */
/*
* Give the read thread WAIT_EOF_DELAY seconds to complete all the data. If
* we are not signaled in that time then force the thread to exit by setting
* the waiteof to be false. Plese note that this relies on us using the timeout
* class driver.
* we are not signaled in that time then force the thread to exit.
*/
pthread_mutex_lock(&g.read_thread_mutex);
@@ -703,7 +729,13 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
&cond_timeout) != 0)
g.wait_eof = false;
{
/*
* Force the read thread to exit...
*/
pthread_kill(read_thread_id, SIGTERM);
}
}
pthread_mutex_unlock(&g.read_thread_mutex);
@@ -827,8 +859,16 @@ sidechannel_thread(void *reference)
switch (command)
{
case CUPS_SC_CMD_SOFT_RESET: /* Do a soft reset */
soft_reset();
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
if ((*g.classdriver)->SoftReset != NULL)
{
soft_reset();
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
}
else
{
cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED,
NULL, 0, 1.0);
}
break;
case CUPS_SC_CMD_DRAIN_OUTPUT: /* Drain all pending output */
@@ -1040,9 +1080,9 @@ static Boolean find_device_cb(void *refcon,
CFStringRef make = NULL, model = NULL, serial = NULL;
copy_deviceinfo(idString, &make, &model, &serial);
if (CFStringCompare(make, g.make, kCFCompareCaseInsensitive) == kCFCompareEqualTo)
if (make && CFStringCompare(make, g.make, kCFCompareCaseInsensitive) == kCFCompareEqualTo)
{
if (CFStringCompare(model, g.model, kCFCompareCaseInsensitive) == kCFCompareEqualTo)
if (model && CFStringCompare(model, g.model, kCFCompareCaseInsensitive) == kCFCompareEqualTo)
{
if (g.serial != NULL && CFStringGetLength(g.serial) > 0)
{
@@ -1091,7 +1131,7 @@ static Boolean find_device_cb(void *refcon,
if (!keepLooking && g.status_timer != NULL)
{
fputs("STATE: -offline-error\n", stderr);
fputs(_("INFO: Printer is now on-line.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
CFRelease(g.status_timer);
g.status_timer = NULL;
@@ -1109,7 +1149,7 @@ static void status_timer_cb(CFRunLoopTimerRef timer,
void *info)
{
fputs("STATE: +offline-error\n", stderr);
fputs(_("INFO: Printer is currently off-line.\n"), stderr);
_cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
}
@@ -1541,18 +1581,19 @@ CFStringRef cfstr_create_trim(const char *cstr)
#pragma mark -
/*
* 'parse_options()' - Parse uri options.
* 'parse_options()' - Parse URI options.
*/
static void parse_options(const char *options,
static void parse_options(char *options,
char *serial,
int serial_size,
UInt32 *location,
Boolean *wait_eof)
{
char optionName[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
char sep, /* Separator character */
*name, /* Name of option */
*value; /* Value of option */
if (serial)
*serial = '\0';
@@ -1562,56 +1603,61 @@ static void parse_options(const char *options,
if (!options)
return;
while (*options != '\0')
while (*options)
{
/* Get the name... */
for (ptr = optionName; *options && *options != '=' && *options != '+';)
*ptr++ = *options++;
/*
* Get the name...
*/
*ptr = '\0';
value[0] = '\0';
name = options;
if (*options == '=')
{
/* Get the value... */
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
for (ptr = value; *options && *options != '+';)
*ptr++ = *options++;
if ((sep = *options) != '\0')
*options++ = '\0';
*ptr = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
if (*options == '+')
value = options;
while (*options && *options != '+' && *options != '&')
options ++;
}
else if (*options == '+')
options ++;
/*
* Process the option...
*/
if (strcasecmp(optionName, "waiteof") == 0)
if (*options)
*options++ = '\0';
}
else
value = (char *)"";
/*
* Process the option...
*/
if (!strcasecmp(name, "waiteof"))
{
if (strcasecmp(value, "on") == 0 ||
strcasecmp(value, "yes") == 0 ||
strcasecmp(value, "true") == 0)
if (!strcasecmp(value, "on") ||
!strcasecmp(value, "yes") ||
!strcasecmp(value, "true"))
*wait_eof = true;
else if (strcasecmp(value, "off") == 0 ||
strcasecmp(value, "no") == 0 ||
strcasecmp(value, "false") == 0)
else if (!strcasecmp(value, "off") ||
!strcasecmp(value, "no") ||
!strcasecmp(value, "false"))
*wait_eof = false;
else
fprintf(stderr, _("WARNING: Boolean expected for waiteof option \"%s\"\n"), value);
_cupsLangPrintf(stderr,
_("WARNING: Boolean expected for waiteof option "
"\"%s\"\n"), value);
}
else if (strcasecmp(optionName, "serial") == 0)
{
else if (!strcasecmp(name, "serial"))
strlcpy(serial, value, serial_size);
}
else if (strcasecmp(optionName, "location") == 0 && location)
else if (!strcasecmp(name, "location") && location)
*location = strtol(value, NULL, 16);
}
return;
}
@@ -1885,7 +1931,7 @@ static void parse_pserror(char *sockBuffer,
/*
* 'soft_reset'
* 'soft_reset()' - Send a soft reset to the device.
*/
static void soft_reset()
@@ -1933,7 +1979,7 @@ static void soft_reset()
* Send the reset...
*/
(*g.classdriver)->SoftReset(g.classdriver, 0);
(*g.classdriver)->SoftReset(g.classdriver, DEFAULT_TIMEOUT);
/*
* Release the I/O lock...
+21 -17
Ver Arquivo
@@ -48,7 +48,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
const char *options, /* I - Device options/serial number */
char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -105,8 +105,9 @@ print_device(const char *uri, /* I - Device URI */
* available printer in the class.
*/
fputs(_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Unable to contact printer, queuing on next "
"printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -119,20 +120,23 @@ print_device(const char *uri, /* I - Device URI */
if (errno == EBUSY)
{
fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 10 seconds...\n"));
sleep(10);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
errno == ENODEV)
{
fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer not connected; will retry in 30 "
"seconds...\n"));
sleep(30);
}
else
{
fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
_cupsLangPrintf(stderr,
_("ERROR: Unable to open device file \"%s\": %s\n"),
resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -172,13 +176,13 @@ print_device(const char *uri, /* I - Device URI */
tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
fprintf(stderr,
_cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
_("INFO: Sent print file, %lld bytes...\n"),
_("INFO: Sent print file, %lld bytes...\n"),
#else
_("INFO: Sent print file, %ld bytes...\n"),
_("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
CUPS_LLCAST tbytes);
CUPS_LLCAST tbytes);
}
/*
@@ -411,8 +415,8 @@ open_device(const char *uri, /* I - Device URI */
if (busy)
{
fputs(_("INFO: Printer busy; will retry in 5 seconds...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer busy; will retry in 5 seconds...\n"));
sleep(5);
}
}
@@ -504,8 +508,8 @@ open_device(const char *uri, /* I - Device URI */
if (busy)
{
fputs(_("INFO: Printer is busy; will retry in 5 seconds...\n"),
stderr);
_cupsLangPuts(stderr,
_("INFO: Printer is busy; will retry in 5 seconds...\n"));
sleep(5);
}
}
@@ -562,7 +566,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
_cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
+10 -8
Ver Arquivo
@@ -54,7 +54,7 @@
void list_devices(void);
int print_device(const char *uri, const char *hostname,
const char *resource, const char *options,
const char *resource, char *options,
int print_fd, int copies, int argc, char *argv[]);
@@ -99,7 +99,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
const char *options, /* I - Device options/serial number */
char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -184,8 +184,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]\n"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -200,8 +201,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
hostname, sizeof(hostname), &port,
resource, sizeof(resource)) < HTTP_URI_OK)
{
fputs(_("ERROR: No device URI found in argv[0] or in DEVICE_URI "
"environment variable!\n"), stderr);
_cupsLangPuts(stderr,
_("ERROR: No device URI found in argv[0] or in DEVICE_URI "
"environment variable!\n"));
return (1);
}
@@ -237,8 +239,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
fprintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
argv[6], strerror(errno));
_cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
argv[6], strerror(errno));
return (CUPS_BACKEND_FAILED);
}
+2 -2
Ver Arquivo
@@ -200,11 +200,11 @@ main(int argc, /* I - Number of command-line arguments */
break;
case 'l' : /* Literal/raw */
num_options = cupsAddOption("raw", "", num_options, &options);
num_options = cupsAddOption("raw", "true", num_options, &options);
break;
case 'p' : /* Prettyprint */
num_options = cupsAddOption("prettyprint", "", num_options,
num_options = cupsAddOption("prettyprint", "true", num_options,
&options);
break;
+1
Ver Arquivo
@@ -151,6 +151,7 @@ main(int argc, /* I - Number of command-line arguments */
cgiSetVariable("HELPFILE", helpfile);
cgiSetVariable("HELPTITLE", n->text);
cgiSetVariable("TOPIC", n->section);
/*
* Send a standard page header...
+19 -19
Ver Arquivo
@@ -85,9 +85,9 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
void
cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
{
int i; /* Looping var */
char filename[1024], /* Filename */
locale[16]; /* Locale name */
locale[16], /* Locale name */
*locptr; /* Pointer into locale name */
const char *directory, /* Directory for templates */
*lang; /* Language */
FILE *in; /* Input file */
@@ -100,22 +100,19 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
* Convert the language to a locale name...
*/
locale[0] = '\0';
if ((lang = getenv("LANG")) != NULL)
{
for (i = 0; lang[i] && i < 15; i ++)
if (isalnum(lang[i] & 255) || lang[i] == '_')
locale[i] = tolower(lang[i]);
else if (lang[i] == '-')
locale[i] = '_';
else
break;
locale[0] = '/';
strlcpy(locale + 1, lang, sizeof(locale) - 1);
locale[i] = '\0';
if ((locptr = strchr(locale, '.')) != NULL)
*locptr = '\0'; /* Strip charset */
}
else
locale[0] = '\0';
fprintf(stderr, "DEBUG2: locale=\"%s\"...\n", locale);
fprintf(stderr, "DEBUG: lang=\"%s\", locale=\"%s\"...\n",
lang ? lang : "(null)", locale);
/*
* See if we have a template file for this language...
@@ -123,14 +120,17 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
directory = cgiGetTemplateDir();
snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
if (access(filename, 0))
snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
if ((in = fopen(filename, "r")) == NULL)
{
locale[2] = '\0';
locale[3] = '\0';
snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
if (access(filename, 0))
snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
if ((in = fopen(filename, "r")) == NULL)
{
snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl);
in = fopen(filename, "r");
}
}
fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
@@ -139,7 +139,7 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
* Open the template file...
*/
if ((in = fopen(filename, "r")) == NULL)
if (!in)
{
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
filename, strerror(errno));
+1 -1
Ver Arquivo
@@ -1,7 +1,7 @@
#
# "$Id$"
#
# Sample SNMP configuration file for CUPS. See "man smnp.conf" for a
# Sample SNMP configuration file for CUPS. See "man cups-smnp.conf" for a
# complete description of this file.
#
+6 -5
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-common.m4 6790 2007-08-13 20:09:45Z mike $"
dnl "$Id: cups-common.m4 6981 2007-09-19 21:51:55Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -13,14 +13,14 @@ dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl We need at least autoconf 2.50...
AC_PREREQ(2.50)
dnl We need at least autoconf 2.60...
AC_PREREQ(2.60)
dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Versio number information...
CUPS_VERSION="1.3.0"
CUPS_VERSION="1.3.3"
CUPS_REVISION=""
#if test -z "$CUPS_REVISION" -a -d .svn; then
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
@@ -123,6 +123,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
@@ -286,5 +287,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
dnl End of "$Id: cups-common.m4 6790 2007-08-13 20:09:45Z mike $".
dnl End of "$Id: cups-common.m4 6981 2007-09-19 21:51:55Z mike $".
dnl
+36 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-compiler.m4 6698 2007-07-20 14:15:44Z mike $"
dnl "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -301,6 +301,40 @@ else
if test $PICFLAG = 1; then
OPTIM="+z $OPTIM"
fi
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="+DD32"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="+DD64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="+DD64"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="+DD32"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
IRIX)
if test -z "$OPTIM"; then
@@ -464,5 +498,5 @@ case $uname in
esac
dnl
dnl End of "$Id: cups-compiler.m4 6698 2007-07-20 14:15:44Z mike $".
dnl End of "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $".
dnl
+38 -27
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-directories.m4 6976 2007-09-18 20:39:31Z mike $"
dnl
dnl Directory stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -99,17 +99,23 @@ if test "$sysconfdir" = "\${prefix}/etc"; then
fi
fi
dnl Fix "libdir" variable for IRIX 6.x...
dnl Fix "libdir" variable...
if test "$libdir" = "\${exec_prefix}/lib"; then
if test "$uname" = "IRIX"; then
libdir="$exec_prefix/lib32"
else
if test "$uname" = Linux -a -d /usr/lib64; then
libdir="$exec_prefix/lib64"
else
libdir="$exec_prefix/lib"
fi
fi
case "$uname" in
IRIX*)
libdir="$exec_prefix/lib32"
;;
Linux*)
if test -d /usr/lib64; then
libdir="$exec_prefix/lib64"
fi
;;
HP-UX*)
if test -d /usr/lib/hpux32; then
libdir="$exec_prefix/lib/hpux32"
fi
;;
esac
fi
dnl Setup init.d locations...
@@ -146,8 +152,8 @@ if test x$rcdir = x; then
HP-UX*)
INITDIR="/sbin"
RCLEVELS="2"
RCSTART="620"
RCSTOP="380"
RCSTART="380"
RCSTOP="620"
;;
IRIX*)
@@ -291,21 +297,26 @@ fi
AC_SUBST(CUPS_FONTPATH)
AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH")
# Locale data
case "$uname" in
Linux | GNU | *BSD* | Darwin*)
CUPS_LOCALEDIR="$datadir/locale"
;;
# Locale data (initial assignment allows us not to require autoconf 2.60)
localedir="${localedir:=}"
if test "$localedir" = "\${datarootdir}/locale" -o "$localedir" = ""; then
case "$uname" in
Linux | GNU | *BSD* | Darwin*)
CUPS_LOCALEDIR="$datadir/locale"
;;
OSF1* | AIX*)
CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
;;
OSF1* | AIX*)
CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
;;
*)
# This is the standard System V location...
CUPS_LOCALEDIR="$exec_prefix/lib/locale"
;;
esac
*)
# This is the standard System V location...
CUPS_LOCALEDIR="$exec_prefix/lib/locale"
;;
esac
else
CUPS_LOCALEDIR="$localedir"
fi
AC_DEFINE_UNQUOTED(CUPS_LOCALEDIR, "$CUPS_LOCALEDIR")
AC_SUBST(CUPS_LOCALEDIR)
@@ -356,5 +367,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
AC_SUBST(CUPS_STATEDIR)
dnl
dnl End of "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-directories.m4 6976 2007-09-18 20:39:31Z mike $".
dnl
+7
Ver Arquivo
@@ -523,6 +523,13 @@
#undef HAVE_DLFCN_H
/*
* Do we have <sys/param.h>?
*/
#undef HAVE_SYS_PARAM_H
/*
* Do we have <sys/ucred.h>?
*/
+1 -1
Ver Arquivo
@@ -92,7 +92,7 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
char prompt[1024], /* Prompt for user */
realm[HTTP_MAX_VALUE], /* realm="xyz" string */
nonce[HTTP_MAX_VALUE], /* nonce="xyz" string */
encode[2048]; /* Encoded username:password */
encode[4096]; /* Encoded username:password */
int localauth; /* Local authentication result */
_cups_globals_t *cg; /* Global data */
+2 -2
Ver Arquivo
@@ -59,10 +59,10 @@ extern "C" {
* Constants...
*/
# define CUPS_VERSION 1.0300
# define CUPS_VERSION 1.0303
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 3
# define CUPS_VERSION_PATCH 0
# define CUPS_VERSION_PATCH 3
# define CUPS_DATE_ANY -1
+13 -3
Ver Arquivo
@@ -1207,7 +1207,7 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */
if (fp->ptr >= fp->end)
if (cups_fill(fp) <= 0)
{
DEBUG_printf((" cups_fill() returned -1, total=%d\n", total));
DEBUG_printf((" cups_fill() returned -1, total=%d\n", (int)total));
if (total > 0)
return ((ssize_t)total);
@@ -1235,7 +1235,7 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */
* Return the total number of bytes read...
*/
DEBUG_printf((" total=%d\n", total));
DEBUG_printf((" total=%d\n", (int)total));
return ((ssize_t)total);
}
@@ -1703,6 +1703,7 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */
{
ssize_t bytes; /* Number of bytes read */
#ifdef HAVE_LIBZ
int status; /* Decompression status */
const unsigned char *ptr, /* Pointer into buffer */
*end; /* End of buffer */
#endif /* HAVE_LIBZ */
@@ -1921,7 +1922,13 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */
fp->stream.next_out = (Bytef *)fp->buf;
fp->stream.avail_out = sizeof(fp->buf);
if (inflate(&(fp->stream), Z_NO_FLUSH) == Z_STREAM_END)
status = inflate(&(fp->stream), Z_NO_FLUSH);
if (fp->stream.next_out > (Bytef *)fp->buf)
fp->crc = crc32(fp->crc, (Bytef *)fp->buf,
fp->stream.next_out - (Bytef *)fp->buf);
if (status == Z_STREAM_END)
{
/*
* Read the CRC and length...
@@ -1950,6 +1957,9 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */
* Bad CRC, mark end-of-file...
*/
DEBUG_printf(("cups_fill: tcrc=%08x, fp->crc=%08x\n",
(unsigned int)tcrc, (unsigned int)fp->crc));
fp->eof = 1;
return (-1);
+10 -11
Ver Arquivo
@@ -197,18 +197,17 @@ httpAddrLookup(
#endif /* AF_LOCAL */
#ifdef HAVE_GETNAMEINFO
{
/*
* STR #2486: httpAddrLookup() fails when getnameinfo() returns EAI_AGAIN
*
* FWIW, I think this is really a bug in the implementation of
* getnameinfo(), but falling back on httpAddrString() is easy to
* do...
*/
if (getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
NULL, 0, 0))
{
/*
* If we get an error back, then the address type is not supported
* and we should zero out the buffer...
*/
name[0] = '\0';
return (NULL);
}
NULL, 0, 0))
return (httpAddrString(addr, name, namelen));
}
#else
{
+3
Ver Arquivo
@@ -62,6 +62,9 @@
# ifndef HAVE_GSS_C_NT_HOSTBASED_SERVICE
# define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
# endif /* !HAVE_GSS_C_NT_HOSTBASED_SERVICE */
# ifdef HAVE_KRB5_H
# include <krb5.h>
# endif /* HAVE_KRB5_H */
# endif /* HAVE_GSSAPI */
# ifdef HAVE_AUTHORIZATION_H
+1 -1
Ver Arquivo
@@ -1016,7 +1016,7 @@ httpSeparateURI(
"0123456789"
"-._~"
"%"
"!$&'()*+,;=", *ptr))
"!$&'()*+,;=\\", *ptr))
{
*host = '\0';
return (HTTP_URI_BAD_HOSTNAME);
+69 -13
Ver Arquivo
@@ -1014,8 +1014,10 @@ ippReadIO(void *src, /* I - Data source */
ipp_t *ipp) /* I - IPP data */
{
int n; /* Length of data */
unsigned char buffer[32768], /* Data buffer */
string[255], /* Small string buffer */
unsigned char buffer[IPP_MAX_LENGTH],
/* Data buffer */
string[IPP_MAX_NAME],
/* Small string buffer */
*bufptr; /* Pointer into buffer */
ipp_attribute_t *attr; /* Current attribute */
ipp_tag_t tag; /* Current tag */
@@ -1306,6 +1308,12 @@ ippReadIO(void *src, /* I - Data source */
{
case IPP_TAG_INTEGER :
case IPP_TAG_ENUM :
if (n != 4)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, 4) < 4)
{
DEBUG_puts("ippReadIO: Unable to read integer value!");
@@ -1318,6 +1326,12 @@ ippReadIO(void *src, /* I - Data source */
value->integer = n;
break;
case IPP_TAG_BOOLEAN :
if (n != 1)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, 1) < 1)
{
DEBUG_puts("ippReadIO: Unable to read boolean value!");
@@ -1335,6 +1349,12 @@ ippReadIO(void *src, /* I - Data source */
case IPP_TAG_CHARSET :
case IPP_TAG_LANGUAGE :
case IPP_TAG_MIMETYPE :
if (n >= sizeof(buffer))
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, n) < n)
{
DEBUG_puts("ippReadIO: unable to read name!");
@@ -1347,6 +1367,12 @@ ippReadIO(void *src, /* I - Data source */
value->string.text));
break;
case IPP_TAG_DATE :
if (n != 11)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, value->date, 11) < 11)
{
DEBUG_puts("ippReadIO: Unable to date integer value!");
@@ -1354,6 +1380,12 @@ ippReadIO(void *src, /* I - Data source */
}
break;
case IPP_TAG_RESOLUTION :
if (n != 9)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, 9) < 9)
{
DEBUG_puts("ippReadIO: Unable to read resolution value!");
@@ -1370,6 +1402,12 @@ ippReadIO(void *src, /* I - Data source */
(ipp_res_t)buffer[8];
break;
case IPP_TAG_RANGE :
if (n != 8)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, 8) < 8)
{
DEBUG_puts("ippReadIO: Unable to read range value!");
@@ -1385,7 +1423,7 @@ ippReadIO(void *src, /* I - Data source */
break;
case IPP_TAG_TEXTLANG :
case IPP_TAG_NAMELANG :
if (n > sizeof(buffer) || n < 4)
if (n >= sizeof(buffer) || n < 4)
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
@@ -1411,22 +1449,27 @@ ippReadIO(void *src, /* I - Data source */
n = (bufptr[0] << 8) | bufptr[1];
if (n >= sizeof(string))
if ((bufptr + 2 + n) >= (buffer + sizeof(buffer)) ||
n >= sizeof(string))
{
memcpy(string, bufptr + 2, sizeof(string) - 1);
string[sizeof(string) - 1] = '\0';
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
else
{
memcpy(string, bufptr + 2, n);
string[n] = '\0';
}
memcpy(string, bufptr + 2, n);
string[n] = '\0';
value->string.charset = _cupsStrAlloc((char *)string);
bufptr += 2 + n;
n = (bufptr[0] << 8) | bufptr[1];
if ((bufptr + 2 + n) >= (buffer + sizeof(buffer)))
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
bufptr[2 + n] = '\0';
value->string.text = _cupsStrAlloc((char *)bufptr + 2);
break;
@@ -1468,6 +1511,12 @@ ippReadIO(void *src, /* I - Data source */
* we need to carry over...
*/
if (n >= sizeof(buffer))
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
if ((*cb)(src, buffer, n) < n)
{
DEBUG_puts("ippReadIO: Unable to read member name value!");
@@ -1489,6 +1538,12 @@ ippReadIO(void *src, /* I - Data source */
break;
default : /* Other unsupported values */
if (n > sizeof(buffer))
{
DEBUG_printf(("ippReadIO: bad value length %d!\n", n));
return (IPP_ERROR);
}
value->unknown.length = n;
if (n > 0)
{
@@ -1627,7 +1682,8 @@ ippWriteIO(void *dst, /* I - Destination */
{
int i; /* Looping var */
int n; /* Length of data */
unsigned char buffer[32768], /* Data buffer */
unsigned char buffer[IPP_MAX_LENGTH + 2],
/* Data buffer + length bytes */
*bufptr; /* Pointer into buffer */
ipp_attribute_t *attr; /* Current attribute */
ipp_value_t *value; /* Current value */
@@ -1947,7 +2003,7 @@ ippWriteIO(void *dst, /* I - Destination */
/*
* All simple strings consist of the 2-byte length and
* character data without the trailing nul normally found
* in C strings. Also, strings cannot be longer than 32767
* in C strings. Also, strings cannot be longer than IPP_MAX_LENGTH
* bytes since the 2-byte length is a signed (twos-complement)
* value.
*
+2 -1
Ver Arquivo
@@ -55,7 +55,8 @@ extern "C" {
* Common limits...
*/
# define IPP_MAX_NAME 256
# define IPP_MAX_LENGTH 32767 /* Maximum size of any single value */
# define IPP_MAX_NAME 256 /* Maximum length of common name values */
# define IPP_MAX_VALUES 8 /* Power-of-2 allocation increment */
+69 -46
Ver Arquivo
@@ -413,8 +413,14 @@ cupsLangGet(const char *language) /* I - Language or locale */
strlcpy(locale, ptr, sizeof(locale));
language = locale;
DEBUG_printf(("cupsLangGet: new language value is \"%s\"\n",
language ? language : "(null)"));
/*
* CUPS STR #2575: Map "nb" to "no" for back-compatibility...
*/
if (!strncmp(locale, "nb", 2))
locale[1] = 'o';
DEBUG_printf(("cupsLangGet: new language value is \"%s\"\n", language));
}
}
#endif /* __APPLE__ */
@@ -985,11 +991,12 @@ typedef struct
static const _apple_name_locale_t apple_name_locale[] =
{
{ "en" , "en_US" },
{ "no" , "nb" },
{ "nb" , "no" },
{ "zh-Hans" , "zh_CN" },
{ "zh-Hant" , "zh_TW" }
};
/*
* 'appleLangDefault()' - Get the default locale string.
*/
@@ -998,6 +1005,8 @@ static const char * /* O - Locale string */
appleLangDefault(void)
{
int i; /* Looping var */
CFBundleRef bundle; /* Main bundle (if any) */
CFArrayRef bundleList; /* List of localizations in bundle */
CFPropertyListRef localizationList;
/* List of localization data */
CFStringRef languageName; /* Current name */
@@ -1014,63 +1023,77 @@ appleLangDefault(void)
if (!cg->language[0])
{
if ((lang = getenv("LANG")))
{
strlcpy(cg->language, lang, sizeof(cg->language));
else
return (cg->language);
}
else if ((bundle = CFBundleGetMainBundle()) != NULL &&
(bundleList = CFBundleCopyBundleLocalizations(bundle)) != NULL)
{
localizationList =
CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
kCFPreferencesCurrentApplication);
CFBundleCopyPreferredLocalizationsFromArray(bundleList);
if (localizationList != NULL)
CFRelease(bundleList);
}
else
localizationList =
CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
kCFPreferencesCurrentApplication);
if (localizationList)
{
if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
CFArrayGetCount(localizationList) > 0)
{
if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
CFArrayGetCount(localizationList) > 0)
languageName = CFArrayGetValueAtIndex(localizationList, 0);
if (languageName &&
CFGetTypeID(languageName) == CFStringGetTypeID())
{
languageName = CFArrayGetValueAtIndex(localizationList, 0);
localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
kCFAllocatorDefault, languageName);
if (languageName != NULL &&
CFGetTypeID(languageName) == CFStringGetTypeID())
{
localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
kCFAllocatorDefault, languageName);
if (localeName)
{
CFStringGetCString(localeName, cg->language, sizeof(cg->language),
kCFStringEncodingASCII);
CFRelease(localeName);
if (localeName != NULL)
DEBUG_printf(("appleLangDefault: cg->language=\"%s\"\n",
cg->language));
/*
* Map new language identifiers to locales...
*/
for (i = 0;
i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
i++)
{
CFStringGetCString(localeName, cg->language, sizeof(cg->language),
kCFStringEncodingASCII);
CFRelease(localeName);
/*
* Map new language identifiers to locales...
*/
for (i = 0;
i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
i++)
if (!strcmp(cg->language, apple_name_locale[i].name))
{
if (!strcmp(cg->language, apple_name_locale[i].name))
{
strlcpy(cg->language, apple_name_locale[i].locale,
sizeof(cg->language));
break;
}
DEBUG_printf(("appleLangDefault: mapping \"%s\" to \"%s\"...\n",
cg->language, apple_name_locale[i].locale));
strlcpy(cg->language, apple_name_locale[i].locale,
sizeof(cg->language));
break;
}
/*
* Convert language subtag into region subtag...
*/
if (cg->language[2] == '-')
cg->language[2] = '_';
if (strchr(cg->language, '.') == NULL)
strlcat(cg->language, ".UTF-8", sizeof(cg->language));
}
}
}
CFRelease(localizationList);
/*
* Convert language subtag into region subtag...
*/
if (cg->language[2] == '-')
cg->language[2] = '_';
if (!strchr(cg->language, '.'))
strlcat(cg->language, ".UTF-8", sizeof(cg->language));
}
}
}
CFRelease(localizationList);
}
/*
+43 -25
Ver Arquivo
@@ -44,7 +44,8 @@
* Local functions...
*/
static void ppd_ll_CC(char *ll_CC, char *ll);
static void ppd_ll_CC(char *ll_CC, int ll_CC_size,
char *ll, int ll_size);
static ppd_attr_t *ppd_localized_attr(ppd_file_t *ppd,
const char *keyword,
const char *spec, const char *ll_CC,
@@ -90,7 +91,7 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
* Get the default language...
*/
ppd_ll_CC(ll_CC, ll);
ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
/*
* Now lookup all of the groups, options, choices, etc.
@@ -240,7 +241,7 @@ ppdLocalizeIPPReason(
* Get the default language...
*/
ppd_ll_CC(ll_CC, ll);
ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
/*
* Find the localized attribute...
@@ -391,8 +392,9 @@ ppdLocalizeIPPReason(
static void
ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
char *ll) /* O - Generic locale name */
int ll_CC_size, /* I - Size of country-specific name */
char *ll, /* O - Generic locale name */
int ll_size) /* I - Size of generic name */
{
cups_lang_t *lang; /* Current language */
@@ -403,8 +405,8 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
if ((lang = cupsLangDefault()) == NULL)
{
strcpy(ll_CC, "en_US");
strcpy(ll, "en");
strlcpy(ll_CC, "en_US", ll_CC_size);
strlcpy(ll, "en", ll_size);
return;
}
@@ -412,8 +414,10 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
* Copy the locale name...
*/
strlcpy(ll_CC, lang->language, sizeof(ll_CC));
strlcpy(ll, lang->language, sizeof(ll));
strlcpy(ll_CC, lang->language, ll_CC_size);
strlcpy(ll, lang->language, ll_size);
DEBUG_printf(("ll_CC=\"%s\", ll=\"%s\"\n", ll_CC, ll));
if (strlen(ll_CC) == 2)
{
@@ -423,16 +427,16 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
*/
if (!strcmp(ll_CC, "cs"))
strcpy(ll_CC, "cs_CZ");
strlcpy(ll_CC, "cs_CZ", ll_CC_size);
else if (!strcmp(ll_CC, "en"))
strcpy(ll_CC, "en_US");
strlcpy(ll_CC, "en_US", ll_CC_size);
else if (!strcmp(ll_CC, "ja"))
strcpy(ll_CC, "ja_JP");
strlcpy(ll_CC, "ja_JP", ll_CC_size);
else if (!strcmp(ll_CC, "sv"))
strcpy(ll_CC, "sv_SE");
else if (!strcmp(ll_CC, "zh"))
strcpy(ll_CC, "zh_CN"); /* Simplified Chinese */
else
strlcpy(ll_CC, "sv_SE", ll_CC_size);
else if (!strcmp(ll_CC, "zh")) /* Simplified Chinese */
strlcpy(ll_CC, "zh_CN", ll_CC_size);
else if (ll_CC_size >= 6)
{
ll_CC[2] = '_';
ll_CC[3] = toupper(ll_CC[0] & 255);
@@ -475,17 +479,31 @@ ppd_localized_attr(ppd_file_t *ppd, /* I - PPD file */
snprintf(lkeyword, sizeof(lkeyword), "%s.%s", ll, keyword);
attr = ppdFindAttr(ppd, lkeyword, spec);
if (!attr && !strcmp(ll, "ja"))
if (!attr)
{
/*
* Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
* PPD files were incorrectly assigned "jp" as the locale name
* instead of "ja". Support both the old (incorrect) and new
* locale names for Japanese...
*/
if (!strcmp(ll, "ja"))
{
/*
* Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
* PPD files were incorrectly assigned "jp" as the locale name
* instead of "ja". Support both the old (incorrect) and new
* locale names for Japanese...
*/
snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
attr = ppdFindAttr(ppd, lkeyword, spec);
snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
attr = ppdFindAttr(ppd, lkeyword, spec);
}
else if (!strcmp(ll, "no"))
{
/*
* Norway has two languages, "Bokmal" (the primary one)
* and "Nynorsk" (new Norwegian); we map "no" to "nb" here as
* recommended by the locale folks...
*/
snprintf(lkeyword, sizeof(lkeyword), "nb.%s", keyword);
attr = ppdFindAttr(ppd, lkeyword, spec);
}
}
}
+12
Ver Arquivo
@@ -149,6 +149,18 @@ http://foo/fr/bar.html
help:anchor='foo'%20bookID=Vendor%20Help
/help/fr/foo/bar.html"
*End
*zh_TW.cupsIPPReason foo/Number 1 Foo Reason: "text:Number%201
text:Foo%20Reason
http://foo/zh_TW/bar.html
help:anchor='foo'%20bookID=Vendor%20Help
/help/zh_TW/foo/bar.html"
*End
*zh.cupsIPPReason foo/Number 2 Foo Reason: "text:Number%202
text:Foo%20Reason
http://foo/zh/bar.html
help:anchor='foo'%20bookID=Vendor%20Help
/help/zh/foo/bar.html"
*End
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
+42 -5
Ver Arquivo
@@ -16,7 +16,8 @@
*
* Contents:
*
* main() - Main entry.
* main() - Main entry.
* read_write_tests() - Perform read/write tests.
*/
/*
@@ -149,6 +150,8 @@ read_write_tests(int compression) /* I - Use compression? */
unsigned char readbuf[8192], /* Read buffer */
writebuf[8192]; /* Write buffer */
int byte; /* Byte from file */
static const char *partial_line = "partial line";
/* Partial line */
/*
@@ -253,11 +256,25 @@ read_write_tests(int compression) /* I - Use compression? */
fputs("cupsFileWrite(): ", stdout);
for (i = 0; i < 100; i ++)
for (i = 0; i < 10000; i ++)
if (cupsFileWrite(fp, (char *)writebuf, sizeof(writebuf)) < 0)
break;
if (i >= 100)
if (i >= 10000)
puts("PASS");
else
{
printf("FAIL (%s)\n", strerror(errno));
status ++;
}
/*
* cupsFilePuts() with partial line...
*/
fputs("cupsFilePuts(\"partial line\"): ", stdout);
if (cupsFilePuts(fp, partial_line) > 0)
puts("PASS");
else
{
@@ -405,13 +422,13 @@ read_write_tests(int compression) /* I - Use compression? */
fputs("cupsFileRead(): ", stdout);
for (i = 0; i < 100; i ++)
for (i = 0; i < 10000; i ++)
if ((byte = cupsFileRead(fp, (char *)readbuf, sizeof(readbuf))) < 0)
break;
else if (memcmp(readbuf, writebuf, sizeof(readbuf)))
break;
if (i >= 100)
if (i >= 10000)
puts("PASS");
else if (byte > 0)
{
@@ -430,6 +447,26 @@ read_write_tests(int compression) /* I - Use compression? */
status ++;
}
/*
* cupsFileGetChar() with partial line...
*/
fputs("cupsFileGetChar(partial line): ", stdout);
for (i = 0; i < strlen(partial_line); i ++)
if ((byte = cupsFileGetChar(fp)) < 0)
break;
else if (byte != partial_line[i])
break;
if (!partial_line[i])
puts("PASS");
else
{
printf("FAIL (got '%c', expected '%c')\n", byte, partial_line[i]);
status ++;
}
/*
* cupsFileClose()
*/
+12
Ver Arquivo
@@ -224,6 +224,18 @@ main(int argc, /* I - Number of command-line arguments */
printf("FAIL (\"%s\" instead of \"La Long Foo Reason\")\n", buffer);
}
putenv("LANG=zh_TW");
fputs("ppdLocalizeIPPReason(zh_TW text): ", stdout);
if (ppdLocalizeIPPReason(ppd, "foo", NULL, buffer, sizeof(buffer)) &&
!strcmp(buffer, "Number 1 Foo Reason"))
puts("PASS");
else
{
status ++;
printf("FAIL (\"%s\" instead of \"Number 1 Foo Reason\")\n", buffer);
}
ppdClose(ppd);
}
else
+8 -108
Ver Arquivo
@@ -91,7 +91,6 @@ cupsCancelJob(const char *name, /* I - Name of printer or class */
uri[HTTP_MAX_URI]; /* Printer URI */
ipp_t *request, /* IPP request */
*response; /* IPP response */
cups_lang_t *language; /* Language info */
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
@@ -129,21 +128,7 @@ cupsCancelJob(const char *name, /* I - Name of printer or class */
* [requesting-user-name]
*/
request = ippNew();
request->request.op.operation_id = IPP_CANCEL_JOB;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language != NULL ? language->language : "C");
cupsLangFree(language);
request = ippNewRequest(IPP_CANCEL_JOB);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
@@ -205,7 +190,6 @@ cupsGetClasses(char ***classes) /* O - Classes */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
char **temp; /* Temporary pointer */
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
@@ -237,20 +221,7 @@ cupsGetClasses(char ***classes) /* O - Classes */
* requested-attributes
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_CLASSES;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
cupsLangFree(language);
request = ippNewRequest(CUPS_GET_CLASSES);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes", NULL, "printer-name");
@@ -371,7 +342,6 @@ cupsGetDefault2(http_t *http) /* I - HTTP connection */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
const char *var; /* Environment variable */
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
@@ -403,20 +373,7 @@ cupsGetDefault2(http_t *http) /* I - HTTP connection */
* attributes-natural-language
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_DEFAULT;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
cupsLangFree(language);
request = ippNewRequest(CUPS_GET_DEFAULT);
/*
* Do the request and get back a response...
@@ -491,7 +448,6 @@ cupsGetJobs2(http_t *http, /* I - HTTP connection */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
cups_job_t *temp; /* Temporary pointer */
int id, /* job-id */
priority, /* job-priority */
@@ -564,20 +520,7 @@ cupsGetJobs2(http_t *http, /* I - HTTP connection */
* requested-attributes
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_JOBS;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
cupsLangFree(language);
request = ippNewRequest(IPP_GET_JOBS);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
@@ -957,7 +900,6 @@ cupsGetPrinters(char ***printers) /* O - Printers */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
char **temp; /* Temporary pointer */
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
@@ -989,20 +931,7 @@ cupsGetPrinters(char ***printers) /* O - Printers */
* requested-attributes
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_PRINTERS;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
cupsLangFree(language);
request = ippNewRequest(CUPS_GET_PRINTERS);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes", NULL, "printer-name");
@@ -1270,7 +1199,6 @@ cupsPrintFiles2(http_t *http, /* I - HTTP connection */
ipp_t *response; /* IPP response */
ipp_attribute_t *attr; /* IPP job-id attribute */
char uri[HTTP_MAX_URI]; /* Printer URI */
cups_lang_t *language; /* Language to use */
int jobid; /* New job ID */
const char *base; /* Basename of current filename */
@@ -1302,35 +1230,19 @@ cupsPrintFiles2(http_t *http, /* I - HTTP connection */
return (0);
}
/*
* Setup the request data...
*/
language = cupsLangDefault();
/*
* Build a standard CUPS URI for the printer and fill the standard IPP
* attributes...
*/
if ((request = ippNew()) == NULL)
if ((request = ippNewRequest(num_files == 1 ? IPP_PRINT_JOB :
IPP_CREATE_JOB)) == NULL)
{
_cupsSetError(IPP_INTERNAL_ERROR, NULL);
return (0);
}
request->request.op.operation_id = num_files == 1 ? IPP_PRINT_JOB :
IPP_CREATE_JOB;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language != NULL ? language->language : "C");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
@@ -1392,21 +1304,11 @@ cupsPrintFiles2(http_t *http, /* I - HTTP connection */
* attributes...
*/
if ((request = ippNew()) == NULL)
if ((request = ippNewRequest(IPP_SEND_DOCUMENT)) == NULL)
return (0);
request->request.op.operation_id = IPP_SEND_DOCUMENT;
request->request.op.request_id = 1;
snprintf(uri, sizeof(uri), "ipp://localhost/jobs/%d", jobid);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language != NULL ? language->language : "C");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, uri);
@@ -1458,8 +1360,6 @@ cupsPrintFiles2(http_t *http, /* I - HTTP connection */
ippDelete(response);
}
cupsLangFree(language);
return (jobid);
}
-25
Ver Arquivo
@@ -67,31 +67,6 @@ CHARMAPS = \
windows-950.txt
CHARSETS = \
windows-874 \
windows-1250 \
windows-1251 \
windows-1252 \
windows-1253 \
windows-1254 \
windows-1255 \
windows-1256 \
windows-1257 \
windows-1258 \
koi8-r \
koi8-u \
iso-8859-1 \
iso-8859-2 \
iso-8859-3 \
iso-8859-4 \
iso-8859-5 \
iso-8859-6 \
iso-8859-7 \
iso-8859-8 \
iso-8859-9 \
iso-8859-10 \
iso-8859-13 \
iso-8859-14 \
iso-8859-15 \
utf-8
DATAFILES = \
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-1
# (Latin1/West European) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00BA
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 00D0
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 00DD
DE 00DE
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 00F0
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 00FD
FE 00FE
FF 00FF
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-10
# (Latin6/Nordic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 0104
A2 0112
A3 0122
A4 012A
A5 0128
A6 0136
A7 00A7
A8 013B
A9 0110
AA 0160
AB 0166
AC 017D
AD 00AD
AE 016A
AF 014A
B0 00B0
B1 0105
B2 0113
B3 0123
B4 012B
B5 0129
B6 0137
B7 00B7
B8 013C
B9 0111
BA 0161
BB 0167
BC 017E
BD 2015
BE 016B
BF 014B
C0 0100
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 012E
C8 010C
C9 00C9
CA 0118
CB 00CB
CC 0116
CD 00CD
CE 00CE
CF 00CF
D0 0110
D1 0145
D2 014C
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 0168
D8 00D8
D9 0172
DA 00DA
DB 00DB
DC 00DC
DD 00DD
DE 00DE
DF 00DF
E0 0101
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 012F
E8 010D
E9 00E9
EA 0119
EB 00EB
EC 0117
ED 00ED
EE 00EE
EF 00EF
F0 00F0
F1 0146
F2 014D
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 0169
F8 00F8
F9 0173
FA 00FA
FB 00FB
FC 00FC
FD 00FD
FE 00FD
FF 0138
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-13
# (Latin7/Baltic Rim) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 201D
A2 00A2
A3 00A3
A4 00A4
A5 201E
A6 00A6
A7 00A7
A8 00D8
A9 00A9
AA 0156
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00C6
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 201C
B5 00B5
B6 00B6
B7 00B7
B8 00F8
B9 00B9
BA 0157
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00E6
C0 0104
C1 012E
C2 0100
C3 0106
C4 00C4
C5 00C5
C6 0118
C7 0112
C8 010C
C9 00C9
CA 0179
CB 0116
CC 0122
CD 0136
CE 012A
CF 013B
D0 0160
D1 0143
D2 0145
D3 00D3
D4 014C
D5 00D5
D6 00D6
D7 00D7
D8 0172
D9 0141
DA 015A
DB 016A
DC 00DC
DD 017B
DE 017D
DF 00DF
E0 0105
E1 012F
E2 0101
E3 0107
E4 00E4
E5 00E5
E6 0119
E7 0113
E8 010D
E9 00E9
EA 017A
EB 0117
EC 0123
ED 0137
EE 012B
EF 013C
F0 0161
F1 0144
F2 0146
F3 00F3
F4 014D
F5 00F5
F6 00F6
F7 00F7
F8 0173
F9 0142
FA 015B
FB 016B
FC 00FC
FD 017C
FE 017E
FF 2019
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-14
# (Latin8/Celtic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 1E02
A2 1E03
A3 00A3
A4 010A
A5 010B
A6 1E0A
A7 00A7
A8 1E80
A9 00A9
AA 1E82
AB 1E0B
AC 1EF2
AD 00AD
AE 00AE
AF 0178
B0 1E1E
B1 1E1F
B2 0120
B3 0121
B4 1E40
B5 1E41
B6 00B6
B7 1E56
B8 1E81
B9 1E57
BA 1E83
BB 1E60
BC 1EF3
BD 1E84
BE 1E85
BF 1E61
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 0174
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 1E6A
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 00DD
DE 0176
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 0175
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 1E6B
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 00FD
FE 0177
FF 00FF
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-15
# (Latin9/West Europe + Euro) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 20AC
A5 00A5
A6 0160
A7 00A7
A8 0161
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 017D
B5 00B5
B6 00B6
B7 00B7
B8 017E
B9 00B9
BA 00BA
BB 00BB
BC 0152
BD 0153
BE 0178
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 00D0
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 00DD
DE 00DE
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 00F0
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 00FD
FE 00FE
FF 00FF
-253
Ver Arquivo
@@ -1,253 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-2
# (Latin2/East European) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
84 201E
85 2026
86 2020
87 2021
89 2030
8A 0160
8B 2039
8C 015A
8D 0164
8E 017D
8F 0179
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
99 2122
9A 0161
9B 203A
8C 015B
8D 0165
8E 017E
8F 017A
A0 00A0
A1 0104
A2 02D8
A3 0141
A4 00A4
A5 013D
A6 015A
A7 00A7
A8 00A8
A9 0160
AA 015E
AB 0164
AC 0179
AD 00AD
AE 017D
AF 017B
B0 00B0
B1 0105
B2 02DB
B3 0142
B4 00B4
B5 013E
B6 015B
B7 02C7
B8 00B8
B9 0161
BA 015F
BB 0165
BC 017A
BD 02DD
BE 017E
BF 017C
C0 0154
C1 00C1
C2 00C2
C3 0102
C4 00C4
C5 0139
C6 0106
C7 00C7
C8 010C
C9 00C9
CA 0118
CB 00CB
CC 011A
CD 00CD
CE 00CE
CF 010E
D0 0110
D1 0143
D2 0147
D3 00D3
D4 00D4
D5 0150
D6 00D6
D7 00D7
D8 0158
D9 016E
DA 00DA
DB 0170
DC 00DC
DD 00DD
DE 0162
DF 00DF
E0 0155
E1 00E1
E2 00E2
E3 0103
E4 00E4
E5 013A
E6 0107
E7 00E7
E8 010D
E9 00E9
EA 0119
EB 00EB
EC 011B
ED 00ED
EE 00EE
EF 010F
F0 0111
F1 0144
F2 0148
F3 00F3
F4 00F4
F5 0151
F6 00F6
F7 00F7
F8 0159
F9 016F
FA 00FA
FB 0171
FC 00FC
FD 00FD
FE 0163
FF 02D9
-244
Ver Arquivo
@@ -1,244 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-3
# (Latin3/South European) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 0126
A2 02D8
A3 00A3
A4 00A4
A6 0124
A7 00A7
A8 00A8
A9 0130
AA 015E
AB 011E
AC 0134
AD 00AD
AF 017B
B0 00B0
B1 0127
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 0125
B7 00B7
B8 00B8
B9 0131
BA 015F
BB 011F
BC 0135
BD 00BD
BF 017C
C0 00C0
C1 00C1
C2 00C2
C4 00C4
C5 010A
C6 0108
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 0120
D6 00D6
D7 00D7
D8 011C
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 016C
DE 015C
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E4 00E4
E5 010B
E6 0109
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 0121
F6 00F6
F7 00F7
F8 011D
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 016D
FE 015D
FF 02D9
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-4
# (Latin4/North European) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 0104
A2 0138
A3 0156
A4 00A4
A5 0128
A6 013B
A7 00A7
A8 00A8
A9 0160
AA 0112
AB 0122
AC 0166
AD 00AD
AE 017D
AF 00AF
B0 00B0
B1 0105
B2 02DB
B3 0157
B4 00B4
B5 0129
B6 013C
B7 02C7
B8 00B8
B9 0161
BA 0113
BB 0123
BC 0167
BD 014A
BE 017E
BF 014B
C0 0100
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 012E
C8 010C
C9 00C9
CA 0118
CB 00CB
CC 0116
CD 00CD
CE 00CE
CF 012A
D0 0110
D1 0145
D2 014C
D3 0136
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 0172
DA 00DA
DB 00DB
DC 00DC
DD 0168
DE 016A
DF 00DF
E0 0101
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 012F
E8 010D
E9 00E9
EA 0119
EB 00EB
EC 0117
ED 00ED
EE 00EE
EF 012B
F0 0111
F1 0146
F2 014D
F3 0137
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 0173
FA 00FA
FB 00FB
FC 00FC
FD 0169
FE 016B
FF 02D9
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-5
# (Cyrillic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 0401
A2 0402
A3 0403
A4 0404
A5 0405
A6 0406
A7 0407
A8 0408
A9 0409
AA 040A
AB 040B
AC 040C
AD 00AD
AE 040E
AF 040F
B0 0410
B1 0411
B2 0412
B3 0413
B4 0414
B5 0415
B6 0416
B7 0417
B8 0418
B9 0419
BA 041A
BB 041B
BC 041C
BD 041D
BE 041E
BF 041F
C0 0420
C1 0421
C2 0422
C3 0423
C4 0424
C5 0425
C6 0426
C7 0427
C8 0428
C9 0429
CA 042A
CB 042B
CC 042C
CD 042D
CE 042E
CF 042F
D0 0430
D1 0431
D2 0432
D3 0433
D4 0434
D5 0435
D6 0436
D7 0437
D8 0438
D9 0439
DA 043A
DB 043B
DC 043C
DD 043D
DE 043E
DF 043F
E0 0440
E1 0441
E2 0442
E3 0443
E4 0444
E5 0445
E6 0446
E7 0447
E8 0448
E9 0449
EA 044A
EB 044B
EC 044C
ED 044D
EE 044E
EF 044F
F0 2116
F1 0451
F2 0452
F3 0453
F4 0454
F5 0455
F6 0456
F7 0457
F8 0458
F9 0459
FA 045A
FB 045B
FC 045C
FD 00A7
FE 045E
FF 045F
-206
Ver Arquivo
@@ -1,206 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-6
# (Arabic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff rtol single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0660
31 0661
32 0662
33 0663
34 0664
35 0665
36 0666
37 0667
38 0668
39 0669
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A4 00A4
AC 060C
AD 00AD
BB 061B
BF 061F
C1 0621
C2 0622
C3 0623
C4 0624
C5 0625
C6 0626
C7 0627
C8 0628
C9 0629
CA 062A
CB 062B
CC 062C
CD 062D
CE 062E
CF 062F
D0 0630
D1 0631
D2 0632
D3 0633
D4 0634
D5 0635
D6 0636
D7 0637
D8 0638
D9 0639
DA 063A
E0 0640
E1 0641
E2 0642
E3 0643
E4 0644
E5 0645
E6 0646
E7 0647
E8 0648
E9 0649
EA 064A
EB 064B
EC 064C
ED 064D
EE 064E
EF 064F
F0 0650
F1 0651
F2 0652
-246
Ver Arquivo
@@ -1,246 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-7
# (Greek) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 9f ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
a0 ff ltor single Symbol
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 02BD
A2 02BC
A3 00A3
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AB 00AB
AC 00AC
AD 00AD
AF 2015
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 0384
B5 0385
B6 0386
B7 00B7
B8 0388
B9 0389
BA 038A
BB 00BB
BC 038C
BD 00BD
BE 038E
BF 038F
C0 0390
C1 0391
C2 0392
C3 0393
C4 0394
C5 0395
C6 0396
C7 0397
C8 0398
C9 0399
CA 039A
CB 039B
CC 039C
CD 039D
CE 039E
CF 039F
D0 03A0
D1 03A1
D3 03A3
D4 03A4
D5 03A5
D6 03A6
D7 03A7
D8 03A8
D9 03A9
DA 03AA
DB 03AB
DC 03AC
DD 03AD
DE 03AE
DF 03AF
E0 03B0
E1 03B1
E2 03B2
E3 03B3
E4 03B4
E5 03B5
E6 03B6
E7 03B7
E8 03B8
E9 03B9
EA 03BA
EB 03BB
EC 03BC
ED 03BD
EE 03BE
EF 03BF
F0 03C0
F1 03C1
F2 03C2
F3 03C3
F4 03C4
F5 03C5
F6 03C6
F7 03C7
F8 03C8
F9 03C9
FA 03CA
FB 03CB
FC 03CC
FD 03CD
FE 03CE
-214
Ver Arquivo
@@ -1,214 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-8
# (Hebrew) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 7f ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
80 ff rtol single Courier
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00D7
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 203E
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00F7
BB 00BB
BC 00BC
BD 00BD
BE 00BE
DF 2017
E0 05D0
E1 05D1
E2 05D2
E3 05D3
E4 05D4
E5 05D5
E6 05D6
E7 05D7
E8 05D8
E9 05D9
EA 05DA
EB 05DB
EC 05DC
ED 05DD
EE 05DE
EF 05DF
F0 05E0
F1 05E1
F2 05E2
F3 05E3
F4 05E4
F5 05E5
F6 05E6
F7 05E7
F8 05E8
F9 05E9
FA 05EA
-251
Ver Arquivo
@@ -1,251 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for ISO-8859-9
# (Latin5/Turkish) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00BA
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 011E
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 0130
DE 015E
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 011F
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 0131
FE 015F
FF 00FF
-261
Ver Arquivo
@@ -1,261 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Russian
# Code Page KOI8-R text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 2500
81 2502
82 250C
83 2510
84 2514
85 2518
86 251C
87 2524
88 252C
89 2534
8A 253C
8B 2580
8C 2584
8D 2588
8E 258C
8F 2590
90 2591
91 2592
92 2593
93 2320
94 25A0
95 2219
96 221A
97 2248
98 2264
99 2265
9A 00A0
9B 2321
9C 00B0
9D 00B2
9E 00B7
9F 00F7
A0 2550
A1 2551
A2 2552
A3 0451
A4 2553
A5 2554
A6 2555
A7 2556
A8 2557
A9 2558
AA 2559
AB 255A
AC 255B
AD 255C
AE 255D
AF 255E
B0 255F
B1 2560
B2 2561
B3 0401
B4 2562
B5 2563
B6 2564
B7 2565
B8 2566
B9 2567
BA 2568
BB 2569
BC 256A
BD 256B
BE 256C
BF 00A9
C0 044E
C1 0430
C2 0431
C3 0446
C4 0434
C5 0435
C6 0444
C7 0433
C8 0445
C9 0438
CA 0439
CB 043A
CC 043B
CD 043C
CE 043D
CF 043E
D0 043F
D1 044F
D2 0440
D3 0441
D4 0442
D5 0443
D6 0436
D7 0432
D8 044C
D9 044B
DA 0437
DB 0448
DC 044D
DD 0449
DE 0447
DF 044A
E0 042E
E1 0410
E2 0411
E3 0426
E4 0414
E5 0415
E6 0424
E7 0413
E8 0425
E9 0418
EA 0419
EB 041A
EC 041B
ED 041C
EE 041D
EF 041E
F0 041F
F1 042F
F2 0420
F3 0421
F4 0422
F5 0423
F6 0416
F7 0412
F8 042C
F9 042B
FA 0417
FB 0428
FC 042D
FD 0429
FE 0427
FF 042A
-259
Ver Arquivo
@@ -1,259 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Ukrainian
# Code Page KOI8-U text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 2500
81 2502
82 250C
83 2510
84 2514
85 2518
86 251C
87 2524
88 252C
89 2534
8A 253C
8B 2580
8C 2584
8D 2588
8E 258C
8F 2590
90 2591
91 2592
92 2593
93 2320
94 25A0
95 2219
96 221A
97 2248
98 2264
99 2265
9A 00A0
9B 2321
9C 00B0
9D 00B2
9E 00B7
9F 00F7
A0 2550
A1 2551
A2 2552
A3 0451
A4 0454
A5 2554
A6 0456
A7 0457
A8 2557
A9 2558
AA 2559
AB 255A
AC 255B
AD 0491
AE 255D
AF 255E
B0 255F
B1 2560
B2 2561
B3 0401
B4 0404
B5 2563
B6 0406
B7 0407
B8 2566
B9 2567
BA 2568
BB 2569
BC 256A
BD 0490
BE 256C
BF 00A9
C0 044E
C1 0430
C2 0431
C3 0446
C4 0434
C5 0435
C6 0444
C7 0433
C8 0445
C9 0438
CA 0439
CB 043A
CC 043B
CD 043C
CE 043D
CF 043E
D0 043F
D1 044F
D2 0440
D3 0441
D4 0442
D5 0443
D6 0436
D7 0432
D8 044C
D9 044B
DA 0437
DB 0448
DC 044D
DD 0449
DE 0447
DF 044A
E0 042E
E1 0410
E2 0411
E3 0426
E4 0414
E5 0415
E6 0424
E7 0413
E8 0425
E9 0418
EA 0419
EB 041A
EC 041B
ED 041C
EE 041D
EF 041E
F0 041F
F1 042F
F2 0420
F3 0421
F4 0422
F5 0423
F6 0416
F7 0412
F8 042C
F9 042B
FA 0417
FB 0428
FC 042D
FD 0429
FE 0427
FF 042A
-254
Ver Arquivo
@@ -1,254 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1250 (WinLatin2) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
84 201E
85 2026
86 2020
87 2021
89 2030
8A 0160
8B 2039
8C 015A
8D 0164
8E 017D
8F 0179
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
99 2122
9A 0161
9B 203A
9C 015B
9D 0165
9E 017E
9F 017A
A0 00A0
A1 02C7
A2 02D8
A3 0141
A4 00A4
A5 0104
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 015E
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 017B
B0 00B0
B1 00B1
B2 02DB
B3 0142
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 0105
BA 015F
BB 00BB
BC 013D
BD 02DD
BE 013E
BF 017C
C0 0154
C1 00C1
C2 00C2
C3 0102
C4 00C4
C5 0139
C6 0106
C7 00C7
C8 010C
C9 00C9
CA 0118
CB 00CB
CC 011A
CD 00CD
CE 00CE
CF 010E
D0 0110
D1 0143
D2 0147
D3 00D3
D4 00D4
D5 0150
D6 00D6
D7 00D7
D8 0158
D9 016E
DA 00DA
DB 0170
DC 00DC
DD 00DD
DE 0162
DF 00DF
E0 0155
E1 00E1
E2 00E2
E3 0103
E4 00E4
E5 013A
E6 0107
E7 00E7
E8 010D
E9 00E9
EA 0119
EB 00EB
EC 011B
ED 00ED
EE 00EE
EF 010F
F0 0111
F1 0144
F2 0148
F3 00F3
F4 00F4
F5 0151
F6 00F6
F7 00F7
F8 0159
F9 016F
FA 00FA
FB 0171
FC 00FC
FD 00FD
FE 0163
FF 02D9
-258
Ver Arquivo
@@ -1,258 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1251 (WinCyrillic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 0402
81 0403
82 201A
83 0453
84 201E
85 2026
86 2020
87 2021
88 20AC
89 2030
8A 0409
8B 2039
8C 040A
8D 040C
8E 040B
8F 040F
90 0452
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
99 2122
9A 0459
9B 203A
9C 045A
9D 045C
9E 045B
9F 045F
A0 00A0
A1 040E
A2 045E
A3 0408
A4 00A4
A5 0490
A6 00A6
A7 00A7
A8 0401
A9 00A9
AA 0404
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 0407
B0 00B0
B1 00B1
B2 0406
B3 0456
B4 0491
B5 00B5
B6 00B6
B7 00B7
B8 0451
B9 2116
BA 0454
BB 00BB
BC 0458
BD 0405
BE 0455
BF 0457
C0 0410
C1 0411
C2 0412
C3 0413
C4 0414
C5 0415
C6 0416
C7 0417
C8 0418
C9 0419
CA 041A
CB 041B
CC 041C
CD 041D
CE 041E
CF 041F
D0 0420
D1 0421
D2 0422
D3 0423
D4 0424
D5 0425
D6 0426
D7 0427
D8 0428
D9 0429
DA 042A
DB 042B
DC 042C
DD 042D
DE 042E
DF 042F
E0 0430
E1 0431
E2 0432
E3 0433
E4 0434
E5 0435
E6 0436
E7 0437
E8 0438
E9 0439
EA 043A
EB 043B
EC 043C
ED 043D
EE 043E
EF 043F
F0 0440
F1 0441
F2 0442
F3 0443
F4 0444
F5 0445
F6 0446
F7 0447
F8 0448
F9 0449
FA 044A
FB 044B
FC 044C
FD 044D
FE 044E
FF 044F
-254
Ver Arquivo
@@ -1,254 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1252 (WinLatin1) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
8E 017D
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9E 017E
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00BA
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 00D0
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 00DD
DE 00DE
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 00F0
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 00FD
FE 00FE
FF 00FF
-243
Ver Arquivo
@@ -1,243 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1253 (WinGreek) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 9f ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
a0 ff ltor single Symbol
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
89 2030
8B 2039
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
99 2122
9B 203A
A0 00A0
A1 0385
A2 0386
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 2015
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 0384
B5 00B5
B6 00B6
B7 00B7
B8 0388
B9 0389
BA 038A
BB 00BB
BC 038C
BD 00BD
BE 038E
BF 038F
C0 0390
C1 0391
C2 0392
C3 0393
C4 0394
C5 0395
C6 0396
C7 0397
C8 0398
C9 0399
CA 039A
CB 039B
CC 039C
CD 039D
CE 039E
CF 039F
D0 03A0
D1 03A1
D3 03A3
D4 03A4
D5 03A5
D6 03A6
D7 03A7
D8 03A8
D9 03A9
DA 03AA
DB 03AB
DC 03AC
DD 03AD
DE 03AE
DF 03AF
E0 03B0
E1 03B1
E2 03B2
E3 03B3
E4 03B4
E5 03B5
E6 03B6
E7 03B7
E8 03B8
E9 03B9
EA 03BA
EB 03BB
EC 03BC
ED 03BD
EE 03BE
EF 03BF
F0 03C0
F1 03C1
F2 03C2
F3 03C3
F4 03C4
F5 03C5
F6 03C6
F7 03C7
F8 03C8
F9 03C9
FA 03CA
FB 03CB
FC 03CC
FD 03CD
FE 03CE
-252
Ver Arquivo
@@ -1,252 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1254 (WinTurkish) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0160
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9A 0161
9B 203A
9C 0153
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00BA
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 00C3
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 00CC
CD 00CD
CE 00CE
CF 00CF
D0 011E
D1 00D1
D2 00D2
D3 00D3
D4 00D4
D5 00D5
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 0130
DE 015E
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 00E3
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 00EC
ED 00ED
EE 00EE
EF 00EF
F0 011F
F1 00F1
F2 00F2
F3 00F3
F4 00F4
F5 00F5
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 0131
FE 015F
FF 00FF
-236
Ver Arquivo
@@ -1,236 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1255 (WinHebrew) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff rtol single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8B 2039
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9B 203A
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 20AA
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00D7
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00F7
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 05B0
C1 05B1
C2 05B2
C3 05B3
C4 05B4
C5 05B5
C6 05B6
C7 05B7
C8 05B8
C9 05B9
CB 05BB
CC 05BC
CD 05BD
CE 05BE
CF 05BF
D0 05C0
D1 05C1
D2 05C2
D3 05C3
D4 05F0
D5 05F1
D6 05F2
D7 05F3
D8 05F4
E0 05D0
E1 05D1
E2 05D2
E3 05D3
E4 05D4
E5 05D5
E6 05D6
E7 05D7
E8 05D8
E9 05D9
EA 05DA
EB 05DB
EC 05DC
ED 05DD
EE 05DE
EF 05DF
F0 05E0
F1 05E1
F2 05E2
F3 05E3
F4 05E4
F5 05E5
F6 05E6
F7 05E7
F8 05E8
F9 05E9
FA 05EA
FD 200E
FE 200F
-259
Ver Arquivo
@@ -1,259 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1256 (WinArabic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff rtol single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
81 067E
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8A 0679
8B 2039
8C 0152
8D 0686
8E 0698
8F 0688
90 06AF
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 06A9
99 2122
9A 0691
9B 203A
9C 0153
9D 200C
9E 200D
9F 06BA
A0 00A0
A1 060C
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 06BE
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 061B
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 061F
C0 06C1
C1 0621
C2 0622
C3 0623
C4 0624
C5 0625
C6 0626
C7 0627
C8 0628
C9 0629
CA 062A
CB 062B
CC 062C
CD 062D
CE 062E
CF 062F
D0 0630
D1 0631
D2 0632
D3 0633
D4 0634
D5 0635
D6 0636
D7 00D7
D8 0637
D9 0638
DA 0639
DB 063A
DC 0640
DD 0641
DE 0642
DF 0643
E0 00E0
E1 0644
E2 00E2
E3 0645
E4 0646
E5 0647
E6 0648
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 0649
ED 064A
EE 00EE
EF 00EF
F0 064B
F1 064C
F2 064D
F3 064E
F4 00F4
F5 064F
F6 0650
F7 00F7
F8 0651
F9 00F9
FA 0652
FB 00FB
FC 00FC
FD 200E
FE 200F
FF 06D2
-247
Ver Arquivo
@@ -1,247 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1257 (WinBaltic) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
84 201E
85 2026
86 2020
87 2021
89 2030
8B 2039
8D 00A8
8E 02C7
8F 00B8
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
99 2122
9B 203A
9D 00AF
9E 02DB
A0 00A0
A2 00A2
A3 00A3
A4 00A4
A6 00A6
A7 00A7
A8 00D8
A9 00A9
AA 0156
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00C6
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00F8
B9 00B9
BA 0157
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00E6
C0 0104
C1 012E
C2 0100
C3 0106
C4 00C4
C5 00C5
C6 0118
C7 0112
C8 010C
C9 00C9
CA 0179
CB 0116
CC 0122
CD 0136
CE 012A
CF 013B
D0 0160
D1 0143
D2 0145
D3 00D3
D4 014C
D5 00D5
D6 00D6
D7 00D7
D8 0172
D9 0141
DA 015A
DB 016A
DC 00DC
DD 017B
DE 017D
DF 00DF
E0 0105
E1 012F
E2 0101
E3 0107
E4 00E4
E5 00E5
E6 0119
E7 0113
E8 010D
E9 00E9
EA 017A
EB 0117
EC 0123
ED 0137
EE 012B
EF 013C
F0 0161
F1 0144
F2 0146
F3 00F3
F4 014D
F5 00F5
F6 00F6
F7 00F7
F8 0173
F9 0142
FA 015B
FB 016B
FC 00FC
FD 017C
FE 017E
FF 02D9
-250
Ver Arquivo
@@ -1,250 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 1258 (WinVietnamese) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
82 201A
83 0192
84 201E
85 2026
86 2020
87 2021
88 02C6
89 2030
8B 2039
8C 0152
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
98 02DC
99 2122
9B 203A
9C 0153
9F 0178
A0 00A0
A1 00A1
A2 00A2
A3 00A3
A4 00A4
A5 00A5
A6 00A6
A7 00A7
A8 00A8
A9 00A9
AA 00AA
AB 00AB
AC 00AC
AD 00AD
AE 00AE
AF 00AF
B0 00B0
B1 00B1
B2 00B2
B3 00B3
B4 00B4
B5 00B5
B6 00B6
B7 00B7
B8 00B8
B9 00B9
BA 00BA
BB 00BB
BC 00BC
BD 00BD
BE 00BE
BF 00BF
C0 00C0
C1 00C1
C2 00C2
C3 0102
C4 00C4
C5 00C5
C6 00C6
C7 00C7
C8 00C8
C9 00C9
CA 00CA
CB 00CB
CC 0300
CD 00CD
CE 00CE
CF 00CF
D0 0110
D1 00D1
D2 0309
D3 00D3
D4 00D4
D5 01A0
D6 00D6
D7 00D7
D8 00D8
D9 00D9
DA 00DA
DB 00DB
DC 00DC
DD 01AF
DE 0303
DF 00DF
E0 00E0
E1 00E1
E2 00E2
E3 0103
E4 00E4
E5 00E5
E6 00E6
E7 00E7
E8 00E8
E9 00E9
EA 00EA
EB 00EB
EC 0301
ED 00ED
EE 00EE
EF 00EF
F0 0111
F1 00F1
F2 0323
F3 00F3
F4 00F4
F5 01A1
F6 00F6
F7 00F7
F8 00F8
F9 00F9
FA 00FA
FB 00FB
FC 00FC
FD 01B0
FE 20AB
FF 00FF
-228
Ver Arquivo
@@ -1,228 +0,0 @@
charset 8bit
#
# This file defines the font and character mappings used for Windows
# Code Page 874 (Thai) text printing.
#
# The first line consists of:
#
# direction width normal bold italic bold-italic
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Courier typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed (e.g. "Symbol")
#
# Each font that is listed will be used (and downloaded if needed) when
# printing.
#
00 ff ltor single Courier Courier-Bold Courier-Italic Courier-BoldItalic
#
# The following lines define the mapping from the 8-bit character set to
# the Unicode glyphs for each character:
#
# char glyph
#
# "Char" and "glyph" are hexadecimal values.
#
20 0020
21 0021
22 0022
23 0023
24 0024
25 0025
26 0026
27 0027
28 0028
29 0029
2A 002A
2B 002B
2C 002C
2D 002D
2E 002E
2F 002F
30 0030
31 0031
32 0032
33 0033
34 0034
35 0035
36 0036
37 0037
38 0038
39 0039
3A 003A
3B 003B
3C 003C
3D 003D
3E 003E
3F 003F
40 0040
41 0041
42 0042
43 0043
44 0044
45 0045
46 0046
47 0047
48 0048
49 0049
4A 004A
4B 004B
4C 004C
4D 004D
4E 004E
4F 004F
50 0050
51 0051
52 0052
53 0053
54 0054
55 0055
56 0056
57 0057
58 0058
59 0059
5A 005A
5B 005B
5C 005C
5D 005D
5E 005E
5F 005F
60 0060
61 0061
62 0062
63 0063
64 0064
65 0065
66 0066
67 0067
68 0068
69 0069
6A 006A
6B 006B
6C 006C
6D 006D
6E 006E
6F 006F
70 0070
71 0071
72 0072
73 0073
74 0074
75 0075
76 0076
77 0077
78 0078
79 0079
7A 007A
7B 007B
7C 007C
7D 007D
7E 007E
7F 007F
80 20AC
85 2026
91 2018
92 2019
93 201C
94 201D
95 2022
96 2013
97 2014
A0 00A0
A1 0E01
A2 0E02
A3 0E03
A4 0E04
A5 0E05
A6 0E06
A7 0E07
A8 0E08
A9 0E09
AA 0E0A
AB 0E0B
AC 0E0C
AD 0E0D
AE 0E0E
AF 0E0F
B0 0E10
B1 0E11
B2 0E12
B3 0E13
B4 0E14
B5 0E15
B6 0E16
B7 0E17
B8 0E18
B9 0E19
BA 0E1A
BB 0E1B
BC 0E1C
BD 0E1D
BE 0E1E
BF 0E1F
C0 0E20
C1 0E21
C2 0E22
C3 0E23
C4 0E24
C5 0E25
C6 0E26
C7 0E27
C8 0E28
C9 0E29
CA 0E2A
CB 0E2B
CC 0E2C
CD 0E2D
CE 0E2E
CF 0E2F
D0 0E30
D1 0E31
D2 0E32
D3 0E33
D4 0E34
D5 0E35
D6 0E36
D7 0E37
D8 0E38
D9 0E39
DA 0E3A
DF 0E3F
E0 0E40
E1 0E41
E2 0E42
E3 0E43
E4 0E44
E5 0E45
E6 0E46
E7 0E47
E8 0E48
E9 0E49
EA 0E4A
EB 0E4B
EC 0E4C
ED 0E4D
EE 0E4E
EF 0E4F
F0 0E50
F1 0E51
F2 0E52
F3 0E53
F4 0E54
F5 0E55
F6 0E56
F7 0E57
F8 0E58
F9 0E59
FA 0E5A
FB 0E5B
+2
Ver Arquivo
@@ -92,6 +92,8 @@ WEBIMAGES = \
images/printer-idle.gif \
images/printer-processing.gif \
images/printer-stopped.gif \
images/raster.png \
images/raster.svg \
images/smiley.jpg \
images/tab-left.gif \
images/tab-right.gif \
+2 -3
Ver Arquivo
@@ -110,14 +110,13 @@ SPAN.info {
white-space: nowrap;
}
H2 SPAN.info, H3 SPAN.info {
H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
float: right;
font-size: 100%;
}
H2.title, H3.title {
border-bottom: solid 2pt #000000;
page-break-before: always;
}
DT {
@@ -134,7 +133,7 @@ DL.category DT {
}
P.summary {
margin-left: 54pt;
margin-left: 36pt;
font-family: monospace;
}
+4 -3
Ver Arquivo
@@ -173,7 +173,7 @@ SPAN.info {
white-space: nowrap;
}
H2 SPAN.info, H3 SPAN.info {
H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
float: right;
font-size: 100%;
}
@@ -196,9 +196,10 @@ DIV.sidebar {
background: #ddddaa;
border: solid 2px #cccc99;
float: right;
min-width: 25%;
margin-left: 10pt;
max-width: 33%;
padding: 5pt;
width: 25%;
/* These are not implemented by all browsers, but that's OK */
border-radius: 10pt;
-moz-border-radius: 10pt;
@@ -254,7 +255,7 @@ DL.category DT {
}
P.summary {
margin-left: 54pt;
margin-left: 36pt;
font-family: monospace;
}
+2 -2
Ver Arquivo
@@ -115,8 +115,8 @@ WIDTH="15" HEIGHT="15" ALT=""></TD>
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
<P><SMALL>Das Common UNIX Printing System, CUPS, und das CUPS Logo sind
Warenzeichen der <A HREF="http://www.apple.com">Apple Inc./A> CUPS ist urheberrechtlich gesch&uuml;tzt 2007 von Apple Inc,
Alle Rechte vorbehalten.</SMALL></P>
eingetragene Warenzeichen der <A HREF="http://www.apple.com">Apple Inc.</A>
CUPS ist urheberrechtlich gesch&uuml;tzt 2007 von Apple Inc, alle Rechte vorbehalten.</SMALL></P>
</TD>
Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 623 B

Depois

Largura:  |  Altura:  |  Tamanho: 716 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 527 B

Depois

Largura:  |  Altura:  |  Tamanho: 561 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 617 B

Depois

Largura:  |  Altura:  |  Tamanho: 724 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 948 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 706 B

Depois

Largura:  |  Altura:  |  Tamanho: 892 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 769 B

Depois

Largura:  |  Altura:  |  Tamanho: 897 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 560 B

Depois

Largura:  |  Altura:  |  Tamanho: 646 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 881 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 777 B

Depois

Largura:  |  Altura:  |  Tamanho: 871 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 882 B

Depois

Largura:  |  Altura:  |  Tamanho: 1.0 KiB

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 359 B

Depois

Largura:  |  Altura:  |  Tamanho: 396 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 461 B

Depois

Largura:  |  Altura:  |  Tamanho: 498 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 483 B

Depois

Largura:  |  Altura:  |  Tamanho: 543 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 562 B

Depois

Largura:  |  Altura:  |  Tamanho: 627 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 788 B

Depois

Largura:  |  Altura:  |  Tamanho: 910 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 838 B

Depois

Largura:  |  Altura:  |  Tamanho: 928 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 977 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 393 B

Depois

Largura:  |  Altura:  |  Tamanho: 424 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 567 B

Depois

Largura:  |  Altura:  |  Tamanho: 603 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 636 B

Depois

Largura:  |  Altura:  |  Tamanho: 807 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 658 B

Depois

Largura:  |  Altura:  |  Tamanho: 744 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 718 B

Depois

Largura:  |  Altura:  |  Tamanho: 914 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 672 B

Depois

Largura:  |  Altura:  |  Tamanho: 788 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 579 B

Depois

Largura:  |  Altura:  |  Tamanho: 618 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 659 B

Depois

Largura:  |  Altura:  |  Tamanho: 797 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 551 B

Depois

Largura:  |  Altura:  |  Tamanho: 669 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 744 B

Depois

Largura:  |  Altura:  |  Tamanho: 918 B

Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 856 B

Depois

Largura:  |  Altura:  |  Tamanho: 930 B

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais